Commit 833477fc authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull sound updates from Takashi Iwai:
 "The majority of changes are ASoC drivers (SOF, Intel, AMD, Mediatek,
  Qualcomm, TI, Apple Silicon, etc), while we see a few small fixes in
  ALSA / ASoC core side, too.

  Here are highlights:

  Core:
   - A new string helper parse_int_array_user() and cleanups with it
   - Continued cleanup of memory allocation helpers
   - PCM core optimization and hardening
   - Continued ASoC core code cleanups

  ASoC:
   - Improvements to the SOF IPC4 code, especially around trace
   - Support for AMD Rembrant DSPs, AMD Pink Sardine ACP 6.2, Apple
     Silicon systems, Everest ES8326, Intel Sky Lake and Kaby Lake,
     Mediatek MT8186 support, NXP i.MX8ULP DSPs, Qualcomm SC8280XP,
     SM8250 and SM8450 and Texas Instruments SRC4392

  HD- and USB-audio:
   - Cleanups for unification of hda-ext bus
   - HD-audio HDMI codec driver cleanups
   - Continued endpoint management fixes for USB-audio
   - New quirks as usual"

* tag 'sound-6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (422 commits)
  ALSA: hda: Fix position reporting on Poulsbo
  ALSA: hda/hdmi: Don't skip notification handling during PM operation
  ASoC: rockchip: i2s: use regmap_read_poll_timeout_atomic to poll I2S_CLR
  ASoC: dt-bindings: Document audio OF graph dai-tdm-slot-num dai-tdm-slot-width props
  ASoC: qcom: fix unmet direct dependencies for SND_SOC_QDSP6
  ALSA: usb-audio: Fix potential memory leaks
  ALSA: usb-audio: Fix NULL dererence at error path
  ASoC: mediatek: mt8192-mt6359: Set the driver name for the card
  ALSA: hda/realtek: More robust component matching for CS35L41
  ASoC: Intel: sof_rt5682: remove SOF_RT1015_SPEAKER_AMP_100FS flag
  ASoC: nau8825: Add TDM support
  ASoC: core: clarify the driver name initialization
  ASoC: mt6660: Fix PM disable depth imbalance in mt6660_i2c_probe
  ASoC: wm5102: Fix PM disable depth imbalance in wm5102_probe
  ASoC: wm5110: Fix PM disable depth imbalance in wm5110_probe
  ASoC: wm8997: Fix PM disable depth imbalance in wm8997_probe
  ASoC: wcd-mbhc-v2: Revert "ASoC: wcd-mbhc-v2: use pm_runtime_resume_and_get()"
  ASoC: mediatek: mt8186: Fix spelling mistake "slect" -> "select"
  ALSA: hda/realtek: Add quirk for HP Zbook Firefly 14 G9 model
  ALSA: asihpi - Remove unused struct hpi_subsys_response
  ...
parents 7e6739b9 86a4d29e
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ properties:
      - fsl,imx8qxp-dsp
      - fsl,imx8qm-dsp
      - fsl,imx8mp-dsp
      - fsl,imx8ulp-dsp
      - fsl,imx8qxp-hifi4
      - fsl,imx8qm-hifi4
      - fsl,imx8mp-hifi4
+103 −9
Original line number Diff line number Diff line
@@ -20,6 +20,9 @@ properties:
      - qcom,apr-v2
      - qcom,gpr

  power-domains:
    maxItems: 1

  qcom,apr-domain:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [1, 2, 3, 4, 5, 6, 7]
@@ -52,6 +55,26 @@ properties:
        2 = Audio DSP Domain
        3 = Application Processor Domain

  qcom,glink-channels:
    $ref: /schemas/types.yaml#/definitions/string-array
    description: Channel name used for the communication
    items:
      - const: apr_audio_svc

  qcom,intents:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    description:
      List of (size, amount) pairs describing what intents should be
      preallocated for this virtual channel. This can be used to tweak the
      default intents available for the channel to meet expectations of the
      remote.

  qcom,smd-channels:
    $ref: /schemas/types.yaml#/definitions/string-array
    description: Channel name used for the communication
    items:
      - const: apr_audio_svc

  '#address-cells':
    const: 1

@@ -97,6 +120,26 @@ patternProperties:
            3 = AMDB Service.
            4 = Voice processing manager.

      clock-controller:
        $ref: /schemas/sound/qcom,q6dsp-lpass-clocks.yaml#
        description: Qualcomm DSP LPASS clock controller
        unevaluatedProperties: false

      dais:
        type: object
        oneOf:
          - $ref: /schemas/sound/qcom,q6apm-dai.yaml#
          - $ref: /schemas/sound/qcom,q6dsp-lpass-ports.yaml#
          - $ref: /schemas/sound/qcom,q6asm-dais.yaml#
        unevaluatedProperties: false
        description: Qualcomm DSP audio ports

      routing:
        type: object
        $ref: /schemas/sound/qcom,q6adm-routing.yaml#
        unevaluatedProperties: false
        description: Qualcomm DSP LPASS audio routing

      qcom,protection-domain:
        $ref: /schemas/types.yaml#/definitions/string-array
        description: protection domain service name and path for apr service
