Skip to content

Commit de20dc2

Browse files
committed
Merge tag 'sound-6.13-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai: "A collection of fixes; all look small, device-specific and boring" * tag 'sound-6.13-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ASoC: Intel: sof_sdw: Add space for a terminator into DAIs array ASoC: fsl_spdif: change IFACE_PCM to IFACE_MIXER ASoC: fsl_xcvr: change IFACE_PCM to IFACE_MIXER ASoC: tas2781: Fix calibration issue in stress test ASoC: audio-graph-card: Call of_node_put() on correct node ASoC: amd: yc: Fix the wrong return value ALSA: control: Avoid WARN() for symlink errors sound: usb: format: don't warn that raw DSD is unsupported sound: usb: enable DSD output for ddHiFi TC44C ALSA: hda/realtek: Add new alc2xx-fixup-headset-mic model ALSA: hda/ca0132: Use standard HD-audio quirk matching helpers ALSA: usb-audio: Add implicit feedback quirk for Yamaha THR5 ALSA: hda/realtek - Add support for ASUS Zen AIO 27 Z272SD_A272SD audio ALSA: hda/realtek: Fix headset mic on Acer Nitro 5 ALSA: hda: cs35l56: Remove calls to cs35l56_force_sync_asp1_registers_from_cache()
2 parents a3170b7 + 7b26bc6 commit de20dc2

File tree

13 files changed

+84
-45
lines changed

13 files changed

+84
-45
lines changed

include/sound/cs35l56.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -271,12 +271,6 @@ struct cs35l56_base {
271271
struct gpio_desc *reset_gpio;
272272
};
273273

274-
/* Temporary to avoid a build break with the HDA driver */
275-
static inline int cs35l56_force_sync_asp1_registers_from_cache(struct cs35l56_base *cs35l56_base)
276-
{
277-
return 0;
278-
}
279-
280274
static inline bool cs35l56_is_otp_register(unsigned int reg)
281275
{
282276
return (reg >> 16) == 3;

sound/core/control_led.c

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -668,10 +668,16 @@ static void snd_ctl_led_sysfs_add(struct snd_card *card)
668668
goto cerr;
669669
led->cards[card->number] = led_card;
670670
snprintf(link_name, sizeof(link_name), "led-%s", led->name);
671-
WARN(sysfs_create_link(&card->ctl_dev->kobj, &led_card->dev.kobj, link_name),
672-
"can't create symlink to controlC%i device\n", card->number);
673-
WARN(sysfs_create_link(&led_card->dev.kobj, &card->card_dev.kobj, "card"),
674-
"can't create symlink to card%i\n", card->number);
671+
if (sysfs_create_link(&card->ctl_dev->kobj, &led_card->dev.kobj,
672+
link_name))
673+
dev_err(card->dev,
674+
"%s: can't create symlink to controlC%i device\n",
675+
__func__, card->number);
676+
if (sysfs_create_link(&led_card->dev.kobj, &card->card_dev.kobj,
677+
"card"))
678+
dev_err(card->dev,
679+
"%s: can't create symlink to card%i\n",
680+
__func__, card->number);
675681

676682
continue;
677683
cerr:

sound/pci/hda/cs35l56_hda.c

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -151,10 +151,6 @@ static int cs35l56_hda_runtime_resume(struct device *dev)
151151
}
152152
}
153153

154-
ret = cs35l56_force_sync_asp1_registers_from_cache(&cs35l56->base);
155-
if (ret)
156-
goto err;
157-
158154
return 0;
159155

160156
err:
@@ -1059,9 +1055,6 @@ int cs35l56_hda_common_probe(struct cs35l56_hda *cs35l56, int hid, int id)
10591055

10601056
regmap_multi_reg_write(cs35l56->base.regmap, cs35l56_hda_dai_config,
10611057
ARRAY_SIZE(cs35l56_hda_dai_config));
1062-
ret = cs35l56_force_sync_asp1_registers_from_cache(&cs35l56->base);
1063-
if (ret)
1064-
goto dsp_err;
10651058

