* [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®