Skip to content

Commit 8f08ed0

Browse files
committed
Merge tag 'sound-fix-6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai: "Here is a collection of fixes that have been gathered since the previous pull request. All about device-specific fixes and quirks, and most of them are pretty small and trivial" * tag 'sound-fix-6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (25 commits) ALSA: hda/realtek: Workaround for resume on Dell Venue 11 Pro 7130 ALSA: hda: Fix headset detection failure due to unstable sort ALSA: pcm: use new array-copying-wrapper ASoC: codec: es8316: "DAC Soft Ramp Rate" is just a 2 bit control ASoC: amd: acp: Fix possible deadlock firmware: cs_dsp: FW_CS_DSP_KUNIT_TEST should not select REGMAP ALSA: usb-audio: Add delay quirk for iBasso DC07 Pro ALSA: hda/realtek: Fix quirk matching for Legion Pro 7 ASoC: renesas: SND_SIU_MIGOR should depend on DMADEVICES ASoC: Intel: bytcr_rt5640: Add DMI quirk for Vexia Edu Atla 10 tablet 5V ASoC: da7213: Initialize the mutex ASoC: use to_platform_device() instead of container_of() ASoC: acp: Support microphone from Lenovo Go S ASoC: SOF: imx8m: Add entry for new 8M Plus revision ASoC: SOF: imx8: Add entries for new 8QM and 8QXP revisions ASoC: SOF: imx: Add mach entry to select cs42888 topology dt-bindings: arm: imx: Add board revisions for i.MX8MP, i.MX8QM and i.MX8QXP ASoC: fsl_asrc_m2m: select CONFIG_DMA_SHARED_BUFFER ASoC: audio-graph-card2: use correct endpoint when getting link parameters ASoC: SOF: imx8m: add SAI2,5,6,7 ...
2 parents 69e858e + 8c2fa44 commit 8f08ed0

File tree

27 files changed

+233
-71
lines changed

27 files changed

+233
-71
lines changed

Documentation/devicetree/bindings/arm/fsl.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1091,6 +1091,7 @@ properties:
10911091
- dmo,imx8mp-data-modul-edm-sbc # i.MX8MP eDM SBC
10921092
- emcraft,imx8mp-navqp # i.MX8MP Emcraft Systems NavQ+ Kit
10931093
- fsl,imx8mp-evk # i.MX8MP EVK Board
1094+
- fsl,imx8mp-evk-revb4 # i.MX8MP EVK Rev B4 Board
10941095
- gateworks,imx8mp-gw71xx-2x # i.MX8MP Gateworks Board
10951096
- gateworks,imx8mp-gw72xx-2x # i.MX8MP Gateworks Board
10961097
- gateworks,imx8mp-gw73xx-2x # i.MX8MP Gateworks Board
@@ -1271,6 +1272,7 @@ properties:
12711272
items:
12721273
- enum:
12731274
- fsl,imx8qm-mek # i.MX8QM MEK Board
1275+
- fsl,imx8qm-mek-revd # i.MX8QM MEK Rev D Board
12741276
- toradex,apalis-imx8 # Apalis iMX8 Modules
12751277
- toradex,apalis-imx8-v1.1 # Apalis iMX8 V1.1 Modules
12761278
- const: fsl,imx8qm
@@ -1299,6 +1301,7 @@ properties:
12991301
- enum:
13001302
- einfochips,imx8qxp-ai_ml # i.MX8QXP AI_ML Board
13011303
- fsl,imx8qxp-mek # i.MX8QXP MEK Board
1304+
- fsl,imx8qxp-mek-wcpu # i.MX8QXP MEK WCPU Board
13021305
- const: fsl,imx8qxp
13031306

13041307
- description: i.MX8DXL based Boards

Documentation/devicetree/bindings/sound/ti,pcm1681.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
$id: http://devicetree.org/schemas/sound/ti,pcm1681.yaml#
55
$schema: http://devicetree.org/meta-schemas/core.yaml#
66

7-
title: Texas Instruments PCM1681 8-channel PWM Processor
7+
title: Texas Instruments PCM1681 8-channel Digital-to-Analog Converter
88

99
maintainers:
1010
- Shenghao Ding <shenghao-ding@ti.com>

drivers/firmware/cirrus/Kconfig

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,13 @@ config FW_CS_DSP
66

77
config FW_CS_DSP_KUNIT_TEST_UTILS
88
tristate
9-
depends on KUNIT
10-
select REGMAP
9+
depends on KUNIT && REGMAP
1110
select FW_CS_DSP
1211

1312
config FW_CS_DSP_KUNIT_TEST
1413
tristate "KUnit tests for Cirrus Logic cs_dsp" if !KUNIT_ALL_TESTS
15-
depends on KUNIT
14+
depends on KUNIT && REGMAP
1615
default KUNIT_ALL_TESTS
17-
select REGMAP
1816
select FW_CS_DSP
1917
select FW_CS_DSP_KUNIT_TEST_UTILS
2018
help

sound/core/pcm_native.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3245,7 +3245,7 @@ static int snd_pcm_xfern_frames_ioctl(struct snd_pcm_substream *substream,
32453245
if (copy_from_user(&xfern, _xfern, sizeof(xfern)))
32463246
return -EFAULT;
32473247

3248-
bufs = memdup_user(xfern.bufs, sizeof(void *) * runtime->channels);
3248+
bufs = memdup_array_user(xfern.bufs, runtime->channels, sizeof(void *));
32493249
if (IS_ERR(bufs))
32503250
return PTR_ERR(bufs);
32513251
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)

sound/pci/hda/hda_auto_parser.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,11 @@ static int compare_input_type(const void *ap, const void *bp)
8080

8181
/* In case one has boost and the other one has not,
8282
pick the one with boost first. */
83-
return (int)(b->has_boost_on_pin - a->has_boost_on_pin);
83+
if (a->has_boost_on_pin != b->has_boost_on_pin)
84+
return (int)(b->has_boost_on_pin - a->has_boost_on_pin);
85+
86+
/* Keep the original order */
87+
return a->order - b->order;
8488
}
8589

8690
/* Reorder the surround channels
@@ -400,6 +404,8 @@ int snd_hda_parse_pin_defcfg(struct hda_codec *codec,
400404
reorder_outputs(cfg->speaker_outs, cfg->speaker_pins);
401405

402406
/* sort inputs in the order of AUTO_PIN_* type */
407+
for (i = 0; i < cfg->num_inputs; i++)
408+
cfg->inputs[i].order = i;
403409
sort(cfg->inputs, cfg->num_inputs, sizeof(cfg->inputs[0]),
404410
compare_input_type, NULL);
405411

sound/pci/hda/hda_auto_parser.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ struct auto_pin_cfg_item {
3737
unsigned int is_headset_mic:1;
3838
unsigned int is_headphone_mic:1; /* Mic-only in headphone jack */
3939
unsigned int has_boost_on_pin:1;
40+
int order;
4041
};
4142

4243
struct auto_pin_cfg;

sound/pci/hda/patch_realtek.c

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7497,6 +7497,16 @@ static void alc287_fixup_lenovo_thinkpad_with_alc1318(struct hda_codec *codec,
74977497
spec->gen.pcm_playback_hook = alc287_alc1318_playback_pcm_hook;
74987498
}
74997499

7500+
/*
7501+
* Clear COEF 0x0d (PCBEEP passthrough) bit 0x40 where BIOS sets it wrongly
7502+
* at PM resume
7503+
*/
7504+
static void alc283_fixup_dell_hp_resume(struct hda_codec *codec,
7505+
const struct hda_fixup *fix, int action)
7506+
{
7507+
if (action == HDA_FIXUP_ACT_INIT)
7508+
alc_write_coef_idx(codec, 0xd, 0x2800);
7509+
}
75007510

