diff mbox series

[v2] drm/panel/panel-sitronix-st7701: Fix RTNI calculation

Message ID 20221012221159.88397-1-marex@denx.de (mailing list archive)
State New, archived
Headers show
Series [v2] drm/panel/panel-sitronix-st7701: Fix RTNI calculation | expand

Commit Message

Marek Vasut Oct. 12, 2022, 10:11 p.m. UTC
The RTNI field is multiplied by 16 and incremented by 512 before being
used as the minimum number of pixel clock per horizontal line, hence
it is necessary to subtract those 512 bytes from htotal and then divide
the result by 16 before writing the value into the RTNI field. Fix the
calculation.

Fixes: de2b4917843c ("drm/panel/panel-sitronix-st7701: Infer horizontal pixel count from TFT mode")
Signed-off-by: Marek Vasut <marex@denx.de>
---
Cc: Guido Günther <agx@sigxcpu.org>
Cc: Jagan Teki <jagan@amarulasolutions.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Thierry Reding <thierry.reding@gmail.com>
---
V2: Clamp the htotal to range 512...1008, so RTNI always fits the bitfield
---
 drivers/gpu/drm/panel/panel-sitronix-st7701.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Linus Walleij Oct. 18, 2022, 8:53 a.m. UTC | #1
On Thu, Oct 13, 2022 at 12:12 AM Marek Vasut <marex@denx.de> wrote:

> The RTNI field is multiplied by 16 and incremented by 512 before being
> used as the minimum number of pixel clock per horizontal line, hence
> it is necessary to subtract those 512 bytes from htotal and then divide
> the result by 16 before writing the value into the RTNI field. Fix the
> calculation.
>
> Fixes: de2b4917843c ("drm/panel/panel-sitronix-st7701: Infer horizontal pixel count from TFT mode")
> Signed-off-by: Marek Vasut <marex@denx.de>
> ---
> Cc: Guido Günther <agx@sigxcpu.org>
> Cc: Jagan Teki <jagan@amarulasolutions.com>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Linus Walleij <linus.walleij@linaro.org>
> Cc: Sam Ravnborg <sam@ravnborg.org>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> ---
> V2: Clamp the htotal to range 512...1008, so RTNI always fits the bitfield

I tried to apply this to drm-misc-fixes but the branch has not yet
been moved forward to v6.1-rc1.

Yours,
Linus Walleij
Marek Vasut Oct. 18, 2022, 9:03 a.m. UTC | #2
On 10/18/22 10:53, Linus Walleij wrote:
> On Thu, Oct 13, 2022 at 12:12 AM Marek Vasut <marex@denx.de> wrote:
> 
>> The RTNI field is multiplied by 16 and incremented by 512 before being
>> used as the minimum number of pixel clock per horizontal line, hence
>> it is necessary to subtract those 512 bytes from htotal and then divide
>> the result by 16 before writing the value into the RTNI field. Fix the
>> calculation.
>>
>> Fixes: de2b4917843c ("drm/panel/panel-sitronix-st7701: Infer horizontal pixel count from TFT mode")
>> Signed-off-by: Marek Vasut <marex@denx.de>
>> ---
>> Cc: Guido Günther <agx@sigxcpu.org>
>> Cc: Jagan Teki <jagan@amarulasolutions.com>
>> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>> Cc: Linus Walleij <linus.walleij@linaro.org>
>> Cc: Sam Ravnborg <sam@ravnborg.org>
>> Cc: Thierry Reding <thierry.reding@gmail.com>
>> ---
>> V2: Clamp the htotal to range 512...1008, so RTNI always fits the bitfield
> 
> I tried to apply this to drm-misc-fixes but the branch has not yet
> been moved forward to v6.1-rc1.

