Skip to content

Commit c93913c

Browse files
committed
Merge tag 'sound-fix-6.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai: - Support for ASoC AMD ACP 7.2 with new IDs - ASoC Intel AVS and SOF fixes - Yet more kconfig adjustments for HD-audio codecs - TAS2781 codec fixes - Fixes for longstanding (rather minor) bugs in Intel LPE audio and USB-audio drivers * tag 'sound-fix-6.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: hda/cirrus: Restrict prompt only for CONFIG_EXPERT ALSA: hda/hdmi: Restrict prompt only for CONFIG_EXPERT ALSA: hda/realtek: Restrict prompt only for CONFIG_EXPERT ALSA: hda/ca0132: Fix missing error handling in ca0132_alt_select_out() ASoC: SOF: Intel: hda-sdw-bpt: fix SND_SOF_SOF_HDA_SDW_BPT dependencies ALSA: hda/tas2781: Support L"SmartAmpCalibrationData" to save calibrated data ALSA: intel_hdmi: Fix off-by-one error in __hdmi_lpe_audio_probe() ALSA: hda/realtek: add LG gram 16Z90R-A to alc269 fixup table ALSA: usb-audio: Don't use printk_ratelimit for debug prints ASoC: Intel: sof_sdw: Add quirk for Alienware Area 51 (2025) 0CCC SKU ASoC: tas2781: Fix the wrong step for TLV on tas2781 ASoC: amd: acp: Add SoundWire SOF machine driver support for acp7.2 platform ASoC: amd: acp: Add SoundWire legacy machine driver support for acp7.2 platform ASoC: amd: ps: Add SoundWire pci and dma driver support for acp7.2 platform ASoC: SOF: amd: Add sof audio support for acp7.2 platform ASoC: Intel: avs: Fix uninitialized pointer error in probe() ASoC: wm8962: Clear master mode when enter runtime suspend ASoC: SOF: amd: acp-loader: Use GFP_KERNEL for DMA allocations in resume context
2 parents 61d4179 + e8e4f3c commit c93913c

File tree

24 files changed

+137
-56
lines changed

24 files changed

+137
-56
lines changed

include/sound/tas2781-tlv.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
#ifndef __TAS2781_TLV_H__
1616
#define __TAS2781_TLV_H__
1717

18-
static const __maybe_unused DECLARE_TLV_DB_SCALE(dvc_tlv, -10000, 100, 0);
18+
static const __maybe_unused DECLARE_TLV_DB_SCALE(dvc_tlv, -10000, 50, 0);
1919
static const __maybe_unused DECLARE_TLV_DB_SCALE(amp_vol_tlv, 1100, 50, 0);
2020

2121
#endif

sound/hda/codecs/ca0132.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4802,7 +4802,8 @@ static int ca0132_alt_select_out(struct hda_codec *codec)
48024802
if (err < 0)
48034803
goto exit;
48044804

4805-
if (ca0132_alt_select_out_quirk_set(codec) < 0)
4805+
err = ca0132_alt_select_out_quirk_set(codec);
4806+
if (err < 0)
48064807
goto exit;
48074808

48084809
switch (spec->cur_out_type) {
@@ -4892,6 +4893,8 @@ static int ca0132_alt_select_out(struct hda_codec *codec)
48924893
spec->bass_redirection_val);
48934894
else
48944895
err = ca0132_alt_surround_set_bass_redirection(codec, 0);
4896+
if (err < 0)
4897+
goto exit;
48954898

