[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <03c77b33-271c-5cb3-fe00-cda7ff21102b@ideasonboard.com>
Date: Thu, 28 Jul 2022 13:05:27 +0300
From: Tomi Valkeinen <tomi.valkeinen@...asonboard.com>
To: Aradhya Bhatia <a-bhatia1@...com>
Cc: Darren Etheridge <detheridge@...com>, Nishanth Menon <nm@...com>,
Vignesh Raghavendra <vigneshr@...com>,
Rahul T R <r-ravikumar@...com>,
Krunal Bhargav <k-bhargav@...com>,
Devarsh Thakkar <devarsht@...com>,
DRI Development List <dri-devel@...ts.freedesktop.org>,
Devicetree List <devicetree@...r.kernel.org>,
Linux Kernel List <linux-kernel@...r.kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
Rob Herring <robh+dt@...nel.org>,
Daniel Vetter <daniel@...ll.ch>,
David Airlie <airlied@...ux.ie>, Jyri Sarha <jyri.sarha@....fi>
Subject: Re: [PATCH 7/8] drm/tidss: Fix clock request value for OLDI
videoports
On 19/07/2022 11:08, Aradhya Bhatia wrote:
> The OLDI TX(es) require a serial clock which is 7 times the pixel clock
> of the display panel. When the OLDI is enabled in DSS, the pixel clock
> input of the corresponding videoport gets a divided-by 7 value of the
> requested clock.
>
> For the am625-dss, the requested clock needs to be 7 times the value.
>
> Update the clock frequency by requesting 7 times the value.
>
> Signed-off-by: Aradhya Bhatia <a-bhatia1@...com>
> ---
> drivers/gpu/drm/tidss/tidss_dispc.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/drivers/gpu/drm/tidss/tidss_dispc.c b/drivers/gpu/drm/tidss/tidss_dispc.c
> index c4a5f808648f..0b9689453ee8 100644
> --- a/drivers/gpu/drm/tidss/tidss_dispc.c
> +++ b/drivers/gpu/drm/tidss/tidss_dispc.c
> @@ -1326,6 +1326,16 @@ int dispc_vp_set_clk_rate(struct dispc_device *dispc, u32 hw_videoport,
> int r;
> unsigned long new_rate;
>
> + /*
> + * For AM625 OLDI video ports, the requested pixel clock needs to take into account the
> + * serial clock required for the serialization of DPI signals into LVDS signals. The
> + * incoming pixel clock on the OLDI video port gets divided by 7 whenever OLDI enable bit
> + * gets set.
> + */
> + if (dispc->feat->vp_bus_type[hw_videoport] == DISPC_VP_OLDI &&
> + dispc->feat->subrev == DISPC_AM625)
> + rate *= 7;
> +
> r = clk_set_rate(dispc->vp_clk[hw_videoport], rate);
> if (r) {
> dev_err(dispc->dev, "vp%d: failed to set clk rate to %lu\n",
The AM625 TRM seems to be missing the "DSS integration" section, even if
it's referred to in three places in the TRM. Supposedly that has details
about the clocking.
Shouldn't the source clock be 3.5x when dual-link mode is used?
While I don't know the details, this doesn't feel correct. We're
supposed to be setting the VP pixel clock here, and the serial clock
would be derived from that as it's done on AM65x. Is the DT clock tree
wrong for AM625?
Tomi
Powered by blists - more mailing lists