@@ -107,17 +150,44 @@ patternProperties:
          "tms/servreg", "msm/modem/wlan_pd".
          "tms/servreg", "msm/slpi/sensor_pd".

      '#address-cells':
        const: 1
    allOf:
      - if:
          properties:
            compatible:
              enum:
                - qcom,q6afe
        then:
          properties:
            dais:
              properties:
                compatible:
                  const: qcom,q6afe-dais

      '#size-cells':
        const: 0
      - if:
          properties:
            compatible:
              enum:
                - qcom,q6apm
        then:
          properties:
            dais:
              properties:
                compatible:
                  enum:
                    - qcom,q6apm-dais
                    - qcom,q6apm-lpass-dais

    patternProperties:
      "^.*@[0-9a-f]+$":
        type: object
        description:
          Service based devices like clock controllers or digital audio interfaces.
      - if:
          properties:
            compatible:
              enum:
                - qcom,q6asm
        then:
          properties:
            dais:
              properties:
                compatible:
                  const: qcom,q6asm-dais

    additionalProperties: false

@@ -125,6 +195,30 @@ required:
  - compatible
  - qcom,domain

allOf:
  - if:
      properties:
        compatible:
          enum:
            - qcom,gpr
    then:
      properties:
        power-domains: false

  - if:
      required:
        - qcom,glink-channels
    then:
      properties:
        qcom,smd-channels: false

  - if:
      required:
        - qcom,smd-channels
    then:
      properties:
        qcom,glink-channels: false

additionalProperties: false

examples:
+34 −0
Original line number Diff line number Diff line
@@ -78,6 +78,40 @@ properties:
      interleaved on a single output channel.
    type: boolean

  adi,dmon-stuck-enable:
    description:
      Enables the "data monitor stuck" feature. Once the data monitor is
      enabled, it actively monitors the selected input data (from DIN) to the
      speaker amplifier. Once a data error is detected, the data monitor
      automatically places the device into software shutdown.
    type: boolean

  adi,dmon-stuck-threshold-bits:
    description:
      Sets the threshold for the "data monitor stuck" feature, in bits.
    enum: [9, 11, 13, 15]
    default: 15

  adi,dmon-magnitude-enable:
    description:
      Enables the "data monitor magnitude" feature. Once the data monitor is
      enabled, it actively monitors the selected input data (from DIN) to the
      speaker amplifier. Once a data error is detected, the data monitor
      automatically places the device into software shutdown.
    type: boolean

  adi,dmon-magnitude-threshold-bits:
    description:
      Sets the threshold for the "data monitor magnitude" feature, in bits.
    enum: [2, 3, 4, 5]
    default: 5

  adi,dmon-duration-ms:
    description:
      Sets the duration for the "data monitor" feature, in milliseconds.
    enum: [64, 256, 1024, 4096]
    default: 64

  reset-gpios:
    maxItems: 1

+79 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/allwinner,sun50i-h6-dmic.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Allwinner H6 DMIC

maintainers:
  - Ban Tao <fengzheng923@gmail.com>

properties:
  compatible:
    const: allwinner,sun50i-h6-dmic

  "#sound-dai-cells":
    const: 0

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    items:
      - description: Bus Clock
      - description: Module Clock

  clock-names:
    items:
      - const: bus
      - const: mod

  dmas:
    items:
      - description: RX DMA Channel

  dma-names:
    items:
      - const: rx

  resets:
    maxItems: 1

required:
  - "#sound-dai-cells"
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names
  - dmas
  - dma-names
  - resets

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/interrupt-controller/irq.h>

    #include <dt-bindings/clock/sun50i-h6-ccu.h>
    #include <dt-bindings/reset/sun50i-h6-ccu.h>

    dmic: dmic@5095000 {
      #sound-dai-cells = <0>;
      compatible = "allwinner,sun50i-h6-dmic";
      reg = <0x05095000 0x400>;
      interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
      clocks = <&ccu CLK_BUS_DMIC>, <&ccu CLK_DMIC>;
      clock-names = "bus", "mod";
      dmas = <&dma 7>;
      dma-names = "rx";
      resets = <&ccu RST_BUS_DMIC>;
    };

...
+2 −0
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ properties:
patternProperties:
  "^dai-link-[0-9]+$":
    type: object
    additionalProperties: false
    description: |-
      dai-link child nodes:
        Container for dai-link level properties and the CODEC sub-nodes.
@@ -63,6 +64,7 @@ patternProperties:
    patternProperties:
      "^codec-[0-9]+$":
        type: object
        additionalProperties: false
        description: |-
          Codecs:
          dai-link representing backend links should have at least one subnode.
Loading