Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge/sound upstream 20231023 #4650

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
aadb033
ALSA: usb-audio: scarlett_gen2: Fix another -Wformat-truncation warning
ujfalusi Sep 19, 2023
deff848
ALSA: hda: cs35l56: Use the new RUNTIME_PM_OPS() macro
rfvirgil Sep 19, 2023
41b0747
ALSA: hda/realtek - ALC287 Realtek I2S speaker platform support
KailangYang Sep 19, 2023
0eb0e27
Merge tag 'asoc-fix-v6.6-rc2' of https://git.kernel.org/pub/scm/linux…
tiwai Sep 20, 2023
d93eeca
ALSA: hda/realtek - ALC287 merge RTK codec with CS CS35L41 AMP
KailangYang Sep 21, 2023
9c1a3f4
Merge tag 'asoc-fix-v6.6-rc4' of https://git.kernel.org/pub/scm/linux…
tiwai Sep 30, 2023
5d542b8
ALSA: hda: cs35l41: Cleanup and fix double free in firmware request
Oct 3, 2023
6a83d6f
ALSA: usb-audio: Fix microphone sound on Opencomm2 Headset
Oct 6, 2023
ccbd88b
ALSA: hda/realtek: Change model for Intel RVP board
KailangYang Oct 6, 2023
3a4c155
Merge tag 'asoc-fix-v6.6-rc5' of https://git.kernel.org/pub/scm/linux…
tiwai Oct 6, 2023
4a63e68
ALSA: usb-audio: Fix microphone sound on Nexigo webcam.
xristos-sk Oct 6, 2023
a5172ef
ASoC: Intel: sof_sdw: update HP Omen match
plbossart Oct 12, 2023
43e354d
ASoC: Intel: soc-acpi-intel-rpl-match: add rt711-l0-rt1316-l12 support
bardliao Oct 12, 2023
e70ca58
ASoC: Intel: soc-acpi-intel-mtl-match: add rt713 rt1316 config
bardliao Oct 12, 2023
b6d6e5a
ASoC: Intel: sof_sdw_rt_sdca_jack_common: add rt713 support
bardliao Oct 12, 2023
e5bc0a5
ASoC: Intel: MTL: Add entry for HDMI-In capture support to non-I2S co…
CBala21 Oct 12, 2023
5124d08
ASoC: Intel: sof_sdw_rt712_sdca: construct cards->components by name_…
bardliao Oct 12, 2023
8e7377d
ASoC: Intel: sof_cs42l42: remove hdac-hdmi support
brentlu Oct 12, 2023
b6019b5
ASoC: Intel: sof_da7219: remove hdac-hdmi support
brentlu Oct 12, 2023
3f95969
ASoC: Intel: sof_nau8825: remove hdac-hdmi support
brentlu Oct 12, 2023
3de206a
ASoC: Intel: sof_rt5682: remove hdac-hdmi support
brentlu Oct 12, 2023
64b9f31
ASoC: Intel: sof_ssp_amp: remove hdac-hdmi support
brentlu Oct 12, 2023
3ceb66e
ASoC: Intel: sof_hdmi: add common header for HDMI
brentlu Oct 12, 2023
9b61ac5
ASoC: Intel: sof_cs42l42: use sof_hdmi_private to init HDMI
brentlu Oct 12, 2023
fa76fca
ASoC: Intel: sof_da7219: use sof_hdmi_private to init HDMI
brentlu Oct 12, 2023
44267e9
ASoC: Intel: sof_nau8825: use sof_hdmi_private to init HDMI
brentlu Oct 12, 2023
d8fc817
ASoC: Intel: sof_rt5682: use sof_hdmi_private to init HDMI
brentlu Oct 12, 2023
5cfe9ed
ASoC: Intel: sof_sdw: use sof_hdmi_private to init HDMI
brentlu Oct 12, 2023
edb3fea
ASoC: Intel: sof_ssp_amp: use sof_hdmi_private to init HDMI
brentlu Oct 12, 2023
7368ae9
ASoC: Intel: board_helpers: new module for common functions
brentlu Oct 12, 2023
c931452
ASoC: Intel: sof_cs42l42: use common module for HDMI link
brentlu Oct 12, 2023
498a4da
ASoC: Intel: sof_nau8825: use common module for HDMI link
brentlu Oct 12, 2023
89cadbd
ASoC: Intel: sof_rt5682: use common module for HDMI link
brentlu Oct 12, 2023
3e1756f
ASoC: Intel: sof_ssp_amp: use common module for HDMI link
brentlu Oct 12, 2023
3851831
ASoC: SOF: Intel: pci-mtl: use ARL specific firmware definitions
arunt1 Oct 12, 2023
576a0b7
ASoC: SOF: Intel: hda-dsp: Make sure that no irq handler is pending b…
ujfalusi Oct 12, 2023
a2d952b
ASoC: SOF: ipc4: Dump the notification payload
ujfalusi Oct 12, 2023
e4d09de
ASoC: SOF: make .remove callback return void
plbossart Oct 12, 2023
cf77250
ASoC: rt715-sdca: reorder the argument in error log
bardliao Oct 12, 2023
078d3a4
ASoC: rt715: reorder the argument in error log
bardliao Oct 12, 2023
fbfe616
ASoC: fsl-asoc-card: Add comment for mclk in the codec_priv
jason77-wang Oct 7, 2023
f88dfbf
ASoC: rt5650: fix the wrong result of key button
shumingfan Oct 13, 2023
4e9a429
ASoC: codecs: tas2780: Fix log of failed reset via I2C.
Oct 13, 2023
9c97790
ASoC: dwc: Fix non-DT instantiation
broonie Oct 13, 2023
ff435da
soundwire: bus: improve error handling for clock stop prepare/deprepare
plbossart Oct 13, 2023
4ea2b6d
soundwire: dmi-quirks: update HP Omen match
plbossart Oct 13, 2023
4f88c72
ASoC: sigmadsp: Add __counted_by for struct sigmadsp_data and use str…
GustavoARSilva Oct 9, 2023
2e1a459
ASoC: Intel: boards: updates for 6.7
broonie Oct 16, 2023
93a83b7
ASoC: codecs: rt715*: update misleading error log
broonie Oct 16, 2023
85045a9
ASoC: SOF: misc updates for 6.7
broonie Oct 16, 2023
56e8599
ALSA: hda/relatek: Enable Mute LED on HP Laptop 15s-fq5xxx
TheSmolBoi Oct 16, 2023
5dedc9f
ALSA: hda/realtek: Add quirk for ASUS ROG GU603ZV
Flex1911 Oct 14, 2023
c8c0a03
ALSA: hda/realtek - Fixed ASUS platform headset Mic issue
KailangYang Oct 17, 2023
e8ecffd
ASoC: da7219: Correct the process of setting up Gnd switch in AAD
Oct 17, 2023
0863572
ASoC: dt-bindings: tas5805m: Disallow undefined properties
robherring Oct 16, 2023
70227e1
ASoC: amd: ps: enable wake capability for acp pci driver
vijendarmukunda Oct 17, 2023
9a4bf1f
ASoC: tas2781: make const read-only array magic_number static
ColinIanKing Oct 17, 2023
64c3259
ASoC: da7213: Add new kcontrol for tonegen
Oct 18, 2023
8e13caa
Merge tag 'asoc-fix-v6.6-rc6' of https://git.kernel.org/pub/scm/linux…
tiwai Oct 18, 2023
8a79ff9
ASoC: dt-bindings: mt8186-mt6366-rt1019-rt5682s: add RT5650 support
Oct 19, 2023
d88c433
ASoC: mediatek: mt8186_mt6366_rt1019_rt5682s: add rt5650 support
Oct 19, 2023
87543ce
Merge branch 'for-linus' into for-next
tiwai Oct 19, 2023
f549a82
ASoC: SOF: core: Ensure sof_ops_free() is still called when probe nev…
mlankhorst Oct 9, 2023
17baaa1
ASoC: SOF: core: Add probe_early and remove_late callbacks
plbossart Oct 9, 2023
f1977d5
ASoC: SOF: Intel: hda: start splitting the probe
plbossart Oct 9, 2023
03448e5
ASoC: SOF: Intel: Fix error handling in hda_init()
mlankhorst Oct 9, 2023
ad6413b
ALSA: hda: Intel: Fix error handling in azx_probe()
mlankhorst Oct 9, 2023
2e8c903
ALSA: hda: i915: Allow override of gpu binding.
mlankhorst Oct 9, 2023
32f4e92
ALSA: hda: i915: Add an allow_modprobe argument to snd_hdac_i915_init
mlankhorst Oct 9, 2023
e8e3f86
ALSA: hda: i915: Allow xe as match for i915_component_master_match
mlankhorst Oct 9, 2023
2dddc51
ASoC: Intel: avs: Move snd_hdac_i915_init to before probe_work.
mlankhorst Oct 9, 2023
65cbbfa
ALSA: hda: Intel: Move snd_hdac_i915_init to before probe_work.
mlankhorst Oct 9, 2023
e46f137
ASoC: Intel: Skylake: Move snd_hdac_i915_init to before probe_work.
mlankhorst Oct 9, 2023
3d1a055
ASoC: SOF: Intel: Move binding to display driver outside of deferred …
mlankhorst Oct 9, 2023
e6d0c13
ALSA: hda: i915: Remove extra argument from snd_hdac_i915_init
mlankhorst Oct 9, 2023
79a2ab1
ASoC: mediatek: mt8186_mt6366_rt1019_rt5682s: add
broonie Oct 19, 2023
897d8e8
ASoC: tlv320aic31xx: switch to gpiod_set_value_cansleep
Oct 19, 2023
28809aa
ASoC: intel: sof_sdw: Stop processing CODECs when enough are found
charleskeepax Oct 19, 2023
a92ccd5
ASoC: intel: sof_sdw_cs42l43: Some trivial formatting clean ups
charleskeepax Oct 19, 2023
d74bad3
ASoC: intel: sof_sdw_cs42l43: Create separate jacks for hp and mic
charleskeepax Oct 19, 2023
1062681
ASoC: intel: sof_sdw: Move the builtin microphones to dataport 1
charleskeepax Oct 19, 2023
5c072ca
ASoC: Intel: sof_nau8825: add RPL support for MAX98360A amp
terry182 Oct 19, 2023
7fce91b
ASoC: Intel: board_helpers: support dmic link initialization
brentlu Oct 19, 2023
a1360c4
ASoC: Intel: sof_cs42l42: use common module for DMIC links
brentlu Oct 19, 2023
f56daaf
ASoC: Intel: sof_nau8825: use common module for DMIC links
brentlu Oct 19, 2023
c51fc25
ASoC: Intel: sof_rt5682: use common module for DMIC links
brentlu Oct 19, 2023
f6b415f
ASoC: Intel: sof_ssp_amp: use common module for DMIC links
brentlu Oct 19, 2023
45f1b12
ASoC: Intel: more machine driver updates for 6.7
broonie Oct 19, 2023
386fc7c
Merge remote-tracking branch 'asoc/for-6.7' into asoc-next
broonie Oct 19, 2023
39cd06e
Merge tag 'asoc-v6.7' of https://git.kernel.org/pub/scm/linux/kernel/…
tiwai Oct 21, 2023
41a3056
MAINTAINERS: ALSA: change mailing list to linux-sound on vger
perexg Oct 20, 2023
58c488b
Merge remote-tracking branch 'regmap/for-next' into sound/upstream-20…
plbossart Oct 23, 2023
5524595
Merge remote-tracking branch 'takashi/for-next' into sound/upstream-2…
plbossart Oct 23, 2023
e6bc5f2
Merge remote-tracking branch 'soundwire/next' into sound/upstream-202…
plbossart Oct 23, 2023
8d97ef2
Merge branch 'sound/upstream-20231023' into merge/sound-upstream-2023…
plbossart Oct 23, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ properties:
enum:
- mediatek,mt8186-mt6366-rt1019-rt5682s-sound
- mediatek,mt8186-mt6366-rt5682s-max98360-sound
- mediatek,mt8186-mt6366-rt5650-sound