48964899
/* Unmute DSP now that we're done with output selection. */
48974900
err = dspio_set_uint_param(codec, 0x96,

sound/hda/codecs/cirrus/Kconfig

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,31 @@
22

33
menuconfig SND_HDA_CODEC_CIRRUS
44
tristate "Cirrus Logic HD-audio codec support"
5+
help
6+
Say Y or M here to include Cirrus Logic HD-audio codec support.
7+
8+
This will enable both CS420x and CS421x HD-audio codec drivers
9+
as default, but you can enable/disable each codec driver
10+
individually, too (only when CONFIG_EXPERT is set).
511

612
if SND_HDA_CODEC_CIRRUS
713

814
config SND_HDA_CODEC_CS420X
9-
tristate "Build Cirrus Logic CS420x codec support"
15+
tristate "Build Cirrus Logic CS420x codec support" if EXPERT
1016
select SND_HDA_GENERIC
1117
default y
1218
help
13-
Say Y or M here to include Cirrus Logic CS420x codec support in
14-
snd-hda-intel driver
19+
Say Y or M here to include Cirrus Logic CS420x codec support
1520

1621
comment "Set to Y if you want auto-loading the codec driver"
1722
depends on SND_HDA=y && SND_HDA_CODEC_CS420X=m
1823

1924
config SND_HDA_CODEC_CS421X
20-
tristate "Build Cirrus Logic CS421x codec support"
25+
tristate "Build Cirrus Logic CS421x codec support" if EXPERT
2126
select SND_HDA_GENERIC
2227
default y
2328
help
24-
Say Y or M here to include Cirrus Logic CS421x codec support in
25-
snd-hda-intel driver
29+
Say Y or M here to include Cirrus Logic CS421x codec support
2630

2731
comment "Set to Y if you want auto-loading the codec driver"
2832
depends on SND_HDA=y && SND_HDA_CODEC_CS421X=m
@@ -31,8 +35,8 @@ config SND_HDA_CODEC_CS8409
3135
tristate "Build Cirrus Logic HDA bridge support"
3236
select SND_HDA_GENERIC
3337
help
34-
Say Y or M here to include Cirrus Logic HDA bridge support in
35-
snd-hda-intel driver, such as CS8409.
38+
Say Y or M here to include Cirrus Logic HDA bridge support
39+
such as CS8409.
3640

3741
comment "Set to Y if you want auto-loading the codec driver"
3842
depends on SND_HDA=y && SND_HDA_CODEC_CS8409=m

sound/hda/codecs/hdmi/Kconfig

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,17 @@
22

33
menuconfig SND_HDA_CODEC_HDMI
44
tristate "HD-audio HDMI codec support"
5+
help
6+
Say Y or M here to include HD-audio HDMI/DislayPort codec support.
7+
8+
This will enable all HDMI/DP codec drivers as default, but you can
9+
enable/disable each codec driver individually, too (only when
10+
CONFIG_EXPERT is set).
511

612
if SND_HDA_CODEC_HDMI
713

814
config SND_HDA_CODEC_HDMI_GENERIC
9-
tristate "Generic HDMI/DisplayPort HD-audio codec support"
15+
tristate "Generic HDMI/DisplayPort HD-audio codec support" if EXPERT
1016
select SND_DYNAMIC_MINORS
1117
select SND_PCM_ELD
1218
default y
@@ -18,14 +24,14 @@ config SND_HDA_CODEC_HDMI_GENERIC
1824
to assure the multiple streams for DP-MST support.
1925

2026
config SND_HDA_CODEC_HDMI_SIMPLE
21-
tristate "Simple HDMI/DisplayPort HD-audio codec support"
27+
tristate "Simple HDMI/DisplayPort HD-audio codec support" if EXPERT
2228
default y
2329
help
2430
Say Y or M here to include Simple HDMI and DisplayPort HD-audio
2531
codec support for VIA and other codecs.
2632

2733
config SND_HDA_CODEC_HDMI_INTEL
28-
tristate "Intel HDMI/DisplayPort HD-audio codec support"
34+
tristate "Intel HDMI/DisplayPort HD-audio codec support" if EXPERT
2935
select SND_HDA_CODEC_HDMI_GENERIC
3036
default y
3137
help
@@ -48,31 +54,31 @@ config SND_HDA_INTEL_HDMI_SILENT_STREAM
4854
are kept reserved both at transmitter and receiver.
4955

5056
config SND_HDA_CODEC_HDMI_ATI
51-
tristate "AMD/ATI HDMI/DisplayPort HD-audio codec support"
57+
tristate "AMD/ATI HDMI/DisplayPort HD-audio codec support" if EXPERT
5258
select SND_HDA_CODEC_HDMI_GENERIC
5359
default y
5460
help
5561
Say Y or M here to include AMD/ATI graphics HDMI and DisplayPort
5662
HD-audio codec support.
5763

5864
config SND_HDA_CODEC_HDMI_NVIDIA
59-
tristate "Nvidia HDMI/DisplayPort HD-audio codec support"
65+
tristate "Nvidia HDMI/DisplayPort HD-audio codec support" if EXPERT
6066
select SND_HDA_CODEC_HDMI_GENERIC
6167
default y
6268
help
6369
Say Y or M here to include HDMI and DisplayPort HD-audio codec
6470
support for the recent Nvidia graphics cards.
6571

6672
config SND_HDA_CODEC_HDMI_NVIDIA_MCP
67-
tristate "Legacy Nvidia HDMI/DisplayPort HD-audio codec support"
73+
tristate "Legacy Nvidia HDMI/DisplayPort HD-audio codec support" if EXPERT
6874
select SND_HDA_CODEC_HDMI_SIMPLE
6975
default y
7076
help
7177
Say Y or M here to include HDMI and DisplayPort HD-audio codec
7278
support for the legacy Nvidia graphics like MCP73, MCP67, MCP77/78.
7379

7480
config SND_HDA_CODEC_HDMI_TEGRA
75-
tristate "Nvidia Tegra HDMI/DisplayPort HD-audio codec support"
81+
tristate "Nvidia Tegra HDMI/DisplayPort HD-audio codec support" if EXPERT
7682
select SND_HDA_CODEC_HDMI_GENERIC
7783
default y
7884
help

sound/hda/codecs/realtek/Kconfig

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22

33
menuconfig SND_HDA_CODEC_REALTEK
44
tristate "Realtek HD-audio codec support"
5+
help
6+
Say Y or M here to include Realtek HD-audio codec support.
7+
8+
This will enable all Realtek HD-audio codec drivers as default,
9+
but you can enable/disable each codec driver individually, too
10+
(only when CONFIG_EXPERT is set).
511

612
if SND_HDA_CODEC_REALTEK
713

@@ -12,23 +18,23 @@ config SND_HDA_CODEC_REALTEK_LIB
1218
select SND_HDA_SCODEC_COMPONENT
1319

1420
config SND_HDA_CODEC_ALC260
15-
tristate "Build Realtek ALC260 HD-audio codec support"
21+
tristate "Build Realtek ALC260 HD-audio codec support" if EXPERT
1622
depends on INPUT
1723
select SND_HDA_CODEC_REALTEK_LIB
1824
default y
1925
help
2026
Say Y or M here to include Realtek ALC260 HD-audio codec support
2127

2228
config SND_HDA_CODEC_ALC262
23-
tristate "Build Realtek ALC262 HD-audio codec support"
29+
tristate "Build Realtek ALC262 HD-audio codec support" if EXPERT
2430
depends on INPUT
2531
select SND_HDA_CODEC_REALTEK_LIB
2632
default y
2733
help
2834
Say Y or M here to include Realtek ALC262 HD-audio codec support
2935

3036
config SND_HDA_CODEC_ALC268
31-
tristate "Build Realtek ALC268 HD-audio codec support"
37+
tristate "Build Realtek ALC268 HD-audio codec support" if EXPERT
3238
depends on INPUT
3339
select SND_HDA_CODEC_REALTEK_LIB
3440
default y
@@ -37,7 +43,7 @@ config SND_HDA_CODEC_ALC268
3743
codec support
3844

3945
config SND_HDA_CODEC_ALC269
40-
tristate "Build Realtek ALC269 HD-audio codecs support"
46+
tristate "Build Realtek ALC269 HD-audio codecs support" if EXPERT
4147
depends on INPUT
4248
select SND_HDA_CODEC_REALTEK_LIB
4349
default y
@@ -46,7 +52,7 @@ config SND_HDA_CODEC_ALC269
4652
codec support
4753

4854
config SND_HDA_CODEC_ALC662
49-
tristate "Build Realtek ALC662 HD-audio codecs support"
55+
tristate "Build Realtek ALC662 HD-audio codecs support" if EXPERT
5056
depends on INPUT
5157
select SND_HDA_CODEC_REALTEK_LIB
5258
default y
@@ -55,39 +61,39 @@ config SND_HDA_CODEC_ALC662
5561
codec support
5662

5763
config SND_HDA_CODEC_ALC680
58-
tristate "Build Realtek ALC680 HD-audio codecs support"
64+
tristate "Build Realtek ALC680 HD-audio codecs support" if EXPERT
5965
depends on INPUT
6066
select SND_HDA_CODEC_REALTEK_LIB
6167
default y
6268
help
6369
Say Y or M here to include Realtek ALC680 HD-audio codec support
6470

6571
config SND_HDA_CODEC_ALC861
66-
tristate "Build Realtek ALC861 HD-audio codecs support"
72+
tristate "Build Realtek ALC861 HD-audio codecs support" if EXPERT
6773
depends on INPUT
6874
select SND_HDA_CODEC_REALTEK_LIB
6975
default y
7076
help
7177
Say Y or M here to include Realtek ALC861 HD-audio codec support
7278

7379
config SND_HDA_CODEC_ALC861VD
74-
tristate "Build Realtek ALC861-VD HD-audio codecs support"
80+
tristate "Build Realtek ALC861-VD HD-audio codecs support" if EXPERT
7581
depends on INPUT
7682
select SND_HDA_CODEC_REALTEK_LIB
7783
default y
7884
help
7985
Say Y or M here to include Realtek ALC861-VD HD-audio codec support
8086

8187
config SND_HDA_CODEC_ALC880
82-
tristate "Build Realtek ALC880 HD-audio codecs support"
88+
tristate "Build Realtek ALC880 HD-audio codecs support" if EXPERT
8389
depends on INPUT
8490
select SND_HDA_CODEC_REALTEK_LIB
8591
default y
8692
help
8793
Say Y or M here to include Realtek ALC880 HD-audio codec support
8894

8995
config SND_HDA_CODEC_ALC882
90-
tristate "Build Realtek ALC882 HD-audio codecs support"
96+
tristate "Build Realtek ALC882 HD-audio codecs support" if EXPERT
9197
depends on INPUT
9298
select SND_HDA_CODEC_REALTEK_LIB
9399
default y
@@ -96,5 +102,3 @@ config SND_HDA_CODEC_ALC882
96102
codec support
97103

98104
endif
99-
100-

sound/hda/codecs/realtek/alc269.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7110,6 +7110,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
71107110
SND_PCI_QUIRK(0x1854, 0x0440, "LG CQ6", ALC256_FIXUP_HEADPHONE_AMP_VOL),
71117111
SND_PCI_QUIRK(0x1854, 0x0441, "LG CQ6 AIO", ALC256_FIXUP_HEADPHONE_AMP_VOL),
71127112
SND_PCI_QUIRK(0x1854, 0x0488, "LG gram 16 (16Z90R)", ALC298_FIXUP_SAMSUNG_AMP_V2_4_AMPS),
7113+
SND_PCI_QUIRK(0x1854, 0x0489, "LG gram 16 (16Z90R-A)", ALC298_FIXUP_SAMSUNG_AMP_V2_4_AMPS),
71137114
SND_PCI_QUIRK(0x1854, 0x048a, "LG gram 17 (17ZD90R)", ALC298_FIXUP_SAMSUNG_AMP_V2_4_AMPS),
71147115
SND_PCI_QUIRK(0x19e5, 0x3204, "Huawei MACH-WX9", ALC256_FIXUP_HUAWEI_MACH_WX9_PINS),
71157116
SND_PCI_QUIRK(0x19e5, 0x320f, "Huawei WRT-WX9 ", ALC256_FIXUP_ASUS_MIC_NO_PRESENCE),

sound/hda/codecs/side-codecs/tas2781_hda.c

Lines changed: 32 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
#include "tas2781_hda.h"
2020

21+
#define CALIBRATION_DATA_AREA_NUM 2
22+
2123
const efi_guid_t tasdev_fct_efi_guid[] = {
2224
/* DELL */
2325
EFI_GUID(0xcc92382d, 0x6337, 0x41cb, 0xa8, 0x8b, 0x8e, 0xce, 0x74,
@@ -160,36 +162,51 @@ int tas2781_save_calibration(struct tas2781_hda *hda)
160162
* manufactory.
161163
*/
162164
efi_guid_t efi_guid = tasdev_fct_efi_guid[LENOVO];
163-
static efi_char16_t efi_name[] = TASDEVICE_CALIBRATION_DATA_NAME;
165+
/*
166+
* Some devices save the calibrated data into L"CALI_DATA",
167+
* and others into L"SmartAmpCalibrationData".
168+
*/
169+
static efi_char16_t *efi_name[CALIBRATION_DATA_AREA_NUM] = {
170+
L"CALI_DATA",
171+
L"SmartAmpCalibrationData",
172+
};
164173
struct tasdevice_priv *p = hda->priv;
165174
struct calidata *cali_data = &p->cali_data;
166175
unsigned long total_sz = 0;
167176
unsigned int attr, size;
168177
unsigned char *data;
169178
efi_status_t status;
179+
int i;
170180

171181
if (hda->catlog_id < LENOVO)
172182
efi_guid = tasdev_fct_efi_guid[hda->catlog_id];
173183

174184
cali_data->cali_dat_sz_per_dev = 20;
175185
size = p->ndev * (cali_data->cali_dat_sz_per_dev + 1);
176-
/* Get real size of UEFI variable */
177-
status = efi.get_variable(efi_name, &efi_guid, &attr, &total_sz, NULL);
178-
cali_data->total_sz = total_sz > size ? total_sz : size;
179-
if (status == EFI_BUFFER_TOO_SMALL) {
180-
/* Allocate data buffer of data_size bytes */
181-
data = p->cali_data.data = devm_kzalloc(p->dev,
182-
p->cali_data.total_sz, GFP_KERNEL);
183-
if (!data) {
184-
p->cali_data.total_sz = 0;
185-
return -ENOMEM;
186+
for (i = 0; i < CALIBRATION_DATA_AREA_NUM; i++) {
187+
/* Get real size of UEFI variable */
188+
status = efi.get_variable(efi_name[i], &efi_guid, &attr,
189+
&total_sz, NULL);
190+
cali_data->total_sz = total_sz > size ? total_sz : size;
191+
if (status == EFI_BUFFER_TOO_SMALL) {
192+
/* Allocate data buffer of data_size bytes */
193+
data = cali_data->data = devm_kzalloc(p->dev,
194+
cali_data->total_sz, GFP_KERNEL);
195+
if (!data) {
196+
status = -ENOMEM;
197+
continue;
198+
}
199+
/* Get variable contents into buffer */
200+
status = efi.get_variable(efi_name[i], &efi_guid,
201+
&attr, &cali_data->total_sz, data);
186202
}
187-
/* Get variable contents into buffer */
188-
status = efi.get_variable(efi_name, &efi_guid, &attr,
189-
&p->cali_data.total_sz, data);
203+
/* Check whether get the calibrated data */
204+
if (status == EFI_SUCCESS)
205+
break;
190206
}
207+
191208
if (status != EFI_SUCCESS) {
192-
p->cali_data.total_sz = 0;
209+
cali_data->total_sz = 0;
193210
return status;
194211
}
195212

sound/hda/codecs/side-codecs/tas2781_hda.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
/* Flag of calibration registers address. */
1313
#define TASDEV_UEFI_CALI_REG_ADDR_FLG BIT(7)
14-
#define TASDEVICE_CALIBRATION_DATA_NAME L"CALI_DATA"
14+
1515
#define TASDEV_CALIB_N 5
1616

1717
/*

sound/soc/amd/acp/acp-sdw-legacy-mach.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ static int create_sdw_dailink(struct snd_soc_card *card,
158158
break;
159159
case ACP70_PCI_REV:
160160
case ACP71_PCI_REV:
161+
case ACP72_PCI_REV:
161162
ret = get_acp70_cpu_pin_id(ffs(soc_end->link_mask - 1),
162163
*be_id, &cpu_pin_id, dev);
163164
if (ret)
@@ -264,6 +265,7 @@ static int create_sdw_dailinks(struct snd_soc_card *card,
264265
case ACP63_PCI_REV:
265266
case ACP70_PCI_REV:
266267
case ACP71_PCI_REV:
268+
case ACP72_PCI_REV:
267269
sdw_platform_component->name = "amd_ps_sdw_dma.0";
268270
break;
269271
default:
@@ -311,6 +313,7 @@ static int create_dmic_dailinks(struct snd_soc_card *card,
311313
case ACP63_PCI_REV:
312314
case ACP70_PCI_REV:
313315
case ACP71_PCI_REV:
316+
case ACP72_PCI_REV:
314317
pdm_cpu->name = "acp_ps_pdm_dma.0";
315318
pdm_platform->name = "acp_ps_pdm_dma.0";
316319
break;

sound/soc/amd/acp/acp-sdw-sof-mach.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ static int create_sdw_dailink(struct snd_soc_card *card,
130130
break;
131131
case ACP70_PCI_REV:
132132
case ACP71_PCI_REV:
133+
case ACP72_PCI_REV:
133134
ret = get_acp70_cpu_pin_id(ffs(sof_end->link_mask - 1),
134135
*be_id, &cpu_pin_id, dev);
135136
if (ret)

0 commit comments

Comments
 (0)