Skip to content

Commit 2ec9074

Browse files
committed
Merge tag 'sound-7.0-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai: "People have been so busy for hunting and we're still getting more changes than wished for, but it doesn't look too scary; almost all changes are device-specific small fixes. I guess it's rather a casual bump, and no more Easter eggs are left for 7.0 (hopefully)... - Fixes for the recent regression on ctxfi driver - Fix missing INIT_LIST_HEAD() for ASoC card_aux_list - Usual HD- and USB-audio, and ASoC AMD quirk updates - ASoC fixes for AMD and Intel" * tag 'sound-7.0-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (24 commits) ASoC: amd: ps: Fix missing leading zeros in subsystem_device SSID log ALSA: usb-audio: Exclude Scarlett 2i2 1st Gen (8016) from SKIP_IFACE_SETUP ALSA: hda/realtek: add quirk for Acer Swift SFG14-73 ALSA: hda/realtek: Add quirk for Lenovo Yoga Pro 7 14IMH9 ASoC: Intel: boards: fix unmet dependency on PINCTRL ASoC: Intel: ehl_rt5660: Use the correct rtd->dev device in hw_params ALSA: ctxfi: Don't enumerate SPDIF1 at DAIO initialization ALSA: hda/realtek: Add quirk for Lenovo Yoga Slim 7 14AKP10 ALSA: hda/realtek: add quirk for HP Laptop 15-fc0xxx ASoC: ep93xx: Fix unchecked clk_prepare_enable() and add rollback on failure ASoC: soc-core: call missing INIT_LIST_HEAD() for card_aux_list ALSA: hda/realtek: Add quirk for Samsung Book2 Pro 360 (NP950QED) ASoC: amd: yc: Add DMI entry for HP Laptop 15-fc0xxx ASoC: amd: yc: Add DMI quirk for ASUS Vivobook Pro 16X OLED M7601RM ALSA: hda/realtek: Add quirk for ASUS ROG Strix SCAR 15 ALSA: usb-audio: Exclude Scarlett Solo 1st Gen from SKIP_IFACE_SETUP ALSA: caiaq: fix stack out-of-bounds read in init_card ALSA: ctxfi: Check the error for index mapping ALSA: ctxfi: Fix missing SPDIFI1 index handling ALSA: hda/realtek: add quirk for HP Victus 15-fb0xxx ...
2 parents 2064d77 + b477ab8 commit 2ec9074

12 files changed

Lines changed: 146 additions & 52 deletions

File tree

sound/hda/codecs/realtek/alc269.c

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4122,6 +4122,8 @@ enum {
41224122
ALC233_FIXUP_LENOVO_GPIO2_MIC_HOTKEY,
41234123
ALC245_FIXUP_BASS_HP_DAC,
41244124
ALC245_FIXUP_ACER_MICMUTE_LED,
4125+
ALC245_FIXUP_CS35L41_I2C_2_MUTE_LED,
4126+
ALC236_FIXUP_HP_DMIC,
41254127
};
41264128

41274129
/* A special fixup for Lenovo C940 and Yoga Duet 7;
@@ -6651,6 +6653,19 @@ static const struct hda_fixup alc269_fixups[] = {
66516653
.v.func = alc285_fixup_hp_coef_micmute_led,
66526654
.chained = true,
66536655
.chain_id = ALC2XX_FIXUP_HEADSET_MIC,
6656+
},
6657+
[ALC245_FIXUP_CS35L41_I2C_2_MUTE_LED] = {
6658+
.type = HDA_FIXUP_FUNC,
6659+
.v.func = alc245_fixup_hp_mute_led_coefbit,
6660+
.chained = true,
6661+
.chain_id = ALC287_FIXUP_CS35L41_I2C_2,
6662+
},
6663+
[ALC236_FIXUP_HP_DMIC] = {
6664+
.type = HDA_FIXUP_PINS,
6665+
.v.pins = (const struct hda_pintbl[]) {
6666+
{ 0x12, 0x90a60160 }, /* use as internal mic */
6667+
{ }
6668+
},
66546669
}
66556670
};
66566671

