Skip to content

Commit 8176e77

Browse files
committed
Merge tag 'sound-6.15-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai: "A collection of small fixes. All are device-specific like quirks, new IDs, and other safe (or rather boring) changes" * tag 'sound-6.15-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: firmware: cs_dsp: test_bin_error: Fix uninitialized data used as fw version ASoC: codecs: Add of_match_table for aw888081 driver ASoC: fsl: fsl_qmc_audio: Reset audio data pointers on TRIGGER_START event mailmap: Add entry for Srinivas Kandagatla MAINTAINERS: use kernel.org alias ASoC: cs42l43: Reset clamp override on jack removal ALSA: hda/realtek - Fixed ASUS platform headset Mic issue ALSA: hda/cirrus_scodec_test: Don't select dependencies ALSA: azt2320: Replace deprecated strcpy() with strscpy() ASoC: hdmi-codec: use RTD ID instead of DAI ID for ELD entry ASoC: Intel: avs: Constrain path based on BE capabilities ALSA: hda/tas2781: Remove unnecessary NULL check before release_firmware() ASoC: Intel: avs: Fix null-ptr-deref in avs_component_probe() ASoC: fsl_asrc_dma: get codec or cpu dai from backend ASoC: qcom: Fix sc7280 lpass potential buffer overflow ASoC: dwc: always enable/disable i2s irqs ASoC: Intel: sof_sdw: Add quirk for Asus Zenbook S16 ASoC: codecs:lpass-wsa-macro: Fix logic of enabling vi channels ASoC: codecs:lpass-wsa-macro: Fix vi feedback rate
2 parents 8499899 + 7338856 commit 8176e77

22 files changed

+296
-99
lines changed

.mailmap

+2
Original file line numberDiff line numberDiff line change
@@ -688,6 +688,8 @@ Simon Wunderlich <[email protected]> <[email protected]>
688688
689689
690690
Sricharan Ramabadhran <[email protected]> <[email protected]>
691+
Srinivas Kandagatla <[email protected]> <[email protected]>
692+
Srinivas Kandagatla <[email protected]> <[email protected]>
691693
692694
693695

MAINTAINERS

+4-4
Original file line numberDiff line numberDiff line change
@@ -17374,7 +17374,7 @@ T: git git://git.infradead.org/nvme.git
1737417374
F: drivers/nvme/target/
1737517375

1737617376
NVMEM FRAMEWORK
17377-
M: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
17377+
M: Srinivas Kandagatla <srini@kernel.org>
1737817378
S: Maintained
1737917379
T: git git://git.kernel.org/pub/scm/linux/kernel/git/srini/nvmem.git
1738017380
F: Documentation/ABI/stable/sysfs-bus-nvmem
@@ -19579,7 +19579,7 @@ S: Supported
1957919579
F: drivers/crypto/intel/qat/
1958019580

1958119581
QCOM AUDIO (ASoC) DRIVERS
19582-
M: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
19582+
M: Srinivas Kandagatla <srini@kernel.org>
1958319583
1958419584
1958519585
S: Supported
@@ -19879,7 +19879,7 @@ F: Documentation/devicetree/bindings/net/qcom,ethqos.yaml
1987919879
F: drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
1988019880

1988119881
QUALCOMM FASTRPC DRIVER
19882-
M: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
19882+
M: Srinivas Kandagatla <srini@kernel.org>
1988319883
M: Amol Maheshwari <[email protected]>
1988419884
1988519885
@@ -21927,7 +21927,7 @@ S: Maintained
2192721927
F: drivers/media/rc/serial_ir.c
2192821928

2192921929
SERIAL LOW-POWER INTER-CHIP MEDIA BUS (SLIMbus)
21930-
M: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
21930+
M: Srinivas Kandagatla <srini@kernel.org>
2193121931
2193221932
S: Maintained
2193321933
F: Documentation/devicetree/bindings/slimbus/

drivers/firmware/cirrus/test/cs_dsp_mock_mem_maps.c