mediatek,platform:
$ref: /schemas/types.yaml#/definitions/phandle
Expand Down
5 changes: 3 additions & 2 deletions Documentation/devicetree/bindings/sound/tas5805m.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ properties:
generated from TI's PPC3 tool.
$ref: /schemas/types.yaml#/definitions/string

additionalProperties: false

examples:
- |
i2c {
Expand All @@ -52,5 +54,4 @@ examples:
ti,dsp-config-name = "mono_pbtl_48khz";
};
};
additionalProperties: true
...
8 changes: 4 additions & 4 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -20067,7 +20067,7 @@ F: include/linux/sony-laptop.h
SOUND
M: Jaroslav Kysela <[email protected]>
M: Takashi Iwai <[email protected]>
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
L: [email protected].org
S: Maintained
W: http://www.alsa-project.org/
Q: http://patchwork.kernel.org/project/alsa-devel/list/
Expand All @@ -20080,7 +20080,7 @@ F: tools/testing/selftests/alsa

SOUND - ALSA SELFTESTS
M: Mark Brown <[email protected]>
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
L: [email protected].org
L: [email protected]
S: Supported
F: tools/testing/selftests/alsa
Expand All @@ -20106,7 +20106,7 @@ F: sound/soc/soc-generic-dmaengine-pcm.c
SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEMENT (ASoC)
M: Liam Girdwood <[email protected]>
M: Mark Brown <[email protected]>
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
L: [email protected].org
S: Supported
W: http://alsa-project.org/main/index.php/ASoC
T: git git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
Expand Down Expand Up @@ -22948,7 +22948,7 @@ F: fs/vboxsf/*

VIRTUAL PCM TEST DRIVER
M: Ivan Orlov <[email protected]>
L: alsa-devel@alsa-project.org
L: [email protected].org
S: Maintained
F: Documentation/sound/cards/pcmtest.rst
F: sound/drivers/pcmtest.c
Expand Down
117 changes: 80 additions & 37 deletions sound/pci/hda/cs35l41_hda.c
Original file line number Diff line number Diff line change
Expand Up @@ -188,10 +188,14 @@ static int cs35l41_request_firmware_files_spkid(struct cs35l41_hda *cs35l41,
cs35l41->speaker_id, "wmfw");
if (!ret) {
/* try cirrus/part-dspN-fwtype-sub<-spkidN><-ampname>.bin */
return cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename,
CS35L41_FIRMWARE_ROOT,
cs35l41->acpi_subsystem_id, cs35l41->amp_name,
cs35l41->speaker_id, "bin");
ret = cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename,
CS35L41_FIRMWARE_ROOT,
cs35l41->acpi_subsystem_id, cs35l41->amp_name,
cs35l41->speaker_id, "bin");
if (ret)
goto coeff_err;

