aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Widawsky <benjamin.widawsky@intel.com>2013-10-05 20:57:11 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-10-10 06:47:10 -0400
commitab484f8fd62c97fc52dbb380d8b7cf3ff77b1e70 (patch)
tree629b298922bc00509e6e30a1b0407e25992333ea
parent4032ef4315475dd9605d6cde461168fb85d776ea (diff)
drm/i915: Remove gen specific checks in MMIO
Now that MMIO has been split up into gen specific functions it is obvious when HAS_FPGA_DBG_UNCLAIMED, HAS_FORCE_WAKE are needed. As such, we can remove this extraneous condition. As a result of this, as well as previously existing function pointers for forcewake, we no longer need the has_force_wake member in the device specific data structure. Signed-off-by: Ben Widawsky <ben@bwidawsk.net> Reviewed-by: Damien Lespiau <damien.lespiau@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/i915_drv.c5
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h3
-rw-r--r--drivers/gpu/drm/i915/intel_ringbuffer.c6
-rw-r--r--drivers/gpu/drm/i915/intel_uncore.c16
4 files changed, 12 insertions, 18 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 96f230497cbe..59649c060986 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -257,7 +257,6 @@ static const struct intel_device_info intel_sandybridge_d_info = {
257 .has_bsd_ring = 1, 257 .has_bsd_ring = 1,
258 .has_blt_ring = 1, 258 .has_blt_ring = 1,
259 .has_llc = 1, 259 .has_llc = 1,
260 .has_force_wake = 1,
261}; 260};
262 261
263static const struct intel_device_info intel_sandybridge_m_info = { 262static const struct intel_device_info intel_sandybridge_m_info = {
@@ -267,7 +266,6 @@ static const struct intel_device_info intel_sandybridge_m_info = {
267 .has_bsd_ring = 1, 266 .has_bsd_ring = 1,
268 .has_blt_ring = 1, 267 .has_blt_ring = 1,
269 .has_llc = 1, 268 .has_llc = 1,
270 .has_force_wake = 1,
271}; 269};
272 270
273#define GEN7_FEATURES \ 271#define GEN7_FEATURES \
@@ -275,8 +273,7 @@ static const struct intel_device_info intel_sandybridge_m_info = {
275 .need_gfx_hws = 1, .has_hotplug = 1, \ 273 .need_gfx_hws = 1, .has_hotplug = 1, \
276 .has_bsd_ring = 1, \ 274 .has_bsd_ring = 1, \
277 .has_blt_ring = 1, \ 275 .has_blt_ring = 1, \
278 .has_llc = 1, \ 276 .has_llc = 1
279 .has_force_wake = 1
280 277
281static const struct intel_device_info intel_ivybridge_d_info = { 278static const struct intel_device_info intel_ivybridge_d_info = {
282 GEN7_FEATURES, 279 GEN7_FEATURES,
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 957771fc60fa..9cac93c41e10 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -441,7 +441,6 @@ struct intel_uncore {
441 func(is_valleyview) sep \ 441 func(is_valleyview) sep \
442 func(is_haswell) sep \ 442 func(is_haswell) sep \
443 func(is_preliminary) sep \ 443 func(is_preliminary) sep \
444 func(has_force_wake) sep \
445 func(has_fbc) sep \ 444 func(has_fbc) sep \
446 func(has_pipe_cxsr) sep \ 445 func(has_pipe_cxsr) sep \
447 func(has_hotplug) sep \ 446 func(has_hotplug) sep \
@@ -1729,8 +1728,6 @@ struct drm_i915_file_private {
1729#define HAS_PCH_NOP(dev) (INTEL_PCH_TYPE(dev) == PCH_NOP) 1728#define HAS_PCH_NOP(dev) (INTEL_PCH_TYPE(dev) == PCH_NOP)
1730#define HAS_PCH_SPLIT(dev) (INTEL_PCH_TYPE(dev) != PCH_NONE) 1729#define HAS_PCH_SPLIT(dev) (INTEL_PCH_TYPE(dev) != PCH_NONE)
1731 1730
1732#define HAS_FORCE_WAKE(dev) (INTEL_INFO(dev)->has_force_wake)
1733
1734/* DPF == dynamic parity feature */ 1731/* DPF == dynamic parity feature */
1735#define HAS_L3_DPF(dev) (IS_IVYBRIDGE(dev) || IS_HASWELL(dev)) 1732#define HAS_L3_DPF(dev) (IS_IVYBRIDGE(dev) || IS_HASWELL(dev))
1736#define NUM_L3_SLICES(dev) (IS_HSW_GT3(dev) ? 2 : HAS_L3_DPF(dev)) 1733#define NUM_L3_SLICES(dev) (IS_HSW_GT3(dev) ? 2 : HAS_L3_DPF(dev))
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index b67104aaade5..4e108fc3c340 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -395,8 +395,7 @@ static int init_ring_common(struct intel_ring_buffer *ring)
395 int ret = 0; 395 int ret = 0;
396 u32 head; 396 u32 head;
397 397
398 if (HAS_FORCE_WAKE(dev)) 398 gen6_gt_force_wake_get(dev_priv);
399 gen6_gt_force_wake_get(dev_priv);
400 399
401 if (I915_NEED_GFX_HWS(dev)) 400 if (I915_NEED_GFX_HWS(dev))
402 intel_ring_setup_status_page(ring); 401 intel_ring_setup_status_page(ring);
@@ -469,8 +468,7 @@ static int init_ring_common(struct intel_ring_buffer *ring)
469 memset(&ring->hangcheck, 0, sizeof(ring->hangcheck)); 468 memset(&ring->hangcheck, 0, sizeof(ring->hangcheck));
470 469
471out: 470out:
472 if (HAS_FORCE_WAKE(dev)) 471 gen6_gt_force_wake_put(dev_priv);
473 gen6_gt_force_wake_put(dev_priv);
474 472
475 return ret; 473 return ret;
476} 474}
diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
index 7e8dcbeb0cac..f6fae35c568e 100644
--- a/drivers/gpu/drm/i915/intel_uncore.c
+++ b/drivers/gpu/drm/i915/intel_uncore.c
@@ -282,6 +282,9 @@ void gen6_gt_force_wake_get(struct drm_i915_private *dev_priv)
282{ 282{
283 unsigned long irqflags; 283 unsigned long irqflags;
284 284
285 if (!dev_priv->uncore.funcs.force_wake_get)
286 return;
287
285 spin_lock_irqsave(&dev_priv->uncore.lock, irqflags); 288 spin_lock_irqsave(&dev_priv->uncore.lock, irqflags);
286 if (dev_priv->uncore.forcewake_count++ == 0) 289 if (dev_priv->uncore.forcewake_count++ == 0)
287 dev_priv->uncore.funcs.force_wake_get(dev_priv); 290 dev_priv->uncore.funcs.force_wake_get(dev_priv);
@@ -295,6 +298,9 @@ void gen6_gt_force_wake_put(struct drm_i915_private *dev_priv)
295{ 298{
296 unsigned long irqflags; 299 unsigned long irqflags;
297 300
301 if (!dev_priv->uncore.funcs.force_wake_put)
302 return;
303
298 spin_lock_irqsave(&dev_priv->uncore.lock, irqflags); 304 spin_lock_irqsave(&dev_priv->uncore.lock, irqflags);
299 if (--dev_priv->uncore.forcewake_count == 0) { 305 if (--dev_priv->uncore.forcewake_count == 0) {
300 dev_priv->uncore.forcewake_count++; 306 dev_priv->uncore.forcewake_count++;
@@ -307,9 +313,7 @@ void gen6_gt_force_wake_put(struct drm_i915_private *dev_priv)
307 313
308/* We give fast paths for the really cool registers */ 314/* We give fast paths for the really cool registers */
309#define NEEDS_FORCE_WAKE(dev_priv, reg) \ 315#define NEEDS_FORCE_WAKE(dev_priv, reg) \
310 ((HAS_FORCE_WAKE((dev_priv)->dev)) && \ 316 ((reg) < 0x40000 && (reg) != FORCEWAKE)
311 ((reg) < 0x40000) && \
312 ((reg) != FORCEWAKE))
313 317
314static void 318static void
315ilk_dummy_write(struct drm_i915_private *dev_priv) 319ilk_dummy_write(struct drm_i915_private *dev_priv)
@@ -323,8 +327,7 @@ ilk_dummy_write(struct drm_i915_private *dev_priv)
323static void 327static void
324hsw_unclaimed_reg_clear(struct drm_i915_private *dev_priv, u32 reg) 328hsw_unclaimed_reg_clear(struct drm_i915_private *dev_priv, u32 reg)
325{ 329{
326 if (HAS_FPGA_DBG_UNCLAIMED(dev_priv->dev) && 330 if (__raw_i915_read32(dev_priv, FPGA_DBG) & FPGA_DBG_RM_NOCLAIM) {
327 (__raw_i915_read32(dev_priv, FPGA_DBG) & FPGA_DBG_RM_NOCLAIM)) {
328 DRM_ERROR("Unknown unclaimed register before writing to %x\n", 331 DRM_ERROR("Unknown unclaimed register before writing to %x\n",
329 reg); 332 reg);
330 __raw_i915_write32(dev_priv, FPGA_DBG, FPGA_DBG_RM_NOCLAIM); 333 __raw_i915_write32(dev_priv, FPGA_DBG, FPGA_DBG_RM_NOCLAIM);
@@ -334,8 +337,7 @@ hsw_unclaimed_reg_clear(struct drm_i915_private *dev_priv, u32 reg)
334static void 337static void
335hsw_unclaimed_reg_check(struct drm_i915_private *dev_priv, u32 reg) 338hsw_unclaimed_reg_check(struct drm_i915_private *dev_priv, u32 reg)
336{ 339{
337 if (HAS_FPGA_DBG_UNCLAIMED(dev_priv->dev) && 340 if (__raw_i915_read32(dev_priv, FPGA_DBG) & FPGA_DBG_RM_NOCLAIM) {
338 (__raw_i915_read32(dev_priv, FPGA_DBG) & FPGA_DBG_RM_NOCLAIM)) {
339 DRM_ERROR("Unclaimed write to %x\n", reg); 341 DRM_ERROR("Unclaimed write to %x\n", reg);
340 __raw_i915_write32(dev_priv, FPGA_DBG, FPGA_DBG_RM_NOCLAIM); 342 __raw_i915_write32(dev_priv, FPGA_DBG, FPGA_DBG_RM_NOCLAIM);
341 } 343 }