alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: alsa-devel@alsa-project.org
Cc: Cezary Rojewski <cezary.rojewski@intel.com>,
	tiwai@suse.de, Huajun Li <huajun.li@intel.com>,
	Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>,
	Nikolai Kostrigin <nickel@altlinux.org>,
	broonie@kernel.org, Mauro Carvalho Chehab <mchehab@kernel.org>
Subject: [PATCH 00/20] ALSA/ASoC/SOF/Intel: improve support for ES8336-based platforms
Date: Tue,  8 Mar 2022 13:25:50 -0600	[thread overview]
Message-ID: <20220308192610.392950-1-pierre-louis.bossart@linux.intel.com> (raw)

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

Nikolai Kostrigin (1):
  ASoC: Intel: soc-acpi: add ESSX8336 support on Cannon Lake machines

Pierre-Louis Bossart (19):
  ASoC: soc-acpi: fix kernel-doc descriptor
  ASoC: soc-acpi: add information on I2S/TDM link mask
  ASoC: SOF: Intel: hda: retrieve DMIC number for I2S boards
  ALSA: intel-nhlt: add helper to detect SSP link mask
  ASoC: SOF: Intel: hda: report SSP link mask to machine driver
  ASoC: Intel: soc-acpi: quirk topology filename dynamically
  ALSA: intel-dsp-config: add more ACPI HIDs for ES83x6 devices
  ASoC: Intel: soc-acpi: add more ACPI HIDs for ES83x6 devices
  ALSA: intel-dspconfig: add ES8336 support for CNL
  ASoC: Intel: sof_es8336: make gpio optional
  ASoC: Intel: sof_es8336: get codec device with ACPI instead of bus
    search
  ASoC: Intel: Revert "ASoC: Intel: sof_es8336: add quirk for Huawei D15
    2021"
  ASoC: Intel: sof_es8336: use NHLT information to set dmic and SSP
  ASoC: Intel: sof_es8336: log all quirks
  ASoC: Intel: sof_es8336: move comment to the right place
  ASoC: Intel: sof_es8336: add support for JD inverted quirk
  ASoC: Intel: sof_es8336: extend machine driver to support ES8326 codec
  ASoC: Intel: sof_es8336: add cfg-dmics component for UCM support
  ASoC: Intel: bytcht_es8316: move comment to the right place

 include/sound/intel-nhlt.h                    |  22 ++-
 include/sound/soc-acpi.h                      |  27 +++-
 sound/hda/intel-dsp-config.c                  |  36 +++--
 sound/hda/intel-nhlt.c                        |  22 +++
 sound/soc/intel/boards/Kconfig                |   3 +-
 sound/soc/intel/boards/bytcht_es8316.c        |   2 +-
 sound/soc/intel/boards/sof_es8336.c           | 142 +++++++++++++-----
 .../intel/common/soc-acpi-intel-bxt-match.c   |  12 +-
 .../intel/common/soc-acpi-intel-cml-match.c   |  12 +-
 .../intel/common/soc-acpi-intel-cnl-match.c   |  14 ++
 .../intel/common/soc-acpi-intel-glk-match.c   |  12 +-
 .../intel/common/soc-acpi-intel-jsl-match.c   |  12 +-
 .../intel/common/soc-acpi-intel-tgl-match.c   |  12 +-
 sound/soc/sof/intel/hda.c                     | 120 ++++++++++++---
 14 files changed, 360 insertions(+), 88 deletions(-)


