mbox series

[v3,00/15] ASoC: Intel: avs: Driver core and PCM operations

Message ID 20220516101116.190192-1-cezary.rojewski@intel.com
Headers show
Series ASoC: Intel: avs: Driver core and PCM operations | expand

Message

Cezary Rojewski May 16, 2022, 10:11 a.m. UTC
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

Comments

Mark Brown May 17, 2022, 5:21 p.m. UTC | #1
On Mon, 16 May 2022 12:11:01 +0200, Cezary Rojewski wrote:
> 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.
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[01/15] ASoC: Intel: avs: Account for libraries when booting basefw
        commit: 81a299105d69344233e6aed8565522da9beec99e
[02/15] ASoC: Intel: avs: Generic soc component driver
        commit: f1b3b320bd6519b16e3480f74f2926d106e3bcba
[03/15] ASoC: Intel: avs: Generic PCM FE operations
        commit: 9114700b496c6ce16ad6fc0073f0502cd0f46991
[04/15] ASoC: Intel: avs: non-HDA PCM BE operations
        commit: b9062f9867f0e601c64e973e2eecda37ccac2ee8
[05/15] ASoC: Intel: avs: HDA PCM BE operations
        commit: d070002a20fc071c6f14c2fd8ff5ebeabead8d2a
[06/15] ASoC: Intel: avs: Coredump and recovery flow
        commit: 2f1f570cd730c81807ae143a83766068dd82d577
[07/15] ASoC: Intel: avs: Prepare for firmware tracing
        commit: 4b86115cb91a3d34ce7da87b734572ce6063babc
[08/15] ASoC: Intel: avs: D0ix power state support
        commit: 335c4cbd201d4b74942ff37e6c644d56b9247df3
[09/15] ASoC: Intel: avs: Event tracing
        commit: 69b23b3937a1a1019f3d34696897d89f2d987edf
[10/15] ASoC: Intel: avs: Replace link_mask usage with i2s_link_mask
        commit: 25b552f192877bec5aea44a6b060a36f78de9675
[11/15] ASoC: Intel: avs: Machine board registration
        commit: beed983621fbdfd291e6e3a0cdc4d10517e60af8
[12/15] ASoC: Intel: avs: PCI driver implementation
        commit: 1affc44ea5dd554c103e0ce1e809f3aa5d942349
[13/15] ASoC: Intel: avs: Power management
        commit: cfbc100e6bbfd01a56bb83fe796318a02dc18ce4
[14/15] ASoC: Intel: avs: SKL-based platforms support
        commit: b3e29075b2346564f1bef7f8e19a1a7fcbcf7ed8
[15/15] ASoC: Intel: avs: APL-based platforms support
        commit: c8c960c109716d96cfd1de65396fb8021eed4202

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark