ALSA: hda - Fix probe of Toshiba laptops with ALC268 codec
There are many variants of Toshiba laptops with ALC268 codec, and it seems that a few of them don't work with model=toshiba preset since they have the secondary ALC268 codec just for HDMI output. This is a regression due to the previous clean-up work to merge all Toshiba quirk entries into a single check. This patch adds the identification of such laptops to apply the standard BIOS-probing method. Unfortunately, Toshiba laptops have all the same PCI SSID, so we need to check the codec SSID to identify each device. Tested-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Родитель
ae709440ed
Коммит
3abf2f3639
|
@ -12521,8 +12521,6 @@ static struct snd_pci_quirk alc268_cfg_tbl[] = {
|
|||
ALC268_TOSHIBA),
|
||||
SND_PCI_QUIRK(0x1043, 0x1205, "ASUS W7J", ALC268_3ST),
|
||||
SND_PCI_QUIRK(0x1170, 0x0040, "ZEPTO", ALC268_ZEPTO),
|
||||
SND_PCI_QUIRK_MASK(0x1179, 0xff00, 0xff00, "TOSHIBA A/Lx05",
|
||||
ALC268_TOSHIBA),
|
||||
SND_PCI_QUIRK(0x14c0, 0x0025, "COMPAL IFL90/JFL-92", ALC268_TOSHIBA),
|
||||
SND_PCI_QUIRK(0x152d, 0x0763, "Diverse (CPR2000)", ALC268_ACER),
|
||||
SND_PCI_QUIRK(0x152d, 0x0771, "Quanta IL1", ALC267_QUANTA_IL1),
|
||||
|
@ -12530,6 +12528,15 @@ static struct snd_pci_quirk alc268_cfg_tbl[] = {
|
|||
{}
|
||||
};
|
||||
|
||||
/* Toshiba laptops have no unique PCI SSID but only codec SSID */
|
||||
static struct snd_pci_quirk alc268_ssid_cfg_tbl[] = {
|
||||
SND_PCI_QUIRK(0x1179, 0xff0a, "TOSHIBA X-200", ALC268_AUTO),
|
||||
SND_PCI_QUIRK(0x1179, 0xff0e, "TOSHIBA X-200 HDMI", ALC268_AUTO),
|
||||
SND_PCI_QUIRK_MASK(0x1179, 0xff00, 0xff00, "TOSHIBA A/Lx05",
|
||||
ALC268_TOSHIBA),
|
||||
{}
|
||||
};
|
||||
|
||||
static struct alc_config_preset alc268_presets[] = {
|
||||
[ALC267_QUANTA_IL1] = {
|
||||
.mixers = { alc267_quanta_il1_mixer, alc268_beep_mixer },
|
||||
|
@ -12696,6 +12703,10 @@ static int patch_alc268(struct hda_codec *codec)
|
|||
alc268_models,
|
||||
alc268_cfg_tbl);
|
||||
|
||||
if (board_config < 0 || board_config >= ALC268_MODEL_LAST)
|
||||
board_config = snd_hda_check_board_codec_sid_config(codec,
|
||||
ALC882_MODEL_LAST, alc268_models, alc268_ssid_cfg_tbl);
|
||||
|
||||
if (board_config < 0 || board_config >= ALC268_MODEL_LAST) {
|
||||
printk(KERN_INFO "hda_codec: Unknown model for %s, "
|
||||
"trying auto-probe from BIOS...\n", codec->chip_name);
|
||||
|
|
Загрузка…
Ссылка в новой задаче