From: Ulf Hansson <ulf.hansson@linaro.org> To: Ludovic Barre <ludovic.Barre@st.com> Cc: Rob Herring <robh+dt@kernel.org>, Maxime Coquelin <mcoquelin.stm32@gmail.com>, Alexandre Torgue <alexandre.torgue@st.com>, Benjamin Gaignard <benjamin.gaignard@linaro.org>, Gerald Baeza <gerald.baeza@st.com>, Loic Pallardy <loic.pallardy@st.com>, Linux ARM <linux-arm-kernel@lists.infradead.org>, Linux Kernel Mailing List <linux-kernel@vger.kernel.org>, DTML <devicetree@vger.kernel.org>, "linux-mmc@vger.kernel.org" <linux-mmc@vger.kernel.org>, linux-stm32@st-md-mailman.stormreply.com Subject: Re: [PATCH V2 01/27] mmc: mmci: internalize dma map/unmap into mmci dma functions Date: Thu, 27 Sep 2018 01:49:19 +0200 [thread overview] Message-ID: <CAPDyKFqGwihup0q=-mq_9-fj2YxJHWjWyP9jVSjUk6n=rdAvEg@mail.gmail.com> (raw) In-Reply-To: <1537523181-14578-2-git-send-email-ludovic.Barre@st.com> On 21 September 2018 at 11:45, Ludovic Barre <ludovic.Barre@st.com> wrote: > From: Ludovic Barre <ludovic.barre@st.com> > > This patch internalizes the management of dma map/unmap into > mmci dma interfaces. This allows to simplify and prepare the next dma > callbacks for mmci host ops. > mmci_dma_unmap was called in mmci_data_irq & mmci_cmd_irq functions > and can be integrated in mmci_dma_data_error. > > Signed-off-by: Ludovic Barre <ludovic.barre@st.com> Applied for next, thanks! Kind regards Uffe > --- > drivers/mmc/host/mmci.c | 40 +++++++++++++++++----------------------- > 1 file changed, 17 insertions(+), 23 deletions(-) > > diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c > index 1841d250..bf0bb07 100644 > --- a/drivers/mmc/host/mmci.c > +++ b/drivers/mmc/host/mmci.c > @@ -482,16 +482,6 @@ static inline void mmci_dma_release(struct mmci_host *host) > host->dma_rx_channel = host->dma_tx_channel = NULL; > } > > -static void mmci_dma_data_error(struct mmci_host *host) > -{ > - dev_err(mmc_dev(host->mmc), "error during DMA transfer!\n"); > - dmaengine_terminate_all(host->dma_current); > - host->dma_in_progress = false; > - host->dma_current = NULL; > - host->dma_desc_current = NULL; > - host->data->host_cookie = 0; > -} > - > static void mmci_dma_unmap(struct mmci_host *host, struct mmc_data *data) > { > struct dma_chan *chan; > @@ -505,6 +495,18 @@ static void mmci_dma_unmap(struct mmci_host *host, struct mmc_data *data) > mmc_get_dma_dir(data)); > } > > +static void mmci_dma_data_error(struct mmci_host *host) > +{ > + dev_err(mmc_dev(host->mmc), "error during DMA transfer!\n"); > + dmaengine_terminate_all(host->dma_current); > + host->dma_in_progress = false; > + host->dma_current = NULL; > + host->dma_desc_current = NULL; > + host->data->host_cookie = 0; > + > + mmci_dma_unmap(host, host->data); > +} > + > static void mmci_dma_finalize(struct mmci_host *host, struct mmc_data *data) > { > u32 status; > @@ -528,10 +530,9 @@ static void mmci_dma_finalize(struct mmci_host *host, struct mmc_data *data) > mmci_dma_data_error(host); > if (!data->error) > data->error = -EIO; > - } > - > - if (!data->host_cookie) > + } else if (!data->host_cookie) { > mmci_dma_unmap(host, data); > + } > > /* > * Use of DMA with scatter-gather is impossible. > @@ -742,10 +743,6 @@ static inline void mmci_dma_release(struct mmci_host *host) > { > } > > -static inline void mmci_dma_unmap(struct mmci_host *host, struct mmc_data *data) > -{ > -} > - > static inline void mmci_dma_finalize(struct mmci_host *host, > struct mmc_data *data) > { > @@ -906,10 +903,8 @@ mmci_data_irq(struct mmci_host *host, struct mmc_data *data, > u32 remain, success; > > /* Terminate the DMA transfer */ > - if (dma_inprogress(host)) { > + if (dma_inprogress(host)) > mmci_dma_data_error(host); > - mmci_dma_unmap(host, data); > - } > > /* > * Calculate how far we are into the transfer. Note that > @@ -1055,10 +1050,9 @@ mmci_cmd_irq(struct mmci_host *host, struct mmc_command *cmd, > if ((!sbc && !cmd->data) || cmd->error) { > if (host->data) { > /* Terminate the DMA transfer */ > - if (dma_inprogress(host)) { > + if (dma_inprogress(host)) > mmci_dma_data_error(host); > - mmci_dma_unmap(host, host->data); > - } > + > mmci_stop_data(host); > } > mmci_request_end(host, host->mrq); > -- > 2.7.4 >
WARNING: multiple messages have this Message-ID (diff)
From: ulf.hansson@linaro.org (Ulf Hansson) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH V2 01/27] mmc: mmci: internalize dma map/unmap into mmci dma functions Date: Thu, 27 Sep 2018 01:49:19 +0200 [thread overview] Message-ID: <CAPDyKFqGwihup0q=-mq_9-fj2YxJHWjWyP9jVSjUk6n=rdAvEg@mail.gmail.com> (raw) In-Reply-To: <1537523181-14578-2-git-send-email-ludovic.Barre@st.com> On 21 September 2018 at 11:45, Ludovic Barre <ludovic.Barre@st.com> wrote: > From: Ludovic Barre <ludovic.barre@st.com> > > This patch internalizes the management of dma map/unmap into > mmci dma interfaces. This allows to simplify and prepare the next dma > callbacks for mmci host ops. > mmci_dma_unmap was called in mmci_data_irq & mmci_cmd_irq functions > and can be integrated in mmci_dma_data_error. > > Signed-off-by: Ludovic Barre <ludovic.barre@st.com> Applied for next, thanks! Kind regards Uffe > --- > drivers/mmc/host/mmci.c | 40 +++++++++++++++++----------------------- > 1 file changed, 17 insertions(+), 23 deletions(-) > > diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c > index 1841d250..bf0bb07 100644 > --- a/drivers/mmc/host/mmci.c > +++ b/drivers/mmc/host/mmci.c > @@ -482,16 +482,6 @@ static inline void mmci_dma_release(struct mmci_host *host) > host->dma_rx_channel = host->dma_tx_channel = NULL; > } > > -static void mmci_dma_data_error(struct mmci_host *host) > -{ > - dev_err(mmc_dev(host->mmc), "error during DMA transfer!\n"); > - dmaengine_terminate_all(host->dma_current); > - host->dma_in_progress = false; > - host->dma_current = NULL; > - host->dma_desc_current = NULL; > - host->data->host_cookie = 0; > -} > - > static void mmci_dma_unmap(struct mmci_host *host, struct mmc_data *data) > { > struct dma_chan *chan; > @@ -505,6 +495,18 @@ static void mmci_dma_unmap(struct mmci_host *host, struct mmc_data *data) > mmc_get_dma_dir(data)); > } > > +static void mmci_dma_data_error(struct mmci_host *host) > +{ > + dev_err(mmc_dev(host->mmc), "error during DMA transfer!\n"); > + dmaengine_terminate_all(host->dma_current); > + host->dma_in_progress = false; > + host->dma_current = NULL; > + host->dma_desc_current = NULL; > + host->data->host_cookie = 0; > + > + mmci_dma_unmap(host, host->data); > +} > + > static void mmci_dma_finalize(struct mmci_host *host, struct mmc_data *data) > { > u32 status; > @@ -528,10 +530,9 @@ static void mmci_dma_finalize(struct mmci_host *host, struct mmc_data *data) > mmci_dma_data_error(host); > if (!data->error) > data->error = -EIO; > - } > - > - if (!data->host_cookie) > + } else if (!data->host_cookie) { > mmci_dma_unmap(host, data); > + } > > /* > * Use of DMA with scatter-gather is impossible. > @@ -742,10 +743,6 @@ static inline void mmci_dma_release(struct mmci_host *host) > { > } > > -static inline void mmci_dma_unmap(struct mmci_host *host, struct mmc_data *data) > -{ > -} > - > static inline void mmci_dma_finalize(struct mmci_host *host, > struct mmc_data *data) > { > @@ -906,10 +903,8 @@ mmci_data_irq(struct mmci_host *host, struct mmc_data *data, > u32 remain, success; > > /* Terminate the DMA transfer */ > - if (dma_inprogress(host)) { > + if (dma_inprogress(host)) > mmci_dma_data_error(host); > - mmci_dma_unmap(host, data); > - } > > /* > * Calculate how far we are into the transfer. Note that > @@ -1055,10 +1050,9 @@ mmci_cmd_irq(struct mmci_host *host, struct mmc_command *cmd, > if ((!sbc && !cmd->data) || cmd->error) { > if (host->data) { > /* Terminate the DMA transfer */ > - if (dma_inprogress(host)) { > + if (dma_inprogress(host)) > mmci_dma_data_error(host); > - mmci_dma_unmap(host, host->data); > - } > + > mmci_stop_data(host); > } > mmci_request_end(host, host->mrq); > -- > 2.7.4 >
next prev parent reply other threads:[~2018-09-26 23:50 UTC|newest] Thread overview: 136+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-09-21 9:45 [PATCH V2 00/27] mmc: mmci: add sdmmc variant for stm32 Ludovic Barre 2018-09-21 9:45 ` Ludovic Barre 2018-09-21 9:45 ` Ludovic Barre 2018-09-21 9:45 ` [PATCH V2 01/27] mmc: mmci: internalize dma map/unmap into mmci dma functions Ludovic Barre 2018-09-21 9:45 ` Ludovic Barre 2018-09-21 9:45 ` Ludovic Barre 2018-09-26 23:49 ` Ulf Hansson [this message] 2018-09-26 23:49 ` Ulf Hansson 2018-09-21 9:45 ` [PATCH V2 02/27] mmc: mmci: internalize dma_inprogress " Ludovic Barre 2018-09-21 9:45 ` Ludovic Barre 2018-09-21 9:45 ` Ludovic Barre 2018-09-26 23:49 ` Ulf Hansson 2018-09-26 23:49 ` Ulf Hansson 2018-09-21 9:45 ` [PATCH V2 03/27] mmc: mmci: convert dma_setup callback to return an int Ludovic Barre 2018-09-21 9:45 ` Ludovic Barre 2018-09-21 9:45 ` Ludovic Barre 2018-09-24 14:28 ` Ulf Hansson 2018-09-24 14:28 ` Ulf Hansson 2018-09-24 16:12 ` Ludovic BARRE 2018-09-24 16:12 ` Ludovic BARRE 2018-09-24 16:12 ` Ludovic BARRE 2018-09-26 23:49 ` Ulf Hansson 2018-09-26 23:49 ` Ulf Hansson 2018-09-27 8:55 ` Srinivas Kandagatla 2018-09-27 8:55 ` Srinivas Kandagatla 2018-09-21 9:45 ` [PATCH V2 04/27] mmc: mmci: introduce dma_priv pointer to mmci_host Ludovic Barre 2018-09-21 9:45 ` Ludovic Barre 2018-09-21 9:45 ` Ludovic Barre 2018-09-24 18:52 ` Ulf Hansson 2018-09-24 18:52 ` Ulf Hansson 2018-09-25 7:19 ` Ludovic BARRE 2018-09-25 7:19 ` Ludovic BARRE 2018-09-25 7:19 ` Ludovic BARRE 2018-09-21 9:45 ` [PATCH V2 05/27] mmc: mmci: move mmci next cookie to mci host Ludovic Barre 2018-09-21 9:45 ` Ludovic Barre 2018-09-21 9:45 ` Ludovic Barre 2018-09-24 18:46 ` Ulf Hansson 2018-09-24 18:46 ` Ulf Hansson 2018-09-25 7:08 ` Ludovic BARRE 2018-09-25 7:08 ` Ludovic BARRE 2018-09-25 7:08 ` Ludovic BARRE 2018-09-21 9:46 ` [PATCH V2 06/27] mmc: mmci: merge prepare data functions Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` [PATCH V2 07/27] mmc: mmci: add prepare/unprepare_data callbacks Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` [PATCH V2 08/27] mmc: mmci: add get_next_data callback Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` [PATCH V2 09/27] mmc: mmci: modify dma_setup callback Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-10-01 9:30 ` Ulf Hansson 2018-10-01 9:30 ` Ulf Hansson 2018-10-01 9:43 ` Ludovic BARRE 2018-10-01 9:43 ` Ludovic BARRE 2018-10-01 9:43 ` Ludovic BARRE 2018-09-21 9:46 ` [PATCH V2 10/27] mmc: mmci: add dma_release callback Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` [PATCH V2 11/27] mmc: mmci: add dma_start callback Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` [PATCH V2 12/27] mmc: mmci: add dma_finalize callback Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` [PATCH V2 13/27] mmc: mmci: add dma_error callback Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` [PATCH V2 14/27] mmc: mmci: add validate_data callback Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` [PATCH V2 15/27] mmc: mmci: add set_clk/pwrreg callbacks Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` [PATCH V2 16/27] mmc: mmci: add datactrl block size variant property Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` [PATCH V2 17/27] mmc: mmci: expand startbiterr to irqmask and error check Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` [PATCH V2 18/27] mmc: mmci: add variant properties to define cpsm & cmdresp bits Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` [PATCH V2 19/27] mmc: mmci: add variant property to define dpsm bit Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` [PATCH V2 20/27] mmc: mmci: add variant property to define irq pio mask Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` [PATCH V2 21/27] mmc: mmci: add variant property to write datactrl before command Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` [PATCH V2 22/27] mmc: mmci: add variant property to not read datacnt Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` [PATCH V2 23/27] mmc: mmci: add variant property to request a reset Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-10-01 9:30 ` Ulf Hansson 2018-10-01 9:30 ` Ulf Hansson 2018-10-01 12:16 ` Ludovic BARRE 2018-10-01 12:16 ` Ludovic BARRE 2018-10-01 12:16 ` Ludovic BARRE 2018-10-01 13:43 ` Ulf Hansson 2018-10-01 13:43 ` Ulf Hansson 2018-09-21 9:46 ` [PATCH V2 24/27] mmc: mmci: add clock divider for stm32 sdmmc Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` [PATCH V2 25/27] mmc: mmci: add stm32 sdmmc registers Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` [PATCH V2 26/27] mmc: mmci: add DT bindings for STM32 sdmmc Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-25 15:27 ` Rob Herring 2018-09-25 15:27 ` Rob Herring 2018-10-01 9:30 ` Ulf Hansson 2018-10-01 9:30 ` Ulf Hansson 2018-09-21 9:46 ` [PATCH V2 27/27] mmc: mmci: add stm32 sdmmc variant Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-09-21 9:46 ` Ludovic Barre 2018-10-01 9:31 ` Ulf Hansson 2018-10-01 9:31 ` Ulf Hansson 2018-10-01 12:56 ` Ludovic BARRE 2018-10-01 12:56 ` Ludovic BARRE 2018-10-01 12:56 ` Ludovic BARRE 2018-10-01 13:39 ` Ulf Hansson 2018-10-01 13:39 ` Ulf Hansson 2018-10-01 13:53 ` Ludovic BARRE 2018-10-01 13:53 ` Ludovic BARRE 2018-10-01 13:53 ` Ludovic BARRE -- strict thread matches above, loose matches on Subject: below -- 2018-09-18 10:55 [PATCH V2 00/27] mmc: mmci: add sdmmc variant for stm32 Ludovic Barre 2018-09-18 10:55 ` [PATCH V2 01/27] mmc: mmci: internalize dma map/unmap into mmci dma functions Ludovic Barre 2018-09-18 10:55 ` Ludovic Barre 2018-09-18 10:55 ` Ludovic Barre
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='CAPDyKFqGwihup0q=-mq_9-fj2YxJHWjWyP9jVSjUk6n=rdAvEg@mail.gmail.com' \ --to=ulf.hansson@linaro.org \ --cc=alexandre.torgue@st.com \ --cc=benjamin.gaignard@linaro.org \ --cc=devicetree@vger.kernel.org \ --cc=gerald.baeza@st.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mmc@vger.kernel.org \ --cc=linux-stm32@st-md-mailman.stormreply.com \ --cc=loic.pallardy@st.com \ --cc=ludovic.Barre@st.com \ --cc=mcoquelin.stm32@gmail.com \ --cc=robh+dt@kernel.org \ /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: linkBe 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.