All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: Robert Jarzmik <robert.jarzmik@free.fr>
Cc: Daniel Mack <daniel@zonque.org>,
	Haojian Zhuang <haojian.zhuang@gmail.com>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	Tejun Heo <tj@kernel.org>, Vinod Koul <vinod.koul@intel.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	Ezequiel Garcia <ezequiel.garcia@free-electrons.com>,
	Boris Brezillon <boris.brezillon@free-electrons.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Brian Norris <computersforpeace@gmail.com>,
	Marek Vasut <marek.vasut@gmail.com>,
	Richard Weinberger <richard@nod.at>,
	Cyrille Pitchen <cyrille.pitchen@wedev4u.fr>,
	Nicolas Pitre <nico@fluxnic.net>,
	Samuel Ortiz <samuel@sortiz.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Russell King <linux@armlinux.org.uk>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	IDE-ML <linux-ide@vger.kernel.org>,
	dmaengine@vger.kernel.org,
	Linux Media Mailing List <linux-media@vger.kernel.org>,
	linux-mmc <linux-mmc@vger.kernel.org>,
	linux-mtd <linux-mtd@lists.infradead.org>,
	Networking <netdev@vger.kernel.org>,
	devel@driverdev.osuosl.org, alsa-devel@alsa-project.org
Subject: [02/15] ARM: pxa: add dma slave map
Date: Tue, 3 Apr 2018 17:39:08 +0200	[thread overview]
Message-ID: <CAK8P3a2FFVnPj4+VoQET3-Jz2DaYbc6UUJnX1fH5s8VumJZ7Og@mail.gmail.com> (raw)

On Tue, Apr 3, 2018 at 5:18 PM, Robert Jarzmik <robert.jarzmik@free.fr> wrote:
> Arnd Bergmann <arnd@arndb.de> writes:
>
>>> +       { "smc911x.0", "rx", PDMA_FILTER_PARAM(LOWEST, -1) },
>>> +       { "smc911x.0", "tx", PDMA_FILTER_PARAM(LOWEST, -1) },
>>> +       { "smc91x.0", "data", PDMA_FILTER_PARAM(LOWEST, -1) },
>>
>> This one is interesting, as you are dealing with an off-chip device,
>> and the channel number is '-'1. How does this even work? Does it
>> mean
>
> This relies on pxa_dma, in which the "-1" for a requestor line means "no
> requestor" or said in another way "always requesting". As a consequence, as soon
> as the DMA descriptors are queued, the transfer begins, and it is supposed
> implicitely that the FIFO output availability is at least as quick as the system
> bus and the DMA size is perfectly fit for the FIFO available bytes.
>
> This is what has been the underlying of DMA transfers of smc91x(x) on the PXA
> platforms, where the smc91x(s) are directly wired on the system bus (the same
> bus having DRAM, SRAM, IO-mapped devices).

Ok, I looked at the driver in more detail now and found the scary parts.
So it's using the async DMA interface to do synchronous DMA in
interrupt context in order to transfer the rx data faster than an readsl()
would, correct?

It still feels odd to me that there is an entry in the slave map for
a device that does not have a request line. However, it also seems
that the entire code in those two drivers that deals with DMA is specific
to PXA anyway, so maybe it can be done differently: instead of
calling dma_request_slave_channel_compat() or dma_request_chan()
with a fake request line, how about calling dma_request_channel()
with an NULL filter function and data, and have the driver handle
the empty data case the same way as the rq=-1 case today?

>>> +       /* PXA25x specific map */
>>> +       { "pxa25x-ssp.0", "rx", PDMA_FILTER_PARAM(LOWEST, 13) },
>>> +       { "pxa25x-ssp.0", "tx", PDMA_FILTER_PARAM(LOWEST, 14) },
>>> +       { "pxa25x-nssp.1", "rx", PDMA_FILTER_PARAM(LOWEST, 15) },
>>> +       { "pxa25x-nssp.1", "tx", PDMA_FILTER_PARAM(LOWEST, 16) },
>>> +       { "pxa25x-nssp.2", "rx", PDMA_FILTER_PARAM(LOWEST, 23) },
>>> +       { "pxa25x-nssp.2", "tx", PDMA_FILTER_PARAM(LOWEST, 24) },
>>> +       { "pxa-pcm-audio", "nssp2_rx", PDMA_FILTER_PARAM(LOWEST, 15) },
>>> +       { "pxa-pcm-audio", "nssp2_tx", PDMA_FILTER_PARAM(LOWEST, 16) },
>>> +       { "pxa-pcm-audio", "nssp3_rx", PDMA_FILTER_PARAM(LOWEST, 23) },
>>> +       { "pxa-pcm-audio", "nssp3_tx", PDMA_FILTER_PARAM(LOWEST, 24) },
>>> +
>>> +       /* PXA27x specific map */
>>> +       { "pxa-pcm-audio", "ssp3_rx", PDMA_FILTER_PARAM(LOWEST, 66) },
>>> +       { "pxa-pcm-audio", "ssp3_tx", PDMA_FILTER_PARAM(LOWEST, 67) },
>>> +       { "pxa27x-camera.0", "CI_Y", PDMA_FILTER_PARAM(HIGHEST, 68) },
>>> +       { "pxa27x-camera.0", "CI_U", PDMA_FILTER_PARAM(HIGHEST, 69) },
>>> +       { "pxa27x-camera.0", "CI_V", PDMA_FILTER_PARAM(HIGHEST, 70) },
>>> +
>>> +       /* PXA3xx specific map */
>>> +       { "pxa-pcm-audio", "ssp4_rx", PDMA_FILTER_PARAM(LOWEST, 2) },
>>> +       { "pxa-pcm-audio", "ssp4_tx", PDMA_FILTER_PARAM(LOWEST, 3) },
>>> +       { "pxa2xx-mci.1", "rx", PDMA_FILTER_PARAM(LOWEST, 93) },
>>> +       { "pxa2xx-mci.1", "tx", PDMA_FILTER_PARAM(LOWEST, 94) },
>>> +       { "pxa3xx-nand", "data", PDMA_FILTER_PARAM(LOWEST, 97) },
>>> +       { "pxa2xx-mci.2", "rx", PDMA_FILTER_PARAM(LOWEST, 100) },
>>> +       { "pxa2xx-mci.2", "tx", PDMA_FILTER_PARAM(LOWEST, 101) },
>>> +};
>>
>> Since more than half the entries in here are chip specific, maybe it would be
>> better to split that table into three and have a copy for each one in
>> arch/arm/mach-pxa/pxa{25x.27x.3xx}.c?
> Mmmh, today the split is :
>  - 16 common entries
>  - 10 pxa25x specific entries
>  - 5 pxa27x specific entries
>  - 7 pxa3xx specific entries
>  => total of 38 lines
>
> After the split we'll have :
>  - 26 pxa25x specific entries
>  - 21 pxa27x specific entries
>  - 23 pxa3xx specific entries
>  => total of 70 lines
>
> That doubles the number of lines, not counting the declarations, and amending of
> pxa2xx_set_dmac_info().
>
> If you think it's worth it, what is the driving benefit behind ?

It seems a bit cleaner to only register the tables for the dma lines that
are actually present on a given chip.