return 0;
}

/* try cirrus/part-dspN-fwtype-sub<-ampname>.wmfw */
Expand All @@ -200,10 +204,14 @@ static int cs35l41_request_firmware_files_spkid(struct cs35l41_hda *cs35l41,
cs35l41->amp_name, -1, "wmfw");
if (!ret) {
/* try cirrus/part-dspN-fwtype-sub<-spkidN><-ampname>.bin */
return cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename,
CS35L41_FIRMWARE_ROOT,
cs35l41->acpi_subsystem_id, cs35l41->amp_name,
cs35l41->speaker_id, "bin");
ret = cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename,
CS35L41_FIRMWARE_ROOT,
cs35l41->acpi_subsystem_id, cs35l41->amp_name,
cs35l41->speaker_id, "bin");
if (ret)
goto coeff_err;

return 0;
}

/* try cirrus/part-dspN-fwtype-sub<-spkidN>.wmfw */
Expand All @@ -218,10 +226,14 @@ static int cs35l41_request_firmware_files_spkid(struct cs35l41_hda *cs35l41,
cs35l41->amp_name, cs35l41->speaker_id, "bin");
if (ret)
/* try cirrus/part-dspN-fwtype-sub<-spkidN>.bin */
return cs35l41_request_firmware_file(cs35l41, coeff_firmware,
coeff_filename, CS35L41_FIRMWARE_ROOT,
cs35l41->acpi_subsystem_id, NULL,
cs35l41->speaker_id, "bin");
ret = cs35l41_request_firmware_file(cs35l41, coeff_firmware,
coeff_filename, CS35L41_FIRMWARE_ROOT,
cs35l41->acpi_subsystem_id, NULL,
cs35l41->speaker_id, "bin");
if (ret)
goto coeff_err;