Can I maybe get RB until then ?
Linus Walleij Oct. 18, 2022, 9:13 a.m. UTC | #3
On Tue, Oct 18, 2022 at 11:03 AM Marek Vasut <marex@denx.de> wrote:
> On 10/18/22 10:53, Linus Walleij wrote:
> > On Thu, Oct 13, 2022 at 12:12 AM Marek Vasut <marex@denx.de> wrote:
> >
> >> The RTNI field is multiplied by 16 and incremented by 512 before being
> >> used as the minimum number of pixel clock per horizontal line, hence
> >> it is necessary to subtract those 512 bytes from htotal and then divide
> >> the result by 16 before writing the value into the RTNI field. Fix the
> >> calculation.
> >>
> >> Fixes: de2b4917843c ("drm/panel/panel-sitronix-st7701: Infer horizontal pixel count from TFT mode")
> >> Signed-off-by: Marek Vasut <marex@denx.de>
> >> ---
> >> Cc: Guido Günther <agx@sigxcpu.org>
> >> Cc: Jagan Teki <jagan@amarulasolutions.com>
> >> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> >> Cc: Linus Walleij <linus.walleij@linaro.org>
> >> Cc: Sam Ravnborg <sam@ravnborg.org>
> >> Cc: Thierry Reding <thierry.reding@gmail.com>
> >> ---
> >> V2: Clamp the htotal to range 512...1008, so RTNI always fits the bitfield
> >
> > I tried to apply this to drm-misc-fixes but the branch has not yet
> > been moved forward to v6.1-rc1.
>
> Can I maybe get RB until then ?

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

I've been told to go and poke the DRM git people at IRC to rebase
the fixes branch.

Yours,
Linus Walleij
Marek Vasut Oct. 18, 2022, 10 a.m. UTC | #4
On 10/18/22 11:13, Linus Walleij wrote:
> On Tue, Oct 18, 2022 at 11:03 AM Marek Vasut <marex@denx.de> wrote:
>> On 10/18/22 10:53, Linus Walleij wrote:
>>> On Thu, Oct 13, 2022 at 12:12 AM Marek Vasut <marex@denx.de> wrote:
>>>
>>>> The RTNI field is multiplied by 16 and incremented by 512 before being
>>>> used as the minimum number of pixel clock per horizontal line, hence
>>>> it is necessary to subtract those 512 bytes from htotal and then divide
>>>> the result by 16 before writing the value into the RTNI field. Fix the
>>>> calculation.
>>>>
>>>> Fixes: de2b4917843c ("drm/panel/panel-sitronix-st7701: Infer horizontal pixel count from TFT mode")
>>>> Signed-off-by: Marek Vasut <marex@denx.de>
>>>> ---
>>>> Cc: Guido Günther <agx@sigxcpu.org>
>>>> Cc: Jagan Teki <jagan@amarulasolutions.com>
>>>> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>>>> Cc: Linus Walleij <linus.walleij@linaro.org>
>>>> Cc: Sam Ravnborg <sam@ravnborg.org>
>>>> Cc: Thierry Reding <thierry.reding@gmail.com>
>>>> ---
>>>> V2: Clamp the htotal to range 512...1008, so RTNI always fits the bitfield
>>>
>>> I tried to apply this to drm-misc-fixes but the branch has not yet
>>> been moved forward to v6.1-rc1.
>>
>> Can I maybe get RB until then ?
> 
> Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Thank you

> I've been told to go and poke the DRM git people at IRC to rebase
> the fixes branch.

That would be #dri-devel on OFTC I think ?
Linus Walleij Oct. 18, 2022, 11:39 a.m. UTC | #5
On Tue, Oct 18, 2022 at 12:01 PM Marek Vasut <marex@denx.de> wrote:
> On 10/18/22 11:13, Linus Walleij wrote:

> > I've been told to go and poke the DRM git people at IRC to rebase
> > the fixes branch.
>
> That would be #dri-devel on OFTC I think ?

Yups, I pinged and mlankhorst says he will fix it.

Yours,
Linus Walleij
diff mbox series

Patch

diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7701.c b/drivers/gpu/drm/panel/panel-sitronix-st7701.c
index c481daa4bbceb..9578f461f5e48 100644
--- a/drivers/gpu/drm/panel/panel-sitronix-st7701.c
+++ b/drivers/gpu/drm/panel/panel-sitronix-st7701.c
@@ -244,7 +244,7 @@  static void st7701_init_sequence(struct st7701 *st7701)
 		   DSI_CMD2_BK0_INVSEL_ONES_MASK |
 		   FIELD_PREP(DSI_CMD2_BK0_INVSEL_NLINV_MASK, desc->nlinv),
 		   FIELD_PREP(DSI_CMD2_BK0_INVSEL_RTNI_MASK,
-			      DIV_ROUND_UP(mode->htotal, 16)));
+			      (clamp((u32)mode->htotal, 512U, 1008U) - 512) / 16));
 
 	/* Command2, BK1 */
 	ST7701_DSI(st7701, DSI_CMD2BKX_SEL,