linux-mmc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Wolfram Sang <wsa+renesas@sang-engineering.com>
To: linux-mmc@vger.kernel.org
Cc: linux-renesas-soc@vger.kernel.org, linux-kernel@vger.kernel.org,
	Wolfram Sang <wsa+renesas@sang-engineering.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Subject: [RFC PATCH 01/10] mmc: core: improve API to make clear mmc_hw_reset is for cards
Date: Mon, 21 Mar 2022 12:50:47 +0100	[thread overview]
Message-ID: <20220321115059.21803-2-wsa+renesas@sang-engineering.com> (raw)
In-Reply-To: <20220321115059.21803-1-wsa+renesas@sang-engineering.com>

To make it unambiguous that mmc_hw_reset() is for cards and not for
controllers, we a) add 'card' to the function name and b) make the
function argument mmc_card instead of mmc_host. A fallback is provided
until all users are converted.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
---
 drivers/mmc/core/block.c    |  2 +-
 drivers/mmc/core/core.c     | 18 +++++++++++++-----
 drivers/mmc/core/mmc_test.c |  3 +--
 include/linux/mmc/core.h    |  1 +
 4 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c
index 4e67c1403cc9..74674a4650b0 100644
--- a/drivers/mmc/core/block.c
+++ b/drivers/mmc/core/block.c
@@ -993,7 +993,7 @@ static int mmc_blk_reset(struct mmc_blk_data *md, struct mmc_host *host,
 		return -EEXIST;
 
 	md->reset_done |= type;
-	err = mmc_hw_reset(host);
+	err = mmc_card_hw_reset(host->card);
 	/* Ensure we switch back to the correct partition */
 	if (err) {
 		struct mmc_blk_data *main_md =
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index 368f10405e13..71e75196bc53 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -1984,7 +1984,8 @@ int mmc_set_blocklen(struct mmc_card *card, unsigned int blocklen)
 }
 EXPORT_SYMBOL(mmc_set_blocklen);
 
-static void mmc_hw_reset_for_init(struct mmc_host *host)
+/* we can't use mmc_card as a parameter, it is not populated yet */
+static void mmc_card_hw_reset_for_init(struct mmc_host *host)
 {
 	mmc_pwrseq_reset(host);
 
@@ -1994,8 +1995,8 @@ static void mmc_hw_reset_for_init(struct mmc_host *host)
 }
 
 /**
- * mmc_hw_reset - reset the card in hardware
- * @host: MMC host to which the card is attached
+ * mmc_card_hw_reset - reset the card in hardware
+ * @card: card to be reset
  *
  * Hard reset the card. This function is only for upper layers, like the
  * block layer or card drivers. You cannot use it in host drivers (struct
@@ -2003,8 +2004,9 @@ static void mmc_hw_reset_for_init(struct mmc_host *host)
  *
  * Return: 0 on success, -errno on failure
  */
-int mmc_hw_reset(struct mmc_host *host)
+int mmc_card_hw_reset(struct mmc_card *card)
 {
+	struct mmc_host *host = card->host;
 	int ret;
 
 	ret = host->bus_ops->hw_reset(host);
@@ -2014,6 +2016,12 @@ int mmc_hw_reset(struct mmc_host *host)
 
 	return ret;
 }
+EXPORT_SYMBOL(mmc_card_hw_reset);
+
+int mmc_hw_reset(struct mmc_host *host)
+{
+	return mmc_card_hw_reset(host->card);
+}
 EXPORT_SYMBOL(mmc_hw_reset);
 
 int mmc_sw_reset(struct mmc_host *host)
@@ -2045,7 +2053,7 @@ static int mmc_rescan_try_freq(struct mmc_host *host, unsigned freq)
 	 * Some eMMCs (with VCCQ always on) may not be reset after power up, so
 	 * do a hardware reset if possible.
 	 */
-	mmc_hw_reset_for_init(host);
+	mmc_card_hw_reset_for_init(host);
 
 	/*
 	 * sdio_reset sends CMD52 to reset card.  Since we do not know
diff --git a/drivers/mmc/core/mmc_test.c b/drivers/mmc/core/mmc_test.c
index e6a2fd2c6d5c..bfcae8f79cbd 100644
--- a/drivers/mmc/core/mmc_test.c
+++ b/drivers/mmc/core/mmc_test.c
@@ -2325,10 +2325,9 @@ static int mmc_test_profile_sglen_r_nonblock_perf(struct mmc_test_card *test)
 static int mmc_test_reset(struct mmc_test_card *test)
 {
 	struct mmc_card *card = test->card;
-	struct mmc_host *host = card->host;
 	int err;
 
-	err = mmc_hw_reset(host);
+	err = mmc_card_hw_reset(card);
 	if (!err) {
 		/*
 		 * Reset will re-enable the card's command queue, but tests
diff --git a/include/linux/mmc/core.h b/include/linux/mmc/core.h
index 71101d1ec825..25a7cf69d919 100644
--- a/include/linux/mmc/core.h
+++ b/include/linux/mmc/core.h
@@ -176,6 +176,7 @@ int mmc_wait_for_cmd(struct mmc_host *host, struct mmc_command *cmd,
 		int retries);
 
 int mmc_hw_reset(struct mmc_host *host);
+int mmc_card_hw_reset(struct mmc_card *card);
 int mmc_sw_reset(struct mmc_host *host);
 void mmc_set_data_timeout(struct mmc_data *data, const struct mmc_card *card);
 
-- 
2.30.2


  reply	other threads:[~2022-03-21 11:51 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-21 11:50 [RFC PATCH 00/10] mmc: improve API to make clear {h|s}w_reset is for cards Wolfram Sang
2022-03-21 11:50 ` Wolfram Sang [this message]
2022-04-04 12:05   ` [RFC PATCH 01/10] mmc: core: improve API to make clear mmc_hw_reset " Ulf Hansson
2022-04-06  7:58     ` Wolfram Sang
2022-04-06 13:53       ` Ulf Hansson
2022-04-07 20:24         ` Wolfram Sang
2022-03-21 11:50 ` [RFC PATCH 02/10] ath10k: sdio: update to new MMC API for resetting cards Wolfram Sang
2022-03-21 11:50 ` [RFC PATCH 03/10] brcmfmac: " Wolfram Sang
2022-03-21 11:57   ` Arend van Spriel
2022-03-21 11:50 ` [RFC PATCH 04/10] mwifiex: " Wolfram Sang
2022-03-21 11:50 ` [RFC PATCH 05/10] wlcore: " Wolfram Sang
2022-03-21 11:50 ` [RFC PATCH 06/10] mmc: core: remove fallback for mmc_hw_reset() Wolfram Sang
2022-03-21 11:50 ` [RFC PATCH 07/10] mmc: core: improve API to make clear that mmc_sw_reset is for cards Wolfram Sang
2022-03-21 11:50 ` [RFC PATCH 08/10] mmc: core: improve API to make clear hw_reset from bus_ops " Wolfram Sang
2022-04-04 12:13   ` Ulf Hansson
2022-04-06  8:02     ` Wolfram Sang
2022-04-06 13:58       ` Ulf Hansson
2022-04-07 20:26         ` Wolfram Sang
2022-03-21 11:50 ` [RFC PATCH 09/10] mmc: core: improve API to make clear sw_reset " Wolfram Sang
2022-03-21 11:50 ` [RFC PATCH 10/10] mmc: improve API to make clear hw_reset callback " Wolfram Sang
2022-03-22  6:43 ` [RFC PATCH 00/10] mmc: improve API to make clear {h|s}w_reset " Wolfram Sang
2022-04-01 16:25 ` Wolfram Sang

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=20220321115059.21803-2-wsa+renesas@sang-engineering.com \
    --to=wsa+renesas@sang-engineering.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).