Skip to content

Commit

Permalink
ALSA: ctxfi - Fix wrong model id for UAA
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Takashi Iwai committed Jun 8, 2009
1 parent 9470195 commit 09521d2
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 9 deletions.
9 changes: 5 additions & 4 deletions sound/pci/ctxfi/ctatc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand All @@ -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 */
};

Expand Down
10 changes: 5 additions & 5 deletions sound/pci/ctxfi/cthw20k1.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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))
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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:
Expand Down

0 comments on commit 09521d2

Please sign in to comment.