Merge branch 'asoc-4.20' into asoc-linus
commit
c5fd9e77be
|
@ -770,15 +770,22 @@ err_clk:
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(pcm3168a_probe);
|
EXPORT_SYMBOL_GPL(pcm3168a_probe);
|
||||||
|
|
||||||
void pcm3168a_remove(struct device *dev)
|
static void pcm3168a_disable(struct device *dev)
|
||||||
{
|
{
|
||||||
struct pcm3168a_priv *pcm3168a = dev_get_drvdata(dev);
|
struct pcm3168a_priv *pcm3168a = dev_get_drvdata(dev);
|
||||||
|
|
||||||
pm_runtime_disable(dev);
|
|
||||||
regulator_bulk_disable(ARRAY_SIZE(pcm3168a->supplies),
|
regulator_bulk_disable(ARRAY_SIZE(pcm3168a->supplies),
|
||||||
pcm3168a->supplies);
|
pcm3168a->supplies);
|
||||||
clk_disable_unprepare(pcm3168a->scki);
|
clk_disable_unprepare(pcm3168a->scki);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void pcm3168a_remove(struct device *dev)
|
||||||
|
{
|
||||||
|
pm_runtime_disable(dev);
|
||||||
|
#ifndef CONFIG_PM
|
||||||
|
pcm3168a_disable(dev);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
EXPORT_SYMBOL_GPL(pcm3168a_remove);
|
EXPORT_SYMBOL_GPL(pcm3168a_remove);
|
||||||
|
|
||||||
#ifdef CONFIG_PM
|
#ifdef CONFIG_PM
|
||||||
|
@ -833,10 +840,7 @@ static int pcm3168a_rt_suspend(struct device *dev)
|
||||||
|
|
||||||
regcache_cache_only(pcm3168a->regmap, true);
|
regcache_cache_only(pcm3168a->regmap, true);
|
||||||
|
|
||||||
regulator_bulk_disable(ARRAY_SIZE(pcm3168a->supplies),
|
pcm3168a_disable(dev);
|
||||||
pcm3168a->supplies);
|
|
||||||
|
|
||||||
clk_disable_unprepare(pcm3168a->scki);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1246,6 +1246,7 @@ MODULE_DEVICE_TABLE(of, rt5660_of_match);
|
||||||
|
|
||||||
static const struct acpi_device_id rt5660_acpi_match[] = {
|
static const struct acpi_device_id rt5660_acpi_match[] = {
|
||||||
{ "10EC5660", 0 },
|
{ "10EC5660", 0 },
|
||||||
|
{ "10EC3277", 0 },
|
||||||
{ },
|
{ },
|
||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(acpi, rt5660_acpi_match);
|
MODULE_DEVICE_TABLE(acpi, rt5660_acpi_match);
|
||||||
|
|
|
@ -389,6 +389,20 @@ static struct snd_soc_card snd_soc_card_cht = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct dmi_system_id cht_max98090_quirk_table[] = {
|
static const struct dmi_system_id cht_max98090_quirk_table[] = {
|
||||||
|
{
|
||||||
|
/* Clapper model Chromebook */
|
||||||
|
.matches = {
|
||||||
|
DMI_MATCH(DMI_PRODUCT_NAME, "Clapper"),
|
||||||
|
},
|
||||||
|
.driver_data = (void *)QUIRK_PMC_PLT_CLK_0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
/* Gnawty model Chromebook (Acer Chromebook CB3-111) */
|
||||||
|
.matches = {
|
||||||
|
DMI_MATCH(DMI_PRODUCT_NAME, "Gnawty"),
|
||||||
|
},
|
||||||
|
.driver_data = (void *)QUIRK_PMC_PLT_CLK_0,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
/* Swanky model Chromebook (Toshiba Chromebook 2) */
|
/* Swanky model Chromebook (Toshiba Chromebook 2) */
|
||||||
.matches = {
|
.matches = {
|
||||||
|
|
|
@ -1339,6 +1339,18 @@ int rsnd_kctrl_new(struct rsnd_mod *mod,
|
||||||
};
|
};
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 1) Avoid duplicate register (ex. MIXer case)
|
||||||
|
* 2) re-register if card was rebinded
|
||||||
|
*/
|
||||||
|
list_for_each_entry(kctrl, &card->controls, list) {
|
||||||
|
struct rsnd_kctrl_cfg *c = kctrl->private_data;
|
||||||
|
|
||||||
|
if (strcmp(kctrl->id.name, name) == 0 &&
|
||||||
|
c->mod == mod)
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (size > RSND_MAX_CHANNELS)
|
if (size > RSND_MAX_CHANNELS)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
|
|
|
@ -40,11 +40,8 @@ struct rsnd_dvc {
|
||||||
struct rsnd_kctrl_cfg_s ren; /* Ramp Enable */
|
struct rsnd_kctrl_cfg_s ren; /* Ramp Enable */
|
||||||
struct rsnd_kctrl_cfg_s rup; /* Ramp Rate Up */
|
struct rsnd_kctrl_cfg_s rup; /* Ramp Rate Up */
|
||||||
struct rsnd_kctrl_cfg_s rdown; /* Ramp Rate Down */
|
struct rsnd_kctrl_cfg_s rdown; /* Ramp Rate Down */
|
||||||
u32 flags;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#define KCTRL_INITIALIZED (1 << 0)
|
|
||||||
|
|
||||||
#define rsnd_dvc_get(priv, id) ((struct rsnd_dvc *)(priv->dvc) + id)
|
#define rsnd_dvc_get(priv, id) ((struct rsnd_dvc *)(priv->dvc) + id)
|
||||||
#define rsnd_dvc_nr(priv) ((priv)->dvc_nr)
|
#define rsnd_dvc_nr(priv) ((priv)->dvc_nr)
|
||||||
|
|
||||||
|
@ -227,9 +224,6 @@ static int rsnd_dvc_pcm_new(struct rsnd_mod *mod,
|
||||||
int channels = rsnd_rdai_channels_get(rdai);
|
int channels = rsnd_rdai_channels_get(rdai);
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (rsnd_flags_has(dvc, KCTRL_INITIALIZED))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
/* Volume */
|
/* Volume */
|
||||||
ret = rsnd_kctrl_new_m(mod, io, rtd,
|
ret = rsnd_kctrl_new_m(mod, io, rtd,
|
||||||
is_play ?
|
is_play ?
|
||||||
|
@ -285,8 +279,6 @@ static int rsnd_dvc_pcm_new(struct rsnd_mod *mod,
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
rsnd_flags_set(dvc, KCTRL_INITIALIZED);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue