* [PATCH] gpu: host1x: clk_round_rate() can return a zero upon error
@ 2013-12-10 2:00 Paul Walmsley
2013-12-11 7:51 ` Sascha Hauer
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Paul Walmsley @ 2013-12-10 2:00 UTC (permalink / raw)
To: Mikko Perttunen, Arto Merilainen, Thierry Reding,
Terje Bergström
Cc: linux-tegra, linux-kernel, dri-devel
[-- Attachment #1: Type: text/plain, Size: 1405 bytes --]
Treat both negative and zero return values from clk_round_rate() as
errors. This is needed since subsequent patches will convert
clk_round_rate()'s return value to be an unsigned type, rather than a
signed type, since some clock sources can generate rates higher than
(2^31)-1 Hz.
Eventually, when calling clk_round_rate(), only a return value of zero
will be considered a error. All other values will be considered valid
rates. The comparison against values less than 0 is kept to preserve
the correct behavior in the meantime.
Signed-off-by: Paul Walmsley <pwalmsley@nvidia.com>
Cc: Mikko Perttunen <mperttunen@nvidia.com>
Cc: Arto Merilainen <amerilainen@nvidia.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Terje Bergström <tbergstrom@nvidia.com>
---
Applies on v3.13-rc3. See also:
http://marc.info/?l=linux-arm-kernel&m=138542591313620&w=2
drivers/gpu/drm/tegra/hdmi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/tegra/hdmi.c b/drivers/gpu/drm/tegra/hdmi.c
index 0cd9bc2056e8..8cf9d3aeb0cd 100644
--- a/drivers/gpu/drm/tegra/hdmi.c
+++ b/drivers/gpu/drm/tegra/hdmi.c
@@ -959,7 +959,7 @@ static int tegra_output_hdmi_check_mode(struct tegra_output *output,
parent = clk_get_parent(hdmi->clk_parent);
err = clk_round_rate(parent, pclk * 4);
- if (err < 0)
+ if (err <= 0)
*status = MODE_NOCLOCK;
else
*status = MODE_OK;
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] gpu: host1x: clk_round_rate() can return a zero upon error
2013-12-10 2:00 [PATCH] gpu: host1x: clk_round_rate() can return a zero upon error Paul Walmsley
@ 2013-12-11 7:51 ` Sascha Hauer
2013-12-11 7:55 ` Paul Walmsley
2013-12-11 15:19 ` Thierry Reding
2013-12-12 11:03 ` Thierry Reding
2 siblings, 1 reply; 6+ messages in thread
From: Sascha Hauer @ 2013-12-11 7:51 UTC (permalink / raw)
To: Paul Walmsley
Cc: Mikko Perttunen, Arto Merilainen, Thierry Reding,
Terje Bergström, linux-tegra, linux-kernel, dri-devel
On Mon, Dec 09, 2013 at 06:00:12PM -0800, Paul Walmsley wrote:
>
> Treat both negative and zero return values from clk_round_rate() as
> errors. This is needed since subsequent patches will convert
> clk_round_rate()'s return value to be an unsigned type, rather than a
> signed type, since some clock sources can generate rates higher than
> (2^31)-1 Hz.
>
> Eventually, when calling clk_round_rate(), only a return value of zero
> will be considered a error. All other values will be considered valid
> rates. The comparison against values less than 0 is kept to preserve
> the correct behavior in the meantime.
Shouldn't it be an error when the result is not within sensible limits
instead? What do you do with a rate of 1Hz?
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] gpu: host1x: clk_round_rate() can return a zero upon error
2013-12-11 7:51 ` Sascha Hauer
@ 2013-12-11 7:55 ` Paul Walmsley
0 siblings, 0 replies; 6+ messages in thread
From: Paul Walmsley @ 2013-12-11 7:55 UTC (permalink / raw)
To: Sascha Hauer
Cc: Mikko Perttunen, Arto Merilainen, Thierry Reding, Terje Bergstrom,
linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org,
dri-devel@lists.freedesktop.org
On 12/10/2013 11:51 PM, Sascha Hauer wrote:
> On Mon, Dec 09, 2013 at 06:00:12PM -0800, Paul Walmsley wrote:
>> Treat both negative and zero return values from clk_round_rate() as
>> errors. This is needed since subsequent patches will convert
>> clk_round_rate()'s return value to be an unsigned type, rather than a
>> signed type, since some clock sources can generate rates higher than
>> (2^31)-1 Hz.
>>
>> Eventually, when calling clk_round_rate(), only a return value of zero
>> will be considered a error. All other values will be considered valid
>> rates. The comparison against values less than 0 is kept to preserve
>> the correct behavior in the meantime.
> Shouldn't it be an error when the result is not within sensible limits
> instead? What do you do with a rate of 1Hz?
It's up to the caller of clk_round_rate() to decide what doesn't make
sense for its use-case. The caller can certainly react to non-zero
rates as it likes.
The 0 return code (and the previous negative return values that were
used previously) are just intended for the clock framework to signal
explicit errors encountered during clk_round_rate()'s execution.
- Paul
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] gpu: host1x: clk_round_rate() can return a zero upon error
2013-12-10 2:00 [PATCH] gpu: host1x: clk_round_rate() can return a zero upon error Paul Walmsley
2013-12-11 7:51 ` Sascha Hauer
@ 2013-12-11 15:19 ` Thierry Reding
2013-12-11 19:15 ` Paul Walmsley
2013-12-12 11:03 ` Thierry Reding
2 siblings, 1 reply; 6+ messages in thread
From: Thierry Reding @ 2013-12-11 15:19 UTC (permalink / raw)
To: Paul Walmsley
Cc: Mikko Perttunen, Arto Merilainen, Terje Bergström,
linux-tegra, linux-kernel, dri-devel
[-- Attachment #1: Type: text/plain, Size: 1950 bytes --]
On Mon, Dec 09, 2013 at 06:00:12PM -0800, Paul Walmsley wrote:
>
> Treat both negative and zero return values from clk_round_rate() as
> errors. This is needed since subsequent patches will convert
> clk_round_rate()'s return value to be an unsigned type, rather than a
> signed type, since some clock sources can generate rates higher than
> (2^31)-1 Hz.
>
> Eventually, when calling clk_round_rate(), only a return value of zero
> will be considered a error. All other values will be considered valid
> rates. The comparison against values less than 0 is kept to preserve
> the correct behavior in the meantime.
>
> Signed-off-by: Paul Walmsley <pwalmsley@nvidia.com>
> Cc: Mikko Perttunen <mperttunen@nvidia.com>
> Cc: Arto Merilainen <amerilainen@nvidia.com>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Terje Bergström <tbergstrom@nvidia.com>
> ---
> Applies on v3.13-rc3. See also:
>
> http://marc.info/?l=linux-arm-kernel&m=138542591313620&w=2
>
> drivers/gpu/drm/tegra/hdmi.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/tegra/hdmi.c b/drivers/gpu/drm/tegra/hdmi.c
> index 0cd9bc2056e8..8cf9d3aeb0cd 100644
> --- a/drivers/gpu/drm/tegra/hdmi.c
> +++ b/drivers/gpu/drm/tegra/hdmi.c
> @@ -959,7 +959,7 @@ static int tegra_output_hdmi_check_mode(struct tegra_output *output,
> parent = clk_get_parent(hdmi->clk_parent);
>
> err = clk_round_rate(parent, pclk * 4);
> - if (err < 0)
> + if (err <= 0)
> *status = MODE_NOCLOCK;
> else
> *status = MODE_OK;
Looks good. Out of curiosity, what are the plans on how to change the
clk_round_rate() API. I assume that at some point it will be modified
to return an unsigned long? At that point we'll need to update all
drivers as well to make sure the signed variables don't overflow.
Perhaps unsigned long long would be a better choice for future
compatibility?
Thierry
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] gpu: host1x: clk_round_rate() can return a zero upon error
2013-12-11 15:19 ` Thierry Reding
@ 2013-12-11 19:15 ` Paul Walmsley
0 siblings, 0 replies; 6+ messages in thread
From: Paul Walmsley @ 2013-12-11 19:15 UTC (permalink / raw)
To: Thierry Reding
Cc: Mikko Perttunen, Arto Merilainen, Terje Bergstrom,
linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org,
dri-devel@lists.freedesktop.org
On Wed, 11 Dec 2013, Thierry Reding wrote:
> Perhaps unsigned long long would be a better choice for future
> compatibility?
Yes - at this point am planning to go straight to u64.
- Paul
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] gpu: host1x: clk_round_rate() can return a zero upon error
2013-12-10 2:00 [PATCH] gpu: host1x: clk_round_rate() can return a zero upon error Paul Walmsley
2013-12-11 7:51 ` Sascha Hauer
2013-12-11 15:19 ` Thierry Reding
@ 2013-12-12 11:03 ` Thierry Reding
2 siblings, 0 replies; 6+ messages in thread
From: Thierry Reding @ 2013-12-12 11:03 UTC (permalink / raw)
To: Paul Walmsley
Cc: Mikko Perttunen, Arto Merilainen, Terje Bergström,
linux-tegra, linux-kernel, dri-devel
[-- Attachment #1: Type: text/plain, Size: 1119 bytes --]
On Mon, Dec 09, 2013 at 06:00:12PM -0800, Paul Walmsley wrote:
>
> Treat both negative and zero return values from clk_round_rate() as
> errors. This is needed since subsequent patches will convert
> clk_round_rate()'s return value to be an unsigned type, rather than a
> signed type, since some clock sources can generate rates higher than
> (2^31)-1 Hz.
>
> Eventually, when calling clk_round_rate(), only a return value of zero
> will be considered a error. All other values will be considered valid
> rates. The comparison against values less than 0 is kept to preserve
> the correct behavior in the meantime.
>
> Signed-off-by: Paul Walmsley <pwalmsley@nvidia.com>
> Cc: Mikko Perttunen <mperttunen@nvidia.com>
> Cc: Arto Merilainen <amerilainen@nvidia.com>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Terje Bergström <tbergstrom@nvidia.com>
> ---
> Applies on v3.13-rc3. See also:
>
> http://marc.info/?l=linux-arm-kernel&m=138542591313620&w=2
>
> drivers/gpu/drm/tegra/hdmi.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
Applied, thanks.
Thierry
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2013-12-12 11:05 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-10 2:00 [PATCH] gpu: host1x: clk_round_rate() can return a zero upon error Paul Walmsley
2013-12-11 7:51 ` Sascha Hauer
2013-12-11 7:55 ` Paul Walmsley
2013-12-11 15:19 ` Thierry Reding
2013-12-11 19:15 ` Paul Walmsley
2013-12-12 11:03 ` Thierry Reding
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).