diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-06-05 07:34:13 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-06-10 13:54:14 -0400 |
commit | e9a632a578e0205c1fb015bb01af49c2ae71d6f2 (patch) | |
tree | 0395f1101eae98a7a6fcee2b387c2b7ac6eb66b2 /drivers/gpu/drm/i915 | |
parent | 46edb027df0d4bd423f7430dd473609caad4674b (diff) |
drm/i915: scrap register address storage
Using ids in register macros is much more common in our driver. Also
this way we can reduce the platform specific stuff a bit.
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915')
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_reg.h | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_ums.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 35 |
4 files changed, 20 insertions, 26 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 0fc8d616cefb..bb1ad20e39a1 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h | |||
@@ -147,9 +147,6 @@ struct intel_shared_dpll { | |||
147 | const char *name; | 147 | const char *name; |
148 | /* should match the index in the dev_priv->shared_dplls array */ | 148 | /* should match the index in the dev_priv->shared_dplls array */ |
149 | enum intel_dpll_id id; | 149 | enum intel_dpll_id id; |
150 | int pll_reg; | ||
151 | int fp0_reg; | ||
152 | int fp1_reg; | ||
153 | }; | 150 | }; |
154 | 151 | ||
155 | /* Used by dp and fdi links */ | 152 | /* Used by dp and fdi links */ |
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index 99638fc6285b..01e8783f1a97 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h | |||
@@ -3930,15 +3930,15 @@ | |||
3930 | 3930 | ||
3931 | #define _PCH_DPLL_A 0xc6014 | 3931 | #define _PCH_DPLL_A 0xc6014 |
3932 | #define _PCH_DPLL_B 0xc6018 | 3932 | #define _PCH_DPLL_B 0xc6018 |
3933 | #define _PCH_DPLL(pll) (pll == 0 ? _PCH_DPLL_A : _PCH_DPLL_B) | 3933 | #define PCH_DPLL(pll) (pll == 0 ? _PCH_DPLL_A : _PCH_DPLL_B) |
3934 | 3934 | ||
3935 | #define _PCH_FPA0 0xc6040 | 3935 | #define _PCH_FPA0 0xc6040 |
3936 | #define FP_CB_TUNE (0x3<<22) | 3936 | #define FP_CB_TUNE (0x3<<22) |
3937 | #define _PCH_FPA1 0xc6044 | 3937 | #define _PCH_FPA1 0xc6044 |
3938 | #define _PCH_FPB0 0xc6048 | 3938 | #define _PCH_FPB0 0xc6048 |
3939 | #define _PCH_FPB1 0xc604c | 3939 | #define _PCH_FPB1 0xc604c |
3940 | #define _PCH_FP0(pll) (pll == 0 ? _PCH_FPA0 : _PCH_FPB0) | 3940 | #define PCH_FP0(pll) (pll == 0 ? _PCH_FPA0 : _PCH_FPB0) |
3941 | #define _PCH_FP1(pll) (pll == 0 ? _PCH_FPA1 : _PCH_FPB1) | 3941 | #define PCH_FP1(pll) (pll == 0 ? _PCH_FPA1 : _PCH_FPB1) |
3942 | 3942 | ||
3943 | #define PCH_DPLL_TEST 0xc606c | 3943 | #define PCH_DPLL_TEST 0xc606c |
3944 | 3944 | ||
diff --git a/drivers/gpu/drm/i915/i915_ums.c b/drivers/gpu/drm/i915/i915_ums.c index 5ef30b2e6bc6..967da4772c44 100644 --- a/drivers/gpu/drm/i915/i915_ums.c +++ b/drivers/gpu/drm/i915/i915_ums.c | |||
@@ -41,7 +41,7 @@ static bool i915_pipe_enabled(struct drm_device *dev, enum pipe pipe) | |||
41 | return false; | 41 | return false; |
42 | 42 | ||
43 | if (HAS_PCH_SPLIT(dev)) | 43 | if (HAS_PCH_SPLIT(dev)) |
44 | dpll_reg = _PCH_DPLL(pipe); | 44 | dpll_reg = PCH_DPLL(pipe); |
45 | else | 45 | else |
46 | dpll_reg = (pipe == PIPE_A) ? _DPLL_A : _DPLL_B; | 46 | dpll_reg = (pipe == PIPE_A) ? _DPLL_A : _DPLL_B; |
47 | 47 | ||
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 1ee16e9195b9..1825ca5466e8 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -938,7 +938,7 @@ static void assert_shared_dpll(struct drm_i915_private *dev_priv, | |||
938 | "asserting DPLL %s with no DPLL\n", state_string(state))) | 938 | "asserting DPLL %s with no DPLL\n", state_string(state))) |
939 | return; | 939 | return; |
940 | 940 | ||
941 | val = I915_READ(pll->pll_reg); | 941 | val = I915_READ(PCH_DPLL(pll->id)); |
942 | cur_state = !!(val & DPLL_VCO_ENABLE); | 942 | cur_state = !!(val & DPLL_VCO_ENABLE); |
943 | WARN(cur_state != state, | 943 | WARN(cur_state != state, |
944 | "%s assertion failure (expected %s, current %s), val=%08x\n", | 944 | "%s assertion failure (expected %s, current %s), val=%08x\n", |
@@ -949,14 +949,14 @@ static void assert_shared_dpll(struct drm_i915_private *dev_priv, | |||
949 | u32 pch_dpll; | 949 | u32 pch_dpll; |
950 | 950 | ||
951 | pch_dpll = I915_READ(PCH_DPLL_SEL); | 951 | pch_dpll = I915_READ(PCH_DPLL_SEL); |
952 | cur_state = pll->pll_reg == _PCH_DPLL_B; | 952 | cur_state = pll->id == DPLL_ID_PCH_PLL_B; |
953 | if (!WARN(((pch_dpll >> (4 * crtc->pipe)) & 1) != cur_state, | 953 | if (!WARN(((pch_dpll >> (4 * crtc->pipe)) & 1) != cur_state, |
954 | "PLL[%d] not attached to this transcoder %c: %08x\n", | 954 | "PLL[%d] not attached to this transcoder %c: %08x\n", |
955 | cur_state, pipe_name(crtc->pipe), pch_dpll)) { | 955 | cur_state, pipe_name(crtc->pipe), pch_dpll)) { |
956 | cur_state = !!(val >> (4*crtc->pipe + 3)); | 956 | cur_state = !!(val >> (4*crtc->pipe + 3)); |
957 | WARN(cur_state != state, | 957 | WARN(cur_state != state, |
958 | "PLL[%d] not %s on this transcoder %c: %08x\n", | 958 | "PLL[%d] not %s on this transcoder %c: %08x\n", |
959 | pll->pll_reg == _PCH_DPLL_B, | 959 | pll->id == DPLL_ID_PCH_PLL_B, |
960 | state_string(state), | 960 | state_string(state), |
961 | pipe_name(crtc->pipe), | 961 | pipe_name(crtc->pipe), |
962 | val); | 962 | val); |
@@ -1446,7 +1446,7 @@ static void ironlake_enable_shared_dpll(struct intel_crtc *crtc) | |||
1446 | 1446 | ||
1447 | DRM_DEBUG_KMS("enabling %s\n", pll->name); | 1447 | DRM_DEBUG_KMS("enabling %s\n", pll->name); |
1448 | 1448 | ||
1449 | reg = pll->pll_reg; | 1449 | reg = PCH_DPLL(pll->id); |
1450 | val = I915_READ(reg); | 1450 | val = I915_READ(reg); |
1451 | val |= DPLL_VCO_ENABLE; | 1451 | val |= DPLL_VCO_ENABLE; |
1452 | I915_WRITE(reg, val); | 1452 | I915_WRITE(reg, val); |
@@ -1490,7 +1490,7 @@ static void intel_disable_shared_dpll(struct intel_crtc *crtc) | |||
1490 | /* Make sure transcoder isn't still depending on us */ | 1490 | /* Make sure transcoder isn't still depending on us */ |
1491 | assert_pch_transcoder_disabled(dev_priv, crtc->pipe); | 1491 | assert_pch_transcoder_disabled(dev_priv, crtc->pipe); |
1492 | 1492 | ||
1493 | reg = pll->pll_reg; | 1493 | reg = PCH_DPLL(pll->id); |
1494 | val = I915_READ(reg); | 1494 | val = I915_READ(reg); |
1495 | val &= ~DPLL_VCO_ENABLE; | 1495 | val &= ~DPLL_VCO_ENABLE; |
1496 | I915_WRITE(reg, val); | 1496 | I915_WRITE(reg, val); |
@@ -3107,8 +3107,8 @@ static struct intel_shared_dpll *intel_get_shared_dpll(struct intel_crtc *crtc, | |||
3107 | if (pll->refcount == 0) | 3107 | if (pll->refcount == 0) |
3108 | continue; | 3108 | continue; |
3109 | 3109 | ||
3110 | if (dpll == (I915_READ(pll->pll_reg) & 0x7fffffff) && | 3110 | if (dpll == (I915_READ(PCH_DPLL(pll->id)) & 0x7fffffff) && |
3111 | fp == I915_READ(pll->fp0_reg)) { | 3111 | fp == I915_READ(PCH_FP0(pll->id))) { |
3112 | DRM_DEBUG_KMS("CRTC:%d sharing existing %s (refcount %d, ative %d)\n", | 3112 | DRM_DEBUG_KMS("CRTC:%d sharing existing %s (refcount %d, ative %d)\n", |
3113 | crtc->base.base.id, | 3113 | crtc->base.base.id, |
3114 | pll->name, pll->refcount, pll->active); | 3114 | pll->name, pll->refcount, pll->active); |
@@ -3139,12 +3139,12 @@ found: | |||
3139 | assert_shared_dpll_disabled(dev_priv, pll, NULL); | 3139 | assert_shared_dpll_disabled(dev_priv, pll, NULL); |
3140 | 3140 | ||
3141 | /* Wait for the clocks to stabilize before rewriting the regs */ | 3141 | /* Wait for the clocks to stabilize before rewriting the regs */ |
3142 | I915_WRITE(pll->pll_reg, dpll & ~DPLL_VCO_ENABLE); | 3142 | I915_WRITE(PCH_DPLL(pll->id), dpll & ~DPLL_VCO_ENABLE); |
3143 | POSTING_READ(pll->pll_reg); | 3143 | POSTING_READ(PCH_DPLL(pll->id)); |
3144 | udelay(150); | 3144 | udelay(150); |
3145 | 3145 | ||
3146 | I915_WRITE(pll->fp0_reg, fp); | 3146 | I915_WRITE(PCH_FP0(pll->id), fp); |
3147 | I915_WRITE(pll->pll_reg, dpll & ~DPLL_VCO_ENABLE); | 3147 | I915_WRITE(PCH_DPLL(pll->id), dpll & ~DPLL_VCO_ENABLE); |
3148 | } | 3148 | } |
3149 | pll->refcount++; | 3149 | pll->refcount++; |
3150 | 3150 | ||
@@ -5785,10 +5785,10 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc, | |||
5785 | if (intel_crtc->config.has_pch_encoder) { | 5785 | if (intel_crtc->config.has_pch_encoder) { |
5786 | pll = intel_crtc_to_shared_dpll(intel_crtc); | 5786 | pll = intel_crtc_to_shared_dpll(intel_crtc); |
5787 | 5787 | ||
5788 | I915_WRITE(pll->pll_reg, dpll); | 5788 | I915_WRITE(PCH_DPLL(pll->id), dpll); |
5789 | 5789 | ||
5790 | /* Wait for the clocks to stabilize. */ | 5790 | /* Wait for the clocks to stabilize. */ |
5791 | POSTING_READ(pll->pll_reg); | 5791 | POSTING_READ(PCH_DPLL(pll->id)); |
5792 | udelay(150); | 5792 | udelay(150); |
5793 | 5793 | ||
5794 | /* The pixel multiplier can only be updated once the | 5794 | /* The pixel multiplier can only be updated once the |
@@ -5796,13 +5796,13 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc, | |||
5796 | * | 5796 | * |
5797 | * So write it again. | 5797 | * So write it again. |
5798 | */ | 5798 | */ |
5799 | I915_WRITE(pll->pll_reg, dpll); | 5799 | I915_WRITE(PCH_DPLL(pll->id), dpll); |
5800 | 5800 | ||
5801 | if (is_lvds && has_reduced_clock && i915_powersave) { | 5801 | if (is_lvds && has_reduced_clock && i915_powersave) { |
5802 | I915_WRITE(pll->fp1_reg, fp2); | 5802 | I915_WRITE(PCH_FP1(pll->id), fp2); |
5803 | intel_crtc->lowfreq_avail = true; | 5803 | intel_crtc->lowfreq_avail = true; |
5804 | } else { | 5804 | } else { |
5805 | I915_WRITE(pll->fp1_reg, fp); | 5805 | I915_WRITE(PCH_FP1(pll->id), fp); |
5806 | } | 5806 | } |
5807 | } | 5807 | } |
5808 | 5808 | ||
@@ -8744,9 +8744,6 @@ static void ibx_pch_dpll_init(struct drm_device *dev) | |||
8744 | for (i = 0; i < dev_priv->num_shared_dpll; i++) { | 8744 | for (i = 0; i < dev_priv->num_shared_dpll; i++) { |
8745 | dev_priv->shared_dplls[i].id = i; | 8745 | dev_priv->shared_dplls[i].id = i; |
8746 | dev_priv->shared_dplls[i].name = ibx_pch_dpll_names[i]; | 8746 | dev_priv->shared_dplls[i].name = ibx_pch_dpll_names[i]; |
8747 | dev_priv->shared_dplls[i].pll_reg = _PCH_DPLL(i); | ||
8748 | dev_priv->shared_dplls[i].fp0_reg = _PCH_FP0(i); | ||
8749 | dev_priv->shared_dplls[i].fp1_reg = _PCH_FP1(i); | ||
8750 | } | 8747 | } |
8751 | } | 8748 | } |
8752 | 8749 | ||