All of lore.kernel.org
 help / color / mirror / Atom feed
From: Timur Tabi <timur@freescale.com>
To: Shawn Guo <shawn.guo@linaro.org>
Cc: alsa-devel@alsa-project.org,
	Mark Brown <broonie@opensource.wolfsonmicro.com>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v3 10/11] ASoC: fsl: let fsl_ssi work with imx pcm and machine drivers
Date: Thu, 8 Mar 2012 14:45:29 -0600	[thread overview]
Message-ID: <4F591A69.9060401@freescale.com> (raw)
In-Reply-To: <1331225990-27308-11-git-send-email-shawn.guo@linaro.org>

Shawn Guo wrote:

> +	if (of_device_is_compatible(pdev->dev.of_node, "fsl,imx1-ssi")) {

I wonder if the i.MX code should be protected by an #ifdef.  There's no
point in compiling this code on PowerPC.

> +		/*
> +		 * FIXME: The dma burst size must equal to ssi watermark
> +		 * setting on imx.  We have burstsize be "fifo_depth - 2"
> +		 * here because "fifo_depth - 2" rather than fifo_depth is
> +		 * being written into watermark register in fsl_ssi_startup().
> +		 * Is this something needs to be fixed for PowerPC?

Setting the watermark to fifo_depth-2 allows the SSI to continue storing
data into the FIFO (during capture) in the case the DMA engine isn't fast
enough.  I don't want the FIFO to be completely full before we start the DMA.

For playback, it's the same thing.  I can't be sure the FIFO is completely
empty when it's time to DMA more data.

> +		 */
> +		ssi_private->dma_params_tx.burstsize =
> +			ssi_private->fifo_depth - 2;
> +		ssi_private->dma_params_rx.burstsize =
> +			ssi_private->fifo_depth - 2;
> +		ssi_private->dma_params_tx.dma_addr =
> +			ssi_private->ssi_phys + offsetof(struct ccsr_ssi, stx0);
> +		ssi_private->dma_params_rx.dma_addr =
> +			ssi_private->ssi_phys + offsetof(struct ccsr_ssi, srx0);

So I'm a little confused by this new binding.  I went through a lot of
work to remove DMA-specific data from the SSI driver, and here you are
adding a bunch of it back.  What you're doing here -- I'm doing it in the
DMA driver where it belongs.

> +		/*
> +		 * TODO: This is a temporary solution and should be changed
> +		 * to use generic DMA binding later when the helplers get in.
> +		 */
> +		ret = of_property_read_u32_array(pdev->dev.of_node,
> +					"fsl,ssi-dma-events", dma_events, 2);
> +		if (ret) {
> +			dev_err(&pdev->dev, "could not get dma events\n");
> +			goto error_irq;
> +		}
> +		ssi_private->dma_params_tx.dma = dma_events[0];
> +		ssi_private->dma_params_rx.dma = dma_events[1];

of_property_read_u32_array seems overkill for just two integers.

ssi_private->dma_params_tx.dma = be32_to_cpu(prop[0]);
ssi_private->dma_params_rx.dma = be32_to_cpu(prop[1]);

-- 
Timur Tabi
Linux kernel developer at Freescale

WARNING: multiple messages have this Message-ID (diff)
From: timur@freescale.com (Timur Tabi)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 10/11] ASoC: fsl: let fsl_ssi work with imx pcm and machine drivers
Date: Thu, 8 Mar 2012 14:45:29 -0600	[thread overview]
Message-ID: <4F591A69.9060401@freescale.com> (raw)
In-Reply-To: <1331225990-27308-11-git-send-email-shawn.guo@linaro.org>

Shawn Guo wrote:

