mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 19:00:25 +00:00
drm/i915/bxt: Fix HDMI DPLL configuration
a277ca7dc0
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. v2: - Make bxt_ddi_hdmi_set_dpll_hw_state() static. Cc: Manasi Navare <manasi.d.navare@intel.com> Cc: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com> Cc: Durgadoss R <durgadoss.r@intel.com> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> Fixes:a277ca7dc0
("drm/i915: Split bxt_ddi_pll_select()") Signed-off-by: Imre Deak <imre.deak@intel.com> Reviewed-by: Ander Conselvan de Oliveira <conselvan2@gmail.com> Link: http://patchwork.freedesktop.org/patch/msgid/1474901671-22719-1-git-send-email-imre.deak@intel.com (cherry picked from commita04139c4cf
) Signed-off-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:
parent
73fed0ef85
commit
9bf9675caf
1 changed files with 16 additions and 5 deletions
|
@ -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);
|
||||
}
|
||||
|
||||
static 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 ||
|
||||
|
|
Loading…
Reference in a new issue