From 407125bbf74603006eea968418c37d533089f63d Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 21 Aug 2023 19:12:28 +0200 Subject: [PATCH] 5.15-stable patches added patches: arm64-dts-rockchip-disable-hs400-for-emmc-on-rock-pi-4.patch --- ...-disable-hs400-for-emmc-on-rock-pi-4.patch | 63 +++++++++++++++++++ queue-5.15/series | 1 + 2 files changed, 64 insertions(+) create mode 100644 queue-5.15/arm64-dts-rockchip-disable-hs400-for-emmc-on-rock-pi-4.patch diff --git a/queue-5.15/arm64-dts-rockchip-disable-hs400-for-emmc-on-rock-pi-4.patch b/queue-5.15/arm64-dts-rockchip-disable-hs400-for-emmc-on-rock-pi-4.patch new file mode 100644 index 00000000000..5d27cbe25aa --- /dev/null +++ b/queue-5.15/arm64-dts-rockchip-disable-hs400-for-emmc-on-rock-pi-4.patch @@ -0,0 +1,63 @@ +From cee572756aa2cb46e959e9797ad4b730b78a050b Mon Sep 17 00:00:00 2001 +From: Christopher Obbard +Date: Wed, 5 Jul 2023 15:42:54 +0100 +Subject: arm64: dts: rockchip: Disable HS400 for eMMC on ROCK Pi 4 + +From: Christopher Obbard + +commit cee572756aa2cb46e959e9797ad4b730b78a050b upstream. + +There is some instablity with some eMMC modules on ROCK Pi 4 SBCs running +in HS400 mode. This ends up resulting in some block errors after a while +or after a "heavy" operation utilising the eMMC (e.g. resizing a +filesystem). An example of these errors is as follows: + + [ 289.171014] mmc1: running CQE recovery + [ 290.048972] mmc1: running CQE recovery + [ 290.054834] mmc1: running CQE recovery + [ 290.060817] mmc1: running CQE recovery + [ 290.061337] blk_update_request: I/O error, dev mmcblk1, sector 1411072 op 0x1:(WRITE) flags 0x800 phys_seg 36 prio class 0 + [ 290.061370] EXT4-fs warning (device mmcblk1p1): ext4_end_bio:348: I/O error 10 writing to inode 29547 starting block 176466) + [ 290.061484] Buffer I/O error on device mmcblk1p1, logical block 172288 + [ 290.061531] Buffer I/O error on device mmcblk1p1, logical block 172289 + [ 290.061551] Buffer I/O error on device mmcblk1p1, logical block 172290 + [ 290.061574] Buffer I/O error on device mmcblk1p1, logical block 172291 + [ 290.061592] Buffer I/O error on device mmcblk1p1, logical block 172292 + [ 290.061615] Buffer I/O error on device mmcblk1p1, logical block 172293 + [ 290.061632] Buffer I/O error on device mmcblk1p1, logical block 172294 + [ 290.061654] Buffer I/O error on device mmcblk1p1, logical block 172295 + [ 290.061673] Buffer I/O error on device mmcblk1p1, logical block 172296 + [ 290.061695] Buffer I/O error on device mmcblk1p1, logical block 172297 + +Disabling the Command Queue seems to stop the CQE recovery from running, +but doesn't seem to improve the I/O errors. Until this can be investigated +further, disable HS400 mode on the ROCK Pi 4 SBCs to at least stop I/O +errors from occurring. + +While we are here, set the eMMC maximum clock frequency to 1.5MHz to +follow the ROCK 4C+. + +Fixes: 1b5715c602fd ("arm64: dts: rockchip: add ROCK Pi 4 DTS support") +Signed-off-by: Christopher Obbard +Tested-By: Folker Schwesinger +Link: https://lore.kernel.org/r/20230705144255.115299-2-chris.obbard@collabora.com +Signed-off-by: Heiko Stuebner +Signed-off-by: Greg Kroah-Hartman +--- + arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi +@@ -595,9 +595,9 @@ + }; + + &sdhci { ++ max-frequency = <150000000>; + bus-width = <8>; +- mmc-hs400-1_8v; +- mmc-hs400-enhanced-strobe; ++ mmc-hs200-1_8v; + non-removable; + status = "okay"; + }; diff --git a/queue-5.15/series b/queue-5.15/series index ee479de7090..39cf734d7c0 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -123,3 +123,4 @@ drm-qxl-fix-uaf-on-handle-creation.patch drm-amd-flush-any-delayed-gfxoff-on-suspend-entry.patch netfilter-set-default-timeout-to-3-secs-for-sctp-shutdown-send-and-recv-state.patch exfat-check-if-filename-entries-exceeds-max-filename-length.patch +arm64-dts-rockchip-disable-hs400-for-emmc-on-rock-pi-4.patch -- 2.47.3