suspend_device_irqs(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ suspend_device_irqs(9) ✨

okay so welcome to the Kernel API Manual bestie, today's main character is suspend_device_irqs and honestly? she's kind of a big deal πŸŽ€


🌸 NAME 🌸

suspend_device_irqs β€” literally just disabling all the currently enabled interrupt lines. that's it. that's the whole vibe check πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

void suspend_device_irqs (void );

like, she takes nothing and gives everything, no cap ✨


πŸŽ€ ARGUMENTS πŸŽ€

  • void β€” no arguments. zero. zilch. she needs no input, she's self-sufficient like that 🫢

πŸ’– DESCRIPTION πŸ’–

so here's the tea β˜• β€” during system-wide suspend or hibernation, device drivers need to be prevented from receiving interrupts, and this function exists purely to do exactly that. it's giving bodyguard energy honestly πŸ›‘οΈ

so we disable all the interrupts and mark them IRQS_SUSPENDED… except for the special ones, because of course there are exceptions, there are always exceptions πŸ™ˆ:

  • the ones that are unused (nobody's home, we leave them be)
  • the ones marked as not suspendable via an interrupt request with the flag IRQF_NO_SUSPEND set (they said "not today" and we respect it πŸ’…)
  • the ones marked as active wakeup sources (these are the main characters, we'll get to them)

the active wakeup sources are handled by the flow handler entry code, which checks for the IRQD_WAKEUP_ARMED flag, suspends the interrupt, and notifies the pm core about the wakeup. slay, honestly πŸ”₯


🌈 SEE ALSO 🌈


and that's the whole page bestie, iykyk ⭐ this one lives in ./kernel/irq, dated October 2026, and it's called suspend_device_irqs(9) β€” go forth and suspend those irqs responsibly, mwah πŸ’‹πŸ§š

πŸ“¦ where this page comes from