OSDN Git Service

drm/i915: Remove high level intel_edp_vdd_{on, off}() from hpd/detect
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 16 Oct 2014 18:27:29 +0000 (21:27 +0300)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 4 Nov 2014 22:21:59 +0000 (23:21 +0100)
commit7a66800e035bb6a64c2d0f8cb315edabbef819b9
tree9b668339a9f1a562ef4c7694d6e39c394dddeba3
parentc17ed5b5a46ec715620b0548a187d3ed98f4cf0b
drm/i915: Remove high level intel_edp_vdd_{on, off}() from hpd/detect

want_panel_vdd is a bool so it can't cope with interleaving on/off calls
from multiple threads. If we want to make that possible we'd need to
convert want_panel_vdd into a proper ref count. But an easier fix is to
remove the high level vdd on/off calls from detect/hpd code paths and
just rely on the delayed vdd off to avoid needless vdd on<->off ping
pong.

After this change only the encoder enable/disable paths use the high
level functions, which is fine since both the on and off low level edp
vdd calls from intel_dp_aux_ch() happen without dropping pps_mutex in
between and so want_panel_vdd can't change in between.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_dp.c