@@ -6705,6 +6720,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
67056720
SND_PCI_QUIRK(0x1025, 0x1597, "Acer Nitro 5 AN517-55", ALC2XX_FIXUP_HEADSET_MIC),
67066721
SND_PCI_QUIRK(0x1025, 0x169a, "Acer Swift SFG16", ALC256_FIXUP_ACER_SFG16_MICMUTE_LED),
67076722
SND_PCI_QUIRK(0x1025, 0x171e, "Acer Nitro ANV15-51", ALC245_FIXUP_ACER_MICMUTE_LED),
6723+
SND_PCI_QUIRK(0x1025, 0x173a, "Acer Swift SFG14-73", ALC245_FIXUP_ACER_MICMUTE_LED),
67086724
SND_PCI_QUIRK(0x1025, 0x1826, "Acer Helios ZPC", ALC287_FIXUP_PREDATOR_SPK_CS35L41_I2C_2),
67096725
SND_PCI_QUIRK(0x1025, 0x182c, "Acer Helios ZPD", ALC287_FIXUP_PREDATOR_SPK_CS35L41_I2C_2),
67106726
SND_PCI_QUIRK(0x1025, 0x1844, "Acer Helios ZPS", ALC287_FIXUP_PREDATOR_SPK_CS35L41_I2C_2),
@@ -7002,6 +7018,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
70027018
SND_PCI_QUIRK(0x103c, 0x8a30, "HP Envy 17", ALC287_FIXUP_CS35L41_I2C_2),
70037019
SND_PCI_QUIRK(0x103c, 0x8a31, "HP Envy 15", ALC287_FIXUP_CS35L41_I2C_2),
70047020
SND_PCI_QUIRK(0x103c, 0x8a34, "HP Pavilion x360 2-in-1 Laptop 14-ek0xxx", ALC245_FIXUP_HP_MUTE_LED_COEFBIT),
7021+
SND_PCI_QUIRK(0x103c, 0x8a3d, "HP Victus 15-fb0xxx (MB 8A3D)", ALC245_FIXUP_HP_MUTE_LED_V2_COEFBIT),
70057022
SND_PCI_QUIRK(0x103c, 0x8a4f, "HP Victus 15-fa0xxx (MB 8A4F)", ALC245_FIXUP_HP_MUTE_LED_COEFBIT),
70067023
SND_PCI_QUIRK(0x103c, 0x8a6e, "HP EDNA 360", ALC287_FIXUP_CS35L41_I2C_4),
70077024
SND_PCI_QUIRK(0x103c, 0x8a74, "HP ProBook 440 G8 Notebook PC", ALC236_FIXUP_HP_GPIO_LED),
@@ -7145,6 +7162,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
71457162
SND_PCI_QUIRK(0x103c, 0x8da1, "HP 16 Clipper OmniBook X", ALC287_FIXUP_CS35L41_I2C_2),
71467163
SND_PCI_QUIRK(0x103c, 0x8da7, "HP 14 Enstrom OmniBook X", ALC287_FIXUP_CS35L41_I2C_2),
71477164
SND_PCI_QUIRK(0x103c, 0x8da8, "HP 16 Piston OmniBook X", ALC287_FIXUP_CS35L41_I2C_2),
7165+
SND_PCI_QUIRK(0x103c, 0x8dc9, "HP Laptop 15-fc0xxx", ALC236_FIXUP_HP_DMIC),
71487166
SND_PCI_QUIRK(0x103c, 0x8dd4, "HP EliteStudio 8 AIO", ALC274_FIXUP_HP_AIO_BIND_DACS),
71497167
SND_PCI_QUIRK(0x103c, 0x8dd7, "HP Laptop 15-fd0xxx", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2),
71507168
SND_PCI_QUIRK(0x103c, 0x8de8, "HP Gemtree", ALC245_FIXUP_TAS2781_SPI_2),
@@ -7177,7 +7195,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
71777195
SND_PCI_QUIRK(0x103c, 0x8e37, "HP 16 Piston OmniBook X", ALC287_FIXUP_CS35L41_I2C_2),
71787196
SND_PCI_QUIRK(0x103c, 0x8e3a, "HP Agusta", ALC287_FIXUP_CS35L41_I2C_2),
71797197
SND_PCI_QUIRK(0x103c, 0x8e3b, "HP Agusta", ALC287_FIXUP_CS35L41_I2C_2),
7180-
SND_PCI_QUIRK(0x103c, 0x8e60, "HP Trekker ", ALC287_FIXUP_CS35L41_I2C_2),
7198+
SND_PCI_QUIRK(0x103c, 0x8e60, "HP OmniBook 7 Laptop 16-bh0xxx", ALC245_FIXUP_CS35L41_I2C_2_MUTE_LED),
71817199
SND_PCI_QUIRK(0x103c, 0x8e61, "HP Trekker ", ALC287_FIXUP_CS35L41_I2C_2),
71827200
SND_PCI_QUIRK(0x103c, 0x8e62, "HP Trekker ", ALC287_FIXUP_CS35L41_I2C_2),
71837201
SND_PCI_QUIRK(0x103c, 0x8e8a, "HP NexusX", ALC245_FIXUP_HP_TAS2781_I2C_MUTE_LED),
@@ -7261,6 +7279,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
72617279
SND_PCI_QUIRK(0x1043, 0x1533, "ASUS GV302XA/XJ/XQ/XU/XV/XI", ALC287_FIXUP_CS35L41_I2C_2),
72627280
SND_PCI_QUIRK(0x1043, 0x1573, "ASUS GZ301VV/VQ/VU/VJ/VA/VC/VE/VVC/VQC/VUC/VJC/VEC/VCC", ALC285_FIXUP_ASUS_HEADSET_MIC),
72637281
SND_PCI_QUIRK(0x1043, 0x1584, "ASUS UM3406GA ", ALC287_FIXUP_CS35L41_I2C_2),
7282+
SND_PCI_QUIRK(0x1043, 0x1602, "ASUS ROG Strix SCAR 15", ALC285_FIXUP_ASUS_G533Z_PINS),
72647283
SND_PCI_QUIRK(0x1043, 0x1652, "ASUS ROG Zephyrus Do 15 SE", ALC289_FIXUP_ASUS_ZEPHYRUS_DUAL_SPK),
72657284
SND_PCI_QUIRK(0x1043, 0x1662, "ASUS GV301QH", ALC294_FIXUP_ASUS_DUAL_SPK),
72667285
SND_PCI_QUIRK(0x1043, 0x1663, "ASUS GU603ZI/ZJ/ZQ/ZU/ZV", ALC285_FIXUP_ASUS_HEADSET_MIC),
@@ -7400,6 +7419,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
74007419
SND_PCI_QUIRK(0x144d, 0xc188, "Samsung Galaxy Book Flex (NT950QCT-A38A)", ALC298_FIXUP_SAMSUNG_AMP),
74017420
SND_PCI_QUIRK(0x144d, 0xc189, "Samsung Galaxy Book Flex (NT950QCG-X716)", ALC298_FIXUP_SAMSUNG_AMP),
74027421
SND_PCI_QUIRK(0x144d, 0xc18a, "Samsung Galaxy Book Ion (NP930XCJ-K01US)", ALC298_FIXUP_SAMSUNG_AMP),
7422+
SND_PCI_QUIRK(0x144d, 0xc1ac, "Samsung Galaxy Book2 Pro 360 (NP950QED)", ALC298_FIXUP_SAMSUNG_AMP_V2_2_AMPS),
74037423
SND_PCI_QUIRK(0x144d, 0xc1a3, "Samsung Galaxy Book Pro (NP935XDB-KC1SE)", ALC298_FIXUP_SAMSUNG_AMP),
74047424
SND_PCI_QUIRK(0x144d, 0xc1a4, "Samsung Galaxy Book Pro 360 (NT935QBD)", ALC298_FIXUP_SAMSUNG_AMP),
74057425
SND_PCI_QUIRK(0x144d, 0xc1a6, "Samsung Galaxy Book Pro 360 (NP930QBD)", ALC298_FIXUP_SAMSUNG_AMP),
@@ -7595,6 +7615,10 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
75957615
SND_PCI_QUIRK(0x17aa, 0x3834, "Lenovo IdeaPad Slim 9i 14ITL5", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS),
75967616
SND_PCI_QUIRK(0x17aa, 0x383d, "Legion Y9000X 2019", ALC285_FIXUP_LEGION_Y9000X_SPEAKERS),
75977617
SND_PCI_QUIRK(0x17aa, 0x3843, "Lenovo Yoga 9i / Yoga Book 9i", ALC287_FIXUP_LENOVO_YOGA_BOOK_9I),
7618+
/* Yoga Pro 7 14IMH9 shares PCI SSID 17aa:3847 with Legion 7 16ACHG6;
7619+
* use codec SSID to distinguish them
7620+
*/
7621+
HDA_CODEC_QUIRK(0x17aa, 0x38cf, "Lenovo Yoga Pro 7 14IMH9", ALC287_FIXUP_YOGA9_14IMH9_BASS_SPK_PIN),
75987622
SND_PCI_QUIRK(0x17aa, 0x3847, "Legion 7 16ACHG6", ALC287_FIXUP_LEGION_16ACHG6),
75997623
SND_PCI_QUIRK(0x17aa, 0x384a, "Lenovo Yoga 7 15ITL5", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS),
76007624
SND_PCI_QUIRK(0x17aa, 0x3852, "Lenovo Yoga 7 14ITL5", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS),
@@ -7657,6 +7681,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
76577681
SND_PCI_QUIRK(0x17aa, 0x3902, "Lenovo E50-80", ALC269_FIXUP_DMIC_THINKPAD_ACPI),
76587682
SND_PCI_QUIRK(0x17aa, 0x390d, "Lenovo Yoga Pro 7 14ASP10", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN),
76597683
SND_PCI_QUIRK(0x17aa, 0x3913, "Lenovo 145", ALC236_FIXUP_LENOVO_INV_DMIC),
7684+
SND_PCI_QUIRK(0x17aa, 0x391a, "Lenovo Yoga Slim 7 14AKP10", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN),
76607685
SND_PCI_QUIRK(0x17aa, 0x391f, "Yoga S990-16 pro Quad YC Quad", ALC287_FIXUP_TXNW2781_I2C),
76617686
SND_PCI_QUIRK(0x17aa, 0x3920, "Yoga S990-16 pro Quad VECO Quad", ALC287_FIXUP_TXNW2781_I2C),
76627687
SND_PCI_QUIRK(0x17aa, 0x3929, "Thinkbook 13x Gen 5", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
@@ -7750,6 +7775,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
77507775
SND_PCI_QUIRK(0xf111, 0x0009, "Framework Laptop", ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE),
77517776
SND_PCI_QUIRK(0xf111, 0x000b, "Framework Laptop", ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE),
77527777
SND_PCI_QUIRK(0xf111, 0x000c, "Framework Laptop", ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE),
7778+
SND_PCI_QUIRK(0xf111, 0x000f, "Framework Laptop", ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE),
77537779

77547780
#if 0
77557781
/* Below is a quirk table taken from the old code.

sound/hda/controllers/intel.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2085,6 +2085,11 @@ static struct pci_device_id driver_denylist_ideapad_z570[] = {
20852085
{}
20862086
};
20872087

2088+
static struct pci_device_id driver_denylist_msi_x870e[] = {
2089+
{ PCI_DEVICE_SUB(0x1022, 0x15e3, 0x1462, 0xee59) }, /* MSI X870E Tomahawk WiFi */
2090+
{}
2091+
};
2092+
20882093
/* DMI-based denylist, to be used when:
20892094
* - PCI subsystem IDs are zero, impossible to distinguish from valid sound cards.
20902095
* - Different modifications of the same laptop use different GPU models.
@@ -2098,6 +2103,14 @@ static const struct dmi_system_id driver_denylist_dmi[] = {
20982103
},
20992104
.driver_data = &driver_denylist_ideapad_z570,
21002105
},
2106+
{
2107+
/* PCI device matching alone incorrectly matches some laptops */
2108+
.matches = {
2109+
DMI_MATCH(DMI_BOARD_VENDOR, "Micro-Star International Co., Ltd."),
2110+
DMI_MATCH(DMI_BOARD_NAME, "MAG X870E TOMAHAWK WIFI (MS-7E59)"),
2111+
},
2112+
.driver_data = &driver_denylist_msi_x870e,
2113+
},
21012114
{}
21022115
};
21032116

