1. 26 Feb, 2024 2 commits
    • Krzysztof Kozlowski's avatar
      ASoC: codecs: tx-macro: correct TX SMIC MUXn widgets on SM8350+ · d34f0c8e
      Krzysztof Kozlowski authored
      Starting with Qualcomm SM8350 SoC, so Low Power Audio SubSystem (LPASS)
      block version v9.2, the register responsible for TX SMIC MUXn muxes is
      different.  In earlier LPASS versions this mux had bit fields for
      analogue (ADCn) and digital (SWR_DMICn) MICs.  Choice of ADCn was
      selecting the analogue path in CDC_TX_TOP_CSR_SWR_DMICn_CTL register.
      
      With LPASS v9.2 and newer, the bit fields are integrated into just
      SWR_MICn and there is no distinction for analogue or digital MIC in the
      register.
      
      Fix support for LPASS v9.2+:
      1. Add new set of widgets and audio routes for LPASS v9.2.
      2. Do not choose analogue or digital in CDC_TX_TOP_CSR_SWR_DMICn_CTL
         based on value of the mux.
      3. Replace all the input widgets (TX SWR_ADCn, TX SWR_DMICn) with TX
         SWR_INPUTn ones.
      
      The change is not backwards compatible with older DTBs and existing
      mixer settings, therefore it does not change handling of older platforms
      with working micrphones (SC8280xp) but only the ones with issues
      (SM8450, SM8550) which need the fix.
      Signed-off-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
      Link: https://msgid.link/r/20240226115925.53953-3-krzysztof.kozlowski@linaro.orgSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      d34f0c8e
    • Krzysztof Kozlowski's avatar
      ASoC: codecs: tx-macro: split widgets per different LPASS versions · 051e8872
      Krzysztof Kozlowski authored
      TX macro codec differs slightly between different Qualcomm Low Power
      Audio SubSystem (LPASS) block versions.  In LPASS version 9.2 the
      register responsible for TX SMIC MUXn muxes is different, thus to
      properly support it, the driver needs to register different widgets per
      different LPASS version.
      
      Prepare for supporting this register difference by refactoring existing
      code:
      1. Move few widgets (TX SMIC MUXn, TX SWR_ADCn, TX SWR_DMICn) out of
         common 'tx_macro_dapm_widgets[]' array to a new per-variant specific
         array 'tx_macro_dapm_widgets_v9[]'.
      2. Move also related audio routes into new array.
      3. Store pointers to these variant-specific arrays in new variant-data
         structure 'tx_macro_data'.
      4. Add variant-specific widgets and routes in component probe, instead
         of driver probe.
      
      The change should have no real impact, except re-shuffling code and
      registering some widgets and audio routes in component probe, instead of
      driver probe.
      Signed-off-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
      Link: https://msgid.link/r/20240226115925.53953-2-krzysztof.kozlowski@linaro.orgSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      051e8872
  2. 24 Feb, 2024 1 commit
    • Mark Brown's avatar
      ALSA: cs35l56: Apply calibration from EFI · 0c4ebb28
      Mark Brown authored
      Merge series from Richard Fitzgerald <rf@opensource.cirrus.com>:
      
      Factory calibration of the speakers stores the calibration information
      into an EFI variable.
      
      This set of patches adds support for applying speaker calibration
      data from that EFI variable.
      
      The HDA patch (#5) depends on the ASoC patches #2 and #3
      0c4ebb28
  3. 23 Feb, 2024 7 commits
  4. 22 Feb, 2024 3 commits
  5. 21 Feb, 2024 3 commits
    • Krzysztof Kozlowski's avatar
      ASoC: codecs: wsa884x: Allow sharing reset GPIO · 0dae534c
      Krzysztof Kozlowski authored
      On some boards with multiple WSA8840/WSA8845 speakers, the reset
      (shutdown) GPIO is shared between two speakers.  Use the reset
      controller framework and its "reset-gpio" driver to handle this case.
      This allows bring-up and proper handling of all WSA884x speakers on
      X1E80100-CRD board.
      
      Cc: Bartosz Golaszewski <brgl@bgdev.pl>
      Cc: Sean Anderson <sean.anderson@seco.com>
      Reviewed-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
      Signed-off-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
      Link: https://msgid.link/r/20240129115216.96479-7-krzysztof.kozlowski@linaro.orgSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      0dae534c
    • Krzysztof Kozlowski's avatar
      ASoC: dt-bindings: qcom,wsa8840: Add reset-gpios for shared line · 26c8a435
      Krzysztof Kozlowski authored
      On newer Qualcomm platforms, like X1E80100-CRD, the WSA884x speakers
      share SD_N GPIOs between two speakers, thus a coordinated assertion is
      needed.  Linux supports handling shared GPIO lines through "reset-gpios"
      property, thus allow specifying either powerdown or reset GPIOs (these
      are the same).
      
      Cc: Bartosz Golaszewski <brgl@bgdev.pl>
      Cc: Sean Anderson <sean.anderson@seco.com>
      Acked-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
      Link: https://msgid.link/r/20240129115216.96479-6-krzysztof.kozlowski@linaro.orgSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      26c8a435
    • Mark Brown's avatar
      ASoC: Intel: avs: Fixes and new platforms support · b96ccdcf
      Mark Brown authored
      Merge series from Cezary Rojewski <cezary.rojewski@intel.com>:
      
      The avs-driver continues to be utilized on more recent Intel machines.
      As TGL-based (cAVS 2.5) e.g.: RPL, inherit most of the functionality
      from previous platforms:
      
      SKL <- APL <- CNL <- ICL <- TGL
      
      rather than putting everything into a single file, the platform-specific
      bits are split into cnl/icl/tgl.c files instead. Makes the division clear
      and code easier to maintain.
      
      Layout of the patchset:
      
      First are two changes combined together address the sound-clipping
      problem, present when only one stream is running - specifically one
      CAPTURE stream.
      
      Follow up is naming-scheme adjustment for some of the existing functions
      what improves code incohesiveness. As existing IPC/IRQ code operates
      solely on cAVS 1.5 architecture, it needs no abstraction. The situation
      changes when newer platforms come into the picture. Thus the next two
      patches abstract the existing IPC/IRQ handlers so that majority of the
      common code can be re-used.
      
      The ICCMAX change stands out a bit - the AudioDSP firmware loading
      procedure differs on ICL-based platforms (and onwards) and having a
      separate commit makes the situation clear to the developers who are
      going to support the solution from LTS perspective. For that reason
      I decided not to merge it into the commit introducing the icl.c file.
      b96ccdcf
  6. 20 Feb, 2024 10 commits
  7. 19 Feb, 2024 9 commits
  8. 18 Feb, 2024 5 commits