drm: Hook up DPMS property handling in drm_crtc.c. Add drm_helper_connector_dpms.
authorKeith Packard <keithp@keithp.com>
Sun, 31 May 2009 03:42:28 +0000 (20:42 -0700)
committerDave Airlie <airlied@redhat.com>
Wed, 3 Jun 2009 23:32:12 +0000 (09:32 +1000)
commitc9fb15f60eb517c958dec64dca9357bf62bf2201
tree17c67c910ddc93f7adf0b48d27c0256a89d1dc7e
parente36ebaf49274ffa78f17b62bcae4c92c33b5b391
drm: Hook up DPMS property handling in drm_crtc.c. Add drm_helper_connector_dpms.

Making the drm_crtc.c code recognize the DPMS property and invoke the
connector->dpms function doesn't remove any capability from the driver while
reducing code duplication.

That just highlighted the problem with the existing DPMS functions which
could turn off the connector, but failed to turn off any relevant crtcs. The
new drm_helper_connector_dpms function manages all of that, using the
drm_helper-specific crtc and encoder dpms functions, automatically computing
the appropriate DPMS level for each object in the system.

This fixes the current troubles in the i915 driver which left PLLs, pipes
and planes running while in DPMS_OFF mode or even while they were unused.

Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/drm_crtc.c
drivers/gpu/drm/drm_crtc_helper.c
drivers/gpu/drm/i915/intel_crt.c
drivers/gpu/drm/i915/intel_dvo.c
drivers/gpu/drm/i915/intel_hdmi.c
drivers/gpu/drm/i915/intel_lvds.c
drivers/gpu/drm/i915/intel_sdvo.c
drivers/gpu/drm/i915/intel_tv.c
include/drm/drm_crtc.h
include/drm/drm_crtc_helper.h