sound/pci/ctxfi/ctatc.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1427,10 +1427,14 @@ static int atc_get_resources(struct ct_atc *atc)
14271427
daio_mgr = (struct daio_mgr *)atc->rsc_mgrs[DAIO];
14281428
da_desc.msr = atc->msr;
14291429
for (i = 0; i < NUM_DAIOTYP; i++) {
1430-
if (((i == MIC) && !cap.dedicated_mic) || ((i == RCA) && !cap.dedicated_rca))
1430+
if (((i == MIC) && !cap.dedicated_mic) ||
1431+
((i == RCA) && !cap.dedicated_rca) ||
1432+
i == SPDIFI1)
14311433
continue;
1432-
da_desc.type = (atc->model != CTSB073X) ? i :
1433-
((i == SPDIFIO) ? SPDIFI1 : i);
1434+
if (atc->model == CTSB073X && i == SPDIFIO)
1435+
da_desc.type = SPDIFI1;
1436+
else
1437+
da_desc.type = i;
14341438
da_desc.output = (i < LINEIM) || (i == RCA);
14351439
err = daio_mgr->get_daio(daio_mgr, &da_desc,
14361440
(struct daio **)&atc->daios[i]);

sound/pci/ctxfi/ctdaio.c

Lines changed: 53 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ static const struct rsc_ops daio_in_rsc_ops_20k2 = {
9999
.output_slot = daio_index,
100100
};
101101

102-
static unsigned int daio_device_index(enum DAIOTYP type, struct hw *hw)
102+
static int daio_device_index(enum DAIOTYP type, struct hw *hw)
103103
{
104104
switch (hw->chip_type) {
105105
case ATC20K1:
@@ -112,22 +112,28 @@ static unsigned int daio_device_index(enum DAIOTYP type, struct hw *hw)
112112
case LINEO3: return 5;
113113
case LINEO4: return 6;
114114
case LINEIM: return 7;
115-
default: return -EINVAL;
115+
default:
116+
pr_err("ctxfi: Invalid type %d for hw20k1\n", type);
117+
return -EINVAL;
116118
}
117119
case ATC20K2:
118120
switch (type) {
119121
case SPDIFOO: return 0;
120122
case SPDIFIO: return 0;
123+
case SPDIFI1: return 1;
121124
case LINEO1: return 4;
122125
case LINEO2: return 7;
123126
case LINEO3: return 5;
124127
case LINEO4: return 6;
125128
case LINEIM: return 4;
126129
case MIC: return 5;
127130
case RCA: return 3;
128-
default: return -EINVAL;
131+
default:
132+
pr_err("ctxfi: Invalid type %d for hw20k2\n", type);
133+
return -EINVAL;
129134
}
130135
default:
136+
pr_err("ctxfi: Invalid chip type %d\n", hw->chip_type);
131137
return -EINVAL;
132138
}
133139
}
@@ -148,8 +154,11 @@ static int dao_spdif_set_spos(struct dao *dao, unsigned int spos)
148154

