diff options
Diffstat (limited to 'sound/soc/fsl/imx-ssi.c')
| -rw-r--r-- | sound/soc/fsl/imx-ssi.c | 19 | 
1 files changed, 9 insertions, 10 deletions
diff --git a/sound/soc/fsl/imx-ssi.c b/sound/soc/fsl/imx-ssi.c index 48b2d24dd1f0..b95132e2f9dc 100644 --- a/sound/soc/fsl/imx-ssi.c +++ b/sound/soc/fsl/imx-ssi.c @@ -95,7 +95,8 @@ static int imx_ssi_set_dai_fmt(struct snd_soc_dai *cpu_dai, unsigned int fmt)  	switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {  	case SND_SOC_DAIFMT_I2S:  		/* data on rising edge of bclk, frame low 1clk before data */ -		strcr |= SSI_STCR_TFSI | SSI_STCR_TEFS | SSI_STCR_TXBIT0; +		strcr |= SSI_STCR_TXBIT0 | SSI_STCR_TSCKP | SSI_STCR_TFSI | +			SSI_STCR_TEFS;  		scr |= SSI_SCR_NET;  		if (ssi->flags & IMX_SSI_USE_I2S_SLAVE) {  			scr &= ~SSI_I2S_MODE_MASK; @@ -104,33 +105,31 @@ static int imx_ssi_set_dai_fmt(struct snd_soc_dai *cpu_dai, unsigned int fmt)  		break;  	case SND_SOC_DAIFMT_LEFT_J:  		/* data on rising edge of bclk, frame high with data */ -		strcr |= SSI_STCR_TXBIT0; +		strcr |= SSI_STCR_TXBIT0 | SSI_STCR_TSCKP;  		break;  	case SND_SOC_DAIFMT_DSP_B:  		/* data on rising edge of bclk, frame high with data */ -		strcr |= SSI_STCR_TFSL | SSI_STCR_TXBIT0; +		strcr |= SSI_STCR_TXBIT0 | SSI_STCR_TSCKP | SSI_STCR_TFSL;  		break;  	case SND_SOC_DAIFMT_DSP_A:  		/* data on rising edge of bclk, frame high 1clk before data */ -		strcr |= SSI_STCR_TFSL | SSI_STCR_TXBIT0 | SSI_STCR_TEFS; +		strcr |= SSI_STCR_TXBIT0 | SSI_STCR_TSCKP | SSI_STCR_TFSL | +			SSI_STCR_TEFS;  		break;  	}  	/* DAI clock inversion */  	switch (fmt & SND_SOC_DAIFMT_INV_MASK) {  	case SND_SOC_DAIFMT_IB_IF: -		strcr |= SSI_STCR_TFSI; -		strcr &= ~SSI_STCR_TSCKP; +		strcr ^= SSI_STCR_TSCKP | SSI_STCR_TFSI;  		break;  	case SND_SOC_DAIFMT_IB_NF: -		strcr &= ~(SSI_STCR_TSCKP | SSI_STCR_TFSI); +		strcr ^= SSI_STCR_TSCKP;  		break;  	case SND_SOC_DAIFMT_NB_IF: -		strcr |= SSI_STCR_TFSI | SSI_STCR_TSCKP; +		strcr ^= SSI_STCR_TFSI;  		break;  	case SND_SOC_DAIFMT_NB_NF: -		strcr &= ~SSI_STCR_TFSI; -		strcr |= SSI_STCR_TSCKP;  		break;  	}  |