diff options
author | Jesse Barnes <jbarnes@virtuousgeek.org> | 2012-04-20 12:11:53 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-05-03 05:18:08 -0400 |
commit | ee7b9f93fd96a72e5d09e2b44024c11880873c6b (patch) | |
tree | 81686c6a104dccef07ca2ddd9fa9bc95d7f8676b /drivers/gpu/drm/i915/intel_drv.h | |
parent | c2798b19bac2538393fc932bfbe59807a4734b3e (diff) |
drm/i915: manage PCH PLLs separately from pipes
PCH PLLs aren't required for outputs on the CPU, so we shouldn't just
treat them as part of the pipe.
So split the code out and manage PCH PLLs separately, allocating them
when needed or trying to re-use existing PCH PLL setups when the timings
match.
v2: add num_pch_pll field to dev_priv (Daniel)
don't NULL the pch_pll pointer in disable or DPMS will fail (Jesse)
put register offsets in pll struct (Chris)
v3: Decouple enable/disable of PLLs from get/put.
v4: Track temporary PLL disabling during modeset
v5: Tidy PLL initialisation by only checking for num_pch_pll == 0 (Eugeni)
v6: Avoid mishandling allocation failure by embedding the small array of
PLLs into the device struct
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44309
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> (up to v2)
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> (v3+)
Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
Tested-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_drv.h')
-rw-r--r-- | drivers/gpu/drm/i915/intel_drv.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h index c5bf8bebf0b0..4b7ec449d3cc 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h | |||
@@ -179,8 +179,8 @@ struct intel_crtc { | |||
179 | bool cursor_visible; | 179 | bool cursor_visible; |
180 | unsigned int bpp; | 180 | unsigned int bpp; |
181 | 181 | ||
182 | bool no_pll; /* tertiary pipe for IVB */ | 182 | /* We can share PLLs across outputs if the timings match */ |
183 | bool use_pll_a; | 183 | struct intel_pch_pll *pch_pll; |
184 | }; | 184 | }; |
185 | 185 | ||
186 | struct intel_plane { | 186 | struct intel_plane { |