Commit 84aa3059 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

Merge tag 'asoc-fix-v6.2-rc3' of...

Merge tag 'asoc-fix-v6.2-rc3' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus

ASoC: Fixes for v6.2

There's quite a few fixes here, mostly board specific apart from the SOF
power management ones.  We also have some new quirks and Kconfig tweaks
to enable existing code on new platforms, and a one liner which exposes
the SOF firmware state in debugfs to aid with debugging.

There's also a SPI fix that I mistakenly put in the wrong queue and
did some merges on top of before I noticed, it seemed more trouble than
it was worth to unpick things.  A copy of the same patch is also in the
spi tree.
parents ca88eeb3 242fc66a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ properties:
  compatible:
    enum:
      - mediatek,mt8186-mt6366-rt1019-rt5682s-sound
      - mediatek,mt8186-mt6366-rt5682s-max98360-sound

  mediatek,platform:
    $ref: "/schemas/types.yaml#/definitions/phandle"
+3 −1
Original line number Diff line number Diff line
@@ -30,7 +30,9 @@ properties:
    const: 0

  clocks:
    maxItems: 5
    oneOf:
      - maxItems: 3
      - maxItems: 5

  clock-names:
    oneOf:
+47 −11
Original line number Diff line number Diff line
@@ -9,9 +9,6 @@ title: LPASS(Low Power Audio Subsystem) VA Macro audio codec
maintainers:
  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>

allOf:
  - $ref: dai-common.yaml#

properties:
  compatible:
    enum:
@@ -30,15 +27,12 @@ properties:
    const: 0

  clocks:
    maxItems: 5
    minItems: 5
    maxItems: 6

  clock-names:
    items:
      - const: mclk
      - const: npl
      - const: macro
      - const: dcodec
      - const: fsgen
    minItems: 5
    maxItems: 6

  clock-output-names:
    maxItems: 1
@@ -55,10 +49,51 @@ required:
  - reg
  - "#sound-dai-cells"

allOf:
  - $ref: dai-common.yaml#

  - if:
      properties:
        compatible:
          enum:
            - qcom,sc7280-lpass-wsa-macro
            - qcom,sm8450-lpass-wsa-macro
            - qcom,sc8280xp-lpass-wsa-macro
    then:
      properties:
        clocks:
          maxItems: 5
        clock-names:
          items:
            - const: mclk
            - const: npl
            - const: macro
            - const: dcodec
            - const: fsgen

  - if:
      properties:
        compatible:
          enum:
            - qcom,sm8250-lpass-wsa-macro
    then:
      properties:
        clocks:
          minItems: 6
        clock-names:
          items:
            - const: mclk
            - const: npl
            - const: macro
            - const: dcodec
            - const: va
            - const: fsgen

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/clock/qcom,sm8250-lpass-aoncc.h>
    #include <dt-bindings/sound/qcom,q6afe.h>
    codec@3240000 {
      compatible = "qcom,sm8250-lpass-wsa-macro";
@@ -69,7 +104,8 @@ examples:
               <&audiocc 0>,
               <&q6afecc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
               <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
               <&aoncc LPASS_CDC_VA_MCLK>,
               <&vamacro>;
      clock-names = "mclk", "npl", "macro", "dcodec", "fsgen";
      clock-names = "mclk", "npl", "macro", "dcodec", "va", "fsgen";
      clock-output-names = "mclk";
    };
+5 −7
Original line number Diff line number Diff line
@@ -1253,6 +1253,11 @@ static int mtk_spi_probe(struct platform_device *pdev)
		dev_notice(dev, "SPI dma_set_mask(%d) failed, ret:%d\n",
			   addr_bits, ret);

	ret = devm_request_irq(dev, irq, mtk_spi_interrupt,
			       IRQF_TRIGGER_NONE, dev_name(dev), master);
	if (ret)
		return dev_err_probe(dev, ret, "failed to register irq\n");

	pm_runtime_enable(dev);

	ret = devm_spi_register_master(dev, master);
@@ -1261,13 +1266,6 @@ static int mtk_spi_probe(struct platform_device *pdev)
		return dev_err_probe(dev, ret, "failed to register master\n");
	}

	ret = devm_request_irq(dev, irq, mtk_spi_interrupt,
			       IRQF_TRIGGER_NONE, dev_name(dev), master);
	if (ret) {
		pm_runtime_disable(dev);
		return dev_err_probe(dev, ret, "failed to register irq\n");
	}

	return 0;
}

+14 −0
Original line number Diff line number Diff line
@@ -206,6 +206,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
			DMI_MATCH(DMI_PRODUCT_NAME, "UM5302TA"),
		}
	},
	{
		.driver_data = &acp6x_card,
		.matches = {
			DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK COMPUTER INC."),
			DMI_MATCH(DMI_PRODUCT_NAME, "M5402RA"),
		}
	},
	{
		.driver_data = &acp6x_card,
		.matches = {
@@ -220,6 +227,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
			DMI_MATCH(DMI_PRODUCT_NAME, "Redmi Book Pro 14 2022"),
		}
	},
	{
		.driver_data = &acp6x_card,
		.matches = {
			DMI_MATCH(DMI_BOARD_VENDOR, "Razer"),
			DMI_MATCH(DMI_PRODUCT_NAME, "Blade 14 (2022) - RZ09-0427"),
		}
	},
	{}
};

Loading