2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-04 19:54:03 +08:00
linux-next/sound/soc
Mark Brown ec432e2a51
ASoC: Intel: avs: Driver core and PCM operations
Merge series from Cezary Rojewski <cezary.rojewski@intel.com>:

Part three of main AVS driver series. This series was originally part of
the initial series which was later divided [1] into smaller,
easier-to-review chunks. Thus, many patches found here were already
present on the list.

This series consists of code typical to many drivers - PCI driver
operations, trace ability, PM operations - as well as PCM handlers for
all standard audio interfaces, that is, HDA, I2S and DMIC are found
here.

Series starts with updating firmware boot flow - libraries are no longer
ignored. This change is dependent on already merged topology code [2]
and because of that could not be part of the initial series [1].

PCM operations are split into four changes. First component operations
alone i.e. operations which are usually agnostic towards path position
(FE/BE). Then it continues with "generic" FE operations - there is no
interface split here as from Intel ADSP point of view, FE, or HOST side
as it's called in the specs, involves HD-Audio operations only.
BE (also known as LINK) side on the other hand is divided into
"non-HD-Audio" and HD-Audio part. The former represents transfer over
DMIC and I2S interfaces both.

While patches implementing standard PCI driver operations along (again
standard) HD-Audio initialization routines followed up by power
management handlers are two major ones, series covers also other
important subjects such as:

While patches implementing standard PCI driver operations along (again
standard) HD-Audio initialization routines followed up by power
management handlers are two major ones, series covers also other
important subjects such as:

- event tracing
- preparation for firmware tracing (debugability)
- coredump (debugability)
- recovery flow (attempt recovery after IPC timeout or exception)
- D0ix (D0 device substate, complements standard power management)

Series is finalized by actual addition of supported platforms: SKL and
APL-based. Platform-specific files are limited to firmware-specific
bits, that is, bits that are specific to given firmware generation.
Everything else is shared and is part of already upstream messaging
code found in ipc.c, messages.c and messages.h files.

Changes in v3:
- addressed (hopefully) trace-code compilation under .configs with
  CONFIG_FTRACE dropped

Changes in v2:
- usage of avs_releast_last_firmware() dropped in error path for library
  loading procedure as suggested by Pierre
- 'link_mask' usage replaced with 'i2s_link_mask' as requested by
  Pierre. Existing code addressed with new patch:
  "ASoC: Intel: avs: Replace link_mask usage with i2s_link_mask"
- fixed possible race during recovery flow (->recovering flag is now
  atomic and tested in single location only).
- dropped platform prefixes for basically all i2s board descriptors
- 'ssp_test' renamed to 'i2s_test' to match naming convention of other
  boards
- simplified PM implementation for current series, 'low_power' bits
  moved to future series
- replaced SND_INTEL_DSP_DRIVER_SST with _AVS as suggested by Mark.
  Required changes to intel-dspcfg will be added in future series
- number of typos across commit messages addressed

[1]: https://lore.kernel.org/all/20220311153544.136854-1-cezary.rojewski@intel.com/
[2]: https://lore.kernel.org/all/20220331135246.993089-1-cezary.rojewski@intel.com/

Cezary Rojewski (14):
  ASoC: Intel: avs: Account for libraries when booting basefw
  ASoC: Intel: avs: Generic soc component driver
  ASoC: Intel: avs: Generic PCM FE operations
  ASoC: Intel: avs: non-HDA PCM BE operations
  ASoC: Intel: avs: HDA PCM BE operations
  ASoC: Intel: avs: Coredump and recovery flow
  ASoC: Intel: avs: Prepare for firmware tracing
  ASoC: Intel: avs: D0ix power state support
  ASoC: Intel: avs: Event tracing
  ASoC: Intel: avs: Machine board registration
  ASoC: Intel: avs: PCI driver implementation
  ASoC: Intel: avs: Power management
  ASoC: Intel: avs: SKL-based platforms support
  ASoC: Intel: avs: APL-based platforms support

Piotr Maziarz (1):
  ASoC: Intel: avs: Replace link_mask usage with i2s_link_mask

 include/sound/intel-dsp-config.h      |    3 +-
 include/sound/soc-acpi.h              |    2 +
 sound/soc/intel/Kconfig               |    2 +
 sound/soc/intel/avs/Makefile          |    7 +-
 sound/soc/intel/avs/apl.c             |  250 ++++++
 sound/soc/intel/avs/avs.h             |   79 ++
 sound/soc/intel/avs/board_selection.c |  501 +++++++++++
 sound/soc/intel/avs/core.c            |  631 +++++++++++++
 sound/soc/intel/avs/dsp.c             |   27 +-
 sound/soc/intel/avs/ipc.c             |  253 +++++-
 sound/soc/intel/avs/loader.c          |   84 ++
 sound/soc/intel/avs/messages.c        |   35 +-
 sound/soc/intel/avs/messages.h        |   51 ++
 sound/soc/intel/avs/pcm.c             | 1182 +++++++++++++++++++++++++
 sound/soc/intel/avs/registers.h       |    8 +
 sound/soc/intel/avs/skl.c             |  125 +++
 sound/soc/intel/avs/topology.c        |   14 +-
 sound/soc/intel/avs/trace.c           |   33 +
 sound/soc/intel/avs/trace.h           |  154 ++++
 sound/soc/intel/avs/utils.c           |   23 +
 20 files changed, 3443 insertions(+), 21 deletions(-)
 create mode 100644 sound/soc/intel/avs/apl.c
 create mode 100644 sound/soc/intel/avs/board_selection.c
 create mode 100644 sound/soc/intel/avs/pcm.c
 create mode 100644 sound/soc/intel/avs/skl.c
 create mode 100644 sound/soc/intel/avs/trace.c
 create mode 100644 sound/soc/intel/avs/trace.h

