[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250818-mobileye-emmc-for-upstream-4-v4-0-34ecb3995e96@bootlin.com>
Date: Mon, 18 Aug 2025 16:02:45 +0200
From: Benoît Monin <benoit.monin@...tlin.com>
To: Ulf Hansson <ulf.hansson@...aro.org>,
Adrian Hunter <adrian.hunter@...el.com>
Cc: linux-mmc@...r.kernel.org, linux-kernel@...r.kernel.org,
Vladimir Kondratiev <vladimir.kondratiev@...ileye.com>,
Tawfik Bayouk <tawfik.bayouk@...ileye.com>,
Gregory CLEMENT <gregory.clement@...tlin.com>,
Thomas Petazzoni <thomas.petazzoni@...tlin.com>,
Benoît Monin <benoit.monin@...tlin.com>
Subject: [PATCH v4 0/6] mmc: introduce multi-block read gap tuning
This patchset implements the multi-block read gap tuning for the SDHCI
cadence driver.
The first two patches introduce helpers to check for CMD23 support by
MMC card: mmc_card_can_cmd23 for support proper and mmc_card_blk_no_cmd23
for the NO_CMD23 quirk.
The next two patches use the new helpers in mmc/core/mmc_test.c and
mmc/core/block.c.
The next patch add mmc_read_tuning to read blocks from MMC as part of
the tuning. This function does not return the data read to the caller,
only the status of the read operation.
Finally the last patch uses mmc_read_tuning to implement the multi-block
read gap tuning in the cadence host driver, by doing a multi-block read
and increasing the gap delay until the read succeeds.
In the previous version of this series, mmc_read_tuning had a struct
mmc_card parameter and was making use of the helpers. This parameter has
been dropped so the last two patches are now independent of the rest of
the patchset.
Signed-off-by: Benoît Monin <benoit.monin@...tlin.com>
---
Changes in v4:
- Dropped the card parameter of mmc_read_tuning.
- Updated the last patch following the review of Adrian.
- Link to v3: https://lore.kernel.org/r/20250716-mobileye-emmc-for-upstream-4-v3-0-dc979d8edef0@bootlin.com
Changes in v3:
- Move the changes related to CMD23 support by MMC card to separate
patches at the beginning of the series.
- Change the mmc read function to be less appealing to reuse/abuse
outside of tuning context.
- Link to v2: https://lore.kernel.org/linux-mmc/cover.1751898225.git.benoit.monin@bootlin.com/
Changes in v2:
- Split the code between the core and the driver by adding a generic
function to read blocks from the MMC.
- Link to v1: https://lore.kernel.org/linux-mmc/2a43386ffef4012530ca2421ad81ad21c36c8a25.1750943549.git.benoit.monin@bootlin.com/
---
Benoît Monin (6):
mmc: core: add mmc_card_can_cmd23
mmc: card: add mmc_card_blk_no_cmd23
mmc: mmc_test: use mmc_card cmd23 helpers
mmc: block: use mmc_card cmd23 helpers
mmc: core: add mmc_read_tuning
mmc: sdhci-cadence: implement multi-block read gap tuning
drivers/mmc/core/block.c | 12 ++-----
drivers/mmc/core/card.h | 9 +++--
drivers/mmc/core/core.c | 9 +++++
drivers/mmc/core/core.h | 1 +
drivers/mmc/core/mmc_ops.c | 72 ++++++++++++++++++++++++++++++++++++++++
drivers/mmc/core/mmc_test.c | 10 ++----
drivers/mmc/host/sdhci-cadence.c | 63 ++++++++++++++++++++++++++++++++++-
include/linux/mmc/host.h | 1 +
8 files changed, 157 insertions(+), 20 deletions(-)
---
base-commit: 8936497143de1da7958178d57db6011eceeb14a8
change-id: 20250716-mobileye-emmc-for-upstream-4-40ef552c3b59
Best regards,
--
Benoît Monin, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
Powered by blists - more mailing lists