Commit 10e2ec8e authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull sound updates from Takashi Iwai:
 "A relatively calm release at this time, and no massive code changes
  are found in the stats, while a wide range of code refactoring and
  cleanup have been done.

  Note that this update includes the tree-wide trivial changes for
  dropping the return value from ISA remove callbacks, too.

  Below lists up some highlight:

  ALSA Core:
   - Support for the software jack injection via debugfs
   - Fixes for sync_stop PCM operations

  HD-audio and USB-audio:
   - A few usual HD-audio device quirks
   - Updates for Tegra HD-audio
   - More quirks for Pioneer and other USB-audio devices
   - Stricter state checks at USB-audio disconnection

  ASoC:
   - Continued code refactoring, cleanup and fixes in ASoC core API
   - A KUnit testsuite for the topology code
   - Lots of ASoC Intel driver Realtek codec updates, quirk additions
     and fixes
   - Support for Ingenic JZ4760(B), Intel AlderLake-P, DT configured
     nVidia cards, Qualcomm lpass-rx-macro and lpass-tx-macro
   - Removal of obsolete SIRF prima/atlas, Txx9 and ZTE zx drivers

  Others:
   - Drop return value from ISA driver remove callback
   - Cleanup with DIV_ROUND_UP() macro
   - FireWire updates, HDSP output loopback support"

* tag 'sound-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (322 commits)
  ALSA: hda: intel-dsp-config: add Alder Lake support
  ASoC: soc-pcm: fix hw param limits calculation for multi-DAI
  ASoC: Intel: bytcr_rt5640: Add quirk for the Acer One S1002 tablet
  ASoC: Intel: bytcr_rt5651: Add quirk for the Jumper EZpad 7 tablet
  ASoC: Intel: bytcr_rt5640: Add quirk for the Voyo Winpad A15 tablet
  ASoC: Intel: bytcr_rt5640: Add quirk for the Estar Beauty HD MID 7316R tablet
  ASoC: soc-pcm: fix hwparams min/max init for dpcm
  ALSA: hda/realtek: Quirk for HP Spectre x360 14 amp setup
  ALSA: usb-audio: Add implicit fb quirk for BOSS GP-10
  ALSA: hda: Add another CometLake-H PCI ID
  ASoC: soc-pcm: add soc_pcm_hw_update_format()
  ASoC: soc-pcm: add soc_pcm_hw_update_chan()
  ASoC: soc-pcm: add soc_pcm_hw_update_rate()
  ASoC: wm_adsp: Remove unused control callback structure
  ASoC: SOF: relax ABI checks and avoid unnecessary warnings
  ASoC: codecs: lpass-tx-macro: add dapm widgets and route
  ASoC: codecs: lpass-tx-macro: add support for lpass tx macro
  ASoC: qcom: dt-bindings: add bindings for lpass tx macro codec
  ASoC: codecs: lpass-rx-macro: add iir widgets
  ASoC: codecs: lpass-rx-macro: add dapm widgets and route
  ...
parents de161757 c4294d7f
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -71,9 +71,6 @@ properties:
            description: CPU to Codec rate channels.
            $ref: /schemas/types.yaml#/definitions/uint32

        required:
          - remote-endpoint

  ports:
    description: multi OF-Graph subnode
    type: object
+8 −3
Original line number Diff line number Diff line
@@ -15,9 +15,14 @@ properties:

  compatible:
    oneOf:
      - const: ingenic,jz4770-codec
      - const: ingenic,jz4725b-codec
      - const: ingenic,jz4740-codec
      - enum:
          - ingenic,jz4770-codec
          - ingenic,jz4760-codec
          - ingenic,jz4725b-codec
          - ingenic,jz4740-codec
      - items:
          - const: ingenic,jz4760b-codec
          - const: ingenic,jz4760-codec

  reg:
    maxItems: 1
+13 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ properties:
    enum:
      - intel,keembay-i2s
      - intel,keembay-tdm
      - intel,keembay-hdmi-i2s

  "#sound-dai-cells":
    const: 0
@@ -45,6 +46,16 @@ properties:
      - const: osc
      - const: apb_clk

  dmas:
    items:
      - description: DMA TX channel
      - description: DMA RX channel

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

required:
  - compatible
  - "#sound-dai-cells"
@@ -70,4 +81,6 @@ examples:
         interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
         clock-names = "osc", "apb_clk";
         clocks = <&scmi_clk KEEM_BAY_PSS_AUX_I2S3>, <&scmi_clk KEEM_BAY_PSS_I2S3>;
         dmas = <&axi_dma0 29 &axi_dma0 33>;
         dma-names = "tx", "rx";
     };
+5 −0
Original line number Diff line number Diff line
@@ -23,6 +23,10 @@ properties:
    $ref: "/schemas/types.yaml#/definitions/phandle"
    description: The phandle of MT8192 ASoC platform.

  mediatek,hdmi-codec:
    $ref: "/schemas/types.yaml#/definitions/phandle"
    description: The phandle of HDMI codec.

additionalProperties: false