75017511
enum {
75027512
ALC269_FIXUP_GPIO2,
@@ -7799,6 +7809,7 @@ enum {
77997809
ALC269_FIXUP_VAIO_VJFH52_MIC_NO_PRESENCE,
78007810
ALC233_FIXUP_MEDION_MTL_SPK,
78017811
ALC294_FIXUP_BASS_SPEAKER_15,
7812+
ALC283_FIXUP_DELL_HP_RESUME,
78027813
};
78037814

78047815
/* A special fixup for Lenovo C940 and Yoga Duet 7;
@@ -10143,6 +10154,10 @@ static const struct hda_fixup alc269_fixups[] = {
1014310154
.type = HDA_FIXUP_FUNC,
1014410155
.v.func = alc294_fixup_bass_speaker_15,
1014510156
},
10157+
[ALC283_FIXUP_DELL_HP_RESUME] = {
10158+
.type = HDA_FIXUP_FUNC,
10159+
.v.func = alc283_fixup_dell_hp_resume,
10160+
},
1014610161
};
1014710162

1014810163
static const struct hda_quirk alc269_fixup_tbl[] = {
@@ -10203,6 +10218,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
1020310218
SND_PCI_QUIRK(0x1028, 0x05f4, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE),
1020410219
SND_PCI_QUIRK(0x1028, 0x05f5, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE),
1020510220
SND_PCI_QUIRK(0x1028, 0x05f6, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE),
10221+
SND_PCI_QUIRK(0x1028, 0x0604, "Dell Venue 11 Pro 7130", ALC283_FIXUP_DELL_HP_RESUME),
1020610222
SND_PCI_QUIRK(0x1028, 0x0615, "Dell Vostro 5470", ALC290_FIXUP_SUBWOOFER_HSJACK),
1020710223
SND_PCI_QUIRK(0x1028, 0x0616, "Dell Vostro 5470", ALC290_FIXUP_SUBWOOFER_HSJACK),
1020810224
SND_PCI_QUIRK(0x1028, 0x062c, "Dell Latitude E5550", ALC292_FIXUP_DELL_E7X),
@@ -10918,7 +10934,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
1091810934
SND_PCI_QUIRK(0x17aa, 0x3869, "Lenovo Yoga7 14IAL7", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN),
1091910935
HDA_CODEC_QUIRK(0x17aa, 0x386e, "Legion Y9000X 2022 IAH7", ALC287_FIXUP_CS35L41_I2C_2),
1092010936
SND_PCI_QUIRK(0x17aa, 0x386e, "Yoga Pro 7 14ARP8", ALC285_FIXUP_SPEAKER2_TO_DAC1),
10921-
HDA_CODEC_QUIRK(0x17aa, 0x386f, "Legion Pro 7 16ARX8H", ALC287_FIXUP_TAS2781_I2C),
10937+
HDA_CODEC_QUIRK(0x17aa, 0x38a8, "Legion Pro 7 16ARX8H", ALC287_FIXUP_TAS2781_I2C), /* this must match before PCI SSID 17aa:386f below */
1092210938
SND_PCI_QUIRK(0x17aa, 0x386f, "Legion Pro 7i 16IAX7", ALC287_FIXUP_CS35L41_I2C_2),
1092310939
SND_PCI_QUIRK(0x17aa, 0x3870, "Lenovo Yoga 7 14ARB7", ALC287_FIXUP_YOGA7_14ARB7_I2C),
1092410940
SND_PCI_QUIRK(0x17aa, 0x3877, "Lenovo Legion 7 Slim 16ARHA7", ALC287_FIXUP_CS35L41_I2C_2),

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,7 @@ static int acp_i2s_set_tdm_slot(struct snd_soc_dai *dai, u32 tx_mask, u32 rx_mas
181181
break;
182182
default:
183183
dev_err(dev, "Unknown chip revision %d\n", chip->acp_rev);
184+
spin_unlock_irq(&adata->acp_lock);
184185
return -EINVAL;
185186
}
186187
}

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

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,34 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
304304
DMI_MATCH(DMI_PRODUCT_NAME, "83AS"),
305305
}
306306
},
307+
{
308+
.driver_data = &acp6x_card,
309+
.matches = {
310+
DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
311+
DMI_MATCH(DMI_PRODUCT_NAME, "83L3"),
312+
}
313+
},
314+
{
315+
.driver_data = &acp6x_card,
316+
.matches = {
317+
DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
318+
DMI_MATCH(DMI_PRODUCT_NAME, "83N6"),
319+
}
320+
},
321+
{
322+
.driver_data = &acp6x_card,
323+
.matches = {
324+
DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
325+
DMI_MATCH(DMI_PRODUCT_NAME, "83Q2"),
326+
}
327+
},
328+
{
329+
.driver_data = &acp6x_card,
330+
.matches = {
331+
DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
332+
DMI_MATCH(DMI_PRODUCT_NAME, "83Q3"),
333+
}
334+
},
307335
{
308336
.driver_data = &acp6x_card,
309337
.matches = {

sound/soc/codecs/da7213.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2203,6 +2203,8 @@ static int da7213_i2c_probe(struct i2c_client *i2c)
22032203
return ret;
22042204
}
22052205

2206+
mutex_init(&da7213->ctrl_lock);
2207+
22062208
pm_runtime_set_autosuspend_delay(&i2c->dev, 100);
22072209
pm_runtime_use_autosuspend(&i2c->dev);
22082210
pm_runtime_set_active(&i2c->dev);

0 commit comments

Comments
 (0)