mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] ALSA: at73c213: clk_round_rate() can return a zero upon error
@ 2013-12-10  2:40 Paul Walmsley
  2013-12-10  7:38 ` Hans-Christian Egtvedt
  2013-12-10  7:56 ` Takashi Iwai
  0 siblings, 2 replies; 5+ messages in thread
From: Paul Walmsley @ 2013-12-10  2:40 UTC (permalink / raw)
  To: Hans-Christian Egtvedt, Takashi Iwai, Jaroslav Kysela
  Cc: alsa-devel, linux-kernel


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: Hans-Christian Egtvedt <egtvedt@samfundet.no>
Cc: Takashi Iwai <tiwai@suse.de>
Cc: Jaroslav Kysela <perex@perex.cz>
---
Applies on v3.13-rc3.  See also:

http://marc.info/?l=linux-arm-kernel&m=138542591313620&w=2

  sound/spi/at73c213.c |    2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sound/spi/at73c213.c b/sound/spi/at73c213.c
index 8e3d9a6c7a3b..25c38afaee49 100644
--- a/sound/spi/at73c213.c
+++ b/sound/spi/at73c213.c
@@ -174,7 +174,7 @@ static int snd_at73c213_set_bitrate(struct snd_at73c213 *chip)
  		dac_rate_new = 8 * (ssc_rate / ssc_div);

  		status = clk_round_rate(chip->board->dac_clk, dac_rate_new);
-		if (status < 0)
+		if (status <= 0)
  			return status;

  		/* Ignore difference smaller than 256 Hz. */

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] ALSA: at73c213: clk_round_rate() can return a zero upon error
  2013-12-10  2:40 [PATCH] ALSA: at73c213: clk_round_rate() can return a zero upon error Paul Walmsley
@ 2013-12-10  7:38 ` Hans-Christian Egtvedt
  2013-12-10  7:56 ` Takashi Iwai
  1 sibling, 0 replies; 5+ messages in thread
From: Hans-Christian Egtvedt @ 2013-12-10  7:38 UTC (permalink / raw)
  To: Paul Walmsley; +Cc: Takashi Iwai, Jaroslav Kysela, alsa-devel, linux-kernel

Around Mon 09 Dec 2013 18:40:48 -0800 or thereabout, 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: Hans-Christian Egtvedt <egtvedt@samfundet.no>
> Cc: Takashi Iwai <tiwai@suse.de>
> Cc: Jaroslav Kysela <perex@perex.cz>

Thanks for fixing.

Acked-by: Hans-Christian Egtvedt <egtvedt@samfundet.no>

> ---
> Applies on v3.13-rc3.  See also:
> 
> http://marc.info/?l=linux-arm-kernel&m=138542591313620&w=2
> 
>  sound/spi/at73c213.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/sound/spi/at73c213.c b/sound/spi/at73c213.c
> index 8e3d9a6c7a3b..25c38afaee49 100644
> --- a/sound/spi/at73c213.c
> +++ b/sound/spi/at73c213.c
> @@ -174,7 +174,7 @@ static int snd_at73c213_set_bitrate(struct snd_at73c213 *chip)
>  		dac_rate_new = 8 * (ssc_rate / ssc_div);
> 
>  		status = clk_round_rate(chip->board->dac_clk, dac_rate_new);
> -		if (status < 0)
> +		if (status <= 0)
>  			return status;
> 
>  		/* Ignore difference smaller than 256 Hz. */
> 

-- 
mvh
Hans-Christian Egtvedt

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] ALSA: at73c213: clk_round_rate() can return a zero upon error
  2013-12-10  2:40 [PATCH] ALSA: at73c213: clk_round_rate() can return a zero upon error Paul Walmsley
  2013-12-10  7:38 ` Hans-Christian Egtvedt
@ 2013-12-10  7:56 ` Takashi Iwai
  2013-12-10 19:46   ` Paul Walmsley
  1 sibling, 1 reply; 5+ messages in thread
From: Takashi Iwai @ 2013-12-10  7:56 UTC (permalink / raw)
  To: Paul Walmsley
  Cc: Hans-Christian Egtvedt, Jaroslav Kysela, alsa-devel, linux-kernel

At Mon, 9 Dec 2013 18:40:48 -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: Hans-Christian Egtvedt <egtvedt@samfundet.no>
> Cc: Takashi Iwai <tiwai@suse.de>
> Cc: Jaroslav Kysela <perex@perex.cz>
> ---
> Applies on v3.13-rc3.  See also:
> 
> http://marc.info/?l=linux-arm-kernel&m=138542591313620&w=2

Is the behavior "returning zero upon error" already in 3.13?  That is,
should this (and another) patch be taken as a 3.13-fix patch, or it's
for 3.14?


thanks,

Takashi


> 
>   sound/spi/at73c213.c |    2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/sound/spi/at73c213.c b/sound/spi/at73c213.c
> index 8e3d9a6c7a3b..25c38afaee49 100644
> --- a/sound/spi/at73c213.c
> +++ b/sound/spi/at73c213.c
> @@ -174,7 +174,7 @@ static int snd_at73c213_set_bitrate(struct snd_at73c213 *chip)
>   		dac_rate_new = 8 * (ssc_rate / ssc_div);
> 
>   		status = clk_round_rate(chip->board->dac_clk, dac_rate_new);
> -		if (status < 0)
> +		if (status <= 0)
>   			return status;
> 
>   		/* Ignore difference smaller than 256 Hz. */
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] ALSA: at73c213: clk_round_rate() can return a zero upon error
  2013-12-10  7:56 ` Takashi Iwai
