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:
Mark Brown 2017-04-30 22:16:37 +09:00
18 changed files with 30 additions and 42 deletions

View File

@ -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"},

View File

@ -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),
}; };

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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