return 0;
}

/* try cirrus/part-dspN-fwtype-sub.wmfw */
Expand All @@ -236,12 +248,50 @@ static int cs35l41_request_firmware_files_spkid(struct cs35l41_hda *cs35l41,
cs35l41->speaker_id, "bin");
if (ret)
/* try cirrus/part-dspN-fwtype-sub<-spkidN>.bin */
return cs35l41_request_firmware_file(cs35l41, coeff_firmware,
coeff_filename, CS35L41_FIRMWARE_ROOT,
cs35l41->acpi_subsystem_id, NULL,
cs35l41->speaker_id, "bin");
ret = cs35l41_request_firmware_file(cs35l41, coeff_firmware,
coeff_filename, CS35L41_FIRMWARE_ROOT,
cs35l41->acpi_subsystem_id, NULL,
cs35l41->speaker_id, "bin");
if (ret)
goto coeff_err;
}

return ret;
coeff_err:
release_firmware(*wmfw_firmware);
kfree(*wmfw_filename);
return ret;
}

static int cs35l41_fallback_firmware_file(struct cs35l41_hda *cs35l41,
const struct firmware **wmfw_firmware,
char **wmfw_filename,
const struct firmware **coeff_firmware,
char **coeff_filename)
{
int ret;

/* Handle fallback */
dev_warn(cs35l41->dev, "Falling back to default firmware.\n");

/* fallback try cirrus/part-dspN-fwtype.wmfw */
ret = cs35l41_request_firmware_file(cs35l41, wmfw_firmware, wmfw_filename,
CS35L41_FIRMWARE_ROOT, NULL, NULL, -1, "wmfw");
if (ret)
goto err;

/* fallback try cirrus/part-dspN-fwtype.bin */
ret = cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename,
CS35L41_FIRMWARE_ROOT, NULL, NULL, -1, "bin");
if (ret) {
release_firmware(*wmfw_firmware);
kfree(*wmfw_filename);
goto err;
}
return 0;

