Message ID | 20210321083153.2810-4-dariobin@libero.it (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/tilcdc: fix LCD pixel clock setting | expand |
On 21/03/2021 10:31, Dario Binacchi wrote: > The warning message did not printed the LCD pixel clock rate but the LCD > clock divisor input rate. As a consequence, the required and real pixel > clock rates are now passed to the tilcdc_pclk_diff(). > > Signed-off-by: Dario Binacchi <dariobin@libero.it> > > --- > > Changes in v2: > - The patch has been added in version 2. > > drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c > index ac6228cb04d9..c0792c52dc02 100644 > --- a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c > +++ b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c > @@ -203,7 +203,7 @@ static void tilcdc_crtc_set_clk(struct drm_crtc *crtc) > struct drm_device *dev = crtc->dev; > struct tilcdc_drm_private *priv = dev->dev_private; > struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc); > - unsigned long clk_rate, real_rate, real_pclk_rate, pclk_rate; > + unsigned long clk_rate, real_pclk_rate, pclk_rate; > unsigned int clkdiv; > int ret; > > @@ -239,12 +239,12 @@ static void tilcdc_crtc_set_clk(struct drm_crtc *crtc) > * 5% is an arbitrary value - LCDs are usually quite tolerant > * about pixel clock rates. > */ > - real_rate = clkdiv * pclk_rate; > + real_pclk_rate = clk_rate / clkdiv; > > - if (tilcdc_pclk_diff(clk_rate, real_rate) > 5) { > + if (tilcdc_pclk_diff(pclk_rate, real_pclk_rate) > 5) { > dev_warn(dev->dev, > "effective pixel clock rate (%luHz) differs from the calculated rate (%luHz)\n", > - clk_rate, real_rate); > + pclk_rate, real_pclk_rate); Aren't these backwards? "Effective" is the real one in the HW. I'm not sure what "calculated" means here, I guess it should be "requested". Tomi
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c index ac6228cb04d9..c0792c52dc02 100644 --- a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c +++ b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c @@ -203,7 +203,7 @@ static void tilcdc_crtc_set_clk(struct drm_crtc *crtc) struct drm_device *dev = crtc->dev; struct tilcdc_drm_private *priv = dev->dev_private; struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc); - unsigned long clk_rate, real_rate, real_pclk_rate, pclk_rate; + unsigned long clk_rate, real_pclk_rate, pclk_rate; unsigned int clkdiv; int ret; @@ -239,12 +239,12 @@ static void tilcdc_crtc_set_clk(struct drm_crtc *crtc) * 5% is an arbitrary value - LCDs are usually quite tolerant * about pixel clock rates. */ - real_rate = clkdiv * pclk_rate; + real_pclk_rate = clk_rate / clkdiv; - if (tilcdc_pclk_diff(clk_rate, real_rate) > 5) { + if (tilcdc_pclk_diff(pclk_rate, real_pclk_rate) > 5) { dev_warn(dev->dev, "effective pixel clock rate (%luHz) differs from the calculated rate (%luHz)\n", - clk_rate, real_rate); + pclk_rate, real_pclk_rate); } }
The warning message did not printed the LCD pixel clock rate but the LCD clock divisor input rate. As a consequence, the required and real pixel clock rates are now passed to the tilcdc_pclk_diff(). Signed-off-by: Dario Binacchi <dariobin@libero.it> --- Changes in v2: - The patch has been added in version 2. drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)