lkml.org 
[lkml]   [2009]   [Nov]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] usb-audio: fix combine_word problem
At Fri, 6 Nov 2009 23:44:53 +0200 (EET),
Julian Anastasov wrote:
>
>
> Fix combine_word problem where first octet is not
> read properly. The only affected place seems to be the
> INPUT_TERMINAL type. Before now, sound controls can be created
> with the output terminal's name which is a fallback mechanism
> used only for unknown input terminal types. For example,
> Line can wrongly appear as Speaker. After the change it
> should appear as Line.

Wow, this is really an old bug. I wonder no one noticed it, so far...

> The side effect of this change can be that users
> can expect the wrong control name in their scripts or
> programs while now we return the correct one.

Yes, but it's a right "fix", so let it be.

> Probably, these defines should use get_unaligned_le16 and
> friends.

Sounds like a good idea. But 24bit version is still missing :)

> Signed-off-by: Julian Anastasov <ja@ssi.bg>

Applied now, and added Cc to stable kernel.

Thanks!


Takashi

> ---
>
> diff -urp v2.6.31/linux/sound/usb/usbaudio.h linux/sound/usb/usbaudio.h
> --- v2.6.31/linux/sound/usb/usbaudio.h 2009-06-13 10:53:59.000000000 +0300
> +++ linux/sound/usb/usbaudio.h 2009-11-06 22:38:00.000000000 +0200
> @@ -210,7 +210,7 @@ struct snd_usb_midi_endpoint_info {
> /*
> */
>
> -#define combine_word(s) ((*s) | ((unsigned int)(s)[1] << 8))
> +#define combine_word(s) ((*(s)) | ((unsigned int)(s)[1] << 8))
> #define combine_triple(s) (combine_word(s) | ((unsigned int)(s)[2] << 16))
> #define combine_quad(s) (combine_triple(s) | ((unsigned int)(s)[3] << 24))
>
>


\
 
 \ /
  Last update: 2009-11-07 10:25    [W:0.036 / U:0.564 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site