>> Does that mean it's actually a memory-to-memory transfer with a device being
>> on the external SRAM interface?
> I'm taking this is the follow up to the "-1" question :0

Right.

        Arnd
---
To unsubscribe from this list: send the line "unsubscribe dmaengine" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@arndb.de>
To: Robert Jarzmik <robert.jarzmik@free.fr>
Cc: Ulf Hansson <ulf.hansson@linaro.org>,
	alsa-devel@alsa-project.org, Jaroslav Kysela <perex@perex.cz>,
	IDE-ML <linux-ide@vger.kernel.org>,
	Networking <netdev@vger.kernel.org>,
	linux-mtd <linux-mtd@lists.infradead.org>,
	devel@driverdev.osuosl.org,
	Boris Brezillon <boris.brezillon@free-electrons.com>,
	Vinod Koul <vinod.koul@intel.com>,
	Richard Weinberger <richard@nod.at>,
	Takashi Iwai <tiwai@suse.com>,
	Russell King <linux@armlinux.org.uk>,
	Marek Vasut <marek.vasut@gmail.com>,
	Ezequiel Garcia <ezequiel.garcia@free-electrons.com>,
	Linux Media Mailing List <linux-media@vger.kernel.org>,
	Samuel Ortiz <samuel@sortiz.org>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	Haojian Zhuang <haojian.zhuang@gmail.com>,
	dmaengine@vger.kernel.org, Mark Brown <broonie@kernel.org>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	Nicolas
Subject: Re: [PATCH 02/15] ARM: pxa: add dma slave map
Date: Tue, 3 Apr 2018 17:39:08 +0200	[thread overview]
Message-ID: <CAK8P3a2FFVnPj4+VoQET3-Jz2DaYbc6UUJnX1fH5s8VumJZ7Og@mail.gmail.com> (raw)
In-Reply-To: <87tvss48ti.fsf@belgarion.home>

On Tue, Apr 3, 2018 at 5:18 PM, Robert Jarzmik <robert.jarzmik@free.fr> wrote:
> Arnd Bergmann <arnd@arndb.de> writes:
>
>>> +       { "smc911x.0", "rx", PDMA_FILTER_PARAM(LOWEST, -1) },
>>> +       { "smc911x.0", "tx", PDMA_FILTER_PARAM(LOWEST, -1) },
>>> +       { "smc91x.0", "data", PDMA_FILTER_PARAM(LOWEST, -1) },
>>
>> This one is interesting, as you are dealing with an off-chip device,
>> and the channel number is '-'1. How does this even work? Does it
>> mean
>
> This relies on pxa_dma, in which the "-1" for a requestor line means "no
> requestor" or said in another way "always requesting". As a consequence, as soon
> as the DMA descriptors are queued, the transfer begins, and it is supposed
> implicitely that the FIFO output availability is at least as quick as the system
> bus and the DMA size is perfectly fit for the FIFO available bytes.
>
> This is what has been the underlying of DMA transfers of smc91x(x) on the PXA
> platforms, where the smc91x(s) are directly wired on the system bus (the same
> bus having DRAM, SRAM, IO-mapped devices).

Ok, I looked at the driver in more detail now and found the scary parts.
So it's using the async DMA interface to do synchronous DMA in
interrupt context in order to transfer the rx data faster than an readsl()
would, correct?

It still feels odd to me that there is an entry in the slave map for
a device that does not have a request line. However, it also seems
that the entire code in those two drivers that deals with DMA is specific
to PXA anyway, so maybe it can be done differently: instead of
calling dma_request_slave_channel_compat() or dma_request_chan()
with a fake request line, how about calling dma_request_channel()
with an NULL filter function and data, and have the driver handle
the empty data case the same way as the rq=-1 case today?

>>> +       /* PXA25x specific map */
>>> +       { "pxa25x-ssp.0", "rx", PDMA_FILTER_PARAM(LOWEST, 13) },
>>> +       { "pxa25x-ssp.0", "tx", PDMA_FILTER_PARAM(LOWEST, 14) },
>>> +       { "pxa25x-nssp.1", "rx", PDMA_FILTER_PARAM(LOWEST, 15) },
>>> +       { "pxa25x-nssp.1", "tx", PDMA_FILTER_PARAM(LOWEST, 16) },
>>> +       { "pxa25x-nssp.2", "rx", PDMA_FILTER_PARAM(LOWEST, 23) },
>>> +       { "pxa25x-nssp.2", "tx", PDMA_FILTER_PARAM(LOWEST, 24) },
>>> +       { "pxa-pcm-audio", "nssp2_rx", PDMA_FILTER_PARAM(LOWEST, 15) },
>>> +       { "pxa-pcm-audio", "nssp2_tx", PDMA_FILTER_PARAM(LOWEST, 16) },
>>> +       { "pxa-pcm-audio", "nssp3_rx", PDMA_FILTER_PARAM(LOWEST, 23) },
>>> +       { "pxa-pcm-audio", "nssp3_tx", PDMA_FILTER_PARAM(LOWEST, 24) },
>>> +
>>> +       /* PXA27x specific map */
>>> +       { "pxa-pcm-audio", "ssp3_rx", PDMA_FILTER_PARAM(LOWEST, 66) },
>>> +       { "pxa-pcm-audio", "ssp3_tx", PDMA_FILTER_PARAM(LOWEST, 67) },
>>> +       { "pxa27x-camera.0", "CI_Y", PDMA_FILTER_PARAM(HIGHEST, 68) },
>>> +       { "pxa27x-camera.0", "CI_U", PDMA_FILTER_PARAM(HIGHEST, 69) },
>>> +       { "pxa27x-camera.0", "CI_V", PDMA_FILTER_PARAM(HIGHEST, 70) },
>>> +
>>> +       /* PXA3xx specific map */
>>> +       { "pxa-pcm-audio", "ssp4_rx", PDMA_FILTER_PARAM(LOWEST, 2) },
>>> +       { "pxa-pcm-audio", "ssp4_tx", PDMA_FILTER_PARAM(LOWEST, 3) },
>>> +       { "pxa2xx-mci.1", "rx", PDMA_FILTER_PARAM(LOWEST, 93) },
>>> +       { "pxa2xx-mci.1", "tx", PDMA_FILTER_PARAM(LOWEST, 94) },
>>> +       { "pxa3xx-nand", "data", PDMA_FILTER_PARAM(LOWEST, 97) },
>>> +       { "pxa2xx-mci.2", "rx", PDMA_FILTER_PARAM(LOWEST, 100) },
>>> +       { "pxa2xx-mci.2", "tx", PDMA_FILTER_PARAM(LOWEST, 101) },
>>> +};
>>
>> Since more than half the entries in here are chip specific, maybe it would be
>> better to split that table into three and have a copy for each one in
>> arch/arm/mach-pxa/pxa{25x.27x.3xx}.c?
> Mmmh, today the split is :
>  - 16 common entries
>  - 10 pxa25x specific entries
>  - 5 pxa27x specific entries
>  - 7 pxa3xx specific entries
>  => total of 38 lines
>
> After the split we'll have :
>  - 26 pxa25x specific entries
>  - 21 pxa27x specific entries
>  - 23 pxa3xx specific entries
>  => total of 70 lines
>
> That doubles the number of lines, not counting the declarations, and amending of
> pxa2xx_set_dmac_info().
>
> If you think it's worth it, what is the driving benefit behind ?

