summaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2009-06-08 18:29:38 +0200
committerTakashi Iwai <tiwai@suse.de>2009-06-08 18:30:37 +0200
commit09521d2e3edd0bf02b66e5b8c13f1559f2d6958a (patch)
treebc42e16c5ca59e4113171256b625f3de397a5d9f /sound
parent9470195a9cd13e6d90221b8b5d897e9232da8d28 (diff)
downloadlinux-stable-09521d2e3edd0bf02b66e5b8c13f1559f2d6958a.tar.gz
linux-stable-09521d2e3edd0bf02b66e5b8c13f1559f2d6958a.tar.bz2
linux-stable-09521d2e3edd0bf02b66e5b8c13f1559f2d6958a.zip
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>
Diffstat (limited to 'sound')
-rw-r--r--sound/pci/ctxfi/ctatc.c9
-rw-r--r--sound/pci/ctxfi/cthw20k1.c10
2 files changed, 10 insertions, 9 deletions
diff --git a/sound/pci/ctxfi/ctatc.c b/sound/pci/ctxfi/ctatc.c
index 002a70e0b13a..4e25b24848bd 100644
--- a/sound/pci/ctxfi/ctatc.c
+++ b/sound/pci/ctxfi/ctatc.c
@@ -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 */
};
diff --git a/sound/pci/ctxfi/cthw20k1.c b/sound/pci/ctxfi/cthw20k1.c
index 5d58650beb73..cb69d9ddfbe3 100644
--- a/sound/pci/ctxfi/cthw20k1.c
+++ b/sound/pci/ctxfi/cthw20k1.c
@@ -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: