On Thu, 29 Sep 2011 18:09:37 -0700 Keith Packard <keithp@xxxxxxxxxx> wrote: > Verify that the eDP VDD is on, either with the panel being on or with > the VDD force-on bit being set. > > This demonstrates that in many instances, VDD is not on when needed, > which leads to failed EDID communications. > > Signed-off-by: Keith Packard <keithp@xxxxxxxxxx> > --- > drivers/gpu/drm/i915/intel_dp.c | 22 ++++++++++++++++++++++ > 1 files changed, 22 insertions(+), 0 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c > index 8ab2a88..3b29a6f 100644 > --- a/drivers/gpu/drm/i915/intel_dp.c > +++ b/drivers/gpu/drm/i915/intel_dp.c > @@ -279,6 +279,24 @@ intel_hrawclk(struct drm_device *dev) > } > } > > +static void > +intel_dp_check_edp(struct intel_dp *intel_dp) > +{ > + struct drm_device *dev = intel_dp->base.base.dev; > + struct drm_i915_private *dev_priv = dev->dev_private; > + u32 pp_status, pp_control; > + if (!is_edp(intel_dp)) > + return; > + pp_status = I915_READ(PCH_PP_STATUS); > + pp_control = I915_READ(PCH_PP_CONTROL); > + if ((pp_status & PP_ON) == 0 && (pp_control & EDP_FORCE_VDD) == 0) { > + WARN(1, "eDP powered off while attempting aux channel communication.\n"); > + DRM_DEBUG_KMS("Status 0x%08x Control 0x%08x\n", > + pp_status, > + I915_READ(PCH_PP_CONTROL)); > + } > +} I'd call it "intel_dp_assert_dp_power" or something more descriptive (or just assert_panel_power to match the other asserts in intel_display.c), but other than that this is a nice sanity check. -- Jesse Barnes, Intel Open Source Technology Center _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel