Thread (49 messages) 49 messages, 4 authors, 2018-10-01

[PATCH V2 05/27] mmc: mmci: move mmci next cookie to mci host

From: Ulf Hansson <hidden>
Date: 2018-09-24 18:47:13
Also in: linux-devicetree, linux-mmc, lkml

On 21 September 2018 at 11:45, Ludovic Barre [off-list ref] wrote:
From: Ludovic Barre <redacted>

This patch moves next cookie to mmci host structure to
share same cookie management between all variants.
I would suggest you to squash this with patch4, as I think it makes
more sense to keep these changes together.
quoted hunk ↗ jump to hunk
Signed-off-by: Ludovic Barre <redacted>
---
 drivers/mmc/host/mmci.c | 10 ++++------
 drivers/mmc/host/mmci.h |  2 ++
 2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
index 6de7c8d..43f2a1a 100644
--- a/drivers/mmc/host/mmci.c
+++ b/drivers/mmc/host/mmci.c
@@ -418,7 +418,6 @@ static void mmci_init_sg(struct mmci_host *host, struct mmc_data *data)
 struct mmci_dmae_next {
        struct dma_async_tx_descriptor *desc;
        struct dma_chan *chan;
-       s32 cookie;
 };

 struct mmci_dmae_priv {
@@ -449,7 +448,7 @@ static int mmci_dma_setup(struct mmci_host *host)
                                                     "tx");

        /* initialize pre request cookie */
-       dmae->next_data.cookie = 1;
+       host->next_cookie = 1;

        /*
         * If only an RX channel is specified, the driver will
@@ -716,7 +715,7 @@ static void mmci_get_next_data(struct mmci_host *host, struct mmc_data *data)
        struct mmci_dmae_priv *dmae = host->dma_priv;
        struct mmci_dmae_next *next = &dmae->next_data;

-       WARN_ON(data->host_cookie && data->host_cookie != next->cookie);
+       WARN_ON(data->host_cookie && data->host_cookie != host->next_cookie);
        WARN_ON(!data->host_cookie && (next->desc || next->chan));

        dmae->desc_current = next->desc;
@@ -728,9 +727,7 @@ static void mmci_get_next_data(struct mmci_host *host, struct mmc_data *data)
 static void mmci_pre_request(struct mmc_host *mmc, struct mmc_request *mrq)
 {
        struct mmci_host *host = mmc_priv(mmc);
-       struct mmci_dmae_priv *dmae = host->dma_priv;
        struct mmc_data *data = mrq->data;
-       struct mmci_dmae_next *nd = &dmae->next_data;

        if (!data)
                return;
@@ -741,7 +738,8 @@ static void mmci_pre_request(struct mmc_host *mmc, struct mmc_request *mrq)
                return;

        if (!mmci_dma_prep_next(host, data))
-               data->host_cookie = ++nd->cookie < 0 ? 1 : nd->cookie;
+               data->host_cookie = ++host->next_cookie < 0 ?
+                       1 : host->next_cookie;
 }

 static void mmci_post_request(struct mmc_host *mmc, struct mmc_request *mrq,
diff --git a/drivers/mmc/host/mmci.h b/drivers/mmc/host/mmci.h
index 1e9a45b..5bb1ce2 100644
--- a/drivers/mmc/host/mmci.h
+++ b/drivers/mmc/host/mmci.h
@@ -318,5 +318,7 @@ struct mmci_host {
        int (*get_rx_fifocnt)(struct mmci_host *h, u32 status, int remain);

        void                    *dma_priv;
+
+       s32                     next_cookie;
 };

--
2.7.4
Kind regards
Uffe
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help