149155
static int dao_commit_write(struct dao *dao)
150156
{
151-
dao->hw->dao_commit_write(dao->hw,
152-
daio_device_index(dao->daio.type, dao->hw), dao->ctrl_blk);
157+
int idx = daio_device_index(dao->daio.type, dao->hw);
158+
159+
if (idx < 0)
160+
return idx;
161+
dao->hw->dao_commit_write(dao->hw, idx, dao->ctrl_blk);
153162
return 0;
154163
}
155164

@@ -287,8 +296,11 @@ static int dai_set_enb_srt(struct dai *dai, unsigned int enb)
287296

288297
static int dai_commit_write(struct dai *dai)
289298
{
290-
dai->hw->dai_commit_write(dai->hw,
291-
daio_device_index(dai->daio.type, dai->hw), dai->ctrl_blk);
299+
int idx = daio_device_index(dai->daio.type, dai->hw);
300+
301+
if (idx < 0)
302+
return idx;
303+
dai->hw->dai_commit_write(dai->hw, idx, dai->ctrl_blk);
292304
return 0;
293305
}
294306

@@ -367,7 +379,7 @@ static int dao_rsc_init(struct dao *dao,
367379
{
368380
struct hw *hw = mgr->mgr.hw;
369381
unsigned int conf;
370-
int err;
382+
int idx, err;
371383

372384
err = daio_rsc_init(&dao->daio, desc, mgr->mgr.hw);
373385
if (err)
@@ -386,15 +398,18 @@ static int dao_rsc_init(struct dao *dao,
386398
if (err)
387399
goto error2;
388400

389-
hw->daio_mgr_dsb_dao(mgr->mgr.ctrl_blk,
390-
daio_device_index(dao->daio.type, hw));
401+
idx = daio_device_index(dao->daio.type, hw);
402+
if (idx < 0) {
403+
err = idx;
404+
goto error2;
405+
}
406+
407+
hw->daio_mgr_dsb_dao(mgr->mgr.ctrl_blk, idx);
391408
hw->daio_mgr_commit_write(hw, mgr->mgr.ctrl_blk);
392409

393410
conf = (desc->msr & 0x7) | (desc->passthru << 3);
394-
hw->daio_mgr_dao_init(hw, mgr->mgr.ctrl_blk,
395-
daio_device_index(dao->daio.type, hw), conf);
396-
hw->daio_mgr_enb_dao(mgr->mgr.ctrl_blk,
397-
daio_device_index(dao->daio.type, hw));
411+
hw->daio_mgr_dao_init(hw, mgr->mgr.ctrl_blk, idx, conf);
412+
hw->daio_mgr_enb_dao(mgr->mgr.ctrl_blk, idx);
398413
hw->daio_mgr_commit_write(hw, mgr->mgr.ctrl_blk);
399414

400415
return 0;
@@ -443,7 +458,7 @@ static int dai_rsc_init(struct dai *dai,
443458
const struct daio_desc *desc,
444459
struct daio_mgr *mgr)
445460
{
446-
int err;
461+
int idx, err;
447462
struct hw *hw = mgr->mgr.hw;
448463
unsigned int rsr, msr;
449464

@@ -457,6 +472,12 @@ static int dai_rsc_init(struct dai *dai,
457472
if (err)
458473
goto error1;
459474

475+
idx = daio_device_index(dai->daio.type, dai->hw);
476+
if (idx < 0) {
477+
err = idx;
478+
goto error1;
479+
}
480+
460481
for (rsr = 0, msr = desc->msr; msr > 1; msr >>= 1)
461482
rsr++;
462483

@@ -465,8 +486,7 @@ static int dai_rsc_init(struct dai *dai,
465486
/* default to disabling control of a SRC */
466487
hw->dai_srt_set_ec(dai->ctrl_blk, 0);
467488
hw->dai_srt_set_et(dai->ctrl_blk, 0); /* default to disabling SRT */
468-
hw->dai_commit_write(hw,
469-
daio_device_index(dai->daio.type, dai->hw), dai->ctrl_blk);
489+
hw->dai_commit_write(hw, idx, dai->ctrl_blk);
470490

471491
return 0;
472492

@@ -581,28 +601,28 @@ static int put_daio_rsc(struct daio_mgr *mgr, struct daio *daio)
581601
static int daio_mgr_enb_daio(struct daio_mgr *mgr, struct daio *daio)
582602
{
583603
struct hw *hw = mgr->mgr.hw;
584-
585-
if (daio->output) {
586-
hw->daio_mgr_enb_dao(mgr->mgr.ctrl_blk,
587-
daio_device_index(daio->type, hw));
588-
} else {
589-
hw->daio_mgr_enb_dai(mgr->mgr.ctrl_blk,
590-
daio_device_index(daio->type, hw));
591-
}
604+
int idx = daio_device_index(daio->type, hw);
605+
606+
if (idx < 0)
607+
return idx;
608+
if (daio->output)
609+
hw->daio_mgr_enb_dao(mgr->mgr.ctrl_blk, idx);
610+
else
611+
hw->daio_mgr_enb_dai(mgr->mgr.ctrl_blk, idx);
592612
return 0;
593613
}
594614

595615
static int daio_mgr_dsb_daio(struct daio_mgr *mgr, struct daio *daio)
596616
{
597617
struct hw *hw = mgr->mgr.hw;
598-
599-
if (daio->output) {
600-
hw->daio_mgr_dsb_dao(mgr->mgr.ctrl_blk,
601-
daio_device_index(daio->type, hw));
602-
} else {
603-
hw->daio_mgr_dsb_dai(mgr->mgr.ctrl_blk,
604-
daio_device_index(daio->type, hw));
605-
}
618+
int idx = daio_device_index(daio->type, hw);
619+
620+
if (idx < 0)
621+
return idx;
622+
if (daio->output)
623+
hw->daio_mgr_dsb_dao(mgr->mgr.ctrl_blk, idx);
624+
else
625+
hw->daio_mgr_dsb_dai(mgr->mgr.ctrl_blk, idx);
606626
return 0;
607627
}
608628

sound/soc/amd/ps/pci-ps.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,7 @@ static struct snd_soc_acpi_mach *acp63_sdw_machine_select(struct device *dev)
339339
mach->mach_params.subsystem_device = acp_data->subsystem_device;
340340
mach->mach_params.subsystem_id_set = true;
341341

342-
dev_dbg(dev, "SSID %x%x\n", mach->mach_params.subsystem_vendor,
342+
dev_dbg(dev, "SSID %x%04x\n", mach->mach_params.subsystem_vendor,
343343
mach->mach_params.subsystem_device);
344344
return mach;
345345
}

sound/soc/amd/yc/acp6x-mach.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,13 @@ static struct snd_soc_card acp6x_card = {
4545
};
4646

4747
static const struct dmi_system_id yc_acp_quirk_table[] = {
48+
{
49+
.driver_data = &acp6x_card,
50+
.matches = {
51+
DMI_MATCH(DMI_BOARD_VENDOR, "HP"),
52+
DMI_MATCH(DMI_PRODUCT_NAME, "HP Laptop 15-fc0xxx"),
53+
}
54+
},
4855
{
4956
.driver_data = &acp6x_card,
5057
.matches = {
@@ -731,6 +738,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
731738
DMI_MATCH(DMI_PRODUCT_NAME, "Thin A15 B7VE"),
732739
}
733740
},
741+
{
742+
.driver_data = &acp6x_card,
743+
.matches = {
744+
DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK COMPUTER INC."),
745+
DMI_MATCH(DMI_PRODUCT_NAME, "M7601RM"),
746+
}
747+
},
734748
{}
735749
};
736750

0 commit comments

Comments
 (0)