aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDamien Lespiau <damien.lespiau@intel.com>2014-07-29 13:06:23 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-08-08 11:43:38 -0400
commitd664c0cece2dd410d8134aa820112e471e3592dd (patch)
treeba18ac7ec2932db957c5e87fce56d8576b7a252f
parent0220ab6e00785da008bb3736737b877d45858608 (diff)
drm/i915: Make intel_ddi_calculate_wrpll() HSW/BDW specific
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/intel_ddi.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index 09599851f1a8..eb8e494ce569 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -644,8 +644,8 @@ void intel_ddi_clock_get(struct intel_encoder *encoder,
644} 644}
645 645
646static void 646static void
647intel_ddi_calculate_wrpll(int clock /* in Hz */, 647hsw_ddi_calculate_wrpll(int clock /* in Hz */,
648 unsigned *r2_out, unsigned *n2_out, unsigned *p_out) 648 unsigned *r2_out, unsigned *n2_out, unsigned *p_out)
649{ 649{
650 uint64_t freq2k; 650 uint64_t freq2k;
651 unsigned p, n2, r2; 651 unsigned p, n2, r2;
@@ -709,14 +709,16 @@ intel_ddi_calculate_wrpll(int clock /* in Hz */,
709} 709}
710 710
711static bool 711static bool
712hsw_ddi_pll_select(struct intel_crtc *intel_crtc, int output, int clock) 712hsw_ddi_pll_select(struct intel_crtc *intel_crtc,
713 struct intel_encoder *intel_encoder,
714 int clock)
713{ 715{
714 if (output == INTEL_OUTPUT_HDMI) { 716 if (intel_encoder->type == INTEL_OUTPUT_HDMI) {
715 struct intel_shared_dpll *pll; 717 struct intel_shared_dpll *pll;
716 uint32_t val; 718 uint32_t val;
717 unsigned p, n2, r2; 719 unsigned p, n2, r2;
718 720
719 intel_ddi_calculate_wrpll(clock * 1000, &r2, &n2, &p); 721 hsw_ddi_calculate_wrpll(clock * 1000, &r2, &n2, &p);
720 722
721 val = WRPLL_PLL_ENABLE | WRPLL_PLL_LCPLL | 723 val = WRPLL_PLL_ENABLE | WRPLL_PLL_LCPLL |
722 WRPLL_DIVIDER_REFERENCE(r2) | WRPLL_DIVIDER_FEEDBACK(n2) | 724 WRPLL_DIVIDER_REFERENCE(r2) | WRPLL_DIVIDER_FEEDBACK(n2) |
@@ -749,12 +751,11 @@ bool intel_ddi_pll_select(struct intel_crtc *intel_crtc)
749{ 751{
750 struct drm_crtc *crtc = &intel_crtc->base; 752 struct drm_crtc *crtc = &intel_crtc->base;
751 struct intel_encoder *intel_encoder = intel_ddi_get_crtc_encoder(crtc); 753 struct intel_encoder *intel_encoder = intel_ddi_get_crtc_encoder(crtc);
752 int type = intel_encoder->type;
753 int clock = intel_crtc->config.port_clock; 754 int clock = intel_crtc->config.port_clock;
754 755
755 intel_put_shared_dpll(intel_crtc); 756 intel_put_shared_dpll(intel_crtc);
756 757
757 return hsw_ddi_pll_select(intel_crtc, type, clock); 758 return hsw_ddi_pll_select(intel_crtc, intel_encoder, clock);
758} 759}
759 760
760void intel_ddi_set_pipe_settings(struct drm_crtc *crtc) 761void intel_ddi_set_pipe_settings(struct drm_crtc *crtc)