From bd4cbf6c7689d35d5d1248369d2c350f4711ca0a Mon Sep 17 00:00:00 2001 From: Mark Hills Date: Sat, 29 May 2010 16:53:23 +0100 Subject: ALSA: snd-usb-caiaq: Restore 'Control vinyl' input mode on A4DJ This feature was undocumented on early A4DJ units. It is indicated by lighting both the 'line' and 'phono' lamps at the same time. Newer units document this and the newer Windows drivers enable this for all units, so restore the functionality. This patch simplifies the code and changes the mode mapping to match the A8DJ, favouring simpler code and consistency over keeping the existing mapping. Both 'Control vinyl' and 'Phono' input modes enable the hardware preamp. The difference is the input impedance. This reverts commit 9a9527e. Acked-by: Daniel Mack Signed-off-by: Mark Hills Signed-off-by: Takashi Iwai --- sound/usb/caiaq/control.c | 30 ++---------------------------- 1 file changed, 2 insertions(+), 28 deletions(-) (limited to 'sound/usb/caiaq') diff --git a/sound/usb/caiaq/control.c b/sound/usb/caiaq/control.c index 36ed703a741..70c3866bb62 100644 --- a/sound/usb/caiaq/control.c +++ b/sound/usb/caiaq/control.c @@ -42,21 +42,12 @@ static int control_info(struct snd_kcontrol *kcontrol, switch (dev->chip.usb_id) { case USB_ID(USB_VID_NATIVEINSTRUMENTS, USB_PID_AUDIO8DJ): - if (pos == 0) { - /* current input mode of A8DJ */ - uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; - uinfo->value.integer.min = 0; - uinfo->value.integer.max = 2; - return 0; - } - break; - case USB_ID(USB_VID_NATIVEINSTRUMENTS, USB_PID_AUDIO4DJ): if (pos == 0) { - /* current input mode of A4DJ */ + /* current input mode of A8DJ and A4DJ */ uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->value.integer.min = 0; - uinfo->value.integer.max = 1; + uinfo->value.integer.max = 2; return 0; } break; @@ -86,14 +77,6 @@ static int control_get(struct snd_kcontrol *kcontrol, struct snd_usb_caiaqdev *dev = caiaqdev(chip->card); int pos = kcontrol->private_value; - if (dev->chip.usb_id == - USB_ID(USB_VID_NATIVEINSTRUMENTS, USB_PID_AUDIO4DJ)) { - /* A4DJ has only one control */ - /* do not expose hardware input mode 0 */ - ucontrol->value.integer.value[0] = dev->control_state[0] - 1; - return 0; - } - if (pos & CNT_INTVAL) ucontrol->value.integer.value[0] = dev->control_state[pos & ~CNT_INTVAL]; @@ -113,15 +96,6 @@ static int control_put(struct snd_kcontrol *kcontrol, unsigned char cmd = EP1_CMD_WRITE_IO; switch (dev->chip.usb_id) { - case USB_ID(USB_VID_NATIVEINSTRUMENTS, USB_PID_AUDIO4DJ): { - /* A4DJ has only one control */ - /* do not expose hardware input mode 0 */ - dev->control_state[0] = ucontrol->value.integer.value[0] + 1; - snd_usb_caiaq_send_command(dev, EP1_CMD_WRITE_IO, - dev->control_state, sizeof(dev->control_state)); - return 1; - } - case USB_ID(USB_VID_NATIVEINSTRUMENTS, USB_PID_TRAKTORKONTROLX1): cmd = EP1_CMD_DIMM_LEDS; break; -- cgit v1.2.3-70-g09d2 From 4efd7d8f67ac5ff80db06b77c46aca6e0d9f878b Mon Sep 17 00:00:00 2001 From: Mark Hills Date: Sat, 29 May 2010 16:53:24 +0100 Subject: ALSA: snd-usb-caiaq: Simplify single case to an 'if' After removing code, only one case remains. So use an 'if' instead. Acked-by: Daniel Mack Signed-off-by: Mark Hills Signed-off-by: Takashi Iwai --- sound/usb/caiaq/control.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'sound/usb/caiaq') diff --git a/sound/usb/caiaq/control.c b/sound/usb/caiaq/control.c index 70c3866bb62..91c804cd278 100644 --- a/sound/usb/caiaq/control.c +++ b/sound/usb/caiaq/control.c @@ -95,11 +95,9 @@ static int control_put(struct snd_kcontrol *kcontrol, int pos = kcontrol->private_value; unsigned char cmd = EP1_CMD_WRITE_IO; - switch (dev->chip.usb_id) { - case USB_ID(USB_VID_NATIVEINSTRUMENTS, USB_PID_TRAKTORKONTROLX1): + if (dev->chip.usb_id == + USB_ID(USB_VID_NATIVEINSTRUMENTS, USB_PID_TRAKTORKONTROLX1)) cmd = EP1_CMD_DIMM_LEDS; - break; - } if (pos & CNT_INTVAL) { dev->control_state[pos & ~CNT_INTVAL] -- cgit v1.2.3-70-g09d2 From 649233562cb1e83ebd2af30bd981881e51961b8b Mon Sep 17 00:00:00 2001 From: Mark Hills Date: Sat, 29 May 2010 16:53:25 +0100 Subject: ALSA: Revert "ALSA: snd-usb-caiaq: Set default input mode of A4DJ" Do not explicity set the default input mode. Use the hardware default of mode 0 ('Control vinyl'), which is now available. This reverts commit e3ca4c9. Acked-by: Daniel Mack Signed-off-by: Mark Hills Signed-off-by: Takashi Iwai --- sound/usb/caiaq/device.c | 6 ------ 1 file changed, 6 deletions(-) (limited to 'sound/usb/caiaq') diff --git a/sound/usb/caiaq/device.c b/sound/usb/caiaq/device.c index 80527182767..bf71048e324 100644 --- a/sound/usb/caiaq/device.c +++ b/sound/usb/caiaq/device.c @@ -320,12 +320,6 @@ static void __devinit setup_card(struct snd_usb_caiaqdev *dev) } break; - case USB_ID(USB_VID_NATIVEINSTRUMENTS, USB_PID_AUDIO4DJ): - /* Audio 4 DJ - default input mode to phono */ - dev->control_state[0] = 2; - snd_usb_caiaq_send_command(dev, EP1_CMD_WRITE_IO, - dev->control_state, 1); - break; } if (dev->spec.num_analog_audio_out + -- cgit v1.2.3-70-g09d2 From 55567ab70bd8551c73253e44ea5244db41eac81b Mon Sep 17 00:00:00 2001 From: Mark Hills Date: Sat, 29 May 2010 16:53:26 +0100 Subject: ALSA: snd-usb-caiaq: Bump version number to 1.3.21 Acked-by: Daniel Mack Signed-off-by: Mark Hills Signed-off-by: Takashi Iwai --- sound/usb/caiaq/device.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sound/usb/caiaq') diff --git a/sound/usb/caiaq/device.c b/sound/usb/caiaq/device.c index bf71048e324..cdfb856bddd 100644 --- a/sound/usb/caiaq/device.c +++ b/sound/usb/caiaq/device.c @@ -36,7 +36,7 @@ #include "input.h" MODULE_AUTHOR("Daniel Mack "); -MODULE_DESCRIPTION("caiaq USB audio, version 1.3.20"); +MODULE_DESCRIPTION("caiaq USB audio, version 1.3.21"); MODULE_LICENSE("GPL"); MODULE_SUPPORTED_DEVICE("{{Native Instruments, RigKontrol2}," "{Native Instruments, RigKontrol3}," -- cgit v1.2.3-70-g09d2