Merge remote-tracking branches 'asoc/topic/tegra', 'asoc/topic/tlv320aic23', 'asoc/topic/topology', 'asoc/topic/twl6040' and 'asoc/topic/txx9' into asoc-next
This commit is contained in:
commit
7b7b384957
|
@ -174,10 +174,9 @@ static const struct snd_soc_dapm_route tlv320aic23_intercon[] = {
|
||||||
{"ROUT", NULL, "Output Mixer"},
|
{"ROUT", NULL, "Output Mixer"},
|
||||||
|
|
||||||
/* Inputs */
|
/* Inputs */
|
||||||
{"Line Input", "NULL", "LLINEIN"},
|
{"Line Input", NULL, "LLINEIN"},
|
||||||
{"Line Input", "NULL", "RLINEIN"},
|
{"Line Input", NULL, "RLINEIN"},
|
||||||
|
{"Mic Input", NULL, "MICIN"},
|
||||||
{"Mic Input", "NULL", "MICIN"},
|
|
||||||
|
|
||||||
/* input mux */
|
/* input mux */
|
||||||
{"Capture Source", "Line", "Line Input"},
|
{"Capture Source", "Line", "Line Input"},
|
||||||
|
|
|
@ -606,6 +606,14 @@ static const struct snd_kcontrol_new twl6040_snd_controls[] = {
|
||||||
twl6040_headset_power_get_enum,
|
twl6040_headset_power_get_enum,
|
||||||
twl6040_headset_power_put_enum),
|
twl6040_headset_power_put_enum),
|
||||||
|
|
||||||
|
/* Left HS PDM data routed to Right HSDAC */
|
||||||
|
SOC_SINGLE("Headset Mono to Stereo Playback Switch",
|
||||||
|
TWL6040_REG_HSRCTL, 7, 1, 0),
|
||||||
|
|
||||||
|
/* Left HF PDM data routed to Right HFDAC */
|
||||||
|
SOC_SINGLE("Handsfree Mono to Stereo Playback Switch",
|
||||||
|
TWL6040_REG_HFRCTL, 5, 1, 0),
|
||||||
|
|
||||||
SOC_ENUM_EXT("PLL Selection", twl6040_power_mode_enum,
|
SOC_ENUM_EXT("PLL Selection", twl6040_power_mode_enum,
|
||||||
twl6040_pll_get_enum, twl6040_pll_put_enum),
|
twl6040_pll_get_enum, twl6040_pll_put_enum),
|
||||||
};
|
};
|
||||||
|
|
|
@ -495,12 +495,13 @@ static void remove_widget(struct snd_soc_component *comp,
|
||||||
struct snd_kcontrol *kcontrol = w->kcontrols[i];
|
struct snd_kcontrol *kcontrol = w->kcontrols[i];
|
||||||
struct soc_enum *se =
|
struct soc_enum *se =
|
||||||
(struct soc_enum *)kcontrol->private_value;
|
(struct soc_enum *)kcontrol->private_value;
|
||||||
|
int j;
|
||||||
|
|
||||||
snd_ctl_remove(card, kcontrol);
|
snd_ctl_remove(card, kcontrol);
|
||||||
|
|
||||||
kfree(se->dobj.control.dvalues);
|
kfree(se->dobj.control.dvalues);
|
||||||
for (i = 0; i < se->items; i++)
|
for (j = 0; j < se->items; j++)
|
||||||
kfree(se->dobj.control.dtexts[i]);
|
kfree(se->dobj.control.dtexts[j]);
|
||||||
|
|
||||||
kfree(se);
|
kfree(se);
|
||||||
}
|
}
|
||||||
|
|
|
@ -318,7 +318,6 @@ static int tegra20_ac97_platform_probe(struct platform_device *pdev)
|
||||||
ac97 = devm_kzalloc(&pdev->dev, sizeof(struct tegra20_ac97),
|
ac97 = devm_kzalloc(&pdev->dev, sizeof(struct tegra20_ac97),
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
if (!ac97) {
|
if (!ac97) {
|
||||||
dev_err(&pdev->dev, "Can't allocate tegra20_ac97\n");
|
|
||||||
ret = -ENOMEM;
|
ret = -ENOMEM;
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,6 +41,7 @@ static inline void tegra20_das_write(u32 reg, u32 val)
|
||||||
static inline u32 tegra20_das_read(u32 reg)
|
static inline u32 tegra20_das_read(u32 reg)
|
||||||
{
|
{
|
||||||
u32 val;
|
u32 val;
|
||||||
|
|
||||||
regmap_read(das->regmap, reg, &val);
|
regmap_read(das->regmap, reg, &val);
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
@ -142,7 +143,6 @@ static int tegra20_das_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
das = devm_kzalloc(&pdev->dev, sizeof(struct tegra20_das), GFP_KERNEL);
|
das = devm_kzalloc(&pdev->dev, sizeof(struct tegra20_das), GFP_KERNEL);
|
||||||
if (!das) {
|
if (!das) {
|
||||||
dev_err(&pdev->dev, "Can't allocate tegra20_das\n");
|
|
||||||
ret = -ENOMEM;
|
ret = -ENOMEM;
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
|
@ -345,7 +345,6 @@ static int tegra20_i2s_platform_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
i2s = devm_kzalloc(&pdev->dev, sizeof(struct tegra20_i2s), GFP_KERNEL);
|
i2s = devm_kzalloc(&pdev->dev, sizeof(struct tegra20_i2s), GFP_KERNEL);
|
||||||
if (!i2s) {
|
if (!i2s) {
|
||||||
dev_err(&pdev->dev, "Can't allocate tegra20_i2s\n");
|
|
||||||
ret = -ENOMEM;
|
ret = -ENOMEM;
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
|
@ -271,10 +271,9 @@ static int tegra20_spdif_platform_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
spdif = devm_kzalloc(&pdev->dev, sizeof(struct tegra20_spdif),
|
spdif = devm_kzalloc(&pdev->dev, sizeof(struct tegra20_spdif),
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
if (!spdif) {
|
if (!spdif)
|
||||||
dev_err(&pdev->dev, "Can't allocate tegra20_spdif\n");
|
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
|
||||||
dev_set_drvdata(&pdev->dev, spdif);
|
dev_set_drvdata(&pdev->dev, spdif);
|
||||||
|
|
||||||
spdif->clk_spdif_out = devm_clk_get(&pdev->dev, "spdif_out");
|
spdif->clk_spdif_out = devm_clk_get(&pdev->dev, "spdif_out");
|
||||||
|
|
|
@ -41,6 +41,7 @@ static inline void tegra30_apbif_write(u32 reg, u32 val)
|
||||||
static inline u32 tegra30_apbif_read(u32 reg)
|
static inline u32 tegra30_apbif_read(u32 reg)
|
||||||
{
|
{
|
||||||
u32 val;
|
u32 val;
|
||||||
|
|
||||||
regmap_read(ahub->regmap_apbif, reg, &val);
|
regmap_read(ahub->regmap_apbif, reg, &val);
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
@ -560,10 +561,8 @@ static int tegra30_ahub_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
ahub = devm_kzalloc(&pdev->dev, sizeof(struct tegra30_ahub),
|
ahub = devm_kzalloc(&pdev->dev, sizeof(struct tegra30_ahub),
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
if (!ahub) {
|
if (!ahub)
|
||||||
dev_err(&pdev->dev, "Can't allocate tegra30_ahub\n");
|
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
|
||||||
dev_set_drvdata(&pdev->dev, ahub);
|
dev_set_drvdata(&pdev->dev, ahub);
|
||||||
|
|
||||||
ahub->soc_data = soc_data;
|
ahub->soc_data = soc_data;
|
||||||
|
|
|
@ -385,7 +385,6 @@ static int tegra30_i2s_platform_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
i2s = devm_kzalloc(&pdev->dev, sizeof(struct tegra30_i2s), GFP_KERNEL);
|
i2s = devm_kzalloc(&pdev->dev, sizeof(struct tegra30_i2s), GFP_KERNEL);
|
||||||
if (!i2s) {
|
if (!i2s) {
|
||||||
dev_err(&pdev->dev, "Can't allocate tegra30_i2s\n");
|
|
||||||
ret = -ENOMEM;
|
ret = -ENOMEM;
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
|
@ -169,10 +169,8 @@ static int tegra_alc5632_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
alc5632 = devm_kzalloc(&pdev->dev,
|
alc5632 = devm_kzalloc(&pdev->dev,
|
||||||
sizeof(struct tegra_alc5632), GFP_KERNEL);
|
sizeof(struct tegra_alc5632), GFP_KERNEL);
|
||||||
if (!alc5632) {
|
if (!alc5632)
|
||||||
dev_err(&pdev->dev, "Can't allocate tegra_alc5632\n");
|
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
|
||||||
|
|
||||||
card->dev = &pdev->dev;
|
card->dev = &pdev->dev;
|
||||||
platform_set_drvdata(pdev, card);
|
platform_set_drvdata(pdev, card);
|
||||||
|
|
|
@ -225,10 +225,8 @@ static int tegra_max98090_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
machine = devm_kzalloc(&pdev->dev,
|
machine = devm_kzalloc(&pdev->dev,
|
||||||
sizeof(struct tegra_max98090), GFP_KERNEL);
|
sizeof(struct tegra_max98090), GFP_KERNEL);
|
||||||
if (!machine) {
|
if (!machine)
|
||||||
dev_err(&pdev->dev, "Can't allocate tegra_max98090\n");
|
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
|
||||||
|
|
||||||
card->dev = &pdev->dev;
|
card->dev = &pdev->dev;
|
||||||
platform_set_drvdata(pdev, card);
|
platform_set_drvdata(pdev, card);
|
||||||
|
|
|
@ -170,10 +170,8 @@ static int tegra_rt5640_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
machine = devm_kzalloc(&pdev->dev,
|
machine = devm_kzalloc(&pdev->dev,
|
||||||
sizeof(struct tegra_rt5640), GFP_KERNEL);
|
sizeof(struct tegra_rt5640), GFP_KERNEL);
|
||||||
if (!machine) {
|
if (!machine)
|
||||||
dev_err(&pdev->dev, "Can't allocate tegra_rt5640\n");
|
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
|
||||||
|
|
||||||
card->dev = &pdev->dev;
|
card->dev = &pdev->dev;
|
||||||
platform_set_drvdata(pdev, card);
|
platform_set_drvdata(pdev, card);
|
||||||
|
|
|
@ -120,10 +120,8 @@ static int tegra_sgtl5000_driver_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
machine = devm_kzalloc(&pdev->dev, sizeof(struct tegra_sgtl5000),
|
machine = devm_kzalloc(&pdev->dev, sizeof(struct tegra_sgtl5000),
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
if (!machine) {
|
if (!machine)
|
||||||
dev_err(&pdev->dev, "Can't allocate tegra_sgtl5000 struct\n");
|
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
|
||||||
|
|
||||||
card->dev = &pdev->dev;
|
card->dev = &pdev->dev;
|
||||||
platform_set_drvdata(pdev, card);
|
platform_set_drvdata(pdev, card);
|
||||||
|
|
|
@ -128,10 +128,8 @@ static int tegra_wm8753_driver_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
machine = devm_kzalloc(&pdev->dev, sizeof(struct tegra_wm8753),
|
machine = devm_kzalloc(&pdev->dev, sizeof(struct tegra_wm8753),
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
if (!machine) {
|
if (!machine)
|
||||||
dev_err(&pdev->dev, "Can't allocate tegra_wm8753 struct\n");
|
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
|
||||||
|
|
||||||
card->dev = &pdev->dev;
|
card->dev = &pdev->dev;
|
||||||
platform_set_drvdata(pdev, card);
|
platform_set_drvdata(pdev, card);
|
||||||
|
|
|
@ -248,10 +248,8 @@ static int tegra_wm8903_driver_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
machine = devm_kzalloc(&pdev->dev, sizeof(struct tegra_wm8903),
|
machine = devm_kzalloc(&pdev->dev, sizeof(struct tegra_wm8903),
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
if (!machine) {
|
if (!machine)
|
||||||
dev_err(&pdev->dev, "Can't allocate tegra_wm8903 struct\n");
|
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
|
||||||
|
|
||||||
card->dev = &pdev->dev;
|
card->dev = &pdev->dev;
|
||||||
platform_set_drvdata(pdev, card);
|
platform_set_drvdata(pdev, card);
|
||||||
|
|
|
@ -77,10 +77,8 @@ static int tegra_wm9712_driver_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
machine = devm_kzalloc(&pdev->dev, sizeof(struct tegra_wm9712),
|
machine = devm_kzalloc(&pdev->dev, sizeof(struct tegra_wm9712),
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
if (!machine) {
|
if (!machine)
|
||||||
dev_err(&pdev->dev, "Can't allocate tegra_wm9712 struct\n");
|
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
|
||||||
|
|
||||||
card->dev = &pdev->dev;
|
card->dev = &pdev->dev;
|
||||||
platform_set_drvdata(pdev, card);
|
platform_set_drvdata(pdev, card);
|
||||||
|
|
|
@ -123,10 +123,8 @@ static int tegra_snd_trimslice_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
trimslice = devm_kzalloc(&pdev->dev, sizeof(struct tegra_trimslice),
|
trimslice = devm_kzalloc(&pdev->dev, sizeof(struct tegra_trimslice),
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
if (!trimslice) {
|
if (!trimslice)
|
||||||
dev_err(&pdev->dev, "Can't allocate tegra_trimslice\n");
|
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
|
||||||
|
|
||||||
card->dev = &pdev->dev;
|
card->dev = &pdev->dev;
|
||||||
platform_set_drvdata(pdev, card);
|
platform_set_drvdata(pdev, card);
|
||||||
|
|
|
@ -206,7 +206,7 @@ static void txx9aclc_dma_tasklet(unsigned long data)
|
||||||
static int txx9aclc_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
|
static int txx9aclc_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
|
||||||
{
|
{
|
||||||
struct txx9aclc_dmadata *dmadata = substream->runtime->private_data;
|
struct txx9aclc_dmadata *dmadata = substream->runtime->private_data;
|
||||||
struct txx9aclc_plat_drvdata *drvdata =txx9aclc_drvdata;
|
struct txx9aclc_plat_drvdata *drvdata = txx9aclc_drvdata;
|
||||||
void __iomem *base = drvdata->base;
|
void __iomem *base = drvdata->base;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
@ -340,7 +340,7 @@ static bool filter(struct dma_chan *chan, void *param)
|
||||||
static int txx9aclc_dma_init(struct txx9aclc_soc_device *dev,
|
static int txx9aclc_dma_init(struct txx9aclc_soc_device *dev,
|
||||||
struct txx9aclc_dmadata *dmadata)
|
struct txx9aclc_dmadata *dmadata)
|
||||||
{
|
{
|
||||||
struct txx9aclc_plat_drvdata *drvdata =txx9aclc_drvdata;
|
struct txx9aclc_plat_drvdata *drvdata = txx9aclc_drvdata;
|
||||||
struct txx9dmac_slave *ds = &dmadata->dma_slave;
|
struct txx9dmac_slave *ds = &dmadata->dma_slave;
|
||||||
dma_cap_mask_t mask;
|
dma_cap_mask_t mask;
|
||||||
|
|
||||||
|
@ -392,6 +392,7 @@ static int txx9aclc_pcm_remove(struct snd_soc_platform *platform)
|
||||||
for (i = 0; i < 2; i++) {
|
for (i = 0; i < 2; i++) {
|
||||||
struct txx9aclc_dmadata *dmadata = &dev->dmadata[i];
|
struct txx9aclc_dmadata *dmadata = &dev->dmadata[i];
|
||||||
struct dma_chan *chan = dmadata->dma_chan;
|
struct dma_chan *chan = dmadata->dma_chan;
|
||||||
|
|
||||||
if (chan) {
|
if (chan) {
|
||||||
dmadata->frag_count = -1;
|
dmadata->frag_count = -1;
|
||||||
dmaengine_terminate_all(chan);
|
dmaengine_terminate_all(chan);
|
||||||
|
|
Loading…
Reference in New Issue