From: Jaehoon Chung <jh80.chung@samsung.com> To: linux-mmc@vger.kernel.org Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-rockchip@lists.infradead.org, ulf.hansson@linaro.org, robh+dt@kernel.org, krzk@kernel.org, heiko@sntech.de, shawn.lin@rock-chips.com, Jaehoon Chung <jh80.chung@samsung.com> Subject: [PATCH 05/13] mmc: dw_mmc: call the dw_mci_prep_stop_abort() by default Date: Thu, 03 Nov 2016 15:21:27 +0900 [thread overview] Message-ID: <20161103062135.10697-6-jh80.chung@samsung.com> (raw) In-Reply-To: <20161103062135.10697-1-jh80.chung@samsung.com> stop_cmdr should be set to values relevant to stop command. It migth be assigned to values whatever there is mrq->stop or not. Then it doesn't need to use dw_mci_prepare_command(). It's enough to use the prep_stop_abort for preparing stop command. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> --- drivers/mmc/host/dw_mmc.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c index 23fc505..16df93b 100644 --- a/drivers/mmc/host/dw_mmc.c +++ b/drivers/mmc/host/dw_mmc.c @@ -385,7 +385,7 @@ static void dw_mci_start_command(struct dw_mci *host, static inline void send_stop_abort(struct dw_mci *host, struct mmc_data *data) { - struct mmc_command *stop = data->stop ? data->stop : &host->stop_abort; + struct mmc_command *stop = &host->stop_abort; dw_mci_start_command(host, stop, host->stop_cmdr); } @@ -1277,10 +1277,7 @@ static void __dw_mci_start_request(struct dw_mci *host, spin_unlock_irqrestore(&host->irq_lock, irqflags); } - if (mrq->stop) - host->stop_cmdr = dw_mci_prepare_command(slot->mmc, mrq->stop); - else - host->stop_cmdr = dw_mci_prep_stop_abort(host, cmd); + host->stop_cmdr = dw_mci_prep_stop_abort(host, cmd); } static void dw_mci_start_request(struct dw_mci *host, @@ -1890,8 +1887,7 @@ static void dw_mci_tasklet_func(unsigned long priv) if (test_and_clear_bit(EVENT_DATA_ERROR, &host->pending_events)) { dw_mci_stop_dma(host); - if (data->stop || - !(host->data_status & (SDMMC_INT_DRTO | + if (!(host->data_status & (SDMMC_INT_DRTO | SDMMC_INT_EBE))) send_stop_abort(host, data); state = STATE_DATA_ERROR; @@ -1927,8 +1923,7 @@ static void dw_mci_tasklet_func(unsigned long priv) if (test_and_clear_bit(EVENT_DATA_ERROR, &host->pending_events)) { dw_mci_stop_dma(host); - if (data->stop || - !(host->data_status & (SDMMC_INT_DRTO | + if (!(host->data_status & (SDMMC_INT_DRTO | SDMMC_INT_EBE))) send_stop_abort(host, data); state = STATE_DATA_ERROR; @@ -2004,7 +1999,7 @@ static void dw_mci_tasklet_func(unsigned long priv) host->cmd = NULL; host->data = NULL; - if (mrq->stop) + if (!mrq->sbc && mrq->stop) dw_mci_command_complete(host, mrq->stop); else host->cmd_status = 0; -- 2.10.1
WARNING: multiple messages have this Message-ID (diff)
From: jh80.chung@samsung.com (Jaehoon Chung) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 05/13] mmc: dw_mmc: call the dw_mci_prep_stop_abort() by default Date: Thu, 03 Nov 2016 15:21:27 +0900 [thread overview] Message-ID: <20161103062135.10697-6-jh80.chung@samsung.com> (raw) In-Reply-To: <20161103062135.10697-1-jh80.chung@samsung.com> stop_cmdr should be set to values relevant to stop command. It migth be assigned to values whatever there is mrq->stop or not. Then it doesn't need to use dw_mci_prepare_command(). It's enough to use the prep_stop_abort for preparing stop command. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> --- drivers/mmc/host/dw_mmc.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c index 23fc505..16df93b 100644 --- a/drivers/mmc/host/dw_mmc.c +++ b/drivers/mmc/host/dw_mmc.c @@ -385,7 +385,7 @@ static void dw_mci_start_command(struct dw_mci *host, static inline void send_stop_abort(struct dw_mci *host, struct mmc_data *data) { - struct mmc_command *stop = data->stop ? data->stop : &host->stop_abort; + struct mmc_command *stop = &host->stop_abort; dw_mci_start_command(host, stop, host->stop_cmdr); } @@ -1277,10 +1277,7 @@ static void __dw_mci_start_request(struct dw_mci *host, spin_unlock_irqrestore(&host->irq_lock, irqflags); } - if (mrq->stop) - host->stop_cmdr = dw_mci_prepare_command(slot->mmc, mrq->stop); - else - host->stop_cmdr = dw_mci_prep_stop_abort(host, cmd); + host->stop_cmdr = dw_mci_prep_stop_abort(host, cmd); } static void dw_mci_start_request(struct dw_mci *host, @@ -1890,8 +1887,7 @@ static void dw_mci_tasklet_func(unsigned long priv) if (test_and_clear_bit(EVENT_DATA_ERROR, &host->pending_events)) { dw_mci_stop_dma(host); - if (data->stop || - !(host->data_status & (SDMMC_INT_DRTO | + if (!(host->data_status & (SDMMC_INT_DRTO | SDMMC_INT_EBE))) send_stop_abort(host, data); state = STATE_DATA_ERROR; @@ -1927,8 +1923,7 @@ static void dw_mci_tasklet_func(unsigned long priv) if (test_and_clear_bit(EVENT_DATA_ERROR, &host->pending_events)) { dw_mci_stop_dma(host); - if (data->stop || - !(host->data_status & (SDMMC_INT_DRTO | + if (!(host->data_status & (SDMMC_INT_DRTO | SDMMC_INT_EBE))) send_stop_abort(host, data); state = STATE_DATA_ERROR; @@ -2004,7 +1999,7 @@ static void dw_mci_tasklet_func(unsigned long priv) host->cmd = NULL; host->data = NULL; - if (mrq->stop) + if (!mrq->sbc && mrq->stop) dw_mci_command_complete(host, mrq->stop); else host->cmd_status = 0; -- 2.10.1
next prev parent reply other threads:[~2016-11-03 6:24 UTC|newest] Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-11-03 6:21 [PATCH 00/13] mmc: dw_mmc: cleans the codes for dwmmc controller Jaehoon Chung 2016-11-03 6:21 ` Jaehoon Chung 2016-11-03 6:21 ` [PATCH 01/13] mmc: dw_mmc: display the real register value on debugfs Jaehoon Chung 2016-11-03 6:21 ` Jaehoon Chung 2016-11-03 6:21 ` Jaehoon Chung 2016-11-03 6:21 ` [PATCH 02/13] mmc: dw_mmc: fix the debug message for checking card's present Jaehoon Chung 2016-11-03 6:21 ` Jaehoon Chung 2016-11-03 6:21 ` Jaehoon Chung 2016-11-03 6:21 ` [PATCH 03/13] mmc: dw_mmc: change the DW_MCI_FREQ_MIN from 400K to 100K Jaehoon Chung 2016-11-03 6:21 ` Jaehoon Chung 2016-11-03 6:21 ` [PATCH 04/13] mmc: dw_mmc: use the hold register when send stop command Jaehoon Chung 2016-11-03 6:21 ` Jaehoon Chung 2016-11-03 6:21 ` Jaehoon Chung [this message] 2016-11-03 6:21 ` [PATCH 05/13] mmc: dw_mmc: call the dw_mci_prep_stop_abort() by default Jaehoon Chung 2016-11-03 6:21 ` [PATCH 06/13] mmc: core: move the cookie's enum values from sdhci.h to mmc.h Jaehoon Chung 2016-11-03 6:21 ` Jaehoon Chung 2016-11-03 6:21 ` [PATCH 07/13] mmc: dw_mmc: use the cookie's enum values for post/pre_req() Jaehoon Chung 2016-11-03 6:21 ` Jaehoon Chung 2016-11-03 6:21 ` [PATCH 08/13] mmc: dw_mmc: remove the unnecessary mmc_data structure Jaehoon Chung 2016-11-03 6:21 ` Jaehoon Chung 2016-11-03 6:21 ` [PATCH 09/13] mmc: dw_mmc: remove the "clock-freq-min-max" property Jaehoon Chung 2016-11-03 6:21 ` Jaehoon Chung 2016-11-03 8:20 ` Heiko Stübner 2016-11-03 8:20 ` Heiko Stübner 2016-11-03 8:42 ` Jaehoon Chung 2016-11-03 8:42 ` Jaehoon Chung 2016-11-03 6:21 ` [PATCH 10/13] ARM: dts: exynos: replace to "max-frequecy" instead of "clock-freq-min-max" Jaehoon Chung 2016-11-03 6:21 ` Jaehoon Chung 2016-11-03 18:41 ` Krzysztof Kozlowski 2016-11-03 18:41 ` Krzysztof Kozlowski 2016-11-04 10:21 ` Jaehoon Chung 2016-11-04 10:21 ` Jaehoon Chung 2016-11-04 11:19 ` Heiko Stuebner 2016-11-04 11:19 ` Heiko Stuebner 2016-11-04 15:04 ` Krzysztof Kozlowski 2016-11-04 15:04 ` Krzysztof Kozlowski 2016-11-07 0:38 ` Jaehoon Chung 2016-11-07 0:38 ` Jaehoon Chung 2016-11-09 20:10 ` Krzysztof Kozlowski 2016-11-09 20:10 ` Krzysztof Kozlowski 2016-11-09 20:10 ` Krzysztof Kozlowski 2016-11-03 6:21 ` [PATCH 11/13] ARM: dts: rockchip: replace to "max-frequency" " Jaehoon Chung 2016-11-03 6:21 ` Jaehoon Chung 2016-11-09 14:05 ` Heiko Stuebner 2016-11-09 14:05 ` Heiko Stuebner 2016-11-03 6:21 ` [PATCH 12/13] ARM64: " Jaehoon Chung 2016-11-03 6:21 ` Jaehoon Chung 2016-11-09 14:37 ` Heiko Stuebner 2016-11-09 14:37 ` Heiko Stuebner 2016-11-03 6:21 ` [PATCH 13/13] Documentation: synopsys-dw-mshc: remove the unused properties Jaehoon Chung 2016-11-03 6:21 ` Jaehoon Chung 2016-11-10 18:47 ` Rob Herring 2016-11-10 18:47 ` Rob Herring 2016-11-10 18:47 ` Rob Herring 2016-11-09 18:55 ` [PATCH 00/13] mmc: dw_mmc: cleans the codes for dwmmc controller Heiko Stuebner 2016-11-09 18:55 ` Heiko Stuebner
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=20161103062135.10697-6-jh80.chung@samsung.com \ --to=jh80.chung@samsung.com \ --cc=devicetree@vger.kernel.org \ --cc=heiko@sntech.de \ --cc=krzk@kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mmc@vger.kernel.org \ --cc=linux-rockchip@lists.infradead.org \ --cc=linux-samsung-soc@vger.kernel.org \ --cc=robh+dt@kernel.org \ --cc=shawn.lin@rock-chips.com \ --cc=ulf.hansson@linaro.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.