|
@@ -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;
|