From: Conor Dooley <conor@kernel.org>
To: linux-mmc@vger.kernel.org
Cc: conor@kernel.org, Conor Dooley <conor.dooley@microchip.com>,
Ulf Hansson <ulf.hansson@linaro.org>,
cyril.jean@microchip.com, Mark Brown <broonie@kernel.org>,
linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org,
linux-spi@vger.kernel.org
Subject: [RFC v1 1/3] mmc: mmc_spi: allow for spi controllers incapable of getting as low as 400k
Date: Wed, 12 Jun 2024 16:48:31 +0100 [thread overview]
Message-ID: <20240612-dense-resample-563f07c30185@spud> (raw)
In-Reply-To: <20240612-brigade-shell-1f626e7e592f@spud>
From: Conor Dooley <conor.dooley@microchip.com>
Some controllers may not be able to reach a bus clock as low as 400 KHz
due to a lack of sufficient divisors. In these cases, the SD card slot
becomes non-functional as Linux continuously attempts to set the bus
clock to 400 KHz. If the controller is incapable of getting that low,
set its minimum frequency instead. While this may eliminate some SD
cards, it allows those capable of operating at the controller's minimum
frequency to be used.
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
drivers/mmc/host/mmc_spi.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/mmc/host/mmc_spi.c b/drivers/mmc/host/mmc_spi.c
index 09d7a6a0dc1a..c9caa1ece7ef 100644
--- a/drivers/mmc/host/mmc_spi.c
+++ b/drivers/mmc/host/mmc_spi.c
@@ -1208,7 +1208,10 @@ static int mmc_spi_probe(struct spi_device *spi)
* that's the only reason not to use a few MHz for f_min (until
* the upper layer reads the target frequency from the CSD).
*/
- mmc->f_min = 400000;
+ if (spi->controller->min_speed_hz > 400000)
+ dev_warn(&spi->dev,"Controller unable to reduce bus clock to 400 KHz\n");
+
+ mmc->f_min = max(spi->controller->min_speed_hz, 400000);
mmc->f_max = spi->max_speed_hz;
host = mmc_priv(mmc);
--
2.43.0
next prev parent reply other threads:[~2024-06-12 15:48 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-12 15:48 [RFC v1 0/3] mmc-spi - support controllers incapable of getting as low as 400KHz Conor Dooley
2024-06-12 15:48 ` Conor Dooley [this message]
2024-06-20 12:50 ` [RFC v1 1/3] mmc: mmc_spi: allow for spi controllers incapable of getting as low as 400k Ulf Hansson
2024-06-20 14:12 ` Conor Dooley
2024-06-20 14:24 ` Ulf Hansson
2024-06-12 15:48 ` [RFC v1 2/3] spi: microchip-core-qspi: Add regular transfers Conor Dooley
2024-06-12 16:40 ` Mark Brown
2024-06-12 20:48 ` Conor Dooley
2024-06-19 11:18 ` Conor Dooley
2024-06-12 15:48 ` [RFC v1 3/3] spi: microchip-core-qspi: set min_speed_hz during probe Conor Dooley
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=20240612-dense-resample-563f07c30185@spud \
--to=conor@kernel.org \
--cc=broonie@kernel.org \
--cc=conor.dooley@microchip.com \
--cc=cyril.jean@microchip.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mmc@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux-spi@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).