diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-06-05 07:34:16 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-06-12 15:29:56 -0400 |
commit | 5358901f99153085db59c3644db00b8753b50ac1 (patch) | |
tree | e7539b4aa354db23a4c817426ee6c89c3fdbf00e /drivers/gpu/drm/i915/i915_drv.h | |
parent | 7df00d7adb080122502a30ec48f237d2f90d36ad (diff) |
drm/i915: display pll hw state readout and checking
Currently still with an empty register state, this will follow in a
next step. This one here just creates the new vfunc and uses it for
cross-checking, initial state takeover and the dpll assert function.
And add a FIXME for the ddi pll readout code, which still needs to be
converted over.
v2:
- Add some hw state readout debug output.
- Also cross check the enabled crtc counting.
Note that I've botched up the patch ordering, and before this patch
we've read out the pll selection correctly, but did not reconstruct
the refcounts properly. See the bug link.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=65673
Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_drv.h')
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index e5b8ae42859a..7b998dcae089 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h | |||
@@ -142,6 +142,9 @@ enum intel_dpll_id { | |||
142 | }; | 142 | }; |
143 | #define I915_NUM_PLLS 2 | 143 | #define I915_NUM_PLLS 2 |
144 | 144 | ||
145 | struct intel_dpll_hw_state { | ||
146 | }; | ||
147 | |||
145 | struct intel_shared_dpll { | 148 | struct intel_shared_dpll { |
146 | int refcount; /* count of number of CRTCs sharing this PLL */ | 149 | int refcount; /* count of number of CRTCs sharing this PLL */ |
147 | int active; /* count of number of active CRTCs (i.e. DPMS on) */ | 150 | int active; /* count of number of active CRTCs (i.e. DPMS on) */ |
@@ -149,10 +152,14 @@ struct intel_shared_dpll { | |||
149 | const char *name; | 152 | const char *name; |
150 | /* should match the index in the dev_priv->shared_dplls array */ | 153 | /* should match the index in the dev_priv->shared_dplls array */ |
151 | enum intel_dpll_id id; | 154 | enum intel_dpll_id id; |
155 | struct intel_dpll_hw_state hw_state; | ||
152 | void (*enable)(struct drm_i915_private *dev_priv, | 156 | void (*enable)(struct drm_i915_private *dev_priv, |
153 | struct intel_shared_dpll *pll); | 157 | struct intel_shared_dpll *pll); |
154 | void (*disable)(struct drm_i915_private *dev_priv, | 158 | void (*disable)(struct drm_i915_private *dev_priv, |
155 | struct intel_shared_dpll *pll); | 159 | struct intel_shared_dpll *pll); |
160 | bool (*get_hw_state)(struct drm_i915_private *dev_priv, | ||
161 | struct intel_shared_dpll *pll, | ||
162 | struct intel_dpll_hw_state *hw_state); | ||
156 | }; | 163 | }; |
157 | 164 | ||
158 | /* Used by dp and fdi links */ | 165 | /* Used by dp and fdi links */ |