> +	if (of_device_is_compatible(pdev->dev.of_node, "fsl,imx1-ssi")) {

I wonder if the i.MX code should be protected by an #ifdef.  There's no
point in compiling this code on PowerPC.

> +		/*
> +		 * FIXME: The dma burst size must equal to ssi watermark
> +		 * setting on imx.  We have burstsize be "fifo_depth - 2"
> +		 * here because "fifo_depth - 2" rather than fifo_depth is
> +		 * being written into watermark register in fsl_ssi_startup().
> +		 * Is this something needs to be fixed for PowerPC?

Setting the watermark to fifo_depth-2 allows the SSI to continue storing
data into the FIFO (during capture) in the case the DMA engine isn't fast
enough.  I don't want the FIFO to be completely full before we start the DMA.

For playback, it's the same thing.  I can't be sure the FIFO is completely
empty when it's time to DMA more data.

> +		 */
> +		ssi_private->dma_params_tx.burstsize =
> +			ssi_private->fifo_depth - 2;
> +		ssi_private->dma_params_rx.burstsize =
> +			ssi_private->fifo_depth - 2;
> +		ssi_private->dma_params_tx.dma_addr =
> +			ssi_private->ssi_phys + offsetof(struct ccsr_ssi, stx0);
> +		ssi_private->dma_params_rx.dma_addr =
> +			ssi_private->ssi_phys + offsetof(struct ccsr_ssi, srx0);

So I'm a little confused by this new binding.  I went through a lot of
work to remove DMA-specific data from the SSI driver, and here you are
adding a bunch of it back.  What you're doing here -- I'm doing it in the
DMA driver where it belongs.

> +		/*
> +		 * TODO: This is a temporary solution and should be changed
> +		 * to use generic DMA binding later when the helplers get in.
> +		 */
> +		ret = of_property_read_u32_array(pdev->dev.of_node,
> +					"fsl,ssi-dma-events", dma_events, 2);
> +		if (ret) {
> +			dev_err(&pdev->dev, "could not get dma events\n");
> +			goto error_irq;
> +		}
> +		ssi_private->dma_params_tx.dma = dma_events[0];
> +		ssi_private->dma_params_rx.dma = dma_events[1];

of_property_read_u32_array seems overkill for just two integers.

ssi_private->dma_params_tx.dma = be32_to_cpu(prop[0]);
ssi_private->dma_params_rx.dma = be32_to_cpu(prop[1]);

-- 
Timur Tabi
Linux kernel developer at Freescale

  parent reply	other threads:[~2012-03-08 20:45 UTC|newest]

Thread overview: 136+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-08 16:59 [PATCH v3 00/11] ASoC: add imx-sgtl5000 machine driver working with fsl_ssi Shawn Guo
2012-03-08 16:59 ` Shawn Guo
2012-03-08 16:59 ` [PATCH v3 01/11] ASoC: core: missing set_fmt should not be complaint Shawn Guo
2012-03-08 16:59   ` Shawn Guo
2012-03-08 18:24   ` Mark Brown
2012-03-08 18:24     ` Mark Brown
2012-03-08 16:59 ` [PATCH v3 02/11] ASoC: fsl: separate SSI and DMA Kconfig options Shawn Guo
2012-03-08 16:59   ` Shawn Guo
2012-03-08 16:59 ` [PATCH v3 03/11] ASoC: imx: merge sound/soc/imx into sound/soc/fsl Shawn Guo
2012-03-08 16:59   ` Shawn Guo
2012-03-08 16:59 ` [PATCH v3 04/11] ASoC: fsl: rename imx-pcm Kconfig options and filename Shawn Guo
2012-03-08 16:59   ` Shawn Guo
2012-03-08 16:59 ` [PATCH v3 05/11] ASoC: fsl: create fsl_utils to accommodate the common functions Shawn Guo
2012-03-08 16:59   ` Shawn Guo
2012-03-08 16:59 ` [PATCH v3 06/11] ASoC: fsl: remove helper fsl_asoc_get_codec_dev_name Shawn Guo
2012-03-08 16:59   ` Shawn Guo
2012-03-08 16:59 ` [PATCH v3 07/11] ASoC: fsl: check property 'compatible' for the machine name Shawn Guo
2012-03-08 16:59   ` Shawn Guo
2012-03-08 20:50   ` Timur Tabi
2012-03-08 20:50     ` Timur Tabi
2012-03-09 11:51   ` Mark Brown
2012-03-09 11:51     ` Mark Brown
2012-03-08 16:59 ` [PATCH v3 08/11] ASoC: fsl: make fsl_ssi driver compilable on ARM/IMX Shawn Guo
2012-03-08 16:59   ` Shawn Guo
2012-03-08 20:13   ` Timur Tabi
2012-03-08 20:13     ` Timur Tabi
2012-03-09  1:26     ` Shawn Guo
2012-03-09  1:26       ` Shawn Guo
2012-03-09  2:09       ` Tabi Timur-B04825
2012-03-09  2:09         ` Tabi Timur-B04825
2012-03-09  3:21         ` Shawn Guo
2012-03-09  3:21           ` Shawn Guo
2012-03-09  4:03           ` Tabi Timur-B04825
2012-03-09  4:03             ` Tabi Timur-B04825
2012-03-09 11:53           ` Mark Brown
2012-03-09 11:53             ` Mark Brown
2012-03-08 16:59 ` [PATCH v3 09/11] ASoC: fsl: remove the fatal error checking on codec-handle Shawn Guo
2012-03-08 16:59   ` Shawn Guo
2012-03-08 20:50   ` Timur Tabi
2012-03-08 20:50     ` Timur Tabi
2012-03-09  1:32     ` Shawn Guo
2012-03-09  1:32       ` Shawn Guo
2012-03-13 23:23       ` Timur Tabi
2012-03-13 23:23         ` Timur Tabi
2012-03-13 23:46         ` Mark Brown
2012-03-13 23:46           ` Mark Brown
2012-03-14  2:57           ` Tabi Timur-B04825
2012-03-14  2:57             ` Tabi Timur-B04825
2012-03-14 12:27             ` Mark Brown
2012-03-14 12:27               ` Mark Brown
2012-03-14 23:00               ` Timur Tabi
2012-03-14 23:00                 ` Timur Tabi
2012-03-15 13:02                 ` Shawn Guo
2012-03-15 13:02                   ` Shawn Guo
2012-03-15 13:37                   ` Tabi Timur-B04825
2012-03-15 13:37                     ` Tabi Timur-B04825
2012-03-15 14:21                     ` Shawn Guo
2012-03-15 14:21                       ` Shawn Guo
2012-03-15 15:39                       ` Trent Piepho
2012-03-15 15:39                         ` [alsa-devel] " Trent Piepho
2012-03-15 15:57                         ` Trent Piepho
2012-03-15 15:57                           ` [alsa-devel] " Trent Piepho
2012-03-15 16:24                           ` Mark Brown
2012-03-15 16:24                             ` [alsa-devel] " Mark Brown
2012-03-15 16:47                       ` Timur Tabi
2012-03-15 16:47                         ` Timur Tabi
2012-03-16  1:27                         ` Shawn Guo
2012-03-16  1:27                           ` Shawn Guo
2012-03-16  1:55                           ` Tabi Timur-B04825
2012-03-16  1:55                             ` Tabi Timur-B04825
2012-03-17 21:42                             ` Mark Brown
2012-03-17 21:42                               ` Mark Brown
2012-03-15 14:27                 ` Mark Brown
2012-03-15 14:27                   ` Mark Brown
2012-03-15 14:34                   ` Shawn Guo
2012-03-15 14:34                     ` Shawn Guo
2012-03-15 16:44                   ` Timur Tabi
2012-03-15 16:44                     ` Timur Tabi
2012-03-15 17:11                     ` Mark Brown
2012-03-15 17:11                       ` Mark Brown
2012-03-16  2:01                     ` Shawn Guo
2012-03-16  2:01                       ` Shawn Guo
2012-03-16  2:07                       ` Tabi Timur-B04825
2012-03-16  2:07                         ` Tabi Timur-B04825
2012-03-16  2:23                         ` Shawn Guo
2012-03-16  2:23                           ` Shawn Guo
2012-03-16  3:44                           ` Tabi Timur-B04825
2012-03-16  3:44                             ` Tabi Timur-B04825
2012-03-16  3:53                             ` Shawn Guo
2012-03-16  3:53                               ` Shawn Guo
2012-03-16  4:08                               ` Tabi Timur-B04825
2012-03-16  4:08                                 ` Tabi Timur-B04825
2012-03-16  4:14                                 ` Shawn Guo
2012-03-16  4:14                                   ` Shawn Guo
2012-03-16  4:17                                   ` Tabi Timur-B04825
2012-03-16  4:17                                     ` Tabi Timur-B04825
2012-03-16  2:52                         ` Shawn Guo
2012-03-16  2:52                           ` Shawn Guo
2012-03-16  3:53                           ` Tabi Timur-B04825
2012-03-16  3:53                             ` Tabi Timur-B04825
2012-03-16  4:05                             ` Shawn Guo
2012-03-16  4:05                               ` Shawn Guo
2012-03-16 19:18                             ` Mark Brown
2012-03-16 19:18                               ` Mark Brown
2012-03-09 11:55     ` Mark Brown
2012-03-09 11:55       ` Mark Brown
2012-03-08 16:59 ` [PATCH v3 10/11] ASoC: fsl: let fsl_ssi work with imx pcm and machine drivers Shawn Guo
2012-03-08 16:59   ` Shawn Guo
2012-03-08 19:15   ` Sascha Hauer
2012-03-08 19:15     ` Sascha Hauer
2012-03-09  1:51     ` Shawn Guo
2012-03-09  1:51       ` Shawn Guo
2012-03-08 20:45   ` Timur Tabi [this message]
2012-03-08 20:45     ` Timur Tabi
2012-03-09  3:19     ` Shawn Guo
2012-03-09  3:19       ` Shawn Guo
2012-03-09  4:02       ` Tabi Timur-B04825
2012-03-09  4:02         ` Tabi Timur-B04825
2012-03-09  5:00         ` Shawn Guo
2012-03-09  5:00           ` Shawn Guo
2012-03-08 16:59 ` [PATCH v3 11/11] ASoC: fsl: add imx-sgtl5000 machine driver Shawn Guo
2012-03-08 16:59   ` Shawn Guo
2012-03-08 20:05 ` [PATCH v3 00/11] ASoC: add imx-sgtl5000 machine driver working with fsl_ssi Timur Tabi
2012-03-08 20:05   ` Timur Tabi
2012-03-09  1:19   ` Shawn Guo
2012-03-09  1:19     ` Shawn Guo
2012-03-09  2:11     ` Tabi Timur-B04825
2012-03-09  2:11       ` Tabi Timur-B04825
2012-03-09  7:13       ` Shawn Guo
2012-03-09  7:13         ` Shawn Guo
2012-03-09  7:28         ` Shawn Guo
2012-03-09  7:28           ` Shawn Guo
2012-03-09 12:12           ` Mark Brown
2012-03-09 12:12             ` Mark Brown
2012-03-09 11:59         ` Mark Brown
2012-03-09 11:59           ` 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=4F591A69.9060401@freescale.com \
    --to=timur@freescale.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@opensource.wolfsonmicro.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=s.hauer@pengutronix.de \
    --cc=shawn.guo@linaro.org \
    /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.