Skip to content

fix(kernel): stop the idle SD controller interrupting CPU0 on SM8550 and SM8750 - #653

Open
ouroboros420 wants to merge 1 commit into
armada-os:mainfrom
ouroboros420:sd-irq-storm
Open

ouroboros420 wants to merge 1 commit into
armada-os:mainfrom
ouroboros420:sd-irq-storm

Conversation

@ouroboros420

Copy link
Copy Markdown

sdhci-msm leaves the controller interrupts enabled across runtime suspend, but sdhci_irq() returns IRQ_NONE while the host is runtime suspended. With the rootfs on microSD that's 15-50 unhandled interrupts a second on CPU0 whenever the card is idle, and it keeps RPMh out of AOSD/CXSD in s2idle (#274). 0537, from drewano's SM8550 sleep stack, masks them while the host is runtime suspended. Every SM8550/SM8750 board uses a cd-gpio, so hotplug is unaffected.

Needs testing at idle, grep mmc0 /proc/interrupts 10 s apart should barely move.

…and SM8750

sdhci-msm's runtime suspend gates the clocks but leaves the controller
interrupts enabled, and sdhci_irq() returns IRQ_NONE while the host is
runtime suspended, so nothing acknowledges them. With the rootfs on
microSD that is 15-50 unhandled interrupts a second on CPU0 whenever the
card is idle, and it keeps RPMh out of AOSD/CXSD in s2idle (armada-os#274). 0537
masks them while the host is runtime suspended. Every SM8550 and SM8750
board here detects the card through a cd-gpio, so hotplug is unaffected.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant