diff options
author | Damien Lespiau <damien.lespiau@intel.com> | 2014-07-29 13:06:23 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-08-08 11:43:38 -0400 |
commit | d664c0cece2dd410d8134aa820112e471e3592dd (patch) | |
tree | ba18ac7ec2932db957c5e87fce56d8576b7a252f | |
parent | 0220ab6e00785da008bb3736737b877d45858608 (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.c | 15 |
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 | ||
646 | static void | 646 | static void |
647 | intel_ddi_calculate_wrpll(int clock /* in Hz */, | 647 | hsw_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 | ||
711 | static bool | 711 | static bool |
712 | hsw_ddi_pll_select(struct intel_crtc *intel_crtc, int output, int clock) | 712 | hsw_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 | ||
760 | void intel_ddi_set_pipe_settings(struct drm_crtc *crtc) | 761 | void intel_ddi_set_pipe_settings(struct drm_crtc *crtc) |