Message ID | 20231208154847.130615-2-macroalpha82@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add Support for RG-ARC Panel | expand |
On 08/12/2023 16:48, Chris Morgan wrote: > From: Chris Morgan <macromorgan@hotmail.com> > > The AVCL register, according to the datasheet, comes in increments > of -0.2v between -4.4v (represented by 0x0) to -5.0v (represented > by 0x3). The current calculation is done by adding the defined > AVCL value in mV to -4400 and then dividing by 200 to get the register > value. Unfortunately if I subtract -4400 from -4400 I get -8800, which > divided by 200 gives me -44. If I instead subtract -4400 from -4400 > I get 0, which divided by 200 gives me 0. Based on the datasheet this > is the expected register value. > > Fixes: 83b7a8e7e88e ("drm/panel/panel-sitronix-st7701: Parametrize voltage and timing") > > Signed-off-by: Chris Morgan <macromorgan@hotmail.com> > --- > drivers/gpu/drm/panel/panel-sitronix-st7701.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7701.c b/drivers/gpu/drm/panel/panel-sitronix-st7701.c > index 0459965e1b4f..036ac403ed21 100644 > --- a/drivers/gpu/drm/panel/panel-sitronix-st7701.c > +++ b/drivers/gpu/drm/panel/panel-sitronix-st7701.c > @@ -288,7 +288,7 @@ static void st7701_init_sequence(struct st7701 *st7701) > FIELD_PREP(DSI_CMD2_BK1_PWRCTRL2_AVDD_MASK, > DIV_ROUND_CLOSEST(desc->avdd_mv - 6200, 200)) | > FIELD_PREP(DSI_CMD2_BK1_PWRCTRL2_AVCL_MASK, > - DIV_ROUND_CLOSEST(-4400 + desc->avcl_mv, 200))); > + DIV_ROUND_CLOSEST(-4400 - desc->avcl_mv, 200))); > > /* T2D = 0.2us * T2D[3:0] */ > ST7701_DSI(st7701, DSI_CMD2_BK1_SPD1, Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
On Fri, Dec 8, 2023 at 4:48 PM Chris Morgan <macroalpha82@gmail.com> wrote: > From: Chris Morgan <macromorgan@hotmail.com> > > The AVCL register, according to the datasheet, comes in increments > of -0.2v between -4.4v (represented by 0x0) to -5.0v (represented > by 0x3). The current calculation is done by adding the defined > AVCL value in mV to -4400 and then dividing by 200 to get the register > value. Unfortunately if I subtract -4400 from -4400 I get -8800, which > divided by 200 gives me -44. If I instead subtract -4400 from -4400 > I get 0, which divided by 200 gives me 0. Based on the datasheet this > is the expected register value. > > Fixes: 83b7a8e7e88e ("drm/panel/panel-sitronix-st7701: Parametrize voltage and timing") > > Signed-off-by: Chris Morgan <macromorgan@hotmail.com> Good catch! Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Yours, Linus Walleij
diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7701.c b/drivers/gpu/drm/panel/panel-sitronix-st7701.c index 0459965e1b4f..036ac403ed21 100644 --- a/drivers/gpu/drm/panel/panel-sitronix-st7701.c +++ b/drivers/gpu/drm/panel/panel-sitronix-st7701.c @@ -288,7 +288,7 @@ static void st7701_init_sequence(struct st7701 *st7701) FIELD_PREP(DSI_CMD2_BK1_PWRCTRL2_AVDD_MASK, DIV_ROUND_CLOSEST(desc->avdd_mv - 6200, 200)) | FIELD_PREP(DSI_CMD2_BK1_PWRCTRL2_AVCL_MASK, - DIV_ROUND_CLOSEST(-4400 + desc->avcl_mv, 200))); + DIV_ROUND_CLOSEST(-4400 - desc->avcl_mv, 200))); /* T2D = 0.2us * T2D[3:0] */ ST7701_DSI(st7701, DSI_CMD2_BK1_SPD1,