diff options
| author | Daniel Mack <daniel@zonque.org> | 2014-09-21 23:55:38 +0200 | 
|---|---|---|
| committer | Takashi Iwai <tiwai@suse.de> | 2014-09-22 08:52:14 +0200 | 
| commit | e76bf634870e3c5e3a767ad575f1d404c9f1cab8 (patch) | |
| tree | e9cb8f6133adf2a8309916e59f24587f08e241f4 /sound/usb/caiaq | |
| parent | a9960e6a293e6fc3ed414643bb4e4106272e4d0a (diff) | |
| download | linux-e76bf634870e3c5e3a767ad575f1d404c9f1cab8.tar.bz2 | |
ALSA: snd-usb-caiaq: Fix LED commands for Kore controller
KoreController and KoreController2 need an EP1_CMD_DIMM_LEDS command to set
their LEDs, not EP1_CMD_WRITE_IO.
Signed-off-by: Daniel Mack <daniel@zonque.org>
Reported-and-tested-by: Brad Wilson <brad.wilson.00@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/usb/caiaq')
| -rw-r--r-- | sound/usb/caiaq/control.c | 18 | 
1 files changed, 11 insertions, 7 deletions
diff --git a/sound/usb/caiaq/control.c b/sound/usb/caiaq/control.c index f65fc0987cfb..b7a7c805d63f 100644 --- a/sound/usb/caiaq/control.c +++ b/sound/usb/caiaq/control.c @@ -100,15 +100,19 @@ static int control_put(struct snd_kcontrol *kcontrol,  	struct snd_usb_caiaqdev *cdev = caiaqdev(chip->card);  	int pos = kcontrol->private_value;  	int v = ucontrol->value.integer.value[0]; -	unsigned char cmd = EP1_CMD_WRITE_IO; +	unsigned char cmd; -	if (cdev->chip.usb_id == -		USB_ID(USB_VID_NATIVEINSTRUMENTS, USB_PID_TRAKTORKONTROLX1)) -		cmd = EP1_CMD_DIMM_LEDS; - -	if (cdev->chip.usb_id == -		USB_ID(USB_VID_NATIVEINSTRUMENTS, USB_PID_MASCHINECONTROLLER)) +	switch (cdev->chip.usb_id) { +	case USB_ID(USB_VID_NATIVEINSTRUMENTS, USB_PID_MASCHINECONTROLLER): +	case USB_ID(USB_VID_NATIVEINSTRUMENTS, USB_PID_TRAKTORKONTROLX1): +	case USB_ID(USB_VID_NATIVEINSTRUMENTS, USB_PID_KORECONTROLLER2): +	case USB_ID(USB_VID_NATIVEINSTRUMENTS, USB_PID_KORECONTROLLER):  		cmd = EP1_CMD_DIMM_LEDS; +		break; +	default: +		cmd = EP1_CMD_WRITE_IO; +		break; +	}  	if (pos & CNT_INTVAL) {  		int i = pos & ~CNT_INTVAL;  |