Message ID | 1533116221-380-7-git-send-email-ludovic.Barre@st.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | mmc: mmci: prepare dma callbacks with mmci_host_ops | expand |
On 1 August 2018 at 11:36, Ludovic Barre <ludovic.Barre@st.com> wrote: > From: Ludovic Barre <ludovic.barre@st.com> > > This patch merges the prepare data functions. > This allows to define a single access to prepare data service. > This prepares integration for mmci host ops. > > Signed-off-by: Ludovic Barre <ludovic.barre@st.com> > --- > drivers/mmc/host/mmci.c | 22 +++++++++------------- > 1 file changed, 9 insertions(+), 13 deletions(-) > > diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c > index 5646c2e6..e4d80f1 100644 > --- a/drivers/mmc/host/mmci.c > +++ b/drivers/mmc/host/mmci.c > @@ -651,11 +651,16 @@ static int __mmci_dma_prep_data(struct mmci_host *host, struct mmc_data *data, > return -ENOMEM; > } > > -static inline int mmci_dma_prep_data(struct mmci_host *host, > - struct mmc_data *data) > +static inline int mmci_dma_prepare_data(struct mmci_host *host, Nitpick: I don't see the reason to why you need to rename this function here, please keep it as is. > + struct mmc_data *data, > + bool next) > { > struct dmaengine_priv *dmae = host->dma_priv; > + struct dmaengine_next *nd = &dmae->next_data; > > + if (next) > + return __mmci_dma_prep_data(host, data, &nd->dma_chan, > + &nd->dma_desc); > /* Check if next job is already prepared. */ > if (dmae->dma_current && dmae->dma_desc_current) > return 0; > @@ -665,22 +670,13 @@ static inline int mmci_dma_prep_data(struct mmci_host *host, > &dmae->dma_desc_current); > } > > -static inline int mmci_dma_prep_next(struct mmci_host *host, > - struct mmc_data *data) > -{ > - struct dmaengine_priv *dmae = host->dma_priv; > - struct dmaengine_next *nd = &dmae->next_data; > - > - return __mmci_dma_prep_data(host, data, &nd->dma_chan, &nd->dma_desc); > -} > - > static int mmci_dma_start_data(struct mmci_host *host, unsigned int datactrl) > { > struct dmaengine_priv *dmae = host->dma_priv; > struct mmc_data *data = host->data; > int ret; > > - ret = mmci_dma_prep_data(host, host->data); > + ret = mmci_dma_prepare_data(host, host->data, false); > if (ret) > return ret; > > @@ -737,7 +733,7 @@ static void mmci_pre_request(struct mmc_host *mmc, struct mmc_request *mrq) > if (mmci_validate_data(host, data)) > return; > > - if (!mmci_dma_prep_next(host, data)) > + if (!mmci_dma_prepare_data(host, data, true)) > data->host_cookie = ++host->next_cookie < 0 ? > 1 : host->next_cookie; > } > -- > 2.7.4 > Kind regards Uffe
diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c index 5646c2e6..e4d80f1 100644 --- a/drivers/mmc/host/mmci.c +++ b/drivers/mmc/host/mmci.c @@ -651,11 +651,16 @@ static int __mmci_dma_prep_data(struct mmci_host *host, struct mmc_data *data, return -ENOMEM; } -static inline int mmci_dma_prep_data(struct mmci_host *host, - struct mmc_data *data) +static inline int mmci_dma_prepare_data(struct mmci_host *host, + struct mmc_data *data, + bool next) { struct dmaengine_priv *dmae = host->dma_priv; + struct dmaengine_next *nd = &dmae->next_data; + if (next) + return __mmci_dma_prep_data(host, data, &nd->dma_chan, + &nd->dma_desc); /* Check if next job is already prepared. */ if (dmae->dma_current && dmae->dma_desc_current) return 0; @@ -665,22 +670,13 @@ static inline int mmci_dma_prep_data(struct mmci_host *host, &dmae->dma_desc_current); } -static inline int mmci_dma_prep_next(struct mmci_host *host, - struct mmc_data *data) -{ - struct dmaengine_priv *dmae = host->dma_priv; - struct dmaengine_next *nd = &dmae->next_data; - - return __mmci_dma_prep_data(host, data, &nd->dma_chan, &nd->dma_desc); -} - static int mmci_dma_start_data(struct mmci_host *host, unsigned int datactrl) { struct dmaengine_priv *dmae = host->dma_priv; struct mmc_data *data = host->data; int ret; - ret = mmci_dma_prep_data(host, host->data); + ret = mmci_dma_prepare_data(host, host->data, false); if (ret) return ret; @@ -737,7 +733,7 @@ static void mmci_pre_request(struct mmc_host *mmc, struct mmc_request *mrq) if (mmci_validate_data(host, data)) return; - if (!mmci_dma_prep_next(host, data)) + if (!mmci_dma_prepare_data(host, data, true)) data->host_cookie = ++host->next_cookie < 0 ? 1 : host->next_cookie; }