diff options
author | Maruthi Srinivas Bayyavarapu <Maruthi.Bayyavarapu@amd.com> | 2016-01-09 02:22:05 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2016-01-10 15:11:50 +0300 |
commit | a242cac1d3aa098fbe51097d2b1dcae8b662b761 (patch) | |
tree | 49b7bf6058390546c3804fe42d6e53197123d317 | |
parent | 0032e9dbc5d8add10345ccda48e3803bb7cfd650 (diff) | |
download | linux-a242cac1d3aa098fbe51097d2b1dcae8b662b761.tar.xz |
ASoC: dwc: add quirk to override COMP_PARAM_1 register
DWC for capture in ACP 2.x IP reports playback and capture capabilities
though it supports only capture. Added a quirk to override default value
to represent capture capability only.
Signed-off-by: Maruthi Bayyavarapu <maruthi.bayyavarapu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r-- | include/sound/designware_i2s.h | 1 | ||||
-rw-r--r-- | sound/soc/dwc/designware_i2s.c | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/include/sound/designware_i2s.h b/include/sound/designware_i2s.h index e0bb45807f29..5681855396c4 100644 --- a/include/sound/designware_i2s.h +++ b/include/sound/designware_i2s.h @@ -46,6 +46,7 @@ struct i2s_platform_data { u32 snd_rates; #define DW_I2S_QUIRK_COMP_REG_OFFSET (1 << 0) + #define DW_I2S_QUIRK_COMP_PARAM1 (1 << 1) unsigned int quirks; unsigned int i2s_reg_comp1; unsigned int i2s_reg_comp2; diff --git a/sound/soc/dwc/designware_i2s.c b/sound/soc/dwc/designware_i2s.c index 825a1f480aab..ce664c239be3 100644 --- a/sound/soc/dwc/designware_i2s.c +++ b/sound/soc/dwc/designware_i2s.c @@ -500,6 +500,10 @@ static int dw_configure_dai(struct dw_i2s_dev *dev, u32 comp2 = i2s_read_reg(dev->i2s_base, dev->i2s_reg_comp2); u32 idx; + if (dev->capability & DWC_I2S_RECORD && + dev->quirks & DW_I2S_QUIRK_COMP_PARAM1) + comp1 = comp1 & ~BIT(5); + if (COMP1_TX_ENABLED(comp1)) { dev_dbg(dev->dev, " designware: play supported\n"); idx = COMP1_TX_WORDSIZE_0(comp1); |