Skip to content

Commit 3c6fd1f

Browse files
committed
ALSA: hda: Add driver blacklist
The recent AMD platform exposes an HD-audio bus but without any actual codecs, which is internally tied with a USB-audio device, supposedly. It results in "no codecs" error of HD-audio bus driver, and it's nothing but a waste of resources. This patch introduces a static blacklist table for skipping such a known bogus PCI SSID entry. As of writing this patch, the known SSIDs are: * 1043:874f - ASUS ROG Zenith II / Strix * 1462:cb59 - MSI TRX40 Creator * 1462:cb60 - MSI TRX40 BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=206543 Cc: <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Takashi Iwai <[email protected]>
1 parent 2a48218 commit 3c6fd1f

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

sound/pci/hda/hda_intel.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2076,6 +2076,17 @@ static void pcm_mmap_prepare(struct snd_pcm_substream *substream,
20762076
#endif
20772077
}
20782078

2079+
/* Blacklist for skipping the whole probe:
2080+
* some HD-audio PCI entries are exposed without any codecs, and such devices
2081+
* should be ignored from the beginning.
2082+
*/
2083+
static const struct snd_pci_quirk driver_blacklist[] = {
2084+
SND_PCI_QUIRK(0x1043, 0x874f, "ASUS ROG Zenith II / Strix", 0),
2085+
SND_PCI_QUIRK(0x1462, 0xcb59, "MSI TRX40 Creator", 0),
2086+
SND_PCI_QUIRK(0x1462, 0xcb60, "MSI TRX40", 0),
2087+
{}
2088+
};
2089+
20792090
static const struct hda_controller_ops pci_hda_ops = {
20802091
.disable_msi_reset_irq = disable_msi_reset_irq,
20812092
.pcm_mmap_prepare = pcm_mmap_prepare,
@@ -2092,6 +2103,11 @@ static int azx_probe(struct pci_dev *pci,
20922103
bool schedule_probe;
20932104
int err;
20942105

2106+
if (snd_pci_quirk_lookup(pci, driver_blacklist)) {
2107+
dev_info(&pci->dev, "Skipping the blacklisted device\n");
2108+
return -ENODEV;
2109+
}
2110+
20952111
if (dev >= SNDRV_CARDS)
20962112
return -ENODEV;
20972113
if (!enable[dev]) {

0 commit comments

Comments
 (0)