History

Merge tag 'sound-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai: "A few last-minute fixes. All changes are device-specific small fixes that should be pretty safe to apply" * tag 'sound-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: hda/realtek - update set GPIO3 to default for Thinkpad with ALC1318 ALSA: hda/realtek: fix mute/micmute LEDs for a HP EliteBook 645 G10 ALSA: hda/realtek - Fixed Clevo platform headset Mic issue ALSA: usb-audio: Fix Yamaha P-125 Quirk Entry ASoC: max9768: Fix event generation for playback mute ASoC: intel: sof_sdw: add quirk for Dell SKU ASoC: audio-graph-card2: Purge absent supplies for device tree nodes

Linus Torvalds committed 1 year ago

Commit eeae5ef2 parents 842c7e5 5ec23a15 files · +44 −5Browse files

Unified · Split

5 files
  1. sound/pci/hda/patch_realtek.c +11 −2
  2. sound/soc/codecs/max9768.c +9 −2
  3. sound/soc/generic/audio-graph-card2.c +3 −0
  4. sound/soc/intel/boards/sof_sdw.c +8 −0
  5. sound/usb/quirks-table.h +13 −1
sound/pci/hda/patch_realtek.c+11−2
@@ -7450,7 +7450,6 @@ static void alc287_alc1318_playback_pcm_hook(struct hda_pcm_stream *hinfo, · 7449 unmodified lines
7450 struct snd_pcm_substream *substream,7450 struct snd_pcm_substream *substream,
7451 int action)7451 int action)
7452{7452{
7453 alc_write_coef_idx(codec, 0x10, 0x8806); /* Change MLK to GPIO3 */
7454 switch (action) {7453 switch (action) {
7455 case HDA_GEN_PCM_ACT_OPEN:7454 case HDA_GEN_PCM_ACT_OPEN:
7456 alc_write_coefex_idx(codec, 0x5a, 0x00, 0x954f); /* write gpio3 to high */7455 alc_write_coefex_idx(codec, 0x5a, 0x00, 0x954f); /* write gpio3 to high */
@@ -7464,7 +7463,6 @@ static void alc287_alc1318_playback_pcm_hook(struct hda_pcm_stream *hinfo, · 7 unmodified lines
7464static void alc287_s4_power_gpio3_default(struct hda_codec *codec)7463static void alc287_s4_power_gpio3_default(struct hda_codec *codec)
7465{7464{
7466 if (is_s4_suspend(codec)) {7465 if (is_s4_suspend(codec)) {
7467 alc_write_coef_idx(codec, 0x10, 0x8806); /* Change MLK to GPIO3 */
7468 alc_write_coefex_idx(codec, 0x5a, 0x00, 0x554f); /* write gpio3 as default value */7466 alc_write_coefex_idx(codec, 0x5a, 0x00, 0x554f); /* write gpio3 as default value */
7469 }7467 }
7470}7468}
@@ -7473,9 +7471,17 @@ static void alc287_fixup_lenovo_thinkpad_with_alc1318(struct hda_codec *codec, · 2 unmodified lines
7473 const struct hda_fixup *fix, int action)7471 const struct hda_fixup *fix, int action)
7474{7472{
7475 struct alc_spec *spec = codec->spec;7473 struct alc_spec *spec = codec->spec;
7474 static const struct coef_fw coefs[] = {
7475 WRITE_COEF(0x24, 0x0013), WRITE_COEF(0x25, 0x0000), WRITE_COEF(0x26, 0xC300),
7476 WRITE_COEF(0x28, 0x0001), WRITE_COEF(0x29, 0xb023),
7477 WRITE_COEF(0x24, 0x0013), WRITE_COEF(0x25, 0x0000), WRITE_COEF(0x26, 0xC301),
7478 WRITE_COEF(0x28, 0x0001), WRITE_COEF(0x29, 0xb023),
7479 };
7476 7480
7477 if (action != HDA_FIXUP_ACT_PRE_PROBE)7481 if (action != HDA_FIXUP_ACT_PRE_PROBE)
7478 return;7482 return;
7483 alc_update_coef_idx(codec, 0x10, 1<<11, 1<<11);
7484 alc_process_coef_fw(codec, coefs);
7479 spec->power_hook = alc287_s4_power_gpio3_default;7485 spec->power_hook = alc287_s4_power_gpio3_default;
7480 spec->gen.pcm_playback_hook = alc287_alc1318_playback_pcm_hook;7486 spec->gen.pcm_playback_hook = alc287_alc1318_playback_pcm_hook;
7481}7487}
@@ -10496,6 +10502,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { · 3014 unmodified lines
10496 SND_PCI_QUIRK(0x103c, 0x8b59, "HP Elite mt645 G7 Mobile Thin Client U89", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),10502 SND_PCI_QUIRK(0x103c, 0x8b59, "HP Elite mt645 G7 Mobile Thin Client U89", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
10497 SND_PCI_QUIRK(0x103c, 0x8b5d, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),10503 SND_PCI_QUIRK(0x103c, 0x8b5d, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
10498 SND_PCI_QUIRK(0x103c, 0x8b5e, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),10504 SND_PCI_QUIRK(0x103c, 0x8b5e, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
10505 SND_PCI_QUIRK(0x103c, 0x8b5f, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
10499 SND_PCI_QUIRK(0x103c, 0x8b63, "HP Elite Dragonfly 13.5 inch G4", ALC245_FIXUP_CS35L41_SPI_4_HP_GPIO_LED),10506 SND_PCI_QUIRK(0x103c, 0x8b63, "HP Elite Dragonfly 13.5 inch G4", ALC245_FIXUP_CS35L41_SPI_4_HP_GPIO_LED),
10500 SND_PCI_QUIRK(0x103c, 0x8b65, "HP ProBook 455 15.6 inch G10 Notebook PC", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),10507 SND_PCI_QUIRK(0x103c, 0x8b65, "HP ProBook 455 15.6 inch G10 Notebook PC", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
10501 SND_PCI_QUIRK(0x103c, 0x8b66, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),10508 SND_PCI_QUIRK(0x103c, 0x8b66, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
@@ -11673,6 +11680,8 @@ static const struct snd_hda_pin_quirk alc269_fallback_pin_fixup_tbl[] = { · 1171 unmodified lines
11673 {0x1a, 0x40000000}),11680 {0x1a, 0x40000000}),
11674 SND_HDA_PIN_QUIRK(0x10ec0256, 0x1043, "ASUS", ALC2XX_FIXUP_HEADSET_MIC,11681 SND_HDA_PIN_QUIRK(0x10ec0256, 0x1043, "ASUS", ALC2XX_FIXUP_HEADSET_MIC,
11675 {0x19, 0x40000000}),11682 {0x19, 0x40000000}),
11683 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1558, "Clevo", ALC2XX_FIXUP_HEADSET_MIC,
11684 {0x19, 0x40000000}),
11676 {}11685 {}
11677};11686};
11678 11687
sound/soc/codecs/max9768.c+9−2
@@ -54,10 +54,17 @@ static int max9768_set_gpio(struct snd_kcontrol *kcontrol, · 53 unmodified lines
54{54{
55 struct snd_soc_component *c = snd_soc_kcontrol_component(kcontrol);55 struct snd_soc_component *c = snd_soc_kcontrol_component(kcontrol);
56 struct max9768 *max9768 = snd_soc_component_get_drvdata(c);56 struct max9768 *max9768 = snd_soc_component_get_drvdata(c);
57 bool val = !ucontrol->value.integer.value[0];
58 int ret;
57 59
58 gpiod_set_value_cansleep(max9768->mute, !ucontrol->value.integer.value[0]);60 if (val != gpiod_get_value_cansleep(max9768->mute))
61 ret = 1;
62 else
63 ret = 0;
59 64
60 return 0;65 gpiod_set_value_cansleep(max9768->mute, val);
66
67 return ret;
61}68}
62 69
63static const DECLARE_TLV_DB_RANGE(volume_tlv,70static const DECLARE_TLV_DB_RANGE(volume_tlv,
sound/soc/generic/audio-graph-card2.c+3−0
@@ -270,16 +270,19 @@ static enum graph_type __graph_get_type(struct device_node *lnk) · 269 unmodified lines
270 270
271 if (of_node_name_eq(np, GRAPH_NODENAME_MULTI)) {271 if (of_node_name_eq(np, GRAPH_NODENAME_MULTI)) {
272 ret = GRAPH_MULTI;272 ret = GRAPH_MULTI;
273 fw_devlink_purge_absent_suppliers(&np->fwnode);
273 goto out_put;274 goto out_put;
274 }275 }
275 276
276 if (of_node_name_eq(np, GRAPH_NODENAME_DPCM)) {277 if (of_node_name_eq(np, GRAPH_NODENAME_DPCM)) {
277 ret = GRAPH_DPCM;278 ret = GRAPH_DPCM;
279 fw_devlink_purge_absent_suppliers(&np->fwnode);
278 goto out_put;280 goto out_put;
279 }281 }
280 282
281 if (of_node_name_eq(np, GRAPH_NODENAME_C2C)) {283 if (of_node_name_eq(np, GRAPH_NODENAME_C2C)) {
282 ret = GRAPH_C2C;284 ret = GRAPH_C2C;
285 fw_devlink_purge_absent_suppliers(&np->fwnode);
283 goto out_put;286 goto out_put;
284 }287 }
285 288
sound/soc/intel/boards/sof_sdw.c+8−0
@@ -590,6 +590,14 @@ static const struct dmi_system_id sof_sdw_quirk_table[] = { · 589 unmodified lines
590 },590 },
591 .driver_data = (void *)(SOC_SDW_CODEC_SPKR),591 .driver_data = (void *)(SOC_SDW_CODEC_SPKR),
592 },592 },
593 {
594 .callback = sof_sdw_quirk_cb,
595 .matches = {
596 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc"),
597 DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "0CF1")
598 },
599 .driver_data = (void *)(SOC_SDW_CODEC_SPKR),
600 },
593 {601 {
594 .callback = sof_sdw_quirk_cb,602 .callback = sof_sdw_quirk_cb,
595 .matches = {603 .matches = {
sound/usb/quirks-table.h+13−1
@@ -324,7 +324,6 @@ YAMAHA_DEVICE(0x105a, NULL), · 323 unmodified lines
324YAMAHA_DEVICE(0x105b, NULL),324YAMAHA_DEVICE(0x105b, NULL),
325YAMAHA_DEVICE(0x105c, NULL),325YAMAHA_DEVICE(0x105c, NULL),
326YAMAHA_DEVICE(0x105d, NULL),326YAMAHA_DEVICE(0x105d, NULL),
327YAMAHA_DEVICE(0x1718, "P-125"),
328{327{
329 USB_DEVICE(0x0499, 0x1503),328 USB_DEVICE(0x0499, 0x1503),
330 QUIRK_DRIVER_INFO {329 QUIRK_DRIVER_INFO {
@@ -391,6 +390,19 @@ YAMAHA_DEVICE(0x1718, "P-125"), · 60 unmodified lines
391 }390 }
392 }391 }
393},392},
393{
394 USB_DEVICE(0x0499, 0x1718),
395 QUIRK_DRIVER_INFO {
396 /* .vendor_name = "Yamaha", */
397 /* .product_name = "P-125", */
398 QUIRK_DATA_COMPOSITE {
399 { QUIRK_DATA_STANDARD_AUDIO(1) },
400 { QUIRK_DATA_STANDARD_AUDIO(2) },
401 { QUIRK_DATA_MIDI_YAMAHA(3) },
402 QUIRK_COMPOSITE_END
403 }
404 }
405},
394YAMAHA_DEVICE(0x2000, "DGP-7"),406YAMAHA_DEVICE(0x2000, "DGP-7"),
395YAMAHA_DEVICE(0x2001, "DGP-5"),407YAMAHA_DEVICE(0x2001, "DGP-5"),
396YAMAHA_DEVICE(0x2002, NULL),408YAMAHA_DEVICE(0x2002, NULL),