Commit a4bd9358 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

Merge tag 'asoc-fix-v5.19-rc4' of...

Merge tag 'asoc-fix-v5.19-rc4' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus

ASoC: Fixes for v5.19

Quite a large batch due to things building up for a couple of weeks but
all driver specific apart from Marek's documentation fix.
parents c5e58c45 fc976f56
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -25,12 +25,12 @@ properties:
      - qcom,sc7280-lpass-cpu

  reg:
    minItems: 2
    minItems: 1
    maxItems: 6
    description: LPAIF core registers

  reg-names:
    minItems: 2
    minItems: 1
    maxItems: 6

  clocks:
@@ -42,12 +42,12 @@ properties:
    maxItems: 10

  interrupts:
    minItems: 2
    minItems: 1
    maxItems: 4
    description: LPAIF DMA buffer interrupt

  interrupt-names:
    minItems: 2
    minItems: 1
    maxItems: 4

  qcom,adsp:
+1 −1
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ AC97
====

AC97 is a five wire interface commonly found on many PC sound cards. It is
now also popular in many portable devices. This DAI has a reset line and time
now also popular in many portable devices. This DAI has a RESET line and time
multiplexes its data on its SDATA_OUT (playback) and SDATA_IN (capture) lines.
The bit clock (BCLK) is always driven by the CODEC (usually 12.288MHz) and the
frame (FRAME) (usually 48kHz) is always driven by the controller. Each AC97
+2 −2
Original line number Diff line number Diff line
@@ -1760,8 +1760,8 @@ static bool arizona_aif_cfg_changed(struct snd_soc_component *component,
	if (bclk != (val & ARIZONA_AIF1_BCLK_FREQ_MASK))
		return true;

	val = snd_soc_component_read(component, base + ARIZONA_AIF_TX_BCLK_RATE);
	if (lrclk != (val & ARIZONA_AIF1TX_BCPF_MASK))
	val = snd_soc_component_read(component, base + ARIZONA_AIF_RX_BCLK_RATE);
	if (lrclk != (val & ARIZONA_AIF1RX_BCPF_MASK))
		return true;

	val = snd_soc_component_read(component, base + ARIZONA_AIF_FRAME_CTRL_1);
+7 −1
Original line number Diff line number Diff line
@@ -119,7 +119,13 @@ static int cs47l92_put_demux(struct snd_kcontrol *kcontrol,
end:
	snd_soc_dapm_mutex_unlock(dapm);

	return snd_soc_dapm_mux_update_power(dapm, kcontrol, mux, e, NULL);
	ret = snd_soc_dapm_mux_update_power(dapm, kcontrol, mux, e, NULL);
	if (ret < 0) {
		dev_err(madera->dev, "Failed to update demux power state: %d\n", ret);
		return ret;
	}

	return change;
}

static SOC_ENUM_SINGLE_DECL(cs47l92_outdemux_enum,
+6 −4
Original line number Diff line number Diff line
@@ -342,12 +342,15 @@ static int max98396_dai_set_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)
{
	struct snd_soc_component *component = codec_dai->component;
	struct max98396_priv *max98396 = snd_soc_component_get_drvdata(component);
	unsigned int format = 0;
	unsigned int format_mask, format = 0;
	unsigned int bclk_pol = 0;
	int ret, status;
	int reg;
	bool update = false;

	format_mask = MAX98396_PCM_MODE_CFG_FORMAT_MASK |
		      MAX98396_PCM_MODE_CFG_LRCLKEDGE;

	dev_dbg(component->dev, "%s: fmt 0x%08X\n", __func__, fmt);

	switch (fmt & SND_SOC_DAIFMT_INV_MASK) {
@@ -395,7 +398,7 @@ static int max98396_dai_set_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)
		ret = regmap_read(max98396->regmap, MAX98396_R2041_PCM_MODE_CFG, &reg);
		if (ret < 0)
			return -EINVAL;
		if (format != (reg & MAX98396_PCM_BCLKEDGE_BSEL_MASK)) {
		if (format != (reg & format_mask)) {
			update = true;
		} else {
			ret = regmap_read(max98396->regmap,
@@ -412,8 +415,7 @@ static int max98396_dai_set_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)

	regmap_update_bits(max98396->regmap,
			   MAX98396_R2041_PCM_MODE_CFG,
			   MAX98396_PCM_BCLKEDGE_BSEL_MASK,
			   format);
			   format_mask, format);

	regmap_update_bits(max98396->regmap,
			   MAX98396_R2042_PCM_CLK_SETUP,
Loading