Merge series "ASoC: rt286/rt298: Fixes for DMIC2 config and combo jack" from David Ward <david.ward@gatech.edu>:
The last two patches in this series fix a longstanding issue that prevented the ALC3263 codec from using a headset mic. This codec can be found on Dell systems including the Latitude 13 7350, Venue 11 Pro 7140, and XPS 13 9343. In fact, there is an ACPI quirk for the XPS 13 9343, which forces it to use legacy HD Audio just to avoid this issue: https://lore.kernel.org/alsa-devel/CAPeXnHv07HkvcHrYFmZMr8OTp7U7F=k_k=LPYnUtp89iPn2d2Q@mail.gmail.com/ This may allow that ACPI quirk to be removed. Either way, the other systems mentioned above do not support this quirk and already use the ASoC driver, so this fix is necessary for headset mic support on those systems. Note: there is likely other handling for this codec that only exists in the HDA driver, but which also belongs in the ASoC driver. Commit394c97f824
("ALSA: hda/realtek - Change EAPD to verb control") describes an issue that does not seem to be resolved in the ASoC driver, to give an example. Other patches in this series are not specific to the ALC3263. These patches set the correct combo jack configuration when headphones are inserted, and fix a misaligned value set in the DMIC2 Configuration Default register. BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=114171 BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=150601 BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=205961 Signed-off-by: David Ward <david.ward@gatech.edu> David Ward (5): ASoC: rt286: Fix upper byte in DMIC2 configuration ASoC: rt286: Configure combo jack for headphones ASoC: rt298: Configure combo jack for headphones ASoC: rt286: Make RT286_SET_GPIO_* readable and writable ASoC: rt286: Generalize support for ALC3263 codec sound/soc/codecs/rt286.c | 34 +++++++++++++++++++++------------- sound/soc/codecs/rt298.c | 9 +++++++-- 2 files changed, 28 insertions(+), 15 deletions(-) -- 2.31.1 base-commit:a38fd87484
This commit is contained in:
commit
1fa27f35ee
|
@ -171,6 +171,9 @@ static bool rt286_readable_register(struct device *dev, unsigned int reg)
|
|||
case RT286_PROC_COEF:
|
||||
case RT286_SET_AMP_GAIN_ADC_IN1:
|
||||
case RT286_SET_AMP_GAIN_ADC_IN2:
|
||||
case RT286_SET_GPIO_MASK:
|
||||
case RT286_SET_GPIO_DIRECTION:
|
||||
case RT286_SET_GPIO_DATA:
|
||||
case RT286_SET_POWER(RT286_DAC_OUT1):
|
||||
case RT286_SET_POWER(RT286_DAC_OUT2):
|
||||
case RT286_SET_POWER(RT286_ADC_IN1):
|
||||
|
@ -1204,7 +1207,7 @@ static int rt286_i2c_probe(struct i2c_client *i2c,
|
|||
mdelay(10);
|
||||
|
||||
if (!rt286->pdata.gpio2_en)
|
||||
regmap_write(rt286->regmap, RT286_SET_DMIC2_DEFAULT, 0x4000);
|
||||
regmap_write(rt286->regmap, RT286_SET_DMIC2_DEFAULT, 0x40);
|
||||
else
|
||||
regmap_write(rt286->regmap, RT286_SET_DMIC2_DEFAULT, 0);
|
||||
|
||||
|
|
Loading…
Reference in New Issue