On Mon, Sep 26, 2016 at 06:02:20PM +0300, Jani Nikula wrote: > On Mon, 26 Sep 2016, Imre Deak <imre.deak@xxxxxxxxx> wrote: > > a277ca7dc01d should've been a no-functional-change commit, but it > > removed the initialization of the dpll_hw_state for HDMI outputs, > > resulting in state mismatches and a failed modeset with blank > > screen. Fix this by reinstating the dpll_hw_state initialization. > > > > Fixes: a277ca7dc01d ("drm/i915: Split bxt_ddi_pll_select()") > > Signed-off-by: Imre Deak <imre.deak@xxxxxxxxx> > > Cc: Manasi Navare <manasi.d.navare@xxxxxxxxx> > Cc: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@xxxxxxxxx> > Cc: Durgadoss R <durgadoss.r@xxxxxxxxx> > Cc: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx> Aka pls update your dim copy, it'll generate this automatically. -Daniel > > > --- > > drivers/gpu/drm/i915/intel_dpll_mgr.c | 21 ++++++++++++++++----- > > 1 file changed, 16 insertions(+), 5 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/intel_dpll_mgr.c b/drivers/gpu/drm/i915/intel_dpll_mgr.c > > index c26d18a..e8bf838 100644 > > --- a/drivers/gpu/drm/i915/intel_dpll_mgr.c > > +++ b/drivers/gpu/drm/i915/intel_dpll_mgr.c > > @@ -1694,21 +1694,32 @@ bool bxt_ddi_dp_set_dpll_hw_state(int clock, > > return bxt_ddi_set_dpll_hw_state(clock, &clk_div, dpll_hw_state); > > } > > > > +bool bxt_ddi_hdmi_set_dpll_hw_state(struct intel_crtc *intel_crtc, > > + struct intel_crtc_state *crtc_state, > > + int clock, > > + struct intel_dpll_hw_state *dpll_hw_state) > > +{ > > + struct bxt_clk_div clk_div = { }; > > + > > + bxt_ddi_hdmi_pll_dividers(intel_crtc, crtc_state, clock, &clk_div); > > + > > + return bxt_ddi_set_dpll_hw_state(clock, &clk_div, dpll_hw_state); > > +} > > + > > static struct intel_shared_dpll * > > bxt_get_dpll(struct intel_crtc *crtc, > > struct intel_crtc_state *crtc_state, > > struct intel_encoder *encoder) > > { > > - struct bxt_clk_div clk_div = {0}; > > - struct intel_dpll_hw_state dpll_hw_state = {0}; > > + struct intel_dpll_hw_state dpll_hw_state = { }; > > struct drm_i915_private *dev_priv = to_i915(crtc->base.dev); > > struct intel_digital_port *intel_dig_port; > > struct intel_shared_dpll *pll; > > int i, clock = crtc_state->port_clock; > > > > - if (encoder->type == INTEL_OUTPUT_HDMI > > - && !bxt_ddi_hdmi_pll_dividers(crtc, crtc_state, > > - clock, &clk_div)) > > + if (encoder->type == INTEL_OUTPUT_HDMI && > > + !bxt_ddi_hdmi_set_dpll_hw_state(crtc, crtc_state, clock, > > + &dpll_hw_state)) > > return NULL; > > > > if ((encoder->type == INTEL_OUTPUT_DP || > > -- > Jani Nikula, Intel Open Source Technology Center > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx