aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorPaulo Zanoni <paulo.r.zanoni@intel.com>2012-07-03 14:57:32 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-07-05 03:56:05 -0400
commit45e6e3a1cd2f53fd5996e75b4029defed97ca585 (patch)
tree320ae62f9102a92a282d86c888920b3473f48964 /drivers/gpu
parentf035083055555f8ab200f086c755d361830e3140 (diff)
drm/i915: get rid of dev_priv->info->has_pch_split
Previously we had has_pch_split to tell us whether we had a PCH or not and we also had dev_priv->pch_type to tell us which kind of PCH it was, but it could only be used if we were 100% sure we did have a PCH. Now that PCH_NONE was added to dev_priv->pch_type we don't need has_pch_split anymore: we can just check for pch_type != PCH_NONE. The HAS_PCH_{IBX,CPT,LPT} macros use dev_priv->pch_type, so they can only be called after intel_detect_pch. The HAS_PCH_SPLIT macro looks at dev_priv->info->has_pch_split, which is available earlier. Since the goal is to implement HAS_PCH_SPLIT using dev_priv->pch_type instead of dev_priv->info->has_pch_split, we need to make sure that intel_detect_pch is called before any calls to HAS_PCH_SPLIT are made. So we moved the intel_detect_pch call to an earlier stage. Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/i915/i915_dma.c5
-rw-r--r--drivers/gpu/drm/i915/i915_drv.c8
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h3
3 files changed, 4 insertions, 12 deletions
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 4dc76976c0d0..f64ef4b723fd 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1547,6 +1547,9 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
1547 goto out_mtrrfree; 1547 goto out_mtrrfree;
1548 } 1548 }
1549 1549
1550 /* This must be called before any calls to HAS_PCH_* */
1551 intel_detect_pch(dev);
1552
1550 intel_irq_init(dev); 1553 intel_irq_init(dev);
1551 intel_gt_init(dev); 1554 intel_gt_init(dev);
1552 1555
@@ -1599,8 +1602,6 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
1599 /* Start out suspended */ 1602 /* Start out suspended */
1600 dev_priv->mm.suspended = 1; 1603 dev_priv->mm.suspended = 1;
1601 1604
1602 intel_detect_pch(dev);
1603
1604 if (drm_core_check_feature(dev, DRIVER_MODESET)) { 1605 if (drm_core_check_feature(dev, DRIVER_MODESET)) {
1605 ret = i915_load_modeset_init(dev); 1606 ret = i915_load_modeset_init(dev);
1606 if (ret < 0) { 1607 if (ret < 0) {
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index c7e76e03a684..f2c0100e0630 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -216,7 +216,6 @@ static const struct intel_device_info intel_ironlake_d_info = {
216 .gen = 5, 216 .gen = 5,
217 .need_gfx_hws = 1, .has_hotplug = 1, 217 .need_gfx_hws = 1, .has_hotplug = 1,
218 .has_bsd_ring = 1, 218 .has_bsd_ring = 1,
219 .has_pch_split = 1,
220}; 219};
221 220
222static const struct intel_device_info intel_ironlake_m_info = { 221static const struct intel_device_info intel_ironlake_m_info = {
@@ -224,7 +223,6 @@ static const struct intel_device_info intel_ironlake_m_info = {
224 .need_gfx_hws = 1, .has_hotplug = 1, 223 .need_gfx_hws = 1, .has_hotplug = 1,
225 .has_fbc = 1, 224 .has_fbc = 1,
226 .has_bsd_ring = 1, 225 .has_bsd_ring = 1,
227 .has_pch_split = 1,
228}; 226};
229 227
230static const struct intel_device_info intel_sandybridge_d_info = { 228static const struct intel_device_info intel_sandybridge_d_info = {
@@ -233,7 +231,6 @@ static const struct intel_device_info intel_sandybridge_d_info = {
233 .has_bsd_ring = 1, 231 .has_bsd_ring = 1,
234 .has_blt_ring = 1, 232 .has_blt_ring = 1,
235 .has_llc = 1, 233 .has_llc = 1,
236 .has_pch_split = 1,
237 .has_force_wake = 1, 234 .has_force_wake = 1,
238}; 235};
239 236
@@ -244,7 +241,6 @@ static const struct intel_device_info intel_sandybridge_m_info = {
244 .has_bsd_ring = 1, 241 .has_bsd_ring = 1,
245 .has_blt_ring = 1, 242 .has_blt_ring = 1,
246 .has_llc = 1, 243 .has_llc = 1,
247 .has_pch_split = 1,
248 .has_force_wake = 1, 244 .has_force_wake = 1,
249}; 245};
250 246
@@ -254,7 +250,6 @@ static const struct intel_device_info intel_ivybridge_d_info = {
254 .has_bsd_ring = 1, 250 .has_bsd_ring = 1,
255 .has_blt_ring = 1, 251 .has_blt_ring = 1,
256 .has_llc = 1, 252 .has_llc = 1,
257 .has_pch_split = 1,
258 .has_force_wake = 1, 253 .has_force_wake = 1,
259}; 254};
260 255
@@ -265,7 +260,6 @@ static const struct intel_device_info intel_ivybridge_m_info = {
265 .has_bsd_ring = 1, 260 .has_bsd_ring = 1,
266 .has_blt_ring = 1, 261 .has_blt_ring = 1,
267 .has_llc = 1, 262 .has_llc = 1,
268 .has_pch_split = 1,
269 .has_force_wake = 1, 263 .has_force_wake = 1,
270}; 264};
271 265
@@ -293,7 +287,6 @@ static const struct intel_device_info intel_haswell_d_info = {
293 .has_bsd_ring = 1, 287 .has_bsd_ring = 1,
294 .has_blt_ring = 1, 288 .has_blt_ring = 1,
295 .has_llc = 1, 289 .has_llc = 1,
296 .has_pch_split = 1,
297 .has_force_wake = 1, 290 .has_force_wake = 1,
298}; 291};
299 292
@@ -303,7 +296,6 @@ static const struct intel_device_info intel_haswell_m_info = {
303 .has_bsd_ring = 1, 296 .has_bsd_ring = 1,
304 .has_blt_ring = 1, 297 .has_blt_ring = 1,
305 .has_llc = 1, 298 .has_llc = 1,
306 .has_pch_split = 1,
307 .has_force_wake = 1, 299 .has_force_wake = 1,
308}; 300};
309 301
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 57d05c798c4b..d839e4c24d69 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -288,7 +288,6 @@ struct intel_device_info {
288 u8 is_crestline:1; 288 u8 is_crestline:1;
289 u8 is_ivybridge:1; 289 u8 is_ivybridge:1;
290 u8 is_valleyview:1; 290 u8 is_valleyview:1;
291 u8 has_pch_split:1;
292 u8 has_force_wake:1; 291 u8 has_force_wake:1;
293 u8 is_haswell:1; 292 u8 is_haswell:1;
294 u8 has_fbc:1; 293 u8 has_fbc:1;
@@ -1121,13 +1120,13 @@ struct drm_i915_file_private {
1121#define HAS_PIPE_CXSR(dev) (INTEL_INFO(dev)->has_pipe_cxsr) 1120#define HAS_PIPE_CXSR(dev) (INTEL_INFO(dev)->has_pipe_cxsr)
1122#define I915_HAS_FBC(dev) (INTEL_INFO(dev)->has_fbc) 1121#define I915_HAS_FBC(dev) (INTEL_INFO(dev)->has_fbc)
1123 1122
1124#define HAS_PCH_SPLIT(dev) (INTEL_INFO(dev)->has_pch_split)
1125#define HAS_PIPE_CONTROL(dev) (INTEL_INFO(dev)->gen >= 5) 1123#define HAS_PIPE_CONTROL(dev) (INTEL_INFO(dev)->gen >= 5)
1126 1124
1127#define INTEL_PCH_TYPE(dev) (((struct drm_i915_private *)(dev)->dev_private)->pch_type) 1125#define INTEL_PCH_TYPE(dev) (((struct drm_i915_private *)(dev)->dev_private)->pch_type)
1128#define HAS_PCH_LPT(dev) (INTEL_PCH_TYPE(dev) == PCH_LPT) 1126#define HAS_PCH_LPT(dev) (INTEL_PCH_TYPE(dev) == PCH_LPT)
1129#define HAS_PCH_CPT(dev) (INTEL_PCH_TYPE(dev) == PCH_CPT) 1127#define HAS_PCH_CPT(dev) (INTEL_PCH_TYPE(dev) == PCH_CPT)
1130#define HAS_PCH_IBX(dev) (INTEL_PCH_TYPE(dev) == PCH_IBX) 1128#define HAS_PCH_IBX(dev) (INTEL_PCH_TYPE(dev) == PCH_IBX)
1129#define HAS_PCH_SPLIT(dev) (INTEL_PCH_TYPE(dev) != PCH_NONE)
1131 1130
1132#define HAS_FORCE_WAKE(dev) (INTEL_INFO(dev)->has_force_wake) 1131#define HAS_FORCE_WAKE(dev) (INTEL_INFO(dev)->has_force_wake)
1133 1132