[PATCH v7 03/11] mmci: implement pre_req() and post_req()

Per Forlin per.forlin at linaro.org
Wed Jun 22 06:01:56 EDT 2011


On 22 June 2011 01:38, Per Forlin <per.forlin at linaro.org> wrote:
> pre_req() runs dma_map_sg() and prepares the dma descriptor
> for the next mmc data transfer. post_req() runs dma_unmap_sg.
> If not calling pre_req() before mmci_request(), mmci_request()
> will prepare the cache and dma just like it did it before.
> It is optional to use pre_req() and post_req() for mmci.
>
> Signed-off-by: Per Forlin <per.forlin at linaro.org>
> ---
>  drivers/mmc/host/mmci.c |  146 ++++++++++++++++++++++++++++++++++++++++++----
>  drivers/mmc/host/mmci.h |    8 +++
>  2 files changed, 141 insertions(+), 13 deletions(-)
>
...
> @@ -1005,6 +1123,8 @@ static int __devinit mmci_probe(struct amba_device *dev,
>        host->gpio_cd = -ENOSYS;
>        host->gpio_cd_irq = -1;
>
> +       host->next_data.cookie = 1;
> +
Doesn't compile without DMA_ENGINE. Issue reported by Nickolay.

I simply move the initialization to mmci_dma_setup. I will update in
the next patchset.

@@ -215,6 +215,9 @@ static void __devinit mmci_dma_setup(struct mmci_host *host)
+       /* initialize pre request cookie */
+       host->next_data.cookie = 1;
+
@@ -1121,8 +1124,6 @@ static int __devinit mmci_probe(struct amba_device *dev,
-       host->next_data.cookie = 1;



More information about the linux-arm-kernel mailing list