[alsa-devel] [RFC v5 0/9] Enable HDA Codec support on Intel Platforms (Series2)
Rakesh Ughreja
rakesh.a.ughreja at intel.com
Wed Jan 3 05:56:13 CET 2018
Many Intel platforms (SKL, KBL) etc. in the market supports enhanced
audio capabilities which also includes DSP processing. This patch carry
forwards the works that is done in the previous series to enable HD Audio
codecs on such platforms.
This patch series adds ASoC HDA codec driver for Intel platforms. It is
written by reusing the legacy HDA ALSA codec driver. Intention is to
maximize the reuse and minimize the changes in the legacy HDA codec driver.
I would like to receive feedback before proceeding further on this
direction.
INFO:
- This series is tested on KBL based product (Dell XPS 13).
- Basic playback is working with headset and speakers.
- HDMI playback is working.
- Capture operation is not tested.
- Playback using legacy drivers is tested.
- More platforms and use cases coverage can be added once we have basic
agreement in terms of the overall approach.
- With this rebase I observed that if HDMI device is not connected to the
machine, the iDisp codec is not detected and so the card is not created.
work around is to make sure that HDMI device is connected at driver loading
time.
Changes in v5:
- Rebased to Mark's tree, 4.15-rc5
- Fixed issue related to hdac_hda module loading order.
Changes in v4:
- new field bus type is added to distinguish bus type allocated by the
controller or platform drivers.
- extended routines are provided in hdac_bus which are called by legacy
codec driver when the bus type is ext.
- hdac_hda driver is converted into a passive library.
Changes in v3:
- snd_hda_codec_new API is split into two, so that it can be used by
legacy as well as ASoC codec drivers. API is split into two to avoid bus
registration when called by ASoC drivers.
- Moved the __hda_codec_driver_register and hda_codec_driver_unregister
APIs into generic driver and it performs registration for ASoC codec
drivers also. So now there is only one kernel image for ASoC as well as
legacy codec drivers. Registration functions had to moved to generic
driver to resolve the circular dependency between hdac_hda and hda_codec
drivers.
- There is a Kconfig entry added to compile the ASoC version of HDA codec
driver. For now only the Realtek codec entry is added. Same thing needs
to be done for rest of the codec drivers also.
Changes in v2:
- Using Topology framework to create DAIs and DAI Links
- Moved most commonly used functions into a separate file for machine
driver.
- Implemented separate Realtek ASoC HDA Driver driver for Realtek HDA
codecs. It is just a driver registration wrapper which reuses the legacy
HDA codec driver. This allows the removes the limitation that was present
Rakesh Ughreja (9):
ASoC: Intel: Boards: Machine driver for Intel platforms
ASoC: Intel: Skylake: Add entry in sst_acpi_mach for HDA codecs
ASoC: Intel: Skylake: add HDA BE DAIs
ASoC: Intel: Skylake: use hda_bus instead of hdac_bus
ALSA: hda - split snd_hda_codec_new function
ALSA: hdac: remove memory allocation from snd_hdac_ext_bus_device_init
ALSA: hdac: add bus type and extended ops support in hdac_bus
ASoC: hdac_hda: add asoc extension for legacy HDA codec drivers
ASoC: Intel: Boards: add support for HDA codecs
include/sound/hdaudio.h | 24 ++
include/sound/hdaudio_ext.h | 6 +-
sound/hda/ext/hdac_ext_bus.c | 14 +-
sound/hda/hdac_bus.c | 1 +
sound/pci/hda/hda_bind.c | 15 +
sound/pci/hda/hda_codec.c | 67 +++-
sound/pci/hda/hda_codec.h | 2 +
sound/soc/codecs/Kconfig | 5 +
sound/soc/codecs/Makefile | 2 +
sound/soc/codecs/hdac_hda.c | 517 +++++++++++++++++++++++++++
sound/soc/codecs/hdac_hda.h | 20 ++
sound/soc/intel/Kconfig | 1 +
sound/soc/intel/boards/Kconfig | 10 +
sound/soc/intel/boards/Makefile | 2 +
sound/soc/intel/boards/skl_hda_dsp_common.c | 163 +++++++++
sound/soc/intel/boards/skl_hda_dsp_common.h | 34 ++
sound/soc/intel/boards/skl_hda_dsp_generic.c | 132 +++++++
sound/soc/intel/skylake/skl-pcm.c | 32 +-
sound/soc/intel/skylake/skl.c | 87 ++++-
sound/soc/intel/skylake/skl.h | 10 +-
20 files changed, 1101 insertions(+), 43 deletions(-)
create mode 100644 sound/soc/codecs/hdac_hda.c
create mode 100644 sound/soc/codecs/hdac_hda.h
create mode 100644 sound/soc/intel/boards/skl_hda_dsp_common.c
create mode 100644 sound/soc/intel/boards/skl_hda_dsp_common.h
create mode 100644 sound/soc/intel/boards/skl_hda_dsp_generic.c
--
2.7.4
More information about the Alsa-devel
mailing list