Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit 2858e2cf authored by Mark Brown's avatar Mark Brown
Browse files

Merge branch 'asoc-4.17' into asoc-linus

parents 29dcea88 c90ddb69
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -186,6 +186,9 @@ Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de>
Uwe Kleine-König <ukl@pengutronix.de>
Uwe Kleine-König <ukl@pengutronix.de>
Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
Vinod Koul <vkoul@kernel.org> <vinod.koul@intel.com>
Vinod Koul <vkoul@kernel.org> <vinod.koul@linux.intel.com>
Vinod Koul <vkoul@kernel.org> <vkoul@infradead.org>
Viresh Kumar <vireshk@kernel.org> <viresh.kumar@st.com>
Viresh Kumar <vireshk@kernel.org> <viresh.kumar@st.com>
Viresh Kumar <vireshk@kernel.org> <viresh.linux@gmail.com>
Viresh Kumar <vireshk@kernel.org> <viresh.linux@gmail.com>
Viresh Kumar <vireshk@kernel.org> <viresh.kumar2@arm.com>
Viresh Kumar <vireshk@kernel.org> <viresh.kumar2@arm.com>
+5 −6
Original line number Original line Diff line number Diff line
@@ -7034,14 +7034,13 @@ L: linux-fbdev@vger.kernel.org
S:	Maintained
S:	Maintained
F:	drivers/video/fbdev/i810/
F:	drivers/video/fbdev/i810/


INTEL ASoC BDW/HSW DRIVERS
INTEL ASoC DRIVERS
M:	Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
M:	Liam Girdwood <liam.r.girdwood@linux.intel.com>
M:	Jie Yang <yang.jie@linux.intel.com>
M:	Jie Yang <yang.jie@linux.intel.com>
L:	alsa-devel@alsa-project.org (moderated for non-subscribers)
L:	alsa-devel@alsa-project.org (moderated for non-subscribers)
S:	Supported
S:	Supported
F:	sound/soc/intel/common/sst-dsp*
F:	sound/soc/intel/
F:	sound/soc/intel/common/sst-firmware.c
F:	sound/soc/intel/boards/broadwell.c
F:	sound/soc/intel/haswell/


INTEL C600 SERIES SAS CONTROLLER DRIVER
INTEL C600 SERIES SAS CONTROLLER DRIVER
M:	Intel SCU Linux support <intel-linux-scu@intel.com>
M:	Intel SCU Linux support <intel-linux-scu@intel.com>
@@ -13105,7 +13104,7 @@ F: include/uapi/sound/
F:	sound/
F:	sound/


SOUND - COMPRESSED AUDIO
SOUND - COMPRESSED AUDIO
M:	Vinod Koul <vinod.koul@intel.com>
M:	Vinod Koul <vkoul@kernel.org>
L:	alsa-devel@alsa-project.org (moderated for non-subscribers)
L:	alsa-devel@alsa-project.org (moderated for non-subscribers)
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
S:	Supported
S:	Supported
+2 −2
Original line number Original line Diff line number Diff line
@@ -294,8 +294,8 @@ struct snd_soc_dai {
	struct snd_soc_dai_driver *driver;
	struct snd_soc_dai_driver *driver;


	/* DAI runtime info */
	/* DAI runtime info */
	unsigned int capture_active:1;		/* stream is in use */
	unsigned int capture_active;		/* stream usage count */
	unsigned int playback_active:1;		/* stream is in use */
	unsigned int playback_active;		/* stream usage count */
	unsigned int probed:1;
	unsigned int probed:1;


	unsigned int active;
	unsigned int active;
+1 −1
Original line number Original line Diff line number Diff line
@@ -67,7 +67,7 @@ static struct snd_soc_dai_link edb93xx_dai = {
	.cpu_dai_name	= "ep93xx-i2s",
	.cpu_dai_name	= "ep93xx-i2s",
	.codec_name	= "spi0.0",
	.codec_name	= "spi0.0",
	.codec_dai_name	= "cs4271-hifi",
	.codec_dai_name	= "cs4271-hifi",
	.dai_fmt	= SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_IF |
	.dai_fmt	= SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
			  SND_SOC_DAIFMT_CBS_CFS,
			  SND_SOC_DAIFMT_CBS_CFS,
	.ops		= &edb93xx_ops,
	.ops		= &edb93xx_ops,
};
};
+14 −12
Original line number Original line Diff line number Diff line
@@ -51,7 +51,9 @@
#define EP93XX_I2S_WRDLEN_24		(1 << 0)
#define EP93XX_I2S_WRDLEN_24		(1 << 0)
#define EP93XX_I2S_WRDLEN_32		(2 << 0)
#define EP93XX_I2S_WRDLEN_32		(2 << 0)


#define EP93XX_I2S_LINCTRLDATA_R_JUST	(1 << 2) /* Right justify */
#define EP93XX_I2S_RXLINCTRLDATA_R_JUST	BIT(1) /* Right justify */

#define EP93XX_I2S_TXLINCTRLDATA_R_JUST	BIT(2) /* Right justify */


