On Tue, 15 Mar 2016, ville.syrjala@xxxxxxxxxxxxxxx wrote: > [ text/plain ] > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > On VLV at least, the BIOS may leave the DSI PLL enabled in some wonky > state where it just refuses to lock. Simply disabling the PLL before > reconfiguring it is not enough to fix it, but power gating the PLL > prior to reconfiguring does work. > > This happens on BYT FFRD8 when booting with HDMI connected so the DSI > display will not be lit up by the BIOS. > > Also we can remove the code for BXT that disables the PLL before > enabling it again. > > v2: s/vlv/intel/ since BXT made thing generic > v3: Remove the BXT disable PLL before enable trick > > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> Acked-by: Jani Nikula <jani.nikula@xxxxxxxxx> > --- > drivers/gpu/drm/i915/intel_dsi.c | 6 ++++++ > drivers/gpu/drm/i915/intel_dsi_pll.c | 8 -------- > 2 files changed, 6 insertions(+), 8 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c > index 4023b6bffa47..787411e1c36f 100644 > --- a/drivers/gpu/drm/i915/intel_dsi.c > +++ b/drivers/gpu/drm/i915/intel_dsi.c > @@ -482,7 +482,13 @@ static void intel_dsi_pre_enable(struct intel_encoder *encoder) > > DRM_DEBUG_KMS("\n"); > > + /* > + * The BIOS may leave the PLL in a wonky state where it doesn't > + * lock. It needs to be fully powered down to fix it. > + */ > + intel_disable_dsi_pll(encoder); > intel_enable_dsi_pll(encoder); > + > intel_dsi_prepare(encoder); > > /* Panel Enable over CRC PMIC */ > diff --git a/drivers/gpu/drm/i915/intel_dsi_pll.c b/drivers/gpu/drm/i915/intel_dsi_pll.c > index 916cc92c1400..978cc2668a3d 100644 > --- a/drivers/gpu/drm/i915/intel_dsi_pll.c > +++ b/drivers/gpu/drm/i915/intel_dsi_pll.c > @@ -474,14 +474,6 @@ static void bxt_enable_dsi_pll(struct intel_encoder *encoder) > > DRM_DEBUG_KMS("\n"); > > - val = I915_READ(BXT_DSI_PLL_ENABLE); > - > - if (val & BXT_DSI_PLL_DO_ENABLE) { > - WARN(1, "DSI PLL already enabled. Disabling it.\n"); > - val &= ~BXT_DSI_PLL_DO_ENABLE; > - I915_WRITE(BXT_DSI_PLL_ENABLE, val); > - } > - > /* Configure PLL vales */ > if (!bxt_configure_dsi_pll(encoder)) { > DRM_ERROR("Configure DSI PLL failed, abort PLL enable\n"); -- Jani Nikula, Intel Open Source Technology Center _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx