Merge tag 'sound-6.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai...
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 27 Apr 2023 17:58:37 +0000 (10:58 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 27 Apr 2023 17:58:37 +0000 (10:58 -0700)
Pull sound updates from Takashi Iwai:
 "At this time, it's an interesting mixture of changes for both old and
  new stuff. Majority of changes are about ASoC (lots of systematic
  changes for converting remove callbacks to void, and cleanups), while
  we got the fixes and the enhancements of very old PCI cards, too.

  Here are some highlights:

  ALSA/ASoC Core:
   - Continued effort of more ASoC core cleanups
   - Minor improvements for XRUN handling in indirect PCM helpers
   - Code refactoring of PCM core code

  ASoC:
   - Continued feature and simplification work on SOF, including
     addition of a no-DSP mode for bringup, HDA MLink and extensions to
     the IPC4 protocol
   - Hibernation support for CS35L45
   - More DT binding conversions
   - Support for Cirrus Logic CS35L56, Freescale QMC, Maxim MAX98363,
     nVidia systems with MAX9809x and RT5631, Realtek RT712, Renesas
     R-Car Gen4, Rockchip RK3588 and TI TAS5733

  ALSA:
   - Lots of works for legacy emu10k1 and ymfpci PCI drivers
   - PCM kselftest fixes and enhancements"

* tag 'sound-6.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (586 commits)
  ALSA: emu10k1: use high-level I/O in set_filterQ()
  ALSA: emu10k1: use high-level I/O functions also during init
  ALSA: emu10k1: fix error handling in snd_audigy_i2c_volume_put()
  ALSA: emu10k1: don't stop DSP in _snd_emu10k1_{,audigy_}init_efx()
  ALSA: emu10k1: fix SNDRV_EMU10K1_IOCTL_SINGLE_STEP
  ALSA: emu10k1: skip Sound Blaster-specific hacks for E-MU cards
  ALSA: emu10k1: fixup DSP defines
  ALSA: emu10k1: pull in some register definitions from kX-project
  ALSA: emu10k1: remove some bogus defines
  ALSA: emu10k1: eliminate some unused defines
  ALSA: emu10k1: fix lineup of EMU_HANA_* defines
  ALSA: emu10k1: comment updates
  ALSA: emu10k1: fix snd_emu1010_fpga_read() input masking for rev2 cards
  ALSA: emu10k1: remove unused emu->pcm_playback_efx_substream field
  ALSA: emu10k1: remove unused `resume` parameter from snd_emu10k1_init()
  ALSA: emu10k1: minor optimizations
  ALSA: emu10k1: remove remaining cruft from snd_emu10k1_emu1010_init()
  ALSA: emu10k1: remove apparently pointless EMU_HANA_OPTION_CARDS reads
  ALSA: emu10k1: remove apparently pointless FPGA reads
  ALSA: emu10k1: stop doing weird things with HCFG in snd_emu10k1_emu1010_init()
  ...

15 files changed:
1  2 
Documentation/devicetree/bindings/sound/everest,es8316.yaml
Documentation/devicetree/bindings/sound/qcom,lpass-rx-macro.yaml
Documentation/devicetree/bindings/sound/qcom,lpass-tx-macro.yaml
Documentation/devicetree/bindings/sound/qcom,wcd934x.yaml
Documentation/devicetree/bindings/sound/simple-card.yaml
MAINTAINERS
arch/powerpc/platforms/8xx/cpm1.c
sound/core/pcm_native.c
sound/pci/emu10k1/emupcm.c
sound/pci/hda/patch_hdmi.c
sound/pci/ymfpci/ymfpci.c
sound/pci/ymfpci/ymfpci_main.c
sound/soc/fsl/fsl_sai.c
sound/soc/sof/ipc4-topology.c
sound/soc/sof/pm.c

@@@ -61,6 -51,65 +51,65 @@@ required
    - reg
    - "#sound-dai-cells"
  
 -            - items:   #for ADSP based platforms
+ allOf:
+   - $ref: dai-common.yaml#
+   - if:
+       properties:
+         compatible:
+           enum:
+             - qcom,sc7280-lpass-rx-macro
+     then:
+       properties:
+         clock-names:
+           oneOf:
 -            - items:   #for ADSP bypass based platforms
++            - items:   # for ADSP based platforms
+                 - const: mclk
+                 - const: npl
+                 - const: macro
+                 - const: dcodec
+                 - const: fsgen
++            - items:   # for ADSP bypass based platforms
+                 - const: mclk
+                 - const: npl
+                 - const: fsgen
+   - if:
+       properties:
+         compatible:
+           enum:
+             - qcom,sc8280xp-lpass-rx-macro
+             - qcom,sm8250-lpass-rx-macro
+             - qcom,sm8450-lpass-rx-macro
+     then:
+       properties:
+         clocks:
+           minItems: 5
+           maxItems: 5
+         clock-names:
+           items:
+             - const: mclk
+             - const: npl
+             - const: macro
+             - const: dcodec
+             - const: fsgen
+   - if:
+       properties:
+         compatible:
+           enum:
+             - qcom,sm8550-lpass-rx-macro
+     then:
+       properties:
+         clocks:
+           minItems: 4
+           maxItems: 4
+         clock-names:
+           items:
+             - const: mclk
+             - const: macro
+             - const: dcodec
+             - const: fsgen
  unevaluatedProperties: false
  
  examples:
@@@ -67,6 -55,65 +55,65 @@@ required
    - reg
    - "#sound-dai-cells"
  
 -            - items:   #for ADSP based platforms
+ allOf:
+   - $ref: dai-common.yaml#
+   - if:
+       properties:
+         compatible:
+           enum:
+             - qcom,sc7280-lpass-tx-macro
+     then:
+       properties:
+         clock-names:
+           oneOf:
 -            - items:   #for ADSP bypass based platforms
++            - items:   # for ADSP based platforms
+                 - const: mclk
+                 - const: npl
+                 - const: macro
+                 - const: dcodec
+                 - const: fsgen
++            - items:   # for ADSP bypass based platforms
+                 - const: mclk
+                 - const: npl
+                 - const: fsgen
+   - if:
+       properties:
+         compatible:
+           enum:
+             - qcom,sc8280xp-lpass-tx-macro
+             - qcom,sm8250-lpass-tx-macro
+             - qcom,sm8450-lpass-tx-macro
+     then:
+       properties:
+         clocks:
+           minItems: 5
+           maxItems: 5
+         clock-names:
+           items:
+             - const: mclk
+             - const: npl
+             - const: macro
+             - const: dcodec
+             - const: fsgen
+   - if:
+       properties:
+         compatible:
+           enum:
+             - qcom,sm8550-lpass-tx-macro
+     then:
+       properties:
+         clocks:
+           minItems: 4
+           maxItems: 4
+         clock-names:
+           items:
+             - const: mclk
+             - const: macro
+             - const: dcodec
+             - const: fsgen
  unevaluatedProperties: false
  
  examples:
diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -1805,13 -2337,22 +2337,24 @@@ static int sof_ipc4_route_setup(struct 
        u32 header, extension;
        int ret;
  
+       /* no route set up if chain DMA is used */
+       if (src_pipeline->use_chain_dma || sink_pipeline->use_chain_dma) {
+               if (!src_pipeline->use_chain_dma || !sink_pipeline->use_chain_dma) {
+                       dev_err(sdev->dev,
+                               "use_chain_dma must be set for both src %s and sink %s pipelines\n",
+                               src_widget->widget->name, sink_widget->widget->name);
+                       return -EINVAL;
+               }
+               return 0;
+       }
        if (!src_fw_module || !sink_fw_module) {
 -              /* The NULL module will print as "(efault)" */
 -              dev_err(sdev->dev, "source %s or sink %s widget weren't set up properly\n",
 -                      src_fw_module->man4_module_entry.name,
 -                      sink_fw_module->man4_module_entry.name);
 +              dev_err(sdev->dev,
 +                      "cannot bind %s -> %s, no firmware module for: %s%s\n",
 +                      src_widget->widget->name, sink_widget->widget->name,
 +                      src_fw_module ? "" : " source",
 +                      sink_fw_module ? "" : " sink");
 +
                return -ENODEV;
        }
  
Simple merge