-30
Original file line numberDiff line numberDiff line change
@@ -461,36 +461,6 @@ unsigned int cs_dsp_mock_xm_header_get_alg_base_in_words(struct cs_dsp_test *pri
461461
}
462462
EXPORT_SYMBOL_NS_GPL(cs_dsp_mock_xm_header_get_alg_base_in_words, "FW_CS_DSP_KUNIT_TEST_UTILS");
463463

464-
/**
465-
* cs_dsp_mock_xm_header_get_fw_version_from_regmap() - Firmware version.
466-
*
467-
* @priv: Pointer to struct cs_dsp_test.
468-
*
469-
* Return: Firmware version word value.
470-
*/
471-
unsigned int cs_dsp_mock_xm_header_get_fw_version_from_regmap(struct cs_dsp_test *priv)
472-
{
473-
unsigned int xm = cs_dsp_mock_base_addr_for_mem(priv, WMFW_ADSP2_XM);
474-
union {
475-
struct wmfw_id_hdr adsp2;
476-
struct wmfw_v3_id_hdr halo;
477-
} hdr;
478-
479-
switch (priv->dsp->type) {
480-
case WMFW_ADSP2:
481-
regmap_raw_read(priv->dsp->regmap, xm, &hdr.adsp2, sizeof(hdr.adsp2));
482-
return be32_to_cpu(hdr.adsp2.ver);
483-
case WMFW_HALO:
484-
regmap_raw_read(priv->dsp->regmap, xm, &hdr.halo, sizeof(hdr.halo));
485-
return be32_to_cpu(hdr.halo.ver);
486-
default:
487-
KUNIT_FAIL(priv->test, NULL);
488-
return 0;
489-
}
490-
}
491-
EXPORT_SYMBOL_NS_GPL(cs_dsp_mock_xm_header_get_fw_version_from_regmap,
492-
"FW_CS_DSP_KUNIT_TEST_UTILS");
493-
494464
/**
495465
* cs_dsp_mock_xm_header_get_fw_version() - Firmware version.
496466
*

drivers/firmware/cirrus/test/cs_dsp_test_bin.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -2198,7 +2198,7 @@ static int cs_dsp_bin_test_common_init(struct kunit *test, struct cs_dsp *dsp)
21982198

21992199
priv->local->bin_builder =
22002200
cs_dsp_mock_bin_init(priv, 1,
2201-
cs_dsp_mock_xm_header_get_fw_version_from_regmap(priv));
2201+
cs_dsp_mock_xm_header_get_fw_version(xm_hdr));
22022202
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, priv->local->bin_builder);
22032203

22042204
/* We must provide a dummy wmfw to load */

drivers/firmware/cirrus/test/cs_dsp_test_bin_error.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,7 @@ static int cs_dsp_bin_err_test_common_init(struct kunit *test, struct cs_dsp *ds
451451

452452
local->bin_builder =
453453
cs_dsp_mock_bin_init(priv, 1,
454-
cs_dsp_mock_xm_header_get_fw_version_from_regmap(priv));
454+
cs_dsp_mock_xm_header_get_fw_version(local->xm_header));
455455
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, local->bin_builder);
456456

457457
/* Init cs_dsp */

include/linux/firmware/cirrus/cs_dsp_test_utils.h

