Commit 01154cc3 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull sound fixes from Takashi Iwai:
 "The majority of changes here are about ASoC.

  There are two core changes in ASoC (the bump of minimal topology ABI
  version and the fix for references of components in DAPM code), and
  others are mostly various device-specific fixes for SoundWire, AMD,
  Intel, SOF, Qualcomm and FSL, in addition to a few usual HD-audio
  quirks and fixes"

* tag 'sound-6.12-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (33 commits)
  ALSA: hda/realtek: Update default depop procedure
  ASoC: qcom: sc7280: Fix missing Soundwire runtime stream alloc
  ASoC: fsl_micfil: Add sample rate constraint
  ASoC: rt722-sdca: increase clk_stop_timeout to fix clock stop issue
  ALSA: hda/tas2781: select CRC32 instead of CRC32_SARWATE
  ALSA: hda/realtek: Add subwoofer quirk for Acer Predator G9-593
  ALSA: firewire-lib: Avoid division by zero in apply_constraint_to_size()
  ASoC: fsl_micfil: Add a flag to distinguish with different volume control types
  ASoC: codecs: lpass-rx-macro: fix RXn(rx,n) macro for DSM_CTL and SEC7 regs
  ASoC: Change my e-mail to gmail
  ASoC: Intel: soc-acpi: lnl: Add match entry for TM2 laptops
  ASoC: amd: yc: Fix non-functional mic on ASUS E1404FA
  ASoC: SOF: Intel: hda: Always clean up link DMA during stop
  soundwire: intel_ace2x: Send PDI stream number during prepare
  ASoC: SOF: Intel: hda: Handle prepare without close for non-HDA DAI's
  ASoC: SOF: ipc4-topology: Do not set ALH node_id for aggregated DAIs
  MAINTAINERS: Update maintainer list for MICROCHIP ASOC, SSC and MCP16502 drivers
  ASoC: qcom: Select missing common Soundwire module code on SDM845
  ASoC: fsl_esai: change dev_warn to dev_dbg in irq handler
  ASoC: rsnd: Fix probe failure on HiHope boards due to endpoint parsing
  ...
parents fd143856 c9f7a144
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -102,21 +102,21 @@ properties:
    default: 2

  interrupts:
    oneOf:
      - minItems: 1
        items:
          - description: TX interrupt
          - description: RX interrupt
      - items:
          - description: common/combined interrupt
    minItems: 1
    maxItems: 2

  interrupt-names:
    oneOf:
      - minItems: 1
      - description: TX interrupt
        const: tx
      - description: RX interrupt
        const: rx
      - description: TX and RX interrupts
        items:
          - const: tx
          - const: rx
      - const: common
      - description: Common/combined interrupt
        const: common

  fck_parent:
    $ref: /schemas/types.yaml#/definitions/string
+4 −1
Original line number Diff line number Diff line
@@ -14986,6 +14986,7 @@ F: drivers/spi/spi-at91-usart.c
MICROCHIP AUDIO ASOC DRIVERS
M:	Claudiu Beznea <claudiu.beznea@tuxon.dev>
M:	Andrei Simion <andrei.simion@microchip.com>
L:	linux-sound@vger.kernel.org
S:	Supported
F:	Documentation/devicetree/bindings/sound/atmel*
@@ -15094,6 +15095,7 @@ F: include/video/atmel_lcdc.h
MICROCHIP MCP16502 PMIC DRIVER
M:	Claudiu Beznea <claudiu.beznea@tuxon.dev>
M:	Andrei Simion <andrei.simion@microchip.com>
L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
S:	Supported
F:	Documentation/devicetree/bindings/regulator/microchip,mcp16502.yaml
@@ -15224,6 +15226,7 @@ F: drivers/spi/spi-atmel.*
MICROCHIP SSC DRIVER
M:	Claudiu Beznea <claudiu.beznea@tuxon.dev>
M:	Andrei Simion <andrei.simion@microchip.com>
L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
S:	Supported
F:	Documentation/devicetree/bindings/misc/atmel-ssc.txt
@@ -23145,7 +23148,7 @@ F: Documentation/devicetree/bindings/iio/adc/ti,lmp92064.yaml
F:	drivers/iio/adc/ti-lmp92064.c
TI PCM3060 ASoC CODEC DRIVER
M:	Kirill Marinushkin <kmarinushkin@birdec.com>
M:	Kirill Marinushkin <k.marinushkin@gmail.com>
L:	linux-sound@vger.kernel.org
S:	Maintained
F:	Documentation/devicetree/bindings/sound/pcm3060.txt
+6 −13
Original line number Diff line number Diff line
@@ -376,11 +376,12 @@ static int intel_hw_params(struct snd_pcm_substream *substream,
static int intel_prepare(struct snd_pcm_substream *substream,
			 struct snd_soc_dai *dai)
{
	struct snd_soc_pcm_runtime *rtd = snd_soc_substream_to_rtd(substream);
	struct sdw_cdns *cdns = snd_soc_dai_get_drvdata(dai);
	struct sdw_intel *sdw = cdns_to_intel(cdns);
	struct sdw_cdns_dai_runtime *dai_runtime;
	struct snd_pcm_hw_params *hw_params;
	int ch, dir;
	int ret = 0;

	dai_runtime = cdns->dai_runtime_array[dai->id];
	if (!dai_runtime) {
@@ -389,12 +390,8 @@ static int intel_prepare(struct snd_pcm_substream *substream,
		return -EIO;
	}

	if (dai_runtime->suspended) {
		struct snd_soc_pcm_runtime *rtd = snd_soc_substream_to_rtd(substream);
		struct snd_pcm_hw_params *hw_params;

	hw_params = &rtd->dpcm[substream->stream].hw_params;

	if (dai_runtime->suspended) {
		dai_runtime->suspended = false;

		/*
@@ -415,17 +412,13 @@ static int intel_prepare(struct snd_pcm_substream *substream,
		/* the SHIM will be configured in the callback functions */

		sdw_cdns_config_stream(cdns, ch, dir, dai_runtime->pdi);
	}

	/* Inform DSP about PDI stream number */
		ret = intel_params_stream(sdw, substream, dai,
					  hw_params,
					  sdw->instance,
	return intel_params_stream(sdw, substream, dai, hw_params, sdw->instance,
				   dai_runtime->pdi->intel_alh_id);
}

	return ret;
}

static int
intel_hw_free(struct snd_pcm_substream *substream, struct snd_soc_dai *dai)
{
+1 −1
Original line number Diff line number Diff line
@@ -88,7 +88,7 @@

/* ABI version */
#define SND_SOC_TPLG_ABI_VERSION	0x5	/* current version */
#define SND_SOC_TPLG_ABI_VERSION_MIN	0x4	/* oldest version supported */
#define SND_SOC_TPLG_ABI_VERSION_MIN	0x5	/* oldest version supported */

/* Max size of TLV data */
#define SND_SOC_TPLG_TLV_SIZE		32
+3 −0
Original line number Diff line number Diff line
@@ -172,6 +172,9 @@ static int apply_constraint_to_size(struct snd_pcm_hw_params *params,
			step = max(step, amdtp_syt_intervals[i]);
	}

	if (step == 0)
		return -EINVAL;

	t.min = roundup(s->min, step);
	t.max = rounddown(s->max, step);
	t.integer = 1;
Loading