It seems a bit cleaner to only register the tables for the dma lines that
are actually present on a given chip.

>> Does that mean it's actually a memory-to-memory transfer with a device being
>> on the external SRAM interface?
> I'm taking this is the follow up to the "-1" question :0

Right.

        Arnd

WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@arndb.de>
To: Robert Jarzmik <robert.jarzmik@free.fr>
Cc: Ulf Hansson <ulf.hansson@linaro.org>,
	alsa-devel@alsa-project.org, Jaroslav Kysela <perex@perex.cz>,
	IDE-ML <linux-ide@vger.kernel.org>,
	Networking <netdev@vger.kernel.org>,
	linux-mtd <linux-mtd@lists.infradead.org>,
	devel@driverdev.osuosl.org,
	Boris Brezillon <boris.brezillon@free-electrons.com>,
	Vinod Koul <vinod.koul@intel.com>,
	Richard Weinberger <richard@nod.at>,
	Takashi Iwai <tiwai@suse.com>,
	Russell King <linux@armlinux.org.uk>,
	Marek Vasut <marek.vasut@gmail.com>,
	Ezequiel Garcia <ezequiel.garcia@free-electrons.com>,
	Linux Media Mailing List <linux-media@vger.kernel.org>,
	Samuel Ortiz <samuel@sortiz.org>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	Haojian Zhuang <haojian.zhuang@gmail.com>,
	dmaengine@vger.kernel.org, Mark Brown <broonie@kernel.org>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	Nicolas Pitre <nico@fluxnic.net>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-mmc <linux-mmc@vger.kernel.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Cyrille Pitchen <cyrille.pitchen@wedev4u.fr>,
	Tejun Heo <tj@kernel.org>,
	Brian Norris <computersforpeace@gmail.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Daniel Mack <daniel@zonque.org>
Subject: Re: [PATCH 02/15] ARM: pxa: add dma slave map
Date: Tue, 3 Apr 2018 17:39:08 +0200	[thread overview]
Message-ID: <CAK8P3a2FFVnPj4+VoQET3-Jz2DaYbc6UUJnX1fH5s8VumJZ7Og@mail.gmail.com> (raw)
In-Reply-To: <87tvss48ti.fsf@belgarion.home>

On Tue, Apr 3, 2018 at 5:18 PM, Robert Jarzmik <robert.jarzmik@free.fr> wrote:
> Arnd Bergmann <arnd@arndb.de> writes:
>
>>> +       { "smc911x.0", "rx", PDMA_FILTER_PARAM(LOWEST, -1) },
>>> +       { "smc911x.0", "tx", PDMA_FILTER_PARAM(LOWEST, -1) },
>>> +       { "smc91x.0", "data", PDMA_FILTER_PARAM(LOWEST, -1) },
>>
>> This one is interesting, as you are dealing with an off-chip device,
>> and the channel number is '-'1. How does this even work? Does it
>> mean
>
> This relies on pxa_dma, in which the "-1" for a requestor line means "no
> requestor" or said in another way "always requesting". As a consequence, as soon
> as the DMA descriptors are queued, the transfer begins, and it is supposed
> implicitely that the FIFO output availability is at least as quick as the system
> bus and the DMA size is perfectly fit for the FIFO available bytes.
>
> This is what has been the underlying of DMA transfers of smc91x(x) on the PXA
> platforms, where the smc91x(s) are directly wired on the system bus (the same
> bus having DRAM, SRAM, IO-mapped devices).

Ok, I looked at the driver in more detail now and found the scary parts.
So it's using the async DMA interface to do synchronous DMA in
interrupt context in order to transfer the rx data faster than an readsl()
would, correct?

It still feels odd to me that there is an entry in the slave map for
a device that does not have a request line. However, it also seems
that the entire code in those two drivers that deals with DMA is specific
to PXA anyway, so maybe it can be done differently: instead of
calling dma_request_slave_channel_compat() or dma_request_chan()
with a fake request line, how about calling dma_request_channel()
with an NULL filter function and data, and have the driver handle
the empty data case the same way as the rq=-1 case today?

>>> +       /* PXA25x specific map */
>>> +       { "pxa25x-ssp.0", "rx", PDMA_FILTER_PARAM(LOWEST, 13) },
>>> +       { "pxa25x-ssp.0", "tx", PDMA_FILTER_PARAM(LOWEST, 14) },
>>> +       { "pxa25x-nssp.1", "rx", PDMA_FILTER_PARAM(LOWEST, 15) },
>>> +       { "pxa25x-nssp.1", "tx", PDMA_FILTER_PARAM(LOWEST, 16) },
>>> +       { "pxa25x-nssp.2", "rx", PDMA_FILTER_PARAM(LOWEST, 23) },
>>> +       { "pxa25x-nssp.2", "tx", PDMA_FILTER_PARAM(LOWEST, 24) },
>>> +       { "pxa-pcm-audio", "nssp2_rx", PDMA_FILTER_PARAM(LOWEST, 15) },
>>> +       { "pxa-pcm-audio", "nssp2_tx", PDMA_FILTER_PARAM(LOWEST, 16) },
>>> +       { "pxa-pcm-audio", "nssp3_rx", PDMA_FILTER_PARAM(LOWEST, 23) },
>>> +       { "pxa-pcm-audio", "nssp3_tx", PDMA_FILTER_PARAM(LOWEST, 24) },
>>> +
>>> +       /* PXA27x specific map */
>>> +       { "pxa-pcm-audio", "ssp3_rx", PDMA_FILTER_PARAM(LOWEST, 66) },
>>> +       { "pxa-pcm-audio", "ssp3_tx", PDMA_FILTER_PARAM(LOWEST, 67) },
>>> +       { "pxa27x-camera.0", "CI_Y", PDMA_FILTER_PARAM(HIGHEST, 68) },
>>> +       { "pxa27x-camera.0", "CI_U", PDMA_FILTER_PARAM(HIGHEST, 69) },
>>> +       { "pxa27x-camera.0", "CI_V", PDMA_FILTER_PARAM(HIGHEST, 70) },
>>> +
>>> +       /* PXA3xx specific map */
>>> +       { "pxa-pcm-audio", "ssp4_rx", PDMA_FILTER_PARAM(LOWEST, 2) },
>>> +       { "pxa-pcm-audio", "ssp4_tx", PDMA_FILTER_PARAM(LOWEST, 3) },
>>> +       { "pxa2xx-mci.1", "rx", PDMA_FILTER_PARAM(LOWEST, 93) },
>>> +       { "pxa2xx-mci.1", "tx", PDMA_FILTER_PARAM(LOWEST, 94) },
>>> +       { "pxa3xx-nand", "data", PDMA_FILTER_PARAM(LOWEST, 97) },
>>> +       { "pxa2xx-mci.2", "rx", PDMA_FILTER_PARAM(LOWEST, 100) },
>>> +       { "pxa2xx-mci.2", "tx", PDMA_FILTER_PARAM(LOWEST, 101) },
>>> +};
>>
>> Since more than half the entries in here are chip specific, maybe it would be
>> better to split that table into three and have a copy for each one in
>> arch/arm/mach-pxa/pxa{25x.27x.3xx}.c?
> Mmmh, today the split is :
>  - 16 common entries
>  - 10 pxa25x specific entries
>  - 5 pxa27x specific entries
>  - 7 pxa3xx specific entries
>  => total of 38 lines
>
> After the split we'll have :
>  - 26 pxa25x specific entries
>  - 21 pxa27x specific entries
>  - 23 pxa3xx specific entries
>  => total of 70 lines
>
> That doubles the number of lines, not counting the declarations, and amending of
> pxa2xx_set_dmac_info().
>
> If you think it's worth it, what is the driving benefit behind ?

