Commit 9db02882 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

Merge tag 'asoc-v5.6-2' of...

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

ASoC: Fixes for v5.6

A collection of updates for bugs fixed since the initial pull
request, the most important one being the addition of COMMON_CLK
for wcd934x which is needed for MFD to be merged.
parents c7e661a1 42b71635
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -13947,7 +13947,6 @@ F: include/linux/platform_data/rtc-*
F:	tools/testing/selftests/rtc/
REALTEK AUDIO CODECS
M:	Bard Liao <bardliao@realtek.com>
M:	Oder Chiou <oder_chiou@realtek.com>
S:	Maintained
F:	sound/soc/codecs/rt*
+7 −5
Original line number Diff line number Diff line
@@ -234,30 +234,32 @@ static int acp3x_i2s_trigger(struct snd_pcm_substream *substream,
			switch (rtd->i2s_instance) {
			case I2S_BT_INSTANCE:
				reg_val = mmACP_BTTDM_ITER;
				ier_val = mmACP_BTTDM_IER;
				break;
			case I2S_SP_INSTANCE:
			default:
				reg_val = mmACP_I2STDM_ITER;
				ier_val = mmACP_I2STDM_IER;
			}

		} else {
			switch (rtd->i2s_instance) {
			case I2S_BT_INSTANCE:
				reg_val = mmACP_BTTDM_IRER;
				ier_val = mmACP_BTTDM_IER;
				break;
			case I2S_SP_INSTANCE:
			default:
				reg_val = mmACP_I2STDM_IRER;
				ier_val = mmACP_I2STDM_IER;
			}
		}
		val = rv_readl(rtd->acp3x_base + reg_val);
		val = val & ~BIT(0);
		rv_writel(val, rtd->acp3x_base + reg_val);
		rv_writel(0, rtd->acp3x_base + ier_val);

		if (!(rv_readl(rtd->acp3x_base + mmACP_BTTDM_ITER) & BIT(0)) &&
		     !(rv_readl(rtd->acp3x_base + mmACP_BTTDM_IRER) & BIT(0)))
			rv_writel(0, rtd->acp3x_base + mmACP_BTTDM_IER);
		if (!(rv_readl(rtd->acp3x_base + mmACP_I2STDM_ITER) & BIT(0)) &&
		     !(rv_readl(rtd->acp3x_base + mmACP_I2STDM_IRER) & BIT(0)))
			rv_writel(0, rtd->acp3x_base + mmACP_I2STDM_IER);
		ret = 0;
		break;
	default:
+7 −7
Original line number Diff line number Diff line
@@ -349,13 +349,6 @@ static int acp3x_dma_close(struct snd_soc_component *component,
	component = snd_soc_rtdcom_lookup(prtd, DRV_NAME);
	adata = dev_get_drvdata(component->dev);

	if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
		adata->play_stream = NULL;
		adata->i2ssp_play_stream = NULL;
	} else {
		adata->capture_stream = NULL;
		adata->i2ssp_capture_stream = NULL;
	}

	/* Disable ACP irq, when the current stream is being closed and
	 * another stream is also not active.
@@ -363,6 +356,13 @@ static int acp3x_dma_close(struct snd_soc_component *component,
	if (!adata->play_stream && !adata->capture_stream &&
		!adata->i2ssp_play_stream && !adata->i2ssp_capture_stream)
		rv_writel(0, adata->acp3x_base + mmACP_EXTERNAL_INTR_ENB);
	if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
		adata->play_stream = NULL;
		adata->i2ssp_play_stream = NULL;
	} else {
		adata->capture_stream = NULL;
		adata->i2ssp_capture_stream = NULL;
	}
	return 0;
}

+1 −0
Original line number Diff line number Diff line
@@ -1334,6 +1334,7 @@ config SND_SOC_WCD9335

config SND_SOC_WCD934X
	tristate "WCD9340/WCD9341 Codec"
	depends on COMMON_CLK
	depends on MFD_WCD934X
	help
	  The WCD9340/9341 is a audio codec IC Integrated in
+2 −1
Original line number Diff line number Diff line
@@ -52,7 +52,8 @@ static void max98090_shdn_restore_locked(struct max98090_priv *max98090)

static void max98090_shdn_save(struct max98090_priv *max98090)
{
	mutex_lock(&max98090->component->card->dapm_mutex);
	mutex_lock_nested(&max98090->component->card->dapm_mutex,
			  SND_SOC_DAPM_CLASS_RUNTIME);
	max98090_shdn_save_locked(max98090);
}

Loading