mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-11-01 17:08:10 +00:00
Merge series "ASoC: Fix dependency issues of SND_SOC" from Wei Li <liwei391@huawei.com>:
Fix dependency issues of SND_SOC introduced by commit ea00d95200
("ASoC: Use imply for SND_SOC_ALL_CODECS").
Wei Li (2):
ASoC: wm89xx: Fix build errors caused by I2C dependency
ASoC: Fix wrong dependency of da7210 and wm8983
sound/soc/codecs/Kconfig | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
--
2.17.1
This commit is contained in:
commit
ace105dd61
10 changed files with 111 additions and 19 deletions
|
@ -717,7 +717,7 @@ config SND_SOC_L3
|
|||
|
||||
config SND_SOC_DA7210
|
||||
tristate
|
||||
depends on I2C
|
||||
depends on SND_SOC_I2C_AND_SPI
|
||||
|
||||
config SND_SOC_DA7213
|
||||
tristate "Dialog DA7213 CODEC"
|
||||
|
@ -1525,6 +1525,7 @@ config SND_SOC_WM8804_SPI
|
|||
|
||||
config SND_SOC_WM8900
|
||||
tristate
|
||||
depends on SND_SOC_I2C_AND_SPI
|
||||
|
||||
config SND_SOC_WM8903
|
||||
tristate "Wolfson Microelectronics WM8903 CODEC"
|
||||
|
@ -1568,7 +1569,7 @@ config SND_SOC_WM8978
|
|||
|
||||
config SND_SOC_WM8983
|
||||
tristate
|
||||
depends on I2C
|
||||
depends on SND_SOC_I2C_AND_SPI
|
||||
|
||||
config SND_SOC_WM8985
|
||||
tristate "Wolfson Microelectronics WM8985 and WM8758 codec driver"
|
||||
|
@ -1576,6 +1577,7 @@ config SND_SOC_WM8985
|
|||
|
||||
config SND_SOC_WM8988
|
||||
tristate
|
||||
depends on SND_SOC_I2C_AND_SPI
|
||||
|
||||
config SND_SOC_WM8990
|
||||
tristate
|
||||
|
@ -1594,6 +1596,7 @@ config SND_SOC_WM8994
|
|||
|
||||
config SND_SOC_WM8995
|
||||
tristate
|
||||
depends on SND_SOC_I2C_AND_SPI
|
||||
|
||||
config SND_SOC_WM8996
|
||||
tristate
|
||||
|
|
|
@ -142,14 +142,14 @@ static struct hdac_hdmi_pcm *
|
|||
hdac_hdmi_get_pcm_from_cvt(struct hdac_hdmi_priv *hdmi,
|
||||
struct hdac_hdmi_cvt *cvt)
|
||||
{
|
||||
struct hdac_hdmi_pcm *pcm = NULL;
|
||||
struct hdac_hdmi_pcm *pcm;
|
||||
|
||||
list_for_each_entry(pcm, &hdmi->pcm_list, head) {
|
||||
if (pcm->cvt == cvt)
|
||||
break;
|
||||
return pcm;
|
||||
}
|
||||
|
||||
return pcm;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void hdac_hdmi_jack_report(struct hdac_hdmi_pcm *pcm,
|
||||
|
|
|
@ -338,8 +338,10 @@ static int axg_card_add_link(struct snd_soc_card *card, struct device_node *np,
|
|||
|
||||
if (axg_card_cpu_is_tdm_iface(dai_link->cpus->of_node))
|
||||
ret = axg_card_parse_tdm(card, np, index);
|
||||
else if (axg_card_cpu_is_codec(dai_link->cpus->of_node))
|
||||
else if (axg_card_cpu_is_codec(dai_link->cpus->of_node)) {
|
||||
dai_link->params = &codec_params;
|
||||
dai_link->no_pcm = 0; /* link is not a DPCM BE */
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -108,8 +108,10 @@ static int gx_card_add_link(struct snd_soc_card *card, struct device_node *np,
|
|||
ret = gx_card_parse_i2s(card, np, index);
|
||||
|
||||
/* Or apply codec to codec params if necessary */
|
||||
else if (gx_card_cpu_identify(dai_link->cpus, "CODEC CTRL"))
|
||||
else if (gx_card_cpu_identify(dai_link->cpus, "CODEC CTRL")) {
|
||||
dai_link->params = &codec_params;
|
||||
dai_link->no_pcm = 0; /* link is not a DPCM BE */
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -594,10 +594,16 @@ static int rsnd_ssi_stop(struct rsnd_mod *mod,
|
|||
* Capture: It might not receave data. Do nothing
|
||||
*/
|
||||
if (rsnd_io_is_play(io)) {
|
||||
rsnd_mod_write(mod, SSICR, cr | EN);
|
||||
rsnd_mod_write(mod, SSICR, cr | ssi->cr_en);
|
||||
rsnd_ssi_status_check(mod, DIRQ);
|
||||
}
|
||||
|
||||
/* In multi-SSI mode, stop is performed by setting ssi0129 in
|
||||
* SSI_CONTROL to 0 (in rsnd_ssio_stop_gen2). Do nothing here.
|
||||
*/
|
||||
if (rsnd_ssi_multi_slaves_runtime(io))
|
||||
return 0;
|
||||
|
||||
/*
|
||||
* disable SSI,
|
||||
* and, wait idle state
|
||||
|
@ -737,6 +743,9 @@ static void rsnd_ssi_parent_attach(struct rsnd_mod *mod,
|
|||
if (!rsnd_rdai_is_clk_master(rdai))
|
||||
return;
|
||||
|
||||
if (rsnd_ssi_is_multi_slave(mod, io))
|
||||
return;
|
||||
|
||||
switch (rsnd_mod_id(mod)) {
|
||||
case 1:
|
||||
case 2:
|
||||
|
|
|
@ -221,7 +221,7 @@ static int rsnd_ssiu_init_gen2(struct rsnd_mod *mod,
|
|||
i;
|
||||
|
||||
for_each_rsnd_mod_array(i, pos, io, rsnd_ssi_array) {
|
||||
shift = (i * 4) + 16;
|
||||
shift = (i * 4) + 20;
|
||||
val = (val & ~(0xF << shift)) |
|
||||
rsnd_mod_id(pos) << shift;
|
||||
}
|
||||
|
|
|
@ -423,7 +423,7 @@ static int dapm_kcontrol_data_alloc(struct snd_soc_dapm_widget *widget,
|
|||
|
||||
memset(&template, 0, sizeof(template));
|
||||
template.reg = e->reg;
|
||||
template.mask = e->mask << e->shift_l;
|
||||
template.mask = e->mask;
|
||||
template.shift = e->shift_l;
|
||||
template.off_val = snd_soc_enum_item_to_val(e, 0);
|
||||
template.on_val = template.off_val;
|
||||
|
@ -546,8 +546,22 @@ static bool dapm_kcontrol_set_value(const struct snd_kcontrol *kcontrol,
|
|||
if (data->value == value)
|
||||
return false;
|
||||
|
||||
if (data->widget)
|
||||
data->widget->on_val = value;
|
||||
if (data->widget) {
|
||||
switch (dapm_kcontrol_get_wlist(kcontrol)->widgets[0]->id) {
|
||||
case snd_soc_dapm_switch:
|
||||
case snd_soc_dapm_mixer:
|
||||
case snd_soc_dapm_mixer_named_ctl:
|
||||
data->widget->on_val = value & data->widget->mask;
|
||||
break;
|
||||
case snd_soc_dapm_demux:
|
||||
case snd_soc_dapm_mux:
|
||||
data->widget->on_val = value >> data->widget->shift;
|
||||
break;
|
||||
default:
|
||||
data->widget->on_val = value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
data->value = value;
|
||||
|
||||
|
|
|
@ -567,9 +567,25 @@ static void bdw_set_mach_params(const struct snd_soc_acpi_mach *mach,
|
|||
static struct snd_soc_dai_driver bdw_dai[] = {
|
||||
{
|
||||
.name = "ssp0-port",
|
||||
.playback = {
|
||||
.channels_min = 1,
|
||||
.channels_max = 8,
|
||||
},
|
||||
.capture = {
|
||||
.channels_min = 1,
|
||||
.channels_max = 8,
|
||||
},
|
||||
},
|
||||
{
|
||||
.name = "ssp1-port",
|
||||
.playback = {
|
||||
.channels_min = 1,
|
||||
.channels_max = 8,
|
||||
},
|
||||
.capture = {
|
||||
.channels_min = 1,
|
||||
.channels_max = 8,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -459,21 +459,69 @@ static void byt_set_mach_params(const struct snd_soc_acpi_mach *mach,
|
|||
static struct snd_soc_dai_driver byt_dai[] = {
|
||||
{
|
||||
.name = "ssp0-port",
|
||||
.playback = {
|
||||
.channels_min = 1,
|
||||
.channels_max = 8,
|
||||
},
|
||||
.capture = {
|
||||
.channels_min = 1,
|
||||
.channels_max = 8,
|
||||
},
|
||||
},
|
||||
{
|
||||
.name = "ssp1-port",
|
||||
.playback = {
|
||||
.channels_min = 1,
|
||||
.channels_max = 8,
|
||||
},
|
||||
.capture = {
|
||||
.channels_min = 1,
|
||||
.channels_max = 8,
|
||||
},
|
||||
},
|
||||
{
|
||||
.name = "ssp2-port",
|
||||
.playback = {
|
||||
.channels_min = 1,
|
||||
.channels_max = 8,
|
||||
},
|
||||
.capture = {
|
||||
.channels_min = 1,
|
||||
.channels_max = 8,
|
||||
}
|
||||
},
|
||||
{
|
||||
.name = "ssp3-port",
|
||||
.playback = {
|
||||
.channels_min = 1,
|
||||
.channels_max = 8,
|
||||
},
|
||||
.capture = {
|
||||
.channels_min = 1,
|
||||
.channels_max = 8,
|
||||
},
|
||||
},
|
||||
{
|
||||
.name = "ssp4-port",
|
||||
.playback = {
|
||||
.channels_min = 1,
|
||||
.channels_max = 8,
|
||||
},
|
||||
.capture = {
|
||||
.channels_min = 1,
|
||||
.channels_max = 8,
|
||||
},
|
||||
},
|
||||
{
|
||||
.name = "ssp5-port",
|
||||
.playback = {
|
||||
.channels_min = 1,
|
||||
.channels_max = 8,
|
||||
},
|
||||
.capture = {
|
||||
.channels_min = 1,
|
||||
.channels_max = 8,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -1547,6 +1547,9 @@ static int stm32_sai_sub_probe(struct platform_device *pdev)
|
|||
return ret;
|
||||
}
|
||||
|
||||
if (STM_SAI_PROTOCOL_IS_SPDIF(sai))
|
||||
conf = &stm32_sai_pcm_config_spdif;
|
||||
|
||||
ret = snd_dmaengine_pcm_register(&pdev->dev, conf, 0);
|
||||
if (ret) {
|
||||
if (ret != -EPROBE_DEFER)
|
||||
|
@ -1556,15 +1559,10 @@ static int stm32_sai_sub_probe(struct platform_device *pdev)
|
|||
|
||||
ret = snd_soc_register_component(&pdev->dev, &stm32_component,
|
||||
&sai->cpu_dai_drv, 1);
|
||||
if (ret) {
|
||||
if (ret)
|
||||
snd_dmaengine_pcm_unregister(&pdev->dev);
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (STM_SAI_PROTOCOL_IS_SPDIF(sai))
|
||||
conf = &stm32_sai_pcm_config_spdif;
|
||||
|
||||
return 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int stm32_sai_sub_remove(struct platform_device *pdev)
|
||||
|
|
Loading…
Reference in a new issue