It seems a bit cleaner to only register the tables for the dma lines that
are actually present on a given chip.

>> Does that mean it's actually a memory-to-memory transfer with a device being
>> on the external SRAM interface?
> I'm taking this is the follow up to the "-1" question :0

Right.

        Arnd
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@arndb.de>
To: Robert Jarzmik <robert.jarzmik@free.fr>
Cc: Ulf Hansson <ulf.hansson@linaro.org>,
	alsa-devel@alsa-project.org, Jaroslav Kysela <perex@perex.cz>,
	IDE-ML <linux-ide@vger.kernel.org>,
	Networking <netdev@vger.kernel.org>,
	linux-mtd <linux-mtd@lists.infradead.org>,
	devel@driverdev.osuosl.org,
	Boris Brezillon <boris.brezillon@free-electrons.com>,
	Vinod Koul <vinod.koul@intel.com>,
	Richard Weinberger <richard@nod.at>,
	Takashi Iwai <tiwai@suse.com>,
	Russell King <linux@armlinux.org.uk>,
	Marek Vasut <marek.vasut@gmail.com>,
	Ezequiel Garcia <ezequiel.garcia@free-electrons.com>,
	Linux Media Mailing List <linux-media@vger.kernel.org>,
	Samuel Ortiz <samuel@sortiz.org>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	Haojian Zhuang <haojian.zhuang@gmail.com>,
	dmaengine@vger.kernel.org, Mark Brown <broonie@kernel.org>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	Nicolas P
Subject: Re: [PATCH 02/15] ARM: pxa: add dma slave map
Date: Tue, 3 Apr 2018 17:39:08 +0200	[thread overview]
Message-ID: <CAK8P3a2FFVnPj4+VoQET3-Jz2DaYbc6UUJnX1fH5s8VumJZ7Og@mail.gmail.com> (raw)
In-Reply-To: <87tvss48ti.fsf@belgarion.home>

On Tue, Apr 3, 2018 at 5:18 PM, Robert Jarzmik <robert.jarzmik@free.fr> wrote:
> Arnd Bergmann <arnd@arndb.de> writes:
>
>>> +       { "smc911x.0", "rx", PDMA_FILTER_PARAM(LOWEST, -1) },
>>> +       { "smc911x.0", "tx", PDMA_FILTER_PARAM(LOWEST, -1) },
>>> +       { "smc91x.0", "data", PDMA_FILTER_PARAM(LOWEST, -1) },
>>
>> This one is interesting, as you are dealing with an off-chip device,
>> and the channel number is '-'1. How does this even work? Does it
>> mean
>
> This relies on pxa_dma, in which the "-1" for a requestor line means "no
> requestor" or said in another way "always requesting". As a consequence, as soon
> as the DMA descriptors are queued, the transfer begins, and it is supposed
> implicitely that the FIFO output availability is at least as quick as the system
> bus and the DMA size is perfectly fit for the FIFO available bytes.
>
> This is what has been the underlying of DMA transfers of smc91x(x) on the PXA
> platforms, where the smc91x(s) are directly wired on the system bus (the same
> bus having DRAM, SRAM, IO-mapped devices).

Ok, I looked at the driver in more detail now and found the scary parts.
So it's using the async DMA interface to do synchronous DMA in
interrupt context in order to transfer the rx data faster than an readsl()
would, correct?

It still feels odd to me that there is an entry in the slave map for
a device that does not have a request line. However, it also seems
that the entire code in those two drivers that deals with DMA is specific
to PXA anyway, so maybe it can be done differently: instead of
calling dma_request_slave_channel_compat() or dma_request_chan()
with a fake request line, how about calling dma_request_channel()
with an NULL filter function and data, and have the driver handle
the empty data case the same way as the rq=-1 case today?

>>> +       /* PXA25x specific map */
>>> +       { "pxa25x-ssp.0", "rx", PDMA_FILTER_PARAM(LOWEST, 13) },
>>> +       { "pxa25x-ssp.0", "tx", PDMA_FILTER_PARAM(LOWEST, 14) },
>>> +       { "pxa25x-nssp.1", "rx", PDMA_FILTER_PARAM(LOWEST, 15) },
>>> +       { "pxa25x-nssp.1", "tx", PDMA_FILTER_PARAM(LOWEST, 16) },
>>> +       { "pxa25x-nssp.2", "rx", PDMA_FILTER_PARAM(LOWEST, 23) },
>>> +       { "pxa25x-nssp.2", "tx", PDMA_FILTER_PARAM(LOWEST, 24) },
>>> +       { "pxa-pcm-audio", "nssp2_rx", PDMA_FILTER_PARAM(LOWEST, 15) },
>>> +       { "pxa-pcm-audio", "nssp2_tx", PDMA_FILTER_PARAM(LOWEST, 16) },
>>> +       { "pxa-pcm-audio", "nssp3_rx", PDMA_FILTER_PARAM(LOWEST, 23) },
>>> +       { "pxa-pcm-audio", "nssp3_tx", PDMA_FILTER_PARAM(LOWEST, 24) },
>>> +
>>> +       /* PXA27x specific map */
>>> +       { "pxa-pcm-audio", "ssp3_rx", PDMA_FILTER_PARAM(LOWEST, 66) },
>>> +       { "pxa-pcm-audio", "ssp3_tx", PDMA_FILTER_PARAM(LOWEST, 67) },
>>> +       { "pxa27x-camera.0", "CI_Y", PDMA_FILTER_PARAM(HIGHEST, 68) },
>>> +       { "pxa27x-camera.0", "CI_U", PDMA_FILTER_PARAM(HIGHEST, 69) },
>>> +       { "pxa27x-camera.0", "CI_V", PDMA_FILTER_PARAM(HIGHEST, 70) },
>>> +
>>> +       /* PXA3xx specific map */
>>> +       { "pxa-pcm-audio", "ssp4_rx", PDMA_FILTER_PARAM(LOWEST, 2) },
>>> +       { "pxa-pcm-audio", "ssp4_tx", PDMA_FILTER_PARAM(LOWEST, 3) },
>>> +       { "pxa2xx-mci.1", "rx", PDMA_FILTER_PARAM(LOWEST, 93) },
>>> +       { "pxa2xx-mci.1", "tx", PDMA_FILTER_PARAM(LOWEST, 94) },
>>> +       { "pxa3xx-nand", "data", PDMA_FILTER_PARAM(LOWEST, 97) },
>>> +       { "pxa2xx-mci.2", "rx", PDMA_FILTER_PARAM(LOWEST, 100) },
>>> +       { "pxa2xx-mci.2", "tx", PDMA_FILTER_PARAM(LOWEST, 101) },
>>> +};
>>
>> Since more than half the entries in here are chip specific, maybe it would be
>> better to split that table into three and have a copy for each one in
>> arch/arm/mach-pxa/pxa{25x.27x.3xx}.c?
> Mmmh, today the split is :
>  - 16 common entries
>  - 10 pxa25x specific entries
>  - 5 pxa27x specific entries
>  - 7 pxa3xx specific entries
>  => total of 38 lines
>
> After the split we'll have :
>  - 26 pxa25x specific entries
>  - 21 pxa27x specific entries
>  - 23 pxa3xx specific entries
>  => total of 70 lines
>
> That doubles the number of lines, not counting the declarations, and amending of
> pxa2xx_set_dmac_info().
>
> If you think it's worth it, what is the driving benefit behind ?