base-commit: 0b7daa6bd0a4cab3b0c6f266a8cb1344ce14ef19
-- 
2.30.2


             reply	other threads:[~2022-03-08 19:27 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-08 19:25 Pierre-Louis Bossart [this message]
2022-03-08 19:25 ` [PATCH 01/20] ASoC: soc-acpi: fix kernel-doc descriptor Pierre-Louis Bossart
2022-03-08 19:25 ` [PATCH 02/20] ASoC: soc-acpi: add information on I2S/TDM link mask Pierre-Louis Bossart
2022-03-08 19:25 ` [PATCH 03/20] ASoC: SOF: Intel: hda: retrieve DMIC number for I2S boards Pierre-Louis Bossart
2022-03-09 16:49   ` Cezary Rojewski
2022-03-09 17:10     ` Pierre-Louis Bossart
2022-03-08 19:25 ` [PATCH 04/20] ALSA: intel-nhlt: add helper to detect SSP link mask Pierre-Louis Bossart
2022-03-09 10:03   ` Takashi Iwai
2022-03-09 17:01   ` Cezary Rojewski
2022-03-09 17:24     ` Pierre-Louis Bossart
2022-03-08 19:25 ` [PATCH 05/20] ASoC: SOF: Intel: hda: report SSP link mask to machine driver Pierre-Louis Bossart
2022-03-09 16:59   ` Cezary Rojewski
2022-03-09 17:16     ` Pierre-Louis Bossart
2022-03-08 19:25 ` [PATCH 06/20] ASoC: Intel: soc-acpi: quirk topology filename dynamically Pierre-Louis Bossart
2022-03-08 19:25 ` [PATCH 07/20] ALSA: intel-dsp-config: add more ACPI HIDs for ES83x6 devices Pierre-Louis Bossart
2022-03-09 10:04   ` Takashi Iwai
2022-03-08 19:25 ` [PATCH 08/20] ASoC: Intel: soc-acpi: " Pierre-Louis Bossart
2022-03-08 19:25 ` [PATCH 09/20] ALSA: intel-dspconfig: add ES8336 support for CNL Pierre-Louis Bossart
2022-03-09 10:04   ` Takashi Iwai
2022-03-08 19:26 ` [PATCH 10/20] ASoC: Intel: soc-acpi: add ESSX8336 support on Cannon Lake machines Pierre-Louis Bossart
2022-03-08 19:26 ` [PATCH 11/20] ASoC: Intel: sof_es8336: make gpio optional Pierre-Louis Bossart
2022-03-08 19:26 ` [PATCH 12/20] ASoC: Intel: sof_es8336: get codec device with ACPI instead of bus search Pierre-Louis Bossart
2022-03-08 19:26 ` [PATCH 13/20] ASoC: Intel: Revert "ASoC: Intel: sof_es8336: add quirk for Huawei D15 2021" Pierre-Louis Bossart
2022-03-08 19:26 ` [PATCH 14/20] ASoC: Intel: sof_es8336: use NHLT information to set dmic and SSP Pierre-Louis Bossart
2022-03-08 19:26 ` [PATCH 15/20] ASoC: Intel: sof_es8336: log all quirks Pierre-Louis Bossart
2022-03-08 19:26 ` [PATCH 16/20] ASoC: Intel: sof_es8336: move comment to the right place Pierre-Louis Bossart
2022-03-08 19:26 ` [PATCH 17/20] ASoC: Intel: sof_es8336: add support for JD inverted quirk Pierre-Louis Bossart
2022-03-08 19:26 ` [PATCH 18/20] ASoC: Intel: sof_es8336: extend machine driver to support ES8326 codec Pierre-Louis Bossart
2022-03-08 19:26 ` [PATCH 19/20] ASoC: Intel: sof_es8336: add cfg-dmics component for UCM support Pierre-Louis Bossart
2022-03-08 19:26 ` [PATCH 20/20] ASoC: Intel: bytcht_es8316: move comment to the right place Pierre-Louis Bossart
2022-03-10 11:35 ` [PATCH 00/20] ALSA/ASoC/SOF/Intel: improve support for ES8336-based platforms Mark Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220308192610.392950-1-pierre-louis.bossart@linux.intel.com \
    --to=pierre-louis.bossart@linux.intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=cezary.rojewski@intel.com \
    --cc=huajun.li@intel.com \
    --cc=mchehab@kernel.org \
    --cc=nickel@altlinux.org \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).