Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.37 Manually rebased patch: generic/hack-6.12/902-debloat_proc.patch[1] New Kconfig symbol: x86: enable MITIGATION_TSA[2] All other patches are automatically refreshed. [1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.37&id=ead91de35d9cd5c4f80ec51e6020f342079170af [2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.37&id=7a0395f6607a5d01e2b2a86355596b3f1224acbd Signed-off-by: Shiji Yang <yangshiji66@outlook.com> Link: https://github.com/openwrt/openwrt/pull/19317 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
46 lines
1.6 KiB
Diff
46 lines
1.6 KiB
Diff
From c0b9523ee9a6c3f2cc42529f18b33b0606413abc Mon Sep 17 00:00:00 2001
|
|
From: Jonathan Bell <jonathan@raspberrypi.com>
|
|
Date: Tue, 4 Jun 2024 13:45:37 +0100
|
|
Subject: [PATCH] mmc: sdhci: extend maximum ADMA transfer length to 4MiB
|
|
|
|
This gains about 8-12% sequential write speed with the fastest SD/eMMC
|
|
cards, and Class A1/A2 card sequential performance is only assured with
|
|
a 4MiB write length.
|
|
|
|
Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|
---
|
|
drivers/mmc/host/sdhci.c | 15 ++++++++++-----
|
|
1 file changed, 10 insertions(+), 5 deletions(-)
|
|
|
|
--- a/drivers/mmc/host/sdhci.c
|
|
+++ b/drivers/mmc/host/sdhci.c
|
|
@@ -1081,7 +1081,7 @@ static void sdhci_initialize_data(struct
|
|
WARN_ON(host->data);
|
|
|
|
/* Sanity checks */
|
|
- BUG_ON(data->blksz * data->blocks > 524288);
|
|
+ BUG_ON(data->blksz * data->blocks > host->mmc->max_req_size);
|
|
BUG_ON(data->blksz > host->mmc->max_blk_size);
|
|
BUG_ON(data->blocks > 65535);
|
|
|
|
@@ -4709,11 +4709,16 @@ int sdhci_setup_host(struct sdhci_host *
|
|
spin_lock_init(&host->lock);
|
|
|
|
/*
|
|
- * Maximum number of sectors in one transfer. Limited by SDMA boundary
|
|
- * size (512KiB). Note some tuning modes impose a 4MiB limit, but this
|
|
- * is less anyway.
|
|
+ * Maximum number of sectors in one transfer.
|
|
+ * 4MiB is preferred for multi-descriptor DMA as a) card sequential
|
|
+ * write speeds are only guaranteed with a 4MiB write length and
|
|
+ * b) most tuning modes require a 4MiB limit.
|
|
+ * SDMA has a 512KiB boundary size.
|
|
*/
|
|
- mmc->max_req_size = 524288;
|
|
+ if (host->flags & SDHCI_USE_ADMA)
|
|
+ mmc->max_req_size = SZ_4M;
|
|
+ else
|
|
+ mmc->max_req_size = SZ_512K;
|
|
|
|
/*
|
|
* Maximum number of segments. Depends on if the hardware
|