Skip to content

Commit 2a239ff

Browse files
committed
Merge tag 'sound-6.15-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai: "A bunch of small fixes. Mostly driver specific. - An OOB access fix in core UMP rawmidi conversion code - Fix for ASoC DAPM hw_params widget sequence - Make retry of usb_set_interface() errors for flaky devices - Fix redundant USB MIDI name strings - Quirks for various HP and ASUS models with HD-audio, and Jabra Evolve 65 USB-audio - Cirrus Kunit test fixes - Various fixes for ASoC Intel, stm32, renesas, imx-card, and simple-card" * tag 'sound-6.15-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (30 commits) ASoC: amd: ps: fix for irq handler return status ASoC: simple-card-utils: Fix pointer check in graph_util_parse_link_direction ASoC: intel/sdw_utils: Add volume limit to cs35l56 speakers ASoC: intel/sdw_utils: Add volume limit to cs42l43 speakers ASoC: stm32: sai: add a check on minimal kernel frequency ASoC: stm32: sai: skip useless iterations on kernel rate loop ALSA: hda/realtek - Add more HP laptops which need mute led fixup ALSA: hda/realtek: Fix built-mic regression on other ASUS models ASoC: Intel: catpt: avoid type mismatch in dev_dbg() format ALSA: usb-audio: Fix duplicated name in MIDI substream names ALSA: ump: Fix buffer overflow at UMP SysEx message conversion ALSA: usb-audio: Add second USB ID for Jabra Evolve 65 headset ALSA: hda/realtek: Add quirk for HP Spectre x360 15-df1xxx ALSA: hda: Apply volume control on speaker+lineout for HP EliteStudio AIO ASoC: Intel: bytcr_rt5640: Add DMI quirk for Acer Aspire SW3-013 ASoC: amd: acp: Fix devm_snd_soc_register_card(acp-pdm-mach) failure ASoC: amd: acp: Fix NULL pointer deref in acp_i2s_set_tdm_slot ASoC: amd: acp: Fix NULL pointer deref on acp resume path ASoC: renesas: rz-ssi: Use NOIRQ_SYSTEM_SLEEP_PM_OPS() ASoC: soc-acpi-intel-ptl-match: add empty item to ptl_cs42l43_l3[] ...
2 parents 95d3481 + 6e5bea1 commit 2a239ff

30 files changed

+206
-43
lines changed

MAINTAINERS

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22738,9 +22738,15 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
2273822738
F: Documentation/devicetree/bindings/sound/
2273922739
F: Documentation/sound/soc/
2274022740
F: include/dt-bindings/sound/
22741+
F: include/sound/cs-amp-lib.h
22742+
F: include/sound/cs35l*
22743+
F: include/sound/cs4271.h
22744+
F: include/sound/cs42l*
22745+
F: include/sound/madera-pdata.h
2274122746
F: include/sound/soc*
2274222747
F: include/sound/sof.h
2274322748
F: include/sound/sof/
22749+
F: include/sound/wm*.h
2274422750
F: include/trace/events/sof*.h
2274522751
F: include/uapi/sound/asoc.h
2274622752
F: sound/soc/

drivers/firmware/cirrus/Kconfig

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,11 @@ config FW_CS_DSP
66

77
config FW_CS_DSP_KUNIT_TEST_UTILS
88
tristate
9-
depends on KUNIT && REGMAP
10-
select FW_CS_DSP
119

1210
config FW_CS_DSP_KUNIT_TEST
1311
tristate "KUnit tests for Cirrus Logic cs_dsp" if !KUNIT_ALL_TESTS
14-
depends on KUNIT && REGMAP
12+
depends on KUNIT && REGMAP && FW_CS_DSP
1513
default KUNIT_ALL_TESTS
16-
select FW_CS_DSP
1714
select FW_CS_DSP_KUNIT_TEST_UTILS
1815
help
1916
This builds KUnit tests for cs_dsp.

include/sound/soc_sdw_utils.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,7 @@ int asoc_sdw_cs_amp_init(struct snd_soc_card *card,
226226
bool playback);
227227
int asoc_sdw_cs_spk_feedback_rtd_init(struct snd_soc_pcm_runtime *rtd,
228228
struct snd_soc_dai *dai);
229+
int asoc_sdw_cs35l56_volume_limit(struct snd_soc_card *card, const char *name_prefix);
229230

