intel_hpd_block(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… intel_hpd_block(9) β€” the Kernel API Manual, bestie edition πŸŽ€

okay so this is a page from the Kernel API Manual, and it's all about intel_hpd_block β€” a function that literally just says "bestie, hold my HPD IRQs" for one specific pin. no cap, it's short but it's important. let's get into it ✨


🌸 NAME 🌸

intel_hpd_block β€” blocks the handling of HPD IRQs on an HPD pin. that's the whole vibe. πŸ¦‹


⭐ SYNOPSIS ⭐

void intel_hpd_block (struct intel_encoder *encoder );

yes it's just the one function, she's concise, she's iconic πŸ‘‘


πŸ’– ARGUMENTS πŸ’–

  • encoder β€” the encoder whose HPD handling you're about to block. that's it. that's the whole argument. 🫢

✨ DESCRIPTION ✨

so basically: this function blocks the handling of HPD IRQs on the HPD pin of encoder. simple as that. πŸ’…

now here's the part where you need to pay attention, because on return there are three things you can count on, and they are NOT the same thing:

  • it's guaranteed that the blocked encoder's HPD pulse handler (the one that goes via intel_digital_port::hpd_pulse) is not running. like, fully done, closed, gone. βœ…
  • but the hotplug event handling (via intel_encoder::hotplug) of an HPD IRQ that was already pending at the time this function got called may still be running. so like... don't assume it's all wrapped up, okay? 😭
  • detection on the encoder's connector (via drm_connector_helper_funcs::detect_ctx and drm_connector_funcs::detect) is still allowed. for instance as part of userspace connector probing, or the DRM core's connector polling. so detecting stays on the menu πŸ“
⚠️ okay this part is important: this call must be followed by calling intel_hpd_unblock, or intel_hpd_clear_and_unblock. you cannot just leave it blocked and walk away. that's not the move. πŸ™ˆ

and one more little plot twist β€” handling of HPD IRQs for another encoder that's using the same HPD pin as encoder will also be blocked. so like, it's a package deal, iykyk πŸ’€


πŸ’œ SEE ALSO πŸ’œ


okay and finally, the little sign-off at the bottom β€” this whole vibe lives in ./drivers/gpu/drm/i915/display, and it's dated October 2026. so you know, freshly pressed, main character energy, periodt πŸ’…πŸŒŸπŸ¦‹

πŸ“¦ where this page comes from