-1
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,6 @@ unsigned int cs_dsp_mock_num_dsp_words_to_num_packed_regs(unsigned int num_dsp_w
104104
unsigned int cs_dsp_mock_xm_header_get_alg_base_in_words(struct cs_dsp_test *priv,
105105
unsigned int alg_id,
106106
int mem_type);
107-
unsigned int cs_dsp_mock_xm_header_get_fw_version_from_regmap(struct cs_dsp_test *priv);
108107
unsigned int cs_dsp_mock_xm_header_get_fw_version(struct cs_dsp_mock_xm_header *header);
109108
void cs_dsp_mock_xm_header_drop_from_regmap_cache(struct cs_dsp_test *priv);
110109
int cs_dsp_mock_xm_header_write_to_regmap(struct cs_dsp_mock_xm_header *header);

sound/isa/azt2320.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -189,8 +189,8 @@ static int snd_card_azt2320_probe(int dev,
189189
if (error < 0)
190190
return error;
191191

192-
strcpy(card->driver, "AZT2320");
193-
strcpy(card->shortname, "Aztech AZT2320");
192+
strscpy(card->driver, "AZT2320");
193+
strscpy(card->shortname, "Aztech AZT2320");
194194
sprintf(card->longname, "%s, WSS at 0x%lx, irq %i, dma %i&%i",
195195
card->shortname, chip->port, irq[dev], dma1[dev], dma2[dev]);
196196

sound/pci/hda/Kconfig

+1-3
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,7 @@ config SND_HDA_CIRRUS_SCODEC
9696

9797
config SND_HDA_CIRRUS_SCODEC_KUNIT_TEST
9898
tristate "KUnit test for Cirrus side-codec library" if !KUNIT_ALL_TESTS
99-
select SND_HDA_CIRRUS_SCODEC
100-
select GPIOLIB
101-
depends on KUNIT
99+
depends on SND_HDA_CIRRUS_SCODEC && GPIOLIB && KUNIT
102100
default KUNIT_ALL_TESTS
103101
help
104102
This builds KUnit tests for the cirrus side-codec library.

sound/pci/hda/patch_realtek.c

+15-8
Original file line numberDiff line numberDiff line change
@@ -7969,6 +7969,7 @@ enum {
79697969
ALC233_FIXUP_MEDION_MTL_SPK,
79707970
ALC294_FIXUP_BASS_SPEAKER_15,
79717971
ALC283_FIXUP_DELL_HP_RESUME,
7972+
ALC294_FIXUP_ASUS_CS35L41_SPI_2,
79727973
};
79737974

79747975
/* A special fixup for Lenovo C940 and Yoga Duet 7;
@@ -10333,6 +10334,12 @@ static const struct hda_fixup alc269_fixups[] = {
1033310334
.type = HDA_FIXUP_FUNC,
1033410335
.v.func = alc283_fixup_dell_hp_resume,
1033510336
},
10337+
[ALC294_FIXUP_ASUS_CS35L41_SPI_2] = {
10338+
.type = HDA_FIXUP_FUNC,
10339+
.v.func = cs35l41_fixup_spi_two,
10340+
.chained = true,
10341+
.chain_id = ALC294_FIXUP_ASUS_HEADSET_MIC,
10342+
},
1033610343
};
1033710344

1033810345
static const struct hda_quirk alc269_fixup_tbl[] = {
@@ -10835,7 +10842,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
1083510842
SND_PCI_QUIRK(0x1043, 0x12a0, "ASUS X441UV", ALC233_FIXUP_EAPD_COEF_AND_MIC_NO_PRESENCE),
1083610843
SND_PCI_QUIRK(0x1043, 0x12a3, "Asus N7691ZM", ALC269_FIXUP_ASUS_N7601ZM),
1083710844
SND_PCI_QUIRK(0x1043, 0x12af, "ASUS UX582ZS", ALC245_FIXUP_CS35L41_SPI_2),
10838-
SND_PCI_QUIRK(0x1043, 0x12b4, "ASUS B3405CCA / P3405CCA", ALC245_FIXUP_CS35L41_SPI_2),
10845+
SND_PCI_QUIRK(0x1043, 0x12b4, "ASUS B3405CCA / P3405CCA", ALC294_FIXUP_ASUS_CS35L41_SPI_2),
1083910846
SND_PCI_QUIRK(0x1043, 0x12e0, "ASUS X541SA", ALC256_FIXUP_ASUS_MIC),
1084010847
SND_PCI_QUIRK(0x1043, 0x12f0, "ASUS X541UV", ALC256_FIXUP_ASUS_MIC),
1084110848
SND_PCI_QUIRK(0x1043, 0x1313, "Asus K42JZ", ALC269VB_FIXUP_ASUS_MIC_NO_PRESENCE),
@@ -10925,14 +10932,14 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
1092510932
SND_PCI_QUIRK(0x1043, 0x1fb3, "ASUS ROG Flow Z13 GZ302EA", ALC287_FIXUP_CS35L41_I2C_2),
1092610933
SND_PCI_QUIRK(0x1043, 0x3011, "ASUS B5605CVA", ALC245_FIXUP_CS35L41_SPI_2),
1092710934
SND_PCI_QUIRK(0x1043, 0x3030, "ASUS ZN270IE", ALC256_FIXUP_ASUS_AIO_GPIO2),
10928-
SND_PCI_QUIRK(0x1043, 0x3061, "ASUS B3405CCA", ALC245_FIXUP_CS35L41_SPI_2),
10929-
SND_PCI_QUIRK(0x1043, 0x3071, "ASUS B5405CCA", ALC245_FIXUP_CS35L41_SPI_2),
10930-
SND_PCI_QUIRK(0x1043, 0x30c1, "ASUS B3605CCA / P3605CCA", ALC245_FIXUP_CS35L41_SPI_2),
10931-
SND_PCI_QUIRK(0x1043, 0x30d1, "ASUS B5405CCA", ALC245_FIXUP_CS35L41_SPI_2),
10932-
SND_PCI_QUIRK(0x1043, 0x30e1, "ASUS B5605CCA", ALC245_FIXUP_CS35L41_SPI_2),
10935+
SND_PCI_QUIRK(0x1043, 0x3061, "ASUS B3405CCA", ALC294_FIXUP_ASUS_CS35L41_SPI_2),
10936+
SND_PCI_QUIRK(0x1043, 0x3071, "ASUS B5405CCA", ALC294_FIXUP_ASUS_CS35L41_SPI_2),
10937+
SND_PCI_QUIRK(0x1043, 0x30c1, "ASUS B3605CCA / P3605CCA", ALC294_FIXUP_ASUS_CS35L41_SPI_2),
10938+
SND_PCI_QUIRK(0x1043, 0x30d1, "ASUS B5405CCA", ALC294_FIXUP_ASUS_CS35L41_SPI_2),
10939+
SND_PCI_QUIRK(0x1043, 0x30e1, "ASUS B5605CCA", ALC294_FIXUP_ASUS_CS35L41_SPI_2),
1093310940
SND_PCI_QUIRK(0x1043, 0x31d0, "ASUS Zen AIO 27 Z272SD_A272SD", ALC274_FIXUP_ASUS_ZEN_AIO_27),
10934-
SND_PCI_QUIRK(0x1043, 0x31e1, "ASUS B5605CCA", ALC245_FIXUP_CS35L41_SPI_2),
10935-
SND_PCI_QUIRK(0x1043, 0x31f1, "ASUS B3605CCA", ALC245_FIXUP_CS35L41_SPI_2),
10941+
SND_PCI_QUIRK(0x1043, 0x31e1, "ASUS B5605CCA", ALC294_FIXUP_ASUS_CS35L41_SPI_2),
10942+
SND_PCI_QUIRK(0x1043, 0x31f1, "ASUS B3605CCA", ALC294_FIXUP_ASUS_CS35L41_SPI_2),
1093610943
SND_PCI_QUIRK(0x1043, 0x3a20, "ASUS G614JZR", ALC285_FIXUP_ASUS_SPI_REAR_SPEAKERS),
1093710944
SND_PCI_QUIRK(0x1043, 0x3a30, "ASUS G814JVR/JIR", ALC285_FIXUP_ASUS_SPI_REAR_SPEAKERS),
1093810945
SND_PCI_QUIRK(0x1043, 0x3a40, "ASUS G814JZR", ALC285_FIXUP_ASUS_SPI_REAR_SPEAKERS),

sound/pci/hda/tas2781_hda_spi.c

+1-2
Original file line numberDiff line numberDiff line change
@@ -1003,8 +1003,7 @@ static void tasdev_fw_ready(const struct firmware *fmw, void *context)
10031003
*/
10041004

10051005
out:
1006-
if (fmw)
1007-
release_firmware(fmw);
1006+
release_firmware(fmw);
10081007
pm_runtime_mark_last_busy(tas_hda->priv->dev);
10091008
pm_runtime_put_autosuspend(tas_hda->priv->dev);
10101009
}

sound/soc/codecs/aw88081.c

+10
Original file line numberDiff line numberDiff line change
@@ -1295,9 +1295,19 @@ static int aw88081_i2c_probe(struct i2c_client *i2c)
12951295
aw88081_dai, ARRAY_SIZE(aw88081_dai));
12961296
}
12971297

1298+
#if defined(CONFIG_OF)
1299+
static const struct of_device_id aw88081_of_match[] = {
1300+
{ .compatible = "awinic,aw88081" },
1301+
{ .compatible = "awinic,aw88083" },
1302+
{ }
1303+
};
1304+
MODULE_DEVICE_TABLE(of, aw88081_of_match);
1305+
#endif
1306+
12981307
static struct i2c_driver aw88081_i2c_driver = {
12991308
.driver = {
13001309
.name = AW88081_I2C_NAME,
1310+
.of_match_table = of_match_ptr(aw88081_of_match),
13011311
},
13021312
.probe = aw88081_i2c_probe,
13031313
.id_table = aw88081_i2c_id,

sound/soc/codecs/cs42l43-jack.c

+3
Original file line numberDiff line numberDiff line change
@@ -702,6 +702,9 @@ static void cs42l43_clear_jack(struct cs42l43_codec *priv)
702702
CS42L43_PGA_WIDESWING_MODE_EN_MASK, 0);
703703
regmap_update_bits(cs42l43->regmap, CS42L43_STEREO_MIC_CTRL,
704704
CS42L43_JACK_STEREO_CONFIG_MASK, 0);
705+
regmap_update_bits(cs42l43->regmap, CS42L43_STEREO_MIC_CLAMP_CTRL,
706+
CS42L43_SMIC_HPAMP_CLAMP_DIS_FRC_MASK,
707+
CS42L43_SMIC_HPAMP_CLAMP_DIS_FRC_MASK);
705708
regmap_update_bits(cs42l43->regmap, CS42L43_HS2,
706709
CS42L43_HSDET_MODE_MASK | CS42L43_HSDET_MANUAL_MODE_MASK,
707710
0x2 << CS42L43_HSDET_MODE_SHIFT);

sound/soc/codecs/hdmi-codec.c

+19-3
Original file line numberDiff line numberDiff line change
@@ -842,12 +842,28 @@ static void print_eld_info(struct snd_info_entry *entry,
842842
static int hdmi_dai_proc_new(struct hdmi_codec_priv *hcp,
843843
struct snd_soc_dai *dai)
844844
{
845+
struct snd_soc_component *component = dai->component;
846+
struct snd_soc_card *card = component->card;
847+
struct snd_soc_dai *d;
848+
struct snd_soc_pcm_runtime *rtd;
845849
struct snd_info_entry *entry;
846850
char name[32];
847-
int err;
851+
int err, i, id = 0;
848852

849-
snprintf(name, sizeof(name), "eld#%d", dai->id);
850-
err = snd_card_proc_new(dai->component->card->snd_card, name, &entry);
853+
/*
854+
* To avoid duplicate proc entry, find its rtd and use rtd->id
855+
* instead of dai->id
856+
*/
857+
for_each_card_rtds(card, rtd) {
858+
for_each_rtd_dais(rtd, i, d)
859+
if (d == dai) {
860+
id = rtd->id;
861+
goto found;
862+
}
863+
}
864+
found:
865+
snprintf(name, sizeof(name), "eld#%d", id);
866+
err = snd_card_proc_new(card->snd_card, name, &entry);
851867
if (err < 0)
852868
return err;
853869

0 commit comments

Comments
 (0)