linux-stable/sound/soc/intel/boards
Mark Brown efb1a2d3d8
ALSA/ASoC/SOF/Intel: improve support for ES8336-based platforms
Merge series from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>:

This patchset adds a number of improvements for ES8336-based Intel
platforms, which are not well supported at all in Linux. Since
Christmas 2021, we've seen dozens of reports of broken audio [1].

The fundamental problem is that those platforms were built for Windows
but using an I2S codec - instead of the HDaudio traditional
solution. As a result, we are missing all the usual information needed
to configure the audio card (which I2S, what configuration, DMICs or
not, etc). The situation is similar to Baytrail with all possible
permutations enabled.

Some of the information can be discovered by checking the contents of
the 'NHLT' ACPI table. This helps discover at run-time which SSP to
use, and the number of microphones present. This NHLT-based solution
helps remove quirks that were added earlier.

Unfortunately, there are still a number of platform properties that
are not described by ACPI, just as GPIOs used for speakers, jack
detection inversion, etc. For some case, quirks are still provided in
the machine drivers.

Additional work will likely be needed, e.g. to detect which MCLK needs
to be used, refine the UCM settings, add the ES8326 codec driver, but
this is a first-step towards an 'out of the box' experience on Intel
platforms.

This patchset touches the sound/hda/intel-nhlt parts but should IMHO
be merged in the ASoC tree.

I would like to acknowledge the help of Nikolai Kostrigin, Mauro
Carvalho Chehab, Huajun Li, David Yang (@yangxiaohua2009) and other
GitHub testers.

