* [PATCH v3 0/3] drm/tilcdc: fix LCD pixel clock setting
@ 2021-03-22 21:33 Dario Binacchi
2021-03-22 21:33 ` [PATCH v3 1/3] drm/tilcdc: rename req_rate to pclk_rate Dario Binacchi
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Dario Binacchi @ 2021-03-22 21:33 UTC (permalink / raw)
To: linux-kernel
Cc: Tomi Valkeinen, David Airlie, dri-devel, Jyri Sarha, Dario Binacchi
The series was born from a patch to fix the LCD pixel clock setting.
Two additional patches have been added to this. One renames a misleading
variable name that was probably the cause of the bug and the other fixes
a warning message.
Changes in v3:
- Replace calculated with requested in the warning message.
- Swap the positions of the real_pclk_rate, and pclk_rate parameters
in the warning message.
Changes in v2:
- The patch has been added in version 2.
- Rename clk_div_rate to real_pclk_rate.
- Provide pixel clock rate to tilcdc_pclk_diff().
- The patch has been added in version 2.
Dario Binacchi (3):
drm/tilcdc: rename req_rate to pclk_rate
drm/tilcdc: fix LCD pixel clock setting
drm/tilcdc: fix pixel clock setting warning message
drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
--
2.17.1
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v3 1/3] drm/tilcdc: rename req_rate to pclk_rate
2021-03-22 21:33 [PATCH v3 0/3] drm/tilcdc: fix LCD pixel clock setting Dario Binacchi
@ 2021-03-22 21:33 ` Dario Binacchi
2021-03-22 21:33 ` [PATCH v3 2/3] drm/tilcdc: fix LCD pixel clock setting Dario Binacchi
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Dario Binacchi @ 2021-03-22 21:33 UTC (permalink / raw)
To: linux-kernel
Cc: Tomi Valkeinen, David Airlie, dri-devel, Jyri Sarha, Dario Binacchi
The req_rate name is a little misleading, so let's rename to pclk_rate
(pixel clock rate).
Signed-off-by: Dario Binacchi <dariobin@libero.it>
---
(no changes since v2)
Changes in v2:
- The patch has been added in version 2.
drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
index 30213708fc99..aeec5786617d 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
@@ -203,18 +203,18 @@ 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, req_rate;
+ unsigned long clk_rate, real_rate, pclk_rate;
unsigned int clkdiv;
int ret;
clkdiv = 2; /* first try using a standard divider of 2 */
/* mode.clock is in KHz, set_rate wants parameter in Hz */
- req_rate = crtc->mode.clock * 1000;
+ pclk_rate = crtc->mode.clock * 1000;
- ret = clk_set_rate(priv->clk, req_rate * clkdiv);
+ ret = clk_set_rate(priv->clk, pclk_rate * clkdiv);
clk_rate = clk_get_rate(priv->clk);
- if (ret < 0 || tilcdc_pclk_diff(req_rate, clk_rate) > 5) {
+ if (ret < 0 || tilcdc_pclk_diff(pclk_rate, clk_rate) > 5) {
/*
* If we fail to set the clock rate (some architectures don't
* use the common clock framework yet and may not implement
@@ -229,7 +229,7 @@ static void tilcdc_crtc_set_clk(struct drm_crtc *crtc)
return;
}
- clkdiv = DIV_ROUND_CLOSEST(clk_rate, req_rate);
+ clkdiv = DIV_ROUND_CLOSEST(clk_rate, pclk_rate);
/*
* Emit a warning if the real clock rate resulting from the
@@ -238,7 +238,7 @@ 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 * req_rate;
+ real_rate = clkdiv * pclk_rate;
if (tilcdc_pclk_diff(clk_rate, real_rate) > 5) {
dev_warn(dev->dev,
--
2.17.1
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v3 2/3] drm/tilcdc: fix LCD pixel clock setting
2021-03-22 21:33 [PATCH v3 0/3] drm/tilcdc: fix LCD pixel clock setting Dario Binacchi
2021-03-22 21:33 ` [PATCH v3 1/3] drm/tilcdc: rename req_rate to pclk_rate Dario Binacchi
@ 2021-03-22 21:33 ` Dario Binacchi
2021-03-22 21:33 ` [PATCH v3 3/3] drm/tilcdc: fix pixel clock setting warning message Dario Binacchi
2021-03-23 12:05 ` [PATCH v3 0/3] drm/tilcdc: fix LCD pixel clock setting Jyri Sarha
3 siblings, 0 replies; 5+ messages in thread
From: Dario Binacchi @ 2021-03-22 21:33 UTC (permalink / raw)
To: linux-kernel
Cc: Tomi Valkeinen, David Airlie, dri-devel, Jyri Sarha, Dario Binacchi
The tilcdc_pclk_diff() compares the requested pixel clock rate to the
real one, so passing it clk_rate instead of clk_rate / clkdiv caused
it to fail even if the clk_rate was properly set. Adding the
real_pclk_rate variable makes the code more readable.
Signed-off-by: Dario Binacchi <dariobin@libero.it>
---
(no changes since v2)
Changes in v2:
- Rename clk_div_rate to real_pclk_rate.
- Provide pixel clock rate to tilcdc_pclk_diff().
drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
index aeec5786617d..ac6228cb04d9 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, pclk_rate;
+ unsigned long clk_rate, real_rate, real_pclk_rate, pclk_rate;
unsigned int clkdiv;
int ret;
@@ -214,7 +214,8 @@ static void tilcdc_crtc_set_clk(struct drm_crtc *crtc)
ret = clk_set_rate(priv->clk, pclk_rate * clkdiv);
clk_rate = clk_get_rate(priv->clk);
- if (ret < 0 || tilcdc_pclk_diff(pclk_rate, clk_rate) > 5) {
+ real_pclk_rate = clk_rate / clkdiv;
+ if (ret < 0 || tilcdc_pclk_diff(pclk_rate, real_pclk_rate) > 5) {
/*
* If we fail to set the clock rate (some architectures don't
* use the common clock framework yet and may not implement
--
2.17.1
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v3 3/3] drm/tilcdc: fix pixel clock setting warning message
2021-03-22 21:33 [PATCH v3 0/3] drm/tilcdc: fix LCD pixel clock setting Dario Binacchi
2021-03-22 21:33 ` [PATCH v3 1/3] drm/tilcdc: rename req_rate to pclk_rate Dario Binacchi
2021-03-22 21:33 ` [PATCH v3 2/3] drm/tilcdc: fix LCD pixel clock setting Dario Binacchi
@ 2021-03-22 21:33 ` Dario Binacchi
2021-03-23 12:05 ` [PATCH v3 0/3] drm/tilcdc: fix LCD pixel clock setting Jyri Sarha
3 siblings, 0 replies; 5+ messages in thread
From: Dario Binacchi @ 2021-03-22 21:33 UTC (permalink / raw)
To: linux-kernel
Cc: Tomi Valkeinen, David Airlie, dri-devel, Jyri Sarha, Dario Binacchi
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 v3:
- Replace calculated with requested in the warning message.
- Swap the positions of the real_pclk_rate, and pclk_rate parameters
in the warning message.
Changes in v2:
- The patch has been added in version 2.
drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
index ac6228cb04d9..381a706ab7c2 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);
+ "effective pixel clock rate (%luHz) differs from the requested rate (%luHz)\n",
+ real_pclk_rate, pclk_rate);
}
}
--
2.17.1
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v3 0/3] drm/tilcdc: fix LCD pixel clock setting
2021-03-22 21:33 [PATCH v3 0/3] drm/tilcdc: fix LCD pixel clock setting Dario Binacchi
` (2 preceding siblings ...)
2021-03-22 21:33 ` [PATCH v3 3/3] drm/tilcdc: fix pixel clock setting warning message Dario Binacchi
@ 2021-03-23 12:05 ` Jyri Sarha
3 siblings, 0 replies; 5+ messages in thread
From: Jyri Sarha @ 2021-03-23 12:05 UTC (permalink / raw)
To: Dario Binacchi; +Cc: David Airlie, Tomi Valkeinen, dri-devel, linux-kernel
Thanks,
Reviewed-by: Jyri Sarha <jyri.sarha@iki.fi>
for the series.
I'll merge these later today.
Best regards,
Jyri
On 2021-03-22 23:33, Dario Binacchi wrote:
> The series was born from a patch to fix the LCD pixel clock setting.
> Two additional patches have been added to this. One renames a
> misleading
> variable name that was probably the cause of the bug and the other
> fixes
> a warning message.
>
>
> Changes in v3:
> - Replace calculated with requested in the warning message.
> - Swap the positions of the real_pclk_rate, and pclk_rate parameters
> in the warning message.
>
> Changes in v2:
> - The patch has been added in version 2.
> - Rename clk_div_rate to real_pclk_rate.
> - Provide pixel clock rate to tilcdc_pclk_diff().
> - The patch has been added in version 2.
>
> Dario Binacchi (3):
> drm/tilcdc: rename req_rate to pclk_rate
> drm/tilcdc: fix LCD pixel clock setting
> drm/tilcdc: fix pixel clock setting warning message
>
> drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 19 ++++++++++---------
> 1 file changed, 10 insertions(+), 9 deletions(-)
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-03-23 12:06 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-22 21:33 [PATCH v3 0/3] drm/tilcdc: fix LCD pixel clock setting Dario Binacchi
2021-03-22 21:33 ` [PATCH v3 1/3] drm/tilcdc: rename req_rate to pclk_rate Dario Binacchi
2021-03-22 21:33 ` [PATCH v3 2/3] drm/tilcdc: fix LCD pixel clock setting Dario Binacchi
2021-03-22 21:33 ` [PATCH v3 3/3] drm/tilcdc: fix pixel clock setting warning message Dario Binacchi
2021-03-23 12:05 ` [PATCH v3 0/3] drm/tilcdc: fix LCD pixel clock setting Jyri Sarha
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).