All of lore.kernel.org
 help / color / mirror / Atom feed
From: Masahiro Yamada <yamada.masahiro@socionext.com>
To: linux-mmc@vger.kernel.org,
	Wolfram Sang <wsa+renesas@sang-engineering.com>
Cc: Ulf Magnusson <ulfalizer@gmail.com>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Simon Horman <horms+renesas@verge.net.au>,
	Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>,
	linux-renesas-soc@vger.kernel.org,
	Masahiro Yamada <yamada.masahiro@socionext.com>,
	linux-kernel@vger.kernel.org,
	Ulf Hansson <ulf.hansson@linaro.org>
Subject: [PATCH v3 15/16] mmc: tmio: clear force_pio flag before starting data transfer
Date: Thu, 18 Jan 2018 01:28:15 +0900	[thread overview]
Message-ID: <1516206496-16612-16-git-send-email-yamada.masahiro@socionext.com> (raw)
In-Reply-To: <1516206496-16612-1-git-send-email-yamada.masahiro@socionext.com>

Currently, force_pio is cleared when the driver exits.  Then, it
resulted in clearing it in multiple places since MMC drivers in
general have multiple exit points.

 tmio_mmc_reset_work - bails out on timeout
 tmio_process_mrq - error out when it cannot send a command
 tmio_mmc_finish_request - successful exit

This is error-prone since we may miss to cover all bail-out points.

To simplify the code, the data structure should be initialized just
before used since we have a single entrance.  force_pio is only used
for data transfer, so tmio_mmc_start_data() will be a suitable place
to clear this flag.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

Changes in v3:
  - newly added

Changes in v2: None

 drivers/mmc/host/tmio_mmc_core.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/mmc/host/tmio_mmc_core.c b/drivers/mmc/host/tmio_mmc_core.c
index 731552a..494f0b3 100644
--- a/drivers/mmc/host/tmio_mmc_core.c
+++ b/drivers/mmc/host/tmio_mmc_core.c
@@ -278,7 +278,6 @@ static void tmio_mmc_reset_work(struct work_struct *work)
 
 	host->cmd = NULL;
 	host->data = NULL;
-	host->force_pio = false;
 
 	spin_unlock_irqrestore(&host->lock, flags);
 
@@ -759,6 +758,7 @@ static int tmio_mmc_start_data(struct tmio_mmc_host *host,
 
 	tmio_mmc_init_sg(host, data);
 	host->data = data;
+	host->force_pio = false;
 
 	/* Set transfer length / blocksize */
 	sd_ctrl_write16(host, CTL_SD_XFER_LEN, data->blksz);
@@ -850,7 +850,6 @@ static void tmio_process_mrq(struct tmio_mmc_host *host,
 	return;
 
 fail:
-	host->force_pio = false;
 	host->mrq = NULL;
 	mrq->cmd->error = ret;
 	mmc_request_done(host->mmc, mrq);
@@ -900,7 +899,6 @@ static void tmio_mmc_finish_request(struct tmio_mmc_host *host)
 	if (host->cmd != mrq->sbc) {
 		host->cmd = NULL;
 		host->data = NULL;
-		host->force_pio = false;
 		host->mrq = NULL;
 	}
 
-- 
2.7.4

  parent reply	other threads:[~2018-01-17 16:42 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-17 16:28 [PATCH v3 00/16] mmc: tmio: another batch of TMIO MMC fixes and cleanups Masahiro Yamada
2018-01-17 16:28 ` Masahiro Yamada
2018-01-17 16:28 ` [PATCH v3 01/16] mmc: tmio: ioremap memory resource in tmio_mmc_host_alloc() Masahiro Yamada
2018-01-17 16:28 ` [PATCH v3 02/16] mmc: tmio: move clk_enable/disable out of tmio_mmc_host_probe() Masahiro Yamada
2018-01-17 16:28 ` [PATCH v3 03/16] mmc: tmio: move {tmio_}mmc_of_parse() to tmio_mmc_host_alloc() Masahiro Yamada
2018-01-17 16:28 ` [PATCH v3 04/16] mmc: tmio: remove dma_ops from tmio_mmc_host_probe() argument Masahiro Yamada
2018-01-17 16:28 ` [PATCH v3 05/16] mmc: slot-gpio: add a helper to check capability of GPIO WP detection Masahiro Yamada
2018-02-07 19:06   ` Wolfram Sang
2018-01-17 16:28 ` [PATCH v3 06/16] mmc: tmio: refactor .get_ro hook Masahiro Yamada
2018-02-07 19:09   ` Wolfram Sang
2018-01-17 16:28 ` [PATCH v3 07/16] mmc: renesas_sdhi: use MMC_CAP2_NO_WRITE_PROTECT instead of TMIO own flag Masahiro Yamada
2018-02-07 19:28   ` Wolfram Sang
2018-01-17 16:28 ` [PATCH v3 08/16] sh: kfr2r09: " Masahiro Yamada
2018-01-17 16:28   ` Masahiro Yamada
2018-02-07 19:28   ` Wolfram Sang
2018-02-07 19:28     ` Wolfram Sang
2018-01-17 16:28 ` [PATCH v3 09/16] mmc: tmio: " Masahiro Yamada
2018-02-07 19:31   ` Wolfram Sang
2018-01-17 16:28 ` [PATCH v3 10/16] mmc: tmio: remove TMIO_MMC_WRPROTECT_DISABLE Masahiro Yamada
2018-01-18  8:27   ` Lee Jones
2018-02-07 19:31   ` Wolfram Sang
2018-01-17 16:28 ` [PATCH v3 11/16] mmc: tmio: deprecate "toshiba,mmc-wrprotect-disable" DT property Masahiro Yamada
2018-01-17 16:28   ` Masahiro Yamada
2018-01-18  1:58   ` Masahiro Yamada
2018-01-29 17:18     ` Rob Herring
2018-01-29 17:18       ` Rob Herring
2018-02-07 19:32     ` Wolfram Sang
2018-02-07 19:32       ` Wolfram Sang
2018-03-18  2:46       ` Masahiro Yamada
2018-01-17 16:28 ` [PATCH v3 12/16] mmc: tmio: support IP-builtin card detection logic Masahiro Yamada
2018-02-07 19:34   ` Wolfram Sang
2018-02-08  1:02     ` Masahiro Yamada
2018-01-17 16:28 ` [PATCH v3 13/16] mmc: tmio: fix never-detected card insertion bug Masahiro Yamada
2018-02-07 19:38   ` Wolfram Sang
2018-01-17 16:28 ` [PATCH v3 14/16] mmc: tmio: move TMIO_MASK_{READOP,WRITEOP} handling to correct place Masahiro Yamada
2018-02-07 21:47   ` Wolfram Sang
2018-02-08  1:11     ` Masahiro Yamada
2018-03-04 22:34   ` Wolfram Sang
2018-01-17 16:28 ` Masahiro Yamada [this message]
2018-03-04 22:39   ` [PATCH v3 15/16] mmc: tmio: clear force_pio flag before starting data transfer Wolfram Sang
2018-01-17 16:28 ` [PATCH v3 16/16] mmc: tmio: remove useless TMIO_MASK_CMD handling in tmio_mmc_host_probe() Masahiro Yamada
2018-03-04 22:39   ` Wolfram Sang
2018-01-18  8:13 ` [PATCH v3 00/16] mmc: tmio: another batch of TMIO MMC fixes and cleanups Ulf Hansson
2018-01-18  8:13   ` Ulf Hansson
2018-02-07 19:11   ` Wolfram Sang
2018-02-07 19:11     ` Wolfram Sang
2018-02-14  9:36     ` Ulf Hansson
2018-02-14  9:36       ` Ulf Hansson
2018-02-14  9:43       ` Masahiro Yamada
2018-02-14  9:43         ` Masahiro Yamada
2018-02-14  9:46         ` Ulf Hansson
2018-02-14  9:46           ` Ulf Hansson
     [not found]       ` <CAPDyKFoxp7p0atQTV=PoQ7Bwt0fOs2aEq1KJHPtrq+zA3eFYgw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-02-14 10:23         ` Wolfram Sang
2018-02-14 10:23           ` Wolfram Sang
2018-02-14 10:23           ` Wolfram Sang
2018-02-14 10:39           ` Ulf Hansson
2018-02-14 10:39             ` Ulf Hansson
2018-03-04 22:42 ` Wolfram Sang
2018-03-04 22:42   ` Wolfram Sang
2018-03-05  8:45   ` Ulf Hansson
2018-03-05  8:45     ` Ulf Hansson
2018-03-05  9:22     ` Wolfram Sang
2018-03-05  9:22       ` Wolfram Sang
2018-03-05  9:34       ` Masahiro Yamada
2018-03-05  9:34         ` Masahiro Yamada
2018-03-05  9:39         ` Wolfram Sang
2018-03-05  9:39           ` Wolfram Sang
2018-03-05 12:06         ` Ulf Hansson
2018-03-05 12:06           ` Ulf Hansson

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=1516206496-16612-16-git-send-email-yamada.masahiro@socionext.com \
    --to=yamada.masahiro@socionext.com \
    --cc=geert@linux-m68k.org \
    --cc=horms+renesas@verge.net.au \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=ulf.hansson@linaro.org \
    --cc=ulfalizer@gmail.com \
    --cc=wsa+renesas@sang-engineering.com \
    --cc=yoshihiro.shimoda.uh@renesas.com \
    /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: link
Be 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.