drm/i915: PLL macro cleanup and pipe assertion check
authorJesse Barnes <jbarnes@virtuousgeek.org>
Fri, 2 Sep 2011 19:52:11 +0000 (12:52 -0700)
committerKeith Packard <keithp@keithp.com>
Thu, 20 Oct 2011 22:26:42 +0000 (15:26 -0700)
Add a macro for accessing the two pipe PLLs and add a check to make sure
we don't access a non-existent one in the enable/disable functions.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Tested-By: Eugeni Dodonov <eugeni.dodonov@intel.com>
Reviewed-By: Eugeni Dodonov <eugeni.dodonov@intel.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/intel_display.c

index d8bf9cf348ecaa5ab309787db9191de6085dfbca..6cad6b1e33559f9609a6aa5b86c448773b300f59 100644 (file)
 
 #define _PCH_DPLL_A              0xc6014
 #define _PCH_DPLL_B              0xc6018
-#define PCH_DPLL(pipe) _PIPE(pipe, _PCH_DPLL_A, _PCH_DPLL_B)
+#define PCH_DPLL(pipe) (pipe == 0 ?  _PCH_DPLL_A : _PCH_DPLL_B)
 
 #define _PCH_FPA0                0xc6040
 #define  FP_CB_TUNE            (0x3<<22)
 #define _PCH_FPA1                0xc6044
 #define _PCH_FPB0                0xc6048
 #define _PCH_FPB1                0xc604c
-#define PCH_FP0(pipe) _PIPE(pipe, _PCH_FPA0, _PCH_FPB0)
-#define PCH_FP1(pipe) _PIPE(pipe, _PCH_FPA1, _PCH_FPB1)
+#define PCH_FP0(pipe) (pipe == 0 ? _PCH_FPA0 : _PCH_FPB0)
+#define PCH_FP1(pipe) (pipe == 0 ? _PCH_FPA1 : _PCH_FPB1)
 
 #define PCH_DPLL_TEST           0xc606c
 
index 2e28c687010cf4ac01e0458b4a66060ce19d7459..dade95ca0d8682ed17467fe1dbbe3895b0c0531b 100644 (file)
@@ -1172,6 +1172,9 @@ static void intel_enable_pch_pll(struct drm_i915_private *dev_priv,
        int reg;
        u32 val;
 
+       if (pipe > 1)
+               return;
+
        /* PCH only available on ILK+ */
        BUG_ON(dev_priv->info->gen < 5);
 
@@ -1192,6 +1195,9 @@ static void intel_disable_pch_pll(struct drm_i915_private *dev_priv,
        int reg;
        u32 val;
 
+       if (pipe > 1)
+               return;
+
        /* PCH only available on ILK+ */
        BUG_ON(dev_priv->info->gen < 5);