1. 26 Feb, 2024 3 commits
    • Mark Brown's avatar
      ASoC: codecs: Simplify mclk initialization · 306904db
      Mark Brown authored
      Merge series from Cezary Rojewski <cezary.rojewski@intel.com>:
      
      The patchset may not cover all codecs found in the codecs/ directory -
      noticed a possible improvement and grepped for similar pattern across C
      files found in the directory. Those addressed here seem pretty
      straightforward.
      
      Most of clk_xxx() functions do check if provided clk-pointer is
      non-NULL. These do not check if the pointer is an error-pointer.
      Providing such to a clk_xxx() results in a panic.
      
      By utilizing _optional() variant of devm_clk_get() the driver code is
      both simplified and more robust. There is no need to remember about
      IS_ERR(clk) checks each time mclk is accessed.
      306904db
    • 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 9 commits
  6. 20 Feb, 2024 10 commits
  7. 19 Feb, 2024 7 commits