err:
dev_warn(cs35l41->dev, "Unable to find firmware and tuning\n");
return ret;
}

Expand All @@ -257,7 +307,6 @@ static int cs35l41_request_firmware_files(struct cs35l41_hda *cs35l41,
ret = cs35l41_request_firmware_files_spkid(cs35l41, wmfw_firmware, wmfw_filename,
coeff_firmware, coeff_filename);
goto out;

}

/* try cirrus/part-dspN-fwtype-sub<-ampname>.wmfw */
Expand All @@ -270,6 +319,9 @@ static int cs35l41_request_firmware_files(struct cs35l41_hda *cs35l41,
CS35L41_FIRMWARE_ROOT,
cs35l41->acpi_subsystem_id, cs35l41->amp_name,
-1, "bin");
if (ret)
goto coeff_err;

goto out;
}

Expand All @@ -289,32 +341,23 @@ static int cs35l41_request_firmware_files(struct cs35l41_hda *cs35l41,
CS35L41_FIRMWARE_ROOT,
cs35l41->acpi_subsystem_id, NULL, -1,
"bin");
if (ret)
goto coeff_err;
}

out:
if (!ret)
return 0;
if (ret)
/* if all attempts at finding firmware fail, try fallback */
goto fallback;

/* Handle fallback */
dev_warn(cs35l41->dev, "Falling back to default firmware.\n");
return 0;

coeff_err:
release_firmware(*wmfw_firmware);
kfree(*wmfw_filename);

/* fallback try cirrus/part-dspN-fwtype.wmfw */
ret = cs35l41_request_firmware_file(cs35l41, wmfw_firmware, wmfw_filename,
CS35L41_FIRMWARE_ROOT, NULL, NULL, -1, "wmfw");
if (!ret)
/* fallback try cirrus/part-dspN-fwtype.bin */
ret = cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename,
CS35L41_FIRMWARE_ROOT, NULL, NULL, -1, "bin");

if (ret) {
release_firmware(*wmfw_firmware);
kfree(*wmfw_filename);
dev_warn(cs35l41->dev, "Unable to find firmware and tuning\n");
}
return ret;
fallback:
return cs35l41_fallback_firmware_file(cs35l41, wmfw_firmware, wmfw_filename,
coeff_firmware, coeff_filename);
}

#if IS_ENABLED(CONFIG_EFI)
Expand Down Expand Up @@ -567,7 +610,7 @@ static void cs35l41_hda_pause_start(struct device *dev)