230231
/* MAXIM codec support */
231232
int asoc_sdw_maxim_init(struct snd_soc_card *card,

include/sound/ump_convert.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ struct ump_cvt_to_ump_bank {
1919
/* context for converting from MIDI1 byte stream to UMP packet */
2020
struct ump_cvt_to_ump {
2121
/* MIDI1 intermediate buffer */
22-
unsigned char buf[4];
22+
unsigned char buf[6]; /* up to 6 bytes for SysEx */
2323
int len;
2424
int cmd_bytes;
2525

sound/pci/hda/patch_realtek.c

Lines changed: 81 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -441,19 +441,19 @@ static void alc_fill_eapd_coef(struct hda_codec *codec)
441441
alc_update_coef_idx(codec, 0x67, 0xf000, 0x3000);
442442
fallthrough;
443443
case 0x10ec0215:
444+
case 0x10ec0236:
445+
case 0x10ec0245:
446+
case 0x10ec0256:
447+
case 0x10ec0257:
444448
case 0x10ec0285:
445449
case 0x10ec0289:
446450
alc_update_coef_idx(codec, 0x36, 1<<13, 0);
447451
fallthrough;
448452
case 0x10ec0230:
449453
case 0x10ec0233:
450454
case 0x10ec0235:
451-
case 0x10ec0236:
452-
case 0x10ec0245:
453455
case 0x10ec0255:
454-
case 0x10ec0256:
455456
case 0x19e58326:
456-
case 0x10ec0257:
457457
case 0x10ec0282:
458458
case 0x10ec0283:
459459
case 0x10ec0286:
@@ -6742,6 +6742,25 @@ static void alc274_fixup_bind_dacs(struct hda_codec *codec,
67426742
codec->power_save_node = 0;
67436743
}
67446744

6745+
/* avoid DAC 0x06 for speaker switch 0x17; it has no volume control */
6746+
static void alc274_fixup_hp_aio_bind_dacs(struct hda_codec *codec,
6747+
const struct hda_fixup *fix, int action)
6748+
{
6749+
static const hda_nid_t conn[] = { 0x02, 0x03 }; /* exclude 0x06 */
6750+
/* The speaker is routed to the Node 0x06 by a mistake, thus the
6751+
* speaker's volume can't be adjusted since the node doesn't have
6752+
* Amp-out capability. Assure the speaker and lineout pin to be
6753+
* coupled with DAC NID 0x02.
6754+
*/
6755+
static const hda_nid_t preferred_pairs[] = {
6756+
0x16, 0x02, 0x17, 0x02, 0x21, 0x03, 0
6757+
};
6758+
struct alc_spec *spec = codec->spec;
6759+
6760+
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
6761+
spec->gen.preferred_dacs = preferred_pairs;
6762+
}
6763+
67456764
/* avoid DAC 0x06 for bass speaker 0x17; it has no volume control */
67466765
static void alc289_fixup_asus_ga401(struct hda_codec *codec,
67476766
const struct hda_fixup *fix, int action)
@@ -6963,6 +6982,41 @@ static void alc285_fixup_hp_spectre_x360_eb1(struct hda_codec *codec,
69636982
}
69646983
}
69656984

6985+
/* GPIO1 = amplifier on/off */
6986+
static void alc285_fixup_hp_spectre_x360_df1(struct hda_codec *codec,
6987+
const struct hda_fixup *fix,
6988+
int action)
6989+
{
6990+
struct alc_spec *spec = codec->spec;
6991+
static const hda_nid_t conn[] = { 0x02 };
6992+
static const struct hda_pintbl pincfgs[] = {
6993+
{ 0x14, 0x90170110 }, /* front/high speakers */
6994+
{ 0x17, 0x90170130 }, /* back/bass speakers */
6995+
{ }
6996+
};
6997+
6998+
// enable mute led
6999+
alc285_fixup_hp_mute_led_coefbit(codec, fix, action);
7000+
7001+
switch (action) {
7002+
case HDA_FIXUP_ACT_PRE_PROBE:
7003+
/* needed for amp of back speakers */
7004+
spec->gpio_mask |= 0x01;
7005+
spec->gpio_dir |= 0x01;
7006+
snd_hda_apply_pincfgs(codec, pincfgs);
7007+
/* share DAC to have unified volume control */
7008+
snd_hda_override_conn_list(codec, 0x14, ARRAY_SIZE(conn), conn);
7009+
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
7010+
break;
7011+
case HDA_FIXUP_ACT_INIT:
7012+
/* need to toggle GPIO to enable the amp of back speakers */
7013+
alc_update_gpio_data(codec, 0x01, true);
7014+
msleep(100);
7015+
alc_update_gpio_data(codec, 0x01, false);
7016+
break;
7017+
}
7018+
}
7019+
69667020
static void alc285_fixup_hp_spectre_x360(struct hda_codec *codec,
69677021
const struct hda_fixup *fix, int action)
69687022
{
@@ -7761,6 +7815,7 @@ enum {
77617815
ALC280_FIXUP_HP_9480M,
77627816
ALC245_FIXUP_HP_X360_AMP,
77637817
ALC285_FIXUP_HP_SPECTRE_X360_EB1,
7818+
ALC285_FIXUP_HP_SPECTRE_X360_DF1,
77647819
ALC285_FIXUP_HP_ENVY_X360,
77657820
ALC288_FIXUP_DELL_HEADSET_MODE,
77667821
ALC288_FIXUP_DELL1_MIC_NO_PRESENCE,
@@ -7970,6 +8025,7 @@ enum {
79708025
ALC294_FIXUP_BASS_SPEAKER_15,
79718026
ALC283_FIXUP_DELL_HP_RESUME,
79728027
ALC294_FIXUP_ASUS_CS35L41_SPI_2,
8028+
ALC274_FIXUP_HP_AIO_BIND_DACS,
79738029
};
79748030

79758031
/* A special fixup for Lenovo C940 and Yoga Duet 7;
@@ -9837,6 +9893,10 @@ static const struct hda_fixup alc269_fixups[] = {
98379893
.type = HDA_FIXUP_FUNC,
98389894
.v.func = alc285_fixup_hp_spectre_x360_eb1
98399895
},
9896+
[ALC285_FIXUP_HP_SPECTRE_X360_DF1] = {
9897+
.type = HDA_FIXUP_FUNC,
9898+
.v.func = alc285_fixup_hp_spectre_x360_df1
9899+
},
98409900
[ALC285_FIXUP_HP_ENVY_X360] = {
98419901
.type = HDA_FIXUP_FUNC,
98429902
.v.func = alc285_fixup_hp_envy_x360,
@@ -10340,6 +10400,10 @@ static const struct hda_fixup alc269_fixups[] = {
1034010400
.chained = true,
1034110401
.chain_id = ALC294_FIXUP_ASUS_HEADSET_MIC,
1034210402
},
10403+
[ALC274_FIXUP_HP_AIO_BIND_DACS] = {
10404+
.type = HDA_FIXUP_FUNC,
10405+
.v.func = alc274_fixup_hp_aio_bind_dacs,
10406+
},
1034310407
};
1034410408

1034510409
static const struct hda_quirk alc269_fixup_tbl[] = {
@@ -10564,6 +10628,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
1056410628
SND_PCI_QUIRK(0x103c, 0x86c1, "HP Laptop 15-da3001TU", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2),
1056510629
SND_PCI_QUIRK(0x103c, 0x86c7, "HP Envy AiO 32", ALC274_FIXUP_HP_ENVY_GPIO),
1056610630
SND_PCI_QUIRK(0x103c, 0x86e7, "HP Spectre x360 15-eb0xxx", ALC285_FIXUP_HP_SPECTRE_X360_EB1),
10631+
SND_PCI_QUIRK(0x103c, 0x863e, "HP Spectre x360 15-df1xxx", ALC285_FIXUP_HP_SPECTRE_X360_DF1),
1056710632
SND_PCI_QUIRK(0x103c, 0x86e8, "HP Spectre x360 15-eb0xxx", ALC285_FIXUP_HP_SPECTRE_X360_EB1),
1056810633
SND_PCI_QUIRK(0x103c, 0x86f9, "HP Spectre x360 13-aw0xxx", ALC285_FIXUP_HP_SPECTRE_X360_MUTE_LED),
1056910634
SND_PCI_QUIRK(0x103c, 0x8716, "HP Elite Dragonfly G2 Notebook PC", ALC285_FIXUP_HP_GPIO_AMP_INIT),
@@ -10768,12 +10833,13 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
1076810833
SND_PCI_QUIRK(0x103c, 0x8ca7, "HP ZBook Fury", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
1076910834
SND_PCI_QUIRK(0x103c, 0x8caf, "HP Elite mt645 G8 Mobile Thin Client", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
1077010835
SND_PCI_QUIRK(0x103c, 0x8cbd, "HP Pavilion Aero Laptop 13-bg0xxx", ALC245_FIXUP_HP_X360_MUTE_LEDS),
10771-
SND_PCI_QUIRK(0x103c, 0x8cdd, "HP Spectre", ALC287_FIXUP_CS35L41_I2C_2),
10772-
SND_PCI_QUIRK(0x103c, 0x8cde, "HP Spectre", ALC287_FIXUP_CS35L41_I2C_2),
10836+
SND_PCI_QUIRK(0x103c, 0x8cdd, "HP Spectre", ALC245_FIXUP_HP_SPECTRE_X360_EU0XXX),
10837+
SND_PCI_QUIRK(0x103c, 0x8cde, "HP OmniBook Ultra Flip Laptop 14t", ALC245_FIXUP_HP_SPECTRE_X360_EU0XXX),
1077310838
SND_PCI_QUIRK(0x103c, 0x8cdf, "HP SnowWhite", ALC287_FIXUP_CS35L41_I2C_2_HP_GPIO_LED),
1077410839
SND_PCI_QUIRK(0x103c, 0x8ce0, "HP SnowWhite", ALC287_FIXUP_CS35L41_I2C_2_HP_GPIO_LED),
1077510840
SND_PCI_QUIRK(0x103c, 0x8cf5, "HP ZBook Studio 16", ALC245_FIXUP_CS35L41_SPI_4_HP_GPIO_LED),
1077610841
SND_PCI_QUIRK(0x103c, 0x8d01, "HP ZBook Power 14 G12", ALC285_FIXUP_HP_GPIO_LED),
10842+
SND_PCI_QUIRK(0x103c, 0x8d18, "HP EliteStudio 8 AIO", ALC274_FIXUP_HP_AIO_BIND_DACS),
1077710843
SND_PCI_QUIRK(0x103c, 0x8d84, "HP EliteBook X G1i", ALC285_FIXUP_HP_GPIO_LED),
1077810844
SND_PCI_QUIRK(0x103c, 0x8d85, "HP EliteBook 14 G12", ALC285_FIXUP_HP_GPIO_LED),
1077910845
SND_PCI_QUIRK(0x103c, 0x8d86, "HP Elite X360 14 G12", ALC285_FIXUP_HP_GPIO_LED),
@@ -10793,11 +10859,15 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
1079310859
SND_PCI_QUIRK(0x103c, 0x8da1, "HP 16 Clipper OmniBook X", ALC287_FIXUP_CS35L41_I2C_2),
1079410860
SND_PCI_QUIRK(0x103c, 0x8da7, "HP 14 Enstrom OmniBook X", ALC287_FIXUP_CS35L41_I2C_2),
1079510861
SND_PCI_QUIRK(0x103c, 0x8da8, "HP 16 Piston OmniBook X", ALC287_FIXUP_CS35L41_I2C_2),
10862+
SND_PCI_QUIRK(0x103c, 0x8dd4, "HP EliteStudio 8 AIO", ALC274_FIXUP_HP_AIO_BIND_DACS),
1079610863
SND_PCI_QUIRK(0x103c, 0x8de8, "HP Gemtree", ALC245_FIXUP_TAS2781_SPI_2),
1079710864
SND_PCI_QUIRK(0x103c, 0x8de9, "HP Gemtree", ALC245_FIXUP_TAS2781_SPI_2),
1079810865
SND_PCI_QUIRK(0x103c, 0x8dec, "HP EliteBook 640 G12", ALC236_FIXUP_HP_GPIO_LED),
10866+
SND_PCI_QUIRK(0x103c, 0x8ded, "HP EliteBook 640 G12", ALC236_FIXUP_HP_GPIO_LED),
1079910867
SND_PCI_QUIRK(0x103c, 0x8dee, "HP EliteBook 660 G12", ALC236_FIXUP_HP_GPIO_LED),
10868+
SND_PCI_QUIRK(0x103c, 0x8def, "HP EliteBook 660 G12", ALC236_FIXUP_HP_GPIO_LED),
1080010869
SND_PCI_QUIRK(0x103c, 0x8df0, "HP EliteBook 630 G12", ALC236_FIXUP_HP_GPIO_LED),
10870+
SND_PCI_QUIRK(0x103c, 0x8df1, "HP EliteBook 630 G12", ALC236_FIXUP_HP_GPIO_LED),
1080110871
SND_PCI_QUIRK(0x103c, 0x8dfc, "HP EliteBook 645 G12", ALC236_FIXUP_HP_GPIO_LED),
1080210872
SND_PCI_QUIRK(0x103c, 0x8dfe, "HP EliteBook 665 G12", ALC236_FIXUP_HP_GPIO_LED),
1080310873
SND_PCI_QUIRK(0x103c, 0x8e11, "HP Trekker", ALC287_FIXUP_CS35L41_I2C_2),
@@ -10843,10 +10913,10 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
1084310913
SND_PCI_QUIRK(0x1043, 0x12a3, "Asus N7691ZM", ALC269_FIXUP_ASUS_N7601ZM),
1084410914
SND_PCI_QUIRK(0x1043, 0x12af, "ASUS UX582ZS", ALC245_FIXUP_CS35L41_SPI_2),
1084510915
SND_PCI_QUIRK(0x1043, 0x12b4, "ASUS B3405CCA / P3405CCA", ALC294_FIXUP_ASUS_CS35L41_SPI_2),
10846-
SND_PCI_QUIRK(0x1043, 0x12e0, "ASUS X541SA", ALC256_FIXUP_ASUS_MIC),
10847-
SND_PCI_QUIRK(0x1043, 0x12f0, "ASUS X541UV", ALC256_FIXUP_ASUS_MIC),
10916+
SND_PCI_QUIRK(0x1043, 0x12e0, "ASUS X541SA", ALC256_FIXUP_ASUS_MIC_NO_PRESENCE),
10917+
SND_PCI_QUIRK(0x1043, 0x12f0, "ASUS X541UV", ALC256_FIXUP_ASUS_MIC_NO_PRESENCE),
1084810918
SND_PCI_QUIRK(0x1043, 0x1313, "Asus K42JZ", ALC269VB_FIXUP_ASUS_MIC_NO_PRESENCE),
10849-
SND_PCI_QUIRK(0x1043, 0x13b0, "ASUS Z550SA", ALC256_FIXUP_ASUS_MIC),
10919+
SND_PCI_QUIRK(0x1043, 0x13b0, "ASUS Z550SA", ALC256_FIXUP_ASUS_MIC_NO_PRESENCE),
1085010920
SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_ASUS_ZENBOOK),
1085110921
SND_PCI_QUIRK(0x1043, 0x1433, "ASUS GX650PY/PZ/PV/PU/PYV/PZV/PIV/PVV", ALC285_FIXUP_ASUS_I2C_HEADSET_MIC),
1085210922
SND_PCI_QUIRK(0x1043, 0x1460, "Asus VivoBook 15", ALC256_FIXUP_ASUS_MIC_NO_PRESENCE),
@@ -10900,7 +10970,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
1090010970
SND_PCI_QUIRK(0x1043, 0x1c92, "ASUS ROG Strix G15", ALC285_FIXUP_ASUS_G533Z_PINS),
1090110971
SND_PCI_QUIRK(0x1043, 0x1c9f, "ASUS G614JU/JV/JI", ALC285_FIXUP_ASUS_HEADSET_MIC),
1090210972
SND_PCI_QUIRK(0x1043, 0x1caf, "ASUS G634JY/JZ/JI/JG", ALC285_FIXUP_ASUS_SPI_REAR_SPEAKERS),
10903-
SND_PCI_QUIRK(0x1043, 0x1ccd, "ASUS X555UB", ALC256_FIXUP_ASUS_MIC),
10973+
SND_PCI_QUIRK(0x1043, 0x1ccd, "ASUS X555UB", ALC256_FIXUP_ASUS_MIC_NO_PRESENCE),
1090410974
SND_PCI_QUIRK(0x1043, 0x1ccf, "ASUS G814JU/JV/JI", ALC245_FIXUP_CS35L41_SPI_2),
1090510975
SND_PCI_QUIRK(0x1043, 0x1cdf, "ASUS G814JY/JZ/JG", ALC245_FIXUP_CS35L41_SPI_2),
1090610976
SND_PCI_QUIRK(0x1043, 0x1cef, "ASUS G834JY/JZ/JI/JG", ALC285_FIXUP_ASUS_HEADSET_MIC),
@@ -11494,6 +11564,7 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
1149411564
{.id = ALC295_FIXUP_HP_OMEN, .name = "alc295-hp-omen"},
1149511565
{.id = ALC285_FIXUP_HP_SPECTRE_X360, .name = "alc285-hp-spectre-x360"},
1149611566
{.id = ALC285_FIXUP_HP_SPECTRE_X360_EB1, .name = "alc285-hp-spectre-x360-eb1"},
11567+
{.id = ALC285_FIXUP_HP_SPECTRE_X360_DF1, .name = "alc285-hp-spectre-x360-df1"},
1149711568
{.id = ALC285_FIXUP_HP_ENVY_X360, .name = "alc285-hp-envy-x360"},
1149811569
{.id = ALC287_FIXUP_IDEAPAD_BASS_SPK_AMP, .name = "alc287-ideapad-bass-spk-amp"},
1149911570
{.id = ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN, .name = "alc287-yoga9-bass-spk-pin"},

sound/soc/amd/acp/acp-i2s.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ static int acp_i2s_set_tdm_slot(struct snd_soc_dai *dai, u32 tx_mask, u32 rx_mas
9797
struct acp_stream *stream;
9898
int slot_len, no_of_slots;
9999

100-
chip = dev_get_platdata(dev);
100+
chip = dev_get_drvdata(dev->parent);
101101
switch (slot_width) {
102102
case SLOT_WIDTH_8:
103103
slot_len = 8;

sound/soc/amd/acp/acp-legacy-common.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -450,7 +450,7 @@ int acp_machine_select(struct acp_chip_info *chip)
450450
struct snd_soc_acpi_mach *mach;
451451
int size, platform;
452452

453-
if (chip->flag == FLAG_AMD_LEGACY_ONLY_DMIC) {
453+
if (chip->flag == FLAG_AMD_LEGACY_ONLY_DMIC && chip->is_pdm_dev) {
454454
platform = chip->acp_rev;
455455
chip->mach_dev = platform_device_register_data(chip->dev, "acp-pdm-mach",
456456
PLATFORM_DEVID_NONE, &platform,

sound/soc/amd/acp/acp-rembrandt.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ static void rembrandt_audio_remove(struct platform_device *pdev)
199199

200200
static int rmb_pcm_resume(struct device *dev)
201201
{
202-
struct acp_chip_info *chip = dev_get_platdata(dev);
202+
struct acp_chip_info *chip = dev_get_drvdata(dev->parent);
203203
struct acp_stream *stream;
204204
struct snd_pcm_substream *substream;
205205
snd_pcm_uframes_t buf_in_frames;

sound/soc/amd/acp/acp-renoir.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ static void renoir_audio_remove(struct platform_device *pdev)
146146

147147
static int rn_pcm_resume(struct device *dev)
148148
{
149-
struct acp_chip_info *chip = dev_get_platdata(dev);
149+
struct acp_chip_info *chip = dev_get_drvdata(dev->parent);
150150
struct acp_stream *stream;
151151
struct snd_pcm_substream *substream;
152152
snd_pcm_uframes_t buf_in_frames;

sound/soc/amd/acp/acp63.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ static void acp63_audio_remove(struct platform_device *pdev)
250250

251251
static int acp63_pcm_resume(struct device *dev)
252252
{
253-
struct acp_chip_info *chip = dev_get_platdata(dev);
253+
struct acp_chip_info *chip = dev_get_drvdata(dev->parent);
254254
struct acp_stream *stream;
255255
struct snd_pcm_substream *substream;
256256
snd_pcm_uframes_t buf_in_frames;

sound/soc/amd/acp/acp70.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ static void acp_acp70_audio_remove(struct platform_device *pdev)
182182

183183
static int acp70_pcm_resume(struct device *dev)
184184
{
185-
struct acp_chip_info *chip = dev_get_platdata(dev);
185+
struct acp_chip_info *chip = dev_get_drvdata(dev->parent);
186186
struct acp_stream *stream;
187187
struct snd_pcm_substream *substream;
188188
snd_pcm_uframes_t buf_in_frames;

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@ static irqreturn_t acp63_irq_handler(int irq, void *dev_id)
193193
struct amd_sdw_manager *amd_manager;
194194
u32 ext_intr_stat, ext_intr_stat1;
195195
u16 irq_flag = 0;
196+
u16 wake_irq_flag = 0;
196197
u16 sdw_dma_irq_flag = 0;
197198

198199
adata = dev_id;
@@ -231,7 +232,7 @@ static irqreturn_t acp63_irq_handler(int irq, void *dev_id)
231232
}
232233

233234
if (adata->acp_rev >= ACP70_PCI_REV)
234-
irq_flag = check_and_handle_acp70_sdw_wake_irq(adata);
235+
wake_irq_flag = check_and_handle_acp70_sdw_wake_irq(adata);
235236

236237
if (ext_intr_stat & BIT(PDM_DMA_STAT)) {
237238
ps_pdm_data = dev_get_drvdata(&adata->pdm_dev->dev);
@@ -245,7 +246,7 @@ static irqreturn_t acp63_irq_handler(int irq, void *dev_id)
245246
if (sdw_dma_irq_flag)
246247
return IRQ_WAKE_THREAD;
247248

248-
if (irq_flag)
249+
if (irq_flag | wake_irq_flag)
249250
return IRQ_HANDLED;
250251
else
251252
return IRQ_NONE;

sound/soc/codecs/Kconfig

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -776,10 +776,9 @@ config SND_SOC_CS_AMP_LIB
776776
tristate
777777

778778
config SND_SOC_CS_AMP_LIB_TEST
779-
tristate "KUnit test for Cirrus Logic cs-amp-lib"
780-
depends on KUNIT
779+
tristate "KUnit test for Cirrus Logic cs-amp-lib" if !KUNIT_ALL_TESTS
780+
depends on SND_SOC_CS_AMP_LIB && KUNIT
781781
default KUNIT_ALL_TESTS
782-
select SND_SOC_CS_AMP_LIB
783782
help
784783
This builds KUnit tests for the Cirrus Logic common
785784
amplifier library.

sound/soc/codecs/cs42l43-jack.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -654,6 +654,10 @@ static int cs42l43_run_type_detect(struct cs42l43_codec *priv)
654654

655655
reinit_completion(&priv->type_detect);
656656

657+
regmap_update_bits(cs42l43->regmap, CS42L43_STEREO_MIC_CLAMP_CTRL,
658+
CS42L43_SMIC_HPAMP_CLAMP_DIS_FRC_VAL_MASK,
659+
CS42L43_SMIC_HPAMP_CLAMP_DIS_FRC_VAL_MASK);
660+
657661
cs42l43_start_hs_bias(priv, true);
658662
regmap_update_bits(cs42l43->regmap, CS42L43_HS2,
659663
CS42L43_HSDET_MODE_MASK, 0x3 << CS42L43_HSDET_MODE_SHIFT);
@@ -665,6 +669,9 @@ static int cs42l43_run_type_detect(struct cs42l43_codec *priv)
665669
CS42L43_HSDET_MODE_MASK, 0x2 << CS42L43_HSDET_MODE_SHIFT);
666670
cs42l43_stop_hs_bias(priv);
667671

672+
regmap_update_bits(cs42l43->regmap, CS42L43_STEREO_MIC_CLAMP_CTRL,
673+
CS42L43_SMIC_HPAMP_CLAMP_DIS_FRC_VAL_MASK, 0);
674+
668675
if (!time_left)
669676
return -ETIMEDOUT;
670677

sound/soc/fsl/imx-card.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -544,7 +544,7 @@ static int imx_card_parse_of(struct imx_card_data *data)
544544
if (!card->dai_link)
545545
return -ENOMEM;
546546

547-
data->link_data = devm_kcalloc(dev, num_links, sizeof(*link), GFP_KERNEL);
547+
data->link_data = devm_kcalloc(dev, num_links, sizeof(*link_data), GFP_KERNEL);
548548
if (!data->link_data)
549549
return -ENOMEM;
550550

sound/soc/generic/simple-card-utils.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1174,9 +1174,9 @@ void graph_util_parse_link_direction(struct device_node *np,
11741174
bool is_playback_only = of_property_read_bool(np, "playback-only");
11751175
bool is_capture_only = of_property_read_bool(np, "capture-only");
11761176

1177-
if (is_playback_only)
1177+
if (playback_only)
11781178
*playback_only = is_playback_only;
1179-
if (is_capture_only)
1179+
if (capture_only)
11801180
*capture_only = is_capture_only;
11811181
}
11821182
EXPORT_SYMBOL_GPL(graph_util_parse_link_direction);

0 commit comments

Comments
 (0)