From: Peter Ujfalusi <peter.ujfalusi@ti.com>
To: Sebastien Guiriec <s-guiriec@ti.com>
Cc: "Liam Girdwood" <lgirdwood@gmail.com>,
"Mark Brown" <broonie@opensource.wolfsonmicro.com>,
"Benoît Cousson" <b-cousson@ti.com>,
"Jarkko Nikula" <jarkko.nikula@bitmer.com>,
"Tony Lindgren" <tony@atomide.com>,
linux-omap@vger.kernel.org, alsa-devel@alsa-project.org
Subject: Re: [PATCH V2 2/2] ASoC: OMAP2+: Move McBSP, DMIC and McPDM to generic DMA DT binding
Date: Mon, 11 Mar 2013 15:18:35 +0100 [thread overview]
Message-ID: <513DE7BB.90303@ti.com> (raw)
In-Reply-To: <1362988223-22455-3-git-send-email-s-guiriec@ti.com>
On 03/11/2013 08:50 AM, Sebastien Guiriec wrote:
> Update OMAP2+ driver in order to use OMAP DMA DT binding for OMAP2+.
> In case of DT boot snd_dmaengine_generic_pcm_open function is used.
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
>
> Signed-off-by: Sebastien Guiriec <s-guiriec@ti.com>
> ---
> sound/soc/omap/mcbsp.c | 26 ++++++++++++++++----------
> sound/soc/omap/omap-dmic.c | 15 +++++++++------
> sound/soc/omap/omap-mcpdm.c | 22 ++++++++++++++--------
> sound/soc/omap/omap-pcm.c | 12 ++++++++++--
> sound/soc/omap/omap-pcm.h | 1 +
> 5 files changed, 50 insertions(+), 26 deletions(-)
>
> diff --git a/sound/soc/omap/mcbsp.c b/sound/soc/omap/mcbsp.c
> index 285c836..16936493 100644
> --- a/sound/soc/omap/mcbsp.c
> +++ b/sound/soc/omap/mcbsp.c
> @@ -1012,24 +1012,30 @@ int omap_mcbsp_init(struct platform_device *pdev)
> }
> }
>
> - res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "rx");
> - if (!res) {
> - dev_err(&pdev->dev, "invalid rx DMA channel\n");
> - return -ENODEV;
> + if (!pdev->dev.of_node) {
> + res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "rx");
> + if (!res) {
> + dev_err(&pdev->dev, "invalid rx DMA channel\n");
> + return -ENODEV;
> + }
> + mcbsp->dma_data[1].dma_req = res->start;
> }
> /* RX DMA request number, and port address configuration */
> mcbsp->dma_data[1].name = "Audio Capture";
> - mcbsp->dma_data[1].dma_req = res->start;
> + mcbsp->dma_data[1].dma_name = "rx";
> mcbsp->dma_data[1].port_addr = omap_mcbsp_dma_reg_params(mcbsp, 1);
>
> - res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "tx");
> - if (!res) {
> - dev_err(&pdev->dev, "invalid tx DMA channel\n");
> - return -ENODEV;
> + if (!pdev->dev.of_node) {
> + res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "tx");
> + if (!res) {
> + dev_err(&pdev->dev, "invalid tx DMA channel\n");
> + return -ENODEV;
> + }
> + mcbsp->dma_data[0].dma_req = res->start;
> }
> /* TX DMA request number, and port address configuration */
> mcbsp->dma_data[0].name = "Audio Playback";
> - mcbsp->dma_data[0].dma_req = res->start;
> + mcbsp->dma_data[0].dma_name = "tx";
> mcbsp->dma_data[0].port_addr = omap_mcbsp_dma_reg_params(mcbsp, 0);
>
> mcbsp->fclk = clk_get(&pdev->dev, "fck");
> diff --git a/sound/soc/omap/omap-dmic.c b/sound/soc/omap/omap-dmic.c
> index ba49ccd..8695b32 100644
> --- a/sound/soc/omap/omap-dmic.c
> +++ b/sound/soc/omap/omap-dmic.c
> @@ -62,6 +62,7 @@ struct omap_dmic {
> */
> static struct omap_pcm_dma_data omap_dmic_dai_dma_params = {
> .name = "DMIC capture",
> + .dma_name = "up_link",
> };
>
> static inline void omap_dmic_write(struct omap_dmic *dmic, u16 reg, u32 val)
> @@ -478,13 +479,15 @@ static int asoc_dmic_probe(struct platform_device *pdev)
> }
> omap_dmic_dai_dma_params.port_addr = res->start + OMAP_DMIC_DATA_REG;
>
> - res = platform_get_resource(pdev, IORESOURCE_DMA, 0);
> - if (!res) {
> - dev_err(dmic->dev, "invalid dma resource\n");
> - ret = -ENODEV;
> - goto err_put_clk;
> + if (!pdev->dev.of_node) {
> + res = platform_get_resource(pdev, IORESOURCE_DMA, 0);
> + if (!res) {
> + dev_err(dmic->dev, "invalid dma resource\n");
> + ret = -ENODEV;
> + goto err_put_clk;
> + }
> + omap_dmic_dai_dma_params.dma_req = res->start;
> }
> - omap_dmic_dai_dma_params.dma_req = res->start;
>
> res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "mpu");
> if (!res) {
> diff --git a/sound/soc/omap/omap-mcpdm.c b/sound/soc/omap/omap-mcpdm.c
> index 5ca11bd..f41bac8 100644
> --- a/sound/soc/omap/omap-mcpdm.c
> +++ b/sound/soc/omap/omap-mcpdm.c
> @@ -71,9 +71,11 @@ struct omap_mcpdm {
> static struct omap_pcm_dma_data omap_mcpdm_dai_dma_params[] = {
> {
> .name = "Audio playback",
> + .dma_name = "dn_link",
> },
> {
> .name = "Audio capture",
> + .dma_name = "up_link",
> },
> };
>
> @@ -449,17 +451,21 @@ static int asoc_mcpdm_probe(struct platform_device *pdev)
> omap_mcpdm_dai_dma_params[0].port_addr = res->start + MCPDM_REG_DN_DATA;
> omap_mcpdm_dai_dma_params[1].port_addr = res->start + MCPDM_REG_UP_DATA;
>
> - res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "dn_link");
> - if (!res)
> - return -ENODEV;
> + if (!pdev->dev.of_node) {
> + res = platform_get_resource_byname(pdev, IORESOURCE_DMA,
> + "dn_link");
> + if (!res)
> + return -ENODEV;
>
> - omap_mcpdm_dai_dma_params[0].dma_req = res->start;
> + omap_mcpdm_dai_dma_params[0].dma_req = res->start;
>
> - res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "up_link");
> - if (!res)
> - return -ENODEV;
> + res = platform_get_resource_byname(pdev, IORESOURCE_DMA,
> + "up_link");
> + if (!res)
> + return -ENODEV;
>
> - omap_mcpdm_dai_dma_params[1].dma_req = res->start;
> + omap_mcpdm_dai_dma_params[1].dma_req = res->start;
> + }
>
> res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "mpu");
> if (res == NULL)
> diff --git a/sound/soc/omap/omap-pcm.c b/sound/soc/omap/omap-pcm.c
> index c722c2e..df01a95 100644
> --- a/sound/soc/omap/omap-pcm.c
> +++ b/sound/soc/omap/omap-pcm.c
> @@ -176,13 +176,21 @@ static int omap_pcm_open(struct snd_pcm_substream *substream)
> {
> struct snd_soc_pcm_runtime *rtd = substream->private_data;
> struct omap_pcm_dma_data *dma_data;
> + int ret;
>
> snd_soc_set_runtime_hwparams(substream, &omap_pcm_hardware);
>
> dma_data = snd_soc_dai_get_dma_data(rtd->cpu_dai, substream);
>
> - return snd_dmaengine_pcm_open(substream, omap_dma_filter_fn,
> - &dma_data->dma_req);
> + if (rtd->cpu_dai->dev->of_node)
> + ret = snd_dmaengine_generic_pcm_open(substream,
> + rtd->cpu_dai->dev,
> + dma_data->dma_name);
> + else
> + ret = snd_dmaengine_pcm_open(substream, omap_dma_filter_fn,
> + &dma_data->dma_req);
> +
> + return ret;
> }
>
> static int omap_pcm_close(struct snd_pcm_substream *substream)
> diff --git a/sound/soc/omap/omap-pcm.h b/sound/soc/omap/omap-pcm.h
> index cabe74c..06faa38 100644
> --- a/sound/soc/omap/omap-pcm.h
> +++ b/sound/soc/omap/omap-pcm.h
> @@ -29,6 +29,7 @@ struct snd_pcm_substream;
>
> struct omap_pcm_dma_data {
> char *name; /* stream identifier */
> + char *dma_name; /* DMA request name */
> int dma_req; /* DMA request line */
> unsigned long port_addr; /* transmit/receive register */
> void (*set_threshold)(struct snd_pcm_substream *substream);
>
--
Péter
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2013-03-11 14:18 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-11 7:50 [PATCH V2 0/2] ASoC: OMAP2+: Update Audio IP with sDMA binding for DT boot Sebastien Guiriec
2013-03-11 7:50 ` [PATCH V2 1/2] ARM: dts: OMAP2+: Add SDMA Audio IPs bindings Sebastien Guiriec
2013-03-11 14:19 ` Peter Ujfalusi
2013-03-11 18:29 ` Jarkko Nikula
2013-03-11 7:50 ` [PATCH V2 2/2] ASoC: OMAP2+: Move McBSP, DMIC and McPDM to generic DMA DT binding Sebastien Guiriec
2013-03-11 14:18 ` Peter Ujfalusi [this message]
2013-03-11 18:29 ` Jarkko Nikula
2013-03-11 14:33 ` Mark Brown
2013-03-11 16:27 ` Tony Lindgren
2013-03-11 16:28 ` Mark Brown
2013-03-11 16:38 ` Tony Lindgren
2013-03-12 18:26 ` Mark Brown
2013-03-13 10:36 ` Mark Brown
2013-03-15 14:27 ` [PATCH V2 0/2] ASoC: OMAP2+: Update Audio IP with sDMA binding for DT boot Benoit Cousson
2013-03-15 16:56 ` Mark Brown
2013-03-15 17:01 ` Benoit Cousson
2013-03-15 17:05 ` Mark Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=513DE7BB.90303@ti.com \
--to=peter.ujfalusi@ti.com \
--cc=alsa-devel@alsa-project.org \
--cc=b-cousson@ti.com \
--cc=broonie@opensource.wolfsonmicro.com \
--cc=jarkko.nikula@bitmer.com \
--cc=lgirdwood@gmail.com \
--cc=linux-omap@vger.kernel.org \
--cc=s-guiriec@ti.com \
--cc=tony@atomide.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.