It seems a bit cleaner to only register the tables for the dma lines that
are actually present on a given chip.

>> Does that mean it's actually a memory-to-memory transfer with a device being
>> on the external SRAM interface?
> I'm taking this is the follow up to the "-1" question :0

Right.

        Arnd

WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@arndb.de>
To: Robert Jarzmik <robert.jarzmik@free.fr>
Cc: Daniel Mack <daniel@zonque.org>,
	Haojian Zhuang <haojian.zhuang@gmail.com>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	Tejun Heo <tj@kernel.org>, Vinod Koul <vinod.koul@intel.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	Ezequiel Garcia <ezequiel.garcia@free-electrons.com>,
	Boris Brezillon <boris.brezillon@free-electrons.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Brian Norris <computersforpeace@gmail.com>,
	Marek Vasut <marek.vasut@gmail.com>,
	Richard Weinberger <richard@nod.at>,
	Cyrille Pitchen <cyrille.pitchen@wedev4u.fr>,
	Nicolas Pitre <nico@fluxnic.net>,
	Samuel Ortiz <samuel@sortiz.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Russell King <linux@armlinux.org.uk>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	IDE-ML <linux-ide@vger.kernel.org>,
	dmaengine@vger.kernel.org,
	Linux Media Mailing List <linux-media@vger.kernel.org>,
	linux-mmc <linux-mmc@vger.kernel.org>,
	linux-mtd <linux-mtd@lists.infradead.org>,
	Networking <netdev@vger.kernel.org>,
	devel@driverdev.osuosl.org, alsa-devel@alsa-project.org
Subject: Re: [PATCH 02/15] ARM: pxa: add dma slave map
Date: Tue, 3 Apr 2018 17:39:08 +0200	[thread overview]
Message-ID: <CAK8P3a2FFVnPj4+VoQET3-Jz2DaYbc6UUJnX1fH5s8VumJZ7Og@mail.gmail.com> (raw)
In-Reply-To: <87tvss48ti.fsf@belgarion.home>

On Tue, Apr 3, 2018 at 5:18 PM, Robert Jarzmik <robert.jarzmik@free.fr> wrote:
> Arnd Bergmann <arnd@arndb.de> writes:
>
>>> +       { "smc911x.0", "rx", PDMA_FILTER_PARAM(LOWEST, -1) },
>>> +       { "smc911x.0", "tx", PDMA_FILTER_PARAM(LOWEST, -1) },
>>> +       { "smc91x.0", "data", PDMA_FILTER_PARAM(LOWEST, -1) },
>>
>> This one is interesting, as you are dealing with an off-chip device,
>> and the channel number is '-'1. How does this even work? Does it
>> mean
>
> This relies on pxa_dma, in which the "-1" for a requestor line means "no
> requestor" or said in another way "always requesting". As a consequence, as soon
> as the DMA descriptors are queued, the transfer begins, and it is supposed
> implicitely that the FIFO output availability is at least as quick as the system
> bus and the DMA size is perfectly fit for the FIFO available bytes.
>
> This is what has been the underlying of DMA transfers of smc91x(x) on the PXA
> platforms, where the smc91x(s) are directly wired on the system bus (the same
> bus having DRAM, SRAM, IO-mapped devices).

Ok, I looked at the driver in more detail now and found the scary parts.
So it's using the async DMA interface to do synchronous DMA in
interrupt context in order to transfer the rx data faster than an readsl()
would, correct?

It still feels odd to me that there is an entry in the slave map for
a device that does not have a request line. However, it also seems
that the entire code in those two drivers that deals with DMA is specific
to PXA anyway, so maybe it can be done differently: instead of
calling dma_request_slave_channel_compat() or dma_request_chan()
with a fake request line, how about calling dma_request_channel()
with an NULL filter function and data, and have the driver handle
the empty data case the same way as the rq=-1 case today?

>>> +       /* PXA25x specific map */
>>> +       { "pxa25x-ssp.0", "rx", PDMA_FILTER_PARAM(LOWEST, 13) },
>>> +       { "pxa25x-ssp.0", "tx", PDMA_FILTER_PARAM(LOWEST, 14) },
>>> +       { "pxa25x-nssp.1", "rx", PDMA_FILTER_PARAM(LOWEST, 15) },
>>> +       { "pxa25x-nssp.1", "tx", PDMA_FILTER_PARAM(LOWEST, 16) },
>>> +       { "pxa25x-nssp.2", "rx", PDMA_FILTER_PARAM(LOWEST, 23) },
>>> +       { "pxa25x-nssp.2", "tx", PDMA_FILTER_PARAM(LOWEST, 24) },
>>> +       { "pxa-pcm-audio", "nssp2_rx", PDMA_FILTER_PARAM(LOWEST, 15) },
>>> +       { "pxa-pcm-audio", "nssp2_tx", PDMA_FILTER_PARAM(LOWEST, 16) },
>>> +       { "pxa-pcm-audio", "nssp3_rx", PDMA_FILTER_PARAM(LOWEST, 23) },
>>> +       { "pxa-pcm-audio", "nssp3_tx", PDMA_FILTER_PARAM(LOWEST, 24) },
>>> +
>>> +       /* PXA27x specific map */
>>> +       { "pxa-pcm-audio", "ssp3_rx", PDMA_FILTER_PARAM(LOWEST, 66) },
>>> +       { "pxa-pcm-audio", "ssp3_tx", PDMA_FILTER_PARAM(LOWEST, 67) },
>>> +       { "pxa27x-camera.0", "CI_Y", PDMA_FILTER_PARAM(HIGHEST, 68) },
>>> +       { "pxa27x-camera.0", "CI_U", PDMA_FILTER_PARAM(HIGHEST, 69) },
>>> +       { "pxa27x-camera.0", "CI_V", PDMA_FILTER_PARAM(HIGHEST, 70) },
>>> +
>>> +       /* PXA3xx specific map */
>>> +       { "pxa-pcm-audio", "ssp4_rx", PDMA_FILTER_PARAM(LOWEST, 2) },
>>> +       { "pxa-pcm-audio", "ssp4_tx", PDMA_FILTER_PARAM(LOWEST, 3) },
>>> +       { "pxa2xx-mci.1", "rx", PDMA_FILTER_PARAM(LOWEST, 93) },
>>> +       { "pxa2xx-mci.1", "tx", PDMA_FILTER_PARAM(LOWEST, 94) },
>>> +       { "pxa3xx-nand", "data", PDMA_FILTER_PARAM(LOWEST, 97) },
>>> +       { "pxa2xx-mci.2", "rx", PDMA_FILTER_PARAM(LOWEST, 100) },
>>> +       { "pxa2xx-mci.2", "tx", PDMA_FILTER_PARAM(LOWEST, 101) },
>>> +};
>>
>> Since more than half the entries in here are chip specific, maybe it would be
>> better to split that table into three and have a copy for each one in
>> arch/arm/mach-pxa/pxa{25x.27x.3xx}.c?
> Mmmh, today the split is :
>  - 16 common entries
>  - 10 pxa25x specific entries
>  - 5 pxa27x specific entries
>  - 7 pxa3xx specific entries
>  => total of 38 lines
>
> After the split we'll have :
>  - 26 pxa25x specific entries
>  - 21 pxa27x specific entries
>  - 23 pxa3xx specific entries
>  => total of 70 lines
>
> That doubles the number of lines, not counting the declarations, and amending of
> pxa2xx_set_dmac_info().
>
> If you think it's worth it, what is the driving benefit behind ?

It seems a bit cleaner to only register the tables for the dma lines that
are actually present on a given chip.

>> Does that mean it's actually a memory-to-memory transfer with a device being
>> on the external SRAM interface?
> I'm taking this is the follow up to the "-1" question :0

Right.

        Arnd

WARNING: multiple messages have this Message-ID (diff)
From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 02/15] ARM: pxa: add dma slave map
Date: Tue, 3 Apr 2018 17:39:08 +0200	[thread overview]
Message-ID: <CAK8P3a2FFVnPj4+VoQET3-Jz2DaYbc6UUJnX1fH5s8VumJZ7Og@mail.gmail.com> (raw)
In-Reply-To: <87tvss48ti.fsf@belgarion.home>

On Tue, Apr 3, 2018 at 5:18 PM, Robert Jarzmik <robert.jarzmik@free.fr> wrote:
> Arnd Bergmann <arnd@arndb.de> writes:
>
>>> +       { "smc911x.0", "rx", PDMA_FILTER_PARAM(LOWEST, -1) },
>>> +       { "smc911x.0", "tx", PDMA_FILTER_PARAM(LOWEST, -1) },
>>> +       { "smc91x.0", "data", PDMA_FILTER_PARAM(LOWEST, -1) },
>>
>> This one is interesting, as you are dealing with an off-chip device,
>> and the channel number is '-'1. How does this even work? Does it
>> mean
>
> This relies on pxa_dma, in which the "-1" for a requestor line means "no
> requestor" or said in another way "always requesting". As a consequence, as soon
> as the DMA descriptors are queued, the transfer begins, and it is supposed
> implicitely that the FIFO output availability is at least as quick as the system
> bus and the DMA size is perfectly fit for the FIFO available bytes.
>
> This is what has been the underlying of DMA transfers of smc91x(x) on the PXA
> platforms, where the smc91x(s) are directly wired on the system bus (the same
> bus having DRAM, SRAM, IO-mapped devices).

Ok, I looked at the driver in more detail now and found the scary parts.
So it's using the async DMA interface to do synchronous DMA in
interrupt context in order to transfer the rx data faster than an readsl()
would, correct?

It still feels odd to me that there is an entry in the slave map for
a device that does not have a request line. However, it also seems
that the entire code in those two drivers that deals with DMA is specific
to PXA anyway, so maybe it can be done differently: instead of
calling dma_request_slave_channel_compat() or dma_request_chan()
with a fake request line, how about calling dma_request_channel()
with an NULL filter function and data, and have the driver handle
the empty data case the same way as the rq=-1 case today?

>>> +       /* PXA25x specific map */
>>> +       { "pxa25x-ssp.0", "rx", PDMA_FILTER_PARAM(LOWEST, 13) },
>>> +       { "pxa25x-ssp.0", "tx", PDMA_FILTER_PARAM(LOWEST, 14) },
>>> +       { "pxa25x-nssp.1", "rx", PDMA_FILTER_PARAM(LOWEST, 15) },
>>> +       { "pxa25x-nssp.1", "tx", PDMA_FILTER_PARAM(LOWEST, 16) },
>>> +       { "pxa25x-nssp.2", "rx", PDMA_FILTER_PARAM(LOWEST, 23) },
>>> +       { "pxa25x-nssp.2", "tx", PDMA_FILTER_PARAM(LOWEST, 24) },
>>> +       { "pxa-pcm-audio", "nssp2_rx", PDMA_FILTER_PARAM(LOWEST, 15) },
>>> +       { "pxa-pcm-audio", "nssp2_tx", PDMA_FILTER_PARAM(LOWEST, 16) },
>>> +       { "pxa-pcm-audio", "nssp3_rx", PDMA_FILTER_PARAM(LOWEST, 23) },
>>> +       { "pxa-pcm-audio", "nssp3_tx", PDMA_FILTER_PARAM(LOWEST, 24) },
>>> +
>>> +       /* PXA27x specific map */
>>> +       { "pxa-pcm-audio", "ssp3_rx", PDMA_FILTER_PARAM(LOWEST, 66) },
>>> +       { "pxa-pcm-audio", "ssp3_tx", PDMA_FILTER_PARAM(LOWEST, 67) },
>>> +       { "pxa27x-camera.0", "CI_Y", PDMA_FILTER_PARAM(HIGHEST, 68) },
>>> +       { "pxa27x-camera.0", "CI_U", PDMA_FILTER_PARAM(HIGHEST, 69) },
>>> +       { "pxa27x-camera.0", "CI_V", PDMA_FILTER_PARAM(HIGHEST, 70) },
>>> +
>>> +       /* PXA3xx specific map */
>>> +       { "pxa-pcm-audio", "ssp4_rx", PDMA_FILTER_PARAM(LOWEST, 2) },
>>> +       { "pxa-pcm-audio", "ssp4_tx", PDMA_FILTER_PARAM(LOWEST, 3) },
>>> +       { "pxa2xx-mci.1", "rx", PDMA_FILTER_PARAM(LOWEST, 93) },
>>> +       { "pxa2xx-mci.1", "tx", PDMA_FILTER_PARAM(LOWEST, 94) },
>>> +       { "pxa3xx-nand", "data", PDMA_FILTER_PARAM(LOWEST, 97) },
>>> +       { "pxa2xx-mci.2", "rx", PDMA_FILTER_PARAM(LOWEST, 100) },
>>> +       { "pxa2xx-mci.2", "tx", PDMA_FILTER_PARAM(LOWEST, 101) },
>>> +};
>>
>> Since more than half the entries in here are chip specific, maybe it would be
>> better to split that table into three and have a copy for each one in
>> arch/arm/mach-pxa/pxa{25x.27x.3xx}.c?
> Mmmh, today the split is :
>  - 16 common entries
>  - 10 pxa25x specific entries
>  - 5 pxa27x specific entries
>  - 7 pxa3xx specific entries
>  => total of 38 lines
>
> After the split we'll have :
>  - 26 pxa25x specific entries
>  - 21 pxa27x specific entries
>  - 23 pxa3xx specific entries
>  => total of 70 lines
>
> That doubles the number of lines, not counting the declarations, and amending of
> pxa2xx_set_dmac_info().
>
> If you think it's worth it, what is the driving benefit behind ?

