Loading sound/soc/fsl/Kconfig +7 −2 Original line number Diff line number Diff line Loading @@ -108,13 +108,18 @@ if SND_IMX_SOC config SND_SOC_IMX_SSI tristate config SND_SOC_IMX_PCM_FIQ config SND_SOC_IMX_PCM tristate config SND_SOC_IMX_PCM_FIQ bool select FIQ select SND_SOC_IMX_PCM config SND_SOC_IMX_PCM_DMA tristate bool select SND_SOC_DMAENGINE_PCM select SND_SOC_IMX_PCM config SND_SOC_IMX_AUDMUX tristate Loading sound/soc/fsl/Makefile +1 −4 Original line number Diff line number Diff line Loading @@ -41,10 +41,7 @@ endif obj-$(CONFIG_SND_SOC_IMX_SSI) += snd-soc-imx-ssi.o obj-$(CONFIG_SND_SOC_IMX_AUDMUX) += snd-soc-imx-audmux.o obj-$(CONFIG_SND_SOC_IMX_PCM_FIQ) += snd-soc-imx-pcm-fiq.o snd-soc-imx-pcm-fiq-y := imx-pcm-fiq.o imx-pcm.o obj-$(CONFIG_SND_SOC_IMX_PCM_DMA) += snd-soc-imx-pcm-dma.o snd-soc-imx-pcm-dma-y := imx-pcm-dma.o imx-pcm.o obj-$(CONFIG_SND_SOC_IMX_PCM) += snd-soc-imx-pcm.o # i.MX Machine Support snd-soc-eukrea-tlv320-objs := eukrea-tlv320.o Loading sound/soc/fsl/imx-pcm-dma.c +1 −20 Original line number Diff line number Diff line Loading @@ -154,26 +154,7 @@ static struct snd_soc_platform_driver imx_soc_platform_mx2 = { .pcm_free = imx_pcm_free, }; static int imx_soc_platform_probe(struct platform_device *pdev) int imx_pcm_dma_init(struct platform_device *pdev) { return snd_soc_register_platform(&pdev->dev, &imx_soc_platform_mx2); } static int imx_soc_platform_remove(struct platform_device *pdev) { snd_soc_unregister_platform(&pdev->dev); return 0; } static struct platform_driver imx_pcm_driver = { .driver = { .name = "imx-pcm-audio", .owner = THIS_MODULE, }, .probe = imx_soc_platform_probe, .remove = imx_soc_platform_remove, }; module_platform_driver(imx_pcm_driver); MODULE_LICENSE("GPL"); MODULE_ALIAS("platform:imx-pcm-audio"); sound/soc/fsl/imx-pcm-fiq.c +1 −21 Original line number Diff line number Diff line Loading @@ -281,7 +281,7 @@ static struct snd_soc_platform_driver imx_soc_platform_fiq = { .pcm_free = imx_pcm_fiq_free, }; static int imx_soc_platform_probe(struct platform_device *pdev) int imx_pcm_fiq_init(struct platform_device *pdev) { struct imx_ssi *ssi = platform_get_drvdata(pdev); int ret; Loading Loading @@ -314,23 +314,3 @@ static int imx_soc_platform_probe(struct platform_device *pdev) return ret; } static int imx_soc_platform_remove(struct platform_device *pdev) { snd_soc_unregister_platform(&pdev->dev); return 0; } static struct platform_driver imx_pcm_driver = { .driver = { .name = "imx-fiq-pcm-audio", .owner = THIS_MODULE, }, .probe = imx_soc_platform_probe, .remove = imx_soc_platform_remove, }; module_platform_driver(imx_pcm_driver); MODULE_LICENSE("GPL"); sound/soc/fsl/imx-pcm.c +35 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ int snd_imx_pcm_mmap(struct snd_pcm_substream *substream, runtime->dma_bytes); return ret; } EXPORT_SYMBOL_GPL(snd_imx_pcm_mmap); static int imx_pcm_preallocate_dma_buffer(struct snd_pcm *pcm, int stream) { Loading Loading @@ -79,6 +80,7 @@ int imx_pcm_new(struct snd_soc_pcm_runtime *rtd) out: return ret; } EXPORT_SYMBOL_GPL(imx_pcm_new); void imx_pcm_free(struct snd_pcm *pcm) { Loading @@ -100,6 +102,39 @@ void imx_pcm_free(struct snd_pcm *pcm) buf->area = NULL; } } EXPORT_SYMBOL_GPL(imx_pcm_free); static int imx_pcm_probe(struct platform_device *pdev) { if (strcmp(pdev->id_entry->name, "imx-fiq-pcm-audio") == 0) return imx_pcm_fiq_init(pdev); return imx_pcm_dma_init(pdev); } static int imx_pcm_remove(struct platform_device *pdev) { snd_soc_unregister_platform(&pdev->dev); return 0; } static struct platform_device_id imx_pcm_devtype[] = { { .name = "imx-pcm-audio", }, { .name = "imx-fiq-pcm-audio", }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(platform, imx_pcm_devtype); static struct platform_driver imx_pcm_driver = { .driver = { .name = "imx-pcm", .owner = THIS_MODULE, }, .id_table = imx_pcm_devtype, .probe = imx_pcm_probe, .remove = imx_pcm_remove, }; module_platform_driver(imx_pcm_driver); MODULE_DESCRIPTION("Freescale i.MX PCM driver"); MODULE_AUTHOR("Sascha Hauer <s.hauer@pengutronix.de>"); Loading Loading
sound/soc/fsl/Kconfig +7 −2 Original line number Diff line number Diff line Loading @@ -108,13 +108,18 @@ if SND_IMX_SOC config SND_SOC_IMX_SSI tristate config SND_SOC_IMX_PCM_FIQ config SND_SOC_IMX_PCM tristate config SND_SOC_IMX_PCM_FIQ bool select FIQ select SND_SOC_IMX_PCM config SND_SOC_IMX_PCM_DMA tristate bool select SND_SOC_DMAENGINE_PCM select SND_SOC_IMX_PCM config SND_SOC_IMX_AUDMUX tristate Loading
sound/soc/fsl/Makefile +1 −4 Original line number Diff line number Diff line Loading @@ -41,10 +41,7 @@ endif obj-$(CONFIG_SND_SOC_IMX_SSI) += snd-soc-imx-ssi.o obj-$(CONFIG_SND_SOC_IMX_AUDMUX) += snd-soc-imx-audmux.o obj-$(CONFIG_SND_SOC_IMX_PCM_FIQ) += snd-soc-imx-pcm-fiq.o snd-soc-imx-pcm-fiq-y := imx-pcm-fiq.o imx-pcm.o obj-$(CONFIG_SND_SOC_IMX_PCM_DMA) += snd-soc-imx-pcm-dma.o snd-soc-imx-pcm-dma-y := imx-pcm-dma.o imx-pcm.o obj-$(CONFIG_SND_SOC_IMX_PCM) += snd-soc-imx-pcm.o # i.MX Machine Support snd-soc-eukrea-tlv320-objs := eukrea-tlv320.o Loading
sound/soc/fsl/imx-pcm-dma.c +1 −20 Original line number Diff line number Diff line Loading @@ -154,26 +154,7 @@ static struct snd_soc_platform_driver imx_soc_platform_mx2 = { .pcm_free = imx_pcm_free, }; static int imx_soc_platform_probe(struct platform_device *pdev) int imx_pcm_dma_init(struct platform_device *pdev) { return snd_soc_register_platform(&pdev->dev, &imx_soc_platform_mx2); } static int imx_soc_platform_remove(struct platform_device *pdev) { snd_soc_unregister_platform(&pdev->dev); return 0; } static struct platform_driver imx_pcm_driver = { .driver = { .name = "imx-pcm-audio", .owner = THIS_MODULE, }, .probe = imx_soc_platform_probe, .remove = imx_soc_platform_remove, }; module_platform_driver(imx_pcm_driver); MODULE_LICENSE("GPL"); MODULE_ALIAS("platform:imx-pcm-audio");
sound/soc/fsl/imx-pcm-fiq.c +1 −21 Original line number Diff line number Diff line Loading @@ -281,7 +281,7 @@ static struct snd_soc_platform_driver imx_soc_platform_fiq = { .pcm_free = imx_pcm_fiq_free, }; static int imx_soc_platform_probe(struct platform_device *pdev) int imx_pcm_fiq_init(struct platform_device *pdev) { struct imx_ssi *ssi = platform_get_drvdata(pdev); int ret; Loading Loading @@ -314,23 +314,3 @@ static int imx_soc_platform_probe(struct platform_device *pdev) return ret; } static int imx_soc_platform_remove(struct platform_device *pdev) { snd_soc_unregister_platform(&pdev->dev); return 0; } static struct platform_driver imx_pcm_driver = { .driver = { .name = "imx-fiq-pcm-audio", .owner = THIS_MODULE, }, .probe = imx_soc_platform_probe, .remove = imx_soc_platform_remove, }; module_platform_driver(imx_pcm_driver); MODULE_LICENSE("GPL");
sound/soc/fsl/imx-pcm.c +35 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ int snd_imx_pcm_mmap(struct snd_pcm_substream *substream, runtime->dma_bytes); return ret; } EXPORT_SYMBOL_GPL(snd_imx_pcm_mmap); static int imx_pcm_preallocate_dma_buffer(struct snd_pcm *pcm, int stream) { Loading Loading @@ -79,6 +80,7 @@ int imx_pcm_new(struct snd_soc_pcm_runtime *rtd) out: return ret; } EXPORT_SYMBOL_GPL(imx_pcm_new); void imx_pcm_free(struct snd_pcm *pcm) { Loading @@ -100,6 +102,39 @@ void imx_pcm_free(struct snd_pcm *pcm) buf->area = NULL; } } EXPORT_SYMBOL_GPL(imx_pcm_free); static int imx_pcm_probe(struct platform_device *pdev) { if (strcmp(pdev->id_entry->name, "imx-fiq-pcm-audio") == 0) return imx_pcm_fiq_init(pdev); return imx_pcm_dma_init(pdev); } static int imx_pcm_remove(struct platform_device *pdev) { snd_soc_unregister_platform(&pdev->dev); return 0; } static struct platform_device_id imx_pcm_devtype[] = { { .name = "imx-pcm-audio", }, { .name = "imx-fiq-pcm-audio", }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(platform, imx_pcm_devtype); static struct platform_driver imx_pcm_driver = { .driver = { .name = "imx-pcm", .owner = THIS_MODULE, }, .id_table = imx_pcm_devtype, .probe = imx_pcm_probe, .remove = imx_pcm_remove, }; module_platform_driver(imx_pcm_driver); MODULE_DESCRIPTION("Freescale i.MX PCM driver"); MODULE_AUTHOR("Sascha Hauer <s.hauer@pengutronix.de>"); Loading