required:
@@ -35,6 +39,7 @@ examples:
    sound: mt8192-sound {
        compatible = "mediatek,mt8192_mt6359_rt1015_rt5682";
        mediatek,platform = <&afe>;
        mediatek,hdmi-codec = <&anx_bridge_dp>;
        pinctrl-names = "aud_clk_mosi_off",
                        "aud_clk_mosi_on";
        pinctrl-0 = <&aud_clk_mosi_off>;
+190 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/nvidia,tegra-audio-graph-card.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Audio Graph based Tegra sound card driver

description: |
  This is based on generic audio graph card driver along with additional
  customizations for Tegra platforms. It uses the same bindings with
  additional standard clock DT bindings required for Tegra.

maintainers:
  - Jon Hunter <jonathanh@nvidia.com>
  - Sameer Pujar <spujar@nvidia.com>

allOf:
  - $ref: audio-graph.yaml#

properties:
  compatible:
    enum:
      - nvidia,tegra210-audio-graph-card
      - nvidia,tegra186-audio-graph-card

  clocks:
    minItems: 2

  clock-names:
    minItems: 2
    items:
      - const: pll_a
      - const: plla_out0

  assigned-clocks:
    minItems: 1
    maxItems: 3

  assigned-clock-parents:
    minItems: 1
    maxItems: 3

  assigned-clock-rates:
    minItems: 1
    maxItems: 3

  iommus:
    maxItems: 1

required:
  - clocks
  - clock-names
  - assigned-clocks
  - assigned-clock-parents

unevaluatedProperties: false

examples:
  - |
    #include<dt-bindings/clock/tegra210-car.h>

    tegra_sound {
        compatible = "nvidia,tegra210-audio-graph-card";

        clocks = <&tegra_car TEGRA210_CLK_PLL_A>,
                 <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
        clock-names = "pll_a", "plla_out0";

        assigned-clocks = <&tegra_car TEGRA210_CLK_PLL_A>,
                          <&tegra_car TEGRA210_CLK_PLL_A_OUT0>,
                          <&tegra_car TEGRA210_CLK_EXTERN1>;
        assigned-clock-parents = <0>, <0>, <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
        assigned-clock-rates = <368640000>, <49152000>, <12288000>;

        dais = /* FE */
               <&admaif1_port>,
               /* Router */
               <&xbar_i2s1_port>,
               /* I/O DAP Ports */
               <&i2s1_port>;

        label = "jetson-tx1-ape";
    };

    // The ports are defined for AHUB and its child devices.
    ahub@702d0800 {
        compatible = "nvidia,tegra210-ahub";
        reg = <0x702d0800 0x800>;
        clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>;
        clock-names = "ahub";
        assigned-clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>;
        assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
        #address-cells = <1>;
        #size-cells = <1>;
        ranges = <0x702d0000 0x702d0000 0x0000e400>;

        ports {
            #address-cells = <1>;
            #size-cells = <0>;

            port@0 {
                reg = <0x0>;
                xbar_admaif1_ep: endpoint {
                    remote-endpoint = <&admaif1_ep>;
                };
            };

            // ...

            xbar_i2s1_port: port@a {
                reg = <0xa>;
                xbar_i2s1_ep: endpoint {
                    remote-endpoint = <&i2s1_cif_ep>;
                };
            };
        };

        admaif@702d0000 {
            compatible = "nvidia,tegra210-admaif";
            reg = <0x702d0000 0x800>;
            dmas = <&adma 1>,  <&adma 1>,
                   <&adma 2>,  <&adma 2>,
                   <&adma 3>,  <&adma 3>,
                   <&adma 4>,  <&adma 4>,
                   <&adma 5>,  <&adma 5>,
                   <&adma 6>,  <&adma 6>,
                   <&adma 7>,  <&adma 7>,
                   <&adma 8>,  <&adma 8>,
                   <&adma 9>,  <&adma 9>,
                   <&adma 10>, <&adma 10>;
            dma-names = "rx1",  "tx1",
                        "rx2",  "tx2",
                        "rx3",  "tx3",
                        "rx4",  "tx4",
                        "rx5",  "tx5",
                        "rx6",  "tx6",
                        "rx7",  "tx7",
                        "rx8",  "tx8",
                        "rx9",  "tx9",
                        "rx10", "tx10";

            ports {
                #address-cells = <1>;
                #size-cells = <0>;

                admaif1_port: port@0 {
                    reg = <0x0>;
                    admaif1_ep: endpoint {
                        remote-endpoint = <&xbar_admaif1_ep>;
                    };
                };

                // More ADMAIF ports to follow
            };
        };

        i2s@702d1000 {
            compatible = "nvidia,tegra210-i2s";
            clocks = <&tegra_car TEGRA210_CLK_I2S0>;
            clock-names = "i2s";
            assigned-clocks = <&tegra_car TEGRA210_CLK_I2S0>;
            assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
            assigned-clock-rates = <1536000>;
            reg = <0x702d1000 0x100>;

            ports {
                #address-cells = <1>;
                #size-cells = <0>;

                port@0 {
                    reg = <0x0>;

                    i2s1_cif_ep: endpoint {
                        remote-endpoint = <&xbar_i2s1_ep>;
                    };
                };

                i2s1_port: port@1 {
                    reg = <0x1>;

                    i2s1_dap: endpoint {
                        dai-format = "i2s";
                    };
                };
            };
        };
    };

...
Loading