ALSA: ctxfi - Allow unknown PCI SSIDs
Allow unknown PCI SSIDs for emu20k1 and emu20k2 as "unknown" model. Also, add a black-list check in case any device has to be listed as "unsupported". It has a negative value in the pci quirk entry. Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
8dca419721
commit
a8f4310be5
|
@ -46,8 +46,6 @@ static struct snd_pci_quirk __devinitdata subsys_20k1_list[] = {
|
|||
SND_PCI_QUIRK(PCI_VENDOR_ID_CREATIVE, 0x0031, "SB073x", CTSB073X),
|
||||
SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_CREATIVE, 0xf000, 0x6000,
|
||||
"UAA", CTUAA),
|
||||
SND_PCI_QUIRK_VENDOR(PCI_VENDOR_ID_CREATIVE,
|
||||
"Unknown", CT20K1_UNKNOWN),
|
||||
{ } /* terminator */
|
||||
};
|
||||
|
||||
|
@ -67,13 +65,16 @@ static struct snd_pci_quirk __devinitdata subsys_20k2_list[] = {
|
|||
};
|
||||
|
||||
static const char *ct_subsys_name[NUM_CTCARDS] = {
|
||||
/* 20k1 models */
|
||||
[CTSB055X] = "SB055x",
|
||||
[CTSB073X] = "SB073x",
|
||||
[CTSB0760] = "SB076x",
|
||||
[CTUAA] = "UAA",
|
||||
[CT20K1_UNKNOWN] = "Unknown",
|
||||
/* 20k2 models */
|
||||
[CTSB0760] = "SB076x",
|
||||
[CTHENDRIX] = "Hendrix",
|
||||
[CTSB0880] = "SB0880",
|
||||
[CT20K2_UNKNOWN] = "Unknown",
|
||||
};
|
||||
|
||||
static struct {
|
||||
|
@ -1240,9 +1241,21 @@ static int __devinit atc_identify_card(struct ct_atc *atc)
|
|||
return -ENOENT;
|
||||
}
|
||||
p = snd_pci_quirk_lookup(atc->pci, list);
|
||||
if (!p)
|
||||
return -ENOENT;
|
||||
atc->model = p->value;
|
||||
if (p) {
|
||||
if (p->value < 0) {
|
||||
printk(KERN_ERR "ctxfi: "
|
||||
"Device %04x:%04x is black-listed\n",
|
||||
atc->pci->subsystem_vendor,
|
||||
atc->pci->subsystem_device);
|
||||
return -ENOENT;
|
||||
}
|
||||
atc->model = p->value;
|
||||
} else {
|
||||
if (atc->chip_type == ATC20K1)
|
||||
atc->model = CT20K1_UNKNOWN;
|
||||
else
|
||||
atc->model = CT20K2_UNKNOWN;
|
||||
}
|
||||
atc->model_name = ct_subsys_name[atc->model];
|
||||
snd_printd("ctxfi: chip %s model %s (%04x:%04x) is found\n",
|
||||
atc->chip_name, atc->model_name,
|
||||
|
|
|
@ -30,13 +30,16 @@ enum CHIPTYP {
|
|||
enum CTCARDS {
|
||||
/* 20k1 models */
|
||||
CTSB055X,
|
||||
CT20K1_MODEL_FIRST = CTSB055X,
|
||||
CTSB073X,
|
||||
CTUAA,
|
||||
CT20K1_UNKNOWN,
|
||||
/* 20k2 models */
|
||||
CTSB0760,
|
||||
CT20K2_MODEL_FIRST = CTSB0760,
|
||||
CTHENDRIX,
|
||||
CTSB0880,
|
||||
CT20K2_UNKNOWN,
|
||||
NUM_CTCARDS /* This should always be the last */
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue