On Tue, Oct 23, 2012 at 2:23 PM, Daniel Vetter daniel.vetter@ffwll.ch wrote:
Hi all,
I've always been a bit unhappy with the overall approach of my old hpd patches, I think they've tried to move too much clever logic into the helper code. Now we can still make the helper code a bit more smarter and flexible, but I think the really clever hpd handling code should be in the driver specific parts. This this series will allow:
- Better separation of polling and hpd event handling. While still allowing a connector to be handled by both (for connectors where hpd is a bit unreliable).
- Fixing up some corner cases in the polling, to avoid flip-flop behaviour and races. This should prevent spurious wakeups of userspace with hotplug events.
- A tiny bit of code to make the unkown state a tad more useful.
Most importantly, it allows you to still get hpd hotplug events when you have disabled polling. The old code disabled all hotplug events when polling was disabled since they shared the same code path.
Originally I wanted to wait with submitting this until I have the full i915 hpd rework ready. But Alex Deucher pinged me a few times too often on irc, and I agree, this pile should be useful in and of itself.
For the series:
Reviewed-by: Alex Deucher alexander.deucher@amd.com
Comments, flames and review highly welcome.
Cheers, Daniel
Daniel Vetter (7): drm: extract drm_kms_helper_hotplug_event drm: handle HPD and polled connectors separately drm: run the hpd irq event code directly drm: properly init/reset connector status drm: don't start the poll engine in probe_single_connector drm: don't unnecessarily enable the polling work drm: don't poll forced connectors
drivers/gpu/drm/drm_crtc.c | 6 +++- drivers/gpu/drm/drm_crtc_helper.c | 71 ++++++++++++++++++++++++++++----------- include/drm/drm_crtc.h | 1 + include/drm/drm_crtc_helper.h | 1 + 4 files changed, 59 insertions(+), 20 deletions(-)
-- 1.7.11.7