2013-05-10 10:05:19

by Nicolas Ferre

[permalink] [raw]
Subject: [PATCH] mmc: atmel-mci: convert to dma_request_slave_channel_compat()

From: Ludovic Desroches <[email protected]>

Use generic DMA DT helper. Platforms booting with or without DT populated are
both supported.

Signed-off-by: Ludovic Desroches <[email protected]>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <[email protected]>
Acked-by: Nicolas Ferre <[email protected]>
---
Hi Chris,

This patch is part of a series by Ludovic and is adding the generic slave
DMA request channel function, as we now have the support for DMA bindings.

This is the only patch of the series that should go through your tree. And it
seems that my little reminder didn't catch your attention in time for 3.10 merge
window but I still hope that we can make it for 3.10-final... It is also true
that we didn't put you in copy of the original message and that the subject
line was somehow malformed ;-)

Here is the Linux arm kernel patchwork reference of previous discussion:
https://patchwork.kernel.org/patch/2463641/

Thanks, best regards,

drivers/mmc/host/atmel-mci.c | 25 ++++++++++++-------------
1 file changed, 12 insertions(+), 13 deletions(-)

diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
index e75774f..aca59d9 100644
--- a/drivers/mmc/host/atmel-mci.c
+++ b/drivers/mmc/host/atmel-mci.c
@@ -2230,10 +2230,15 @@ static void __exit atmci_cleanup_slot(struct atmel_mci_slot *slot,
mmc_free_host(slot->mmc);
}

-static bool atmci_filter(struct dma_chan *chan, void *slave)
+static bool atmci_filter(struct dma_chan *chan, void *pdata)
{
- struct mci_dma_data *sl = slave;
+ struct mci_platform_data *sl_pdata = pdata;
+ struct mci_dma_data *sl;

+ if (!sl_pdata)
+ return false;
+
+ sl = sl_pdata->dma_slave;
if (sl && find_slave_dev(sl) == chan->device->dev) {
chan->private = slave_data_ptr(sl);
return true;
@@ -2245,24 +2250,18 @@ static bool atmci_filter(struct dma_chan *chan, void *slave)
static bool atmci_configure_dma(struct atmel_mci *host)
{
struct mci_platform_data *pdata;
+ dma_cap_mask_t mask;

if (host == NULL)
return false;

pdata = host->pdev->dev.platform_data;

- if (!pdata)
- return false;
+ dma_cap_zero(mask);
+ dma_cap_set(DMA_SLAVE, mask);

- if (pdata->dma_slave && find_slave_dev(pdata->dma_slave)) {
- dma_cap_mask_t mask;
-
- /* Try to grab a DMA channel */
- dma_cap_zero(mask);
- dma_cap_set(DMA_SLAVE, mask);
- host->dma.chan =
- dma_request_channel(mask, atmci_filter, pdata->dma_slave);
- }
+ host->dma.chan = dma_request_slave_channel_compat(mask, atmci_filter, pdata,
+ &host->pdev->dev, "rxtx");
if (!host->dma.chan) {
dev_warn(&host->pdev->dev, "no DMA channel available\n");
return false;
--
1.8.0


2013-05-26 17:34:57

by Chris Ball

[permalink] [raw]
Subject: Re: [PATCH] mmc: atmel-mci: convert to dma_request_slave_channel_compat()

Hi Nicolas,

On Fri, May 10 2013, Nicolas Ferre wrote:
> From: Ludovic Desroches <[email protected]>
>
> Use generic DMA DT helper. Platforms booting with or without DT populated are
> both supported.
>
> Signed-off-by: Ludovic Desroches <[email protected]>
> Acked-by: Jean-Christophe PLAGNIOL-VILLARD <[email protected]>
> Acked-by: Nicolas Ferre <[email protected]>
> ---
> Hi Chris,
>
> This patch is part of a series by Ludovic and is adding the generic slave
> DMA request channel function, as we now have the support for DMA bindings.
>
> This is the only patch of the series that should go through your tree. And it
> seems that my little reminder didn't catch your attention in time for 3.10 merge
> window but I still hope that we can make it for 3.10-final... It is also true
> that we didn't put you in copy of the original message and that the subject
> line was somehow malformed ;-)
>
> Here is the Linux arm kernel patchwork reference of previous discussion:
> https://patchwork.kernel.org/patch/2463641/

Thanks, I'm sorry for the delay. This is in mmc-next now, I'll send
it to Linus for the next -rc.

- Chris.
--
Chris Ball <[email protected]> <http://printf.net/>
One Laptop Per Child