ALSA: ctxfi - Fix wrong model id for UAA
authorTakashi Iwai <tiwai@suse.de>
Mon, 8 Jun 2009 16:29:38 +0000 (18:29 +0200)
committerTakashi Iwai <tiwai@suse.de>
Mon, 8 Jun 2009 16:30:37 +0000 (18:30 +0200)
CTUAA should be checked instead of CTHENDRIX.  The latter is for 20k2 chip.
Also, fixed the detection of UAA/HENDRIX models by fixing the mask bits.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/ctxfi/ctatc.c
sound/pci/ctxfi/cthw20k1.c

index 002a70e..4e25b24 100644 (file)
@@ -44,8 +44,8 @@ static struct snd_pci_quirk __devinitdata subsys_20k1_list[] = {
        SND_PCI_QUIRK(PCI_VENDOR_ID_CREATIVE, 0x002f, "SB055x", CTSB055X),
        SND_PCI_QUIRK(PCI_VENDOR_ID_CREATIVE, 0x0029, "SB073x", CTSB073X),
        SND_PCI_QUIRK(PCI_VENDOR_ID_CREATIVE, 0x0031, "SB073x", CTSB073X),
-       SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_CREATIVE, 0x6000,
-                          PCI_SUBDEVICE_ID_CREATIVE_HENDRIX, "UAA", CTUAA),
+       SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_CREATIVE, 0xf000, 0x6000,
+                          "UAA", CTUAA),
        SND_PCI_QUIRK_VENDOR(PCI_VENDOR_ID_CREATIVE,
                             "Unknown", CT20K1_UNKNOWN),
        { } /* terminator */
@@ -60,8 +60,9 @@ static struct snd_pci_quirk __devinitdata subsys_20k2_list[] = {
                      "SB0880", CTSB0880),
        SND_PCI_QUIRK(PCI_VENDOR_ID_CREATIVE, PCI_SUBDEVICE_ID_CREATIVE_SB08803,
                      "SB0880", CTSB0880),
-       SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_CREATIVE, 0x6000,
-                          PCI_SUBDEVICE_ID_CREATIVE_HENDRIX, "UAA", CTHENDRIX),
+       SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_CREATIVE, 0xf000,
+                          PCI_SUBDEVICE_ID_CREATIVE_HENDRIX, "HENDRIX",
+                          CTHENDRIX),
        { } /* terminator */
 };
 
index 5d58650..cb69d9d 100644 (file)
@@ -1541,7 +1541,7 @@ static int hw_is_adc_input_selected(struct hw *hw, enum ADCSRC type)
                return is_adc_input_selected_SB055x(hw, type);
        case CTSB073X:
                return is_adc_input_selected_hendrix(hw, type);
-       case CTHENDRIX:
+       case CTUAA:
                return is_adc_input_selected_hendrix(hw, type);
        default:
                return is_adc_input_selected_SBx(hw, type);
@@ -1692,7 +1692,7 @@ static int hw_adc_input_select(struct hw *hw, enum ADCSRC type)
                return adc_input_select_SB055x(hw, type, state);
        case CTSB073X:
                return adc_input_select_hendrix(hw, type, state);
-       case CTHENDRIX:
+       case CTUAA:
                return adc_input_select_hendrix(hw, type, state);
        default:
                return adc_input_select_SBx(hw, type, state);
@@ -1780,7 +1780,7 @@ static int hw_adc_init(struct hw *hw, const struct adc_conf *info)
 static int hw_have_digit_io_switch(struct hw *hw)
 {
        /* SB073x and Vista compatible cards have no digit IO switch */
-       return !(hw->model == CTSB073X || hw->model == CTHENDRIX);
+       return !(hw->model == CTSB073X || hw->model == CTUAA);
 }
 
 #define CTLBITS(a, b, c, d)    (((a) << 24) | ((b) << 16) | ((c) << 8) | (d))
@@ -1916,7 +1916,7 @@ static int hw_card_start(struct hw *hw)
                goto error1;
 
        /* Switch to X-Fi mode from UAA mode if neeeded */
-       if (hw->model == CTHENDRIX) {
+       if (hw->model == CTUAA) {
                err = uaa_to_xfi(pci);
                if (err)
                        goto error2;
@@ -2027,7 +2027,7 @@ static int hw_card_init(struct hw *hw, struct card_conf *info)
        case CTSB073X:
                hw_write_20kx(hw, GPIOCTL, 0x00e6);
                break;
-       case CTHENDRIX: /* Vista compatible cards */
+       case CTUAA:
                hw_write_20kx(hw, GPIOCTL, 0x00c2);
                break;
        default: