1. 30 Oct, 2020 8 commits
  2. 29 Oct, 2020 2 commits
  3. 28 Oct, 2020 2 commits
  4. 27 Oct, 2020 4 commits
    • Mark Brown's avatar
      Merge series "Add documentation and machine driver for SC7180 sound card" from... · e4c164d6
      Mark Brown authored
      Merge series "Add documentation and machine driver for SC7180 sound card" from Cheng-Yi Chiang <cychiang@chromium.org>:
      
      Note:
      - The machine driver patch is made by the collaboration of
        Cheng-Yi Chiang <cychiang@chromium.org>
        Rohit kumar <rohitkr@codeaurora.org>
        Ajit Pandey <ajitp@codeaurora.org>
        But Ajit has left codeaurora.
      
      Changes from v1 to v2:
      - Ducumentation: Addressed all suggestions from Doug.
      - Machine driver:
        - Fix comment style for license.
        - Sort includes.
        - Remove sc7180_snd_hw_params.
        - Remove sc7180_dai_init and use aux device instead for headset jack registration.
        - Statically define format for Primary MI2S.
        - Atomic is not a concern because there is mutex in card to make sure
          startup and shutdown happen sequentially.
        - Fix missing return -EINVAL in startup.
        - Use static sound card.
        - Use devm_kzalloc to avoid kfree.
      
      Changes from v2 to v3:
      - Ducumentation: Addressed suggestions from Srini.
      - Machine driver:
        - Reuse qcom_snd_parse_of to parse properties.
        - Remove playback-only and capture-only.
        - Misc fixes to address comments.
      
      Changes from v3 to v4:
      - Ducumentation: Addressed suggestions from Rob.
       - Remove definition of dai.
       - Use 'sound-dai: true' for sound-dai schema.
       - Add reg property to pass 'make dt_binding_check' check although reg is not used in the driver.
      - Machine driver:
       - Add Reviewed-by: Tzung-Bi Shih <tzungbi@google.com>
      
      Changes from v4 to v5:
      - Documentation: Addressed suggestions from Rob.
       - Add definition for "#address-cells" and "#size-cells".
       - Add additionalProperties: false
       - Add required properties.
      
      Changes from v5 to v6:
      - Documentation: Addressed suggestions from Rob.
       - Drop contains in compatible strings.
       - Only allow dai-link@[0-9]
       - Remove reg ref since it has a type definition already.
      
      Changes from v6 to v7
      - Documentation:
        - Add headset-jack and hdmi-jack to specify the codec
          responsible for jack detection.
      - HDMI codec driver:
        - Use component set_jack ops instead of exporting hdmi_codec_set_jack_detect.
      - Machine driver:
        - Removed aux device following Stephan's suggestion.
        - Use headset-jack and hdmi-jack to specify the codec
          responsible for jack detection.
        - Add support for HDMI(actually DP) playback.
      
      Changes from v7 to v8
      - Documentation:
        - Remove headset-jack and hdmi-jack.
      - Machine driver:
        - Let machine driver decide whether there is a jack on the DAI.
      
      Changes from v8 to v9
      - hdmi-codec driver:
        - Fixed the naming.
      - Machine driver:
        - Fixed unused fields.
        - Moved snd_soc_card_set_drvdata
        - Keep the naming of HDMI as dai name until v5 of lpass-hdmi patches.
      
      Changes from v9 to v10
      - Documentation:
        - Let compatible string be more specific for board configuration to allow
          for future changes.
      - Machine driver:
        - Fixed unused include and macro.
        - Add temporary macro SC7180_LPASS_DP for future change in sc7180-lpass.h.
        - Let sound card be dynamically allocated.
        - Change compatible string accordingly.
      
      Changes from v10 to v11
      - Machine driver:
        - Use temporary macro LPASS_DP_RX for future change in sc7180-lpass.h.
      
      Changes from v11 to v12
      - Documentation:
       - Change the file and title name for new compatible string google,sc7180-trogdor.
       - Change the example of model name.
      - Machine driver:
       - Use the definitaion of index LPASS_DP_RX in sc7180-lpass.h.
       - Fix for compatible string.
       - Replace a comma with semicolon.
      
      Ajit Pandey (1):
        ASoC: qcom: sc7180: Add machine driver for sound card registration
      
      Cheng-Yi Chiang (1):
        ASoC: google: dt-bindings: Add sc7180-trogdor machine bindings
      
       .../bindings/sound/google,sc7180-trogdor.yaml | 130 +++++++++
       sound/soc/qcom/Kconfig                        |  12 +
       sound/soc/qcom/Makefile                       |   2 +
       sound/soc/qcom/sc7180.c                       | 266 ++++++++++++++++++
       4 files changed, 410 insertions(+)
       create mode 100644 Documentation/devicetree/bindings/sound/google,sc7180-trogdor.yaml
       create mode 100644 sound/soc/qcom/sc7180.c
      
      --
      2.29.0.rc2.309.g374f81d7ae-goog
      e4c164d6
    • Srinivas Kandagatla's avatar
      023e1b1f
    • Ajit Pandey's avatar
      ASoC: qcom: sc7180: Add machine driver for sound card registration · 9e3ecb5b
      Ajit Pandey authored
      Add new driver to register sound card on sc7180 trogdor board and
      do the required configuration for lpass cpu dai and external codecs
      connected over MI2S interfaces.
      Signed-off-by: default avatarAjit Pandey <ajitp@codeaurora.org>
      Signed-off-by: default avatarCheng-Yi Chiang <cychiang@chromium.org>
      Reviewed-by: default avatarSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
      Link: https://lore.kernel.org/r/20201027032234.1705835-3-cychiang@chromium.orgSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      9e3ecb5b
    • Cheng-Yi Chiang's avatar
  5. 26 Oct, 2020 24 commits
    • Mark Brown's avatar
      Merge series "ASoC: SOF: cleanups for 5.10" from Kai Vehmanen <kai.vehmanen@linux.intel.com>: · 46bbf461
      Mark Brown authored
      Series with multiple code cleanups, plus one fix to remove
      unnecessary kernel warnings related to firmware loading.
      
      Bard Liao (1):
        ASoC: SOF: loader: handle all SOF_IPC_EXT types
      
      Pierre-Louis Bossart (3):
        ASoC: SOF: control: remove const in sizeof()
        ASoC: SOF: topology: remove const in sizeof()
        ASoC: SOF: sof-audio: remove goto used for force-nocodec support
      
       sound/soc/sof/control.c   | 20 ++++++++++----------
       sound/soc/sof/loader.c    |  5 +++++
       sound/soc/sof/sof-audio.c | 10 +++-------
       sound/soc/sof/topology.c  |  2 +-
       4 files changed, 19 insertions(+), 18 deletions(-)
      
      --
      2.27.0
      46bbf461
    • Mark Brown's avatar
      Merge series "DAI driver for new XCVR IP" from "Viorel Suman (OSS)" <viorel.suman@oss.nxp.com> · 7a25748b
      Mark Brown authored
      Viorel Suman <viorel.suman@nxp.com>:
      
      From: Viorel Suman <viorel.suman@nxp.com>
      
      DAI driver for new XCVR IP found in i.MX8MP.
      
      Viorel Suman (2):
        ASoC: fsl_xcvr: Add XCVR ASoC CPU DAI driver
        ASoC: dt-bindings: fsl_xcvr: Add document for XCVR
      
      Changes since v1:
       - improved 6- and 12-ch layout comment
       - used regmap polling function, improved
         clocks handling in runtime_resume
       - added FW size check in FW load function,
         improved IRQ handler, removed dummy IRQ handlers
       - fixed yaml file
      
      Changes since v2:
       - used devm_reset_control_get_exclusive instead of of_reset_control_get
       - moved reset_control_assert into runtime_suspend
      
      Changes since v3:
       - removed "firmware-name" DTS property from both documentation and
         source code by porting it into SoC specific 'compatible' data structure.
      
       .../devicetree/bindings/sound/fsl,xcvr.yaml   |  104 ++
       sound/soc/fsl/Kconfig                         |   10 +
       sound/soc/fsl/Makefile                        |    2 +
       sound/soc/fsl/fsl_xcvr.c                      | 1359 +++++++++++++++++
       sound/soc/fsl/fsl_xcvr.h                      |  266 ++++
       5 files changed, 1741 insertions(+)
       create mode 100644 Documentation/devicetree/bindings/sound/fsl,xcvr.yaml
       create mode 100644 sound/soc/fsl/fsl_xcvr.c
       create mode 100644 sound/soc/fsl/fsl_xcvr.h
      
      --
      2.26.2
      7a25748b
    • Mark Brown's avatar
      Merge series "ASoC: merge soc_pcm_hw_param() rollback and soc_pcm_hw_free()"... · 0d8902d5
      Mark Brown authored
      Merge series "ASoC: merge soc_pcm_hw_param() rollback and soc_pcm_hw_free()" from Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>:
      
      Hi Mark
      
      soc_pcm_hw_params() does rollback when failed (A),
      but, it is almost same as soc_pcm_hw_free().
      
      	static int soc_pcm_hw_params(xxx)
      	{
      		...
      		if (ret < 0)
      			goto xxx_err;
      		...
      		return ret;
      
       ^	component_err:
       |		...
       |	interface_err:
      (A)		...
       |	codec_err:
       |		...
       v		return ret;
      	}
      
      This kind of duplicated code can be a hotbed of bugs,
      thus, this patch-set share soc_pcm_hw_free() and rollback.
      
      Kuninori Morimoto (6):
        ASoC: soc.h: remove for_each_rtd_dais_rollback()
        ASoC: soc-pcm: move soc_pcm_hw_free() next to soc_pcm_hw_params()
        ASoC: soc-link: add mark for snd_soc_link_hw_params/free()
        ASoC: soc-component: add mark for snd_soc_pcm_component_hw_params/free()
        ASoC: soc-dai: add mark for snd_soc_dai_hw_params/free()
        ASoC: soc-pcm: add soc_pcm_hw_clean() and call it from soc_pcm_hw_params/free()
      
       include/sound/soc-component.h |   6 +-
       include/sound/soc-dai.h       |   4 +-
       include/sound/soc-link.h      |   3 +-
       include/sound/soc.h           |   7 +-
       sound/soc/soc-component.c     |  19 ++---
       sound/soc/soc-dai.c           |  13 +++-
       sound/soc/soc-dapm.c          |   4 +-
       sound/soc/soc-link.c          |  12 +++-
       sound/soc/soc-pcm.c           | 131 ++++++++++++++--------------------
       9 files changed, 97 insertions(+), 102 deletions(-)
      
      --
      2.25.1
      0d8902d5
    • Mark Brown's avatar
      Merge series "ASoC: qcom: add support for QRB5165 RB5 machine" from Srinivas... · 155eacf8
      Mark Brown authored
      Merge series "ASoC: qcom: add support for QRB5165 RB5 machine" from Srinivas Kandagatla <srinivas.kandagatla@linaro.org>:
      
      This patchset adds support to Qualcomm Robotics RB5 Development Kit based on
      QRB5165 Robotics SoC. This board has 2 WSA881X smart speakers with onboard
      DMIC connected to internal LPASS codec via WSA and VA macros respectively.
      
      Srinivas Kandagatla (2):
        ASoC: qcom: dt-bindings: Add SM8250 sound card bindings
        ASoC: qcom: sm8250: add sound card qrb5165-rb5 support
      
       .../bindings/sound/qcom,sm8250.yaml           | 161 +++++++++++++
       sound/soc/qcom/Kconfig                        |  11 +
       sound/soc/qcom/Makefile                       |   2 +
       sound/soc/qcom/sm8250.c                       | 228 ++++++++++++++++++
       4 files changed, 402 insertions(+)
       create mode 100644 Documentation/devicetree/bindings/sound/qcom,sm8250.yaml
       create mode 100644 sound/soc/qcom/sm8250.c
      
      --
      2.21.0
      155eacf8
    • Mark Brown's avatar
      Merge series "use semicolons rather than commas to separate statements" from... · 9c9c0076
      Mark Brown authored
      Merge series "use semicolons rather than commas to separate statements" from Julia Lawall <Julia.Lawall@inria.fr>:
      
      These patches replace commas by semicolons.  This was done using the
      Coccinelle semantic patch (http://coccinelle.lip6.fr/) shown below.
      
      This semantic patch ensures that commas inside for loop headers will not be
      transformed.  It also doesn't touch macro definitions.
      
      Coccinelle ensures that braces are added as needed when a single-statement
      branch turns into a multi-statement one.
      
      This semantic patch has a few false positives, for variable delcarations
      such as:
      
      LIST_HEAD(x), *y;
      
      The semantic patch could be improved to avoid these, but for the moment
      they have been removed manually (2 occurrences).
      
      // <smpl>
      @initialize:ocaml@
      @@
      
      let infunction p =
        (* avoid macros *)
        (List.hd p).current_element <> "something_else"
      
      let combined p1 p2 =
        (List.hd p1).line_end = (List.hd p2).line ||
        (((List.hd p1).line_end < (List.hd p2).line) &&
         ((List.hd p1).col < (List.hd p2).col))
      
      @bad@
      statement S;
      declaration d;
      position p;
      @@
      
      S@p
      d
      
      // special cases where newlines are needed (hope for no more than 5)
      @@
      expression e1,e2;
      statement S;
      position p != bad.p;
      position p1;
      position p2 :
          script:ocaml(p1) { infunction p1 && combined p1 p2 };
      @@
      
      - e1@p1,@S@p e2@p2;
      + e1; e2;
      
      @@
      expression e1,e2;
      statement S;
      position p != bad.p;
      position p1;
      position p2 :
          script:ocaml(p1) { infunction p1 && combined p1 p2 };
      @@
      
      - e1@p1,@S@p e2@p2;
      + e1; e2;
      
      @@
      expression e1,e2;
      statement S;
      position p != bad.p;
      position p1;
      position p2 :
          script:ocaml(p1) { infunction p1 && combined p1 p2 };
      @@
      
      - e1@p1,@S@p e2@p2;
      + e1; e2;
      
      @@
      expression e1,e2;
      statement S;
      position p != bad.p;
      position p1;
      position p2 :
          script:ocaml(p1) { infunction p1 && combined p1 p2 };
      @@
      
      - e1@p1,@S@p e2@p2;
      + e1; e2;
      
      @@
      expression e1,e2;
      statement S;
      position p != bad.p;
      position p1;
      position p2 :
          script:ocaml(p1) { infunction p1 && combined p1 p2 };
      @@
      
      - e1@p1,@S@p e2@p2;
      + e1; e2;
      
      @r@
      expression e1,e2;
      statement S;
      position p != bad.p;
      @@
      
      e1 ,@S@p e2;
      
      @@
      expression e1,e2;
      position p1;
      position p2 :
          script:ocaml(p1) { infunction p1 && not(combined p1 p2) };
      statement S;
      position r.p;
      @@
      
      e1@p1
      -,@S@p
      +;
      e2@p2
      ... when any
      // </smpl>
      
      ---
      
       sound/firewire/fireworks/fireworks_pcm.c |    2 +-
       sound/pci/hda/patch_ca0132.c             |    2 +-
       sound/pci/hda/patch_hdmi.c               |    2 +-
       sound/soc/codecs/madera.c                |    4 ++--
       sound/soc/codecs/wm8350.c                |    3 ++-
       sound/soc/intel/boards/bytcr_rt5651.c    |    2 +-
       sound/soc/samsung/snow.c                 |    2 +-
       sound/soc/soc-dapm.c                     |    2 +-
       sound/soc/sof/intel/hda-dsp.c            |    2 +-
       9 files changed, 11 insertions(+), 10 deletions(-)
      9c9c0076
    • Mark Brown's avatar
      Merge series "ASoC: sun8i-codec: support for AIF2 and AIF3" from Samuel... · d6981c3b
      Mark Brown authored
      Merge series "ASoC: sun8i-codec: support for AIF2 and AIF3" from Samuel Holland <samuel@sholland.org>:
      
      This series adds support the other two AIFs present in the sun8i codec,
      which can be used for codec2codec DAI links.
      
      This series first fills out the DAI driver, removing assumptions that
      were made for AIF1 (16 bits, 2 channels, certain clock inversions). Some
      new logic is required to handle 3 DAIs and the ADC/DAC sharing the same
      clock. Finally, it adds the new DAIs, and hooks them up with DAPM
      widgets and routes per the hardware topology.
      
      To minimize the number of patches in this series, related device tree
      patches (increasing #sound-dai-cells, adding new DAI links) will be sent
      separately.
      
      Changes from v1:
        - Patches 1-8 from v1 (DAPM changes) were merged
        - Prefixed AIF constants with "SUN8I_CODEC_" [1, 7, 10, 16, 17]
        - Renamed variables in sun8i_codec_set_fmt for clarity [3]
        - Update sysclk->sysclk_rate if later calls to hw_params change the
          sample rate (thanks Chen-Yu for reminding me of this) [11]
        - Select COMMON_CLK for clk_set_rate_exclusive [12]
        - Add comments and hopefully clarify the clock protection logic [12]
        - Make the error message more concise and put it on one line [12]
        - Drop the "reg" variable holding SUN8I_AIF_CLK_CTRL(dai->id) [15]
        - Rename "div_reg" to "clk_reg" and adjust comments for clarity [17]
        - Improve the AIF2/AIF3 rate mismatch error message [17]
        - Minor grammar/wording fixes in commit messages [2, 4, 7, 8, 16, 17]
        - Added Maxime's Acked-by: [1-2, 4-9, 11, 13-14, 16]
      
      Samuel Holland (17):
        ASoC: sun8i-codec: Prepare to extend the DAI driver
        ASoC: sun8i-codec: Program DAI format before clock inversion
        ASoC: sun8i-codec: Enable all supported clock inversions
        ASoC: sun8i-codec: Use the provided word size
        ASoC: sun8i-codec: Round up the LRCK divisor
        ASoC: sun8i-codec: Correct the BCLK divisor calculation
        ASoC: sun8i-codec: Support the TDM slot binding
        ASoC: sun8i-codec: Enforce symmetric DAI parameters
        ASoC: sun8i-codec: Enable all supported sample rates
        ASoC: sun8i-codec: Automatically set the system sample rate
        ASoC: sun8i-codec: Constrain to compatible sample rates
        ASoC: sun8i-codec: Protect the clock rate while streams are open
        ASoC: sun8i-codec: Require an exact BCLK divisor match
        ASoC: sun8i-codec: Enable all supported PCM formats
        ASoC: sun8i-codec: Generalize AIF clock control
        ASoC: sun8i-codec: Add the AIF2 DAI, widgets, and routes
        ASoC: sun8i-codec: Add the AIF3 DAI, widgets, and routes
      
       sound/soc/sunxi/Kconfig       |   1 +
       sound/soc/sunxi/sun8i-codec.c | 834 ++++++++++++++++++++++++++++------
       2 files changed, 699 insertions(+), 136 deletions(-)
      
      --
      2.26.2
      d6981c3b
    • Mark Brown's avatar
      Merge series "dt-bindings: stm32: convert audio dfsdm to json-schema" from... · 81437cc3
      Mark Brown authored
      Merge series "dt-bindings: stm32: convert audio dfsdm to json-schema" from Olivier Moysan <olivier.moysan@st.com>:
      
      Some audio properties documented in st,stm32-adfsdm.txt are already documented
      in Documentation/devicetree/bindings/iio/adc/st,stm32-dfsdm-adc.yaml bindings.
      Move remaining properties from st,stm32-adfsdm.txt to st,stm32-dfsdm-adc.yaml,
      and remove st,stm32-adfsdm.txt.
      
      Changes in v2:
      - Complete st,stm32-dfsdm-adc.yaml rather than converting st,stm32-adfsdm.txt
      
      Olivier Moysan (2):
        dt-bindings: stm32: dfsdm: update audio properties
        dt-bindings: stm32: dfsdm: remove stm32-adfsdm.txt binding
      
       .../bindings/iio/adc/st,stm32-dfsdm-adc.yaml  |  7 ++-
       .../bindings/sound/st,stm32-adfsdm.txt        | 63 -------------------
       2 files changed, 5 insertions(+), 65 deletions(-)
       delete mode 100644 Documentation/devicetree/bindings/sound/st,stm32-adfsdm.txt
      
      --
      2.17.1
      81437cc3
    • Shengjiu Wang's avatar
      ASoC: fsl_spdif: Add support for higher sample rates · 1bfa3eaa
      Shengjiu Wang authored
      Add 88200Hz and 176400Hz sample rates support for TX.
      Add 88200Hz, 176400Hz, 192000Hz sample rates support for RX.
      Signed-off-by: default avatarViorel Suman <viorel.suman@nxp.com>
      Signed-off-by: default avatarShengjiu Wang <shengjiu.wang@nxp.com>
      Acked-by: default avatarNicolin Chen <nicoleotsuka@gmail.com>
      Reviewed-by: default avatarDaniel Baluta <daniel.baluta@nxp.com>
      Link: https://lore.kernel.org/r/1602557360-18795-1-git-send-email-shengjiu.wang@nxp.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      1bfa3eaa
    • Shengjiu Wang's avatar
      ASoC: fsl_spdif: Add support for i.MX8QM platform · 516232e3
      Shengjiu Wang authored
      On i.MX8QM, there are separate interrupts for TX and RX.
      
      As the EDMA can't be configured to swing back to first FIFO
      after writing the second FIFO, so we need to force the burst
      size to be 2 on i.MX8QM. And EDMA don't support to shift
      the data from S24_LE to S16_LE, so the supported TX format
      is also different on i.MX8QM.
      Signed-off-by: default avatarShengjiu Wang <shengjiu.wang@nxp.com>
      Acked-by: default avatarNicolin Chen <nicoleotsuka@gmail.com>
      Link: https://lore.kernel.org/r/1602739728-4433-2-git-send-email-shengjiu.wang@nxp.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      516232e3
    • Shengjiu Wang's avatar
      ASoC: dt-bindings: fsl_spdif: Add new compatible string for i.MX8QM · 87b2fc11
      Shengjiu Wang authored
      Add new compatible string "fsl,imx8qm-spdif" for supporting spdif
      module on i.MX8QM.
      Signed-off-by: default avatarShengjiu Wang <shengjiu.wang@nxp.com>
      Acked-by: default avatarRob Herring <robh@kernel.org>
      Link: https://lore.kernel.org/r/1602739728-4433-1-git-send-email-shengjiu.wang@nxp.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      87b2fc11
    • Vijendar Mukunda's avatar
      ASoC: amd: support other audio modes for raven · efb38304
      Vijendar Mukunda authored
      ACP supports different audio configurations other than I2S.
      This patch will fix acp driver probe failure for other audio
      configurations.
      Tested-by: default avatarPrike Liang <Prike.Liang@amd.com>
      Reviewed-by: default avatarPrike Liang <Prike.Liang@amd.com>
      Acked-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarVijendar Mukunda <Vijendar.Mukunda@amd.com>
      Link: https://lore.kernel.org/r/1603476441-3506-1-git-send-email-Vijendar.Mukunda@amd.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      efb38304
    • Richard Fitzgerald's avatar
      ASoC: wm5102: Use get_unaligned_be16() for dac_comp_coeff · 79405e3e
      Richard Fitzgerald authored
      Replace the two-step copy-and-convert in
      wm5102_out_comp_coeff_put() with get_unaligned_be16(). Apart from
      looking nicer, it avoids this sparse warning:
      
      wm5102.c:687:35: sparse: sparse: cast to restricted __be16
      Signed-off-by: default avatarRichard Fitzgerald <rf@opensource.cirrus.com>
      Link: https://lore.kernel.org/r/20201015102703.24622-1-rf@opensource.cirrus.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      79405e3e
    • Olivier Moysan's avatar
      ASoC: dt-bindings: stm32: convert sai to json-schema · 49491418
      Olivier Moysan authored
      Convert the STM32 SAI bindings to DT schema format using json-schema.
      Signed-off-by: default avatarOlivier Moysan <olivier.moysan@st.com>
      Reviewed-by: default avatarRob Herring <robh@kernel.org>
      Link: https://lore.kernel.org/r/20201009141051.27365-1-olivier.moysan@st.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      49491418
    • Alexandru Ardelean's avatar
      ASoC: adau1977: remove platform data and move micbias bindings include · ab589bac
      Alexandru Ardelean authored
      The change removes the platform_data include/definition. It only contains
      some values for the MICBIAS.
      These are moved into 'dt-bindings/sound/adi,adau1977.h' so that they can be
      used inside device-trees. When moving then, they need to be converted to
      pre-compiler defines, so that the DT compiler can understand them.
      
      The driver then, also needs to include the new
      'dt-bindings/sound/adi,adau1977.h' file.
      Signed-off-by: default avatarAlexandru Ardelean <alexandru.ardelean@analog.com>
      Link: https://lore.kernel.org/r/20201019105313.24862-1-alexandru.ardelean@analog.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      ab589bac
    • Codrin Ciubotariu's avatar
      ASoC: pcm5102a: Make codec selectable · 76b5f68b
      Codrin Ciubotariu authored
      The TI PCM5102A codec driver can be used with the generic sound card
      drivers, so it should be selectable. For example, with the addition
      of #sound-dai-cells = <0> property in DT, it can be used with simple/graph
      card drivers.
      Signed-off-by: default avatarCodrin Ciubotariu <codrin.ciubotariu@microchip.com>
      Link: https://lore.kernel.org/r/20201012141911.3150996-1-codrin.ciubotariu@microchip.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      76b5f68b
    • Lars-Peter Clausen's avatar
      ASoC: jz4740-i2s: Remove manual DMA peripheral ID assignment · 81dde99f
      Lars-Peter Clausen authored
      All platforms that use the jz4740-i2s driver have been switched to
      devicetree for a while now and the assignment of the DMA peripheral ID
      is done in the devicetree.
      
      It is no longer necessary to manually assign the peripheral ID in the
      driver, so remove that. The DMA driver does not even look at the value
      assigned in the driver anymore and always uses the value provided by the
      devicetree.
      Signed-off-by: default avatarLars-Peter Clausen <lars@metafoo.de>
      Reviewed-by: default avatarPaul Cercueil <paul@crapouillou.net>
      Link: https://lore.kernel.org/r/20201023092346.5777-1-lars@metafoo.deSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      81dde99f
    • Srinivas Kandagatla's avatar
      ASoC: qcom: sm8250: add sound card qrb5165-rb5 support · aa2e2785
      Srinivas Kandagatla authored
      Add support to Qualcomm Robotics RB5 Development Kit based on
      QRB5165 Robotics SoC. This board has 2 WSA881X smart speakers
      with onboard DMIC connected to internal LPASS codec via WSA
      and VA macros respectively.
      Signed-off-by: default avatarSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
      Link: https://lore.kernel.org/r/20201026170947.10567-3-srinivas.kandagatla@linaro.orgSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      aa2e2785
    • Srinivas Kandagatla's avatar
      ASoC: qcom: dt-bindings: Add SM8250 sound card bindings · 765c3759
      Srinivas Kandagatla authored
      This patch adds bindings required for SM8250 based soundcards
      for example Qualcomm Robotics RB5 Development Kit which makes
      use of ADSP and Internal LPASS codec.
      Signed-off-by: default avatarSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
      Link: https://lore.kernel.org/r/20201026170947.10567-2-srinivas.kandagatla@linaro.orgSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      765c3759
    • Olivier Moysan's avatar
      ASoC: dt-bindings: stm32: dfsdm: remove stm32-adfsdm.txt binding · ea865073
      Olivier Moysan authored
      Device tree audio configuration for STM32 DFSDM is already
      covered in the following binding:
      Documentation/devicetree/bindings/iio/adc/st,stm32-dfsdm-adc.yaml
      Remove stm32-adfsdm.txt obsolete binding.
      Signed-off-by: default avatarOlivier Moysan <olivier.moysan@st.com>
      Reviewed-by: default avatarRob Herring <robh@kernel.org>
      Link: https://lore.kernel.org/r/20201020155709.2621-3-olivier.moysan@st.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      ea865073
    • Olivier Moysan's avatar
      dt-bindings: stm32: dfsdm: update audio properties · f24fd10b
      Olivier Moysan authored
      - Add missing compatible property in audio node.
      - Remove obsolete "st,stm32-dfsdm-pdm" compatible.
      - Remove useless comment in adc io-channels description.
      Signed-off-by: default avatarOlivier Moysan <olivier.moysan@st.com>
      Reviewed-by: default avatarRob Herring <robh@kernel.org>
      Link: https://lore.kernel.org/r/20201020155709.2621-2-olivier.moysan@st.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      f24fd10b
    • Kuninori Morimoto's avatar
      ASoC: soc-pcm: add soc_pcm_hw_clean() and call it from soc_pcm_hw_params/free() · 4662c596
      Kuninori Morimoto authored
      soc_pcm_hw_params() does rollback when failed (A),
      but, it is almost same as soc_pcm_hw_free().
      
      	static int soc_pcm_hw_params(xxx)
      	{
      		...
      		if (ret < 0)
      			goto xxx_err;
      		...
      		return ret;
      
       ^	component_err:
       |		...
       |	interface_err:
      (A)		...
       |	codec_err:
       |		...
       v		return ret;
      	}
      
      The difference is
      soc_pcm_hw_free() is for all dai/component/substream,
      rollback          is for succeeded part only.
      
      This kind of duplicated code can be a hotbed of bugs,
      thus, we want to share soc_pcm_hw_free() and rollback.
      
      Now, soc_pcm_hw_params/free() are handling
      	1) snd_soc_link_hw_params/free()
      	2) snd_soc_pcm_component_hw_params/free()
      	3) snd_soc_dai_hw_params/free()
      
      Now, 1) to 3) are handled.
      This patch adds new soc_pcm_hw_clean() and call it from
      soc_pcm_hw_params() as rollback, and from soc_pcm_hw_free() as
      normal close handler.
      
      Other difference is that soc_pcm_hw_free() handles digital mute
      if it was last user. Rollback also handles it by this patch.
      Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Link: https://lore.kernel.org/r/87h7rhgqab.wl-kuninori.morimoto.gx@renesas.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      4662c596
    • Kuninori Morimoto's avatar
      ASoC: soc-dai: add mark for snd_soc_dai_hw_params/free() · c304c9ac
      Kuninori Morimoto authored
      soc_pcm_hw_params() does rollback when failed (A),
      but, it is almost same as soc_pcm_hw_free().
      
      	static int soc_pcm_hw_params(xxx)
      	{
      		...
      		if (ret < 0)
      			goto xxx_err;
      		...
      		return ret;
      
       ^	component_err:
       |		...
       |	interface_err:
      (A)		...
       |	codec_err:
       |		...
       v		return ret;
      	}
      
      The difference is
      soc_pcm_hw_free() is for all dai/component/substream,
      rollback          is for succeeded part only.
      
      This kind of duplicated code can be a hotbed of bugs,
      thus, we want to share soc_pcm_hw_free() and rollback.
      
      Now, soc_pcm_hw_params/free() are handling
      	1) snd_soc_link_hw_params/free()
      	2) snd_soc_pcm_component_hw_params/free()
      =>	3) snd_soc_dai_hw_params/free()
      
      This patch is for 3) snd_soc_dai_hw_params/free().
      
      The idea of having bit-flag or counter is not enough for this purpose.
      For example if one DAI is used for 2xPlaybacks for some reasons,
      and if 1st Playback was succeeded but 2nd Playback was failed,
      2nd Playback rollback doesn't need to call shutdown.
      But it has succeeded bit-flag or counter via 1st Playback,
      thus, 2nd Playback rollback will call unneeded shutdown.
      And 1st Playback's necessary shutdown will not be called,
      because bit-flag or counter was cleared by wrong 2nd Playback rollback.
      
      To avoid such case, this patch marks substream pointer when hw_params() was
      succeeded. If rollback needed, it will check rollback flag and marked
      substream pointer.
      
      One note here is that it cares *previous* hw_params() only now,
      but we might want to check *whole* marked substream in the future.
      This patch is using macro named "push/pop", so that it can be easily
      update.
      Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Link: https://lore.kernel.org/r/87imbxgqai.wl-kuninori.morimoto.gx@renesas.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      c304c9ac
    • Kuninori Morimoto's avatar
      ASoC: soc-component: add mark for snd_soc_pcm_component_hw_params/free() · 3a36a64a
      Kuninori Morimoto authored
      soc_pcm_hw_params() does rollback when failed (A),
      but, it is almost same as soc_pcm_hw_free().
      
      	static int soc_pcm_hw_params(xxx)
      	{
      		...
      		if (ret < 0)
      			goto xxx_err;
      		...
      		return ret;
      
       ^	component_err:
       |		...
       |	interface_err:
      (A)		...
       |	codec_err:
       |		...
       v		return ret;
      	}
      
      The difference is
      soc_pcm_hw_free() is for all dai/component/substream,
      rollback          is for succeeded part only.
      
      This kind of duplicated code can be a hotbed of bugs,
      thus, we want to share soc_pcm_hw_free() and rollback.
      
      Now, soc_pcm_hw_params/free() are handling
      	1) snd_soc_link_hw_params/free()
      =>	2) snd_soc_pcm_component_hw_params/free()
      	3) snd_soc_dai_hw_params/free()
      
      This patch is for 2) snd_soc_pcm_component_hw_params/free().
      
      The idea of having bit-flag or counter is not enough for this purpose.
      For example if one DAI is used for 2xPlaybacks for some reasons,
      and if 1st Playback was succeeded but 2nd Playback was failed,
      2nd Playback rollback doesn't need to call shutdown.
      But it has succeeded bit-flag or counter via 1st Playback,
      thus, 2nd Playback rollback will call unneeded shutdown.
      And 1st Playback's necessary shutdown will not be called,
      because bit-flag or counter was cleared by wrong 2nd Playback rollback.
      
      To avoid such case, this patch marks substream pointer when hw_params() was
      succeeded. If rollback needed, it will check rollback flag and marked
      substream pointer.
      
      One note here is that it cares *previous* hw_params() only now,
      but we might want to check *whole* marked substream in the future.
      This patch is using macro named "push/pop", so that it can be easily
      update.
      Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Link: https://lore.kernel.org/r/87k0wdgqav.wl-kuninori.morimoto.gx@renesas.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      3a36a64a
    • Kuninori Morimoto's avatar
      ASoC: soc-link: add mark for snd_soc_link_hw_params/free() · 918ad772
      Kuninori Morimoto authored
      soc_pcm_hw_params() does rollback when failed (A),
      but, it is almost same as soc_pcm_hw_free().
      
      	static int soc_pcm_hw_params(xxx)
      	{
      		...
      		if (ret < 0)
      			goto xxx_err;
      		...
      		return ret;
      
       ^	component_err:
       |		...
       |	interface_err:
      (A)		...
       |	codec_err:
       |		...
       v		return ret;
      	}
      
      The difference is
      soc_pcm_hw_free() is for all dai/component/substream,
      rollback          is for succeeded part only.
      
      This kind of duplicated code can be a hotbed of bugs,
      thus, we want to share soc_pcm_hw_free() and rollback.
      
      Now, soc_pcm_hw_params/free() are handling
      =>	1) snd_soc_link_hw_params/free()
      	2) snd_soc_pcm_component_hw_params/free()
      	3) snd_soc_dai_hw_params/free()
      
      This patch is for 1) snd_soc_link_hw_params/free().
      
      The idea of having bit-flag or counter is not enough for this purpose.
      For example if one DAI is used for 2xPlaybacks for some reasons,
      and if 1st Playback was succeeded but 2nd Playback was failed,
      2nd Playback rollback doesn't need to call shutdown.
      But it has succeeded bit-flag or counter via 1st Playback,
      thus, 2nd Playback rollback will call unneeded shutdown.
      And 1st Playback's necessary shutdown will not be called,
      because bit-flag or counter was cleared by wrong 2nd Playback rollback.
      
      To avoid such case, this patch marks substream pointer when hw_params() was
      succeeded. If rollback needed, it will check rollback flag and marked
      substream pointer.
      
      One note here ist that it cares *previous* hw_params() only now,
      but we might want to check *whole* marked substream in the future.
      This patch is using macro named "push/pop", so that it can be easily
      update.
      Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Link: https://lore.kernel.org/r/87lfgtgqba.wl-kuninori.morimoto.gx@renesas.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      918ad772