--
2.25.1
2022-05-17 18:19:35 +01:00
..
adi
amd ASoC: amd: vangogh: Remove duplicate include files 2022-05-16 12:58:37 +01:00
atmel Clean up usage of the endianness flag 2022-05-10 12:12:50 +01:00
au1x ASoC: wm8731: Factor out the I2C and SPI bus code into separate modules 2022-04-04 08:39:32 +01:00
bcm ASoC: bcm: Use platform_get_irq() to get the interrupt 2021-12-21 18:05:43 +00:00
cirrus ARM: SoC drivers for 5.16 2021-11-03 17:00:52 -07:00
codecs ASoC: rt5645: Fix errorenous cleanup order 2022-05-16 12:58:42 +01:00
dwc ASoC: dwc-i2s: Handle errors for clk_enable 2022-03-02 13:45:24 +00:00
fsl ASoC: fsl_sai: Add support for i.MX8ULP 2022-05-16 12:58:08 +01:00
generic ASoC: core: Correct spelling fliped -> flipped 2022-05-16 12:58:39 +01:00
hisilicon
img ASoC: img-i2s-in: using pm_runtime_resume_and_get instead of pm_runtime_get_sync 2022-04-25 14:00:23 +01:00
intel ASoC: Intel: avs: APL-based platforms support 2022-05-17 11:58:08 +01:00
jz4740
kirkwood
mediatek ASoC: mediatek: mt8195: Fix build warning without CONFIG_OF 2022-05-09 19:04:37 +01:00
meson ASoC: meson: axg-card: Fix nonatomic links 2022-04-21 18:25:15 +01:00
mxs ASoC: mxs-saif: Fix refcount leak in mxs_saif_probe 2022-05-11 17:42:13 +01:00
pxa ASoC: soc-card: Create jack kcontrol without pins 2022-04-14 17:37:21 +01:00
qcom ASoC: qcom: SC7280: Update machine driver startup, shutdown callbacks 2022-04-26 15:13:42 +01:00
rockchip ASoC: soc-card: Create jack kcontrol without pins 2022-04-14 17:37:21 +01:00
samsung ASoC: samsung: Fix refcount leak in aries_audio_probe 2022-05-12 11:41:32 +01:00
sh ASoC: sh: rz-ssi: Release the DMA channels in rz_ssi_probe() error path 2022-04-27 17:22:50 +01:00
sof ASoC: SOF: ipc-msg-injector: Cap the rmaining to count in IPC4 mode 2022-05-17 11:58:11 +01:00
spear
sprd
sti ASoC: sti: Fix deadlock via snd_pcm_stop_xrun() call 2022-03-16 16:39:28 +00:00
stm ASoC: stm: Use dev_err_probe() helper 2021-12-20 12:47:23 +00:00
sunxi ASoC: sun4i-i2s: Add support for the R329/D1 variant 2022-02-03 11:30:57 +00:00
tegra ASoC: soc-card: Create jack kcontrol without pins 2022-04-14 17:37:21 +01:00
ti ASoC: ti: j721e-evm: Fix refcount leak in j721e_soc_probe_* 2022-05-16 12:58:38 +01:00
uniphier ASoC: uniphier: simplify the return expression of uniphier_aio_compr_set_params() 2022-05-09 12:48:41 +01:00
ux500 ASoC: ux500: mop500: Check before clk_put() not needed 2022-05-17 11:58:54 +01:00
xilinx ASoC: xilinx: xlnx_i2s: Handle sysclk setting 2022-01-24 19:45:38 +00:00
xtensa
Kconfig ASoC: soc-utils: Add kunit test for snd_soc_tdm_params_to_bclk() 2022-04-05 18:27:56 +01:00
Makefile ASoC: soc-utils: Add kunit test for snd_soc_tdm_params_to_bclk() 2022-04-05 18:27:56 +01:00
soc-ac97.c
soc-acpi.c ALSA: Replace acpi_bus_get_device() 2022-02-01 08:08:08 +01:00
soc-card.c ASoC: soc-card: Create jack kcontrol without pins 2022-04-14 17:37:21 +01:00
soc-component.c ASoC: soc-component: Update handling to component delays 2022-05-16 12:58:41 +01:00
soc-compress.c ASoC: soc-compress: Change the check for codec_dai 2022-03-14 08:29:11 +00:00
soc-core.c ASoC: core: Pass legacy_dai_naming flag directly 2022-05-16 12:58:40 +01:00
soc-dai.c ASoC: soc-dai: update snd_soc_dai_delay() to snd_soc_pcm_dai_delay() 2021-11-29 12:19:40 +00:00
soc-dapm.c ASoC: dapm: Don't fold register value changes into notifications 2022-05-03 13:42:26 +01:00
soc-devres.c
soc-generic-dmaengine-pcm.c ASoC: soc-generic-dmaengine-pcm: Use default config when none is given 2022-05-04 15:31:19 +01:00
soc-jack.c ASoC: soc-card: Create jack kcontrol without pins 2022-04-14 17:37:21 +01:00
soc-link.c
soc-ops.c ASoC: ops: Validate input values in snd_soc_put_volsw_range() 2022-04-26 15:13:36 +01:00
soc-pcm.c ASoC: soc-pcm: improve BE transition for TRIGGER_START 2022-04-19 16:33:52 +01:00
soc-topology-test.c
soc-topology.c ASoC: Pull in fixes 2022-04-05 10:29:12 +01:00
soc-utils-test.c ASoC: soc-utils: Add kunit test for snd_soc_tdm_params_to_bclk() 2022-04-05 18:27:56 +01:00
soc-utils.c ASoC: soc-utils: Add helper to calculate BCLK from TDM info 2022-04-05 18:27:55 +01:00