Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4cdd5f91 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull sound updates from Takashi Iwai:
 "Many updates in this development cycle are found in ASoC where it got
  a wide range of changes for the continued refactoring.

  Some highlights are below.

  ASoC:

   - Continued refactoring work by Morimoto-san toward the full
     componentization; the changes are seen allover the places

   - Support for force disconnecting muxes in DAPM

   - Continued development of ASoC Intel SOF stuff

   - New drivers for Cirrus Logic CS47L35, CS47L85 and CS47L90, Conexant
     CX2072X, Realtek RT1011 and RT1308

  HD-audio:

   - More fixes and adjustments for ASoC SOF HD-audio

   - Fix for resume problem on some Realtek codecs

  USB-audio:

   - A few fixes for the issues reported by syzbot USB fuzzer

   - Fix for UAC2 extension unit parser

   - Quirks for Line6 Helix, Emgaic Unitor 8

  FireWire:

   - Lots of code refactoring and fixes in most of its components"

* tag 'sound-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (626 commits)
  ALSA: firewire-lib: code refactoring for local variables
  ALSA: firewire-lib: code refactoring for post operation to data block counter
  ALSA: firewire-lib: code refactoring for error path of parser for CIP header
  ALSA: firewire-lib: fix different data block counter between probed event and transferred isochronous packet
  ALSA: firewire-lib: fix initial value of data block count for IR context without CIP_DBC_IS_END_EVENT
  ALSA: firewire-lib/fireface: fix initial value of data block counter for IR context with CIP_NO_HEADER
  ALSA: firewire-lib: fix invalid length of rx packet payload for tracepoint events
  ALSA: usb-audio: fix Line6 Helix audio format rates
  firewire-motu: fix wrong reference count for stream functionality at error path of rawmidi interface
  ALSA: firewire-digi00x: fix wrong reference count for stream functionality at error path of rawmidi interface
  ALSA: dice: fix wrong reference count for stream functionality at error path of rawmidi interface
  ALSA: oxfw: fix wrong reference count for stream functionality at error path of rawmidi interface
  ALSA: fireworks: fix wrong reference count for stream functionality at error path of rawmidi interface
  ALSA: bebob: fix wrong reference count for stream functionality at error path of rawmidi interface
  ASoC: SOF: Intel: implement runtime idle for CNL/APL
  ASoC: SOF: add runtime idle callback
  ASoC: hdac_hdmi: report codec link up/down status to bus
  ASoC: SOF: debug: fix possible memory leak in sof_dfsentry_write()
  ASoC: sunxi: sun50i-codec-analog: Add earpiece
  ASoC: rt5665: remove redundant assignment to variable idx
  ...
parents 2d41ef54 0dcb4efb
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@ Required properties:
- clock-names: must contain "mclk", which is the DCMI peripherial clock
- pinctrl: the pincontrol settings to configure muxing properly
           for pins that connect to DCMI device.
           See Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.txt.
           See Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml.
- dmas: phandle to DMA controller node,
        see Documentation/devicetree/bindings/dma/stm32-dma.txt
- dma-names: must contain "tx", which is the transmit channel from DCMI to DMA
+132 −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,sun4i-a10-i2s.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Allwinner A10 I2S Controller Device Tree Bindings

maintainers:
  - Chen-Yu Tsai <wens@csie.org>
  - Maxime Ripard <maxime.ripard@bootlin.com>

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

  compatible:
    oneOf:
      - const: allwinner,sun4i-a10-i2s
      - const: allwinner,sun6i-a31-i2s
      - const: allwinner,sun8i-a83t-i2s
      - const: allwinner,sun8i-h3-i2s
      - const: allwinner,sun50i-a64-codec-i2s
      - items:
          - const: allwinner,sun50i-a64-i2s
          - const: allwinner,sun8i-h3-i2s

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

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

  clock-names:
    items:
      - const: apb
      - const: mod

  # Even though it only applies to subschemas under the conditionals,
  # not listing them here will trigger a warning because of the
  # additionalsProperties set to false.
  dmas: true
  dma-names: true
  resets:
    maxItems: 1

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - allwinner,sun6i-a31-i2s
              - allwinner,sun8i-a83t-i2s
              - allwinner,sun8i-h3-i2s
              - allwinner,sun50i-a64-codec-i2s

    then:
      required:
        - resets

  - if:
      properties:
        compatible:
          contains:
            const: allwinner,sun8i-a83t-i2s

    then:
      properties:
        dmas:
          minItems: 1
          maxItems: 2
          items:
            - description: RX DMA Channel
            - description: TX DMA Channel
          description:
            Some controllers cannot receive but can only transmit
            data. In such a case, the RX DMA channel is to be omitted.

        dma-names:
          oneOf:
            - items:
                - const: rx
                - const: tx
            - const: tx
          description:
            Some controllers cannot receive but can only transmit
            data. In such a case, the RX name is to be omitted.

    else:
      properties:
        dmas:
          items:
            - description: RX DMA Channel
            - description: TX DMA Channel

        dma-names:
          items:
            - const: rx
            - const: tx

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

additionalProperties: false

examples:
  - |
    i2s0: i2s@1c22400 {
        #sound-dai-cells = <0>;
        compatible = "allwinner,sun4i-a10-i2s";
        reg = <0x01c22400 0x400>;
        interrupts = <0 16 4>;
        clocks = <&apb0_gates 3>, <&i2s0_clk>;
        clock-names = "apb", "mod";
        dmas = <&dma 0 3>, <&dma 0 3>;
        dma-names = "rx", "tx";
    };

...
+120 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/allwinner,sun4i-a10-spdif.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Allwinner A10 S/PDIF Controller Device Tree Bindings

maintainers:
  - Chen-Yu Tsai <wens@csie.org>
  - Liam Girdwood <lgirdwood@gmail.com>
  - Mark Brown <broonie@kernel.org>
  - Maxime Ripard <maxime.ripard@bootlin.com>

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

  compatible:
    oneOf:
      - const: allwinner,sun4i-a10-spdif
      - const: allwinner,sun6i-a31-spdif
      - const: allwinner,sun8i-h3-spdif
      - const: allwinner,sun50i-h6-spdif
      - items:
          - const: allwinner,sun8i-a83t-spdif
          - const: allwinner,sun8i-h3-spdif
      - items:
          - const: allwinner,sun50i-a64-spdif
          - const: allwinner,sun8i-h3-spdif

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

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

  clock-names:
    items:
      - const: apb
      - const: spdif

  # Even though it only applies to subschemas under the conditionals,
  # not listing them here will trigger a warning because of the
  # additionalsProperties set to false.
  dmas: true
  dma-names: true
  resets:
    maxItems: 1

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - allwinner,sun6i-a31-spdif
              - allwinner,sun8i-h3-spdif

    then:
      required:
        - resets

  - if:
      properties:
        compatible:
          contains:
            const: allwinner,sun8i-h3-spdif

    then:
      properties:
        dmas:
          description: TX DMA Channel

        dma-names:
          const: tx

    else:
      properties:
        dmas:
          items:
            - description: RX DMA Channel
            - description: TX DMA Channel

        dma-names:
          items:
            - const: rx
            - const: tx

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

additionalProperties: false

examples:
  - |
    spdif: spdif@1c21000 {
        #sound-dai-cells = <0>;
        compatible = "allwinner,sun4i-a10-spdif";
        reg = <0x01c21000 0x40>;
        interrupts = <13>;
        clocks = <&apb0_gates 1>, <&spdif_clk>;
        clock-names = "apb", "spdif";
        dmas = <&dma 0 2>, <&dma 0 2>;
        dma-names = "rx", "tx";
    };

...
+5 −1
Original line number Diff line number Diff line
@@ -15,11 +15,15 @@ Required properties:
  * "lrclk"    : sample clock
  * "lrclk_sel": sample clock input multiplexer

Example of TDMOUT_A on the A113 SoC:
Optional property:
- resets: phandle to the dedicated reset line of the tdm formatter.

Example of TDMOUT_A on the S905X2 SoC:

tdmout_a: audio-controller@500 {
	compatible = "amlogic,axg-tdmout";
	reg = <0x0 0x500 0x0 0x40>;
	resets = <&clkc_audio AUD_RESET_TDMOUT_A>;
	clocks = <&clkc_audio AUD_CLKID_TDMOUT_A>,
		 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK>,
		 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK_SEL>,
+55 −0
Original line number Diff line number Diff line
* Amlogic HDMI Tx control glue

Required properties:
- compatible: "amlogic,g12a-tohdmitx"
- reg: physical base address of the controller and length of memory
       mapped region.
- #sound-dai-cells: should be 1.

Example on the S905X2 SoC:

tohdmitx: audio-controller@744 {
	compatible = "amlogic,g12a-tohdmitx";
	reg = <0x0 0x744 0x0 0x4>;
	#sound-dai-cells = <1>;
};

Example of an 'amlogic,axg-sound-card':

sound {
	compatible = "amlogic,axg-sound-card";

[...]

	dai-link-x {
		sound-dai = <&tdmif_a>;
		dai-format = "i2s";
		dai-tdm-slot-tx-mask-0 = <1 1>;

		codec-0 {
			sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>;
		};

		codec-1 {
			sound-dai = <&external_dac>;
		};
	};

	dai-link-y {
		sound-dai = <&tdmif_c>;
		dai-format = "i2s";
		dai-tdm-slot-tx-mask-0 = <1 1>;

		codec {
			sound-dai = <&tohdmitx TOHDMITX_I2S_IN_C>;
		};
	};

	dai-link-z {
		sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;

		codec {
			sound-dai = <&hdmi_tx>;
		};
	};
};
Loading