#define EP93XX_I2S_CLKCFG_LRS		(1 << 0) /* lrclk polarity */
#define EP93XX_I2S_CLKCFG_LRS		(1 << 0) /* lrclk polarity */
#define EP93XX_I2S_CLKCFG_CKP		(1 << 1) /* Bit clock polarity */
#define EP93XX_I2S_CLKCFG_CKP		(1 << 1) /* Bit clock polarity */
@@ -170,25 +172,25 @@ static int ep93xx_i2s_set_dai_fmt(struct snd_soc_dai *cpu_dai,
				  unsigned int fmt)
				  unsigned int fmt)
{
{
	struct ep93xx_i2s_info *info = snd_soc_dai_get_drvdata(cpu_dai);
	struct ep93xx_i2s_info *info = snd_soc_dai_get_drvdata(cpu_dai);
	unsigned int clk_cfg, lin_ctrl;
	unsigned int clk_cfg;
	unsigned int txlin_ctrl = 0;
	unsigned int rxlin_ctrl = 0;


	clk_cfg  = ep93xx_i2s_read_reg(info, EP93XX_I2S_RXCLKCFG);
	clk_cfg  = ep93xx_i2s_read_reg(info, EP93XX_I2S_RXCLKCFG);
	lin_ctrl = ep93xx_i2s_read_reg(info, EP93XX_I2S_RXLINCTRLDATA);


	switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
	switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
	case SND_SOC_DAIFMT_I2S:
	case SND_SOC_DAIFMT_I2S:
		clk_cfg |= EP93XX_I2S_CLKCFG_REL;
		clk_cfg |= EP93XX_I2S_CLKCFG_REL;
		lin_ctrl &= ~EP93XX_I2S_LINCTRLDATA_R_JUST;
		break;
		break;


	case SND_SOC_DAIFMT_LEFT_J:
	case SND_SOC_DAIFMT_LEFT_J:
		clk_cfg &= ~EP93XX_I2S_CLKCFG_REL;
		clk_cfg &= ~EP93XX_I2S_CLKCFG_REL;
		lin_ctrl &= ~EP93XX_I2S_LINCTRLDATA_R_JUST;
		break;
		break;


	case SND_SOC_DAIFMT_RIGHT_J:
	case SND_SOC_DAIFMT_RIGHT_J:
		clk_cfg &= ~EP93XX_I2S_CLKCFG_REL;
		clk_cfg &= ~EP93XX_I2S_CLKCFG_REL;
		lin_ctrl |= EP93XX_I2S_LINCTRLDATA_R_JUST;
		rxlin_ctrl |= EP93XX_I2S_RXLINCTRLDATA_R_JUST;
		txlin_ctrl |= EP93XX_I2S_TXLINCTRLDATA_R_JUST;
		break;
		break;


	default:
	default:
@@ -213,32 +215,32 @@ static int ep93xx_i2s_set_dai_fmt(struct snd_soc_dai *cpu_dai,
	switch (fmt & SND_SOC_DAIFMT_INV_MASK) {
	switch (fmt & SND_SOC_DAIFMT_INV_MASK) {
	case SND_SOC_DAIFMT_NB_NF:
	case SND_SOC_DAIFMT_NB_NF:
		/* Negative bit clock, lrclk low on left word */
		/* Negative bit clock, lrclk low on left word */
		clk_cfg &= ~(EP93XX_I2S_CLKCFG_CKP | EP93XX_I2S_CLKCFG_REL);
		clk_cfg &= ~(EP93XX_I2S_CLKCFG_CKP | EP93XX_I2S_CLKCFG_LRS);
		break;
		break;


	case SND_SOC_DAIFMT_NB_IF:
	case SND_SOC_DAIFMT_NB_IF:
		/* Negative bit clock, lrclk low on right word */
		/* Negative bit clock, lrclk low on right word */
		clk_cfg &= ~EP93XX_I2S_CLKCFG_CKP;
		clk_cfg &= ~EP93XX_I2S_CLKCFG_CKP;
		clk_cfg |= EP93XX_I2S_CLKCFG_REL;
		clk_cfg |= EP93XX_I2S_CLKCFG_LRS;
		break;
		break;


	case SND_SOC_DAIFMT_IB_NF:
	case SND_SOC_DAIFMT_IB_NF:
		/* Positive bit clock, lrclk low on left word */
		/* Positive bit clock, lrclk low on left word */
		clk_cfg |= EP93XX_I2S_CLKCFG_CKP;
		clk_cfg |= EP93XX_I2S_CLKCFG_CKP;
		clk_cfg &= ~EP93XX_I2S_CLKCFG_REL;
		clk_cfg &= ~EP93XX_I2S_CLKCFG_LRS;
		break;
		break;


	case SND_SOC_DAIFMT_IB_IF:
	case SND_SOC_DAIFMT_IB_IF:
		/* Positive bit clock, lrclk low on right word */
		/* Positive bit clock, lrclk low on right word */
		clk_cfg |= EP93XX_I2S_CLKCFG_CKP | EP93XX_I2S_CLKCFG_REL;
		clk_cfg |= EP93XX_I2S_CLKCFG_CKP | EP93XX_I2S_CLKCFG_LRS;
		break;
		break;
	}
	}


	/* Write new register values */
	/* Write new register values */
	ep93xx_i2s_write_reg(info, EP93XX_I2S_RXCLKCFG, clk_cfg);
	ep93xx_i2s_write_reg(info, EP93XX_I2S_RXCLKCFG, clk_cfg);
	ep93xx_i2s_write_reg(info, EP93XX_I2S_TXCLKCFG, clk_cfg);
	ep93xx_i2s_write_reg(info, EP93XX_I2S_TXCLKCFG, clk_cfg);
	ep93xx_i2s_write_reg(info, EP93XX_I2S_RXLINCTRLDATA, lin_ctrl);
	ep93xx_i2s_write_reg(info, EP93XX_I2S_RXLINCTRLDATA, rxlin_ctrl);
	ep93xx_i2s_write_reg(info, EP93XX_I2S_TXLINCTRLDATA, lin_ctrl);
	ep93xx_i2s_write_reg(info, EP93XX_I2S_TXLINCTRLDATA, txlin_ctrl);
	return 0;
	return 0;
}
}


Loading