@ 2013-12-10 19:46   ` Paul Walmsley
  2013-12-10 20:20     ` Takashi Iwai
  0 siblings, 1 reply; 5+ messages in thread
From: Paul Walmsley @ 2013-12-10 19:46 UTC (permalink / raw)
  To: Takashi Iwai
  Cc: Hans-Christian Egtvedt, Jaroslav Kysela, alsa-devel, linux-kernel

On Mon, 9 Dec 2013, Takashi Iwai wrote:

> At Mon, 9 Dec 2013 18:40:48 -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.
>
> Is the behavior "returning zero upon error" already in 3.13?  That is,
> should this (and another) patch be taken as a 3.13-fix patch, or it's
> for 3.14?

It depends on the platform.  The Common Clock Framework code returns 0 
upon error right now.  But other clock framework implementations, such as 
the one used by the Atmel AT91 boards, return negative error codes.  And 
looking at the mainline code, it looks like the at73c213 chip is most 
likely to be used on AT91 boards.

So if you want to send this patch for v3.13-rc, it's probably justified,
but it's low-priority.  v3.14 is also fine.

I'll be sending some followup patches to the platform maintainers to 
change the clock framework code to return 0 upon error.  But those can't 
be applied until the drivers are fixed, if we want to avoid regressions in 
error path handling.  So from that point of view, applying these driver 
patches in v3.13-rc would mean there is less delay to getting the platform 
clock framework fixes upstream :-)


- Paul

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] ALSA: at73c213: clk_round_rate() can return a zero upon error
  2013-12-10 19:46   ` Paul Walmsley
@ 2013-12-10 20:20     ` Takashi Iwai
  0 siblings, 0 replies; 5+ messages in thread
From: Takashi Iwai @ 2013-12-10 20:20 UTC (permalink / raw)
  To: Paul Walmsley
  Cc: Hans-Christian Egtvedt, Jaroslav Kysela, alsa-devel, linux-kernel

At Tue, 10 Dec 2013 11:46:43 -0800,
Paul Walmsley wrote:
> 
> On Mon, 9 Dec 2013, Takashi Iwai wrote:
> 
> > At Mon, 9 Dec 2013 18:40:48 -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.
> >
> > Is the behavior "returning zero upon error" already in 3.13?  That is,
> > should this (and another) patch be taken as a 3.13-fix patch, or it's
> > for 3.14?
> 
> It depends on the platform.  The Common Clock Framework code returns 0 
> upon error right now.  But other clock framework implementations, such as 
> the one used by the Atmel AT91 boards, return negative error codes.  And 
> looking at the mainline code, it looks like the at73c213 chip is most 
> likely to be used on AT91 boards.
> 
> So if you want to send this patch for v3.13-rc, it's probably justified,
> but it's low-priority.  v3.14 is also fine.
> 
> I'll be sending some followup patches to the platform maintainers to 
> change the clock framework code to return 0 upon error.  But those can't 
> be applied until the drivers are fixed, if we want to avoid regressions in 
> error path handling.  So from that point of view, applying these driver 
> patches in v3.13-rc would mean there is less delay to getting the platform 
> clock framework fixes upstream :-)

OK, unless any known regressions are reported, I'm inclined to put
this for 3.14.  Now applied to for-next branch.  Thanks!


Takashi

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-12-10 20:20 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-12-10  2:40 [PATCH] ALSA: at73c213: clk_round_rate() can return a zero upon error Paul Walmsley
2013-12-10  7:38 ` Hans-Christian Egtvedt
2013-12-10  7:56 ` Takashi Iwai
2013-12-10 19:46   ` Paul Walmsley
2013-12-10 20:20     ` Takashi Iwai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®