diff options
Diffstat (limited to 'sound/soc/dwc')
| -rw-r--r-- | sound/soc/dwc/dwc-i2s.c | 6 | 
1 files changed, 6 insertions, 0 deletions
| diff --git a/sound/soc/dwc/dwc-i2s.c b/sound/soc/dwc/dwc-i2s.c index 9c46e4112026..916067638180 100644 --- a/sound/soc/dwc/dwc-i2s.c +++ b/sound/soc/dwc/dwc-i2s.c @@ -496,6 +496,8 @@ static int dw_configure_dai(struct dw_i2s_dev *dev,  		idx = COMP1_TX_WORDSIZE_0(comp1);  		if (WARN_ON(idx >= ARRAY_SIZE(formats)))  			return -EINVAL; +		if (dev->quirks & DW_I2S_QUIRK_16BIT_IDX_OVERRIDE) +			idx = 1;  		dw_i2s_dai->playback.channels_min = MIN_CHANNEL_NUM;  		dw_i2s_dai->playback.channels_max =  				1 << (COMP1_TX_CHANNELS(comp1) + 1); @@ -508,6 +510,8 @@ static int dw_configure_dai(struct dw_i2s_dev *dev,  		idx = COMP2_RX_WORDSIZE_0(comp2);  		if (WARN_ON(idx >= ARRAY_SIZE(formats)))  			return -EINVAL; +		if (dev->quirks & DW_I2S_QUIRK_16BIT_IDX_OVERRIDE) +			idx = 1;  		dw_i2s_dai->capture.channels_min = MIN_CHANNEL_NUM;  		dw_i2s_dai->capture.channels_max =  				1 << (COMP1_RX_CHANNELS(comp1) + 1); @@ -543,6 +547,8 @@ static int dw_configure_dai_by_pd(struct dw_i2s_dev *dev,  	if (ret < 0)  		return ret; +	if (dev->quirks & DW_I2S_QUIRK_16BIT_IDX_OVERRIDE) +		idx = 1;  	/* Set DMA slaves info */  	dev->play_dma_data.pd.data = pdata->play_dma_data;  	dev->capture_dma_data.pd.data = pdata->capture_dma_data; |