It seems a bit cleaner to only register the tables for the dma lines that
are actually present on a given chip.

>> Does that mean it's actually a memory-to-memory transfer with a device being
>> on the external SRAM interface?
> I'm taking this is the follow up to the "-1" question :0

Right.

        Arnd

             reply	other threads:[~2018-04-03 15:39 UTC|newest]

Thread overview: 218+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-03 15:39 Arnd Bergmann [this message]
2018-04-03 15:39 ` [PATCH 02/15] ARM: pxa: add dma slave map Arnd Bergmann
2018-04-03 15:39 ` Arnd Bergmann
2018-04-03 15:39 ` Arnd Bergmann
2018-04-03 15:39 ` Arnd Bergmann
2018-04-03 15:39 ` Arnd Bergmann
  -- strict thread matches above, loose matches on Subject: below --
2018-05-23 21:54 [05/15] mtd: nand: pxa3xx: remove the dmaengine compat need Daniel Mack
2018-05-23 21:54 ` [PATCH 05/15] " Daniel Mack
2018-05-23 21:54 ` Daniel Mack
2018-05-23 21:54 ` Daniel Mack
2018-05-18 21:31 [05/15] " Daniel Mack
2018-05-18 21:31 ` [PATCH 05/15] " Daniel Mack
2018-05-18 21:31 ` Daniel Mack
2018-05-18 21:31 ` Daniel Mack
2018-05-04 19:29 [04/15] media: pxa_camera: " Mauro Carvalho Chehab
2018-05-04 19:29 ` [PATCH 04/15] " Mauro Carvalho Chehab
2018-05-04 19:29 ` Mauro Carvalho Chehab
2018-05-04 19:29 ` Mauro Carvalho Chehab
2018-05-04 19:29 ` Mauro Carvalho Chehab
2018-04-23  8:37 [09/15] net: irda: pxaficp_ir: " Greg Kroah-Hartman
2018-04-23  8:37 ` [PATCH 09/15] " Greg Kroah-Hartman
2018-04-23  8:37 ` Greg Kroah-Hartman
2018-04-23  8:37 ` Greg Kroah-Hartman
2018-04-23  8:37 ` Greg Kroah-Hartman
2018-04-22 11:06 [04/15] media: pxa_camera: " Hans Verkuil
2018-04-22 11:06 ` [PATCH 04/15] " Hans Verkuil
2018-04-22 11:06 ` Hans Verkuil
2018-04-22 11:06 ` Hans Verkuil
2018-04-22  6:13 [01/15] dmaengine: pxa: use a dma slave map Vinod Koul
2018-04-22  6:13 ` [PATCH 01/15] " Vinod Koul
2018-04-22  6:13 ` Vinod Koul
2018-04-12 16:55 [08/15] ASoC: pxa: remove the dmaengine compat need Robert Jarzmik
2018-04-12 16:55 ` [PATCH 08/15] " Robert Jarzmik
2018-04-12 16:55 ` Robert Jarzmik
2018-04-12 16:55 ` Robert Jarzmik
2018-04-12 16:55 ` Robert Jarzmik
2018-04-12 16:55 ` Robert Jarzmik
2018-04-12 15:26 [08/15] " Mark Brown
2018-04-12 15:26 ` [PATCH 08/15] " Mark Brown
2018-04-12 15:26 ` Mark Brown
2018-04-12 15:26 ` Mark Brown
2018-04-12 15:26 ` Mark Brown
2018-04-12 15:26 ` Mark Brown
2018-04-04 19:21 [02/15] ARM: pxa: add dma slave map Robert Jarzmik
2018-04-04 19:21 ` [PATCH 02/15] " Robert Jarzmik
2018-04-04 19:21 ` Robert Jarzmik
2018-04-04 10:18 [02/15] " Arnd Bergmann
2018-04-04 10:18 ` [PATCH 02/15] " Arnd Bergmann
2018-04-04 10:18 ` Arnd Bergmann
2018-04-03 20:19 [02/15] " Robert Jarzmik
2018-04-03 20:19 ` [PATCH 02/15] " Robert Jarzmik
2018-04-03 20:19 ` Robert Jarzmik
2018-04-03 15:18 [02/15] " Robert Jarzmik
2018-04-03 15:18 ` [PATCH 02/15] " Robert Jarzmik
2018-04-03 15:18 ` Robert Jarzmik
2018-04-03 15:18 ` Robert Jarzmik
2018-04-03 15:18 ` Robert Jarzmik
2018-04-03  7:13 [12/15] dmaengine: pxa: make the filter function internal Arnd Bergmann
2018-04-03  7:13 ` [PATCH 12/15] " Arnd Bergmann
2018-04-03  7:13 ` Arnd Bergmann
2018-04-03  7:13 ` Arnd Bergmann
2018-04-03  7:13 ` Arnd Bergmann
2018-04-03  7:13 ` Arnd Bergmann
2018-04-03  6:51 [02/15] ARM: pxa: add dma slave map Arnd Bergmann
2018-04-03  6:51 ` [PATCH 02/15] " Arnd Bergmann
2018-04-03  6:51 ` Arnd Bergmann
2018-04-03  6:51 ` Arnd Bergmann
2018-04-03  6:51 ` Arnd Bergmann
2018-04-03  6:51 ` Arnd Bergmann
2018-04-02 18:46 [15/15] ARM: pxa: change SSP DMA channels allocation kbuild test robot
2018-04-02 18:46 ` [PATCH 15/15] " kbuild test robot
2018-04-02 18:46 ` kbuild test robot
2018-04-02 18:46 ` kbuild test robot
2018-04-02 18:46 ` kbuild test robot
2018-04-02 16:35 [12/15] dmaengine: pxa: make the filter function internal kbuild test robot
2018-04-02 16:35 ` [PATCH 12/15] " kbuild test robot
2018-04-02 16:35 ` kbuild test robot
2018-04-02 16:35 ` kbuild test robot
2018-04-02 16:35 ` kbuild test robot
2018-04-02 16:35 ` kbuild test robot
2018-04-02 16:25 [12/15] " kbuild test robot
2018-04-02 16:25 ` [PATCH 12/15] " kbuild test robot
2018-04-02 16:25 ` kbuild test robot
2018-04-02 16:25 ` kbuild test robot
2018-04-02 16:25 ` kbuild test robot
2018-04-02 14:26 [15/15] ARM: pxa: change SSP DMA channels allocation Robert Jarzmik
2018-04-02 14:26 ` [PATCH 15/15] " Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 [13/15] ARM: pxa: remove the DMA IO resources Robert Jarzmik
2018-04-02 14:26 ` [PATCH 13/15] " Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 [12/15] dmaengine: pxa: make the filter function internal Robert Jarzmik
2018-04-02 14:26 ` [PATCH 12/15] " Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 [11/15] dmaengine: pxa: document pxad_param Robert Jarzmik
2018-04-02 14:26 ` [PATCH 11/15] " Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 [08/15] ASoC: pxa: remove the dmaengine compat need Robert Jarzmik
2018-04-02 14:26 ` [PATCH 08/15] " Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 [07/15] net: smc91x: " Robert Jarzmik
2018-04-02 14:26 ` [PATCH 07/15] " Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 [06/15] net: smc911x: " Robert Jarzmik
2018-04-02 14:26 ` [PATCH 06/15] " Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 [03/15] mmc: pxamci: " Robert Jarzmik
2018-04-02 14:26 ` [PATCH 03/15] " Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 [02/15] ARM: pxa: add dma slave map Robert Jarzmik
2018-04-02 14:26 ` [PATCH 02/15] " Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 [PATCH 00/15] ARM: pxa: switch to DMA slave maps Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 ` Robert Jarzmik
2018-04-02 14:26 ` [01/15] dmaengine: pxa: use a dma slave map Robert Jarzmik
2018-04-02 14:26   ` [PATCH 01/15] " Robert Jarzmik
2018-04-02 14:26   ` Robert Jarzmik
2018-04-02 14:26   ` Robert Jarzmik
2018-04-02 14:26   ` Robert Jarzmik
2018-04-21 19:23   ` Robert Jarzmik
2018-04-02 14:26 ` [04/15] media: pxa_camera: remove the dmaengine compat need Robert Jarzmik
2018-04-02 14:26   ` [PATCH 04/15] " Robert Jarzmik
2018-04-02 14:26   ` Robert Jarzmik
2018-04-02 14:26   ` Robert Jarzmik
2018-04-21 19:27   ` Robert Jarzmik
2018-04-21 19:27     ` Robert Jarzmik
2018-04-22 11:06     ` Hans Verkuil
2018-04-22 11:06       ` Hans Verkuil
2018-04-02 14:26 ` [05/15] mtd: nand: pxa3xx: " Robert Jarzmik
2018-04-02 14:26   ` [PATCH 05/15] " Robert Jarzmik
2018-04-02 14:26   ` Robert Jarzmik
2018-04-02 14:26   ` Robert Jarzmik
2018-04-02 14:26   ` Robert Jarzmik
2018-04-03  7:33   ` Miquel Raynal
2018-04-03 15:19     ` Robert Jarzmik
2018-04-02 14:26 ` [09/15] net: irda: pxaficp_ir: " Robert Jarzmik
2018-04-02 14:26   ` [PATCH 09/15] " Robert Jarzmik
2018-04-02 14:26   ` Robert Jarzmik
2018-04-02 14:26   ` Robert Jarzmik
2018-04-02 14:26   ` Robert Jarzmik
2018-04-21 19:30   ` Robert Jarzmik
2018-04-21 19:30     ` Robert Jarzmik
2018-04-02 14:26 ` [10/15] ata: pata_pxa: " Robert Jarzmik
2018-04-02 14:26   ` [PATCH 10/15] " Robert Jarzmik
2018-04-02 14:26   ` Robert Jarzmik
2018-04-02 14:26   ` Robert Jarzmik
2018-04-02 14:26   ` Robert Jarzmik
2018-04-21 19:32   ` Robert Jarzmik
2018-04-21 19:32     ` Robert Jarzmik
2018-04-24 11:04     ` Bartlomiej Zolnierkiewicz
2018-04-24 11:04       ` Bartlomiej Zolnierkiewicz
2018-04-02 14:26 ` [14/15] ARM: pxa: change SSP devices allocation Robert Jarzmik
2018-04-02 14:26   ` [PATCH 14/15] " Robert Jarzmik
2018-04-02 14:26   ` Robert Jarzmik
2018-04-02 14:26   ` Robert Jarzmik
2018-04-02 14:26   ` Robert Jarzmik
2018-04-03  7:06   ` [14/15] " Arnd Bergmann
2018-04-03  7:06     ` [PATCH 14/15] " Arnd Bergmann
2018-04-03  7:06     ` Arnd Bergmann
2018-04-03  7:06     ` Arnd Bergmann
2018-04-03  7:06     ` Arnd Bergmann
2018-04-03  7:06     ` Arnd Bergmann
2018-04-03 15:32     ` Robert Jarzmik
2018-04-03 15:32       ` Robert Jarzmik
2018-04-03 15:53       ` Arnd Bergmann
2018-04-03 15:53         ` Arnd Bergmann
2018-04-05  6:51         ` Robert Jarzmik
2018-04-05  6:51           ` Robert Jarzmik
2018-04-05  7:29           ` Arnd Bergmann
2018-04-05  7:29             ` Arnd Bergmann
2018-04-08 12:16             ` Robert Jarzmik
2018-04-08 12:16               ` Robert Jarzmik
2018-04-08 12:16               ` Robert Jarzmik
2018-04-03  7:15 ` [PATCH 00/15] ARM: pxa: switch to DMA slave maps Arnd Bergmann
2018-04-03  7:15   ` Arnd Bergmann
2018-04-03  7:15   ` Arnd Bergmann
2018-04-03  7:15   ` Arnd Bergmann
2018-04-03  7:15   ` Arnd Bergmann
2018-04-03 15:08 ` Ulf Hansson
2018-04-03 15:08   ` Ulf Hansson
2018-04-03 15:08   ` Ulf Hansson
2018-04-03 15:08   ` Ulf Hansson
2018-04-04 19:49   ` Robert Jarzmik
2018-04-04 19:49     ` Robert Jarzmik
2018-04-04 19:49     ` Robert Jarzmik
2018-04-04 19:49     ` Robert Jarzmik
2018-04-04 19:56     ` Boris Brezillon
2018-04-04 19:56       ` Boris Brezillon
2018-04-04 19:56       ` Boris Brezillon
2018-04-04 19:56       ` Boris Brezillon
2018-04-04 19:56       ` Boris Brezillon
2018-04-05  6:29       ` Ulf Hansson
2018-04-05  6:29         ` Ulf Hansson
2018-04-05  6:29         ` Ulf Hansson
2018-04-05  6:29         ` Ulf Hansson
2018-04-05  6:50         ` Arnd Bergmann
2018-04-05  6:50           ` Arnd Bergmann
2018-04-05  6:50           ` Arnd Bergmann
2018-04-05  6:50           ` Arnd Bergmann

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=CAK8P3a2FFVnPj4+VoQET3-Jz2DaYbc6UUJnX1fH5s8VumJZ7Og@mail.gmail.com \
    --to=arnd@arndb.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=b.zolnierkie@samsung.com \
    --cc=boris.brezillon@free-electrons.com \
    --cc=broonie@kernel.org \
    --cc=computersforpeace@gmail.com \
    --cc=cyrille.pitchen@wedev4u.fr \
    --cc=daniel@zonque.org \
    --cc=devel@driverdev.osuosl.org \
    --cc=dmaengine@vger.kernel.org \
    --cc=dwmw2@infradead.org \
    --cc=ezequiel.garcia@free-electrons.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=haojian.zhuang@gmail.com \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux@armlinux.org.uk \
    --cc=marek.vasut@gmail.com \
    --cc=mchehab@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=nico@fluxnic.net \
    --cc=perex@perex.cz \
    --cc=richard@nod.at \
    --cc=robert.jarzmik@free.fr \
    --cc=samuel@sortiz.org \
    --cc=tiwai@suse.com \
    --cc=tj@kernel.org \
    --cc=ulf.hansson@linaro.org \
    --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.