dev_dbg(dev, "Pause (Start)\n");

regmap_multi_reg_write(reg, cs35l41_hda_mute, ARRAY_SIZE(cs35l41_hda_mute));
cs35l41_mute(dev, true);
cs35l41_global_enable(dev, reg, cs35l41->hw_cfg.bst_type, 0,
cs35l41->firmware_running);
}
Expand Down
6 changes: 3 additions & 3 deletions sound/pci/hda/cs35l56_hda.c
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ static void cs35l56_hda_playback_hook(struct device *dev, int action)
}
}

static int __maybe_unused cs35l56_hda_runtime_suspend(struct device *dev)
static int cs35l56_hda_runtime_suspend(struct device *dev)
{
struct cs35l56_hda *cs35l56 = dev_get_drvdata(dev);

Expand All @@ -116,7 +116,7 @@ static int __maybe_unused cs35l56_hda_runtime_suspend(struct device *dev)
return cs35l56_runtime_suspend_common(&cs35l56->base);
}

static int __maybe_unused cs35l56_hda_runtime_resume(struct device *dev)
static int cs35l56_hda_runtime_resume(struct device *dev)
{
struct cs35l56_hda *cs35l56 = dev_get_drvdata(dev);
int ret;
Expand Down Expand Up @@ -1026,7 +1026,7 @@ void cs35l56_hda_remove(struct device *dev)
EXPORT_SYMBOL_NS_GPL(cs35l56_hda_remove, SND_HDA_SCODEC_CS35L56);

const struct dev_pm_ops cs35l56_hda_pm_ops = {
SET_RUNTIME_PM_OPS(cs35l56_hda_runtime_suspend, cs35l56_hda_runtime_resume, NULL)
RUNTIME_PM_OPS(cs35l56_hda_runtime_suspend, cs35l56_hda_runtime_resume, NULL)
SYSTEM_SLEEP_PM_OPS(cs35l56_hda_system_suspend, cs35l56_hda_system_resume)
LATE_SYSTEM_SLEEP_PM_OPS(cs35l56_hda_system_suspend_late,
cs35l56_hda_system_resume_early)
Expand Down
58 changes: 48 additions & 10 deletions sound/pci/hda/patch_realtek.c
Original file line number Diff line number Diff line change
Expand Up @@ -7159,6 +7159,24 @@ static void alc287_fixup_bind_dacs(struct hda_codec *codec,
0x0); /* Make sure 0x14 was disable */
}
}
/* Fix none verb table of Headset Mic pin */
static void alc_fixup_headset_mic(struct hda_codec *codec,
const struct hda_fixup *fix, int action)
{
struct alc_spec *spec = codec->spec;
static const struct hda_pintbl pincfgs[] = {
{ 0x19, 0x03a1103c },
{ }
};

switch (action) {
case HDA_FIXUP_ACT_PRE_PROBE:
snd_hda_apply_pincfgs(codec, pincfgs);
alc_update_coef_idx(codec, 0x45, 0xf<<12 | 1<<10, 5<<12);
spec->parse_flags |= HDA_PINCFG_HEADSET_MIC;
break;
}
}


