Skip to content
  1. Nov 05, 2020
  2. Nov 03, 2020
  3. Nov 02, 2020
  4. Oct 31, 2020
  5. Oct 30, 2020
  6. Oct 29, 2020
  7. Oct 28, 2020
    • Srinivas Kandagatla's avatar
      ASoC: qcom: sm8250: Fix array out of bounds access · 7c91d020
      Srinivas Kandagatla authored
      Static analysis Coverity had detected a potential array out-of-bounds
      write issue due to the fact that MAX AFE port Id was set to 16 instead
      of using AFE_PORT_MAX macro.
      
      Fix this by properly using AFE_PORT_MAX macro.
      
      Fixes: aa2e2785
      
       ("ASoC: qcom: sm8250: add sound card qrb5165-rb5 support")
      Reported-by: default avatarColin Ian King <colin.king@canonical.com>
      Signed-off-by: default avatarSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
      Reviewed-by: default avatarColin Ian King <colin.king@canonical.com>
      Link: https://lore.kernel.org/r/20201028142001.22431-1-srinivas.kandagatla@linaro.org
      
      
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      7c91d020
    • 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: default avatarTzung-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
  8. Oct 27, 2020
    • 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.org
      
      
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      9e3ecb5b
    • Cheng-Yi Chiang's avatar
    • 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