aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_drv.h
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2013-06-05 07:34:16 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-06-12 15:29:56 -0400
commit5358901f99153085db59c3644db00b8753b50ac1 (patch)
treee7539b4aa354db23a4c817426ee6c89c3fdbf00e /drivers/gpu/drm/i915/i915_drv.h
parent7df00d7adb080122502a30ec48f237d2f90d36ad (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.h7
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
145struct intel_dpll_hw_state {
146};
147
145struct intel_shared_dpll { 148struct 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 */