enum {
Expand Down Expand Up @@ -7424,6 +7442,8 @@ enum {
ALC245_FIXUP_HP_MUTE_LED_COEFBIT,
ALC245_FIXUP_HP_X360_MUTE_LEDS,
ALC287_FIXUP_THINKPAD_I2S_SPK,
ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD,
ALC2XX_FIXUP_HEADSET_MIC,
};

/* A special fixup for Lenovo C940 and Yoga Duet 7;
Expand Down Expand Up @@ -9522,6 +9542,16 @@ static const struct hda_fixup alc269_fixups[] = {
.type = HDA_FIXUP_FUNC,
.v.func = alc287_fixup_bind_dacs,
},
[ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD] = {
.type = HDA_FIXUP_FUNC,
.v.func = alc287_fixup_bind_dacs,
.chained = true,
.chain_id = ALC287_FIXUP_CS35L41_I2C_2_THINKPAD_ACPI,
},
[ALC2XX_FIXUP_HEADSET_MIC] = {
.type = HDA_FIXUP_FUNC,
.v.func = alc_fixup_headset_mic,
},
};

static const struct snd_pci_quirk alc269_fixup_tbl[] = {
Expand Down Expand Up @@ -9796,6 +9826,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
SND_PCI_QUIRK(0x103c, 0x89c6, "Zbook Fury 17 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED),
SND_PCI_QUIRK(0x103c, 0x89ca, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
SND_PCI_QUIRK(0x103c, 0x89d3, "HP EliteBook 645 G9 (MB 89D2)", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF),
SND_PCI_QUIRK(0x103c, 0x8a20, "HP Laptop 15s-fq5xxx", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2),
SND_PCI_QUIRK(0x103c, 0x8a25, "HP Victus 16-d1xxx (MB 8A25)", ALC245_FIXUP_HP_MUTE_LED_COEFBIT),
SND_PCI_QUIRK(0x103c, 0x8a78, "HP Dev One", ALC285_FIXUP_HP_LIMIT_INT_MIC_BOOST),
SND_PCI_QUIRK(0x103c, 0x8aa0, "HP ProBook 440 G9 (MB 8A9E)", ALC236_FIXUP_HP_GPIO_LED),
Expand Down Expand Up @@ -9865,6 +9896,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_ASUS_ZENBOOK_UX31A),
SND_PCI_QUIRK(0x1043, 0x1573, "ASUS GZ301V", ALC285_FIXUP_ASUS_HEADSET_MIC),
SND_PCI_QUIRK(0x1043, 0x1662, "ASUS GV301QH", ALC294_FIXUP_ASUS_DUAL_SPK),
SND_PCI_QUIRK(0x1043, 0x1663, "ASUS GU603ZV", ALC285_FIXUP_ASUS_HEADSET_MIC),
SND_PCI_QUIRK(0x1043, 0x1683, "ASUS UM3402YAR", ALC287_FIXUP_CS35L41_I2C_2),
SND_PCI_QUIRK(0x1043, 0x16b2, "ASUS GU603", ALC289_FIXUP_ASUS_GA401),
SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC),
Expand Down Expand Up @@ -9935,7 +9967,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
SND_PCI_QUIRK(0x10ec, 0x124c, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
SND_PCI_QUIRK(0x10ec, 0x1252, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
SND_PCI_QUIRK(0x10ec, 0x1254, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
SND_PCI_QUIRK(0x10ec, 0x12cc, "Intel Reference board", ALC225_FIXUP_HEADSET_JACK),
SND_PCI_QUIRK(0x10ec, 0x12cc, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
SND_PCI_QUIRK(0x10f7, 0x8338, "Panasonic CF-SZ6", ALC269_FIXUP_HEADSET_MODE),
SND_PCI_QUIRK(0x144d, 0xc109, "Samsung Ativ book 9 (NP900X3G)", ALC269_FIXUP_INV_DMIC),
SND_PCI_QUIRK(0x144d, 0xc169, "Samsung Notebook 9 Pen (NP930SBE-K01US)", ALC298_FIXUP_SAMSUNG_AMP),
Expand Down Expand Up @@ -10069,14 +10101,14 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
SND_PCI_QUIRK(0x17aa, 0x22be, "Thinkpad X1 Carbon 8th", ALC285_FIXUP_THINKPAD_HEADSET_JACK),
SND_PCI_QUIRK(0x17aa, 0x22c1, "Thinkpad P1 Gen 3", ALC285_FIXUP_THINKPAD_NO_BASS_SPK_HEADSET_JACK),
SND_PCI_QUIRK(0x17aa, 0x22c2, "Thinkpad X1 Extreme Gen 3", ALC285_FIXUP_THINKPAD_NO_BASS_SPK_HEADSET_JACK),
SND_PCI_QUIRK(0x17aa, 0x22f1, "Thinkpad", ALC287_FIXUP_CS35L41_I2C_2_THINKPAD_ACPI),
SND_PCI_QUIRK(0x17aa, 0x22f2, "Thinkpad", ALC287_FIXUP_CS35L41_I2C_2_THINKPAD_ACPI),
SND_PCI_QUIRK(0x17aa, 0x22f3, "Thinkpad", ALC287_FIXUP_CS35L41_I2C_2_THINKPAD_ACPI),
SND_PCI_QUIRK(0x17aa, 0x2316, "Thinkpad P1 Gen 6", ALC287_FIXUP_CS35L41_I2C_2_THINKPAD_ACPI),
SND_PCI_QUIRK(0x17aa, 0x2317, "Thinkpad P1 Gen 6", ALC287_FIXUP_CS35L41_I2C_2_THINKPAD_ACPI),
SND_PCI_QUIRK(0x17aa, 0x2318, "Thinkpad Z13 Gen2", ALC287_FIXUP_CS35L41_I2C_2_THINKPAD_ACPI),
SND_PCI_QUIRK(0x17aa, 0x2319, "Thinkpad Z16 Gen2", ALC287_FIXUP_CS35L41_I2C_2_THINKPAD_ACPI),
SND_PCI_QUIRK(0x17aa, 0x231a, "Thinkpad Z16 Gen2", ALC287_FIXUP_CS35L41_I2C_2_THINKPAD_ACPI),
SND_PCI_QUIRK(0x17aa, 0x22f1, "Thinkpad", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
SND_PCI_QUIRK(0x17aa, 0x22f2, "Thinkpad", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
SND_PCI_QUIRK(0x17aa, 0x22f3, "Thinkpad", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
SND_PCI_QUIRK(0x17aa, 0x2316, "Thinkpad P1 Gen 6", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
SND_PCI_QUIRK(0x17aa, 0x2317, "Thinkpad P1 Gen 6", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
SND_PCI_QUIRK(0x17aa, 0x2318, "Thinkpad Z13 Gen2", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
SND_PCI_QUIRK(0x17aa, 0x2319, "Thinkpad Z16 Gen2", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
SND_PCI_QUIRK(0x17aa, 0x231a, "Thinkpad Z16 Gen2", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
SND_PCI_QUIRK(0x17aa, 0x30bb, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY),
SND_PCI_QUIRK(0x17aa, 0x30e2, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY),
SND_PCI_QUIRK(0x17aa, 0x310c, "ThinkCentre Station", ALC294_FIXUP_LENOVO_MIC_LOCATION),
Expand Down Expand Up @@ -10172,7 +10204,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
SND_PCI_QUIRK(0x8086, 0x2074, "Intel NUC 8", ALC233_FIXUP_INTEL_NUC8_DMIC),
SND_PCI_QUIRK(0x8086, 0x2080, "Intel NUC 8 Rugged", ALC256_FIXUP_INTEL_NUC8_RUGGED),
SND_PCI_QUIRK(0x8086, 0x2081, "Intel NUC 10", ALC256_FIXUP_INTEL_NUC10),
SND_PCI_QUIRK(0x8086, 0x3038, "Intel NUC 13", ALC225_FIXUP_HEADSET_JACK),
SND_PCI_QUIRK(0x8086, 0x3038, "Intel NUC 13", ALC295_FIXUP_CHROME_BOOK),
SND_PCI_QUIRK(0xf111, 0x0001, "Framework Laptop", ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE),

#if 0
Expand Down Expand Up @@ -10658,6 +10690,10 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
{0x17, 0x90170110},
{0x19, 0x03a11030},
{0x21, 0x03211020}),
SND_HDA_PIN_QUIRK(0x10ec0287, 0x17aa, "Lenovo", ALC287_FIXUP_THINKPAD_I2S_SPK,
{0x17, 0x90170110}, /* 0x231f with RTK I2S AMP */
{0x19, 0x04a11040},
{0x21, 0x04211020}),
SND_HDA_PIN_QUIRK(0x10ec0286, 0x1025, "Acer", ALC286_FIXUP_ACER_AIO_MIC_NO_PRESENCE,
{0x12, 0x90a60130},
{0x17, 0x90170110},
Expand Down Expand Up @@ -10820,6 +10856,8 @@ static const struct snd_hda_pin_quirk alc269_fallback_pin_fixup_tbl[] = {
SND_HDA_PIN_QUIRK(0x10ec0274, 0x1028, "Dell", ALC274_FIXUP_DELL_AIO_LINEOUT_VERB,
{0x19, 0x40000000},
{0x1a, 0x40000000}),
SND_HDA_PIN_QUIRK(0x10ec0256, 0x1043, "ASUS", ALC2XX_FIXUP_HEADSET_MIC,
{0x19, 0x40000000}),
{}
};

Expand Down
Loading