meson64: mmc: meson-gx: honour the busy timeout for R1b commands - #10451
meson64: mmc: meson-gx: honour the busy timeout for R1b commands#10451iav wants to merge 1 commit into
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
Included review availability: Your plan includes up to 8 reviews per rolling hour; 7 remain after this review. 📝 WalkthroughWalkthroughThe Meson GX MMC patches add command-specific R1b timeout handling across kernel versions. They round and clamp ChangesMeson GX MMC busy-timeout handling
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to The PR updates meson-gx MMC handling to honor card-specific R1b busy timeouts across supported kernel series; no actionable merge-blocking risk remains after normal checks and review. Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
fe5d09b to
ceb8047
Compare
The controller waits for R1b busy in hardware, but the driver programs a fixed 1024 ms there and does not report max_busy_timeout, so erase and cache-flush commands time out as soon as the card is busy for more than a second: mmc_erase: erase error -110, status 0x0 mmc1: cache flush error -110 Program the timeout from cmd->busy_timeout (bounded by the 2^15 ms field) and report the bound as max_busy_timeout, the way sdhci and meson-mx-sdhc do. ODROID-N2+ eMMC, 20 GiB write + delete + fstrim: 48 errors before, 0 after (two runs). Applies to 6.12, 6.18, 7.1 and 7.2.
ceb8047 to
2a7a6ea
Compare
Description
meson-gx-mmc waits for R1b busy in hardware but programs a fixed 1024 ms there and does not report
max_busy_timeout, so the core sends erase and cache-flush commands with the card's real (multi-second) timeouts and the controller gives up after one second:Same for an SD card in the SoC slot (DISCARD I/O errors; the same card behind a USB reader is fine, see ophub/fnnas#330). Program the timeout from
cmd->busy_timeout(bounded by the 2^15 ms field) and report the bound asmax_busy_timeout, the way sdhci and meson-mx-sdhc do.Fixes: 51c5d8447bd7, upstream candidate.How Has This Been Tested?
discard=async, 20 GiB write + delete + fstrim: 48 errors on 7.1.7 (24 erase + 24 cache flush), 0 on 7.1.8 with the patch (2 runs)git apply --check); built and booted only 7.1 (edge)Summary by CodeRabbit