10661059
/*
10671060
* By default only enable one ASP1TXn, where n=amplifier index,
@@ -1087,7 +1080,6 @@ int cs35l56_hda_common_probe(struct cs35l56_hda *cs35l56, int hid, int id)
10871080

10881081
pm_err:
10891082
pm_runtime_disable(cs35l56->base.dev);
1090-
dsp_err:
10911083
cs_dsp_remove(&cs35l56->cs_dsp);
10921084
err:
10931085
gpiod_set_value_cansleep(cs35l56->base.reset_gpio, 0);

sound/pci/hda/patch_ca0132.c

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1134,7 +1134,6 @@ struct ca0132_spec {
11341134

11351135
struct hda_codec *codec;
11361136
struct delayed_work unsol_hp_work;
1137-
int quirk;
11381137

11391138
#ifdef ENABLE_TUNING_CONTROLS
11401139
long cur_ctl_vals[TUNING_CTLS_COUNT];
@@ -1166,7 +1165,6 @@ struct ca0132_spec {
11661165
* CA0132 quirks table
11671166
*/
11681167
enum {
1169-
QUIRK_NONE,
11701168
QUIRK_ALIENWARE,
11711169
QUIRK_ALIENWARE_M17XR4,
11721170
QUIRK_SBZ,
@@ -1176,10 +1174,11 @@ enum {
11761174
QUIRK_R3D,
11771175
QUIRK_AE5,
11781176
QUIRK_AE7,
1177+
QUIRK_NONE = HDA_FIXUP_ID_NOT_SET,
11791178
};
11801179

11811180
#ifdef CONFIG_PCI
1182-
#define ca0132_quirk(spec) ((spec)->quirk)
1181+
#define ca0132_quirk(spec) ((spec)->codec->fixup_id)
11831182
#define ca0132_use_pci_mmio(spec) ((spec)->use_pci_mmio)
11841183
#define ca0132_use_alt_functions(spec) ((spec)->use_alt_functions)
11851184
#define ca0132_use_alt_controls(spec) ((spec)->use_alt_controls)
@@ -1293,7 +1292,7 @@ static const struct hda_pintbl ae7_pincfgs[] = {
12931292
{}
12941293
};
12951294

1296-
static const struct snd_pci_quirk ca0132_quirks[] = {
1295+
static const struct hda_quirk ca0132_quirks[] = {
12971296
SND_PCI_QUIRK(0x1028, 0x057b, "Alienware M17x R4", QUIRK_ALIENWARE_M17XR4),
12981297
SND_PCI_QUIRK(0x1028, 0x0685, "Alienware 15 2015", QUIRK_ALIENWARE),
12991298
SND_PCI_QUIRK(0x1028, 0x0688, "Alienware 17 2015", QUIRK_ALIENWARE),
@@ -1316,6 +1315,19 @@ static const struct snd_pci_quirk ca0132_quirks[] = {
13161315
{}
13171316
};
13181317

1318+
static const struct hda_model_fixup ca0132_quirk_models[] = {
1319+
{ .id = QUIRK_ALIENWARE, .name = "alienware" },
1320+
{ .id = QUIRK_ALIENWARE_M17XR4, .name = "alienware-m17xr4" },
1321+
{ .id = QUIRK_SBZ, .name = "sbz" },
1322+
{ .id = QUIRK_ZXR, .name = "zxr" },
1323+
{ .id = QUIRK_ZXR_DBPRO, .name = "zxr-dbpro" },
1324+
{ .id = QUIRK_R3DI, .name = "r3di" },
1325+
{ .id = QUIRK_R3D, .name = "r3d" },
1326+
{ .id = QUIRK_AE5, .name = "ae5" },
1327+
{ .id = QUIRK_AE7, .name = "ae7" },
1328+
{}
1329+
};
1330+
13191331
/* Output selection quirk info structures. */
13201332
#define MAX_QUIRK_MMIO_GPIO_SET_VALS 3
13211333
#define MAX_QUIRK_SCP_SET_VALS 2
@@ -9957,17 +9969,15 @@ static int ca0132_prepare_verbs(struct hda_codec *codec)
99579969
*/
99589970
static void sbz_detect_quirk(struct hda_codec *codec)
99599971
{
9960-
struct ca0132_spec *spec = codec->spec;
9961-
99629972
switch (codec->core.subsystem_id) {
99639973
case 0x11020033:
9964-
spec->quirk = QUIRK_ZXR;
9974+
codec->fixup_id = QUIRK_ZXR;
99659975
break;
99669976
case 0x1102003f:
9967-
spec->quirk = QUIRK_ZXR_DBPRO;
9977+
codec->fixup_id = QUIRK_ZXR_DBPRO;
99689978
break;
99699979
default:
9970-
spec->quirk = QUIRK_SBZ;
9980+
codec->fixup_id = QUIRK_SBZ;
99719981
break;
99729982
}
99739983
}
@@ -9976,7 +9986,6 @@ static int patch_ca0132(struct hda_codec *codec)
99769986
{
99779987
struct ca0132_spec *spec;
99789988
int err;
9979-
const struct snd_pci_quirk *quirk;
99809989

99819990
codec_dbg(codec, "patch_ca0132\n");
99829991

@@ -9987,11 +9996,7 @@ static int patch_ca0132(struct hda_codec *codec)
99879996
spec->codec = codec;
99889997

99899998
/* Detect codec quirk */
9990-
quirk = snd_pci_quirk_lookup(codec->bus->pci, ca0132_quirks);
9991-
if (quirk)
9992-
spec->quirk = quirk->value;
9993-
else
9994-
spec->quirk = QUIRK_NONE;
9999+
snd_hda_pick_fixup(codec, ca0132_quirk_models, ca0132_quirks, NULL);
999510000
if (ca0132_quirk(spec) == QUIRK_SBZ)
999610001
sbz_detect_quirk(codec);
999710002

@@ -10068,7 +10073,7 @@ static int patch_ca0132(struct hda_codec *codec)
1006810073
spec->mem_base = pci_iomap(codec->bus->pci, 2, 0xC20);
1006910074
if (spec->mem_base == NULL) {
1007010075
codec_warn(codec, "pci_iomap failed! Setting quirk to QUIRK_NONE.");
10071-
spec->quirk = QUIRK_NONE;
10076+
codec->fixup_id = QUIRK_NONE;
1007210077
}
1007310078
}
1007410079
#endif

sound/pci/hda/patch_realtek.c

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7714,6 +7714,7 @@ enum {
77147714
ALC274_FIXUP_HP_MIC,
77157715
ALC274_FIXUP_HP_HEADSET_MIC,
77167716
ALC274_FIXUP_HP_ENVY_GPIO,
7717+
ALC274_FIXUP_ASUS_ZEN_AIO_27,
77177718
ALC256_FIXUP_ASUS_HPE,
77187719
ALC285_FIXUP_THINKPAD_NO_BASS_SPK_HEADSET_JACK,
77197720
ALC287_FIXUP_HP_GPIO_LED,
@@ -9516,6 +9517,26 @@ static const struct hda_fixup alc269_fixups[] = {
95169517
.type = HDA_FIXUP_FUNC,
95179518
.v.func = alc274_fixup_hp_envy_gpio,
95189519
},
9520+
[ALC274_FIXUP_ASUS_ZEN_AIO_27] = {
9521+
.type = HDA_FIXUP_VERBS,
9522+
.v.verbs = (const struct hda_verb[]) {
9523+
{ 0x20, AC_VERB_SET_COEF_INDEX, 0x10 },
9524+
{ 0x20, AC_VERB_SET_PROC_COEF, 0xc420 },
9525+
{ 0x20, AC_VERB_SET_COEF_INDEX, 0x40 },
9526+
{ 0x20, AC_VERB_SET_PROC_COEF, 0x8800 },
9527+
{ 0x20, AC_VERB_SET_COEF_INDEX, 0x49 },
9528+
{ 0x20, AC_VERB_SET_PROC_COEF, 0x0249 },
9529+
{ 0x20, AC_VERB_SET_COEF_INDEX, 0x4a },
9530+
{ 0x20, AC_VERB_SET_PROC_COEF, 0x202b },
9531+
{ 0x20, AC_VERB_SET_COEF_INDEX, 0x62 },
9532+
{ 0x20, AC_VERB_SET_PROC_COEF, 0xa007 },
9533+
{ 0x20, AC_VERB_SET_COEF_INDEX, 0x6b },
9534+
{ 0x20, AC_VERB_SET_PROC_COEF, 0x5060 },
9535+
{}
9536+
},
9537+
.chained = true,
9538+
.chain_id = ALC2XX_FIXUP_HEADSET_MIC,
9539+
},
95199540
[ALC256_FIXUP_ASUS_HPE] = {
95209541
.type = HDA_FIXUP_VERBS,
95219542
.v.verbs = (const struct hda_verb[]) {
@@ -10142,6 +10163,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
1014210163
SND_PCI_QUIRK(0x1025, 0x1430, "Acer TravelMate B311R-31", ALC256_FIXUP_ACER_MIC_NO_PRESENCE),
1014310164
SND_PCI_QUIRK(0x1025, 0x1466, "Acer Aspire A515-56", ALC255_FIXUP_ACER_HEADPHONE_AND_MIC),
1014410165
SND_PCI_QUIRK(0x1025, 0x1534, "Acer Predator PH315-54", ALC255_FIXUP_ACER_MIC_NO_PRESENCE),
10166+
SND_PCI_QUIRK(0x1025, 0x159c, "Acer Nitro 5 AN515-58", ALC2XX_FIXUP_HEADSET_MIC),
1014510167
SND_PCI_QUIRK(0x1025, 0x169a, "Acer Swift SFG16", ALC256_FIXUP_ACER_SFG16_MICMUTE_LED),
1014610168
SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z),
1014710169
SND_PCI_QUIRK(0x1028, 0x053c, "Dell Latitude E5430", ALC292_FIXUP_DELL_E7X),
@@ -10630,6 +10652,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
1063010652
SND_PCI_QUIRK(0x1043, 0x1f62, "ASUS UX7602ZM", ALC245_FIXUP_CS35L41_SPI_2),
1063110653
SND_PCI_QUIRK(0x1043, 0x1f92, "ASUS ROG Flow X16", ALC289_FIXUP_ASUS_GA401),
1063210654
SND_PCI_QUIRK(0x1043, 0x3030, "ASUS ZN270IE", ALC256_FIXUP_ASUS_AIO_GPIO2),
10655+
SND_PCI_QUIRK(0x1043, 0x31d0, "ASUS Zen AIO 27 Z272SD_A272SD", ALC274_FIXUP_ASUS_ZEN_AIO_27),
1063310656
SND_PCI_QUIRK(0x1043, 0x3a20, "ASUS G614JZR", ALC285_FIXUP_ASUS_SPI_REAR_SPEAKERS),
1063410657
SND_PCI_QUIRK(0x1043, 0x3a30, "ASUS G814JVR/JIR", ALC285_FIXUP_ASUS_SPI_REAR_SPEAKERS),
1063510658
SND_PCI_QUIRK(0x1043, 0x3a40, "ASUS G814JZR", ALC285_FIXUP_ASUS_SPI_REAR_SPEAKERS),
@@ -11177,6 +11200,7 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
1117711200
{.id = ALC255_FIXUP_ACER_HEADPHONE_AND_MIC, .name = "alc255-acer-headphone-and-mic"},
1117811201
{.id = ALC285_FIXUP_HP_GPIO_AMP_INIT, .name = "alc285-hp-amp-init"},
1117911202
{.id = ALC236_FIXUP_LENOVO_INV_DMIC, .name = "alc236-fixup-lenovo-inv-mic"},
11203+
{.id = ALC2XX_FIXUP_HEADSET_MIC, .name = "alc2xx-fixup-headset-mic"},
1118011204
{}
1118111205
};
1118211206
#define ALC225_STANDARD_PINS \

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

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -578,14 +578,19 @@ static int acp6x_probe(struct platform_device *pdev)
578578

579579
handle = ACPI_HANDLE(pdev->dev.parent);
580580
ret = acpi_evaluate_integer(handle, "_WOV", NULL, &dmic_status);
581-
if (!ACPI_FAILURE(ret))
581+
if (!ACPI_FAILURE(ret)) {
582582
wov_en = dmic_status;
583+
if (!wov_en)
584+
return -ENODEV;
585+
} else {
586+
/* Incase of ACPI method read failure then jump to check_dmi_entry */
587+
goto check_dmi_entry;
588+
}
583589

584-
if (is_dmic_enable && wov_en)
590+
if (is_dmic_enable)
585591
platform_set_drvdata(pdev, &acp6x_card);
586-
else
587-
return 0;
588592

593+
check_dmi_entry:
589594
/* check for any DMI overrides */
590595
dmi_id = dmi_first_match(yc_acp_quirk_table);
591596
if (dmi_id)

sound/soc/codecs/tas2781-i2c.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,7 @@ static void sngl_calib_start(struct tasdevice_priv *tas_priv, int i,
370370
tasdevice_dev_read(tas_priv, i, p[j].reg,
371371
(int *)&p[j].val[0]);
372372
} else {
373-
switch (p[j].reg) {
373+
switch (tas2781_cali_start_reg[j].reg) {
374374
case 0: {
375375
if (!reg[0])
376376
continue;

sound/soc/fsl/fsl_spdif.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1204,7 +1204,7 @@ static struct snd_kcontrol_new fsl_spdif_ctrls[] = {
12041204
},
12051205
/* DPLL lock info get controller */
12061206
{
1207-
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
1207+
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
12081208
.name = RX_SAMPLE_RATE_KCONTROL,
12091209
.access = SNDRV_CTL_ELEM_ACCESS_READ |
12101210
SNDRV_CTL_ELEM_ACCESS_VOLATILE,

sound/soc/fsl/fsl_xcvr.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ static int fsl_xcvr_capds_put(struct snd_kcontrol *kcontrol,
171171
}
172172

173173
static struct snd_kcontrol_new fsl_xcvr_earc_capds_kctl = {
174-
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
174+
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
175175
.name = "Capabilities Data Structure",
176176
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
177177
.info = fsl_xcvr_type_capds_bytes_info,

sound/soc/generic/audio-graph-card2.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -771,7 +771,7 @@ static void graph_link_init(struct simple_util_priv *priv,
771771
of_node_get(port_codec);
772772
if (graph_lnk_is_multi(port_codec)) {
773773
ep_codec = graph_get_next_multi_ep(&port_codec);
774-
of_node_put(port_cpu);
774+
of_node_put(port_codec);
775775
port_codec = ep_to_port(ep_codec);
776776
} else {
777777
ep_codec = of_graph_get_next_port_endpoint(port_codec, NULL);

0 commit comments

Comments
 (0)