Merge remote-tracking branch 'asoc/topic/fsl' into asoc-next
This commit is contained in:
commit
ec7118e391
|
@ -42,7 +42,8 @@ static int eukrea_tlv320_hw_params(struct snd_pcm_substream *substream,
|
|||
SND_SOC_DAIFMT_NB_NF |
|
||||
SND_SOC_DAIFMT_CBM_CFM);
|
||||
if (ret) {
|
||||
pr_err("%s: failed set cpu dai format\n", __func__);
|
||||
dev_err(cpu_dai->dev,
|
||||
"Failed to set the cpu dai format.\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -50,14 +51,16 @@ static int eukrea_tlv320_hw_params(struct snd_pcm_substream *substream,
|
|||
SND_SOC_DAIFMT_NB_NF |
|
||||
SND_SOC_DAIFMT_CBM_CFM);
|
||||
if (ret) {
|
||||
pr_err("%s: failed set codec dai format\n", __func__);
|
||||
dev_err(cpu_dai->dev,
|
||||
"Failed to set the codec format.\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = snd_soc_dai_set_sysclk(codec_dai, 0,
|
||||
CODEC_CLOCK, SND_SOC_CLOCK_OUT);
|
||||
if (ret) {
|
||||
pr_err("%s: failed setting codec sysclk\n", __func__);
|
||||
dev_err(cpu_dai->dev,
|
||||
"Failed to set the codec sysclk.\n");
|
||||
return ret;
|
||||
}
|
||||
snd_soc_dai_set_tdm_slot(cpu_dai, 0xffffffc, 0xffffffc, 2, 0);
|
||||
|
@ -65,7 +68,8 @@ static int eukrea_tlv320_hw_params(struct snd_pcm_substream *substream,
|
|||
ret = snd_soc_dai_set_sysclk(cpu_dai, IMX_SSP_SYS_CLK, 0,
|
||||
SND_SOC_CLOCK_IN);
|
||||
if (ret) {
|
||||
pr_err("can't set CPU system clock IMX_SSP_SYS_CLK\n");
|
||||
dev_err(cpu_dai->dev,
|
||||
"Can't set the IMX_SSP_SYS_CLK CPU system clock.\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -155,7 +159,8 @@ static struct platform_driver eukrea_tlv320_driver = {
|
|||
.owner = THIS_MODULE,
|
||||
},
|
||||
.probe = eukrea_tlv320_probe,
|
||||
.remove = eukrea_tlv320_remove,};
|
||||
.remove = eukrea_tlv320_remove,
|
||||
};
|
||||
|
||||
module_platform_driver(eukrea_tlv320_driver);
|
||||
|
||||
|
|
|
@ -963,7 +963,7 @@ static bool fsl_spdif_readable_reg(struct device *dev, unsigned int reg)
|
|||
return true;
|
||||
default:
|
||||
return false;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
default:
|
||||
return false;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
static const struct regmap_config fsl_spdif_regmap_config = {
|
||||
|
@ -1107,11 +1107,6 @@ static int fsl_spdif_probe(struct platform_device *pdev)
|
|||
|
||||
/* Get the addresses and IRQ */
|
||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
if (IS_ERR(res)) {
|
||||
dev_err(&pdev->dev, "could not determine device resources\n");
|
||||
return PTR_ERR(res);
|
||||
}
|
||||
|
||||
regs = devm_ioremap_resource(&pdev->dev, res);
|
||||
if (IS_ERR(regs))
|
||||
return PTR_ERR(regs);
|
||||
|
|
|
@ -469,19 +469,12 @@ static int fsl_ssi_startup(struct snd_pcm_substream *substream,
|
|||
* parameters, then the second stream may be
|
||||
* constrained to the wrong sample rate or size.
|
||||
*/
|
||||
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,
|
||||
SNDRV_PCM_HW_PARAM_SAMPLE_BITS,
|
||||
if (first_runtime->sample_bits) {
|
||||
snd_pcm_hw_constraint_minmax(substream->runtime,
|
||||
SNDRV_PCM_HW_PARAM_SAMPLE_BITS,
|
||||
first_runtime->sample_bits,
|
||||
first_runtime->sample_bits);
|
||||
}
|
||||
}
|
||||
|
||||
ssi_private->second_stream = substream;
|
||||
|
@ -748,7 +741,7 @@ static void fsl_ssi_ac97_init(void)
|
|||
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)
|
||||
{
|
||||
struct ccsr_ssi *ssi = fsl_ac97_data->ssi;
|
||||
|
@ -770,7 +763,7 @@ void fsl_ssi_ac97_write(struct snd_ac97 *ac97, unsigned short reg,
|
|||
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)
|
||||
{
|
||||
struct ccsr_ssi *ssi = fsl_ac97_data->ssi;
|
||||
|
@ -936,7 +929,7 @@ static int fsl_ssi_probe(struct platform_device *pdev)
|
|||
ssi_private->ssi_phys = res.start;
|
||||
|
||||
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);
|
||||
return -ENXIO;
|
||||
}
|
||||
|
@ -1135,7 +1128,6 @@ static int fsl_ssi_remove(struct platform_device *pdev)
|
|||
if (ssi_private->ssi_on_imx)
|
||||
imx_pcm_dma_exit(pdev);
|
||||
snd_soc_unregister_component(&pdev->dev);
|
||||
dev_set_drvdata(&pdev->dev, NULL);
|
||||
device_remove_file(&pdev->dev, &ssi_private->dev_attr);
|
||||
if (ssi_private->ssi_on_imx)
|
||||
clk_disable_unprepare(ssi_private->clk);
|
||||
|
|
|
@ -66,13 +66,10 @@ static ssize_t audmux_read_file(struct file *file, char __user *user_buf,
|
|||
size_t count, loff_t *ppos)
|
||||
{
|
||||
ssize_t ret;
|
||||
char *buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
|
||||
char *buf;
|
||||
int port = (int)file->private_data;
|
||||
u32 pdcr, ptcr;
|
||||
|
||||
if (!buf)
|
||||
return -ENOMEM;
|
||||
|
||||
if (audmux_clk) {
|
||||
ret = clk_prepare_enable(audmux_clk);
|
||||
if (ret)
|
||||
|
@ -85,6 +82,10 @@ static ssize_t audmux_read_file(struct file *file, char __user *user_buf,
|
|||
if (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",
|
||||
pdcr, ptcr);
|
||||
|
||||
|
|
|
@ -160,6 +160,7 @@ static struct platform_driver imx_mc13783_audio_driver = {
|
|||
.driver = {
|
||||
.name = "imx_mc13783",
|
||||
.owner = THIS_MODULE,
|
||||
.pm = &snd_soc_pm_ops,
|
||||
},
|
||||
.probe = imx_mc13783_probe,
|
||||
.remove = imx_mc13783_remove
|
||||
|
|
|
@ -201,6 +201,7 @@ static struct platform_driver imx_sgtl5000_driver = {
|
|||
.driver = {
|
||||
.name = "imx-sgtl5000",
|
||||
.owner = THIS_MODULE,
|
||||
.pm = &snd_soc_pm_ops,
|
||||
.of_match_table = imx_sgtl5000_dt_ids,
|
||||
},
|
||||
.probe = imx_sgtl5000_probe,
|
||||
|
|
|
@ -613,7 +613,6 @@ static int imx_ssi_probe(struct platform_device *pdev)
|
|||
failed_pcm:
|
||||
snd_soc_unregister_component(&pdev->dev);
|
||||
failed_register:
|
||||
release_mem_region(res->start, resource_size(res));
|
||||
clk_disable_unprepare(ssi->clk);
|
||||
failed_clk:
|
||||
snd_soc_set_ac97_ops(NULL);
|
||||
|
@ -623,7 +622,6 @@ failed_clk:
|
|||
|
||||
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);
|
||||
|
||||
if (!ssi->dma_init)
|
||||
|
@ -637,7 +635,6 @@ static int imx_ssi_remove(struct platform_device *pdev)
|
|||
if (ssi->flags & IMX_SSI_USE_AC97)
|
||||
ac97_ssi = NULL;
|
||||
|
||||
release_mem_region(res->start, resource_size(res));
|
||||
clk_disable_unprepare(ssi->clk);
|
||||
snd_soc_set_ac97_ops(NULL);
|
||||
|
||||
|
|
|
@ -279,8 +279,7 @@ static int imx_wm8962_probe(struct platform_device *pdev)
|
|||
return 0;
|
||||
|
||||
clk_fail:
|
||||
if (!IS_ERR(data->codec_clk))
|
||||
clk_disable_unprepare(data->codec_clk);
|
||||
clk_disable_unprepare(data->codec_clk);
|
||||
fail:
|
||||
if (ssi_np)
|
||||
of_node_put(ssi_np);
|
||||
|
@ -310,6 +309,7 @@ static struct platform_driver imx_wm8962_driver = {
|
|||
.driver = {
|
||||
.name = "imx-wm8962",
|
||||
.owner = THIS_MODULE,
|
||||
.pm = &snd_soc_pm_ops,
|
||||
.of_match_table = imx_wm8962_dt_ids,
|
||||
},
|
||||
.probe = imx_wm8962_probe,
|
||||
|
|
Loading…
Reference in New Issue