mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 21:21:41 +00:00
sound fixes for 6.12
A few last-minute fixes. All changes are device-specific small fixes that should be pretty safe to apply. -----BEGIN PGP SIGNATURE----- iQJCBAABCAAsFiEEIXTw5fNLNI7mMiVaLtJE4w1nLE8FAmc2IUEOHHRpd2FpQHN1 c2UuZGUACgkQLtJE4w1nLE/vqhAA0m5OhLPRJU3O4t8LVlaJKzRm8mS39jJ7bnpP I116NxZTtyS840CJbb5/731XCrS8IRz1RlqY6Ex9Y7kAnCK05h9R+vEw6RSH13rJ XZgaAzK4qssx0x9Y/kd62x+/cRTLKPQHFtpJYzc2GYAZqrEovH4VHZxXfwtOd9HY fVCXt2Bv7tzT3ZP9/3rq8QMEM4c+al3voB9EnIsL/4YMBLSkO17hFi8NlLjGiBCz 6shh1y/3JeBqVq/pj4E6xvy5ba+GUJI5h/oxxqaEF0u7AwaZbg+p6GF+yZJSybP2 Ry3y6lpU8gN51ZN5B6HVdgDkTLJoWTqFPgAu4purywmpJ0NAF/T7cE/uizNOdX3F 4l3PTwll+4MFMmKTA1MElVYTlVj/ogOm1DbeZfovtwJoQEs0xP3DJS0TVFdZtKGr nISdQHyZ23mV/8UHq6eHKQjM4sK3BFJQJptCT9vYp3H7k6bPdntCG8dJLGTnZTCW nPmDRfvh8hh95kYXHfPdtP52btoG/Kd5L5104ta9tfqRgsbze0mawxFph3qUyHEn cpjq/XOgzt2prFlaZGBHMw46/62XlQ1lEZ8hSrdi9bRIZiSibeGr4FncRqBJBlTI iahMBlxPEEt1D8wglc3YAQIFPR0dvfEjpm6uSCtu2Il+DS1V6J1SjfFhsL2At3PT Ee5ero8= =Erlm -----END PGP SIGNATURE----- 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
This commit is contained in:
commit
eeae5ef6bf
@ -7450,7 +7450,6 @@ static void alc287_alc1318_playback_pcm_hook(struct hda_pcm_stream *hinfo,
|
|||||||
struct snd_pcm_substream *substream,
|
struct snd_pcm_substream *substream,
|
||||||
int action)
|
int action)
|
||||||
{
|
{
|
||||||
alc_write_coef_idx(codec, 0x10, 0x8806); /* Change MLK to GPIO3 */
|
|
||||||
switch (action) {
|
switch (action) {
|
||||||
case HDA_GEN_PCM_ACT_OPEN:
|
case HDA_GEN_PCM_ACT_OPEN:
|
||||||
alc_write_coefex_idx(codec, 0x5a, 0x00, 0x954f); /* write gpio3 to high */
|
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,
|
|||||||
static void alc287_s4_power_gpio3_default(struct hda_codec *codec)
|
static void alc287_s4_power_gpio3_default(struct hda_codec *codec)
|
||||||
{
|
{
|
||||||
if (is_s4_suspend(codec)) {
|
if (is_s4_suspend(codec)) {
|
||||||
alc_write_coef_idx(codec, 0x10, 0x8806); /* Change MLK to GPIO3 */
|
|
||||||
alc_write_coefex_idx(codec, 0x5a, 0x00, 0x554f); /* write gpio3 as default value */
|
alc_write_coefex_idx(codec, 0x5a, 0x00, 0x554f); /* write gpio3 as default value */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -7473,9 +7471,17 @@ static void alc287_fixup_lenovo_thinkpad_with_alc1318(struct hda_codec *codec,
|
|||||||
const struct hda_fixup *fix, int action)
|
const struct hda_fixup *fix, int action)
|
||||||
{
|
{
|
||||||
struct alc_spec *spec = codec->spec;
|
struct alc_spec *spec = codec->spec;
|
||||||
|
static const struct coef_fw coefs[] = {
|
||||||
|
WRITE_COEF(0x24, 0x0013), WRITE_COEF(0x25, 0x0000), WRITE_COEF(0x26, 0xC300),
|
||||||
|
WRITE_COEF(0x28, 0x0001), WRITE_COEF(0x29, 0xb023),
|
||||||
|
WRITE_COEF(0x24, 0x0013), WRITE_COEF(0x25, 0x0000), WRITE_COEF(0x26, 0xC301),
|
||||||
|
WRITE_COEF(0x28, 0x0001), WRITE_COEF(0x29, 0xb023),
|
||||||
|
};
|
||||||
|
|
||||||
if (action != HDA_FIXUP_ACT_PRE_PROBE)
|
if (action != HDA_FIXUP_ACT_PRE_PROBE)
|
||||||
return;
|
return;
|
||||||
|
alc_update_coef_idx(codec, 0x10, 1<<11, 1<<11);
|
||||||
|
alc_process_coef_fw(codec, coefs);
|
||||||
spec->power_hook = alc287_s4_power_gpio3_default;
|
spec->power_hook = alc287_s4_power_gpio3_default;
|
||||||
spec->gen.pcm_playback_hook = alc287_alc1318_playback_pcm_hook;
|
spec->gen.pcm_playback_hook = alc287_alc1318_playback_pcm_hook;
|
||||||
}
|
}
|
||||||
@ -10496,6 +10502,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
|||||||
SND_PCI_QUIRK(0x103c, 0x8b59, "HP Elite mt645 G7 Mobile Thin Client U89", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
|
SND_PCI_QUIRK(0x103c, 0x8b59, "HP Elite mt645 G7 Mobile Thin Client U89", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
|
||||||
SND_PCI_QUIRK(0x103c, 0x8b5d, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
|
SND_PCI_QUIRK(0x103c, 0x8b5d, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
|
||||||
SND_PCI_QUIRK(0x103c, 0x8b5e, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
|
SND_PCI_QUIRK(0x103c, 0x8b5e, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
|
||||||
|
SND_PCI_QUIRK(0x103c, 0x8b5f, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
|
||||||
SND_PCI_QUIRK(0x103c, 0x8b63, "HP Elite Dragonfly 13.5 inch G4", ALC245_FIXUP_CS35L41_SPI_4_HP_GPIO_LED),
|
SND_PCI_QUIRK(0x103c, 0x8b63, "HP Elite Dragonfly 13.5 inch G4", ALC245_FIXUP_CS35L41_SPI_4_HP_GPIO_LED),
|
||||||
SND_PCI_QUIRK(0x103c, 0x8b65, "HP ProBook 455 15.6 inch G10 Notebook PC", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
|
SND_PCI_QUIRK(0x103c, 0x8b65, "HP ProBook 455 15.6 inch G10 Notebook PC", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
|
||||||
SND_PCI_QUIRK(0x103c, 0x8b66, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
|
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[] = {
|
|||||||
{0x1a, 0x40000000}),
|
{0x1a, 0x40000000}),
|
||||||
SND_HDA_PIN_QUIRK(0x10ec0256, 0x1043, "ASUS", ALC2XX_FIXUP_HEADSET_MIC,
|
SND_HDA_PIN_QUIRK(0x10ec0256, 0x1043, "ASUS", ALC2XX_FIXUP_HEADSET_MIC,
|
||||||
{0x19, 0x40000000}),
|
{0x19, 0x40000000}),
|
||||||
|
SND_HDA_PIN_QUIRK(0x10ec0255, 0x1558, "Clevo", ALC2XX_FIXUP_HEADSET_MIC,
|
||||||
|
{0x19, 0x40000000}),
|
||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -54,10 +54,17 @@ static int max9768_set_gpio(struct snd_kcontrol *kcontrol,
|
|||||||
{
|
{
|
||||||
struct snd_soc_component *c = snd_soc_kcontrol_component(kcontrol);
|
struct snd_soc_component *c = snd_soc_kcontrol_component(kcontrol);
|
||||||
struct max9768 *max9768 = snd_soc_component_get_drvdata(c);
|
struct max9768 *max9768 = snd_soc_component_get_drvdata(c);
|
||||||
|
bool val = !ucontrol->value.integer.value[0];
|
||||||
|
int ret;
|
||||||
|
|
||||||
gpiod_set_value_cansleep(max9768->mute, !ucontrol->value.integer.value[0]);
|
if (val != gpiod_get_value_cansleep(max9768->mute))
|
||||||
|
ret = 1;
|
||||||
|
else
|
||||||
|
ret = 0;
|
||||||
|
|
||||||
return 0;
|
gpiod_set_value_cansleep(max9768->mute, val);
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const DECLARE_TLV_DB_RANGE(volume_tlv,
|
static const DECLARE_TLV_DB_RANGE(volume_tlv,
|
||||||
|
@ -270,16 +270,19 @@ static enum graph_type __graph_get_type(struct device_node *lnk)
|
|||||||
|
|
||||||
if (of_node_name_eq(np, GRAPH_NODENAME_MULTI)) {
|
if (of_node_name_eq(np, GRAPH_NODENAME_MULTI)) {
|
||||||
ret = GRAPH_MULTI;
|
ret = GRAPH_MULTI;
|
||||||
|
fw_devlink_purge_absent_suppliers(&np->fwnode);
|
||||||
goto out_put;
|
goto out_put;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (of_node_name_eq(np, GRAPH_NODENAME_DPCM)) {
|
if (of_node_name_eq(np, GRAPH_NODENAME_DPCM)) {
|
||||||
ret = GRAPH_DPCM;
|
ret = GRAPH_DPCM;
|
||||||
|
fw_devlink_purge_absent_suppliers(&np->fwnode);
|
||||||
goto out_put;
|
goto out_put;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (of_node_name_eq(np, GRAPH_NODENAME_C2C)) {
|
if (of_node_name_eq(np, GRAPH_NODENAME_C2C)) {
|
||||||
ret = GRAPH_C2C;
|
ret = GRAPH_C2C;
|
||||||
|
fw_devlink_purge_absent_suppliers(&np->fwnode);
|
||||||
goto out_put;
|
goto out_put;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -590,6 +590,14 @@ static const struct dmi_system_id sof_sdw_quirk_table[] = {
|
|||||||
},
|
},
|
||||||
.driver_data = (void *)(SOC_SDW_CODEC_SPKR),
|
.driver_data = (void *)(SOC_SDW_CODEC_SPKR),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.callback = sof_sdw_quirk_cb,
|
||||||
|
.matches = {
|
||||||
|
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc"),
|
||||||
|
DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "0CF1")
|
||||||
|
},
|
||||||
|
.driver_data = (void *)(SOC_SDW_CODEC_SPKR),
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.callback = sof_sdw_quirk_cb,
|
.callback = sof_sdw_quirk_cb,
|
||||||
.matches = {
|
.matches = {
|
||||||
|
@ -324,7 +324,6 @@ YAMAHA_DEVICE(0x105a, NULL),
|
|||||||
YAMAHA_DEVICE(0x105b, NULL),
|
YAMAHA_DEVICE(0x105b, NULL),
|
||||||
YAMAHA_DEVICE(0x105c, NULL),
|
YAMAHA_DEVICE(0x105c, NULL),
|
||||||
YAMAHA_DEVICE(0x105d, NULL),
|
YAMAHA_DEVICE(0x105d, NULL),
|
||||||
YAMAHA_DEVICE(0x1718, "P-125"),
|
|
||||||
{
|
{
|
||||||
USB_DEVICE(0x0499, 0x1503),
|
USB_DEVICE(0x0499, 0x1503),
|
||||||
QUIRK_DRIVER_INFO {
|
QUIRK_DRIVER_INFO {
|
||||||
@ -391,6 +390,19 @@ YAMAHA_DEVICE(0x1718, "P-125"),
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
USB_DEVICE(0x0499, 0x1718),
|
||||||
|
QUIRK_DRIVER_INFO {
|
||||||
|
/* .vendor_name = "Yamaha", */
|
||||||
|
/* .product_name = "P-125", */
|
||||||
|
QUIRK_DATA_COMPOSITE {
|
||||||
|
{ QUIRK_DATA_STANDARD_AUDIO(1) },
|
||||||
|
{ QUIRK_DATA_STANDARD_AUDIO(2) },
|
||||||
|
{ QUIRK_DATA_MIDI_YAMAHA(3) },
|
||||||
|
QUIRK_COMPOSITE_END
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
YAMAHA_DEVICE(0x2000, "DGP-7"),
|
YAMAHA_DEVICE(0x2000, "DGP-7"),
|
||||||
YAMAHA_DEVICE(0x2001, "DGP-5"),
|
YAMAHA_DEVICE(0x2001, "DGP-5"),
|
||||||
YAMAHA_DEVICE(0x2002, NULL),
|
YAMAHA_DEVICE(0x2002, NULL),
|
||||||
|
Loading…
Reference in New Issue
Block a user