Commit 8ff9f38b authored by Mark Brown's avatar Mark Brown

Merge remote-tracking branch 'asoc/topic/fsl' into asoc-next

parents 54128df2 1abe729f
...@@ -963,7 +963,7 @@ static bool fsl_spdif_readable_reg(struct device *dev, unsigned int reg) ...@@ -963,7 +963,7 @@ static bool fsl_spdif_readable_reg(struct device *dev, unsigned int reg)
return true; return true;
default: default:
return false; return false;
}; }
} }
static bool fsl_spdif_writeable_reg(struct device *dev, unsigned int reg) static bool fsl_spdif_writeable_reg(struct device *dev, unsigned int reg)
...@@ -982,7 +982,7 @@ static bool fsl_spdif_writeable_reg(struct device *dev, unsigned int reg) ...@@ -982,7 +982,7 @@ static bool fsl_spdif_writeable_reg(struct device *dev, unsigned int reg)
return true; return true;
default: default:
return false; return false;
}; }
} }
static const struct regmap_config fsl_spdif_regmap_config = { static const struct regmap_config fsl_spdif_regmap_config = {
......
...@@ -469,20 +469,13 @@ static int fsl_ssi_startup(struct snd_pcm_substream *substream, ...@@ -469,20 +469,13 @@ static int fsl_ssi_startup(struct snd_pcm_substream *substream,
* parameters, then the second stream may be * parameters, then the second stream may be
* constrained to the wrong sample rate or size. * constrained to the wrong sample rate or size.
*/ */
if (!first_runtime->sample_bits) { if (first_runtime->sample_bits) {
dev_err(substream->pcm->card->dev,
"set sample size in %s stream first\n",
substream->stream ==
SNDRV_PCM_STREAM_PLAYBACK
? "capture" : "playback");
return -EAGAIN;
}
snd_pcm_hw_constraint_minmax(substream->runtime, snd_pcm_hw_constraint_minmax(substream->runtime,
SNDRV_PCM_HW_PARAM_SAMPLE_BITS, SNDRV_PCM_HW_PARAM_SAMPLE_BITS,
first_runtime->sample_bits, first_runtime->sample_bits,
first_runtime->sample_bits); first_runtime->sample_bits);
} }
}
ssi_private->second_stream = substream; ssi_private->second_stream = substream;
} }
...@@ -748,7 +741,7 @@ static void fsl_ssi_ac97_init(void) ...@@ -748,7 +741,7 @@ static void fsl_ssi_ac97_init(void)
fsl_ssi_setup(fsl_ac97_data); fsl_ssi_setup(fsl_ac97_data);
} }
void fsl_ssi_ac97_write(struct snd_ac97 *ac97, unsigned short reg, static void fsl_ssi_ac97_write(struct snd_ac97 *ac97, unsigned short reg,
unsigned short val) unsigned short val)
{ {
struct ccsr_ssi *ssi = fsl_ac97_data->ssi; struct ccsr_ssi *ssi = fsl_ac97_data->ssi;
...@@ -770,7 +763,7 @@ void fsl_ssi_ac97_write(struct snd_ac97 *ac97, unsigned short reg, ...@@ -770,7 +763,7 @@ void fsl_ssi_ac97_write(struct snd_ac97 *ac97, unsigned short reg,
udelay(100); udelay(100);
} }
unsigned short fsl_ssi_ac97_read(struct snd_ac97 *ac97, static unsigned short fsl_ssi_ac97_read(struct snd_ac97 *ac97,
unsigned short reg) unsigned short reg)
{ {
struct ccsr_ssi *ssi = fsl_ac97_data->ssi; struct ccsr_ssi *ssi = fsl_ac97_data->ssi;
...@@ -936,7 +929,7 @@ static int fsl_ssi_probe(struct platform_device *pdev) ...@@ -936,7 +929,7 @@ static int fsl_ssi_probe(struct platform_device *pdev)
ssi_private->ssi_phys = res.start; ssi_private->ssi_phys = res.start;
ssi_private->irq = irq_of_parse_and_map(np, 0); ssi_private->irq = irq_of_parse_and_map(np, 0);
if (ssi_private->irq == 0) { if (!ssi_private->irq) {
dev_err(&pdev->dev, "no irq for node %s\n", np->full_name); dev_err(&pdev->dev, "no irq for node %s\n", np->full_name);
return -ENXIO; return -ENXIO;
} }
...@@ -1135,7 +1128,6 @@ static int fsl_ssi_remove(struct platform_device *pdev) ...@@ -1135,7 +1128,6 @@ static int fsl_ssi_remove(struct platform_device *pdev)
if (ssi_private->ssi_on_imx) if (ssi_private->ssi_on_imx)
imx_pcm_dma_exit(pdev); imx_pcm_dma_exit(pdev);
snd_soc_unregister_component(&pdev->dev); snd_soc_unregister_component(&pdev->dev);
dev_set_drvdata(&pdev->dev, NULL);
device_remove_file(&pdev->dev, &ssi_private->dev_attr); device_remove_file(&pdev->dev, &ssi_private->dev_attr);
if (ssi_private->ssi_on_imx) if (ssi_private->ssi_on_imx)
clk_disable_unprepare(ssi_private->clk); clk_disable_unprepare(ssi_private->clk);
......
...@@ -66,13 +66,10 @@ static ssize_t audmux_read_file(struct file *file, char __user *user_buf, ...@@ -66,13 +66,10 @@ static ssize_t audmux_read_file(struct file *file, char __user *user_buf,
size_t count, loff_t *ppos) size_t count, loff_t *ppos)
{ {
ssize_t ret; ssize_t ret;
char *buf = kmalloc(PAGE_SIZE, GFP_KERNEL); char *buf;
int port = (int)file->private_data; int port = (int)file->private_data;
u32 pdcr, ptcr; u32 pdcr, ptcr;
if (!buf)
return -ENOMEM;
if (audmux_clk) { if (audmux_clk) {
ret = clk_prepare_enable(audmux_clk); ret = clk_prepare_enable(audmux_clk);
if (ret) if (ret)
...@@ -85,6 +82,10 @@ static ssize_t audmux_read_file(struct file *file, char __user *user_buf, ...@@ -85,6 +82,10 @@ static ssize_t audmux_read_file(struct file *file, char __user *user_buf,
if (audmux_clk) if (audmux_clk)
clk_disable_unprepare(audmux_clk); clk_disable_unprepare(audmux_clk);
buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
if (!buf)
return -ENOMEM;
ret = snprintf(buf, PAGE_SIZE, "PDCR: %08x\nPTCR: %08x\n", ret = snprintf(buf, PAGE_SIZE, "PDCR: %08x\nPTCR: %08x\n",
pdcr, ptcr); pdcr, ptcr);
......
...@@ -160,6 +160,7 @@ static struct platform_driver imx_mc13783_audio_driver = { ...@@ -160,6 +160,7 @@ static struct platform_driver imx_mc13783_audio_driver = {
.driver = { .driver = {
.name = "imx_mc13783", .name = "imx_mc13783",
.owner = THIS_MODULE, .owner = THIS_MODULE,
.pm = &snd_soc_pm_ops,
}, },
.probe = imx_mc13783_probe, .probe = imx_mc13783_probe,
.remove = imx_mc13783_remove .remove = imx_mc13783_remove
......
...@@ -201,6 +201,7 @@ static struct platform_driver imx_sgtl5000_driver = { ...@@ -201,6 +201,7 @@ static struct platform_driver imx_sgtl5000_driver = {
.driver = { .driver = {
.name = "imx-sgtl5000", .name = "imx-sgtl5000",
.owner = THIS_MODULE, .owner = THIS_MODULE,
.pm = &snd_soc_pm_ops,
.of_match_table = imx_sgtl5000_dt_ids, .of_match_table = imx_sgtl5000_dt_ids,
}, },
.probe = imx_sgtl5000_probe, .probe = imx_sgtl5000_probe,
......
...@@ -613,7 +613,6 @@ static int imx_ssi_probe(struct platform_device *pdev) ...@@ -613,7 +613,6 @@ static int imx_ssi_probe(struct platform_device *pdev)
failed_pcm: failed_pcm:
snd_soc_unregister_component(&pdev->dev); snd_soc_unregister_component(&pdev->dev);
failed_register: failed_register:
release_mem_region(res->start, resource_size(res));
clk_disable_unprepare(ssi->clk); clk_disable_unprepare(ssi->clk);
failed_clk: failed_clk:
snd_soc_set_ac97_ops(NULL); snd_soc_set_ac97_ops(NULL);
...@@ -623,7 +622,6 @@ static int imx_ssi_probe(struct platform_device *pdev) ...@@ -623,7 +622,6 @@ static int imx_ssi_probe(struct platform_device *pdev)
static int imx_ssi_remove(struct platform_device *pdev) static int imx_ssi_remove(struct platform_device *pdev)
{ {
struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
struct imx_ssi *ssi = platform_get_drvdata(pdev); struct imx_ssi *ssi = platform_get_drvdata(pdev);
if (!ssi->dma_init) if (!ssi->dma_init)
...@@ -637,7 +635,6 @@ static int imx_ssi_remove(struct platform_device *pdev) ...@@ -637,7 +635,6 @@ static int imx_ssi_remove(struct platform_device *pdev)
if (ssi->flags & IMX_SSI_USE_AC97) if (ssi->flags & IMX_SSI_USE_AC97)
ac97_ssi = NULL; ac97_ssi = NULL;
release_mem_region(res->start, resource_size(res));
clk_disable_unprepare(ssi->clk); clk_disable_unprepare(ssi->clk);
snd_soc_set_ac97_ops(NULL); snd_soc_set_ac97_ops(NULL);
......
...@@ -310,6 +310,7 @@ static struct platform_driver imx_wm8962_driver = { ...@@ -310,6 +310,7 @@ static struct platform_driver imx_wm8962_driver = {
.driver = { .driver = {
.name = "imx-wm8962", .name = "imx-wm8962",
.owner = THIS_MODULE, .owner = THIS_MODULE,
.pm = &snd_soc_pm_ops,
.of_match_table = imx_wm8962_dt_ids, .of_match_table = imx_wm8962_dt_ids,
}, },
.probe = imx_wm8962_probe, .probe = imx_wm8962_probe,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment