mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 21:38:32 +08:00
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:
parent
ae709440ed
commit
3abf2f3639
@ -12521,8 +12521,6 @@ static struct snd_pci_quirk alc268_cfg_tbl[] = {
|
|||||||
ALC268_TOSHIBA),
|
ALC268_TOSHIBA),
|
||||||
SND_PCI_QUIRK(0x1043, 0x1205, "ASUS W7J", ALC268_3ST),
|
SND_PCI_QUIRK(0x1043, 0x1205, "ASUS W7J", ALC268_3ST),
|
||||||
SND_PCI_QUIRK(0x1170, 0x0040, "ZEPTO", ALC268_ZEPTO),
|
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(0x14c0, 0x0025, "COMPAL IFL90/JFL-92", ALC268_TOSHIBA),
|
||||||
SND_PCI_QUIRK(0x152d, 0x0763, "Diverse (CPR2000)", ALC268_ACER),
|
SND_PCI_QUIRK(0x152d, 0x0763, "Diverse (CPR2000)", ALC268_ACER),
|
||||||
SND_PCI_QUIRK(0x152d, 0x0771, "Quanta IL1", ALC267_QUANTA_IL1),
|
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[] = {
|
static struct alc_config_preset alc268_presets[] = {
|
||||||
[ALC267_QUANTA_IL1] = {
|
[ALC267_QUANTA_IL1] = {
|
||||||
.mixers = { alc267_quanta_il1_mixer, alc268_beep_mixer },
|
.mixers = { alc267_quanta_il1_mixer, alc268_beep_mixer },
|
||||||
@ -12696,6 +12703,10 @@ static int patch_alc268(struct hda_codec *codec)
|
|||||||
alc268_models,
|
alc268_models,
|
||||||
alc268_cfg_tbl);
|
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) {
|
if (board_config < 0 || board_config >= ALC268_MODEL_LAST) {
|
||||||
printk(KERN_INFO "hda_codec: Unknown model for %s, "
|
printk(KERN_INFO "hda_codec: Unknown model for %s, "
|
||||||
"trying auto-probe from BIOS...\n", codec->chip_name);
|
"trying auto-probe from BIOS...\n", codec->chip_name);
|
||||||
|
Loading…
Reference in New Issue
Block a user