intel_hpd_irq_storm_detect(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… intel_hpd_irq_storm_detect(9) β€” the kernel API manual, but make it make sense

okay so bestie, this one is from the Kernel API Manual and honestly it's a whole vibe check for your display's hotplug interrupts. stay with me, it's actually iconic once you get it 🫢


✨ NAME ✨

intel_hpd_irq_storm_detect β€” gather stats and detect HPD IRQ storm on a pin

like literally, it counts up the HPD IRQ drama on one pin and tells you if it's officially a storm 🌩️


🌸 SYNOPSIS 🌸

bool intel_hpd_irq_storm_detect (struct intel_display *display , enum
       hpd_pin pin , bool long_hpd );

that's the whole signature, no cap, copy it exactly if you're writing it down πŸ’–


πŸŽ€ ARGUMENTS πŸŽ€

  • display β€” display device πŸ‘‘ the whole display situation lives here
  • pin β€” the pin to gather stats on πŸ“ yes, that specific one
  • long_hpd β€” whether the HPD IRQ was long or short ⏱️ long or short, pick your fighter

πŸ¦‹ DESCRIPTION πŸ¦‹

So the way that this works: it gathers stats about HPD IRQs from the specified pin, and detects IRQ storms. That's the whole job. And listen β€” only the pin specific stats and state are changed. The caller is responsible for further action. so don't come for this function expecting it to fix everything, it's doing its one (1) task and it's slaying at it πŸ’…

The number of IRQs that are allowed within HPD_STORM_DETECT_PERIOD is stored in display->hotplug.hpd_storm_threshold, which defaults to HPD_STORM_DEFAULT_THRESHOLD. Long IRQs count as +10 to this threshold, and short IRQs count as +1. If this threshold is exceeded, it's considered an IRQ storm and the IRQ state is set to HPD_MARK_DISABLED. so yeah, blow past the limit and you get marked, periodt 🚫

By default, most systems will only count long IRQs towards display->hotplug.hpd_storm_threshold. That's the default default, bestie. However β€” and this is the plot twist β€” some older systems also suffer from short IRQ storms and must also track these. 😭 Because short IRQ storms are naturally caused by sideband interactions with DP MST devices, short IRQ detection is only enabled for systems without DP MST support. And honestly? Systems which are new enough to support DP MST are far less likely to suffer from IRQ storms at all, so this is fine. it's giving "old hardware needs extra supervision" and we love her for it 🌸

The HPD threshold can be controlled through i915_hpd_storm_ctl in debugfs, and should only be adjusted for automated hotplug testing. ⚠️ like, only for that. don't just go poking it because you're bored, i'm begging πŸ™ˆ

Return true if an IRQ storm was detected on pin. that's it, true or nothing, icon behavior ⭐


πŸ’œ SEE ALSO πŸ’œ

Kernel file ./drivers/gpu/drm/i915/display/intel_hotplug.c and the whole friend group:

the whole squad, fr fr 🧚


and that's the page! 🌈 brought to you by ./drivers/gpu/drm/i915/display, dated October 2026 β€” mwah, ily, go read your dmesg πŸ’–πŸŽ€

πŸ“¦ where this page comes from