]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ALSA: usb-audio: fix combine_word problem
authorJulian Anastasov <ja@ssi.bg>
Fri, 6 Nov 2009 21:44:53 +0000 (23:44 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 8 Dec 2009 19:16:55 +0000 (11:16 -0800)
commit f495088210c8b9e20791d995a8210170c68d2deb upstream.

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.

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.

Probably, these defines should use get_unaligned_le16 and
friends.

Signed-off-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
sound/usb/usbaudio.h

index 7191d8270c4d7dad4e3fb0fc53d246bfb9784ccb..c45600414e0f16d0e52f1b62f6214a97d8afbc10 100644 (file)
@@ -209,7 +209,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))