drm_kms_helper_poll_init(9)
β¨ drm_kms_helper_poll_init(9) β¨
okay bestie, welcome to the Kernel API Manual π this one's a little function with a big job, and it lives at drm_kms_helper_poll_init(9) β say that five times fast, i dare you π«Ά
πΈ NAME πΈ
drm_kms_helper_poll_init β initialize and enable output polling π
π SYNOPSIS π
void drm_kms_helper_poll_init (struct drm_device *dev );
literally just one arg, we love a low-effort signature π
π¦ ARGUMENTS π¦
devβ astruct drm_device. that's it. that's the whole argument. she's the main character here π
π DESCRIPTION π
so this function initializes output polling support for dev, and then β plot twist β it also enables it. two things, one call, iconic behavior honestly β¨
here's the vibe: if your driver doesn't have reliable hotplug support in hardware (no cap, some hardware just doesn't come through for you π), you can lean on this helper infrastructure to regularly poll those connectors and peep whether their connection state changed. it's giving "i'll just check myself" energy π
drivers get to control which connectors actually get polled by setting the DRM_CONNECTOR_POLL_CONNECT and DRM_CONNECTOR_POLL_DISCONNECT flags. π©
β οΈ okay important one: on connectors where probing live outputs can result in visual distortion, drivers should not set the DRM_CONNECTOR_POLL_DISCONNECT flag, because that's exactly how you avoid the distortion. do not skip this, bestie π
and for the connectors that have no flag at all, or only DRM_CONNECTOR_POLL_HPD set? they are completely ignored by the polling logic. not even a little bit polled. ghosted, fr fr π«₯
also worth knowing: a connector can be both polled and probed from the hotplug handler β that's a real combo that's allowed, specifically in case the hotplug interrupt is known to be unreliable. belt and suspenders, we stan π
π SEE ALSO π
the whole friend group, assembled π«Ά go say hi:
- Kernel file
./drivers/gpu/drm/drm_probe_helper.coutput probing helper overview(9) drm_kms_helper_poll_enable(9)drm_kms_helper_poll_reschedule(9)drm_helper_probe_detect(9)drm_helper_probe_single_connector_modes(9)drm_kms_helper_hotplug_event(9)drm_kms_helper_connector_hotplug_event(9)drm_kms_helper_is_poll_worker(9)drm_kms_helper_poll_disable(9)drm_kms_helper_poll_fini(9)drmm_kms_helper_poll_init(9)drm_connector_helper_hpd_irq_event(9)drm_helper_hpd_irq_event(9)drm_crtc_helper_mode_valid_fixed(9)drm_connector_helper_get_modes_fixed(9)drm_connector_helper_get_modes(9)drm_connector_helper_tv_get_modes(9)drm_connector_helper_detect_from_ddc(9)
π SIGN-OFF π
this page came straight out of ./drivers/gpu/drm, dated October 2026, and honestly? she ate. now go init some polling, bestie β ily, bye! πβ¨π§ββοΈ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms