1. May 19, 2022
  2. May 18, 2022
    • Mark Brown's avatar
      ASoC: Intel: avs: Driver core and PCM operations · ec432e2a
      Mark Brown authored
      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
      ec432e2a
  3. May 17, 2022
  4. May 16, 2022
  5. May 12, 2022