diff options
author | Mark Brown <broonie@kernel.org> | 2022-06-07 13:52:09 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2022-06-07 13:52:09 +0300 |
commit | 9f2d5e1e5d64bd595fb724814eb58b8f5c0c97e9 (patch) | |
tree | e8f29993bec113bb86185cf49f983dc4dcd00169 /include/sound | |
parent | 28223889603a0a933d8a2339af3eb318f676320b (diff) | |
parent | 6b5b0d6f36dd45e22f1710e8bcd97f28b4ba41f5 (diff) | |
download | linux-9f2d5e1e5d64bd595fb724814eb58b8f5c0c97e9.tar.xz |
ASoC: Intel: avs: Machine boards and HDA codec support
Merge series from Cezary Rojewski <cezary.rojewski@intel.com>
From there on is a range of boards appended. All of them follow the same:
This series focuses on populating boards/ subdirectory with supported
configurations by the avs-driver. Note: it is independent of recently
provided "Driver code and PCM operations" series [1], that is, code
found here should not collide with it.
Series starts with a small change that adds a helper to sound pcm
header, allowing for retrieving string naming a direction without the
need of substream pointer. Said helper is used by codec driver code that
follows it but I believe it's generic and helpful enough that it can be
called an independent addition to the sound core.
Code for generic HD-Audio codec driver follows. It is a ASoC wrapper for
existing HD-Audio codec code found in sound/pci/hda/. There is basically
no custom logic involved up to the point that driver follows
HDA_DEV_LEGACY convention, rather than the HDA_DEV_ASOC one. Commit
message for the given patch iterates on this and explains crucial parts
of the implementation.
From there on is a range of boards appended. All of them follow the same
scheme:
- define avs_create_dai_link() so DAI-LINKs can be created dynamically,
based on the link_mask (I2S) or the number of entries in the
->pcm_list_head list (HDA)
- define avs_create_dapm_routes() so DAPM routes can be created
dynamically, same rules as above apply
- define probe() function that creates new ASoC card, assign all
required operations and resources along with calling the two above
Changes in v2:
- 'link_mask' usage replaced with 'i2s_link_mask' as requested by
Pierre
- 'ssp_test' board renamed to 'i2s_test' to match naming convention used
for other i2s machine boards
- enriched commit message and Kconfig for the 'HD-Audio codec driver'
patch as requested by Kai
[1]: https://lore.kernel.org/all/20220426172346.3508411-1-cezary.rojewski@intel.com/
Amadeusz Sławiński (1):
ASoC: Intel: avs: Add max98373 machine board
Cezary Rojewski (13):
ALSA: Add snd_pcm_direction_name() helper
ASoC: codecs: Add HD-Audio codec driver
ASoC: Intel: avs: Add HDAudio machine board
ASoC: Intel: avs: Add DMIC machine board
ASoC: Intel: avs: Add I2S-test machine board
ASoC: Intel: avs: Add rt274 machine board
ASoC: Intel: avs: Add rt286 machine board
ASoC: Intel: avs: Add rt298 machine board
ASoC: Intel: avs: Add rt5682 machine board
ASoC: Intel: avs: Add nau8825 machine board
ASoC: Intel: avs: Add ssm4567 machine board
ASoC: Intel: avs: Add max98357a machine board
ASoC: Intel: avs: Add da7219 machine board
include/sound/pcm.h | 19 +-
sound/soc/codecs/Kconfig | 10 +
sound/soc/codecs/Makefile | 2 +
sound/soc/codecs/hda-dai.c | 102 +++++++
sound/soc/codecs/hda.c | 395 +++++++++++++++++++++++++
sound/soc/codecs/hda.h | 19 ++
sound/soc/intel/Kconfig | 3 +
sound/soc/intel/avs/Makefile | 3 +
sound/soc/intel/avs/boards/Kconfig | 121 ++++++++
sound/soc/intel/avs/boards/Makefile | 27 ++
sound/soc/intel/avs/boards/da7219.c | 282 ++++++++++++++++++
sound/soc/intel/avs/boards/dmic.c | 93 ++++++
sound/soc/intel/avs/boards/hdaudio.c | 294 ++++++++++++++++++
sound/soc/intel/avs/boards/i2s_test.c | 180 +++++++++++
sound/soc/intel/avs/boards/max98357a.c | 154 ++++++++++
sound/soc/intel/avs/boards/max98373.c | 239 +++++++++++++++
sound/soc/intel/avs/boards/nau8825.c | 353 ++++++++++++++++++++++
sound/soc/intel/avs/boards/rt274.c | 310 +++++++++++++++++++
sound/soc/intel/avs/boards/rt286.c | 281 ++++++++++++++++++
sound/soc/intel/avs/boards/rt298.c | 281 ++++++++++++++++++
sound/soc/intel/avs/boards/rt5682.c | 340 +++++++++++++++++++++
sound/soc/intel/avs/boards/ssm4567.c | 271 +++++++++++++++++
22 files changed, 3775 insertions(+), 4 deletions(-)
create mode 100644 sound/soc/codecs/hda-dai.c
create mode 100644 sound/soc/codecs/hda.c
create mode 100644 sound/soc/codecs/hda.h
create mode 100644 sound/soc/intel/avs/boards/Kconfig
create mode 100644 sound/soc/intel/avs/boards/Makefile
create mode 100644 sound/soc/intel/avs/boards/da7219.c
create mode 100644 sound/soc/intel/avs/boards/dmic.c
create mode 100644 sound/soc/intel/avs/boards/hdaudio.c
create mode 100644 sound/soc/intel/avs/boards/i2s_test.c
create mode 100644 sound/soc/intel/avs/boards/max98357a.c
create mode 100644 sound/soc/intel/avs/boards/max98373.c
create mode 100644 sound/soc/intel/avs/boards/nau8825.c
create mode 100644 sound/soc/intel/avs/boards/rt274.c
create mode 100644 sound/soc/intel/avs/boards/rt286.c
create mode 100644 sound/soc/intel/avs/boards/rt298.c
create mode 100644 sound/soc/intel/avs/boards/rt5682.c
create mode 100644 sound/soc/intel/avs/boards/ssm4567.c
--
2.25.1
Diffstat (limited to 'include/sound')
-rw-r--r-- | include/sound/pcm.h | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/include/sound/pcm.h b/include/sound/pcm.h index 6b99310b5b88..26523cfe428d 100644 --- a/include/sound/pcm.h +++ b/include/sound/pcm.h @@ -1393,6 +1393,20 @@ static inline void snd_pcm_limit_isa_dma_size(int dma, size_t *max) const char *snd_pcm_format_name(snd_pcm_format_t format); /** + * snd_pcm_direction_name - Get a string naming the direction of a stream + * @direction: Stream's direction, one of SNDRV_PCM_STREAM_XXX + * + * Returns a string naming the direction of the stream. + */ +static inline const char *snd_pcm_direction_name(int direction) +{ + if (direction == SNDRV_PCM_STREAM_PLAYBACK) + return "Playback"; + else + return "Capture"; +} + +/** * snd_pcm_stream_str - Get a string naming the direction of a stream * @substream: the pcm substream instance * @@ -1400,10 +1414,7 @@ const char *snd_pcm_format_name(snd_pcm_format_t format); */ static inline const char *snd_pcm_stream_str(struct snd_pcm_substream *substream) { - if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) - return "Playback"; - else - return "Capture"; + return snd_pcm_direction_name(substream->stream); } /* |