All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tomasz Figa <tomasz.figa@gmail.com>
To: Mark Brown <broonie@kernel.org>
Cc: alsa-devel@alsa-project.org, linux-samsung-soc@vger.kernel.org,
	Mike Turquette <mturquette@linaro.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Sangbeom Kim <sbkim73@samsung.com>,
	Vinod Koul <vinod.koul@intel.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Padmavathi Venna <padma.v@samsung.com>,
	linux-kernel@vger.kernel.org, linux-spi@vger.kernel.org,
	Takashi Iwai <tiwai@suse.de>, Kukjin Kim <kgene.kim@samsung.com>,
	Dan Williams <djbw@fb.com>, Russell King <linux@arm.linux.org.uk>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 10/18] spi: s3c64xx: Do not require legacy DMA API in case of S3C64XX
Date: Tue, 13 Aug 2013 22:20:19 +0200	[thread overview]
Message-ID: <1686992.nQEd3xdoHn@flatron> (raw)
In-Reply-To: <20130813201816.GG6427@sirena.org.uk>

On Tuesday 13 of August 2013 21:18:16 Mark Brown wrote:
> On Tue, Aug 13, 2013 at 07:55:47PM +0100, Mark Brown wrote:
> > I'm still debugging what's going on here - the basic refcounting all
> > looks OK in the SPI driver, I can see it requesting and releasing with
> > the refcounts all going back to zero in the DMA driver as expected but
> > when we come back to the device later on dmaengine is deciding the
> > device is unavailable quite early on in the process.
> 
> The failure is happening because this check is failing:
> 
> 	/* devices with multiple channels need special handling as we need 
to
> 	 * ensure that all channels are either private or public.
> 	 */
> 	if (dev->chancnt > 1 && !dma_has_cap(DMA_PRIVATE, dev->cap_mask))
> 		list_for_each_entry(chan, &dev->channels, device_node) {
> 			/* some channels are already publicly allocated */
> 			if (chan->client_count) {
> 
> which is happening because dma1chan0 (which is on the same DMA
> controller as the SPI controller) and in fact every other DMA channel
> had references grabbed by the network stack dmaengine helpers which I'd
> enabled in config.  The fact that they do that is unhelpful, it renders
> the API mostly useless, but is nothing to do with this series.
> 
> Having tweaked the config everything appears to work so:
> 
> Tested-by: Mark Brown <broonie@linaro.org>
> 
> though the whole thing with the filter function is as I say a bit fun
> from a code review point of view.

I believe you just found another brokenness of current DMA channel 
matching.

Thanks for testing.

Best regards,
Tomasz

WARNING: multiple messages have this Message-ID (diff)
From: tomasz.figa@gmail.com (Tomasz Figa)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 10/18] spi: s3c64xx: Do not require legacy DMA API in case of S3C64XX
Date: Tue, 13 Aug 2013 22:20:19 +0200	[thread overview]
Message-ID: <1686992.nQEd3xdoHn@flatron> (raw)
In-Reply-To: <20130813201816.GG6427@sirena.org.uk>

On Tuesday 13 of August 2013 21:18:16 Mark Brown wrote:
> On Tue, Aug 13, 2013 at 07:55:47PM +0100, Mark Brown wrote:
> > I'm still debugging what's going on here - the basic refcounting all
> > looks OK in the SPI driver, I can see it requesting and releasing with
> > the refcounts all going back to zero in the DMA driver as expected but
> > when we come back to the device later on dmaengine is deciding the
> > device is unavailable quite early on in the process.
> 
> The failure is happening because this check is failing:
> 
> 	/* devices with multiple channels need special handling as we need 
to
> 	 * ensure that all channels are either private or public.
> 	 */
> 	if (dev->chancnt > 1 && !dma_has_cap(DMA_PRIVATE, dev->cap_mask))
> 		list_for_each_entry(chan, &dev->channels, device_node) {
> 			/* some channels are already publicly allocated */
> 			if (chan->client_count) {
> 
> which is happening because dma1chan0 (which is on the same DMA
> controller as the SPI controller) and in fact every other DMA channel
> had references grabbed by the network stack dmaengine helpers which I'd
> enabled in config.  The fact that they do that is unhelpful, it renders
> the API mostly useless, but is nothing to do with this series.
> 
> Having tweaked the config everything appears to work so:
> 
> Tested-by: Mark Brown <broonie@linaro.org>
> 
> though the whole thing with the filter function is as I say a bit fun
> from a code review point of view.

I believe you just found another brokenness of current DMA channel 
matching.

Thanks for testing.

Best regards,
Tomasz

WARNING: multiple messages have this Message-ID (diff)
From: Tomasz Figa <tomasz.figa@gmail.com>
To: Mark Brown <broonie@kernel.org>
Cc: linux-samsung-soc@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org,
	linux-spi@vger.kernel.org, Dan Williams <djbw@fb.com>,
	Jaroslav Kysela <perex@perex.cz>,
	Kukjin Kim <kgene.kim@samsung.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Mike Turquette <mturquette@linaro.org>,
	Padmavathi Venna <padma.v@samsung.com>,
	Russell King <linux@arm.linux.org.uk>,
	Sangbeom Kim <sbkim73@samsung.com>, Takashi Iwai <tiwai@suse.de>,
	Vinod Koul <vinod.koul@intel.com>
Subject: Re: [PATCH 10/18] spi: s3c64xx: Do not require legacy DMA API in case of S3C64XX
Date: Tue, 13 Aug 2013 22:20:19 +0200	[thread overview]
Message-ID: <1686992.nQEd3xdoHn@flatron> (raw)
In-Reply-To: <20130813201816.GG6427@sirena.org.uk>

On Tuesday 13 of August 2013 21:18:16 Mark Brown wrote:
> On Tue, Aug 13, 2013 at 07:55:47PM +0100, Mark Brown wrote:
> > I'm still debugging what's going on here - the basic refcounting all
> > looks OK in the SPI driver, I can see it requesting and releasing with
> > the refcounts all going back to zero in the DMA driver as expected but
> > when we come back to the device later on dmaengine is deciding the
> > device is unavailable quite early on in the process.
> 
> The failure is happening because this check is failing:
> 
> 	/* devices with multiple channels need special handling as we need 
to
> 	 * ensure that all channels are either private or public.
> 	 */
> 	if (dev->chancnt > 1 && !dma_has_cap(DMA_PRIVATE, dev->cap_mask))
> 		list_for_each_entry(chan, &dev->channels, device_node) {
> 			/* some channels are already publicly allocated */
> 			if (chan->client_count) {
> 
> which is happening because dma1chan0 (which is on the same DMA
> controller as the SPI controller) and in fact every other DMA channel
> had references grabbed by the network stack dmaengine helpers which I'd
> enabled in config.  The fact that they do that is unhelpful, it renders
> the API mostly useless, but is nothing to do with this series.
> 
> Having tweaked the config everything appears to work so:
> 
> Tested-by: Mark Brown <broonie@linaro.org>
> 
> though the whole thing with the filter function is as I say a bit fun
> from a code review point of view.

I believe you just found another brokenness of current DMA channel 
matching.

Thanks for testing.

Best regards,
Tomasz


  reply	other threads:[~2013-08-13 20:20 UTC|newest]

Thread overview: 102+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-11 17:59 [PATCH 00/18] ARM: s3c64xx: Let amba-pl08x driver handle DMA Tomasz Figa
2013-08-11 17:59 ` Tomasz Figa
2013-08-11 17:59 ` [PATCH 01/18] dmaengine: PL08x: Refactor pl08x_getbytes_chan() to lower indentation Tomasz Figa
2013-08-11 17:59   ` Tomasz Figa
2013-08-11 17:59   ` Tomasz Figa
2013-08-11 17:59 ` [PATCH 02/18] dmaengine: PL08x: Add support for different offset of CONFIG register Tomasz Figa
2013-08-11 17:59   ` Tomasz Figa
2013-08-11 17:59 ` [PATCH 03/18] dmaengine: PL08x: Rework LLI handling to be less fragile Tomasz Figa
2013-08-11 17:59   ` Tomasz Figa
2013-08-28  6:49   ` Linus Walleij
2013-08-28  6:49     ` Linus Walleij
2013-08-11 17:59 ` [PATCH 04/18] dmaengine: PL08x: Move LLI dumping code into separate function Tomasz Figa
2013-08-11 17:59   ` Tomasz Figa
2013-08-28  6:50   ` Linus Walleij
2013-08-28  6:50     ` Linus Walleij
2013-08-11 17:59 ` [PATCH 05/18] dmaengine: PL08x: Add support for PL080S variant Tomasz Figa
2013-08-11 17:59   ` Tomasz Figa
2013-08-11 17:59 ` [PATCH 06/18] dmaengine: PL08x: Add support for different maximum transfer size Tomasz Figa
2013-08-11 17:59   ` Tomasz Figa
2013-08-11 17:59 ` [PATCH 07/18] dmaengine: PL08x: Fix reading the byte count in cctl Tomasz Figa
2013-08-11 17:59   ` Tomasz Figa
2013-08-11 17:59   ` Tomasz Figa
2013-08-11 17:59 ` [PATCH 08/18] dmaengine: PL08x: Add cyclic transfer support Tomasz Figa
2013-08-11 17:59   ` Tomasz Figa
2013-08-11 17:59 ` [PATCH 09/18] ASoC: Samsung: Do not queue cyclic buffers multiple times Tomasz Figa
2013-08-11 17:59   ` Tomasz Figa
2013-08-28  7:06   ` Linus Walleij
2013-08-28  7:06     ` Linus Walleij
2013-08-28  8:23     ` Tomasz Figa
2013-08-28  8:23       ` Tomasz Figa
2013-08-28  9:53     ` Mark Brown
2013-08-28  9:53       ` Mark Brown
2013-08-29 16:36   ` Mark Brown
2013-08-29 16:36     ` [alsa-devel] " Mark Brown
2013-08-29 16:36     ` Mark Brown
2013-08-29 17:36     ` Linus Walleij
2013-08-29 17:36       ` Linus Walleij
2013-08-11 17:59 ` [PATCH 10/18] spi: s3c64xx: Do not require legacy DMA API in case of S3C64XX Tomasz Figa
2013-08-11 17:59   ` Tomasz Figa
2013-08-12 23:36   ` Mark Brown
2013-08-12 23:36     ` Mark Brown
2013-08-12 23:49     ` Tomasz Figa
2013-08-12 23:49       ` Tomasz Figa
2013-08-13 12:02       ` Mark Brown
2013-08-13 12:02         ` Mark Brown
2013-08-13 12:02         ` Mark Brown
2013-08-13 18:55       ` Mark Brown
2013-08-13 18:55         ` Mark Brown
2013-08-13 20:18         ` Mark Brown
2013-08-13 20:18           ` Mark Brown
2013-08-13 20:20           ` Tomasz Figa [this message]
2013-08-13 20:20             ` Tomasz Figa
2013-08-13 20:20             ` Tomasz Figa
2013-08-13 20:29             ` Mark Brown
2013-08-13 20:29               ` Mark Brown
2013-08-13 20:29               ` Mark Brown
2013-08-11 17:59 ` [PATCH 11/18] ASoC: Samsung: " Tomasz Figa
2013-08-11 17:59   ` Tomasz Figa
2013-08-11 17:59 ` [PATCH 12/18] ARM: s3c64xx: Add support for DMA using generic amba-pl08x driver Tomasz Figa
2013-08-11 17:59   ` Tomasz Figa
2013-08-13 17:52   ` Mark Brown
2013-08-13 17:52     ` Mark Brown
2013-08-13 20:10     ` Tomasz Figa
2013-08-13 20:10       ` Tomasz Figa
2013-08-13 20:35       ` Mark Brown
2013-08-13 20:35         ` Mark Brown
2013-08-13 20:35         ` Mark Brown
2013-08-13 21:11         ` Tomasz Figa
2013-08-13 21:11           ` Tomasz Figa
2013-08-24  0:17   ` [PATCH v2 " Tomasz Figa
2013-08-24  0:17     ` Tomasz Figa
2013-08-11 17:59 ` [PATCH 13/18] ARM: s3c64xx: clock: Add clkdev lookup for DMA clocks Tomasz Figa
2013-08-11 17:59   ` Tomasz Figa
2013-08-11 17:59 ` [PATCH 14/18] clk: samsung: s3c64xx: Add aliases " Tomasz Figa
2013-08-11 17:59   ` Tomasz Figa
2013-08-12 19:45   ` Mike Turquette
2013-08-12 19:45     ` Mike Turquette
2013-08-12 19:45     ` Mike Turquette
2013-08-11 17:59 ` [PATCH 15/18] ARM: s3c64xx: Remove legacy DMA driver Tomasz Figa
2013-08-11 17:59   ` Tomasz Figa
2013-08-11 17:59 ` [PATCH 16/18] clk: samsung: s3c64xx: Remove clock aliases of old " Tomasz Figa
2013-08-11 17:59   ` Tomasz Figa
2013-08-12 19:45   ` Mike Turquette
2013-08-12 19:45     ` Mike Turquette
2013-08-12 19:45     ` Mike Turquette
2013-08-11 17:59 ` [PATCH 17/18] spi: s3c64xx: Always select S3C64XX_PL080 when ARCH_S3C64XX is enabled Tomasz Figa
2013-08-11 17:59   ` Tomasz Figa
2013-08-11 19:11   ` Mark Brown
2013-08-11 19:11     ` Mark Brown
2013-08-11 19:11     ` Mark Brown
2013-08-11 23:03     ` Tomasz Figa
2013-08-11 23:03       ` Tomasz Figa
2013-08-11 23:03       ` Tomasz Figa
2013-08-12 10:07       ` Mark Brown
2013-08-12 10:07         ` Mark Brown
2013-08-12 10:07         ` Mark Brown
2013-08-11 17:59 ` [PATCH 18/18] ASoC: Samsung: " Tomasz Figa
2013-08-11 17:59   ` Tomasz Figa
2013-08-15 11:50 ` [PATCH 00/18] ARM: s3c64xx: Let amba-pl08x driver handle DMA Tomasz Figa
2013-08-15 11:50   ` Tomasz Figa
2013-09-02  6:16 ` Vinod Koul
2013-09-02  6:16   ` Vinod Koul

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=1686992.nQEd3xdoHn@flatron \
    --to=tomasz.figa@gmail.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=djbw@fb.com \
    --cc=kgene.kim@samsung.com \
    --cc=lgirdwood@gmail.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=mturquette@linaro.org \
    --cc=padma.v@samsung.com \
    --cc=sbkim73@samsung.com \
    --cc=tiwai@suse.de \
    --cc=vinod.koul@intel.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.