[1] https://github.com/thesofproject/linux/issues?q=is%3Aissue+is%3Aopen+label%3A%22codec+ES8336%22
2022-03-10 11:33:39 +00:00
..
bdw-rt5650.c ASoC: Intel: boards: fix spelling in comments 2022-03-02 13:43:38 +00:00
bdw-rt5677.c ASoC: Intel: boards: fix spelling in comments 2022-03-02 13:43:38 +00:00
broadwell.c ASoC: Intel: boards: fix spelling in comments 2022-03-02 13:43:38 +00:00
bxt_da7219_max98357a.c ASoC: Intel: boards: fix spelling in comments 2022-03-02 13:43:38 +00:00
bxt_rt298.c ASoC: Intel: boards: fix spelling in comments 2022-03-02 13:43:38 +00:00
bytcht_cx2072x.c ASoC: Intel: boards: fix spelling in comments 2022-03-02 13:43:38 +00:00
bytcht_da7213.c ASoC: Intel: boards: fix spelling in comments 2022-03-02 13:43:38 +00:00
bytcht_es8316.c ASoC: Intel: bytcht_es8316: move comment to the right place 2022-03-09 13:30:39 +00:00
bytcht_nocodec.c ASoC: intel: boards: bytcht*: Constify static snd_soc_ops 2021-11-30 13:08:10 +00:00
bytcr_rt5640.c ASoC: Intel: boards: fix spelling in comments 2022-03-02 13:43:38 +00:00
bytcr_rt5651.c ASoC: Intel: boards: fix spelling in comments 2022-03-02 13:43:38 +00:00
bytcr_wm5102.c ASoC: Intel: bytcr_wm5102: use GFP_KERNEL 2022-02-11 10:31:25 +00:00
cht_bsw_max98090_ti.c ASoC: Intel: boards: fix spelling in comments 2022-03-02 13:43:38 +00:00
cht_bsw_nau8824.c ASoC: Intel: boards: fix spelling in comments 2022-03-02 13:43:38 +00:00
cht_bsw_rt5645.c ASoC: Intel: boards: fix spelling in comments 2022-03-02 13:43:38 +00:00
cht_bsw_rt5672.c ASoC: Intel: boards: fix spelling in comments 2022-03-02 13:43:38 +00:00
cml_rt1011_rt5682.c ASoC: Intel: boards: handle hda-dsp-common as a module 2021-05-10 13:04:18 +01:00
ehl_rt5660.c ASoC: Intel: use MODULE_DEVICE_TABLE with platform_device_id tables 2021-06-22 12:47:09 +01:00
glk_rt5682_max98357a.c ASoC: Intel: boards: fix spelling in comments 2022-03-02 13:43:38 +00:00
haswell.c ASoC: Intel: boards: fix spelling in comments 2022-03-02 13:43:38 +00:00
hda_dsp_common.c ASoC: Intel: hda_dsp_common: don't multiline PCM topology warning 2021-11-30 13:08:09 +00:00
hda_dsp_common.h ASoC: Intel: hda_dsp_common: use static function in conditional block 2020-09-23 18:47:59 +01:00
kbl_da7219_max98357a.c ASoC: Intel: boards: Update to modern clocking terminology 2021-09-20 15:46:26 +01:00
kbl_da7219_max98927.c ASoC: Intel: boards: Update to modern clocking terminology 2021-09-20 15:46:26 +01:00
kbl_rt5660.c ASoC: Intel: boards: Update to modern clocking terminology 2021-09-20 15:46:26 +01:00
kbl_rt5663_max98927.c ASoC: Intel: boards: Update to modern clocking terminology 2021-09-20 15:46:26 +01:00
kbl_rt5663_rt5514_max98927.c ASoC: Intel: boards: Update to modern clocking terminology 2021-09-20 15:46:26 +01:00
Kconfig ALSA/ASoC/SOF/Intel: improve support for ES8336-based platforms 2022-03-10 11:33:39 +00:00
Makefile ASoC: Intel: sof_ssp_amp: rename driver and support cs35l41 amplifier 2022-03-02 13:43:43 +00:00
skl_hda_dsp_common.c ASoC: SOF/Intel: clarify SPDX license with GPL-2.0-only 2020-05-01 17:45:24 +01:00
skl_hda_dsp_common.h ASoC: intel/skl/hda - fix probe regression on systems without i915 2020-07-22 13:34:24 +01:00
skl_hda_dsp_generic.c ASoC: Intel: boards: handle hda-dsp-common as a module 2021-05-10 13:04:18 +01:00
skl_nau88l25_max98357a.c ASoC: Intel: boards: Update to modern clocking terminology 2021-09-20 15:46:26 +01:00
skl_nau88l25_ssm4567.c ASoC: Intel: boards: Update to modern clocking terminology 2021-09-20 15:46:26 +01:00
skl_rt286.c ASoC: Intel: boards: Update to modern clocking terminology 2021-09-20 15:46:26 +01:00
sof_cirrus_common.c ASoC: Intel: cirrus-common: support cs35l41 amplifier 2022-03-02 13:43:42 +00:00
sof_cirrus_common.h ASoC: Intel: cirrus-common: support cs35l41 amplifier 2022-03-02 13:43:42 +00:00
sof_cs42l42.c ASoC: Intel: sof_cs42l42: add support for jsl_cs4242_mx98360a 2021-07-14 13:30:36 +01:00
sof_da7219_max98373.c ASoC: Intel: sof_da7219_mx98360a: fail to initialize soundcard 2021-07-26 18:57:12 +01:00
sof_es8336.c ASoC: Intel: sof_es8336: add cfg-dmics component for UCM support 2022-03-09 13:30:38 +00:00
sof_maxim_common.c ASoC: Intel: boards: add 'static' qualifiers for max98390 routes 2021-12-08 13:07:57 +00:00
sof_maxim_common.h ASoC: Intel: boards: add max98390 2/4 speakers support 2021-11-30 13:08:14 +00:00
sof_nau8825.c ASoC: Intel: add sof-nau8825 machine driver 2021-11-15 19:25:22 +00:00
sof_pcm512x.c ASoC: Intel: update sof_pcm512x quirks 2021-08-03 18:26:11 +01:00
sof_realtek_common.c ASoC: Intel: sof_rt1308: move rt1308 code to common module 2022-03-02 13:43:41 +00:00
sof_realtek_common.h ASoC: Intel: sof_rt1308: move rt1308 code to common module 2022-03-02 13:43:41 +00:00
sof_rt5682.c ASoC: Intel: boards: create sof-realtek-common module 2022-03-02 13:43:40 +00:00
sof_sdw.c ASoC: Intel: sof_sdw: fix quirks for 2022 HP Spectre x360 13" 2022-03-07 13:13:15 +00:00
sof_sdw_common.h ASoC: intel: sof_sdw: remove SOF_RT715_DAI_ID_FIX quirk 2021-11-15 13:26:56 +00:00
sof_sdw_dmic.c ASoC: Intel: sof_sdw: clean-up inclusion of header files 2020-08-24 13:41:36 +01:00
sof_sdw_hdmi.c ASoC: Intel: sof_sdw: remove hdac-hdmi support 2021-06-22 12:47:03 +01:00
sof_sdw_max98373.c ASoC: Intel: sof_sdw: pass card information to init/exit functions 2021-08-13 16:50:40 +01:00
sof_sdw_rt700.c ASoC: Intel: sof_sdw: pass card information to init/exit functions 2021-08-13 16:50:40 +01:00
sof_sdw_rt711.c ASoC: Intel: use software node API in SoundWire machines 2021-08-13 16:50:41 +01:00
sof_sdw_rt711_sdca.c ASoC: Intel: use software node API in SoundWire machines 2021-08-13 16:50:41 +01:00
sof_sdw_rt715.c ASoC: intel: sof_sdw: move DMIC link id overwrite to create_sdw_dailink 2021-11-15 13:26:55 +00:00
sof_sdw_rt715_sdca.c ASoC: intel: sof_sdw: move DMIC link id overwrite to create_sdw_dailink 2021-11-15 13:26:55 +00:00
sof_sdw_rt1308.c ASoC: Intel: sof_sdw: pass card information to init/exit functions 2021-08-13 16:50:40 +01:00
sof_sdw_rt1316.c ASoC: Intel: sof_sdw: pass card information to init/exit functions 2021-08-13 16:50:40 +01:00
sof_sdw_rt5682.c ASoC: Intel: sof_sdw: pass card information to init/exit functions 2021-08-13 16:50:40 +01:00
sof_ssp_amp.c ASoC: Intel: sof_ssp_amp: rename driver and support cs35l41 amplifier 2022-03-02 13:43:43 +00:00
sof_wm8804.c ASoC: Intel: boards: remove .nonatomic for BE dailinks 2021-05-10 13:04:21 +01:00