ALSA: ctxfi - Fix wrong model id for UAA
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>
This commit is contained in:
Родитель
9470195a9c
Коммит
09521d2e3e
|
@ -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 */
|
||||
};
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
|
Загрузка…
Ссылка в новой задаче