All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-gfx] [PATCH 0/9] drm/i915: nuke remaining legacy reg helpers (I915_READ/WRITE etc.)
@ 2020-11-12 11:44 Jani Nikula
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 1/9] drm/i915: remove last users of I915_READ_FW() Jani Nikula
                   ` (11 more replies)
  0 siblings, 12 replies; 26+ messages in thread
From: Jani Nikula @ 2020-11-12 11:44 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

To prevent new code with the old helpers being added, nuke the remaining
legacy reg accessors.

BR,
Jani.

Jani Nikula (9):
  drm/i915: remove last users of I915_READ_FW()
  drm/i915: remove last traces of I915_READ_FW() and I915_WRITE_FW()
  drm/i915/cdclk: prefer intel_de_write() over I915_WRITE()
  drm/i915/debugfs: replace I915_READ()+I915_WRITE() with
    intel_uncore_rmw()
  drm/i915/debugfs: replace I915_READ() with intel_uncore_read()
  drm/i915/suspend: replace I915_READ()/WRITE() with
    intel_de_read()/write()
  drm/i915/pm: replace I915_READ()/WRITE() with
    intel_uncore_read()/write()
  drm/i915/irq: replace I915_READ()/WRITE() with
    intel_uncore_read()/write()
  drm/i915: remove last traces of I915_READ(), I915_WRITE() and
    POSTING_READ()

 drivers/gpu/drm/i915/display/intel_cdclk.c |   4 +-
 drivers/gpu/drm/i915/display/intel_dvo.c   |   4 -
 drivers/gpu/drm/i915/i915_debugfs.c        | 230 +++++----
 drivers/gpu/drm/i915/i915_drv.h            |  37 --
 drivers/gpu/drm/i915/i915_irq.c            | 336 ++++++-------
 drivers/gpu/drm/i915/i915_reg.h            |   6 +-
 drivers/gpu/drm/i915/i915_suspend.c        |  33 +-
 drivers/gpu/drm/i915/intel_pm.c            | 552 ++++++++++-----------
 drivers/gpu/drm/i915/intel_sideband.c      |   4 +-
 drivers/gpu/drm/i915/intel_uncore.c        |   4 +-
 drivers/gpu/drm/i915/intel_uncore.h        |   6 +-
 11 files changed, 587 insertions(+), 629 deletions(-)

-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Intel-gfx] [PATCH 1/9] drm/i915: remove last users of I915_READ_FW()
  2020-11-12 11:44 [Intel-gfx] [PATCH 0/9] drm/i915: nuke remaining legacy reg helpers (I915_READ/WRITE etc.) Jani Nikula
@ 2020-11-12 11:44 ` Jani Nikula
  2020-11-12 20:17   ` Rodrigo Vivi
  2020-11-12 20:24   ` Chris Wilson
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 2/9] drm/i915: remove last traces of I915_READ_FW() and I915_WRITE_FW() Jani Nikula
                   ` (10 subsequent siblings)
  11 siblings, 2 replies; 26+ messages in thread
From: Jani Nikula @ 2020-11-12 11:44 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Use the preferred intel_uncore_read_fw() instead.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 77e76b665098..7cbca268cb61 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -1238,10 +1238,10 @@ static int i915_rps_boost_info(struct seq_file *m, void *data)
 		u32 rpdown, rpdownei;
 
 		intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
-		rpup = I915_READ_FW(GEN6_RP_CUR_UP) & GEN6_RP_EI_MASK;
-		rpupei = I915_READ_FW(GEN6_RP_CUR_UP_EI) & GEN6_RP_EI_MASK;
-		rpdown = I915_READ_FW(GEN6_RP_CUR_DOWN) & GEN6_RP_EI_MASK;
-		rpdownei = I915_READ_FW(GEN6_RP_CUR_DOWN_EI) & GEN6_RP_EI_MASK;
+		rpup = intel_uncore_read_fw(&dev_priv->uncore, GEN6_RP_CUR_UP) & GEN6_RP_EI_MASK;
+		rpupei = intel_uncore_read_fw(&dev_priv->uncore, GEN6_RP_CUR_UP_EI) & GEN6_RP_EI_MASK;
+		rpdown = intel_uncore_read_fw(&dev_priv->uncore, GEN6_RP_CUR_DOWN) & GEN6_RP_EI_MASK;
+		rpdownei = intel_uncore_read_fw(&dev_priv->uncore, GEN6_RP_CUR_DOWN_EI) & GEN6_RP_EI_MASK;
 		intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
 
 		seq_printf(m, "\nRPS Autotuning (current \"%s\" window):\n",
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [Intel-gfx] [PATCH 2/9] drm/i915: remove last traces of I915_READ_FW() and I915_WRITE_FW()
  2020-11-12 11:44 [Intel-gfx] [PATCH 0/9] drm/i915: nuke remaining legacy reg helpers (I915_READ/WRITE etc.) Jani Nikula
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 1/9] drm/i915: remove last users of I915_READ_FW() Jani Nikula
@ 2020-11-12 11:44 ` Jani Nikula
  2020-11-12 20:19   ` Rodrigo Vivi
  2020-11-12 20:26   ` Chris Wilson
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 3/9] drm/i915/cdclk: prefer intel_de_write() over I915_WRITE() Jani Nikula
                   ` (9 subsequent siblings)
  11 siblings, 2 replies; 26+ messages in thread
From: Jani Nikula @ 2020-11-12 11:44 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Good riddance! Remove the macros and their remaining references in
comments.

intel_uncore_read_fw() and intel_uncore_write_fw() should be used
instead.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_drv.h     | 29 -----------------------------
 drivers/gpu/drm/i915/intel_uncore.c |  2 +-
 drivers/gpu/drm/i915/intel_uncore.h |  2 +-
 3 files changed, 2 insertions(+), 31 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 15be8debae54..fecb5899cbac 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1978,35 +1978,6 @@ int i915_reg_read_ioctl(struct drm_device *dev, void *data,
 
 #define POSTING_READ(reg__)	__I915_REG_OP(posting_read, dev_priv, (reg__))
 
-/* These are untraced mmio-accessors that are only valid to be used inside
- * critical sections, such as inside IRQ handlers, where forcewake is explicitly
- * controlled.
- *
- * Think twice, and think again, before using these.
- *
- * As an example, these accessors can possibly be used between:
- *
- * spin_lock_irq(&dev_priv->uncore.lock);
- * intel_uncore_forcewake_get__locked();
- *
- * and
- *
- * intel_uncore_forcewake_put__locked();
- * spin_unlock_irq(&dev_priv->uncore.lock);
- *
- *
- * Note: some registers may not need forcewake held, so
- * intel_uncore_forcewake_{get,put} can be omitted, see
- * intel_uncore_forcewake_for_reg().
- *
- * Certain architectures will die if the same cacheline is concurrently accessed
- * by different clients (e.g. on Ivybridge). Access to registers should
- * therefore generally be serialised, by either the dev_priv->uncore.lock or
- * a more localised lock guarding all access to that bank of registers.
- */
-#define I915_READ_FW(reg__) __I915_REG_OP(read_fw, dev_priv, (reg__))
-#define I915_WRITE_FW(reg__, val__) __I915_REG_OP(write_fw, dev_priv, (reg__), (val__))
-
 /* i915_mm.c */
 int remap_io_mapping(struct vm_area_struct *vma,
 		     unsigned long addr, unsigned long pfn, unsigned long size,
diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
index 1c14a07eba7d..ef40edfff412 100644
--- a/drivers/gpu/drm/i915/intel_uncore.c
+++ b/drivers/gpu/drm/i915/intel_uncore.c
@@ -2070,7 +2070,7 @@ int i915_reg_read_ioctl(struct drm_device *dev,
  * This routine waits until the target register @reg contains the expected
  * @value after applying the @mask, i.e. it waits until ::
  *
- *     (I915_READ_FW(reg) & mask) == value
+ *     (intel_uncore_read_fw(uncore, reg) & mask) == value
  *
  * Otherwise, the wait will timeout after @slow_timeout_ms milliseconds.
  * For atomic context @slow_timeout_ms must be zero and @fast_timeout_us
diff --git a/drivers/gpu/drm/i915/intel_uncore.h b/drivers/gpu/drm/i915/intel_uncore.h
index bd2467284295..5dcb7f4183b2 100644
--- a/drivers/gpu/drm/i915/intel_uncore.h
+++ b/drivers/gpu/drm/i915/intel_uncore.h
@@ -216,7 +216,7 @@ void intel_uncore_forcewake_flush(struct intel_uncore *uncore,
 
 /*
  * Like above but the caller must manage the uncore.lock itself.
- * Must be used with I915_READ_FW and friends.
+ * Must be used with intel_uncore_read_fw() and friends.
  */
 void intel_uncore_forcewake_get__locked(struct intel_uncore *uncore,
 					enum forcewake_domains domains);
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [Intel-gfx] [PATCH 3/9] drm/i915/cdclk: prefer intel_de_write() over I915_WRITE()
  2020-11-12 11:44 [Intel-gfx] [PATCH 0/9] drm/i915: nuke remaining legacy reg helpers (I915_READ/WRITE etc.) Jani Nikula
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 1/9] drm/i915: remove last users of I915_READ_FW() Jani Nikula
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 2/9] drm/i915: remove last traces of I915_READ_FW() and I915_WRITE_FW() Jani Nikula
@ 2020-11-12 11:44 ` Jani Nikula
  2020-11-12 20:20   ` Rodrigo Vivi
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 4/9] drm/i915/debugfs: replace I915_READ()+I915_WRITE() with intel_uncore_rmw() Jani Nikula
                   ` (8 subsequent siblings)
  11 siblings, 1 reply; 26+ messages in thread
From: Jani Nikula @ 2020-11-12 11:44 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Let's try to not add new ones while we're phasing out I915_READ() and
I915_WRITE().

Fixes: 27a6bc802bd9 ("drm/i915/dg1: Initialize RAWCLK properly")
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/display/intel_cdclk.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c
index c449d28d0560..088d5908176c 100644
--- a/drivers/gpu/drm/i915/display/intel_cdclk.c
+++ b/drivers/gpu/drm/i915/display/intel_cdclk.c
@@ -2710,8 +2710,8 @@ static int dg1_rawclk(struct drm_i915_private *dev_priv)
 	 * DG1 always uses a 38.4 MHz rawclk.  The bspec tells us
 	 * "Program Numerator=2, Denominator=4, Divider=37 decimal."
 	 */
-	I915_WRITE(PCH_RAWCLK_FREQ,
-		   CNP_RAWCLK_DEN(4) | CNP_RAWCLK_DIV(37) | ICP_RAWCLK_NUM(2));
+	intel_de_write(dev_priv, PCH_RAWCLK_FREQ,
+		       CNP_RAWCLK_DEN(4) | CNP_RAWCLK_DIV(37) | ICP_RAWCLK_NUM(2));
 
 	return 38400;
 }
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [Intel-gfx] [PATCH 4/9] drm/i915/debugfs: replace I915_READ()+I915_WRITE() with intel_uncore_rmw()
  2020-11-12 11:44 [Intel-gfx] [PATCH 0/9] drm/i915: nuke remaining legacy reg helpers (I915_READ/WRITE etc.) Jani Nikula
                   ` (2 preceding siblings ...)
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 3/9] drm/i915/cdclk: prefer intel_de_write() over I915_WRITE() Jani Nikula
@ 2020-11-12 11:44 ` Jani Nikula
  2020-11-12 20:21   ` Rodrigo Vivi
  2020-11-12 20:28   ` Chris Wilson
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 5/9] drm/i915/debugfs: replace I915_READ() with intel_uncore_read() Jani Nikula
                   ` (7 subsequent siblings)
  11 siblings, 2 replies; 26+ messages in thread
From: Jani Nikula @ 2020-11-12 11:44 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Remove the last I915_WRITE() use in i915_debugfs.c.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 7cbca268cb61..151734a1a496 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -1562,13 +1562,9 @@ i915_cache_sharing_set(void *data, u64 val)
 	drm_dbg(&dev_priv->drm,
 		"Manually setting uncore sharing to %llu\n", val);
 	with_intel_runtime_pm(&dev_priv->runtime_pm, wakeref) {
-		u32 snpcr;
-
 		/* Update the cache sharing policy here as well */
-		snpcr = I915_READ(GEN6_MBCUNIT_SNPCR);
-		snpcr &= ~GEN6_MBC_SNPCR_MASK;
-		snpcr |= val << GEN6_MBC_SNPCR_SHIFT;
-		I915_WRITE(GEN6_MBCUNIT_SNPCR, snpcr);
+		intel_uncore_rmw(&dev_priv->uncore, GEN6_MBCUNIT_SNPCR,
+				 GEN6_MBC_SNPCR_MASK, val << GEN6_MBC_SNPCR_SHIFT);
 	}
 
 	return 0;
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [Intel-gfx] [PATCH 5/9] drm/i915/debugfs: replace I915_READ() with intel_uncore_read()
  2020-11-12 11:44 [Intel-gfx] [PATCH 0/9] drm/i915: nuke remaining legacy reg helpers (I915_READ/WRITE etc.) Jani Nikula
                   ` (3 preceding siblings ...)
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 4/9] drm/i915/debugfs: replace I915_READ()+I915_WRITE() with intel_uncore_rmw() Jani Nikula
@ 2020-11-12 11:44 ` Jani Nikula
  2020-11-12 20:23   ` Rodrigo Vivi
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 6/9] drm/i915/suspend: replace I915_READ()/WRITE() with intel_de_read()/write() Jani Nikula
                   ` (6 subsequent siblings)
  11 siblings, 1 reply; 26+ messages in thread
From: Jani Nikula @ 2020-11-12 11:44 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Another straggler with I915_READ() uses gone.

Arguably some of these should use intel_de_read(), however not
all. Prioritize I915_READ() removal in general over migrating to the
pedantically correct replacement right away.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 214 ++++++++++++++--------------
 1 file changed, 107 insertions(+), 107 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 151734a1a496..a8b0a67250b5 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -397,37 +397,37 @@ static void gen8_display_interrupt_info(struct seq_file *m)
 		}
 		seq_printf(m, "Pipe %c IMR:\t%08x\n",
 			   pipe_name(pipe),
-			   I915_READ(GEN8_DE_PIPE_IMR(pipe)));
+			   intel_uncore_read(&dev_priv->uncore, GEN8_DE_PIPE_IMR(pipe)));
 		seq_printf(m, "Pipe %c IIR:\t%08x\n",
 			   pipe_name(pipe),
-			   I915_READ(GEN8_DE_PIPE_IIR(pipe)));
+			   intel_uncore_read(&dev_priv->uncore, GEN8_DE_PIPE_IIR(pipe)));
 		seq_printf(m, "Pipe %c IER:\t%08x\n",
 			   pipe_name(pipe),
-			   I915_READ(GEN8_DE_PIPE_IER(pipe)));
+			   intel_uncore_read(&dev_priv->uncore, GEN8_DE_PIPE_IER(pipe)));
 
 		intel_display_power_put(dev_priv, power_domain, wakeref);
 	}
 
 	seq_printf(m, "Display Engine port interrupt mask:\t%08x\n",
-		   I915_READ(GEN8_DE_PORT_IMR));
+		   intel_uncore_read(&dev_priv->uncore, GEN8_DE_PORT_IMR));
 	seq_printf(m, "Display Engine port interrupt identity:\t%08x\n",
-		   I915_READ(GEN8_DE_PORT_IIR));
+		   intel_uncore_read(&dev_priv->uncore, GEN8_DE_PORT_IIR));
 	seq_printf(m, "Display Engine port interrupt enable:\t%08x\n",
-		   I915_READ(GEN8_DE_PORT_IER));
+		   intel_uncore_read(&dev_priv->uncore, GEN8_DE_PORT_IER));
 
 	seq_printf(m, "Display Engine misc interrupt mask:\t%08x\n",
-		   I915_READ(GEN8_DE_MISC_IMR));
+		   intel_uncore_read(&dev_priv->uncore, GEN8_DE_MISC_IMR));
 	seq_printf(m, "Display Engine misc interrupt identity:\t%08x\n",
-		   I915_READ(GEN8_DE_MISC_IIR));
+		   intel_uncore_read(&dev_priv->uncore, GEN8_DE_MISC_IIR));
 	seq_printf(m, "Display Engine misc interrupt enable:\t%08x\n",
-		   I915_READ(GEN8_DE_MISC_IER));
+		   intel_uncore_read(&dev_priv->uncore, GEN8_DE_MISC_IER));
 
 	seq_printf(m, "PCU interrupt mask:\t%08x\n",
-		   I915_READ(GEN8_PCU_IMR));
+		   intel_uncore_read(&dev_priv->uncore, GEN8_PCU_IMR));
 	seq_printf(m, "PCU interrupt identity:\t%08x\n",
-		   I915_READ(GEN8_PCU_IIR));
+		   intel_uncore_read(&dev_priv->uncore, GEN8_PCU_IIR));
 	seq_printf(m, "PCU interrupt enable:\t%08x\n",
-		   I915_READ(GEN8_PCU_IER));
+		   intel_uncore_read(&dev_priv->uncore, GEN8_PCU_IER));
 }
 
 static int i915_interrupt_info(struct seq_file *m, void *data)
@@ -443,16 +443,16 @@ static int i915_interrupt_info(struct seq_file *m, void *data)
 		intel_wakeref_t pref;
 
 		seq_printf(m, "Master Interrupt Control:\t%08x\n",
-			   I915_READ(GEN8_MASTER_IRQ));
+			   intel_uncore_read(&dev_priv->uncore, GEN8_MASTER_IRQ));
 
 		seq_printf(m, "Display IER:\t%08x\n",
-			   I915_READ(VLV_IER));
+			   intel_uncore_read(&dev_priv->uncore, VLV_IER));
 		seq_printf(m, "Display IIR:\t%08x\n",
-			   I915_READ(VLV_IIR));
+			   intel_uncore_read(&dev_priv->uncore, VLV_IIR));
 		seq_printf(m, "Display IIR_RW:\t%08x\n",
-			   I915_READ(VLV_IIR_RW));
+			   intel_uncore_read(&dev_priv->uncore, VLV_IIR_RW));
 		seq_printf(m, "Display IMR:\t%08x\n",
-			   I915_READ(VLV_IMR));
+			   intel_uncore_read(&dev_priv->uncore, VLV_IMR));
 		for_each_pipe(dev_priv, pipe) {
 			enum intel_display_power_domain power_domain;
 
@@ -467,71 +467,71 @@ static int i915_interrupt_info(struct seq_file *m, void *data)
 
 			seq_printf(m, "Pipe %c stat:\t%08x\n",
 				   pipe_name(pipe),
-				   I915_READ(PIPESTAT(pipe)));
+				   intel_uncore_read(&dev_priv->uncore, PIPESTAT(pipe)));
 
 			intel_display_power_put(dev_priv, power_domain, pref);
 		}
 
 		pref = intel_display_power_get(dev_priv, POWER_DOMAIN_INIT);
 		seq_printf(m, "Port hotplug:\t%08x\n",
-			   I915_READ(PORT_HOTPLUG_EN));
+			   intel_uncore_read(&dev_priv->uncore, PORT_HOTPLUG_EN));
 		seq_printf(m, "DPFLIPSTAT:\t%08x\n",
-			   I915_READ(VLV_DPFLIPSTAT));
+			   intel_uncore_read(&dev_priv->uncore, VLV_DPFLIPSTAT));
 		seq_printf(m, "DPINVGTT:\t%08x\n",
-			   I915_READ(DPINVGTT));
+			   intel_uncore_read(&dev_priv->uncore, DPINVGTT));
 		intel_display_power_put(dev_priv, POWER_DOMAIN_INIT, pref);
 
 		for (i = 0; i < 4; i++) {
 			seq_printf(m, "GT Interrupt IMR %d:\t%08x\n",
-				   i, I915_READ(GEN8_GT_IMR(i)));
+				   i, intel_uncore_read(&dev_priv->uncore, GEN8_GT_IMR(i)));
 			seq_printf(m, "GT Interrupt IIR %d:\t%08x\n",
-				   i, I915_READ(GEN8_GT_IIR(i)));
+				   i, intel_uncore_read(&dev_priv->uncore, GEN8_GT_IIR(i)));
 			seq_printf(m, "GT Interrupt IER %d:\t%08x\n",
-				   i, I915_READ(GEN8_GT_IER(i)));
+				   i, intel_uncore_read(&dev_priv->uncore, GEN8_GT_IER(i)));
 		}
 
 		seq_printf(m, "PCU interrupt mask:\t%08x\n",
-			   I915_READ(GEN8_PCU_IMR));
+			   intel_uncore_read(&dev_priv->uncore, GEN8_PCU_IMR));
 		seq_printf(m, "PCU interrupt identity:\t%08x\n",
-			   I915_READ(GEN8_PCU_IIR));
+			   intel_uncore_read(&dev_priv->uncore, GEN8_PCU_IIR));
 		seq_printf(m, "PCU interrupt enable:\t%08x\n",
-			   I915_READ(GEN8_PCU_IER));
+			   intel_uncore_read(&dev_priv->uncore, GEN8_PCU_IER));
 	} else if (INTEL_GEN(dev_priv) >= 11) {
 		if (HAS_MASTER_UNIT_IRQ(dev_priv))
 			seq_printf(m, "Master Unit Interrupt Control:  %08x\n",
-				   I915_READ(DG1_MSTR_UNIT_INTR));
+				   intel_uncore_read(&dev_priv->uncore, DG1_MSTR_UNIT_INTR));
 
 		seq_printf(m, "Master Interrupt Control:  %08x\n",
-			   I915_READ(GEN11_GFX_MSTR_IRQ));
+			   intel_uncore_read(&dev_priv->uncore, GEN11_GFX_MSTR_IRQ));
 
 		seq_printf(m, "Render/Copy Intr Enable:   %08x\n",
-			   I915_READ(GEN11_RENDER_COPY_INTR_ENABLE));
+			   intel_uncore_read(&dev_priv->uncore, GEN11_RENDER_COPY_INTR_ENABLE));
 		seq_printf(m, "VCS/VECS Intr Enable:      %08x\n",
-			   I915_READ(GEN11_VCS_VECS_INTR_ENABLE));
+			   intel_uncore_read(&dev_priv->uncore, GEN11_VCS_VECS_INTR_ENABLE));
 		seq_printf(m, "GUC/SG Intr Enable:\t   %08x\n",
-			   I915_READ(GEN11_GUC_SG_INTR_ENABLE));
+			   intel_uncore_read(&dev_priv->uncore, GEN11_GUC_SG_INTR_ENABLE));
 		seq_printf(m, "GPM/WGBOXPERF Intr Enable: %08x\n",
-			   I915_READ(GEN11_GPM_WGBOXPERF_INTR_ENABLE));
+			   intel_uncore_read(&dev_priv->uncore, GEN11_GPM_WGBOXPERF_INTR_ENABLE));
 		seq_printf(m, "Crypto Intr Enable:\t   %08x\n",
-			   I915_READ(GEN11_CRYPTO_RSVD_INTR_ENABLE));
+			   intel_uncore_read(&dev_priv->uncore, GEN11_CRYPTO_RSVD_INTR_ENABLE));
 		seq_printf(m, "GUnit/CSME Intr Enable:\t   %08x\n",
-			   I915_READ(GEN11_GUNIT_CSME_INTR_ENABLE));
+			   intel_uncore_read(&dev_priv->uncore, GEN11_GUNIT_CSME_INTR_ENABLE));
 
 		seq_printf(m, "Display Interrupt Control:\t%08x\n",
-			   I915_READ(GEN11_DISPLAY_INT_CTL));
+			   intel_uncore_read(&dev_priv->uncore, GEN11_DISPLAY_INT_CTL));
 
 		gen8_display_interrupt_info(m);
 	} else if (INTEL_GEN(dev_priv) >= 8) {
 		seq_printf(m, "Master Interrupt Control:\t%08x\n",
-			   I915_READ(GEN8_MASTER_IRQ));
+			   intel_uncore_read(&dev_priv->uncore, GEN8_MASTER_IRQ));
 
 		for (i = 0; i < 4; i++) {
 			seq_printf(m, "GT Interrupt IMR %d:\t%08x\n",
-				   i, I915_READ(GEN8_GT_IMR(i)));
+				   i, intel_uncore_read(&dev_priv->uncore, GEN8_GT_IMR(i)));
 			seq_printf(m, "GT Interrupt IIR %d:\t%08x\n",
-				   i, I915_READ(GEN8_GT_IIR(i)));
+				   i, intel_uncore_read(&dev_priv->uncore, GEN8_GT_IIR(i)));
 			seq_printf(m, "GT Interrupt IER %d:\t%08x\n",
-				   i, I915_READ(GEN8_GT_IER(i)));
+				   i, intel_uncore_read(&dev_priv->uncore, GEN8_GT_IER(i)));
 		}
 
 		gen8_display_interrupt_info(m);
@@ -539,13 +539,13 @@ static int i915_interrupt_info(struct seq_file *m, void *data)
 		intel_wakeref_t pref;
 
 		seq_printf(m, "Display IER:\t%08x\n",
-			   I915_READ(VLV_IER));
+			   intel_uncore_read(&dev_priv->uncore, VLV_IER));
 		seq_printf(m, "Display IIR:\t%08x\n",
-			   I915_READ(VLV_IIR));
+			   intel_uncore_read(&dev_priv->uncore, VLV_IIR));
 		seq_printf(m, "Display IIR_RW:\t%08x\n",
-			   I915_READ(VLV_IIR_RW));
+			   intel_uncore_read(&dev_priv->uncore, VLV_IIR_RW));
 		seq_printf(m, "Display IMR:\t%08x\n",
-			   I915_READ(VLV_IMR));
+			   intel_uncore_read(&dev_priv->uncore, VLV_IMR));
 		for_each_pipe(dev_priv, pipe) {
 			enum intel_display_power_domain power_domain;
 
@@ -560,87 +560,87 @@ static int i915_interrupt_info(struct seq_file *m, void *data)
 
 			seq_printf(m, "Pipe %c stat:\t%08x\n",
 				   pipe_name(pipe),
-				   I915_READ(PIPESTAT(pipe)));
+				   intel_uncore_read(&dev_priv->uncore, PIPESTAT(pipe)));
 			intel_display_power_put(dev_priv, power_domain, pref);
 		}
 
 		seq_printf(m, "Master IER:\t%08x\n",
-			   I915_READ(VLV_MASTER_IER));
+			   intel_uncore_read(&dev_priv->uncore, VLV_MASTER_IER));
 
 		seq_printf(m, "Render IER:\t%08x\n",
-			   I915_READ(GTIER));
+			   intel_uncore_read(&dev_priv->uncore, GTIER));
 		seq_printf(m, "Render IIR:\t%08x\n",
-			   I915_READ(GTIIR));
+			   intel_uncore_read(&dev_priv->uncore, GTIIR));
 		seq_printf(m, "Render IMR:\t%08x\n",
-			   I915_READ(GTIMR));
+			   intel_uncore_read(&dev_priv->uncore, GTIMR));
 
 		seq_printf(m, "PM IER:\t\t%08x\n",
-			   I915_READ(GEN6_PMIER));
+			   intel_uncore_read(&dev_priv->uncore, GEN6_PMIER));
 		seq_printf(m, "PM IIR:\t\t%08x\n",
-			   I915_READ(GEN6_PMIIR));
+			   intel_uncore_read(&dev_priv->uncore, GEN6_PMIIR));
 		seq_printf(m, "PM IMR:\t\t%08x\n",
-			   I915_READ(GEN6_PMIMR));
+			   intel_uncore_read(&dev_priv->uncore, GEN6_PMIMR));
 
 		pref = intel_display_power_get(dev_priv, POWER_DOMAIN_INIT);
 		seq_printf(m, "Port hotplug:\t%08x\n",
-			   I915_READ(PORT_HOTPLUG_EN));
+			   intel_uncore_read(&dev_priv->uncore, PORT_HOTPLUG_EN));
 		seq_printf(m, "DPFLIPSTAT:\t%08x\n",
-			   I915_READ(VLV_DPFLIPSTAT));
+			   intel_uncore_read(&dev_priv->uncore, VLV_DPFLIPSTAT));
 		seq_printf(m, "DPINVGTT:\t%08x\n",
-			   I915_READ(DPINVGTT));
+			   intel_uncore_read(&dev_priv->uncore, DPINVGTT));
 		intel_display_power_put(dev_priv, POWER_DOMAIN_INIT, pref);
 
 	} else if (!HAS_PCH_SPLIT(dev_priv)) {
 		seq_printf(m, "Interrupt enable:    %08x\n",
-			   I915_READ(GEN2_IER));
+			   intel_uncore_read(&dev_priv->uncore, GEN2_IER));
 		seq_printf(m, "Interrupt identity:  %08x\n",
-			   I915_READ(GEN2_IIR));
+			   intel_uncore_read(&dev_priv->uncore, GEN2_IIR));
 		seq_printf(m, "Interrupt mask:      %08x\n",
-			   I915_READ(GEN2_IMR));
+			   intel_uncore_read(&dev_priv->uncore, GEN2_IMR));
 		for_each_pipe(dev_priv, pipe)
 			seq_printf(m, "Pipe %c stat:         %08x\n",
 				   pipe_name(pipe),
-				   I915_READ(PIPESTAT(pipe)));
+				   intel_uncore_read(&dev_priv->uncore, PIPESTAT(pipe)));
 	} else {
 		seq_printf(m, "North Display Interrupt enable:		%08x\n",
-			   I915_READ(DEIER));
+			   intel_uncore_read(&dev_priv->uncore, DEIER));
 		seq_printf(m, "North Display Interrupt identity:	%08x\n",
-			   I915_READ(DEIIR));
+			   intel_uncore_read(&dev_priv->uncore, DEIIR));
 		seq_printf(m, "North Display Interrupt mask:		%08x\n",
-			   I915_READ(DEIMR));
+			   intel_uncore_read(&dev_priv->uncore, DEIMR));
 		seq_printf(m, "South Display Interrupt enable:		%08x\n",
-			   I915_READ(SDEIER));
+			   intel_uncore_read(&dev_priv->uncore, SDEIER));
 		seq_printf(m, "South Display Interrupt identity:	%08x\n",
-			   I915_READ(SDEIIR));
+			   intel_uncore_read(&dev_priv->uncore, SDEIIR));
 		seq_printf(m, "South Display Interrupt mask:		%08x\n",
-			   I915_READ(SDEIMR));
+			   intel_uncore_read(&dev_priv->uncore, SDEIMR));
 		seq_printf(m, "Graphics Interrupt enable:		%08x\n",
-			   I915_READ(GTIER));
+			   intel_uncore_read(&dev_priv->uncore, GTIER));
 		seq_printf(m, "Graphics Interrupt identity:		%08x\n",
-			   I915_READ(GTIIR));
+			   intel_uncore_read(&dev_priv->uncore, GTIIR));
 		seq_printf(m, "Graphics Interrupt mask:		%08x\n",
-			   I915_READ(GTIMR));
+			   intel_uncore_read(&dev_priv->uncore, GTIMR));
 	}
 
 	if (INTEL_GEN(dev_priv) >= 11) {
 		seq_printf(m, "RCS Intr Mask:\t %08x\n",
-			   I915_READ(GEN11_RCS0_RSVD_INTR_MASK));
+			   intel_uncore_read(&dev_priv->uncore, GEN11_RCS0_RSVD_INTR_MASK));
 		seq_printf(m, "BCS Intr Mask:\t %08x\n",
-			   I915_READ(GEN11_BCS_RSVD_INTR_MASK));
+			   intel_uncore_read(&dev_priv->uncore, GEN11_BCS_RSVD_INTR_MASK));
 		seq_printf(m, "VCS0/VCS1 Intr Mask:\t %08x\n",
-			   I915_READ(GEN11_VCS0_VCS1_INTR_MASK));
+			   intel_uncore_read(&dev_priv->uncore, GEN11_VCS0_VCS1_INTR_MASK));
 		seq_printf(m, "VCS2/VCS3 Intr Mask:\t %08x\n",
-			   I915_READ(GEN11_VCS2_VCS3_INTR_MASK));
+			   intel_uncore_read(&dev_priv->uncore, GEN11_VCS2_VCS3_INTR_MASK));
 		seq_printf(m, "VECS0/VECS1 Intr Mask:\t %08x\n",
-			   I915_READ(GEN11_VECS0_VECS1_INTR_MASK));
+			   intel_uncore_read(&dev_priv->uncore, GEN11_VECS0_VECS1_INTR_MASK));
 		seq_printf(m, "GUC/SG Intr Mask:\t %08x\n",
-			   I915_READ(GEN11_GUC_SG_INTR_MASK));
+			   intel_uncore_read(&dev_priv->uncore, GEN11_GUC_SG_INTR_MASK));
 		seq_printf(m, "GPM/WGBOXPERF Intr Mask: %08x\n",
-			   I915_READ(GEN11_GPM_WGBOXPERF_INTR_MASK));
+			   intel_uncore_read(&dev_priv->uncore, GEN11_GPM_WGBOXPERF_INTR_MASK));
 		seq_printf(m, "Crypto Intr Mask:\t %08x\n",
-			   I915_READ(GEN11_CRYPTO_RSVD_INTR_MASK));
+			   intel_uncore_read(&dev_priv->uncore, GEN11_CRYPTO_RSVD_INTR_MASK));
 		seq_printf(m, "Gunit/CSME Intr Mask:\t %08x\n",
-			   I915_READ(GEN11_GUNIT_CSME_INTR_MASK));
+			   intel_uncore_read(&dev_priv->uncore, GEN11_GUNIT_CSME_INTR_MASK));
 
 	} else if (INTEL_GEN(dev_priv) >= 6) {
 		for_each_uabi_engine(engine, dev_priv) {
@@ -802,7 +802,7 @@ static int i915_frequency_info(struct seq_file *m, void *unused)
 	} else if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
 		u32 rpmodectl, freq_sts;
 
-		rpmodectl = I915_READ(GEN6_RP_CONTROL);
+		rpmodectl = intel_uncore_read(&dev_priv->uncore, GEN6_RP_CONTROL);
 		seq_printf(m, "Video Turbo Mode: %s\n",
 			   yesno(rpmodectl & GEN6_RP_MEDIA_TURBO));
 		seq_printf(m, "HW control enabled: %s\n",
@@ -847,19 +847,19 @@ static int i915_frequency_info(struct seq_file *m, void *unused)
 		u32 pm_ier, pm_imr, pm_isr, pm_iir, pm_mask;
 		int max_freq;
 
-		rp_state_limits = I915_READ(GEN6_RP_STATE_LIMITS);
+		rp_state_limits = intel_uncore_read(&dev_priv->uncore, GEN6_RP_STATE_LIMITS);
 		if (IS_GEN9_LP(dev_priv)) {
-			rp_state_cap = I915_READ(BXT_RP_STATE_CAP);
-			gt_perf_status = I915_READ(BXT_GT_PERF_STATUS);
+			rp_state_cap = intel_uncore_read(&dev_priv->uncore, BXT_RP_STATE_CAP);
+			gt_perf_status = intel_uncore_read(&dev_priv->uncore, BXT_GT_PERF_STATUS);
 		} else {
-			rp_state_cap = I915_READ(GEN6_RP_STATE_CAP);
-			gt_perf_status = I915_READ(GEN6_GT_PERF_STATUS);
+			rp_state_cap = intel_uncore_read(&dev_priv->uncore, GEN6_RP_STATE_CAP);
+			gt_perf_status = intel_uncore_read(&dev_priv->uncore, GEN6_GT_PERF_STATUS);
 		}
 
 		/* RPSTAT1 is in the GT power well */
 		intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
 
-		reqf = I915_READ(GEN6_RPNSWREQ);
+		reqf = intel_uncore_read(&dev_priv->uncore, GEN6_RPNSWREQ);
 		if (INTEL_GEN(dev_priv) >= 9)
 			reqf >>= 23;
 		else {
@@ -871,24 +871,24 @@ static int i915_frequency_info(struct seq_file *m, void *unused)
 		}
 		reqf = intel_gpu_freq(rps, reqf);
 
-		rpmodectl = I915_READ(GEN6_RP_CONTROL);
-		rpinclimit = I915_READ(GEN6_RP_UP_THRESHOLD);
-		rpdeclimit = I915_READ(GEN6_RP_DOWN_THRESHOLD);
-
-		rpstat = I915_READ(GEN6_RPSTAT1);
-		rpupei = I915_READ(GEN6_RP_CUR_UP_EI) & GEN6_CURICONT_MASK;
-		rpcurup = I915_READ(GEN6_RP_CUR_UP) & GEN6_CURBSYTAVG_MASK;
-		rpprevup = I915_READ(GEN6_RP_PREV_UP) & GEN6_CURBSYTAVG_MASK;
-		rpdownei = I915_READ(GEN6_RP_CUR_DOWN_EI) & GEN6_CURIAVG_MASK;
-		rpcurdown = I915_READ(GEN6_RP_CUR_DOWN) & GEN6_CURBSYTAVG_MASK;
-		rpprevdown = I915_READ(GEN6_RP_PREV_DOWN) & GEN6_CURBSYTAVG_MASK;
+		rpmodectl = intel_uncore_read(&dev_priv->uncore, GEN6_RP_CONTROL);
+		rpinclimit = intel_uncore_read(&dev_priv->uncore, GEN6_RP_UP_THRESHOLD);
+		rpdeclimit = intel_uncore_read(&dev_priv->uncore, GEN6_RP_DOWN_THRESHOLD);
+
+		rpstat = intel_uncore_read(&dev_priv->uncore, GEN6_RPSTAT1);
+		rpupei = intel_uncore_read(&dev_priv->uncore, GEN6_RP_CUR_UP_EI) & GEN6_CURICONT_MASK;
+		rpcurup = intel_uncore_read(&dev_priv->uncore, GEN6_RP_CUR_UP) & GEN6_CURBSYTAVG_MASK;
+		rpprevup = intel_uncore_read(&dev_priv->uncore, GEN6_RP_PREV_UP) & GEN6_CURBSYTAVG_MASK;
+		rpdownei = intel_uncore_read(&dev_priv->uncore, GEN6_RP_CUR_DOWN_EI) & GEN6_CURIAVG_MASK;
+		rpcurdown = intel_uncore_read(&dev_priv->uncore, GEN6_RP_CUR_DOWN) & GEN6_CURBSYTAVG_MASK;
+		rpprevdown = intel_uncore_read(&dev_priv->uncore, GEN6_RP_PREV_DOWN) & GEN6_CURBSYTAVG_MASK;
 		cagf = intel_rps_read_actual_frequency(rps);
 
 		intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
 
 		if (INTEL_GEN(dev_priv) >= 11) {
-			pm_ier = I915_READ(GEN11_GPM_WGBOXPERF_INTR_ENABLE);
-			pm_imr = I915_READ(GEN11_GPM_WGBOXPERF_INTR_MASK);
+			pm_ier = intel_uncore_read(&dev_priv->uncore, GEN11_GPM_WGBOXPERF_INTR_ENABLE);
+			pm_imr = intel_uncore_read(&dev_priv->uncore, GEN11_GPM_WGBOXPERF_INTR_MASK);
 			/*
 			 * The equivalent to the PM ISR & IIR cannot be read
 			 * without affecting the current state of the system
@@ -896,17 +896,17 @@ static int i915_frequency_info(struct seq_file *m, void *unused)
 			pm_isr = 0;
 			pm_iir = 0;
 		} else if (INTEL_GEN(dev_priv) >= 8) {
-			pm_ier = I915_READ(GEN8_GT_IER(2));
-			pm_imr = I915_READ(GEN8_GT_IMR(2));
-			pm_isr = I915_READ(GEN8_GT_ISR(2));
-			pm_iir = I915_READ(GEN8_GT_IIR(2));
+			pm_ier = intel_uncore_read(&dev_priv->uncore, GEN8_GT_IER(2));
+			pm_imr = intel_uncore_read(&dev_priv->uncore, GEN8_GT_IMR(2));
+			pm_isr = intel_uncore_read(&dev_priv->uncore, GEN8_GT_ISR(2));
+			pm_iir = intel_uncore_read(&dev_priv->uncore, GEN8_GT_IIR(2));
 		} else {
-			pm_ier = I915_READ(GEN6_PMIER);
-			pm_imr = I915_READ(GEN6_PMIMR);
-			pm_isr = I915_READ(GEN6_PMISR);
-			pm_iir = I915_READ(GEN6_PMIIR);
+			pm_ier = intel_uncore_read(&dev_priv->uncore, GEN6_PMIER);
+			pm_imr = intel_uncore_read(&dev_priv->uncore, GEN6_PMIMR);
+			pm_isr = intel_uncore_read(&dev_priv->uncore, GEN6_PMISR);
+			pm_iir = intel_uncore_read(&dev_priv->uncore, GEN6_PMIIR);
 		}
-		pm_mask = I915_READ(GEN6_PMINTRMSK);
+		pm_mask = intel_uncore_read(&dev_priv->uncore, GEN6_PMINTRMSK);
 
 		seq_printf(m, "Video Turbo Mode: %s\n",
 			   yesno(rpmodectl & GEN6_RP_MEDIA_TURBO));
@@ -1540,7 +1540,7 @@ i915_cache_sharing_get(void *data, u64 *val)
 		return -ENODEV;
 
 	with_intel_runtime_pm(&dev_priv->runtime_pm, wakeref)
-		snpcr = I915_READ(GEN6_MBCUNIT_SNPCR);
+		snpcr = intel_uncore_read(&dev_priv->uncore, GEN6_MBCUNIT_SNPCR);
 
 	*val = (snpcr & GEN6_MBC_SNPCR_MASK) >> GEN6_MBC_SNPCR_SHIFT;
 
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [Intel-gfx] [PATCH 6/9] drm/i915/suspend: replace I915_READ()/WRITE() with intel_de_read()/write()
  2020-11-12 11:44 [Intel-gfx] [PATCH 0/9] drm/i915: nuke remaining legacy reg helpers (I915_READ/WRITE etc.) Jani Nikula
                   ` (4 preceding siblings ...)
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 5/9] drm/i915/debugfs: replace I915_READ() with intel_uncore_read() Jani Nikula
@ 2020-11-12 11:44 ` Jani Nikula
  2020-11-12 20:27   ` Rodrigo Vivi
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 7/9] drm/i915/pm: replace I915_READ()/WRITE() with intel_uncore_read()/write() Jani Nikula
                   ` (5 subsequent siblings)
  11 siblings, 1 reply; 26+ messages in thread
From: Jani Nikula @ 2020-11-12 11:44 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Another straggler with I915_READ() and I915_WRITE() uses gone.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_suspend.c | 33 +++++++++++++++--------------
 1 file changed, 17 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c
index db2111fc809e..63212df33c9e 100644
--- a/drivers/gpu/drm/i915/i915_suspend.c
+++ b/drivers/gpu/drm/i915/i915_suspend.c
@@ -24,6 +24,7 @@
  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
 
+#include "display/intel_de.h"
 #include "display/intel_fbc.h"
 #include "display/intel_gmbus.h"
 #include "display/intel_vga.h"
@@ -39,21 +40,21 @@ static void intel_save_swf(struct drm_i915_private *dev_priv)
 	/* Scratch space */
 	if (IS_GEN(dev_priv, 2) && IS_MOBILE(dev_priv)) {
 		for (i = 0; i < 7; i++) {
-			dev_priv->regfile.saveSWF0[i] = I915_READ(SWF0(i));
-			dev_priv->regfile.saveSWF1[i] = I915_READ(SWF1(i));
+			dev_priv->regfile.saveSWF0[i] = intel_de_read(dev_priv, SWF0(i));
+			dev_priv->regfile.saveSWF1[i] = intel_de_read(dev_priv, SWF1(i));
 		}
 		for (i = 0; i < 3; i++)
-			dev_priv->regfile.saveSWF3[i] = I915_READ(SWF3(i));
+			dev_priv->regfile.saveSWF3[i] = intel_de_read(dev_priv, SWF3(i));
 	} else if (IS_GEN(dev_priv, 2)) {
 		for (i = 0; i < 7; i++)
-			dev_priv->regfile.saveSWF1[i] = I915_READ(SWF1(i));
+			dev_priv->regfile.saveSWF1[i] = intel_de_read(dev_priv, SWF1(i));
 	} else if (HAS_GMCH(dev_priv)) {
 		for (i = 0; i < 16; i++) {
-			dev_priv->regfile.saveSWF0[i] = I915_READ(SWF0(i));
-			dev_priv->regfile.saveSWF1[i] = I915_READ(SWF1(i));
+			dev_priv->regfile.saveSWF0[i] = intel_de_read(dev_priv, SWF0(i));
+			dev_priv->regfile.saveSWF1[i] = intel_de_read(dev_priv, SWF1(i));
 		}
 		for (i = 0; i < 3; i++)
-			dev_priv->regfile.saveSWF3[i] = I915_READ(SWF3(i));
+			dev_priv->regfile.saveSWF3[i] = intel_de_read(dev_priv, SWF3(i));
 	}
 }
 
@@ -64,21 +65,21 @@ static void intel_restore_swf(struct drm_i915_private *dev_priv)
 	/* Scratch space */
 	if (IS_GEN(dev_priv, 2) && IS_MOBILE(dev_priv)) {
 		for (i = 0; i < 7; i++) {
-			I915_WRITE(SWF0(i), dev_priv->regfile.saveSWF0[i]);
-			I915_WRITE(SWF1(i), dev_priv->regfile.saveSWF1[i]);
+			intel_de_write(dev_priv, SWF0(i), dev_priv->regfile.saveSWF0[i]);
+			intel_de_write(dev_priv, SWF1(i), dev_priv->regfile.saveSWF1[i]);
 		}
 		for (i = 0; i < 3; i++)
-			I915_WRITE(SWF3(i), dev_priv->regfile.saveSWF3[i]);
+			intel_de_write(dev_priv, SWF3(i), dev_priv->regfile.saveSWF3[i]);
 	} else if (IS_GEN(dev_priv, 2)) {
 		for (i = 0; i < 7; i++)
-			I915_WRITE(SWF1(i), dev_priv->regfile.saveSWF1[i]);
+			intel_de_write(dev_priv, SWF1(i), dev_priv->regfile.saveSWF1[i]);
 	} else if (HAS_GMCH(dev_priv)) {
 		for (i = 0; i < 16; i++) {
-			I915_WRITE(SWF0(i), dev_priv->regfile.saveSWF0[i]);
-			I915_WRITE(SWF1(i), dev_priv->regfile.saveSWF1[i]);
+			intel_de_write(dev_priv, SWF0(i), dev_priv->regfile.saveSWF0[i]);
+			intel_de_write(dev_priv, SWF1(i), dev_priv->regfile.saveSWF1[i]);
 		}
 		for (i = 0; i < 3; i++)
-			I915_WRITE(SWF3(i), dev_priv->regfile.saveSWF3[i]);
+			intel_de_write(dev_priv, SWF3(i), dev_priv->regfile.saveSWF3[i]);
 	}
 }
 
@@ -88,7 +89,7 @@ void i915_save_display(struct drm_i915_private *dev_priv)
 
 	/* Display arbitration control */
 	if (INTEL_GEN(dev_priv) <= 4)
-		dev_priv->regfile.saveDSPARB = I915_READ(DSPARB);
+		dev_priv->regfile.saveDSPARB = intel_de_read(dev_priv, DSPARB);
 
 	if (IS_GEN(dev_priv, 4))
 		pci_read_config_word(pdev, GCDGMBUS,
@@ -109,7 +110,7 @@ void i915_restore_display(struct drm_i915_private *dev_priv)
 
 	/* Display arbitration */
 	if (INTEL_GEN(dev_priv) <= 4)
-		I915_WRITE(DSPARB, dev_priv->regfile.saveDSPARB);
+		intel_de_write(dev_priv, DSPARB, dev_priv->regfile.saveDSPARB);
 
 	/* only restore FBC info on the platform that supports FBC*/
 	intel_fbc_global_disable(dev_priv);
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [Intel-gfx] [PATCH 7/9] drm/i915/pm: replace I915_READ()/WRITE() with intel_uncore_read()/write()
  2020-11-12 11:44 [Intel-gfx] [PATCH 0/9] drm/i915: nuke remaining legacy reg helpers (I915_READ/WRITE etc.) Jani Nikula
                   ` (5 preceding siblings ...)
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 6/9] drm/i915/suspend: replace I915_READ()/WRITE() with intel_de_read()/write() Jani Nikula
@ 2020-11-12 11:44 ` Jani Nikula
  2020-11-12 21:00   ` Rodrigo Vivi
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 8/9] drm/i915/irq: " Jani Nikula
                   ` (4 subsequent siblings)
  11 siblings, 1 reply; 26+ messages in thread
From: Jani Nikula @ 2020-11-12 11:44 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Arguably some of these should use intel_de_read() or intel_de_write(),
however not all. Prioritize I915_READ() and I915_WRITE() removal in
general over migrating to the pedantically correct replacements right
away.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/intel_pm.c | 552 ++++++++++++++++----------------
 1 file changed, 276 insertions(+), 276 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index bbec56f97832..c0ed82665706 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -81,24 +81,24 @@ static void gen9_init_clock_gating(struct drm_i915_private *dev_priv)
 		 * Must match Sampler, Pixel Back End, and Media. See
 		 * WaCompressedResourceSamplerPbeMediaNewHashMode.
 		 */
-		I915_WRITE(CHICKEN_PAR1_1,
-			   I915_READ(CHICKEN_PAR1_1) |
+		intel_uncore_write(&dev_priv->uncore, CHICKEN_PAR1_1,
+			   intel_uncore_read(&dev_priv->uncore, CHICKEN_PAR1_1) |
 			   SKL_DE_COMPRESSED_HASH_MODE);
 	}
 
 	/* See Bspec note for PSR2_CTL bit 31, Wa#828:skl,bxt,kbl,cfl */
-	I915_WRITE(CHICKEN_PAR1_1,
-		   I915_READ(CHICKEN_PAR1_1) | SKL_EDP_PSR_FIX_RDWRAP);
+	intel_uncore_write(&dev_priv->uncore, CHICKEN_PAR1_1,
+		   intel_uncore_read(&dev_priv->uncore, CHICKEN_PAR1_1) | SKL_EDP_PSR_FIX_RDWRAP);
 
 	/* WaEnableChickenDCPR:skl,bxt,kbl,glk,cfl */
-	I915_WRITE(GEN8_CHICKEN_DCPR_1,
-		   I915_READ(GEN8_CHICKEN_DCPR_1) | MASK_WAKEMEM);
+	intel_uncore_write(&dev_priv->uncore, GEN8_CHICKEN_DCPR_1,
+		   intel_uncore_read(&dev_priv->uncore, GEN8_CHICKEN_DCPR_1) | MASK_WAKEMEM);
 
 	/*
 	 * WaFbcWakeMemOn:skl,bxt,kbl,glk,cfl
 	 * Display WA #0859: skl,bxt,kbl,glk,cfl
 	 */
-	I915_WRITE(DISP_ARB_CTL, I915_READ(DISP_ARB_CTL) |
+	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
 		   DISP_FBC_MEMORY_WAKE);
 }
 
@@ -107,21 +107,21 @@ static void bxt_init_clock_gating(struct drm_i915_private *dev_priv)
 	gen9_init_clock_gating(dev_priv);
 
 	/* WaDisableSDEUnitClockGating:bxt */
-	I915_WRITE(GEN8_UCGCTL6, I915_READ(GEN8_UCGCTL6) |
+	intel_uncore_write(&dev_priv->uncore, GEN8_UCGCTL6, intel_uncore_read(&dev_priv->uncore, GEN8_UCGCTL6) |
 		   GEN8_SDEUNIT_CLOCK_GATE_DISABLE);
 
 	/*
 	 * FIXME:
 	 * GEN8_HDCUNIT_CLOCK_GATE_DISABLE_HDCREQ applies on 3x6 GT SKUs only.
 	 */
-	I915_WRITE(GEN8_UCGCTL6, I915_READ(GEN8_UCGCTL6) |
+	intel_uncore_write(&dev_priv->uncore, GEN8_UCGCTL6, intel_uncore_read(&dev_priv->uncore, GEN8_UCGCTL6) |
 		   GEN8_HDCUNIT_CLOCK_GATE_DISABLE_HDCREQ);
 
 	/*
 	 * Wa: Backlight PWM may stop in the asserted state, causing backlight
 	 * to stay fully on.
 	 */
-	I915_WRITE(GEN9_CLKGATE_DIS_0, I915_READ(GEN9_CLKGATE_DIS_0) |
+	intel_uncore_write(&dev_priv->uncore, GEN9_CLKGATE_DIS_0, intel_uncore_read(&dev_priv->uncore, GEN9_CLKGATE_DIS_0) |
 		   PWM1_GATING_DIS | PWM2_GATING_DIS);
 
 	/*
@@ -130,20 +130,20 @@ static void bxt_init_clock_gating(struct drm_i915_private *dev_priv)
 	 * is off and a MMIO access is attempted by any privilege
 	 * application, using batch buffers or any other means.
 	 */
-	I915_WRITE(RM_TIMEOUT, MMIO_TIMEOUT_US(950));
+	intel_uncore_write(&dev_priv->uncore, RM_TIMEOUT, MMIO_TIMEOUT_US(950));
 
 	/*
 	 * WaFbcTurnOffFbcWatermark:bxt
 	 * Display WA #0562: bxt
 	 */
-	I915_WRITE(DISP_ARB_CTL, I915_READ(DISP_ARB_CTL) |
+	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
 		   DISP_FBC_WM_DIS);
 
 	/*
 	 * WaFbcHighMemBwCorruptionAvoidance:bxt
 	 * Display WA #0883: bxt
 	 */
-	I915_WRITE(ILK_DPFC_CHICKEN, I915_READ(ILK_DPFC_CHICKEN) |
+	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN, intel_uncore_read(&dev_priv->uncore, ILK_DPFC_CHICKEN) |
 		   ILK_DPFC_DISABLE_DUMMY0);
 }
 
@@ -156,7 +156,7 @@ static void glk_init_clock_gating(struct drm_i915_private *dev_priv)
 	 * Backlight PWM may stop in the asserted state, causing backlight
 	 * to stay fully on.
 	 */
-	I915_WRITE(GEN9_CLKGATE_DIS_0, I915_READ(GEN9_CLKGATE_DIS_0) |
+	intel_uncore_write(&dev_priv->uncore, GEN9_CLKGATE_DIS_0, intel_uncore_read(&dev_priv->uncore, GEN9_CLKGATE_DIS_0) |
 		   PWM1_GATING_DIS | PWM2_GATING_DIS);
 }
 
@@ -164,7 +164,7 @@ static void pnv_get_mem_freq(struct drm_i915_private *dev_priv)
 {
 	u32 tmp;
 
-	tmp = I915_READ(CLKCFG);
+	tmp = intel_uncore_read(&dev_priv->uncore, CLKCFG);
 
 	switch (tmp & CLKCFG_FSB_MASK) {
 	case CLKCFG_FSB_533:
@@ -194,7 +194,7 @@ static void pnv_get_mem_freq(struct drm_i915_private *dev_priv)
 	}
 
 	/* detect pineview DDR3 setting */
-	tmp = I915_READ(CSHRDDR3CTL);
+	tmp = intel_uncore_read(&dev_priv->uncore, CSHRDDR3CTL);
 	dev_priv->is_ddr3 = (tmp & CSHRDDR3CTL_DDR3) ? 1 : 0;
 }
 
@@ -365,39 +365,39 @@ static bool _intel_set_memory_cxsr(struct drm_i915_private *dev_priv, bool enabl
 	u32 val;
 
 	if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
-		was_enabled = I915_READ(FW_BLC_SELF_VLV) & FW_CSPWRDWNEN;
-		I915_WRITE(FW_BLC_SELF_VLV, enable ? FW_CSPWRDWNEN : 0);
-		POSTING_READ(FW_BLC_SELF_VLV);
+		was_enabled = intel_uncore_read(&dev_priv->uncore, FW_BLC_SELF_VLV) & FW_CSPWRDWNEN;
+		intel_uncore_write(&dev_priv->uncore, FW_BLC_SELF_VLV, enable ? FW_CSPWRDWNEN : 0);
+		intel_uncore_posting_read(&dev_priv->uncore, FW_BLC_SELF_VLV);
 	} else if (IS_G4X(dev_priv) || IS_I965GM(dev_priv)) {
-		was_enabled = I915_READ(FW_BLC_SELF) & FW_BLC_SELF_EN;
-		I915_WRITE(FW_BLC_SELF, enable ? FW_BLC_SELF_EN : 0);
-		POSTING_READ(FW_BLC_SELF);
+		was_enabled = intel_uncore_read(&dev_priv->uncore, FW_BLC_SELF) & FW_BLC_SELF_EN;
+		intel_uncore_write(&dev_priv->uncore, FW_BLC_SELF, enable ? FW_BLC_SELF_EN : 0);
+		intel_uncore_posting_read(&dev_priv->uncore, FW_BLC_SELF);
 	} else if (IS_PINEVIEW(dev_priv)) {
-		val = I915_READ(DSPFW3);
+		val = intel_uncore_read(&dev_priv->uncore, DSPFW3);
 		was_enabled = val & PINEVIEW_SELF_REFRESH_EN;
 		if (enable)
 			val |= PINEVIEW_SELF_REFRESH_EN;
 		else
 			val &= ~PINEVIEW_SELF_REFRESH_EN;
-		I915_WRITE(DSPFW3, val);
-		POSTING_READ(DSPFW3);
+		intel_uncore_write(&dev_priv->uncore, DSPFW3, val);
+		intel_uncore_posting_read(&dev_priv->uncore, DSPFW3);
 	} else if (IS_I945G(dev_priv) || IS_I945GM(dev_priv)) {
-		was_enabled = I915_READ(FW_BLC_SELF) & FW_BLC_SELF_EN;
+		was_enabled = intel_uncore_read(&dev_priv->uncore, FW_BLC_SELF) & FW_BLC_SELF_EN;
 		val = enable ? _MASKED_BIT_ENABLE(FW_BLC_SELF_EN) :
 			       _MASKED_BIT_DISABLE(FW_BLC_SELF_EN);
-		I915_WRITE(FW_BLC_SELF, val);
-		POSTING_READ(FW_BLC_SELF);
+		intel_uncore_write(&dev_priv->uncore, FW_BLC_SELF, val);
+		intel_uncore_posting_read(&dev_priv->uncore, FW_BLC_SELF);
 	} else if (IS_I915GM(dev_priv)) {
 		/*
 		 * FIXME can't find a bit like this for 915G, and
 		 * and yet it does have the related watermark in
 		 * FW_BLC_SELF. What's going on?
 		 */
-		was_enabled = I915_READ(INSTPM) & INSTPM_SELF_EN;
+		was_enabled = intel_uncore_read(&dev_priv->uncore, INSTPM) & INSTPM_SELF_EN;
 		val = enable ? _MASKED_BIT_ENABLE(INSTPM_SELF_EN) :
 			       _MASKED_BIT_DISABLE(INSTPM_SELF_EN);
-		I915_WRITE(INSTPM, val);
-		POSTING_READ(INSTPM);
+		intel_uncore_write(&dev_priv->uncore, INSTPM, val);
+		intel_uncore_posting_read(&dev_priv->uncore, INSTPM);
 	} else {
 		return false;
 	}
@@ -493,20 +493,20 @@ static void vlv_get_fifo_size(struct intel_crtc_state *crtc_state)
 
 	switch (pipe) {
 	case PIPE_A:
-		dsparb = I915_READ(DSPARB);
-		dsparb2 = I915_READ(DSPARB2);
+		dsparb = intel_uncore_read(&dev_priv->uncore, DSPARB);
+		dsparb2 = intel_uncore_read(&dev_priv->uncore, DSPARB2);
 		sprite0_start = VLV_FIFO_START(dsparb, dsparb2, 0, 0);
 		sprite1_start = VLV_FIFO_START(dsparb, dsparb2, 8, 4);
 		break;
 	case PIPE_B:
-		dsparb = I915_READ(DSPARB);
-		dsparb2 = I915_READ(DSPARB2);
+		dsparb = intel_uncore_read(&dev_priv->uncore, DSPARB);
+		dsparb2 = intel_uncore_read(&dev_priv->uncore, DSPARB2);
 		sprite0_start = VLV_FIFO_START(dsparb, dsparb2, 16, 8);
 		sprite1_start = VLV_FIFO_START(dsparb, dsparb2, 24, 12);
 		break;
 	case PIPE_C:
-		dsparb2 = I915_READ(DSPARB2);
-		dsparb3 = I915_READ(DSPARB3);
+		dsparb2 = intel_uncore_read(&dev_priv->uncore, DSPARB2);
+		dsparb3 = intel_uncore_read(&dev_priv->uncore, DSPARB3);
 		sprite0_start = VLV_FIFO_START(dsparb3, dsparb2, 0, 16);
 		sprite1_start = VLV_FIFO_START(dsparb3, dsparb2, 8, 20);
 		break;
@@ -524,7 +524,7 @@ static void vlv_get_fifo_size(struct intel_crtc_state *crtc_state)
 static int i9xx_get_fifo_size(struct drm_i915_private *dev_priv,
 			      enum i9xx_plane_id i9xx_plane)
 {
-	u32 dsparb = I915_READ(DSPARB);
+	u32 dsparb = intel_uncore_read(&dev_priv->uncore, DSPARB);
 	int size;
 
 	size = dsparb & 0x7f;
@@ -540,7 +540,7 @@ static int i9xx_get_fifo_size(struct drm_i915_private *dev_priv,
 static int i830_get_fifo_size(struct drm_i915_private *dev_priv,
 			      enum i9xx_plane_id i9xx_plane)
 {
-	u32 dsparb = I915_READ(DSPARB);
+	u32 dsparb = intel_uncore_read(&dev_priv->uncore, DSPARB);
 	int size;
 
 	size = dsparb & 0x1ff;
@@ -557,7 +557,7 @@ static int i830_get_fifo_size(struct drm_i915_private *dev_priv,
 static int i845_get_fifo_size(struct drm_i915_private *dev_priv,
 			      enum i9xx_plane_id i9xx_plane)
 {
-	u32 dsparb = I915_READ(DSPARB);
+	u32 dsparb = intel_uncore_read(&dev_priv->uncore, DSPARB);
 	int size;
 
 	size = dsparb & 0x7f;
@@ -910,38 +910,38 @@ static void pnv_update_wm(struct intel_crtc *unused_crtc)
 		wm = intel_calculate_wm(clock, &pnv_display_wm,
 					pnv_display_wm.fifo_size,
 					cpp, latency->display_sr);
-		reg = I915_READ(DSPFW1);
+		reg = intel_uncore_read(&dev_priv->uncore, DSPFW1);
 		reg &= ~DSPFW_SR_MASK;
 		reg |= FW_WM(wm, SR);
-		I915_WRITE(DSPFW1, reg);
+		intel_uncore_write(&dev_priv->uncore, DSPFW1, reg);
 		drm_dbg_kms(&dev_priv->drm, "DSPFW1 register is %x\n", reg);
 
 		/* cursor SR */
 		wm = intel_calculate_wm(clock, &pnv_cursor_wm,
 					pnv_display_wm.fifo_size,
 					4, latency->cursor_sr);
-		reg = I915_READ(DSPFW3);
+		reg = intel_uncore_read(&dev_priv->uncore, DSPFW3);
 		reg &= ~DSPFW_CURSOR_SR_MASK;
 		reg |= FW_WM(wm, CURSOR_SR);
-		I915_WRITE(DSPFW3, reg);
+		intel_uncore_write(&dev_priv->uncore, DSPFW3, reg);
 
 		/* Display HPLL off SR */
 		wm = intel_calculate_wm(clock, &pnv_display_hplloff_wm,
 					pnv_display_hplloff_wm.fifo_size,
 					cpp, latency->display_hpll_disable);
-		reg = I915_READ(DSPFW3);
+		reg = intel_uncore_read(&dev_priv->uncore, DSPFW3);
 		reg &= ~DSPFW_HPLL_SR_MASK;
 		reg |= FW_WM(wm, HPLL_SR);
-		I915_WRITE(DSPFW3, reg);
+		intel_uncore_write(&dev_priv->uncore, DSPFW3, reg);
 
 		/* cursor HPLL off SR */
 		wm = intel_calculate_wm(clock, &pnv_cursor_hplloff_wm,
 					pnv_display_hplloff_wm.fifo_size,
 					4, latency->cursor_hpll_disable);
-		reg = I915_READ(DSPFW3);
+		reg = intel_uncore_read(&dev_priv->uncore, DSPFW3);
 		reg &= ~DSPFW_HPLL_CURSOR_MASK;
 		reg |= FW_WM(wm, HPLL_CURSOR);
-		I915_WRITE(DSPFW3, reg);
+		intel_uncore_write(&dev_priv->uncore, DSPFW3, reg);
 		drm_dbg_kms(&dev_priv->drm, "DSPFW3 register is %x\n", reg);
 
 		intel_set_memory_cxsr(dev_priv, true);
@@ -975,25 +975,25 @@ static void g4x_write_wm_values(struct drm_i915_private *dev_priv,
 	for_each_pipe(dev_priv, pipe)
 		trace_g4x_wm(intel_get_crtc_for_pipe(dev_priv, pipe), wm);
 
-	I915_WRITE(DSPFW1,
+	intel_uncore_write(&dev_priv->uncore, DSPFW1,
 		   FW_WM(wm->sr.plane, SR) |
 		   FW_WM(wm->pipe[PIPE_B].plane[PLANE_CURSOR], CURSORB) |
 		   FW_WM(wm->pipe[PIPE_B].plane[PLANE_PRIMARY], PLANEB) |
 		   FW_WM(wm->pipe[PIPE_A].plane[PLANE_PRIMARY], PLANEA));
-	I915_WRITE(DSPFW2,
+	intel_uncore_write(&dev_priv->uncore, DSPFW2,
 		   (wm->fbc_en ? DSPFW_FBC_SR_EN : 0) |
 		   FW_WM(wm->sr.fbc, FBC_SR) |
 		   FW_WM(wm->hpll.fbc, FBC_HPLL_SR) |
 		   FW_WM(wm->pipe[PIPE_B].plane[PLANE_SPRITE0], SPRITEB) |
 		   FW_WM(wm->pipe[PIPE_A].plane[PLANE_CURSOR], CURSORA) |
 		   FW_WM(wm->pipe[PIPE_A].plane[PLANE_SPRITE0], SPRITEA));
-	I915_WRITE(DSPFW3,
+	intel_uncore_write(&dev_priv->uncore, DSPFW3,
 		   (wm->hpll_en ? DSPFW_HPLL_SR_EN : 0) |
 		   FW_WM(wm->sr.cursor, CURSOR_SR) |
 		   FW_WM(wm->hpll.cursor, HPLL_CURSOR) |
 		   FW_WM(wm->hpll.plane, HPLL_SR));
 
-	POSTING_READ(DSPFW1);
+	intel_uncore_posting_read(&dev_priv->uncore, DSPFW1);
 }
 
 #define FW_WM_VLV(value, plane) \
@@ -1007,7 +1007,7 @@ static void vlv_write_wm_values(struct drm_i915_private *dev_priv,
 	for_each_pipe(dev_priv, pipe) {
 		trace_vlv_wm(intel_get_crtc_for_pipe(dev_priv, pipe), wm);
 
-		I915_WRITE(VLV_DDL(pipe),
+		intel_uncore_write(&dev_priv->uncore, VLV_DDL(pipe),
 			   (wm->ddl[pipe].plane[PLANE_CURSOR] << DDL_CURSOR_SHIFT) |
 			   (wm->ddl[pipe].plane[PLANE_SPRITE1] << DDL_SPRITE_SHIFT(1)) |
 			   (wm->ddl[pipe].plane[PLANE_SPRITE0] << DDL_SPRITE_SHIFT(0)) |
@@ -1019,35 +1019,35 @@ static void vlv_write_wm_values(struct drm_i915_private *dev_priv,
 	 * high order bits so that there are no out of bounds values
 	 * present in the registers during the reprogramming.
 	 */
-	I915_WRITE(DSPHOWM, 0);
-	I915_WRITE(DSPHOWM1, 0);
-	I915_WRITE(DSPFW4, 0);
-	I915_WRITE(DSPFW5, 0);
-	I915_WRITE(DSPFW6, 0);
+	intel_uncore_write(&dev_priv->uncore, DSPHOWM, 0);
+	intel_uncore_write(&dev_priv->uncore, DSPHOWM1, 0);
+	intel_uncore_write(&dev_priv->uncore, DSPFW4, 0);
+	intel_uncore_write(&dev_priv->uncore, DSPFW5, 0);
+	intel_uncore_write(&dev_priv->uncore, DSPFW6, 0);
 
-	I915_WRITE(DSPFW1,
+	intel_uncore_write(&dev_priv->uncore, DSPFW1,
 		   FW_WM(wm->sr.plane, SR) |
 		   FW_WM(wm->pipe[PIPE_B].plane[PLANE_CURSOR], CURSORB) |
 		   FW_WM_VLV(wm->pipe[PIPE_B].plane[PLANE_PRIMARY], PLANEB) |
 		   FW_WM_VLV(wm->pipe[PIPE_A].plane[PLANE_PRIMARY], PLANEA));
-	I915_WRITE(DSPFW2,
+	intel_uncore_write(&dev_priv->uncore, DSPFW2,
 		   FW_WM_VLV(wm->pipe[PIPE_A].plane[PLANE_SPRITE1], SPRITEB) |
 		   FW_WM(wm->pipe[PIPE_A].plane[PLANE_CURSOR], CURSORA) |
 		   FW_WM_VLV(wm->pipe[PIPE_A].plane[PLANE_SPRITE0], SPRITEA));
-	I915_WRITE(DSPFW3,
+	intel_uncore_write(&dev_priv->uncore, DSPFW3,
 		   FW_WM(wm->sr.cursor, CURSOR_SR));
 
 	if (IS_CHERRYVIEW(dev_priv)) {
-		I915_WRITE(DSPFW7_CHV,
+		intel_uncore_write(&dev_priv->uncore, DSPFW7_CHV,
 			   FW_WM_VLV(wm->pipe[PIPE_B].plane[PLANE_SPRITE1], SPRITED) |
 			   FW_WM_VLV(wm->pipe[PIPE_B].plane[PLANE_SPRITE0], SPRITEC));
-		I915_WRITE(DSPFW8_CHV,
+		intel_uncore_write(&dev_priv->uncore, DSPFW8_CHV,
 			   FW_WM_VLV(wm->pipe[PIPE_C].plane[PLANE_SPRITE1], SPRITEF) |
 			   FW_WM_VLV(wm->pipe[PIPE_C].plane[PLANE_SPRITE0], SPRITEE));
-		I915_WRITE(DSPFW9_CHV,
+		intel_uncore_write(&dev_priv->uncore, DSPFW9_CHV,
 			   FW_WM_VLV(wm->pipe[PIPE_C].plane[PLANE_PRIMARY], PLANEC) |
 			   FW_WM(wm->pipe[PIPE_C].plane[PLANE_CURSOR], CURSORC));
-		I915_WRITE(DSPHOWM,
+		intel_uncore_write(&dev_priv->uncore, DSPHOWM,
 			   FW_WM(wm->sr.plane >> 9, SR_HI) |
 			   FW_WM(wm->pipe[PIPE_C].plane[PLANE_SPRITE1] >> 8, SPRITEF_HI) |
 			   FW_WM(wm->pipe[PIPE_C].plane[PLANE_SPRITE0] >> 8, SPRITEE_HI) |
@@ -1059,10 +1059,10 @@ static void vlv_write_wm_values(struct drm_i915_private *dev_priv,
 			   FW_WM(wm->pipe[PIPE_A].plane[PLANE_SPRITE0] >> 8, SPRITEA_HI) |
 			   FW_WM(wm->pipe[PIPE_A].plane[PLANE_PRIMARY] >> 8, PLANEA_HI));
 	} else {
-		I915_WRITE(DSPFW7,
+		intel_uncore_write(&dev_priv->uncore, DSPFW7,
 			   FW_WM_VLV(wm->pipe[PIPE_B].plane[PLANE_SPRITE1], SPRITED) |
 			   FW_WM_VLV(wm->pipe[PIPE_B].plane[PLANE_SPRITE0], SPRITEC));
-		I915_WRITE(DSPHOWM,
+		intel_uncore_write(&dev_priv->uncore, DSPHOWM,
 			   FW_WM(wm->sr.plane >> 9, SR_HI) |
 			   FW_WM(wm->pipe[PIPE_B].plane[PLANE_SPRITE1] >> 8, SPRITED_HI) |
 			   FW_WM(wm->pipe[PIPE_B].plane[PLANE_SPRITE0] >> 8, SPRITEC_HI) |
@@ -1072,7 +1072,7 @@ static void vlv_write_wm_values(struct drm_i915_private *dev_priv,
 			   FW_WM(wm->pipe[PIPE_A].plane[PLANE_PRIMARY] >> 8, PLANEA_HI));
 	}
 
-	POSTING_READ(DSPFW1);
+	intel_uncore_posting_read(&dev_priv->uncore, DSPFW1);
 }
 
 #undef FW_WM_VLV
@@ -2309,14 +2309,14 @@ static void i965_update_wm(struct intel_crtc *unused_crtc)
 		    srwm);
 
 	/* 965 has limitations... */
-	I915_WRITE(DSPFW1, FW_WM(srwm, SR) |
+	intel_uncore_write(&dev_priv->uncore, DSPFW1, FW_WM(srwm, SR) |
 		   FW_WM(8, CURSORB) |
 		   FW_WM(8, PLANEB) |
 		   FW_WM(8, PLANEA));
-	I915_WRITE(DSPFW2, FW_WM(8, CURSORA) |
+	intel_uncore_write(&dev_priv->uncore, DSPFW2, FW_WM(8, CURSORA) |
 		   FW_WM(8, PLANEC_OLD));
 	/* update cursor SR watermark */
-	I915_WRITE(DSPFW3, FW_WM(cursor_sr, CURSOR_SR));
+	intel_uncore_write(&dev_priv->uncore, DSPFW3, FW_WM(cursor_sr, CURSOR_SR));
 
 	if (cxsr_enabled)
 		intel_set_memory_cxsr(dev_priv, true);
@@ -2446,10 +2446,10 @@ static void i9xx_update_wm(struct intel_crtc *unused_crtc)
 			srwm = 1;
 
 		if (IS_I945G(dev_priv) || IS_I945GM(dev_priv))
-			I915_WRITE(FW_BLC_SELF,
+			intel_uncore_write(&dev_priv->uncore, FW_BLC_SELF,
 				   FW_BLC_SELF_FIFO_MASK | (srwm & 0xff));
 		else
-			I915_WRITE(FW_BLC_SELF, srwm & 0x3f);
+			intel_uncore_write(&dev_priv->uncore, FW_BLC_SELF, srwm & 0x3f);
 	}
 
 	drm_dbg_kms(&dev_priv->drm,
@@ -2463,8 +2463,8 @@ static void i9xx_update_wm(struct intel_crtc *unused_crtc)
 	fwater_lo = fwater_lo | (1 << 24) | (1 << 8);
 	fwater_hi = fwater_hi | (1 << 8);
 
-	I915_WRITE(FW_BLC, fwater_lo);
-	I915_WRITE(FW_BLC2, fwater_hi);
+	intel_uncore_write(&dev_priv->uncore, FW_BLC, fwater_lo);
+	intel_uncore_write(&dev_priv->uncore, FW_BLC2, fwater_hi);
 
 	if (enabled)
 		intel_set_memory_cxsr(dev_priv, true);
@@ -2487,13 +2487,13 @@ static void i845_update_wm(struct intel_crtc *unused_crtc)
 				       &i845_wm_info,
 				       dev_priv->display.get_fifo_size(dev_priv, PLANE_A),
 				       4, pessimal_latency_ns);
-	fwater_lo = I915_READ(FW_BLC) & ~0xfff;
+	fwater_lo = intel_uncore_read(&dev_priv->uncore, FW_BLC) & ~0xfff;
 	fwater_lo |= (3<<8) | planea_wm;
 
 	drm_dbg_kms(&dev_priv->drm,
 		    "Setting FIFO watermarks - A: %d\n", planea_wm);
 
-	I915_WRITE(FW_BLC, fwater_lo);
+	intel_uncore_write(&dev_priv->uncore, FW_BLC, fwater_lo);
 }
 
 /* latency must be in 0.1us units. */
@@ -3533,17 +3533,17 @@ static bool _ilk_disable_lp_wm(struct drm_i915_private *dev_priv,
 
 	if (dirty & WM_DIRTY_LP(3) && previous->wm_lp[2] & WM1_LP_SR_EN) {
 		previous->wm_lp[2] &= ~WM1_LP_SR_EN;
-		I915_WRITE(WM3_LP_ILK, previous->wm_lp[2]);
+		intel_uncore_write(&dev_priv->uncore, WM3_LP_ILK, previous->wm_lp[2]);
 		changed = true;
 	}
 	if (dirty & WM_DIRTY_LP(2) && previous->wm_lp[1] & WM1_LP_SR_EN) {
 		previous->wm_lp[1] &= ~WM1_LP_SR_EN;
-		I915_WRITE(WM2_LP_ILK, previous->wm_lp[1]);
+		intel_uncore_write(&dev_priv->uncore, WM2_LP_ILK, previous->wm_lp[1]);
 		changed = true;
 	}
 	if (dirty & WM_DIRTY_LP(1) && previous->wm_lp[0] & WM1_LP_SR_EN) {
 		previous->wm_lp[0] &= ~WM1_LP_SR_EN;
-		I915_WRITE(WM1_LP_ILK, previous->wm_lp[0]);
+		intel_uncore_write(&dev_priv->uncore, WM1_LP_ILK, previous->wm_lp[0]);
 		changed = true;
 	}
 
@@ -3573,56 +3573,56 @@ static void ilk_write_wm_values(struct drm_i915_private *dev_priv,
 	_ilk_disable_lp_wm(dev_priv, dirty);
 
 	if (dirty & WM_DIRTY_PIPE(PIPE_A))
-		I915_WRITE(WM0_PIPE_ILK(PIPE_A), results->wm_pipe[0]);
+		intel_uncore_write(&dev_priv->uncore, WM0_PIPE_ILK(PIPE_A), results->wm_pipe[0]);
 	if (dirty & WM_DIRTY_PIPE(PIPE_B))
-		I915_WRITE(WM0_PIPE_ILK(PIPE_B), results->wm_pipe[1]);
+		intel_uncore_write(&dev_priv->uncore, WM0_PIPE_ILK(PIPE_B), results->wm_pipe[1]);
 	if (dirty & WM_DIRTY_PIPE(PIPE_C))
-		I915_WRITE(WM0_PIPE_ILK(PIPE_C), results->wm_pipe[2]);
+		intel_uncore_write(&dev_priv->uncore, WM0_PIPE_ILK(PIPE_C), results->wm_pipe[2]);
 
 	if (dirty & WM_DIRTY_DDB) {
 		if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv)) {
-			val = I915_READ(WM_MISC);
+			val = intel_uncore_read(&dev_priv->uncore, WM_MISC);
 			if (results->partitioning == INTEL_DDB_PART_1_2)
 				val &= ~WM_MISC_DATA_PARTITION_5_6;
 			else
 				val |= WM_MISC_DATA_PARTITION_5_6;
-			I915_WRITE(WM_MISC, val);
+			intel_uncore_write(&dev_priv->uncore, WM_MISC, val);
 		} else {
-			val = I915_READ(DISP_ARB_CTL2);
+			val = intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL2);
 			if (results->partitioning == INTEL_DDB_PART_1_2)
 				val &= ~DISP_DATA_PARTITION_5_6;
 			else
 				val |= DISP_DATA_PARTITION_5_6;
-			I915_WRITE(DISP_ARB_CTL2, val);
+			intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL2, val);
 		}
 	}
 
 	if (dirty & WM_DIRTY_FBC) {
-		val = I915_READ(DISP_ARB_CTL);
+		val = intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL);
 		if (results->enable_fbc_wm)
 			val &= ~DISP_FBC_WM_DIS;
 		else
 			val |= DISP_FBC_WM_DIS;
-		I915_WRITE(DISP_ARB_CTL, val);
+		intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, val);
 	}
 
 	if (dirty & WM_DIRTY_LP(1) &&
 	    previous->wm_lp_spr[0] != results->wm_lp_spr[0])
-		I915_WRITE(WM1S_LP_ILK, results->wm_lp_spr[0]);
+		intel_uncore_write(&dev_priv->uncore, WM1S_LP_ILK, results->wm_lp_spr[0]);
 
 	if (INTEL_GEN(dev_priv) >= 7) {
 		if (dirty & WM_DIRTY_LP(2) && previous->wm_lp_spr[1] != results->wm_lp_spr[1])
-			I915_WRITE(WM2S_LP_IVB, results->wm_lp_spr[1]);
+			intel_uncore_write(&dev_priv->uncore, WM2S_LP_IVB, results->wm_lp_spr[1]);
 		if (dirty & WM_DIRTY_LP(3) && previous->wm_lp_spr[2] != results->wm_lp_spr[2])
-			I915_WRITE(WM3S_LP_IVB, results->wm_lp_spr[2]);
+			intel_uncore_write(&dev_priv->uncore, WM3S_LP_IVB, results->wm_lp_spr[2]);
 	}
 
 	if (dirty & WM_DIRTY_LP(1) && previous->wm_lp[0] != results->wm_lp[0])
-		I915_WRITE(WM1_LP_ILK, results->wm_lp[0]);
+		intel_uncore_write(&dev_priv->uncore, WM1_LP_ILK, results->wm_lp[0]);
 	if (dirty & WM_DIRTY_LP(2) && previous->wm_lp[1] != results->wm_lp[1])
-		I915_WRITE(WM2_LP_ILK, results->wm_lp[1]);
+		intel_uncore_write(&dev_priv->uncore, WM2_LP_ILK, results->wm_lp[1]);
 	if (dirty & WM_DIRTY_LP(3) && previous->wm_lp[2] != results->wm_lp[2])
-		I915_WRITE(WM3_LP_ILK, results->wm_lp[2]);
+		intel_uncore_write(&dev_priv->uncore, WM3_LP_ILK, results->wm_lp[2]);
 
 	dev_priv->wm.hw = *results;
 }
@@ -3639,7 +3639,7 @@ u8 intel_enabled_dbuf_slices_mask(struct drm_i915_private *dev_priv)
 	u8 enabled_slices_mask = 0;
 
 	for (i = 0; i < max_slices; i++) {
-		if (I915_READ(DBUF_CTL_S(i)) & DBUF_POWER_STATE)
+		if (intel_uncore_read(&dev_priv->uncore, DBUF_CTL_S(i)) & DBUF_POWER_STATE)
 			enabled_slices_mask |= BIT(i);
 	}
 
@@ -4307,12 +4307,12 @@ skl_ddb_get_hw_plane_state(struct drm_i915_private *dev_priv,
 
 	/* Cursor doesn't support NV12/planar, so no extra calculation needed */
 	if (plane_id == PLANE_CURSOR) {
-		val = I915_READ(CUR_BUF_CFG(pipe));
+		val = intel_uncore_read(&dev_priv->uncore, CUR_BUF_CFG(pipe));
 		skl_ddb_entry_init_from_hw(dev_priv, ddb_y, val);
 		return;
 	}
 
-	val = I915_READ(PLANE_CTL(pipe, plane_id));
+	val = intel_uncore_read(&dev_priv->uncore, PLANE_CTL(pipe, plane_id));
 
 	/* No DDB allocated for disabled planes */
 	if (val & PLANE_CTL_ENABLE)
@@ -4321,11 +4321,11 @@ skl_ddb_get_hw_plane_state(struct drm_i915_private *dev_priv,
 					      val & PLANE_CTL_ALPHA_MASK);
 
 	if (INTEL_GEN(dev_priv) >= 11) {
-		val = I915_READ(PLANE_BUF_CFG(pipe, plane_id));
+		val = intel_uncore_read(&dev_priv->uncore, PLANE_BUF_CFG(pipe, plane_id));
 		skl_ddb_entry_init_from_hw(dev_priv, ddb_y, val);
 	} else {
-		val = I915_READ(PLANE_BUF_CFG(pipe, plane_id));
-		val2 = I915_READ(PLANE_NV12_BUF_CFG(pipe, plane_id));
+		val = intel_uncore_read(&dev_priv->uncore, PLANE_BUF_CFG(pipe, plane_id));
+		val2 = intel_uncore_read(&dev_priv->uncore, PLANE_NV12_BUF_CFG(pipe, plane_id));
 
 		if (fourcc &&
 		    drm_format_info_is_yuv_semiplanar(drm_format_info(fourcc)))
@@ -6240,9 +6240,9 @@ void skl_pipe_wm_get_hw_state(struct intel_crtc *crtc,
 
 		for (level = 0; level <= max_level; level++) {
 			if (plane_id != PLANE_CURSOR)
-				val = I915_READ(PLANE_WM(pipe, plane_id, level));
+				val = intel_uncore_read(&dev_priv->uncore, PLANE_WM(pipe, plane_id, level));
 			else
-				val = I915_READ(CUR_WM(pipe, level));
+				val = intel_uncore_read(&dev_priv->uncore, CUR_WM(pipe, level));
 
 			skl_wm_level_from_reg_val(val, &wm->wm[level]);
 		}
@@ -6251,9 +6251,9 @@ void skl_pipe_wm_get_hw_state(struct intel_crtc *crtc,
 			wm->sagv_wm0 = wm->wm[0];
 
 		if (plane_id != PLANE_CURSOR)
-			val = I915_READ(PLANE_WM_TRANS(pipe, plane_id));
+			val = intel_uncore_read(&dev_priv->uncore, PLANE_WM_TRANS(pipe, plane_id));
 		else
-			val = I915_READ(CUR_WM_TRANS(pipe));
+			val = intel_uncore_read(&dev_priv->uncore, CUR_WM_TRANS(pipe));
 
 		skl_wm_level_from_reg_val(val, &wm->trans_wm);
 	}
@@ -6288,7 +6288,7 @@ static void ilk_pipe_wm_get_hw_state(struct intel_crtc *crtc)
 	struct intel_pipe_wm *active = &crtc_state->wm.ilk.optimal;
 	enum pipe pipe = crtc->pipe;
 
-	hw->wm_pipe[pipe] = I915_READ(WM0_PIPE_ILK(pipe));
+	hw->wm_pipe[pipe] = intel_uncore_read(&dev_priv->uncore, WM0_PIPE_ILK(pipe));
 
 	memset(active, 0, sizeof(*active));
 
@@ -6332,13 +6332,13 @@ static void g4x_read_wm_values(struct drm_i915_private *dev_priv,
 {
 	u32 tmp;
 
-	tmp = I915_READ(DSPFW1);
+	tmp = intel_uncore_read(&dev_priv->uncore, DSPFW1);
 	wm->sr.plane = _FW_WM(tmp, SR);
 	wm->pipe[PIPE_B].plane[PLANE_CURSOR] = _FW_WM(tmp, CURSORB);
 	wm->pipe[PIPE_B].plane[PLANE_PRIMARY] = _FW_WM(tmp, PLANEB);
 	wm->pipe[PIPE_A].plane[PLANE_PRIMARY] = _FW_WM(tmp, PLANEA);
 
-	tmp = I915_READ(DSPFW2);
+	tmp = intel_uncore_read(&dev_priv->uncore, DSPFW2);
 	wm->fbc_en = tmp & DSPFW_FBC_SR_EN;
 	wm->sr.fbc = _FW_WM(tmp, FBC_SR);
 	wm->hpll.fbc = _FW_WM(tmp, FBC_HPLL_SR);
@@ -6346,7 +6346,7 @@ static void g4x_read_wm_values(struct drm_i915_private *dev_priv,
 	wm->pipe[PIPE_A].plane[PLANE_CURSOR] = _FW_WM(tmp, CURSORA);
 	wm->pipe[PIPE_A].plane[PLANE_SPRITE0] = _FW_WM(tmp, SPRITEA);
 
-	tmp = I915_READ(DSPFW3);
+	tmp = intel_uncore_read(&dev_priv->uncore, DSPFW3);
 	wm->hpll_en = tmp & DSPFW_HPLL_SR_EN;
 	wm->sr.cursor = _FW_WM(tmp, CURSOR_SR);
 	wm->hpll.cursor = _FW_WM(tmp, HPLL_CURSOR);
@@ -6360,7 +6360,7 @@ static void vlv_read_wm_values(struct drm_i915_private *dev_priv,
 	u32 tmp;
 
 	for_each_pipe(dev_priv, pipe) {
-		tmp = I915_READ(VLV_DDL(pipe));
+		tmp = intel_uncore_read(&dev_priv->uncore, VLV_DDL(pipe));
 
 		wm->ddl[pipe].plane[PLANE_PRIMARY] =
 			(tmp >> DDL_PLANE_SHIFT) & (DDL_PRECISION_HIGH | DRAIN_LATENCY_MASK);
@@ -6372,34 +6372,34 @@ static void vlv_read_wm_values(struct drm_i915_private *dev_priv,
 			(tmp >> DDL_SPRITE_SHIFT(1)) & (DDL_PRECISION_HIGH | DRAIN_LATENCY_MASK);
 	}
 
-	tmp = I915_READ(DSPFW1);
+	tmp = intel_uncore_read(&dev_priv->uncore, DSPFW1);
 	wm->sr.plane = _FW_WM(tmp, SR);
 	wm->pipe[PIPE_B].plane[PLANE_CURSOR] = _FW_WM(tmp, CURSORB);
 	wm->pipe[PIPE_B].plane[PLANE_PRIMARY] = _FW_WM_VLV(tmp, PLANEB);
 	wm->pipe[PIPE_A].plane[PLANE_PRIMARY] = _FW_WM_VLV(tmp, PLANEA);
 
-	tmp = I915_READ(DSPFW2);
+	tmp = intel_uncore_read(&dev_priv->uncore, DSPFW2);
 	wm->pipe[PIPE_A].plane[PLANE_SPRITE1] = _FW_WM_VLV(tmp, SPRITEB);
 	wm->pipe[PIPE_A].plane[PLANE_CURSOR] = _FW_WM(tmp, CURSORA);
 	wm->pipe[PIPE_A].plane[PLANE_SPRITE0] = _FW_WM_VLV(tmp, SPRITEA);
 
-	tmp = I915_READ(DSPFW3);
+	tmp = intel_uncore_read(&dev_priv->uncore, DSPFW3);
 	wm->sr.cursor = _FW_WM(tmp, CURSOR_SR);
 
 	if (IS_CHERRYVIEW(dev_priv)) {
-		tmp = I915_READ(DSPFW7_CHV);
+		tmp = intel_uncore_read(&dev_priv->uncore, DSPFW7_CHV);
 		wm->pipe[PIPE_B].plane[PLANE_SPRITE1] = _FW_WM_VLV(tmp, SPRITED);
 		wm->pipe[PIPE_B].plane[PLANE_SPRITE0] = _FW_WM_VLV(tmp, SPRITEC);
 
-		tmp = I915_READ(DSPFW8_CHV);
+		tmp = intel_uncore_read(&dev_priv->uncore, DSPFW8_CHV);
 		wm->pipe[PIPE_C].plane[PLANE_SPRITE1] = _FW_WM_VLV(tmp, SPRITEF);
 		wm->pipe[PIPE_C].plane[PLANE_SPRITE0] = _FW_WM_VLV(tmp, SPRITEE);
 
-		tmp = I915_READ(DSPFW9_CHV);
+		tmp = intel_uncore_read(&dev_priv->uncore, DSPFW9_CHV);
 		wm->pipe[PIPE_C].plane[PLANE_PRIMARY] = _FW_WM_VLV(tmp, PLANEC);
 		wm->pipe[PIPE_C].plane[PLANE_CURSOR] = _FW_WM(tmp, CURSORC);
 
-		tmp = I915_READ(DSPHOWM);
+		tmp = intel_uncore_read(&dev_priv->uncore, DSPHOWM);
 		wm->sr.plane |= _FW_WM(tmp, SR_HI) << 9;
 		wm->pipe[PIPE_C].plane[PLANE_SPRITE1] |= _FW_WM(tmp, SPRITEF_HI) << 8;
 		wm->pipe[PIPE_C].plane[PLANE_SPRITE0] |= _FW_WM(tmp, SPRITEE_HI) << 8;
@@ -6411,11 +6411,11 @@ static void vlv_read_wm_values(struct drm_i915_private *dev_priv,
 		wm->pipe[PIPE_A].plane[PLANE_SPRITE0] |= _FW_WM(tmp, SPRITEA_HI) << 8;
 		wm->pipe[PIPE_A].plane[PLANE_PRIMARY] |= _FW_WM(tmp, PLANEA_HI) << 8;
 	} else {
-		tmp = I915_READ(DSPFW7);
+		tmp = intel_uncore_read(&dev_priv->uncore, DSPFW7);
 		wm->pipe[PIPE_B].plane[PLANE_SPRITE1] = _FW_WM_VLV(tmp, SPRITED);
 		wm->pipe[PIPE_B].plane[PLANE_SPRITE0] = _FW_WM_VLV(tmp, SPRITEC);
 
-		tmp = I915_READ(DSPHOWM);
+		tmp = intel_uncore_read(&dev_priv->uncore, DSPHOWM);
 		wm->sr.plane |= _FW_WM(tmp, SR_HI) << 9;
 		wm->pipe[PIPE_B].plane[PLANE_SPRITE1] |= _FW_WM(tmp, SPRITED_HI) << 8;
 		wm->pipe[PIPE_B].plane[PLANE_SPRITE0] |= _FW_WM(tmp, SPRITEC_HI) << 8;
@@ -6436,7 +6436,7 @@ void g4x_wm_get_hw_state(struct drm_i915_private *dev_priv)
 
 	g4x_read_wm_values(dev_priv, wm);
 
-	wm->cxsr = I915_READ(FW_BLC_SELF) & FW_BLC_SELF_EN;
+	wm->cxsr = intel_uncore_read(&dev_priv->uncore, FW_BLC_SELF) & FW_BLC_SELF_EN;
 
 	for_each_intel_crtc(&dev_priv->drm, crtc) {
 		struct intel_crtc_state *crtc_state =
@@ -6580,7 +6580,7 @@ void vlv_wm_get_hw_state(struct drm_i915_private *dev_priv)
 
 	vlv_read_wm_values(dev_priv, wm);
 
-	wm->cxsr = I915_READ(FW_BLC_SELF_VLV) & FW_CSPWRDWNEN;
+	wm->cxsr = intel_uncore_read(&dev_priv->uncore, FW_BLC_SELF_VLV) & FW_CSPWRDWNEN;
 	wm->level = VLV_WM_LEVEL_PM2;
 
 	if (IS_CHERRYVIEW(dev_priv)) {
@@ -6727,9 +6727,9 @@ void vlv_wm_sanitize(struct drm_i915_private *dev_priv)
  */
 static void ilk_init_lp_watermarks(struct drm_i915_private *dev_priv)
 {
-	I915_WRITE(WM3_LP_ILK, I915_READ(WM3_LP_ILK) & ~WM1_LP_SR_EN);
-	I915_WRITE(WM2_LP_ILK, I915_READ(WM2_LP_ILK) & ~WM1_LP_SR_EN);
-	I915_WRITE(WM1_LP_ILK, I915_READ(WM1_LP_ILK) & ~WM1_LP_SR_EN);
+	intel_uncore_write(&dev_priv->uncore, WM3_LP_ILK, intel_uncore_read(&dev_priv->uncore, WM3_LP_ILK) & ~WM1_LP_SR_EN);
+	intel_uncore_write(&dev_priv->uncore, WM2_LP_ILK, intel_uncore_read(&dev_priv->uncore, WM2_LP_ILK) & ~WM1_LP_SR_EN);
+	intel_uncore_write(&dev_priv->uncore, WM1_LP_ILK, intel_uncore_read(&dev_priv->uncore, WM1_LP_ILK) & ~WM1_LP_SR_EN);
 
 	/*
 	 * Don't touch WM1S_LP_EN here.
@@ -6747,25 +6747,25 @@ void ilk_wm_get_hw_state(struct drm_i915_private *dev_priv)
 	for_each_intel_crtc(&dev_priv->drm, crtc)
 		ilk_pipe_wm_get_hw_state(crtc);
 
-	hw->wm_lp[0] = I915_READ(WM1_LP_ILK);
-	hw->wm_lp[1] = I915_READ(WM2_LP_ILK);
-	hw->wm_lp[2] = I915_READ(WM3_LP_ILK);
+	hw->wm_lp[0] = intel_uncore_read(&dev_priv->uncore, WM1_LP_ILK);
+	hw->wm_lp[1] = intel_uncore_read(&dev_priv->uncore, WM2_LP_ILK);
+	hw->wm_lp[2] = intel_uncore_read(&dev_priv->uncore, WM3_LP_ILK);
 
-	hw->wm_lp_spr[0] = I915_READ(WM1S_LP_ILK);
+	hw->wm_lp_spr[0] = intel_uncore_read(&dev_priv->uncore, WM1S_LP_ILK);
 	if (INTEL_GEN(dev_priv) >= 7) {
-		hw->wm_lp_spr[1] = I915_READ(WM2S_LP_IVB);
-		hw->wm_lp_spr[2] = I915_READ(WM3S_LP_IVB);
+		hw->wm_lp_spr[1] = intel_uncore_read(&dev_priv->uncore, WM2S_LP_IVB);
+		hw->wm_lp_spr[2] = intel_uncore_read(&dev_priv->uncore, WM3S_LP_IVB);
 	}
 
 	if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv))
-		hw->partitioning = (I915_READ(WM_MISC) & WM_MISC_DATA_PARTITION_5_6) ?
+		hw->partitioning = (intel_uncore_read(&dev_priv->uncore, WM_MISC) & WM_MISC_DATA_PARTITION_5_6) ?
 			INTEL_DDB_PART_5_6 : INTEL_DDB_PART_1_2;
 	else if (IS_IVYBRIDGE(dev_priv))
-		hw->partitioning = (I915_READ(DISP_ARB_CTL2) & DISP_DATA_PARTITION_5_6) ?
+		hw->partitioning = (intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL2) & DISP_DATA_PARTITION_5_6) ?
 			INTEL_DDB_PART_5_6 : INTEL_DDB_PART_1_2;
 
 	hw->enable_fbc_wm =
-		!(I915_READ(DISP_ARB_CTL) & DISP_FBC_WM_DIS);
+		!(intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) & DISP_FBC_WM_DIS);
 }
 
 /**
@@ -6816,14 +6816,14 @@ void intel_enable_ipc(struct drm_i915_private *dev_priv)
 	if (!HAS_IPC(dev_priv))
 		return;
 
-	val = I915_READ(DISP_ARB_CTL2);
+	val = intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL2);
 
 	if (dev_priv->ipc_enabled)
 		val |= DISP_IPC_ENABLE;
 	else
 		val &= ~DISP_IPC_ENABLE;
 
-	I915_WRITE(DISP_ARB_CTL2, val);
+	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL2, val);
 }
 
 static bool intel_can_enable_ipc(struct drm_i915_private *dev_priv)
@@ -6858,7 +6858,7 @@ static void ibx_init_clock_gating(struct drm_i915_private *dev_priv)
 	 * gating for the panel power sequencer or it will fail to
 	 * start up when no ports are active.
 	 */
-	I915_WRITE(SOUTH_DSPCLK_GATE_D, PCH_DPLSUNIT_CLOCK_GATE_DISABLE);
+	intel_uncore_write(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D, PCH_DPLSUNIT_CLOCK_GATE_DISABLE);
 }
 
 static void g4x_disable_trickle_feed(struct drm_i915_private *dev_priv)
@@ -6866,12 +6866,12 @@ static void g4x_disable_trickle_feed(struct drm_i915_private *dev_priv)
 	enum pipe pipe;
 
 	for_each_pipe(dev_priv, pipe) {
-		I915_WRITE(DSPCNTR(pipe),
-			   I915_READ(DSPCNTR(pipe)) |
+		intel_uncore_write(&dev_priv->uncore, DSPCNTR(pipe),
+			   intel_uncore_read(&dev_priv->uncore, DSPCNTR(pipe)) |
 			   DISPPLANE_TRICKLE_FEED_DISABLE);
 
-		I915_WRITE(DSPSURF(pipe), I915_READ(DSPSURF(pipe)));
-		POSTING_READ(DSPSURF(pipe));
+		intel_uncore_write(&dev_priv->uncore, DSPSURF(pipe), intel_uncore_read(&dev_priv->uncore, DSPSURF(pipe)));
+		intel_uncore_posting_read(&dev_priv->uncore, DSPSURF(pipe));
 	}
 }
 
@@ -6887,10 +6887,10 @@ static void ilk_init_clock_gating(struct drm_i915_private *dev_priv)
 		   ILK_DPFCUNIT_CLOCK_GATE_DISABLE |
 		   ILK_DPFDUNIT_CLOCK_GATE_ENABLE;
 
-	I915_WRITE(PCH_3DCGDIS0,
+	intel_uncore_write(&dev_priv->uncore, PCH_3DCGDIS0,
 		   MARIUNIT_CLOCK_GATE_DISABLE |
 		   SVSMUNIT_CLOCK_GATE_DISABLE);
-	I915_WRITE(PCH_3DCGDIS1,
+	intel_uncore_write(&dev_priv->uncore, PCH_3DCGDIS1,
 		   VFMUNIT_CLOCK_GATE_DISABLE);
 
 	/*
@@ -6900,12 +6900,12 @@ static void ilk_init_clock_gating(struct drm_i915_private *dev_priv)
 	 * The bit 5 of 0x42020
 	 * The bit 15 of 0x45000
 	 */
-	I915_WRITE(ILK_DISPLAY_CHICKEN2,
-		   (I915_READ(ILK_DISPLAY_CHICKEN2) |
+	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2,
+		   (intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2) |
 		    ILK_DPARB_GATE | ILK_VSDPFD_FULL));
 	dspclk_gate |= ILK_DPARBUNIT_CLOCK_GATE_ENABLE;
-	I915_WRITE(DISP_ARB_CTL,
-		   (I915_READ(DISP_ARB_CTL) |
+	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL,
+		   (intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
 		    DISP_FBC_WM_DIS));
 
 	/*
@@ -6917,18 +6917,18 @@ static void ilk_init_clock_gating(struct drm_i915_private *dev_priv)
 	 */
 	if (IS_IRONLAKE_M(dev_priv)) {
 		/* WaFbcAsynchFlipDisableFbcQueue:ilk */
-		I915_WRITE(ILK_DISPLAY_CHICKEN1,
-			   I915_READ(ILK_DISPLAY_CHICKEN1) |
+		intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1,
+			   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1) |
 			   ILK_FBCQ_DIS);
-		I915_WRITE(ILK_DISPLAY_CHICKEN2,
-			   I915_READ(ILK_DISPLAY_CHICKEN2) |
+		intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2,
+			   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2) |
 			   ILK_DPARB_GATE);
 	}
 
-	I915_WRITE(ILK_DSPCLK_GATE_D, dspclk_gate);
+	intel_uncore_write(&dev_priv->uncore, ILK_DSPCLK_GATE_D, dspclk_gate);
 
-	I915_WRITE(ILK_DISPLAY_CHICKEN2,
-		   I915_READ(ILK_DISPLAY_CHICKEN2) |
+	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2,
+		   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2) |
 		   ILK_ELPIN_409_SELECT);
 
 	g4x_disable_trickle_feed(dev_priv);
@@ -6946,27 +6946,27 @@ static void cpt_init_clock_gating(struct drm_i915_private *dev_priv)
 	 * gating for the panel power sequencer or it will fail to
 	 * start up when no ports are active.
 	 */
-	I915_WRITE(SOUTH_DSPCLK_GATE_D, PCH_DPLSUNIT_CLOCK_GATE_DISABLE |
+	intel_uncore_write(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D, PCH_DPLSUNIT_CLOCK_GATE_DISABLE |
 		   PCH_DPLUNIT_CLOCK_GATE_DISABLE |
 		   PCH_CPUNIT_CLOCK_GATE_DISABLE);
-	I915_WRITE(SOUTH_CHICKEN2, I915_READ(SOUTH_CHICKEN2) |
+	intel_uncore_write(&dev_priv->uncore, SOUTH_CHICKEN2, intel_uncore_read(&dev_priv->uncore, SOUTH_CHICKEN2) |
 		   DPLS_EDP_PPS_FIX_DIS);
 	/* The below fixes the weird display corruption, a few pixels shifted
 	 * downward, on (only) LVDS of some HP laptops with IVY.
 	 */
 	for_each_pipe(dev_priv, pipe) {
-		val = I915_READ(TRANS_CHICKEN2(pipe));
+		val = intel_uncore_read(&dev_priv->uncore, TRANS_CHICKEN2(pipe));
 		val |= TRANS_CHICKEN2_TIMING_OVERRIDE;
 		val &= ~TRANS_CHICKEN2_FDI_POLARITY_REVERSED;
 		if (dev_priv->vbt.fdi_rx_polarity_inverted)
 			val |= TRANS_CHICKEN2_FDI_POLARITY_REVERSED;
 		val &= ~TRANS_CHICKEN2_DISABLE_DEEP_COLOR_COUNTER;
 		val &= ~TRANS_CHICKEN2_DISABLE_DEEP_COLOR_MODESWITCH;
-		I915_WRITE(TRANS_CHICKEN2(pipe), val);
+		intel_uncore_write(&dev_priv->uncore, TRANS_CHICKEN2(pipe), val);
 	}
 	/* WADP0ClockGatingDisable */
 	for_each_pipe(dev_priv, pipe) {
-		I915_WRITE(TRANS_CHICKEN1(pipe),
+		intel_uncore_write(&dev_priv->uncore, TRANS_CHICKEN1(pipe),
 			   TRANS_CHICKEN1_DP0UNIT_GC_DISABLE);
 	}
 }
@@ -6975,7 +6975,7 @@ static void gen6_check_mch_setup(struct drm_i915_private *dev_priv)
 {
 	u32 tmp;
 
-	tmp = I915_READ(MCH_SSKPD);
+	tmp = intel_uncore_read(&dev_priv->uncore, MCH_SSKPD);
 	if ((tmp & MCH_SSKPD_WM0_MASK) != MCH_SSKPD_WM0_VAL)
 		drm_dbg_kms(&dev_priv->drm,
 			    "Wrong MCH_SSKPD value: 0x%08x This can cause underruns.\n",
@@ -6986,14 +6986,14 @@ static void gen6_init_clock_gating(struct drm_i915_private *dev_priv)
 {
 	u32 dspclk_gate = ILK_VRHUNIT_CLOCK_GATE_DISABLE;
 
-	I915_WRITE(ILK_DSPCLK_GATE_D, dspclk_gate);
+	intel_uncore_write(&dev_priv->uncore, ILK_DSPCLK_GATE_D, dspclk_gate);
 
-	I915_WRITE(ILK_DISPLAY_CHICKEN2,
-		   I915_READ(ILK_DISPLAY_CHICKEN2) |
+	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2,
+		   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2) |
 		   ILK_ELPIN_409_SELECT);
 
-	I915_WRITE(GEN6_UCGCTL1,
-		   I915_READ(GEN6_UCGCTL1) |
+	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL1,
+		   intel_uncore_read(&dev_priv->uncore, GEN6_UCGCTL1) |
 		   GEN6_BLBUNIT_CLOCK_GATE_DISABLE |
 		   GEN6_CSUNIT_CLOCK_GATE_DISABLE);
 
@@ -7010,7 +7010,7 @@ static void gen6_init_clock_gating(struct drm_i915_private *dev_priv)
 	 * WaDisableRCCUnitClockGating:snb
 	 * WaDisableRCPBUnitClockGating:snb
 	 */
-	I915_WRITE(GEN6_UCGCTL2,
+	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL2,
 		   GEN6_RCPBUNIT_CLOCK_GATE_DISABLE |
 		   GEN6_RCCUNIT_CLOCK_GATE_DISABLE);
 
@@ -7025,14 +7025,14 @@ static void gen6_init_clock_gating(struct drm_i915_private *dev_priv)
 	 *
 	 * WaFbcAsynchFlipDisableFbcQueue:snb
 	 */
-	I915_WRITE(ILK_DISPLAY_CHICKEN1,
-		   I915_READ(ILK_DISPLAY_CHICKEN1) |
+	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1,
+		   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1) |
 		   ILK_FBCQ_DIS | ILK_PABSTRETCH_DIS);
-	I915_WRITE(ILK_DISPLAY_CHICKEN2,
-		   I915_READ(ILK_DISPLAY_CHICKEN2) |
+	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2,
+		   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2) |
 		   ILK_DPARB_GATE | ILK_VSDPFD_FULL);
-	I915_WRITE(ILK_DSPCLK_GATE_D,
-		   I915_READ(ILK_DSPCLK_GATE_D) |
+	intel_uncore_write(&dev_priv->uncore, ILK_DSPCLK_GATE_D,
+		   intel_uncore_read(&dev_priv->uncore, ILK_DSPCLK_GATE_D) |
 		   ILK_DPARBUNIT_CLOCK_GATE_ENABLE  |
 		   ILK_DPFDUNIT_CLOCK_GATE_ENABLE);
 
@@ -7050,23 +7050,23 @@ static void lpt_init_clock_gating(struct drm_i915_private *dev_priv)
 	 * disabled when not needed anymore in order to save power.
 	 */
 	if (HAS_PCH_LPT_LP(dev_priv))
-		I915_WRITE(SOUTH_DSPCLK_GATE_D,
-			   I915_READ(SOUTH_DSPCLK_GATE_D) |
+		intel_uncore_write(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D,
+			   intel_uncore_read(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D) |
 			   PCH_LP_PARTITION_LEVEL_DISABLE);
 
 	/* WADPOClockGatingDisable:hsw */
-	I915_WRITE(TRANS_CHICKEN1(PIPE_A),
-		   I915_READ(TRANS_CHICKEN1(PIPE_A)) |
+	intel_uncore_write(&dev_priv->uncore, TRANS_CHICKEN1(PIPE_A),
+		   intel_uncore_read(&dev_priv->uncore, TRANS_CHICKEN1(PIPE_A)) |
 		   TRANS_CHICKEN1_DP0UNIT_GC_DISABLE);
 }
 
 static void lpt_suspend_hw(struct drm_i915_private *dev_priv)
 {
 	if (HAS_PCH_LPT_LP(dev_priv)) {
-		u32 val = I915_READ(SOUTH_DSPCLK_GATE_D);
+		u32 val = intel_uncore_read(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D);
 
 		val &= ~PCH_LP_PARTITION_LEVEL_DISABLE;
-		I915_WRITE(SOUTH_DSPCLK_GATE_D, val);
+		intel_uncore_write(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D, val);
 	}
 }
 
@@ -7078,33 +7078,33 @@ static void gen8_set_l3sqc_credits(struct drm_i915_private *dev_priv,
 	u32 val;
 
 	/* WaTempDisableDOPClkGating:bdw */
-	misccpctl = I915_READ(GEN7_MISCCPCTL);
-	I915_WRITE(GEN7_MISCCPCTL, misccpctl & ~GEN7_DOP_CLOCK_GATE_ENABLE);
+	misccpctl = intel_uncore_read(&dev_priv->uncore, GEN7_MISCCPCTL);
+	intel_uncore_write(&dev_priv->uncore, GEN7_MISCCPCTL, misccpctl & ~GEN7_DOP_CLOCK_GATE_ENABLE);
 
-	val = I915_READ(GEN8_L3SQCREG1);
+	val = intel_uncore_read(&dev_priv->uncore, GEN8_L3SQCREG1);
 	val &= ~L3_PRIO_CREDITS_MASK;
 	val |= L3_GENERAL_PRIO_CREDITS(general_prio_credits);
 	val |= L3_HIGH_PRIO_CREDITS(high_prio_credits);
-	I915_WRITE(GEN8_L3SQCREG1, val);
+	intel_uncore_write(&dev_priv->uncore, GEN8_L3SQCREG1, val);
 
 	/*
 	 * Wait at least 100 clocks before re-enabling clock gating.
 	 * See the definition of L3SQCREG1 in BSpec.
 	 */
-	POSTING_READ(GEN8_L3SQCREG1);
+	intel_uncore_posting_read(&dev_priv->uncore, GEN8_L3SQCREG1);
 	udelay(1);
-	I915_WRITE(GEN7_MISCCPCTL, misccpctl);
+	intel_uncore_write(&dev_priv->uncore, GEN7_MISCCPCTL, misccpctl);
 }
 
 static void icl_init_clock_gating(struct drm_i915_private *dev_priv)
 {
 	/* Wa_1409120013:icl,ehl */
-	I915_WRITE(ILK_DPFC_CHICKEN,
+	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN,
 		   ILK_DPFC_CHICKEN_COMP_DUMMY_PIXEL);
 
 	/* This is not an Wa. Enable to reduce Sampler power */
-	I915_WRITE(GEN10_DFR_RATIO_EN_AND_CHICKEN,
-		   I915_READ(GEN10_DFR_RATIO_EN_AND_CHICKEN) & ~DFR_DISABLE);
+	intel_uncore_write(&dev_priv->uncore, GEN10_DFR_RATIO_EN_AND_CHICKEN,
+		   intel_uncore_read(&dev_priv->uncore, GEN10_DFR_RATIO_EN_AND_CHICKEN) & ~DFR_DISABLE);
 
 	/*Wa_14010594013:icl, ehl */
 	intel_uncore_rmw(&dev_priv->uncore, GEN8_CHICKEN_DCPR_1,
@@ -7114,12 +7114,12 @@ static void icl_init_clock_gating(struct drm_i915_private *dev_priv)
 static void tgl_init_clock_gating(struct drm_i915_private *dev_priv)
 {
 	/* Wa_1409120013:tgl */
-	I915_WRITE(ILK_DPFC_CHICKEN,
+	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN,
 		   ILK_DPFC_CHICKEN_COMP_DUMMY_PIXEL);
 
 	/* Wa_1409825376:tgl (pre-prod)*/
 	if (IS_TGL_DISP_REVID(dev_priv, TGL_REVID_A0, TGL_REVID_B1))
-		I915_WRITE(GEN9_CLKGATE_DIS_3, I915_READ(GEN9_CLKGATE_DIS_3) |
+		intel_uncore_write(&dev_priv->uncore, GEN9_CLKGATE_DIS_3, intel_uncore_read(&dev_priv->uncore, GEN9_CLKGATE_DIS_3) |
 			   TGL_VRH_GATING_DIS);
 
 	/* Wa_14011059788:tgl */
@@ -7131,7 +7131,7 @@ static void dg1_init_clock_gating(struct drm_i915_private *dev_priv)
 {
 	/* Wa_1409836686:dg1[a0] */
 	if (IS_DG1_REVID(dev_priv, DG1_REVID_A0, DG1_REVID_A0))
-		I915_WRITE(GEN9_CLKGATE_DIS_3, I915_READ(GEN9_CLKGATE_DIS_3) |
+		intel_uncore_write(&dev_priv->uncore, GEN9_CLKGATE_DIS_3, intel_uncore_read(&dev_priv->uncore, GEN9_CLKGATE_DIS_3) |
 			   DPT_GATING_DIS);
 }
 
@@ -7141,7 +7141,7 @@ static void cnp_init_clock_gating(struct drm_i915_private *dev_priv)
 		return;
 
 	/* Display WA #1181 WaSouthDisplayDisablePWMCGEGating: cnp */
-	I915_WRITE(SOUTH_DSPCLK_GATE_D, I915_READ(SOUTH_DSPCLK_GATE_D) |
+	intel_uncore_write(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D, intel_uncore_read(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D) |
 		   CNP_PWM_CGE_GATING_DISABLE);
 }
 
@@ -7151,35 +7151,35 @@ static void cnl_init_clock_gating(struct drm_i915_private *dev_priv)
 	cnp_init_clock_gating(dev_priv);
 
 	/* This is not an Wa. Enable for better image quality */
-	I915_WRITE(_3D_CHICKEN3,
+	intel_uncore_write(&dev_priv->uncore, _3D_CHICKEN3,
 		   _MASKED_BIT_ENABLE(_3D_CHICKEN3_AA_LINE_QUALITY_FIX_ENABLE));
 
 	/* WaEnableChickenDCPR:cnl */
-	I915_WRITE(GEN8_CHICKEN_DCPR_1,
-		   I915_READ(GEN8_CHICKEN_DCPR_1) | MASK_WAKEMEM);
+	intel_uncore_write(&dev_priv->uncore, GEN8_CHICKEN_DCPR_1,
+		   intel_uncore_read(&dev_priv->uncore, GEN8_CHICKEN_DCPR_1) | MASK_WAKEMEM);
 
 	/*
 	 * WaFbcWakeMemOn:cnl
 	 * Display WA #0859: cnl
 	 */
-	I915_WRITE(DISP_ARB_CTL, I915_READ(DISP_ARB_CTL) |
+	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
 		   DISP_FBC_MEMORY_WAKE);
 
-	val = I915_READ(SLICE_UNIT_LEVEL_CLKGATE);
+	val = intel_uncore_read(&dev_priv->uncore, SLICE_UNIT_LEVEL_CLKGATE);
 	/* ReadHitWriteOnlyDisable:cnl */
 	val |= RCCUNIT_CLKGATE_DIS;
-	I915_WRITE(SLICE_UNIT_LEVEL_CLKGATE, val);
+	intel_uncore_write(&dev_priv->uncore, SLICE_UNIT_LEVEL_CLKGATE, val);
 
 	/* Wa_2201832410:cnl */
-	val = I915_READ(SUBSLICE_UNIT_LEVEL_CLKGATE);
+	val = intel_uncore_read(&dev_priv->uncore, SUBSLICE_UNIT_LEVEL_CLKGATE);
 	val |= GWUNIT_CLKGATE_DIS;
-	I915_WRITE(SUBSLICE_UNIT_LEVEL_CLKGATE, val);
+	intel_uncore_write(&dev_priv->uncore, SUBSLICE_UNIT_LEVEL_CLKGATE, val);
 
 	/* WaDisableVFclkgate:cnl */
 	/* WaVFUnitClockGatingDisable:cnl */
-	val = I915_READ(UNSLICE_UNIT_LEVEL_CLKGATE);
+	val = intel_uncore_read(&dev_priv->uncore, UNSLICE_UNIT_LEVEL_CLKGATE);
 	val |= VFUNIT_CLKGATE_DIS;
-	I915_WRITE(UNSLICE_UNIT_LEVEL_CLKGATE, val);
+	intel_uncore_write(&dev_priv->uncore, UNSLICE_UNIT_LEVEL_CLKGATE, val);
 }
 
 static void cfl_init_clock_gating(struct drm_i915_private *dev_priv)
@@ -7188,21 +7188,21 @@ static void cfl_init_clock_gating(struct drm_i915_private *dev_priv)
 	gen9_init_clock_gating(dev_priv);
 
 	/* WAC6entrylatency:cfl */
-	I915_WRITE(FBC_LLC_READ_CTRL, I915_READ(FBC_LLC_READ_CTRL) |
+	intel_uncore_write(&dev_priv->uncore, FBC_LLC_READ_CTRL, intel_uncore_read(&dev_priv->uncore, FBC_LLC_READ_CTRL) |
 		   FBC_LLC_FULLY_OPEN);
 
 	/*
 	 * WaFbcTurnOffFbcWatermark:cfl
 	 * Display WA #0562: cfl
 	 */
-	I915_WRITE(DISP_ARB_CTL, I915_READ(DISP_ARB_CTL) |
+	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
 		   DISP_FBC_WM_DIS);
 
 	/*
 	 * WaFbcNukeOnHostModify:cfl
 	 * Display WA #0873: cfl
 	 */
-	I915_WRITE(ILK_DPFC_CHICKEN, I915_READ(ILK_DPFC_CHICKEN) |
+	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN, intel_uncore_read(&dev_priv->uncore, ILK_DPFC_CHICKEN) |
 		   ILK_DPFC_NUKE_ON_ANY_MODIFICATION);
 }
 
@@ -7211,31 +7211,31 @@ static void kbl_init_clock_gating(struct drm_i915_private *dev_priv)
 	gen9_init_clock_gating(dev_priv);
 
 	/* WAC6entrylatency:kbl */
-	I915_WRITE(FBC_LLC_READ_CTRL, I915_READ(FBC_LLC_READ_CTRL) |
+	intel_uncore_write(&dev_priv->uncore, FBC_LLC_READ_CTRL, intel_uncore_read(&dev_priv->uncore, FBC_LLC_READ_CTRL) |
 		   FBC_LLC_FULLY_OPEN);
 
 	/* WaDisableSDEUnitClockGating:kbl */
 	if (IS_KBL_GT_REVID(dev_priv, 0, KBL_REVID_B0))
-		I915_WRITE(GEN8_UCGCTL6, I915_READ(GEN8_UCGCTL6) |
+		intel_uncore_write(&dev_priv->uncore, GEN8_UCGCTL6, intel_uncore_read(&dev_priv->uncore, GEN8_UCGCTL6) |
 			   GEN8_SDEUNIT_CLOCK_GATE_DISABLE);
 
 	/* WaDisableGamClockGating:kbl */
 	if (IS_KBL_GT_REVID(dev_priv, 0, KBL_REVID_B0))
-		I915_WRITE(GEN6_UCGCTL1, I915_READ(GEN6_UCGCTL1) |
+		intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL1, intel_uncore_read(&dev_priv->uncore, GEN6_UCGCTL1) |
 			   GEN6_GAMUNIT_CLOCK_GATE_DISABLE);
 
 	/*
 	 * WaFbcTurnOffFbcWatermark:kbl
 	 * Display WA #0562: kbl
 	 */
-	I915_WRITE(DISP_ARB_CTL, I915_READ(DISP_ARB_CTL) |
+	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
 		   DISP_FBC_WM_DIS);
 
 	/*
 	 * WaFbcNukeOnHostModify:kbl
 	 * Display WA #0873: kbl
 	 */
-	I915_WRITE(ILK_DPFC_CHICKEN, I915_READ(ILK_DPFC_CHICKEN) |
+	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN, intel_uncore_read(&dev_priv->uncore, ILK_DPFC_CHICKEN) |
 		   ILK_DPFC_NUKE_ON_ANY_MODIFICATION);
 }
 
@@ -7244,32 +7244,32 @@ static void skl_init_clock_gating(struct drm_i915_private *dev_priv)
 	gen9_init_clock_gating(dev_priv);
 
 	/* WaDisableDopClockGating:skl */
-	I915_WRITE(GEN7_MISCCPCTL, I915_READ(GEN7_MISCCPCTL) &
+	intel_uncore_write(&dev_priv->uncore, GEN7_MISCCPCTL, intel_uncore_read(&dev_priv->uncore, GEN7_MISCCPCTL) &
 		   ~GEN7_DOP_CLOCK_GATE_ENABLE);
 
 	/* WAC6entrylatency:skl */
-	I915_WRITE(FBC_LLC_READ_CTRL, I915_READ(FBC_LLC_READ_CTRL) |
+	intel_uncore_write(&dev_priv->uncore, FBC_LLC_READ_CTRL, intel_uncore_read(&dev_priv->uncore, FBC_LLC_READ_CTRL) |
 		   FBC_LLC_FULLY_OPEN);
 
 	/*
 	 * WaFbcTurnOffFbcWatermark:skl
 	 * Display WA #0562: skl
 	 */
-	I915_WRITE(DISP_ARB_CTL, I915_READ(DISP_ARB_CTL) |
+	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
 		   DISP_FBC_WM_DIS);
 
 	/*
 	 * WaFbcNukeOnHostModify:skl
 	 * Display WA #0873: skl
 	 */
-	I915_WRITE(ILK_DPFC_CHICKEN, I915_READ(ILK_DPFC_CHICKEN) |
+	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN, intel_uncore_read(&dev_priv->uncore, ILK_DPFC_CHICKEN) |
 		   ILK_DPFC_NUKE_ON_ANY_MODIFICATION);
 
 	/*
 	 * WaFbcHighMemBwCorruptionAvoidance:skl
 	 * Display WA #0883: skl
 	 */
-	I915_WRITE(ILK_DPFC_CHICKEN, I915_READ(ILK_DPFC_CHICKEN) |
+	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN, intel_uncore_read(&dev_priv->uncore, ILK_DPFC_CHICKEN) |
 		   ILK_DPFC_DISABLE_DUMMY0);
 }
 
@@ -7278,42 +7278,42 @@ static void bdw_init_clock_gating(struct drm_i915_private *dev_priv)
 	enum pipe pipe;
 
 	/* WaFbcAsynchFlipDisableFbcQueue:hsw,bdw */
-	I915_WRITE(CHICKEN_PIPESL_1(PIPE_A),
-		   I915_READ(CHICKEN_PIPESL_1(PIPE_A)) |
+	intel_uncore_write(&dev_priv->uncore, CHICKEN_PIPESL_1(PIPE_A),
+		   intel_uncore_read(&dev_priv->uncore, CHICKEN_PIPESL_1(PIPE_A)) |
 		   HSW_FBCQ_DIS);
 
 	/* WaSwitchSolVfFArbitrationPriority:bdw */
-	I915_WRITE(GAM_ECOCHK, I915_READ(GAM_ECOCHK) | HSW_ECOCHK_ARB_PRIO_SOL);
+	intel_uncore_write(&dev_priv->uncore, GAM_ECOCHK, intel_uncore_read(&dev_priv->uncore, GAM_ECOCHK) | HSW_ECOCHK_ARB_PRIO_SOL);
 
 	/* WaPsrDPAMaskVBlankInSRD:bdw */
-	I915_WRITE(CHICKEN_PAR1_1,
-		   I915_READ(CHICKEN_PAR1_1) | DPA_MASK_VBLANK_SRD);
+	intel_uncore_write(&dev_priv->uncore, CHICKEN_PAR1_1,
+		   intel_uncore_read(&dev_priv->uncore, CHICKEN_PAR1_1) | DPA_MASK_VBLANK_SRD);
 
 	/* WaPsrDPRSUnmaskVBlankInSRD:bdw */
 	for_each_pipe(dev_priv, pipe) {
-		I915_WRITE(CHICKEN_PIPESL_1(pipe),
-			   I915_READ(CHICKEN_PIPESL_1(pipe)) |
+		intel_uncore_write(&dev_priv->uncore, CHICKEN_PIPESL_1(pipe),
+			   intel_uncore_read(&dev_priv->uncore, CHICKEN_PIPESL_1(pipe)) |
 			   BDW_DPRS_MASK_VBLANK_SRD);
 	}
 
 	/* WaVSRefCountFullforceMissDisable:bdw */
 	/* WaDSRefCountFullforceMissDisable:bdw */
-	I915_WRITE(GEN7_FF_THREAD_MODE,
-		   I915_READ(GEN7_FF_THREAD_MODE) &
+	intel_uncore_write(&dev_priv->uncore, GEN7_FF_THREAD_MODE,
+		   intel_uncore_read(&dev_priv->uncore, GEN7_FF_THREAD_MODE) &
 		   ~(GEN8_FF_DS_REF_CNT_FFME | GEN7_FF_VS_REF_CNT_FFME));
 
-	I915_WRITE(GEN6_RC_SLEEP_PSMI_CONTROL,
+	intel_uncore_write(&dev_priv->uncore, GEN6_RC_SLEEP_PSMI_CONTROL,
 		   _MASKED_BIT_ENABLE(GEN8_RC_SEMA_IDLE_MSG_DISABLE));
 
 	/* WaDisableSDEUnitClockGating:bdw */
-	I915_WRITE(GEN8_UCGCTL6, I915_READ(GEN8_UCGCTL6) |
+	intel_uncore_write(&dev_priv->uncore, GEN8_UCGCTL6, intel_uncore_read(&dev_priv->uncore, GEN8_UCGCTL6) |
 		   GEN8_SDEUNIT_CLOCK_GATE_DISABLE);
 
 	/* WaProgramL3SqcReg1Default:bdw */
 	gen8_set_l3sqc_credits(dev_priv, 30, 2);
 
 	/* WaKVMNotificationOnConfigChange:bdw */
-	I915_WRITE(CHICKEN_PAR2_1, I915_READ(CHICKEN_PAR2_1)
+	intel_uncore_write(&dev_priv->uncore, CHICKEN_PAR2_1, intel_uncore_read(&dev_priv->uncore, CHICKEN_PAR2_1)
 		   | KVM_CONFIG_CHANGE_NOTIFICATION_SELECT);
 
 	lpt_init_clock_gating(dev_priv);
@@ -7323,24 +7323,24 @@ static void bdw_init_clock_gating(struct drm_i915_private *dev_priv)
 	 * Also see the CHICKEN2 write in bdw_init_workarounds() to disable DOP
 	 * clock gating.
 	 */
-	I915_WRITE(GEN6_UCGCTL1,
-		   I915_READ(GEN6_UCGCTL1) | GEN6_EU_TCUNIT_CLOCK_GATE_DISABLE);
+	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL1,
+		   intel_uncore_read(&dev_priv->uncore, GEN6_UCGCTL1) | GEN6_EU_TCUNIT_CLOCK_GATE_DISABLE);
 }
 
 static void hsw_init_clock_gating(struct drm_i915_private *dev_priv)
 {
 	/* WaFbcAsynchFlipDisableFbcQueue:hsw,bdw */
-	I915_WRITE(CHICKEN_PIPESL_1(PIPE_A),
-		   I915_READ(CHICKEN_PIPESL_1(PIPE_A)) |
+	intel_uncore_write(&dev_priv->uncore, CHICKEN_PIPESL_1(PIPE_A),
+		   intel_uncore_read(&dev_priv->uncore, CHICKEN_PIPESL_1(PIPE_A)) |
 		   HSW_FBCQ_DIS);
 
 	/* This is required by WaCatErrorRejectionIssue:hsw */
-	I915_WRITE(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
-		   I915_READ(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
+	intel_uncore_write(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
+		   intel_uncore_read(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
 		   GEN7_SQ_CHICKEN_MBCUNIT_SQINTMOB);
 
 	/* WaSwitchSolVfFArbitrationPriority:hsw */
-	I915_WRITE(GAM_ECOCHK, I915_READ(GAM_ECOCHK) | HSW_ECOCHK_ARB_PRIO_SOL);
+	intel_uncore_write(&dev_priv->uncore, GAM_ECOCHK, intel_uncore_read(&dev_priv->uncore, GAM_ECOCHK) | HSW_ECOCHK_ARB_PRIO_SOL);
 
 	lpt_init_clock_gating(dev_priv);
 }
@@ -7349,26 +7349,26 @@ static void ivb_init_clock_gating(struct drm_i915_private *dev_priv)
 {
 	u32 snpcr;
 
-	I915_WRITE(ILK_DSPCLK_GATE_D, ILK_VRHUNIT_CLOCK_GATE_DISABLE);
+	intel_uncore_write(&dev_priv->uncore, ILK_DSPCLK_GATE_D, ILK_VRHUNIT_CLOCK_GATE_DISABLE);
 
 	/* WaFbcAsynchFlipDisableFbcQueue:ivb */
-	I915_WRITE(ILK_DISPLAY_CHICKEN1,
-		   I915_READ(ILK_DISPLAY_CHICKEN1) |
+	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1,
+		   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1) |
 		   ILK_FBCQ_DIS);
 
 	/* WaDisableBackToBackFlipFix:ivb */
-	I915_WRITE(IVB_CHICKEN3,
+	intel_uncore_write(&dev_priv->uncore, IVB_CHICKEN3,
 		   CHICKEN3_DGMG_REQ_OUT_FIX_DISABLE |
 		   CHICKEN3_DGMG_DONE_FIX_DISABLE);
 
 	if (IS_IVB_GT1(dev_priv))
-		I915_WRITE(GEN7_ROW_CHICKEN2,
+		intel_uncore_write(&dev_priv->uncore, GEN7_ROW_CHICKEN2,
 			   _MASKED_BIT_ENABLE(DOP_CLOCK_GATING_DISABLE));
 	else {
 		/* must write both registers */
-		I915_WRITE(GEN7_ROW_CHICKEN2,
+		intel_uncore_write(&dev_priv->uncore, GEN7_ROW_CHICKEN2,
 			   _MASKED_BIT_ENABLE(DOP_CLOCK_GATING_DISABLE));
-		I915_WRITE(GEN7_ROW_CHICKEN2_GT2,
+		intel_uncore_write(&dev_priv->uncore, GEN7_ROW_CHICKEN2_GT2,
 			   _MASKED_BIT_ENABLE(DOP_CLOCK_GATING_DISABLE));
 	}
 
@@ -7376,20 +7376,20 @@ static void ivb_init_clock_gating(struct drm_i915_private *dev_priv)
 	 * According to the spec, bit 13 (RCZUNIT) must be set on IVB.
 	 * This implements the WaDisableRCZUnitClockGating:ivb workaround.
 	 */
-	I915_WRITE(GEN6_UCGCTL2,
+	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL2,
 		   GEN6_RCZUNIT_CLOCK_GATE_DISABLE);
 
 	/* This is required by WaCatErrorRejectionIssue:ivb */
-	I915_WRITE(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
-			I915_READ(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
+	intel_uncore_write(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
+			intel_uncore_read(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
 			GEN7_SQ_CHICKEN_MBCUNIT_SQINTMOB);
 
 	g4x_disable_trickle_feed(dev_priv);
 
-	snpcr = I915_READ(GEN6_MBCUNIT_SNPCR);
+	snpcr = intel_uncore_read(&dev_priv->uncore, GEN6_MBCUNIT_SNPCR);
 	snpcr &= ~GEN6_MBC_SNPCR_MASK;
 	snpcr |= GEN6_MBC_SNPCR_MED;
-	I915_WRITE(GEN6_MBCUNIT_SNPCR, snpcr);
+	intel_uncore_write(&dev_priv->uncore, GEN6_MBCUNIT_SNPCR, snpcr);
 
 	if (!HAS_PCH_NOP(dev_priv))
 		cpt_init_clock_gating(dev_priv);
@@ -7400,58 +7400,58 @@ static void ivb_init_clock_gating(struct drm_i915_private *dev_priv)
 static void vlv_init_clock_gating(struct drm_i915_private *dev_priv)
 {
 	/* WaDisableBackToBackFlipFix:vlv */
-	I915_WRITE(IVB_CHICKEN3,
+	intel_uncore_write(&dev_priv->uncore, IVB_CHICKEN3,
 		   CHICKEN3_DGMG_REQ_OUT_FIX_DISABLE |
 		   CHICKEN3_DGMG_DONE_FIX_DISABLE);
 
 	/* WaDisableDopClockGating:vlv */
-	I915_WRITE(GEN7_ROW_CHICKEN2,
+	intel_uncore_write(&dev_priv->uncore, GEN7_ROW_CHICKEN2,
 		   _MASKED_BIT_ENABLE(DOP_CLOCK_GATING_DISABLE));
 
 	/* This is required by WaCatErrorRejectionIssue:vlv */
-	I915_WRITE(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
-		   I915_READ(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
+	intel_uncore_write(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
+		   intel_uncore_read(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
 		   GEN7_SQ_CHICKEN_MBCUNIT_SQINTMOB);
 
 	/*
 	 * According to the spec, bit 13 (RCZUNIT) must be set on IVB.
 	 * This implements the WaDisableRCZUnitClockGating:vlv workaround.
 	 */
-	I915_WRITE(GEN6_UCGCTL2,
+	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL2,
 		   GEN6_RCZUNIT_CLOCK_GATE_DISABLE);
 
 	/* WaDisableL3Bank2xClockGate:vlv
 	 * Disabling L3 clock gating- MMIO 940c[25] = 1
 	 * Set bit 25, to disable L3_BANK_2x_CLK_GATING */
-	I915_WRITE(GEN7_UCGCTL4,
-		   I915_READ(GEN7_UCGCTL4) | GEN7_L3BANK2X_CLOCK_GATE_DISABLE);
+	intel_uncore_write(&dev_priv->uncore, GEN7_UCGCTL4,
+		   intel_uncore_read(&dev_priv->uncore, GEN7_UCGCTL4) | GEN7_L3BANK2X_CLOCK_GATE_DISABLE);
 
 	/*
 	 * WaDisableVLVClockGating_VBIIssue:vlv
 	 * Disable clock gating on th GCFG unit to prevent a delay
 	 * in the reporting of vblank events.
 	 */
-	I915_WRITE(VLV_GUNIT_CLOCK_GATE, GCFG_DIS);
+	intel_uncore_write(&dev_priv->uncore, VLV_GUNIT_CLOCK_GATE, GCFG_DIS);
 }
 
 static void chv_init_clock_gating(struct drm_i915_private *dev_priv)
 {
 	/* WaVSRefCountFullforceMissDisable:chv */
 	/* WaDSRefCountFullforceMissDisable:chv */
-	I915_WRITE(GEN7_FF_THREAD_MODE,
-		   I915_READ(GEN7_FF_THREAD_MODE) &
+	intel_uncore_write(&dev_priv->uncore, GEN7_FF_THREAD_MODE,
+		   intel_uncore_read(&dev_priv->uncore, GEN7_FF_THREAD_MODE) &
 		   ~(GEN8_FF_DS_REF_CNT_FFME | GEN7_FF_VS_REF_CNT_FFME));
 
 	/* WaDisableSemaphoreAndSyncFlipWait:chv */
-	I915_WRITE(GEN6_RC_SLEEP_PSMI_CONTROL,
+	intel_uncore_write(&dev_priv->uncore, GEN6_RC_SLEEP_PSMI_CONTROL,
 		   _MASKED_BIT_ENABLE(GEN8_RC_SEMA_IDLE_MSG_DISABLE));
 
 	/* WaDisableCSUnitClockGating:chv */
-	I915_WRITE(GEN6_UCGCTL1, I915_READ(GEN6_UCGCTL1) |
+	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL1, intel_uncore_read(&dev_priv->uncore, GEN6_UCGCTL1) |
 		   GEN6_CSUNIT_CLOCK_GATE_DISABLE);
 
 	/* WaDisableSDEUnitClockGating:chv */
-	I915_WRITE(GEN8_UCGCTL6, I915_READ(GEN8_UCGCTL6) |
+	intel_uncore_write(&dev_priv->uncore, GEN8_UCGCTL6, intel_uncore_read(&dev_priv->uncore, GEN8_UCGCTL6) |
 		   GEN8_SDEUNIT_CLOCK_GATE_DISABLE);
 
 	/*
@@ -7466,17 +7466,17 @@ static void g4x_init_clock_gating(struct drm_i915_private *dev_priv)
 {
 	u32 dspclk_gate;
 
-	I915_WRITE(RENCLK_GATE_D1, 0);
-	I915_WRITE(RENCLK_GATE_D2, VF_UNIT_CLOCK_GATE_DISABLE |
+	intel_uncore_write(&dev_priv->uncore, RENCLK_GATE_D1, 0);
+	intel_uncore_write(&dev_priv->uncore, RENCLK_GATE_D2, VF_UNIT_CLOCK_GATE_DISABLE |
 		   GS_UNIT_CLOCK_GATE_DISABLE |
 		   CL_UNIT_CLOCK_GATE_DISABLE);
-	I915_WRITE(RAMCLK_GATE_D, 0);
+	intel_uncore_write(&dev_priv->uncore, RAMCLK_GATE_D, 0);
 	dspclk_gate = VRHUNIT_CLOCK_GATE_DISABLE |
 		OVRUNIT_CLOCK_GATE_DISABLE |
 		OVCUNIT_CLOCK_GATE_DISABLE;
 	if (IS_GM45(dev_priv))
 		dspclk_gate |= DSSUNIT_CLOCK_GATE_DISABLE;
-	I915_WRITE(DSPCLK_GATE_D, dspclk_gate);
+	intel_uncore_write(&dev_priv->uncore, DSPCLK_GATE_D, dspclk_gate);
 
 	g4x_disable_trickle_feed(dev_priv);
 }
@@ -7497,49 +7497,49 @@ static void i965gm_init_clock_gating(struct drm_i915_private *dev_priv)
 
 static void i965g_init_clock_gating(struct drm_i915_private *dev_priv)
 {
-	I915_WRITE(RENCLK_GATE_D1, I965_RCZ_CLOCK_GATE_DISABLE |
+	intel_uncore_write(&dev_priv->uncore, RENCLK_GATE_D1, I965_RCZ_CLOCK_GATE_DISABLE |
 		   I965_RCC_CLOCK_GATE_DISABLE |
 		   I965_RCPB_CLOCK_GATE_DISABLE |
 		   I965_ISC_CLOCK_GATE_DISABLE |
 		   I965_FBC_CLOCK_GATE_DISABLE);
-	I915_WRITE(RENCLK_GATE_D2, 0);
-	I915_WRITE(MI_ARB_STATE,
+	intel_uncore_write(&dev_priv->uncore, RENCLK_GATE_D2, 0);
+	intel_uncore_write(&dev_priv->uncore, MI_ARB_STATE,
 		   _MASKED_BIT_ENABLE(MI_ARB_DISPLAY_TRICKLE_FEED_DISABLE));
 }
 
 static void gen3_init_clock_gating(struct drm_i915_private *dev_priv)
 {
-	u32 dstate = I915_READ(D_STATE);
+	u32 dstate = intel_uncore_read(&dev_priv->uncore, D_STATE);
 
 	dstate |= DSTATE_PLL_D3_OFF | DSTATE_GFX_CLOCK_GATING |
 		DSTATE_DOT_CLOCK_GATING;
-	I915_WRITE(D_STATE, dstate);
+	intel_uncore_write(&dev_priv->uncore, D_STATE, dstate);
 
 	if (IS_PINEVIEW(dev_priv))
-		I915_WRITE(ECOSKPD, _MASKED_BIT_ENABLE(ECO_GATING_CX_ONLY));
+		intel_uncore_write(&dev_priv->uncore, ECOSKPD, _MASKED_BIT_ENABLE(ECO_GATING_CX_ONLY));
 
 	/* IIR "flip pending" means done if this bit is set */
-	I915_WRITE(ECOSKPD, _MASKED_BIT_DISABLE(ECO_FLIP_DONE));
+	intel_uncore_write(&dev_priv->uncore, ECOSKPD, _MASKED_BIT_DISABLE(ECO_FLIP_DONE));
 
 	/* interrupts should cause a wake up from C3 */
-	I915_WRITE(INSTPM, _MASKED_BIT_ENABLE(INSTPM_AGPBUSY_INT_EN));
+	intel_uncore_write(&dev_priv->uncore, INSTPM, _MASKED_BIT_ENABLE(INSTPM_AGPBUSY_INT_EN));
 
 	/* On GEN3 we really need to make sure the ARB C3 LP bit is set */
-	I915_WRITE(MI_ARB_STATE, _MASKED_BIT_ENABLE(MI_ARB_C3_LP_WRITE_ENABLE));
+	intel_uncore_write(&dev_priv->uncore, MI_ARB_STATE, _MASKED_BIT_ENABLE(MI_ARB_C3_LP_WRITE_ENABLE));
 
-	I915_WRITE(MI_ARB_STATE,
+	intel_uncore_write(&dev_priv->uncore, MI_ARB_STATE,
 		   _MASKED_BIT_ENABLE(MI_ARB_DISPLAY_TRICKLE_FEED_DISABLE));
 }
 
 static void i85x_init_clock_gating(struct drm_i915_private *dev_priv)
 {
-	I915_WRITE(RENCLK_GATE_D1, SV_CLOCK_GATE_DISABLE);
+	intel_uncore_write(&dev_priv->uncore, RENCLK_GATE_D1, SV_CLOCK_GATE_DISABLE);
 
 	/* interrupts should cause a wake up from C3 */
-	I915_WRITE(MI_STATE, _MASKED_BIT_ENABLE(MI_AGPBUSY_INT_EN) |
+	intel_uncore_write(&dev_priv->uncore, MI_STATE, _MASKED_BIT_ENABLE(MI_AGPBUSY_INT_EN) |
 		   _MASKED_BIT_DISABLE(MI_AGPBUSY_830_MODE));
 
-	I915_WRITE(MEM_MODE,
+	intel_uncore_write(&dev_priv->uncore, MEM_MODE,
 		   _MASKED_BIT_ENABLE(MEM_DISPLAY_TRICKLE_FEED_DISABLE));
 
 	/*
@@ -7549,13 +7549,13 @@ static void i85x_init_clock_gating(struct drm_i915_private *dev_priv)
 	 * abosultely nothing) would not allow FBC to recompress
 	 * until a 2D blit occurs.
 	 */
-	I915_WRITE(SCPD0,
+	intel_uncore_write(&dev_priv->uncore, SCPD0,
 		   _MASKED_BIT_ENABLE(SCPD_FBC_IGNORE_3D));
 }
 
 static void i830_init_clock_gating(struct drm_i915_private *dev_priv)
 {
-	I915_WRITE(MEM_MODE,
+	intel_uncore_write(&dev_priv->uncore, MEM_MODE,
 		   _MASKED_BIT_ENABLE(MEM_DISPLAY_A_TRICKLE_FEED_DISABLE) |
 		   _MASKED_BIT_ENABLE(MEM_DISPLAY_B_TRICKLE_FEED_DISABLE));
 }
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [Intel-gfx] [PATCH 8/9] drm/i915/irq: replace I915_READ()/WRITE() with intel_uncore_read()/write()
  2020-11-12 11:44 [Intel-gfx] [PATCH 0/9] drm/i915: nuke remaining legacy reg helpers (I915_READ/WRITE etc.) Jani Nikula
                   ` (6 preceding siblings ...)
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 7/9] drm/i915/pm: replace I915_READ()/WRITE() with intel_uncore_read()/write() Jani Nikula
@ 2020-11-12 11:44 ` Jani Nikula
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 9/9] drm/i915: remove last traces of I915_READ(), I915_WRITE() and POSTING_READ() Jani Nikula
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 26+ messages in thread
From: Jani Nikula @ 2020-11-12 11:44 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Arguably some of these should use intel_de_read() or intel_de_write(),
however not all. Prioritize I915_READ() and I915_WRITE() removal in
general over migrating to the pedantically correct replacements right
away.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_irq.c | 336 ++++++++++++++++----------------
 1 file changed, 168 insertions(+), 168 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 01f5749a5905..3f43dfe5fffa 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -309,10 +309,10 @@ i915_hotplug_interrupt_update_locked(struct drm_i915_private *dev_priv,
 	lockdep_assert_held(&dev_priv->irq_lock);
 	drm_WARN_ON(&dev_priv->drm, bits & ~mask);
 
-	val = I915_READ(PORT_HOTPLUG_EN);
+	val = intel_uncore_read(&dev_priv->uncore, PORT_HOTPLUG_EN);
 	val &= ~mask;
 	val |= bits;
-	I915_WRITE(PORT_HOTPLUG_EN, val);
+	intel_uncore_write(&dev_priv->uncore, PORT_HOTPLUG_EN, val);
 }
 
 /**
@@ -358,8 +358,8 @@ void ilk_update_display_irq(struct drm_i915_private *dev_priv,
 	if (new_val != dev_priv->irq_mask &&
 	    !drm_WARN_ON(&dev_priv->drm, !intel_irqs_enabled(dev_priv))) {
 		dev_priv->irq_mask = new_val;
-		I915_WRITE(DEIMR, dev_priv->irq_mask);
-		POSTING_READ(DEIMR);
+		intel_uncore_write(&dev_priv->uncore, DEIMR, dev_priv->irq_mask);
+		intel_uncore_posting_read(&dev_priv->uncore, DEIMR);
 	}
 }
 
@@ -383,15 +383,15 @@ static void bdw_update_port_irq(struct drm_i915_private *dev_priv,
 	if (drm_WARN_ON(&dev_priv->drm, !intel_irqs_enabled(dev_priv)))
 		return;
 
-	old_val = I915_READ(GEN8_DE_PORT_IMR);
+	old_val = intel_uncore_read(&dev_priv->uncore, GEN8_DE_PORT_IMR);
 
 	new_val = old_val;
 	new_val &= ~interrupt_mask;
 	new_val |= (~enabled_irq_mask & interrupt_mask);
 
 	if (new_val != old_val) {
-		I915_WRITE(GEN8_DE_PORT_IMR, new_val);
-		POSTING_READ(GEN8_DE_PORT_IMR);
+		intel_uncore_write(&dev_priv->uncore, GEN8_DE_PORT_IMR, new_val);
+		intel_uncore_posting_read(&dev_priv->uncore, GEN8_DE_PORT_IMR);
 	}
 }
 
@@ -422,8 +422,8 @@ void bdw_update_pipe_irq(struct drm_i915_private *dev_priv,
 
 	if (new_val != dev_priv->de_irq_mask[pipe]) {
 		dev_priv->de_irq_mask[pipe] = new_val;
-		I915_WRITE(GEN8_DE_PIPE_IMR(pipe), dev_priv->de_irq_mask[pipe]);
-		POSTING_READ(GEN8_DE_PIPE_IMR(pipe));
+		intel_uncore_write(&dev_priv->uncore, GEN8_DE_PIPE_IMR(pipe), dev_priv->de_irq_mask[pipe]);
+		intel_uncore_posting_read(&dev_priv->uncore, GEN8_DE_PIPE_IMR(pipe));
 	}
 }
 
@@ -437,7 +437,7 @@ void ibx_display_interrupt_update(struct drm_i915_private *dev_priv,
 				  u32 interrupt_mask,
 				  u32 enabled_irq_mask)
 {
-	u32 sdeimr = I915_READ(SDEIMR);
+	u32 sdeimr = intel_uncore_read(&dev_priv->uncore, SDEIMR);
 	sdeimr &= ~interrupt_mask;
 	sdeimr |= (~enabled_irq_mask & interrupt_mask);
 
@@ -448,8 +448,8 @@ void ibx_display_interrupt_update(struct drm_i915_private *dev_priv,
 	if (drm_WARN_ON(&dev_priv->drm, !intel_irqs_enabled(dev_priv)))
 		return;
 
-	I915_WRITE(SDEIMR, sdeimr);
-	POSTING_READ(SDEIMR);
+	intel_uncore_write(&dev_priv->uncore, SDEIMR, sdeimr);
+	intel_uncore_posting_read(&dev_priv->uncore, SDEIMR);
 }
 
 u32 i915_pipestat_enable_mask(struct drm_i915_private *dev_priv,
@@ -515,8 +515,8 @@ void i915_enable_pipestat(struct drm_i915_private *dev_priv,
 	dev_priv->pipestat_irq_mask[pipe] |= status_mask;
 	enable_mask = i915_pipestat_enable_mask(dev_priv, pipe);
 
-	I915_WRITE(reg, enable_mask | status_mask);
-	POSTING_READ(reg);
+	intel_uncore_write(&dev_priv->uncore, reg, enable_mask | status_mask);
+	intel_uncore_posting_read(&dev_priv->uncore, reg);
 }
 
 void i915_disable_pipestat(struct drm_i915_private *dev_priv,
@@ -538,8 +538,8 @@ void i915_disable_pipestat(struct drm_i915_private *dev_priv,
 	dev_priv->pipestat_irq_mask[pipe] &= ~status_mask;
 	enable_mask = i915_pipestat_enable_mask(dev_priv, pipe);
 
-	I915_WRITE(reg, enable_mask | status_mask);
-	POSTING_READ(reg);
+	intel_uncore_write(&dev_priv->uncore, reg, enable_mask | status_mask);
+	intel_uncore_posting_read(&dev_priv->uncore, reg);
 }
 
 static bool i915_has_asle(struct drm_i915_private *dev_priv)
@@ -697,7 +697,7 @@ u32 g4x_get_vblank_counter(struct drm_crtc *crtc)
 	if (!vblank->max_vblank_count)
 		return 0;
 
-	return I915_READ(PIPE_FRMCOUNT_G4X(pipe));
+	return intel_uncore_read(&dev_priv->uncore, PIPE_FRMCOUNT_G4X(pipe));
 }
 
 /*
@@ -986,9 +986,9 @@ static void ivb_parity_work(struct work_struct *work)
 	if (drm_WARN_ON(&dev_priv->drm, !dev_priv->l3_parity.which_slice))
 		goto out;
 
-	misccpctl = I915_READ(GEN7_MISCCPCTL);
-	I915_WRITE(GEN7_MISCCPCTL, misccpctl & ~GEN7_DOP_CLOCK_GATE_ENABLE);
-	POSTING_READ(GEN7_MISCCPCTL);
+	misccpctl = intel_uncore_read(&dev_priv->uncore, GEN7_MISCCPCTL);
+	intel_uncore_write(&dev_priv->uncore, GEN7_MISCCPCTL, misccpctl & ~GEN7_DOP_CLOCK_GATE_ENABLE);
+	intel_uncore_posting_read(&dev_priv->uncore, GEN7_MISCCPCTL);
 
 	while ((slice = ffs(dev_priv->l3_parity.which_slice)) != 0) {
 		i915_reg_t reg;
@@ -1002,13 +1002,13 @@ static void ivb_parity_work(struct work_struct *work)
 
 		reg = GEN7_L3CDERRST1(slice);
 
-		error_status = I915_READ(reg);
+		error_status = intel_uncore_read(&dev_priv->uncore, reg);
 		row = GEN7_PARITY_ERROR_ROW(error_status);
 		bank = GEN7_PARITY_ERROR_BANK(error_status);
 		subbank = GEN7_PARITY_ERROR_SUBBANK(error_status);
 
-		I915_WRITE(reg, GEN7_PARITY_ERROR_VALID | GEN7_L3CDERRST1_ENABLE);
-		POSTING_READ(reg);
+		intel_uncore_write(&dev_priv->uncore, reg, GEN7_PARITY_ERROR_VALID | GEN7_L3CDERRST1_ENABLE);
+		intel_uncore_posting_read(&dev_priv->uncore, reg);
 
 		parity_event[0] = I915_L3_PARITY_UEVENT "=1";
 		parity_event[1] = kasprintf(GFP_KERNEL, "ROW=%d", row);
@@ -1029,7 +1029,7 @@ static void ivb_parity_work(struct work_struct *work)
 		kfree(parity_event[1]);
 	}
 
-	I915_WRITE(GEN7_MISCCPCTL, misccpctl);
+	intel_uncore_write(&dev_priv->uncore, GEN7_MISCCPCTL, misccpctl);
 
 out:
 	drm_WARN_ON(&dev_priv->drm, dev_priv->l3_parity.which_slice);
@@ -1319,7 +1319,7 @@ static void hsw_pipe_crc_irq_handler(struct drm_i915_private *dev_priv,
 				     enum pipe pipe)
 {
 	display_pipe_crc_irq_handler(dev_priv, pipe,
-				     I915_READ(PIPE_CRC_RES_1_IVB(pipe)),
+				     intel_uncore_read(&dev_priv->uncore, PIPE_CRC_RES_1_IVB(pipe)),
 				     0, 0, 0, 0);
 }
 
@@ -1327,11 +1327,11 @@ static void ivb_pipe_crc_irq_handler(struct drm_i915_private *dev_priv,
 				     enum pipe pipe)
 {
 	display_pipe_crc_irq_handler(dev_priv, pipe,
-				     I915_READ(PIPE_CRC_RES_1_IVB(pipe)),
-				     I915_READ(PIPE_CRC_RES_2_IVB(pipe)),
-				     I915_READ(PIPE_CRC_RES_3_IVB(pipe)),
-				     I915_READ(PIPE_CRC_RES_4_IVB(pipe)),
-				     I915_READ(PIPE_CRC_RES_5_IVB(pipe)));
+				     intel_uncore_read(&dev_priv->uncore, PIPE_CRC_RES_1_IVB(pipe)),
+				     intel_uncore_read(&dev_priv->uncore, PIPE_CRC_RES_2_IVB(pipe)),
+				     intel_uncore_read(&dev_priv->uncore, PIPE_CRC_RES_3_IVB(pipe)),
+				     intel_uncore_read(&dev_priv->uncore, PIPE_CRC_RES_4_IVB(pipe)),
+				     intel_uncore_read(&dev_priv->uncore, PIPE_CRC_RES_5_IVB(pipe)));
 }
 
 static void i9xx_pipe_crc_irq_handler(struct drm_i915_private *dev_priv,
@@ -1340,19 +1340,19 @@ static void i9xx_pipe_crc_irq_handler(struct drm_i915_private *dev_priv,
 	u32 res1, res2;
 
 	if (INTEL_GEN(dev_priv) >= 3)
-		res1 = I915_READ(PIPE_CRC_RES_RES1_I915(pipe));
+		res1 = intel_uncore_read(&dev_priv->uncore, PIPE_CRC_RES_RES1_I915(pipe));
 	else
 		res1 = 0;
 
 	if (INTEL_GEN(dev_priv) >= 5 || IS_G4X(dev_priv))
-		res2 = I915_READ(PIPE_CRC_RES_RES2_G4X(pipe));
+		res2 = intel_uncore_read(&dev_priv->uncore, PIPE_CRC_RES_RES2_G4X(pipe));
 	else
 		res2 = 0;
 
 	display_pipe_crc_irq_handler(dev_priv, pipe,
-				     I915_READ(PIPE_CRC_RES_RED(pipe)),
-				     I915_READ(PIPE_CRC_RES_GREEN(pipe)),
-				     I915_READ(PIPE_CRC_RES_BLUE(pipe)),
+				     intel_uncore_read(&dev_priv->uncore, PIPE_CRC_RES_RED(pipe)),
+				     intel_uncore_read(&dev_priv->uncore, PIPE_CRC_RES_GREEN(pipe)),
+				     intel_uncore_read(&dev_priv->uncore, PIPE_CRC_RES_BLUE(pipe)),
 				     res1, res2);
 }
 
@@ -1361,7 +1361,7 @@ static void i9xx_pipestat_irq_reset(struct drm_i915_private *dev_priv)
 	enum pipe pipe;
 
 	for_each_pipe(dev_priv, pipe) {
-		I915_WRITE(PIPESTAT(pipe),
+		intel_uncore_write(&dev_priv->uncore, PIPESTAT(pipe),
 			   PIPESTAT_INT_STATUS_MASK |
 			   PIPE_FIFO_UNDERRUN_STATUS);
 
@@ -1415,7 +1415,7 @@ static void i9xx_pipestat_irq_ack(struct drm_i915_private *dev_priv,
 			continue;
 
 		reg = PIPESTAT(pipe);
-		pipe_stats[pipe] = I915_READ(reg) & status_mask;
+		pipe_stats[pipe] = intel_uncore_read(&dev_priv->uncore, reg) & status_mask;
 		enable_mask = i915_pipestat_enable_mask(dev_priv, pipe);
 
 		/*
@@ -1428,8 +1428,8 @@ static void i9xx_pipestat_irq_ack(struct drm_i915_private *dev_priv,
 		 * an interrupt is still pending.
 		 */
 		if (pipe_stats[pipe]) {
-			I915_WRITE(reg, pipe_stats[pipe]);
-			I915_WRITE(reg, enable_mask);
+			intel_uncore_write(&dev_priv->uncore, reg, pipe_stats[pipe]);
+			intel_uncore_write(&dev_priv->uncore, reg, enable_mask);
 		}
 	}
 	spin_unlock(&dev_priv->irq_lock);
@@ -1545,18 +1545,18 @@ static u32 i9xx_hpd_irq_ack(struct drm_i915_private *dev_priv)
 	 * bits can itself generate a new hotplug interrupt :(
 	 */
 	for (i = 0; i < 10; i++) {
-		u32 tmp = I915_READ(PORT_HOTPLUG_STAT) & hotplug_status_mask;
+		u32 tmp = intel_uncore_read(&dev_priv->uncore, PORT_HOTPLUG_STAT) & hotplug_status_mask;
 
 		if (tmp == 0)
 			return hotplug_status;
 
 		hotplug_status |= tmp;
-		I915_WRITE(PORT_HOTPLUG_STAT, hotplug_status);
+		intel_uncore_write(&dev_priv->uncore, PORT_HOTPLUG_STAT, hotplug_status);
 	}
 
 	drm_WARN_ONCE(&dev_priv->drm, 1,
 		      "PORT_HOTPLUG_STAT did not clear (0x%08x)\n",
-		      I915_READ(PORT_HOTPLUG_STAT));
+		      intel_uncore_read(&dev_priv->uncore, PORT_HOTPLUG_STAT));
 
 	return hotplug_status;
 }
@@ -1605,9 +1605,9 @@ static irqreturn_t valleyview_irq_handler(int irq, void *arg)
 		u32 hotplug_status = 0;
 		u32 ier = 0;
 
-		gt_iir = I915_READ(GTIIR);
-		pm_iir = I915_READ(GEN6_PMIIR);
-		iir = I915_READ(VLV_IIR);
+		gt_iir = intel_uncore_read(&dev_priv->uncore, GTIIR);
+		pm_iir = intel_uncore_read(&dev_priv->uncore, GEN6_PMIIR);
+		iir = intel_uncore_read(&dev_priv->uncore, VLV_IIR);
 
 		if (gt_iir == 0 && pm_iir == 0 && iir == 0)
 			break;
@@ -1627,14 +1627,14 @@ static irqreturn_t valleyview_irq_handler(int irq, void *arg)
 		 * don't end up clearing all the VLV_IIR, GT_IIR, GEN6_PMIIR
 		 * bits this time around.
 		 */
-		I915_WRITE(VLV_MASTER_IER, 0);
-		ier = I915_READ(VLV_IER);
-		I915_WRITE(VLV_IER, 0);
+		intel_uncore_write(&dev_priv->uncore, VLV_MASTER_IER, 0);
+		ier = intel_uncore_read(&dev_priv->uncore, VLV_IER);
+		intel_uncore_write(&dev_priv->uncore, VLV_IER, 0);
 
 		if (gt_iir)
-			I915_WRITE(GTIIR, gt_iir);
+			intel_uncore_write(&dev_priv->uncore, GTIIR, gt_iir);
 		if (pm_iir)
-			I915_WRITE(GEN6_PMIIR, pm_iir);
+			intel_uncore_write(&dev_priv->uncore, GEN6_PMIIR, pm_iir);
 
 		if (iir & I915_DISPLAY_PORT_INTERRUPT)
 			hotplug_status = i9xx_hpd_irq_ack(dev_priv);
@@ -1652,10 +1652,10 @@ static irqreturn_t valleyview_irq_handler(int irq, void *arg)
 		 * from PIPESTAT/PORT_HOTPLUG_STAT, hence clear it last.
 		 */
 		if (iir)
-			I915_WRITE(VLV_IIR, iir);
+			intel_uncore_write(&dev_priv->uncore, VLV_IIR, iir);
 
-		I915_WRITE(VLV_IER, ier);
-		I915_WRITE(VLV_MASTER_IER, MASTER_INTERRUPT_ENABLE);
+		intel_uncore_write(&dev_priv->uncore, VLV_IER, ier);
+		intel_uncore_write(&dev_priv->uncore, VLV_MASTER_IER, MASTER_INTERRUPT_ENABLE);
 
 		if (gt_iir)
 			gen6_gt_irq_handler(&dev_priv->gt, gt_iir);
@@ -1690,8 +1690,8 @@ static irqreturn_t cherryview_irq_handler(int irq, void *arg)
 		u32 hotplug_status = 0;
 		u32 ier = 0;
 
-		master_ctl = I915_READ(GEN8_MASTER_IRQ) & ~GEN8_MASTER_IRQ_CONTROL;
-		iir = I915_READ(VLV_IIR);
+		master_ctl = intel_uncore_read(&dev_priv->uncore, GEN8_MASTER_IRQ) & ~GEN8_MASTER_IRQ_CONTROL;
+		iir = intel_uncore_read(&dev_priv->uncore, VLV_IIR);
 
 		if (master_ctl == 0 && iir == 0)
 			break;
@@ -1711,9 +1711,9 @@ static irqreturn_t cherryview_irq_handler(int irq, void *arg)
 		 * don't end up clearing all the VLV_IIR and GEN8_MASTER_IRQ_CONTROL
 		 * bits this time around.
 		 */
-		I915_WRITE(GEN8_MASTER_IRQ, 0);
-		ier = I915_READ(VLV_IER);
-		I915_WRITE(VLV_IER, 0);
+		intel_uncore_write(&dev_priv->uncore, GEN8_MASTER_IRQ, 0);
+		ier = intel_uncore_read(&dev_priv->uncore, VLV_IER);
+		intel_uncore_write(&dev_priv->uncore, VLV_IER, 0);
 
 		gen8_gt_irq_handler(&dev_priv->gt, master_ctl);
 
@@ -1734,10 +1734,10 @@ static irqreturn_t cherryview_irq_handler(int irq, void *arg)
 		 * from PIPESTAT/PORT_HOTPLUG_STAT, hence clear it last.
 		 */
 		if (iir)
-			I915_WRITE(VLV_IIR, iir);
+			intel_uncore_write(&dev_priv->uncore, VLV_IIR, iir);
 
-		I915_WRITE(VLV_IER, ier);
-		I915_WRITE(GEN8_MASTER_IRQ, GEN8_MASTER_IRQ_CONTROL);
+		intel_uncore_write(&dev_priv->uncore, VLV_IER, ier);
+		intel_uncore_write(&dev_priv->uncore, GEN8_MASTER_IRQ, GEN8_MASTER_IRQ_CONTROL);
 
 		if (hotplug_status)
 			i9xx_hpd_irq_handler(dev_priv, hotplug_status);
@@ -1761,7 +1761,7 @@ static void ibx_hpd_irq_handler(struct drm_i915_private *dev_priv,
 	 * zero. Not acking leads to "The master control interrupt lied (SDE)!"
 	 * errors.
 	 */
-	dig_hotplug_reg = I915_READ(PCH_PORT_HOTPLUG);
+	dig_hotplug_reg = intel_uncore_read(&dev_priv->uncore, PCH_PORT_HOTPLUG);
 	if (!hotplug_trigger) {
 		u32 mask = PORTA_HOTPLUG_STATUS_MASK |
 			PORTD_HOTPLUG_STATUS_MASK |
@@ -1770,7 +1770,7 @@ static void ibx_hpd_irq_handler(struct drm_i915_private *dev_priv,
 		dig_hotplug_reg &= ~mask;
 	}
 
-	I915_WRITE(PCH_PORT_HOTPLUG, dig_hotplug_reg);
+	intel_uncore_write(&dev_priv->uncore, PCH_PORT_HOTPLUG, dig_hotplug_reg);
 	if (!hotplug_trigger)
 		return;
 
@@ -1815,7 +1815,7 @@ static void ibx_irq_handler(struct drm_i915_private *dev_priv, u32 pch_iir)
 		for_each_pipe(dev_priv, pipe)
 			drm_dbg(&dev_priv->drm, "  pipe %c FDI IIR: 0x%08x\n",
 				pipe_name(pipe),
-				I915_READ(FDI_RX_IIR(pipe)));
+				intel_uncore_read(&dev_priv->uncore, FDI_RX_IIR(pipe)));
 	}
 
 	if (pch_iir & (SDE_TRANSB_CRC_DONE | SDE_TRANSA_CRC_DONE))
@@ -1834,7 +1834,7 @@ static void ibx_irq_handler(struct drm_i915_private *dev_priv, u32 pch_iir)
 
 static void ivb_err_int_handler(struct drm_i915_private *dev_priv)
 {
-	u32 err_int = I915_READ(GEN7_ERR_INT);
+	u32 err_int = intel_uncore_read(&dev_priv->uncore, GEN7_ERR_INT);
 	enum pipe pipe;
 
 	if (err_int & ERR_INT_POISON)
@@ -1852,12 +1852,12 @@ static void ivb_err_int_handler(struct drm_i915_private *dev_priv)
 		}
 	}
 
-	I915_WRITE(GEN7_ERR_INT, err_int);
+	intel_uncore_write(&dev_priv->uncore, GEN7_ERR_INT, err_int);
 }
 
 static void cpt_serr_int_handler(struct drm_i915_private *dev_priv)
 {
-	u32 serr_int = I915_READ(SERR_INT);
+	u32 serr_int = intel_uncore_read(&dev_priv->uncore, SERR_INT);
 	enum pipe pipe;
 
 	if (serr_int & SERR_INT_POISON)
@@ -1867,7 +1867,7 @@ static void cpt_serr_int_handler(struct drm_i915_private *dev_priv)
 		if (serr_int & SERR_INT_TRANS_FIFO_UNDERRUN(pipe))
 			intel_pch_fifo_underrun_irq_handler(dev_priv, pipe);
 
-	I915_WRITE(SERR_INT, serr_int);
+	intel_uncore_write(&dev_priv->uncore, SERR_INT, serr_int);
 }
 
 static void cpt_irq_handler(struct drm_i915_private *dev_priv, u32 pch_iir)
@@ -1900,7 +1900,7 @@ static void cpt_irq_handler(struct drm_i915_private *dev_priv, u32 pch_iir)
 		for_each_pipe(dev_priv, pipe)
 			drm_dbg(&dev_priv->drm, "  pipe %c FDI IIR: 0x%08x\n",
 				pipe_name(pipe),
-				I915_READ(FDI_RX_IIR(pipe)));
+				intel_uncore_read(&dev_priv->uncore, FDI_RX_IIR(pipe)));
 	}
 
 	if (pch_iir & SDE_ERROR_CPT)
@@ -1916,8 +1916,8 @@ static void icp_irq_handler(struct drm_i915_private *dev_priv, u32 pch_iir)
 	if (ddi_hotplug_trigger) {
 		u32 dig_hotplug_reg;
 
-		dig_hotplug_reg = I915_READ(SHOTPLUG_CTL_DDI);
-		I915_WRITE(SHOTPLUG_CTL_DDI, dig_hotplug_reg);
+		dig_hotplug_reg = intel_uncore_read(&dev_priv->uncore, SHOTPLUG_CTL_DDI);
+		intel_uncore_write(&dev_priv->uncore, SHOTPLUG_CTL_DDI, dig_hotplug_reg);
 
 		intel_get_hpd_pins(dev_priv, &pin_mask, &long_mask,
 				   ddi_hotplug_trigger, dig_hotplug_reg,
@@ -1928,8 +1928,8 @@ static void icp_irq_handler(struct drm_i915_private *dev_priv, u32 pch_iir)
 	if (tc_hotplug_trigger) {
 		u32 dig_hotplug_reg;
 
-		dig_hotplug_reg = I915_READ(SHOTPLUG_CTL_TC);
-		I915_WRITE(SHOTPLUG_CTL_TC, dig_hotplug_reg);
+		dig_hotplug_reg = intel_uncore_read(&dev_priv->uncore, SHOTPLUG_CTL_TC);
+		intel_uncore_write(&dev_priv->uncore, SHOTPLUG_CTL_TC, dig_hotplug_reg);
 
 		intel_get_hpd_pins(dev_priv, &pin_mask, &long_mask,
 				   tc_hotplug_trigger, dig_hotplug_reg,
@@ -1954,8 +1954,8 @@ static void spt_irq_handler(struct drm_i915_private *dev_priv, u32 pch_iir)
 	if (hotplug_trigger) {
 		u32 dig_hotplug_reg;
 
-		dig_hotplug_reg = I915_READ(PCH_PORT_HOTPLUG);
-		I915_WRITE(PCH_PORT_HOTPLUG, dig_hotplug_reg);
+		dig_hotplug_reg = intel_uncore_read(&dev_priv->uncore, PCH_PORT_HOTPLUG);
+		intel_uncore_write(&dev_priv->uncore, PCH_PORT_HOTPLUG, dig_hotplug_reg);
 
 		intel_get_hpd_pins(dev_priv, &pin_mask, &long_mask,
 				   hotplug_trigger, dig_hotplug_reg,
@@ -1966,8 +1966,8 @@ static void spt_irq_handler(struct drm_i915_private *dev_priv, u32 pch_iir)
 	if (hotplug2_trigger) {
 		u32 dig_hotplug_reg;
 
-		dig_hotplug_reg = I915_READ(PCH_PORT_HOTPLUG2);
-		I915_WRITE(PCH_PORT_HOTPLUG2, dig_hotplug_reg);
+		dig_hotplug_reg = intel_uncore_read(&dev_priv->uncore, PCH_PORT_HOTPLUG2);
+		intel_uncore_write(&dev_priv->uncore, PCH_PORT_HOTPLUG2, dig_hotplug_reg);
 
 		intel_get_hpd_pins(dev_priv, &pin_mask, &long_mask,
 				   hotplug2_trigger, dig_hotplug_reg,
@@ -1987,8 +1987,8 @@ static void ilk_hpd_irq_handler(struct drm_i915_private *dev_priv,
 {
 	u32 dig_hotplug_reg, pin_mask = 0, long_mask = 0;
 
-	dig_hotplug_reg = I915_READ(DIGITAL_PORT_HOTPLUG_CNTRL);
-	I915_WRITE(DIGITAL_PORT_HOTPLUG_CNTRL, dig_hotplug_reg);
+	dig_hotplug_reg = intel_uncore_read(&dev_priv->uncore, DIGITAL_PORT_HOTPLUG_CNTRL);
+	intel_uncore_write(&dev_priv->uncore, DIGITAL_PORT_HOTPLUG_CNTRL, dig_hotplug_reg);
 
 	intel_get_hpd_pins(dev_priv, &pin_mask, &long_mask,
 			   hotplug_trigger, dig_hotplug_reg,
@@ -2029,7 +2029,7 @@ static void ilk_display_irq_handler(struct drm_i915_private *dev_priv,
 
 	/* check event from PCH */
 	if (de_iir & DE_PCH_EVENT) {
-		u32 pch_iir = I915_READ(SDEIIR);
+		u32 pch_iir = intel_uncore_read(&dev_priv->uncore, SDEIIR);
 
 		if (HAS_PCH_CPT(dev_priv))
 			cpt_irq_handler(dev_priv, pch_iir);
@@ -2037,7 +2037,7 @@ static void ilk_display_irq_handler(struct drm_i915_private *dev_priv,
 			ibx_irq_handler(dev_priv, pch_iir);
 
 		/* should clear PCH hotplug event before clear CPU irq */
-		I915_WRITE(SDEIIR, pch_iir);
+		intel_uncore_write(&dev_priv->uncore, SDEIIR, pch_iir);
 	}
 
 	if (IS_GEN(dev_priv, 5) && de_iir & DE_PCU_EVENT)
@@ -2057,10 +2057,10 @@ static void ivb_display_irq_handler(struct drm_i915_private *dev_priv,
 		ivb_err_int_handler(dev_priv);
 
 	if (de_iir & DE_EDP_PSR_INT_HSW) {
-		u32 psr_iir = I915_READ(EDP_PSR_IIR);
+		u32 psr_iir = intel_uncore_read(&dev_priv->uncore, EDP_PSR_IIR);
 
 		intel_psr_irq_handler(dev_priv, psr_iir);
-		I915_WRITE(EDP_PSR_IIR, psr_iir);
+		intel_uncore_write(&dev_priv->uncore, EDP_PSR_IIR, psr_iir);
 	}
 
 	if (de_iir & DE_AUX_CHANNEL_A_IVB)
@@ -2076,12 +2076,12 @@ static void ivb_display_irq_handler(struct drm_i915_private *dev_priv,
 
 	/* check event from PCH */
 	if (!HAS_PCH_NOP(dev_priv) && (de_iir & DE_PCH_EVENT_IVB)) {
-		u32 pch_iir = I915_READ(SDEIIR);
+		u32 pch_iir = intel_uncore_read(&dev_priv->uncore, SDEIIR);
 
 		cpt_irq_handler(dev_priv, pch_iir);
 
 		/* clear PCH hotplug event before clear CPU irq */
-		I915_WRITE(SDEIIR, pch_iir);
+		intel_uncore_write(&dev_priv->uncore, SDEIIR, pch_iir);
 	}
 }
 
@@ -2166,8 +2166,8 @@ static void bxt_hpd_irq_handler(struct drm_i915_private *dev_priv,
 {
 	u32 dig_hotplug_reg, pin_mask = 0, long_mask = 0;
 
-	dig_hotplug_reg = I915_READ(PCH_PORT_HOTPLUG);
-	I915_WRITE(PCH_PORT_HOTPLUG, dig_hotplug_reg);
+	dig_hotplug_reg = intel_uncore_read(&dev_priv->uncore, PCH_PORT_HOTPLUG);
+	intel_uncore_write(&dev_priv->uncore, PCH_PORT_HOTPLUG, dig_hotplug_reg);
 
 	intel_get_hpd_pins(dev_priv, &pin_mask, &long_mask,
 			   hotplug_trigger, dig_hotplug_reg,
@@ -2186,8 +2186,8 @@ static void gen11_hpd_irq_handler(struct drm_i915_private *dev_priv, u32 iir)
 	if (trigger_tc) {
 		u32 dig_hotplug_reg;
 
-		dig_hotplug_reg = I915_READ(GEN11_TC_HOTPLUG_CTL);
-		I915_WRITE(GEN11_TC_HOTPLUG_CTL, dig_hotplug_reg);
+		dig_hotplug_reg = intel_uncore_read(&dev_priv->uncore, GEN11_TC_HOTPLUG_CTL);
+		intel_uncore_write(&dev_priv->uncore, GEN11_TC_HOTPLUG_CTL, dig_hotplug_reg);
 
 		intel_get_hpd_pins(dev_priv, &pin_mask, &long_mask,
 				   trigger_tc, dig_hotplug_reg,
@@ -2198,8 +2198,8 @@ static void gen11_hpd_irq_handler(struct drm_i915_private *dev_priv, u32 iir)
 	if (trigger_tbt) {
 		u32 dig_hotplug_reg;
 
-		dig_hotplug_reg = I915_READ(GEN11_TBT_HOTPLUG_CTL);
-		I915_WRITE(GEN11_TBT_HOTPLUG_CTL, dig_hotplug_reg);
+		dig_hotplug_reg = intel_uncore_read(&dev_priv->uncore, GEN11_TBT_HOTPLUG_CTL);
+		intel_uncore_write(&dev_priv->uncore, GEN11_TBT_HOTPLUG_CTL, dig_hotplug_reg);
 
 		intel_get_hpd_pins(dev_priv, &pin_mask, &long_mask,
 				   trigger_tbt, dig_hotplug_reg,
@@ -2276,8 +2276,8 @@ gen8_de_misc_irq_handler(struct drm_i915_private *dev_priv, u32 iir)
 		else
 			iir_reg = EDP_PSR_IIR;
 
-		psr_iir = I915_READ(iir_reg);
-		I915_WRITE(iir_reg, psr_iir);
+		psr_iir = intel_uncore_read(&dev_priv->uncore, iir_reg);
+		intel_uncore_write(&dev_priv->uncore, iir_reg, psr_iir);
 
 		if (psr_iir)
 			found = true;
@@ -2301,7 +2301,7 @@ static void gen11_dsi_te_interrupt_handler(struct drm_i915_private *dev_priv,
 	 * Incase of dual link, TE comes from DSI_1
 	 * this is to check if dual link is enabled
 	 */
-	val = I915_READ(TRANS_DDI_FUNC_CTL2(TRANSCODER_DSI_0));
+	val = intel_uncore_read(&dev_priv->uncore, TRANS_DDI_FUNC_CTL2(TRANSCODER_DSI_0));
 	val &= PORT_SYNC_MODE_ENABLE;
 
 	/*
@@ -2313,7 +2313,7 @@ static void gen11_dsi_te_interrupt_handler(struct drm_i915_private *dev_priv,
 	dsi_trans = (port == PORT_A) ? TRANSCODER_DSI_0 : TRANSCODER_DSI_1;
 
 	/* Check if DSI configured in command mode */
-	val = I915_READ(DSI_TRANS_FUNC_CONF(dsi_trans));
+	val = intel_uncore_read(&dev_priv->uncore, DSI_TRANS_FUNC_CONF(dsi_trans));
 	val = val & OP_MODE_MASK;
 
 	if (val != CMD_MODE_NO_GATE && val != CMD_MODE_TE_GATE) {
@@ -2322,7 +2322,7 @@ static void gen11_dsi_te_interrupt_handler(struct drm_i915_private *dev_priv,
 	}
 
 	/* Get PIPE for handling VBLANK event */
-	val = I915_READ(TRANS_DDI_FUNC_CTL(dsi_trans));
+	val = intel_uncore_read(&dev_priv->uncore, TRANS_DDI_FUNC_CTL(dsi_trans));
 	switch (val & TRANS_DDI_EDP_INPUT_MASK) {
 	case TRANS_DDI_EDP_INPUT_A_ON:
 		pipe = PIPE_A;
@@ -2342,8 +2342,8 @@ static void gen11_dsi_te_interrupt_handler(struct drm_i915_private *dev_priv,
 
 	/* clear TE in dsi IIR */
 	port = (te_trigger & DSI1_TE) ? PORT_B : PORT_A;
-	tmp = I915_READ(DSI_INTR_IDENT_REG(port));
-	I915_WRITE(DSI_INTR_IDENT_REG(port), tmp);
+	tmp = intel_uncore_read(&dev_priv->uncore, DSI_INTR_IDENT_REG(port));
+	intel_uncore_write(&dev_priv->uncore, DSI_INTR_IDENT_REG(port), tmp);
 }
 
 static irqreturn_t
@@ -2354,9 +2354,9 @@ gen8_de_irq_handler(struct drm_i915_private *dev_priv, u32 master_ctl)
 	enum pipe pipe;
 
 	if (master_ctl & GEN8_DE_MISC_IRQ) {
-		iir = I915_READ(GEN8_DE_MISC_IIR);
+		iir = intel_uncore_read(&dev_priv->uncore, GEN8_DE_MISC_IIR);
 		if (iir) {
-			I915_WRITE(GEN8_DE_MISC_IIR, iir);
+			intel_uncore_write(&dev_priv->uncore, GEN8_DE_MISC_IIR, iir);
 			ret = IRQ_HANDLED;
 			gen8_de_misc_irq_handler(dev_priv, iir);
 		} else {
@@ -2366,9 +2366,9 @@ gen8_de_irq_handler(struct drm_i915_private *dev_priv, u32 master_ctl)
 	}
 
 	if (INTEL_GEN(dev_priv) >= 11 && (master_ctl & GEN11_DE_HPD_IRQ)) {
-		iir = I915_READ(GEN11_DE_HPD_IIR);
+		iir = intel_uncore_read(&dev_priv->uncore, GEN11_DE_HPD_IIR);
 		if (iir) {
-			I915_WRITE(GEN11_DE_HPD_IIR, iir);
+			intel_uncore_write(&dev_priv->uncore, GEN11_DE_HPD_IIR, iir);
 			ret = IRQ_HANDLED;
 			gen11_hpd_irq_handler(dev_priv, iir);
 		} else {
@@ -2378,11 +2378,11 @@ gen8_de_irq_handler(struct drm_i915_private *dev_priv, u32 master_ctl)
 	}
 
 	if (master_ctl & GEN8_DE_PORT_IRQ) {
-		iir = I915_READ(GEN8_DE_PORT_IIR);
+		iir = intel_uncore_read(&dev_priv->uncore, GEN8_DE_PORT_IIR);
 		if (iir) {
 			bool found = false;
 
-			I915_WRITE(GEN8_DE_PORT_IIR, iir);
+			intel_uncore_write(&dev_priv->uncore, GEN8_DE_PORT_IIR, iir);
 			ret = IRQ_HANDLED;
 
 			if (iir & gen8_de_port_aux_mask(dev_priv)) {
@@ -2435,7 +2435,7 @@ gen8_de_irq_handler(struct drm_i915_private *dev_priv, u32 master_ctl)
 		if (!(master_ctl & GEN8_DE_PIPE_IRQ(pipe)))
 			continue;
 
-		iir = I915_READ(GEN8_DE_PIPE_IIR(pipe));
+		iir = intel_uncore_read(&dev_priv->uncore, GEN8_DE_PIPE_IIR(pipe));
 		if (!iir) {
 			drm_err(&dev_priv->drm,
 				"The master control interrupt lied (DE PIPE)!\n");
@@ -2443,7 +2443,7 @@ gen8_de_irq_handler(struct drm_i915_private *dev_priv, u32 master_ctl)
 		}
 
 		ret = IRQ_HANDLED;
-		I915_WRITE(GEN8_DE_PIPE_IIR(pipe), iir);
+		intel_uncore_write(&dev_priv->uncore, GEN8_DE_PIPE_IIR(pipe), iir);
 
 		if (iir & GEN8_PIPE_VBLANK)
 			intel_handle_vblank(dev_priv, pipe);
@@ -2472,9 +2472,9 @@ gen8_de_irq_handler(struct drm_i915_private *dev_priv, u32 master_ctl)
 		 * scheme also closed the SDE interrupt handling race we've seen
 		 * on older pch-split platforms. But this needs testing.
 		 */
-		iir = I915_READ(SDEIIR);
+		iir = intel_uncore_read(&dev_priv->uncore, SDEIIR);
 		if (iir) {
-			I915_WRITE(SDEIIR, iir);
+			intel_uncore_write(&dev_priv->uncore, SDEIIR, iir);
 			ret = IRQ_HANDLED;
 
 			if (INTEL_PCH_TYPE(dev_priv) >= PCH_ICP)
@@ -2713,7 +2713,7 @@ int i915gm_enable_vblank(struct drm_crtc *crtc)
 	 * only when vblank interrupts are actually enabled.
 	 */
 	if (dev_priv->vblank_enabled++ == 0)
-		I915_WRITE(SCPD0, _MASKED_BIT_ENABLE(CSTATE_RENDER_CLOCK_GATE_DISABLE));
+		intel_uncore_write(&dev_priv->uncore, SCPD0, _MASKED_BIT_ENABLE(CSTATE_RENDER_CLOCK_GATE_DISABLE));
 
 	return i8xx_enable_vblank(crtc);
 }
@@ -2770,16 +2770,16 @@ static bool gen11_dsi_configure_te(struct intel_crtc *intel_crtc,
 	else
 		port = PORT_A;
 
-	tmp =  I915_READ(DSI_INTR_MASK_REG(port));
+	tmp =  intel_uncore_read(&dev_priv->uncore, DSI_INTR_MASK_REG(port));
 	if (enable)
 		tmp &= ~DSI_TE_EVENT;
 	else
 		tmp |= DSI_TE_EVENT;
 
-	I915_WRITE(DSI_INTR_MASK_REG(port), tmp);
+	intel_uncore_write(&dev_priv->uncore, DSI_INTR_MASK_REG(port), tmp);
 
-	tmp = I915_READ(DSI_INTR_IDENT_REG(port));
-	I915_WRITE(DSI_INTR_IDENT_REG(port), tmp);
+	tmp = intel_uncore_read(&dev_priv->uncore, DSI_INTR_IDENT_REG(port));
+	intel_uncore_write(&dev_priv->uncore, DSI_INTR_IDENT_REG(port), tmp);
 
 	return true;
 }
@@ -2841,7 +2841,7 @@ void i915gm_disable_vblank(struct drm_crtc *crtc)
 	i8xx_disable_vblank(crtc);
 
 	if (--dev_priv->vblank_enabled == 0)
-		I915_WRITE(SCPD0, _MASKED_BIT_DISABLE(CSTATE_RENDER_CLOCK_GATE_DISABLE));
+		intel_uncore_write(&dev_priv->uncore, SCPD0, _MASKED_BIT_DISABLE(CSTATE_RENDER_CLOCK_GATE_DISABLE));
 }
 
 void i965_disable_vblank(struct drm_crtc *crtc)
@@ -2907,7 +2907,7 @@ static void ibx_irq_reset(struct drm_i915_private *dev_priv)
 	GEN3_IRQ_RESET(uncore, SDE);
 
 	if (HAS_PCH_CPT(dev_priv) || HAS_PCH_LPT(dev_priv))
-		I915_WRITE(SERR_INT, 0xffffffff);
+		intel_uncore_write(&dev_priv->uncore, SERR_INT, 0xffffffff);
 }
 
 static void vlv_display_irq_reset(struct drm_i915_private *dev_priv)
@@ -2920,7 +2920,7 @@ static void vlv_display_irq_reset(struct drm_i915_private *dev_priv)
 		intel_uncore_write(uncore, DPINVGTT, DPINVGTT_STATUS_MASK);
 
 	i915_hotplug_interrupt_update_locked(dev_priv, 0xffffffff, 0);
-	intel_uncore_write(uncore, PORT_HOTPLUG_STAT, I915_READ(PORT_HOTPLUG_STAT));
+	intel_uncore_write(uncore, PORT_HOTPLUG_STAT, intel_uncore_read(&dev_priv->uncore, PORT_HOTPLUG_STAT));
 
 	i9xx_pipestat_irq_reset(dev_priv);
 
@@ -2983,8 +2983,8 @@ static void ilk_irq_reset(struct drm_i915_private *dev_priv)
 
 static void valleyview_irq_reset(struct drm_i915_private *dev_priv)
 {
-	I915_WRITE(VLV_MASTER_IER, 0);
-	POSTING_READ(VLV_MASTER_IER);
+	intel_uncore_write(&dev_priv->uncore, VLV_MASTER_IER, 0);
+	intel_uncore_posting_read(&dev_priv->uncore, VLV_MASTER_IER);
 
 	gen5_gt_irq_reset(&dev_priv->gt);
 
@@ -3135,8 +3135,8 @@ static void cherryview_irq_reset(struct drm_i915_private *dev_priv)
 {
 	struct intel_uncore *uncore = &dev_priv->uncore;
 
-	I915_WRITE(GEN8_MASTER_IRQ, 0);
-	POSTING_READ(GEN8_MASTER_IRQ);
+	intel_uncore_write(&dev_priv->uncore, GEN8_MASTER_IRQ, 0);
+	intel_uncore_posting_read(&dev_priv->uncore, GEN8_MASTER_IRQ);
 
 	gen8_gt_irq_reset(&dev_priv->gt);
 
@@ -3182,7 +3182,7 @@ static void ibx_hpd_detection_setup(struct drm_i915_private *dev_priv)
 	 * duration to 2ms (which is the minimum in the Display Port spec).
 	 * The pulse duration bits are reserved on LPT+.
 	 */
-	hotplug = I915_READ(PCH_PORT_HOTPLUG);
+	hotplug = intel_uncore_read(&dev_priv->uncore, PCH_PORT_HOTPLUG);
 	hotplug &= ~(PORTA_HOTPLUG_ENABLE |
 		     PORTB_HOTPLUG_ENABLE |
 		     PORTC_HOTPLUG_ENABLE |
@@ -3191,7 +3191,7 @@ static void ibx_hpd_detection_setup(struct drm_i915_private *dev_priv)
 		     PORTC_PULSE_DURATION_MASK |
 		     PORTD_PULSE_DURATION_MASK);
 	hotplug |= intel_hpd_hotplug_enables(dev_priv, ibx_hotplug_enables);
-	I915_WRITE(PCH_PORT_HOTPLUG, hotplug);
+	intel_uncore_write(&dev_priv->uncore, PCH_PORT_HOTPLUG, hotplug);
 }
 
 static void ibx_hpd_irq_setup(struct drm_i915_private *dev_priv)
@@ -3240,20 +3240,20 @@ static void icp_ddi_hpd_detection_setup(struct drm_i915_private *dev_priv)
 {
 	u32 hotplug;
 
-	hotplug = I915_READ(SHOTPLUG_CTL_DDI);
+	hotplug = intel_uncore_read(&dev_priv->uncore, SHOTPLUG_CTL_DDI);
 	hotplug &= ~(SHOTPLUG_CTL_DDI_HPD_ENABLE(HPD_PORT_A) |
 		     SHOTPLUG_CTL_DDI_HPD_ENABLE(HPD_PORT_B) |
 		     SHOTPLUG_CTL_DDI_HPD_ENABLE(HPD_PORT_C) |
 		     SHOTPLUG_CTL_DDI_HPD_ENABLE(HPD_PORT_D));
 	hotplug |= intel_hpd_hotplug_enables(dev_priv, icp_ddi_hotplug_enables);
-	I915_WRITE(SHOTPLUG_CTL_DDI, hotplug);
+	intel_uncore_write(&dev_priv->uncore, SHOTPLUG_CTL_DDI, hotplug);
 }
 
 static void icp_tc_hpd_detection_setup(struct drm_i915_private *dev_priv)
 {
 	u32 hotplug;
 
-	hotplug = I915_READ(SHOTPLUG_CTL_TC);
+	hotplug = intel_uncore_read(&dev_priv->uncore, SHOTPLUG_CTL_TC);
 	hotplug &= ~(ICP_TC_HPD_ENABLE(HPD_PORT_TC1) |
 		     ICP_TC_HPD_ENABLE(HPD_PORT_TC2) |
 		     ICP_TC_HPD_ENABLE(HPD_PORT_TC3) |
@@ -3261,7 +3261,7 @@ static void icp_tc_hpd_detection_setup(struct drm_i915_private *dev_priv)
 		     ICP_TC_HPD_ENABLE(HPD_PORT_TC5) |
 		     ICP_TC_HPD_ENABLE(HPD_PORT_TC6));
 	hotplug |= intel_hpd_hotplug_enables(dev_priv, icp_tc_hotplug_enables);
-	I915_WRITE(SHOTPLUG_CTL_TC, hotplug);
+	intel_uncore_write(&dev_priv->uncore, SHOTPLUG_CTL_TC, hotplug);
 }
 
 static void icp_hpd_irq_setup(struct drm_i915_private *dev_priv)
@@ -3272,7 +3272,7 @@ static void icp_hpd_irq_setup(struct drm_i915_private *dev_priv)
 	hotplug_irqs = intel_hpd_hotplug_irqs(dev_priv, dev_priv->hotplug.pch_hpd);
 
 	if (INTEL_PCH_TYPE(dev_priv) <= PCH_TGP)
-		I915_WRITE(SHPD_FILTER_CNT, SHPD_FILTER_CNT_500_ADJ);
+		intel_uncore_write(&dev_priv->uncore, SHPD_FILTER_CNT, SHPD_FILTER_CNT_500_ADJ);
 
 	ibx_display_interrupt_update(dev_priv, hotplug_irqs, enabled_irqs);
 
@@ -3300,12 +3300,12 @@ static void dg1_hpd_irq_setup(struct drm_i915_private *dev_priv)
 {
 	u32 val;
 
-	val = I915_READ(SOUTH_CHICKEN1);
+	val = intel_uncore_read(&dev_priv->uncore, SOUTH_CHICKEN1);
 	val |= (INVERT_DDIA_HPD |
 		INVERT_DDIB_HPD |
 		INVERT_DDIC_HPD |
 		INVERT_DDID_HPD);
-	I915_WRITE(SOUTH_CHICKEN1, val);
+	intel_uncore_write(&dev_priv->uncore, SOUTH_CHICKEN1, val);
 
 	icp_hpd_irq_setup(dev_priv);
 }
@@ -3314,7 +3314,7 @@ static void gen11_tc_hpd_detection_setup(struct drm_i915_private *dev_priv)
 {
 	u32 hotplug;
 
-	hotplug = I915_READ(GEN11_TC_HOTPLUG_CTL);
+	hotplug = intel_uncore_read(&dev_priv->uncore, GEN11_TC_HOTPLUG_CTL);
 	hotplug &= ~(GEN11_HOTPLUG_CTL_ENABLE(HPD_PORT_TC1) |
 		     GEN11_HOTPLUG_CTL_ENABLE(HPD_PORT_TC2) |
 		     GEN11_HOTPLUG_CTL_ENABLE(HPD_PORT_TC3) |
@@ -3322,14 +3322,14 @@ static void gen11_tc_hpd_detection_setup(struct drm_i915_private *dev_priv)
 		     GEN11_HOTPLUG_CTL_ENABLE(HPD_PORT_TC5) |
 		     GEN11_HOTPLUG_CTL_ENABLE(HPD_PORT_TC6));
 	hotplug |= intel_hpd_hotplug_enables(dev_priv, gen11_hotplug_enables);
-	I915_WRITE(GEN11_TC_HOTPLUG_CTL, hotplug);
+	intel_uncore_write(&dev_priv->uncore, GEN11_TC_HOTPLUG_CTL, hotplug);
 }
 
 static void gen11_tbt_hpd_detection_setup(struct drm_i915_private *dev_priv)
 {
 	u32 hotplug;
 
-	hotplug = I915_READ(GEN11_TBT_HOTPLUG_CTL);
+	hotplug = intel_uncore_read(&dev_priv->uncore, GEN11_TBT_HOTPLUG_CTL);
 	hotplug &= ~(GEN11_HOTPLUG_CTL_ENABLE(HPD_PORT_TC1) |
 		     GEN11_HOTPLUG_CTL_ENABLE(HPD_PORT_TC2) |
 		     GEN11_HOTPLUG_CTL_ENABLE(HPD_PORT_TC3) |
@@ -3337,7 +3337,7 @@ static void gen11_tbt_hpd_detection_setup(struct drm_i915_private *dev_priv)
 		     GEN11_HOTPLUG_CTL_ENABLE(HPD_PORT_TC5) |
 		     GEN11_HOTPLUG_CTL_ENABLE(HPD_PORT_TC6));
 	hotplug |= intel_hpd_hotplug_enables(dev_priv, gen11_hotplug_enables);
-	I915_WRITE(GEN11_TBT_HOTPLUG_CTL, hotplug);
+	intel_uncore_write(&dev_priv->uncore, GEN11_TBT_HOTPLUG_CTL, hotplug);
 }
 
 static void gen11_hpd_irq_setup(struct drm_i915_private *dev_priv)
@@ -3348,11 +3348,11 @@ static void gen11_hpd_irq_setup(struct drm_i915_private *dev_priv)
 	enabled_irqs = intel_hpd_enabled_irqs(dev_priv, dev_priv->hotplug.hpd);
 	hotplug_irqs = intel_hpd_hotplug_irqs(dev_priv, dev_priv->hotplug.hpd);
 
-	val = I915_READ(GEN11_DE_HPD_IMR);
+	val = intel_uncore_read(&dev_priv->uncore, GEN11_DE_HPD_IMR);
 	val &= ~hotplug_irqs;
 	val |= ~enabled_irqs & hotplug_irqs;
-	I915_WRITE(GEN11_DE_HPD_IMR, val);
-	POSTING_READ(GEN11_DE_HPD_IMR);
+	intel_uncore_write(&dev_priv->uncore, GEN11_DE_HPD_IMR, val);
+	intel_uncore_posting_read(&dev_priv->uncore, GEN11_DE_HPD_IMR);
 
 	gen11_tc_hpd_detection_setup(dev_priv);
 	gen11_tbt_hpd_detection_setup(dev_priv);
@@ -3395,25 +3395,25 @@ static void spt_hpd_detection_setup(struct drm_i915_private *dev_priv)
 
 	/* Display WA #1179 WaHardHangonHotPlug: cnp */
 	if (HAS_PCH_CNP(dev_priv)) {
-		val = I915_READ(SOUTH_CHICKEN1);
+		val = intel_uncore_read(&dev_priv->uncore, SOUTH_CHICKEN1);
 		val &= ~CHASSIS_CLK_REQ_DURATION_MASK;
 		val |= CHASSIS_CLK_REQ_DURATION(0xf);
-		I915_WRITE(SOUTH_CHICKEN1, val);
+		intel_uncore_write(&dev_priv->uncore, SOUTH_CHICKEN1, val);
 	}
 
 	/* Enable digital hotplug on the PCH */
-	hotplug = I915_READ(PCH_PORT_HOTPLUG);
+	hotplug = intel_uncore_read(&dev_priv->uncore, PCH_PORT_HOTPLUG);
 	hotplug &= ~(PORTA_HOTPLUG_ENABLE |
 		     PORTB_HOTPLUG_ENABLE |
 		     PORTC_HOTPLUG_ENABLE |
 		     PORTD_HOTPLUG_ENABLE);
 	hotplug |= intel_hpd_hotplug_enables(dev_priv, spt_hotplug_enables);
-	I915_WRITE(PCH_PORT_HOTPLUG, hotplug);
+	intel_uncore_write(&dev_priv->uncore, PCH_PORT_HOTPLUG, hotplug);
 
-	hotplug = I915_READ(PCH_PORT_HOTPLUG2);
+	hotplug = intel_uncore_read(&dev_priv->uncore, PCH_PORT_HOTPLUG2);
 	hotplug &= ~PORTE_HOTPLUG_ENABLE;
 	hotplug |= intel_hpd_hotplug_enables(dev_priv, spt_hotplug2_enables);
-	I915_WRITE(PCH_PORT_HOTPLUG2, hotplug);
+	intel_uncore_write(&dev_priv->uncore, PCH_PORT_HOTPLUG2, hotplug);
 }
 
 static void spt_hpd_irq_setup(struct drm_i915_private *dev_priv)
@@ -3421,7 +3421,7 @@ static void spt_hpd_irq_setup(struct drm_i915_private *dev_priv)
 	u32 hotplug_irqs, enabled_irqs;
 
 	if (INTEL_PCH_TYPE(dev_priv) >= PCH_CNP)
-		I915_WRITE(SHPD_FILTER_CNT, SHPD_FILTER_CNT_500_ADJ);
+		intel_uncore_write(&dev_priv->uncore, SHPD_FILTER_CNT, SHPD_FILTER_CNT_500_ADJ);
 
 	enabled_irqs = intel_hpd_enabled_irqs(dev_priv, dev_priv->hotplug.pch_hpd);
 	hotplug_irqs = intel_hpd_hotplug_irqs(dev_priv, dev_priv->hotplug.pch_hpd);
@@ -3452,11 +3452,11 @@ static void ilk_hpd_detection_setup(struct drm_i915_private *dev_priv)
 	 * duration to 2ms (which is the minimum in the Display Port spec)
 	 * The pulse duration bits are reserved on HSW+.
 	 */
-	hotplug = I915_READ(DIGITAL_PORT_HOTPLUG_CNTRL);
+	hotplug = intel_uncore_read(&dev_priv->uncore, DIGITAL_PORT_HOTPLUG_CNTRL);
 	hotplug &= ~(DIGITAL_PORTA_HOTPLUG_ENABLE |
 		     DIGITAL_PORTA_PULSE_DURATION_MASK);
 	hotplug |= intel_hpd_hotplug_enables(dev_priv, ilk_hotplug_enables);
-	I915_WRITE(DIGITAL_PORT_HOTPLUG_CNTRL, hotplug);
+	intel_uncore_write(&dev_priv->uncore, DIGITAL_PORT_HOTPLUG_CNTRL, hotplug);
 }
 
 static void ilk_hpd_irq_setup(struct drm_i915_private *dev_priv)
@@ -3506,7 +3506,7 @@ static void bxt_hpd_detection_setup(struct drm_i915_private *dev_priv)
 {
 	u32 hotplug;
 
-	hotplug = I915_READ(PCH_PORT_HOTPLUG);
+	hotplug = intel_uncore_read(&dev_priv->uncore, PCH_PORT_HOTPLUG);
 	hotplug &= ~(PORTA_HOTPLUG_ENABLE |
 		     PORTB_HOTPLUG_ENABLE |
 		     PORTC_HOTPLUG_ENABLE |
@@ -3514,7 +3514,7 @@ static void bxt_hpd_detection_setup(struct drm_i915_private *dev_priv)
 		     BXT_DDIB_HPD_INVERT |
 		     BXT_DDIC_HPD_INVERT);
 	hotplug |= intel_hpd_hotplug_enables(dev_priv, bxt_hotplug_enables);
-	I915_WRITE(PCH_PORT_HOTPLUG, hotplug);
+	intel_uncore_write(&dev_priv->uncore, PCH_PORT_HOTPLUG, hotplug);
 }
 
 static void bxt_hpd_irq_setup(struct drm_i915_private *dev_priv)
@@ -3634,8 +3634,8 @@ static void valleyview_irq_postinstall(struct drm_i915_private *dev_priv)
 		vlv_display_irq_postinstall(dev_priv);
 	spin_unlock_irq(&dev_priv->irq_lock);
 
-	I915_WRITE(VLV_MASTER_IER, MASTER_INTERRUPT_ENABLE);
-	POSTING_READ(VLV_MASTER_IER);
+	intel_uncore_write(&dev_priv->uncore, VLV_MASTER_IER, MASTER_INTERRUPT_ENABLE);
+	intel_uncore_posting_read(&dev_priv->uncore, VLV_MASTER_IER);
 }
 
 static void gen8_de_irq_postinstall(struct drm_i915_private *dev_priv)
@@ -3748,14 +3748,14 @@ static void gen11_irq_postinstall(struct drm_i915_private *dev_priv)
 
 	GEN3_IRQ_INIT(uncore, GEN11_GU_MISC_, ~gu_misc_masked, gu_misc_masked);
 
-	I915_WRITE(GEN11_DISPLAY_INT_CTL, GEN11_DISPLAY_IRQ_ENABLE);
+	intel_uncore_write(&dev_priv->uncore, GEN11_DISPLAY_INT_CTL, GEN11_DISPLAY_IRQ_ENABLE);
 
 	if (HAS_MASTER_UNIT_IRQ(dev_priv)) {
 		dg1_master_intr_enable(uncore->regs);
-		POSTING_READ(DG1_MSTR_UNIT_INTR);
+		intel_uncore_posting_read(&dev_priv->uncore, DG1_MSTR_UNIT_INTR);
 	} else {
 		gen11_master_intr_enable(uncore->regs);
-		POSTING_READ(GEN11_GFX_MSTR_IRQ);
+		intel_uncore_posting_read(&dev_priv->uncore, GEN11_GFX_MSTR_IRQ);
 	}
 }
 
@@ -3768,8 +3768,8 @@ static void cherryview_irq_postinstall(struct drm_i915_private *dev_priv)
 		vlv_display_irq_postinstall(dev_priv);
 	spin_unlock_irq(&dev_priv->irq_lock);
 
-	I915_WRITE(GEN8_MASTER_IRQ, GEN8_MASTER_IRQ_CONTROL);
-	POSTING_READ(GEN8_MASTER_IRQ);
+	intel_uncore_write(&dev_priv->uncore, GEN8_MASTER_IRQ, GEN8_MASTER_IRQ_CONTROL);
+	intel_uncore_posting_read(&dev_priv->uncore, GEN8_MASTER_IRQ);
 }
 
 static void i8xx_irq_reset(struct drm_i915_private *dev_priv)
@@ -3859,11 +3859,11 @@ static void i9xx_error_irq_ack(struct drm_i915_private *dev_priv,
 {
 	u32 emr;
 
-	*eir = I915_READ(EIR);
+	*eir = intel_uncore_read(&dev_priv->uncore, EIR);
 
-	I915_WRITE(EIR, *eir);
+	intel_uncore_write(&dev_priv->uncore, EIR, *eir);
 
-	*eir_stuck = I915_READ(EIR);
+	*eir_stuck = intel_uncore_read(&dev_priv->uncore, EIR);
 	if (*eir_stuck == 0)
 		return;
 
@@ -3877,9 +3877,9 @@ static void i9xx_error_irq_ack(struct drm_i915_private *dev_priv,
 	 * (or by a GPU reset) so we mask any bit that
 	 * remains set.
 	 */
-	emr = I915_READ(EMR);
-	I915_WRITE(EMR, 0xffffffff);
-	I915_WRITE(EMR, emr | *eir_stuck);
+	emr = intel_uncore_read(&dev_priv->uncore, EMR);
+	intel_uncore_write(&dev_priv->uncore, EMR, 0xffffffff);
+	intel_uncore_write(&dev_priv->uncore, EMR, emr | *eir_stuck);
 }
 
 static void i9xx_error_irq_handler(struct drm_i915_private *dev_priv,
@@ -3943,7 +3943,7 @@ static void i915_irq_reset(struct drm_i915_private *dev_priv)
 
 	if (I915_HAS_HOTPLUG(dev_priv)) {
 		i915_hotplug_interrupt_update(dev_priv, 0xffffffff, 0);
-		I915_WRITE(PORT_HOTPLUG_STAT, I915_READ(PORT_HOTPLUG_STAT));
+		intel_uncore_write(&dev_priv->uncore, PORT_HOTPLUG_STAT, intel_uncore_read(&dev_priv->uncore, PORT_HOTPLUG_STAT));
 	}
 
 	i9xx_pipestat_irq_reset(dev_priv);
@@ -3957,7 +3957,7 @@ static void i915_irq_postinstall(struct drm_i915_private *dev_priv)
 	struct intel_uncore *uncore = &dev_priv->uncore;
 	u32 enable_mask;
 
-	I915_WRITE(EMR, ~(I915_ERROR_PAGE_TABLE |
+	intel_uncore_write(&dev_priv->uncore, EMR, ~(I915_ERROR_PAGE_TABLE |
 			  I915_ERROR_MEMORY_REFRESH));
 
 	/* Unmask the interrupts that we always want on. */
@@ -4010,7 +4010,7 @@ static irqreturn_t i915_irq_handler(int irq, void *arg)
 		u32 hotplug_status = 0;
 		u32 iir;
 
-		iir = I915_READ(GEN2_IIR);
+		iir = intel_uncore_read(&dev_priv->uncore, GEN2_IIR);
 		if (iir == 0)
 			break;
 
@@ -4027,7 +4027,7 @@ static irqreturn_t i915_irq_handler(int irq, void *arg)
 		if (iir & I915_MASTER_ERROR_INTERRUPT)
 			i9xx_error_irq_ack(dev_priv, &eir, &eir_stuck);
 
-		I915_WRITE(GEN2_IIR, iir);
+		intel_uncore_write(&dev_priv->uncore, GEN2_IIR, iir);
 
 		if (iir & I915_USER_INTERRUPT)
 			intel_engine_signal_breadcrumbs(dev_priv->gt.engine[RCS0]);
@@ -4051,7 +4051,7 @@ static void i965_irq_reset(struct drm_i915_private *dev_priv)
 	struct intel_uncore *uncore = &dev_priv->uncore;
 
 	i915_hotplug_interrupt_update(dev_priv, 0xffffffff, 0);
-	I915_WRITE(PORT_HOTPLUG_STAT, I915_READ(PORT_HOTPLUG_STAT));
+	intel_uncore_write(&dev_priv->uncore, PORT_HOTPLUG_STAT, intel_uncore_read(&dev_priv->uncore, PORT_HOTPLUG_STAT));
 
 	i9xx_pipestat_irq_reset(dev_priv);
 
@@ -4078,7 +4078,7 @@ static void i965_irq_postinstall(struct drm_i915_private *dev_priv)
 		error_mask = ~(I915_ERROR_PAGE_TABLE |
 			       I915_ERROR_MEMORY_REFRESH);
 	}
-	I915_WRITE(EMR, error_mask);
+	intel_uncore_write(&dev_priv->uncore, EMR, error_mask);
 
 	/* Unmask the interrupts that we always want on. */
 	dev_priv->irq_mask =
@@ -4154,7 +4154,7 @@ static irqreturn_t i965_irq_handler(int irq, void *arg)
 		u32 hotplug_status = 0;
 		u32 iir;
 
-		iir = I915_READ(GEN2_IIR);
+		iir = intel_uncore_read(&dev_priv->uncore, GEN2_IIR);
 		if (iir == 0)
 			break;
 
@@ -4170,7 +4170,7 @@ static irqreturn_t i965_irq_handler(int irq, void *arg)
 		if (iir & I915_MASTER_ERROR_INTERRUPT)
 			i9xx_error_irq_ack(dev_priv, &eir, &eir_stuck);
 
-		I915_WRITE(GEN2_IIR, iir);
+		intel_uncore_write(&dev_priv->uncore, GEN2_IIR, iir);
 
 		if (iir & I915_USER_INTERRUPT)
 			intel_engine_signal_breadcrumbs(dev_priv->gt.engine[RCS0]);
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [Intel-gfx] [PATCH 9/9] drm/i915: remove last traces of I915_READ(), I915_WRITE() and POSTING_READ()
  2020-11-12 11:44 [Intel-gfx] [PATCH 0/9] drm/i915: nuke remaining legacy reg helpers (I915_READ/WRITE etc.) Jani Nikula
                   ` (7 preceding siblings ...)
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 8/9] drm/i915/irq: " Jani Nikula
@ 2020-11-12 11:44 ` Jani Nikula
  2020-11-12 21:02   ` Rodrigo Vivi
  2020-11-12 12:35 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: nuke remaining legacy reg helpers (I915_READ/WRITE etc.) Patchwork
                   ` (2 subsequent siblings)
  11 siblings, 1 reply; 26+ messages in thread
From: Jani Nikula @ 2020-11-12 11:44 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Good riddance! Remove the macros and their remaining references in
comments.

The following functions should be used instead, depending on the use
case:

- intel_uncore_read(), intel_uncore_write(), intel_uncore_posting_read()

- intel_de_read(), intel_de_write(), intel_de_posting_read()

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/display/intel_dvo.c | 4 ----
 drivers/gpu/drm/i915/i915_drv.h          | 8 --------
 drivers/gpu/drm/i915/i915_reg.h          | 6 ++++--
 drivers/gpu/drm/i915/intel_sideband.c    | 4 ++--
 drivers/gpu/drm/i915/intel_uncore.c      | 2 +-
 drivers/gpu/drm/i915/intel_uncore.h      | 4 ++--
 6 files changed, 9 insertions(+), 19 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dvo.c b/drivers/gpu/drm/i915/display/intel_dvo.c
index 237dbb1ba0ee..090cd76266c6 100644
--- a/drivers/gpu/drm/i915/display/intel_dvo.c
+++ b/drivers/gpu/drm/i915/display/intel_dvo.c
@@ -301,12 +301,8 @@ static void intel_dvo_pre_enable(struct intel_atomic_state *state,
 	if (adjusted_mode->flags & DRM_MODE_FLAG_PVSYNC)
 		dvo_val |= DVO_VSYNC_ACTIVE_HIGH;
 
-	/*I915_WRITE(DVOB_SRCDIM,
-	  (adjusted_mode->crtc_hdisplay << DVO_SRCDIM_HORIZONTAL_SHIFT) |
-	  (adjusted_mode->crtc_vdisplay << DVO_SRCDIM_VERTICAL_SHIFT));*/
 	intel_de_write(dev_priv, dvo_srcdim_reg,
 		       (adjusted_mode->crtc_hdisplay << DVO_SRCDIM_HORIZONTAL_SHIFT) | (adjusted_mode->crtc_vdisplay << DVO_SRCDIM_VERTICAL_SHIFT));
-	/*I915_WRITE(DVOB, dvo_val);*/
 	intel_de_write(dev_priv, dvo_reg, dvo_val);
 }
 
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index fecb5899cbac..42f60b112436 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1970,14 +1970,6 @@ mkwrite_device_info(struct drm_i915_private *dev_priv)
 int i915_reg_read_ioctl(struct drm_device *dev, void *data,
 			struct drm_file *file);
 
-#define __I915_REG_OP(op__, dev_priv__, ...) \
-	intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
-
-#define I915_READ(reg__)	 __I915_REG_OP(read, dev_priv, (reg__))
-#define I915_WRITE(reg__, val__) __I915_REG_OP(write, dev_priv, (reg__), (val__))
-
-#define POSTING_READ(reg__)	__I915_REG_OP(posting_read, dev_priv, (reg__))
-
 /* i915_mm.c */
 int remap_io_mapping(struct vm_area_struct *vma,
 		     unsigned long addr, unsigned long pfn, unsigned long size,
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 7ea70b7ffcc6..568633448202 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -10849,8 +10849,10 @@ enum skl_power_gate {
 #define  CNL_DRAM_RANK_3			(0x2 << 9)
 #define  CNL_DRAM_RANK_4			(0x3 << 9)
 
-/* Please see hsw_read_dcomp() and hsw_write_dcomp() before using this register,
- * since on HSW we can't write to it using I915_WRITE. */
+/*
+ * Please see hsw_read_dcomp() and hsw_write_dcomp() before using this register,
+ * since on HSW we can't write to it using intel_uncore_write.
+ */
 #define D_COMP_HSW			_MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5F0C)
 #define D_COMP_BDW			_MMIO(0x138144)
 #define  D_COMP_RCOMP_IN_PROGRESS	(1 << 9)
diff --git a/drivers/gpu/drm/i915/intel_sideband.c b/drivers/gpu/drm/i915/intel_sideband.c
index 02ebf5a04a9b..0ec0cf191955 100644
--- a/drivers/gpu/drm/i915/intel_sideband.c
+++ b/drivers/gpu/drm/i915/intel_sideband.c
@@ -404,8 +404,8 @@ static int __sandybridge_pcode_rw(struct drm_i915_private *i915,
 	lockdep_assert_held(&i915->sb_lock);
 
 	/*
-	 * GEN6_PCODE_* are outside of the forcewake domain, we can
-	 * use te fw I915_READ variants to reduce the amount of work
+	 * GEN6_PCODE_* are outside of the forcewake domain, we can use
+	 * intel_uncore_read/write_fw variants to reduce the amount of work
 	 * required when reading/writing.
 	 */
 
diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
index ef40edfff412..9ac501bcfdad 100644
--- a/drivers/gpu/drm/i915/intel_uncore.c
+++ b/drivers/gpu/drm/i915/intel_uncore.c
@@ -2126,7 +2126,7 @@ int __intel_wait_for_register_fw(struct intel_uncore *uncore,
  * This routine waits until the target register @reg contains the expected
  * @value after applying the @mask, i.e. it waits until ::
  *
- *     (I915_READ(reg) & mask) == value
+ *     (intel_uncore_read(uncore, reg) & mask) == value
  *
  * Otherwise, the wait will timeout after @timeout_ms milliseconds.
  *
diff --git a/drivers/gpu/drm/i915/intel_uncore.h b/drivers/gpu/drm/i915/intel_uncore.h
index 5dcb7f4183b2..59f0da8f1fbb 100644
--- a/drivers/gpu/drm/i915/intel_uncore.h
+++ b/drivers/gpu/drm/i915/intel_uncore.h
@@ -318,8 +318,8 @@ __uncore_write(write_notrace, 32, l, false)
  * will be implemented using 2 32-bit writes in an arbitrary order with
  * an arbitrary delay between them. This can cause the hardware to
  * act upon the intermediate value, possibly leading to corruption and
- * machine death. For this reason we do not support I915_WRITE64, or
- * uncore->funcs.mmio_writeq.
+ * machine death. For this reason we do not support intel_uncore_write64,
+ * or uncore->funcs.mmio_writeq.
  *
  * When reading a 64-bit value as two 32-bit values, the delay may cause
  * the two reads to mismatch, e.g. a timestamp overflowing. Also note that
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: nuke remaining legacy reg helpers (I915_READ/WRITE etc.)
  2020-11-12 11:44 [Intel-gfx] [PATCH 0/9] drm/i915: nuke remaining legacy reg helpers (I915_READ/WRITE etc.) Jani Nikula
                   ` (8 preceding siblings ...)
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 9/9] drm/i915: remove last traces of I915_READ(), I915_WRITE() and POSTING_READ() Jani Nikula
@ 2020-11-12 12:35 ` Patchwork
  2020-11-12 13:06 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
  2020-11-12 14:51 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
  11 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2020-11-12 12:35 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: nuke remaining legacy reg helpers (I915_READ/WRITE etc.)
URL   : https://patchwork.freedesktop.org/series/83762/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
9851f04c829b drm/i915: remove last users of I915_READ_FW()
-:23: WARNING:LONG_LINE: line length of 102 exceeds 100 columns
#23: FILE: drivers/gpu/drm/i915/i915_debugfs.c:1242:
+		rpupei = intel_uncore_read_fw(&dev_priv->uncore, GEN6_RP_CUR_UP_EI) & GEN6_RP_EI_MASK;

-:24: WARNING:LONG_LINE: line length of 101 exceeds 100 columns
#24: FILE: drivers/gpu/drm/i915/i915_debugfs.c:1243:
+		rpdown = intel_uncore_read_fw(&dev_priv->uncore, GEN6_RP_CUR_DOWN) & GEN6_RP_EI_MASK;

-:25: WARNING:LONG_LINE: line length of 106 exceeds 100 columns
#25: FILE: drivers/gpu/drm/i915/i915_debugfs.c:1244:
+		rpdownei = intel_uncore_read_fw(&dev_priv->uncore, GEN6_RP_CUR_DOWN_EI) & GEN6_RP_EI_MASK;

total: 0 errors, 3 warnings, 0 checks, 14 lines checked
d38df7d26218 drm/i915: remove last traces of I915_READ_FW() and I915_WRITE_FW()
9513480437b3 drm/i915/cdclk: prefer intel_de_write() over I915_WRITE()
301253565834 drm/i915/debugfs: replace I915_READ()+I915_WRITE() with intel_uncore_rmw()
a62091be81ec drm/i915/debugfs: replace I915_READ() with intel_uncore_read()
-:380: WARNING:LONG_LINE: line length of 102 exceeds 100 columns
#380: FILE: drivers/gpu/drm/i915/i915_debugfs.c:879:
+		rpupei = intel_uncore_read(&dev_priv->uncore, GEN6_RP_CUR_UP_EI) & GEN6_CURICONT_MASK;

-:381: WARNING:LONG_LINE: line length of 102 exceeds 100 columns
#381: FILE: drivers/gpu/drm/i915/i915_debugfs.c:880:
+		rpcurup = intel_uncore_read(&dev_priv->uncore, GEN6_RP_CUR_UP) & GEN6_CURBSYTAVG_MASK;

-:382: WARNING:LONG_LINE: line length of 104 exceeds 100 columns
#382: FILE: drivers/gpu/drm/i915/i915_debugfs.c:881:
+		rpprevup = intel_uncore_read(&dev_priv->uncore, GEN6_RP_PREV_UP) & GEN6_CURBSYTAVG_MASK;

-:383: WARNING:LONG_LINE: line length of 105 exceeds 100 columns
#383: FILE: drivers/gpu/drm/i915/i915_debugfs.c:882:
+		rpdownei = intel_uncore_read(&dev_priv->uncore, GEN6_RP_CUR_DOWN_EI) & GEN6_CURIAVG_MASK;

-:384: WARNING:LONG_LINE: line length of 106 exceeds 100 columns
#384: FILE: drivers/gpu/drm/i915/i915_debugfs.c:883:
+		rpcurdown = intel_uncore_read(&dev_priv->uncore, GEN6_RP_CUR_DOWN) & GEN6_CURBSYTAVG_MASK;

-:385: WARNING:LONG_LINE: line length of 108 exceeds 100 columns
#385: FILE: drivers/gpu/drm/i915/i915_debugfs.c:884:
+		rpprevdown = intel_uncore_read(&dev_priv->uncore, GEN6_RP_PREV_DOWN) & GEN6_CURBSYTAVG_MASK;

-:393: WARNING:LONG_LINE: line length of 103 exceeds 100 columns
#393: FILE: drivers/gpu/drm/i915/i915_debugfs.c:890:
+			pm_ier = intel_uncore_read(&dev_priv->uncore, GEN11_GPM_WGBOXPERF_INTR_ENABLE);

-:394: WARNING:LONG_LINE: line length of 101 exceeds 100 columns
#394: FILE: drivers/gpu/drm/i915/i915_debugfs.c:891:
+			pm_imr = intel_uncore_read(&dev_priv->uncore, GEN11_GPM_WGBOXPERF_INTR_MASK);

total: 0 errors, 8 warnings, 0 checks, 405 lines checked
0ea2a583a565 drm/i915/suspend: replace I915_READ()/WRITE() with intel_de_read()/write()
-:29: CHECK:CAMELCASE: Avoid CamelCase: <saveSWF0>
#29: FILE: drivers/gpu/drm/i915/i915_suspend.c:43:
+			dev_priv->regfile.saveSWF0[i] = intel_de_read(dev_priv, SWF0(i));

-:30: CHECK:CAMELCASE: Avoid CamelCase: <saveSWF1>
#30: FILE: drivers/gpu/drm/i915/i915_suspend.c:44:
+			dev_priv->regfile.saveSWF1[i] = intel_de_read(dev_priv, SWF1(i));

-:34: CHECK:CAMELCASE: Avoid CamelCase: <saveSWF3>
#34: FILE: drivers/gpu/drm/i915/i915_suspend.c:47:
+			dev_priv->regfile.saveSWF3[i] = intel_de_read(dev_priv, SWF3(i));

-:86: CHECK:CAMELCASE: Avoid CamelCase: <saveDSPARB>
#86: FILE: drivers/gpu/drm/i915/i915_suspend.c:92:
+		dev_priv->regfile.saveDSPARB = intel_de_read(dev_priv, DSPARB);

total: 0 errors, 0 warnings, 4 checks, 79 lines checked
67149b9d146a drm/i915/pm: replace I915_READ()/WRITE() with intel_uncore_read()/write()
-:25: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#25: FILE: drivers/gpu/drm/i915/intel_pm.c:85:
+		intel_uncore_write(&dev_priv->uncore, CHICKEN_PAR1_1,
+			   intel_uncore_read(&dev_priv->uncore, CHICKEN_PAR1_1) |

-:33: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#33: FILE: drivers/gpu/drm/i915/intel_pm.c:91:
+	intel_uncore_write(&dev_priv->uncore, CHICKEN_PAR1_1,
+		   intel_uncore_read(&dev_priv->uncore, CHICKEN_PAR1_1) | SKL_EDP_PSR_FIX_RDWRAP);

-:39: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#39: FILE: drivers/gpu/drm/i915/intel_pm.c:95:
+	intel_uncore_write(&dev_priv->uncore, GEN8_CHICKEN_DCPR_1,
+		   intel_uncore_read(&dev_priv->uncore, GEN8_CHICKEN_DCPR_1) | MASK_WAKEMEM);

-:46: WARNING:LONG_LINE: line length of 112 exceeds 100 columns
#46: FILE: drivers/gpu/drm/i915/intel_pm.c:101:
+	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |

-:55: WARNING:LONG_LINE: line length of 112 exceeds 100 columns
#55: FILE: drivers/gpu/drm/i915/intel_pm.c:110:
+	intel_uncore_write(&dev_priv->uncore, GEN8_UCGCTL6, intel_uncore_read(&dev_priv->uncore, GEN8_UCGCTL6) |

-:63: WARNING:LONG_LINE: line length of 112 exceeds 100 columns
#63: FILE: drivers/gpu/drm/i915/intel_pm.c:117:
+	intel_uncore_write(&dev_priv->uncore, GEN8_UCGCTL6, intel_uncore_read(&dev_priv->uncore, GEN8_UCGCTL6) |

-:71: WARNING:LONG_LINE: line length of 124 exceeds 100 columns
#71: FILE: drivers/gpu/drm/i915/intel_pm.c:124:
+	intel_uncore_write(&dev_priv->uncore, GEN9_CLKGATE_DIS_0, intel_uncore_read(&dev_priv->uncore, GEN9_CLKGATE_DIS_0) |

-:87: WARNING:LONG_LINE: line length of 112 exceeds 100 columns
#87: FILE: drivers/gpu/drm/i915/intel_pm.c:139:
+	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |

-:95: WARNING:LONG_LINE: line length of 120 exceeds 100 columns
#95: FILE: drivers/gpu/drm/i915/intel_pm.c:146:
+	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN, intel_uncore_read(&dev_priv->uncore, ILK_DPFC_CHICKEN) |

-:104: WARNING:LONG_LINE: line length of 124 exceeds 100 columns
#104: FILE: drivers/gpu/drm/i915/intel_pm.c:159:
+	intel_uncore_write(&dev_priv->uncore, GEN9_CLKGATE_DIS_0, intel_uncore_read(&dev_priv->uncore, GEN9_CLKGATE_DIS_0) |

-:288: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#288: FILE: drivers/gpu/drm/i915/intel_pm.c:979:
+	intel_uncore_write(&dev_priv->uncore, DSPFW1,
 		   FW_WM(wm->sr.plane, SR) |

-:294: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#294: FILE: drivers/gpu/drm/i915/intel_pm.c:984:
+	intel_uncore_write(&dev_priv->uncore, DSPFW2,
 		   (wm->fbc_en ? DSPFW_FBC_SR_EN : 0) |

-:302: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#302: FILE: drivers/gpu/drm/i915/intel_pm.c:991:
+	intel_uncore_write(&dev_priv->uncore, DSPFW3,
 		   (wm->hpll_en ? DSPFW_HPLL_SR_EN : 0) |

-:318: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#318: FILE: drivers/gpu/drm/i915/intel_pm.c:1011:
+		intel_uncore_write(&dev_priv->uncore, VLV_DDL(pipe),
 			   (wm->ddl[pipe].plane[PLANE_CURSOR] << DDL_CURSOR_SHIFT) |

-:338: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#338: FILE: drivers/gpu/drm/i915/intel_pm.c:1029:
+	intel_uncore_write(&dev_priv->uncore, DSPFW1,
 		   FW_WM(wm->sr.plane, SR) |

-:344: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#344: FILE: drivers/gpu/drm/i915/intel_pm.c:1034:
+	intel_uncore_write(&dev_priv->uncore, DSPFW2,
 		   FW_WM_VLV(wm->pipe[PIPE_A].plane[PLANE_SPRITE1], SPRITEB) |

-:349: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#349: FILE: drivers/gpu/drm/i915/intel_pm.c:1038:
+	intel_uncore_write(&dev_priv->uncore, DSPFW3,
 		   FW_WM(wm->sr.cursor, CURSOR_SR));

-:354: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#354: FILE: drivers/gpu/drm/i915/intel_pm.c:1042:
+		intel_uncore_write(&dev_priv->uncore, DSPFW7_CHV,
 			   FW_WM_VLV(wm->pipe[PIPE_B].plane[PLANE_SPRITE1], SPRITED) |

-:358: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#358: FILE: drivers/gpu/drm/i915/intel_pm.c:1045:
+		intel_uncore_write(&dev_priv->uncore, DSPFW8_CHV,
 			   FW_WM_VLV(wm->pipe[PIPE_C].plane[PLANE_SPRITE1], SPRITEF) |

-:362: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#362: FILE: drivers/gpu/drm/i915/intel_pm.c:1048:
+		intel_uncore_write(&dev_priv->uncore, DSPFW9_CHV,
 			   FW_WM_VLV(wm->pipe[PIPE_C].plane[PLANE_PRIMARY], PLANEC) |

-:366: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#366: FILE: drivers/gpu/drm/i915/intel_pm.c:1051:
+		intel_uncore_write(&dev_priv->uncore, DSPHOWM,
 			   FW_WM(wm->sr.plane >> 9, SR_HI) |

-:375: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#375: FILE: drivers/gpu/drm/i915/intel_pm.c:1063:
+		intel_uncore_write(&dev_priv->uncore, DSPFW7,
 			   FW_WM_VLV(wm->pipe[PIPE_B].plane[PLANE_SPRITE1], SPRITED) |

-:379: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#379: FILE: drivers/gpu/drm/i915/intel_pm.c:1066:
+		intel_uncore_write(&dev_priv->uncore, DSPHOWM,
 			   FW_WM(wm->sr.plane >> 9, SR_HI) |

-:415: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#415: FILE: drivers/gpu/drm/i915/intel_pm.c:2450:
+			intel_uncore_write(&dev_priv->uncore, FW_BLC_SELF,
 				   FW_BLC_SELF_FIFO_MASK | (srwm & 0xff));

-:586: WARNING:LONG_LINE: line length of 108 exceeds 100 columns
#586: FILE: drivers/gpu/drm/i915/intel_pm.c:6243:
+				val = intel_uncore_read(&dev_priv->uncore, PLANE_WM(pipe, plane_id, level));

-:729: WARNING:LONG_LINE: line length of 124 exceeds 100 columns
#729: FILE: drivers/gpu/drm/i915/intel_pm.c:6730:
+	intel_uncore_write(&dev_priv->uncore, WM3_LP_ILK, intel_uncore_read(&dev_priv->uncore, WM3_LP_ILK) & ~WM1_LP_SR_EN);

-:730: WARNING:LONG_LINE: line length of 124 exceeds 100 columns
#730: FILE: drivers/gpu/drm/i915/intel_pm.c:6731:
+	intel_uncore_write(&dev_priv->uncore, WM2_LP_ILK, intel_uncore_read(&dev_priv->uncore, WM2_LP_ILK) & ~WM1_LP_SR_EN);

-:731: WARNING:LONG_LINE: line length of 124 exceeds 100 columns
#731: FILE: drivers/gpu/drm/i915/intel_pm.c:6732:
+	intel_uncore_write(&dev_priv->uncore, WM1_LP_ILK, intel_uncore_read(&dev_priv->uncore, WM1_LP_ILK) & ~WM1_LP_SR_EN);

-:757: WARNING:LONG_LINE: line length of 113 exceeds 100 columns
#757: FILE: drivers/gpu/drm/i915/intel_pm.c:6761:
+		hw->partitioning = (intel_uncore_read(&dev_priv->uncore, WM_MISC) & WM_MISC_DATA_PARTITION_5_6) ?

-:761: WARNING:LONG_LINE: line length of 116 exceeds 100 columns
#761: FILE: drivers/gpu/drm/i915/intel_pm.c:6764:
+		hw->partitioning = (intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL2) & DISP_DATA_PARTITION_5_6) ?

-:803: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#803: FILE: drivers/gpu/drm/i915/intel_pm.c:6870:
+		intel_uncore_write(&dev_priv->uncore, DSPCNTR(pipe),
+			   intel_uncore_read(&dev_priv->uncore, DSPCNTR(pipe)) |

-:808: WARNING:LONG_LINE: line length of 122 exceeds 100 columns
#808: FILE: drivers/gpu/drm/i915/intel_pm.c:6873:
+		intel_uncore_write(&dev_priv->uncore, DSPSURF(pipe), intel_uncore_read(&dev_priv->uncore, DSPSURF(pipe)));

-:819: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#819: FILE: drivers/gpu/drm/i915/intel_pm.c:6891:
+	intel_uncore_write(&dev_priv->uncore, PCH_3DCGDIS0,
 		   MARIUNIT_CLOCK_GATE_DISABLE |

-:823: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#823: FILE: drivers/gpu/drm/i915/intel_pm.c:6894:
+	intel_uncore_write(&dev_priv->uncore, PCH_3DCGDIS1,
 		   VFMUNIT_CLOCK_GATE_DISABLE);

-:833: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#833: FILE: drivers/gpu/drm/i915/intel_pm.c:6904:
+	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2,
+		   (intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2) |

-:839: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#839: FILE: drivers/gpu/drm/i915/intel_pm.c:6908:
+	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL,
+		   (intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |

-:850: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#850: FILE: drivers/gpu/drm/i915/intel_pm.c:6921:
+		intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1,
+			   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1) |

-:855: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#855: FILE: drivers/gpu/drm/i915/intel_pm.c:6924:
+		intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2,
+			   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2) |

-:865: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#865: FILE: drivers/gpu/drm/i915/intel_pm.c:6931:
+	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2,
+		   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2) |

-:878: WARNING:LONG_LINE: line length of 116 exceeds 100 columns
#878: FILE: drivers/gpu/drm/i915/intel_pm.c:6952:
+	intel_uncore_write(&dev_priv->uncore, SOUTH_CHICKEN2, intel_uncore_read(&dev_priv->uncore, SOUTH_CHICKEN2) |

-:899: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#899: FILE: drivers/gpu/drm/i915/intel_pm.c:6970:
+		intel_uncore_write(&dev_priv->uncore, TRANS_CHICKEN1(pipe),
 			   TRANS_CHICKEN1_DP0UNIT_GC_DISABLE);

-:921: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#921: FILE: drivers/gpu/drm/i915/intel_pm.c:6992:
+	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2,
+		   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2) |

-:927: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#927: FILE: drivers/gpu/drm/i915/intel_pm.c:6996:
+	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL1,
+		   intel_uncore_read(&dev_priv->uncore, GEN6_UCGCTL1) |

-:937: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#937: FILE: drivers/gpu/drm/i915/intel_pm.c:7014:
+	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL2,
 		   GEN6_RCPBUNIT_CLOCK_GATE_DISABLE |

-:947: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#947: FILE: drivers/gpu/drm/i915/intel_pm.c:7029:
+	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1,
+		   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1) |

-:952: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#952: FILE: drivers/gpu/drm/i915/intel_pm.c:7032:
+	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2,
+		   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2) |

-:957: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#957: FILE: drivers/gpu/drm/i915/intel_pm.c:7035:
+	intel_uncore_write(&dev_priv->uncore, ILK_DSPCLK_GATE_D,
+		   intel_uncore_read(&dev_priv->uncore, ILK_DSPCLK_GATE_D) |

-:968: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#968: FILE: drivers/gpu/drm/i915/intel_pm.c:7054:
+		intel_uncore_write(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D,
+			   intel_uncore_read(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D) |

-:975: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#975: FILE: drivers/gpu/drm/i915/intel_pm.c:7059:
+	intel_uncore_write(&dev_priv->uncore, TRANS_CHICKEN1(PIPE_A),
+		   intel_uncore_read(&dev_priv->uncore, TRANS_CHICKEN1(PIPE_A)) |

-:998: WARNING:LONG_LINE: line length of 103 exceeds 100 columns
#998: FILE: drivers/gpu/drm/i915/intel_pm.c:7082:
+	intel_uncore_write(&dev_priv->uncore, GEN7_MISCCPCTL, misccpctl & ~GEN7_DOP_CLOCK_GATE_ENABLE);

-:1024: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1024: FILE: drivers/gpu/drm/i915/intel_pm.c:7103:
+	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN,
 		   ILK_DPFC_CHICKEN_COMP_DUMMY_PIXEL);

-:1030: WARNING:LONG_LINE: line length of 104 exceeds 100 columns
#1030: FILE: drivers/gpu/drm/i915/intel_pm.c:7107:
+		   intel_uncore_read(&dev_priv->uncore, GEN10_DFR_RATIO_EN_AND_CHICKEN) & ~DFR_DISABLE);

-:1030: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1030: FILE: drivers/gpu/drm/i915/intel_pm.c:7107:
+	intel_uncore_write(&dev_priv->uncore, GEN10_DFR_RATIO_EN_AND_CHICKEN,
+		   intel_uncore_read(&dev_priv->uncore, GEN10_DFR_RATIO_EN_AND_CHICKEN) & ~DFR_DISABLE);

-:1040: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1040: FILE: drivers/gpu/drm/i915/intel_pm.c:7118:
+	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN,
 		   ILK_DPFC_CHICKEN_COMP_DUMMY_PIXEL);

-:1045: WARNING:LONG_LINE: line length of 132 exceeds 100 columns
#1045: FILE: drivers/gpu/drm/i915/intel_pm.c:7122:
+		intel_uncore_write(&dev_priv->uncore, GEN9_CLKGATE_DIS_3, intel_uncore_read(&dev_priv->uncore, GEN9_CLKGATE_DIS_3) |

-:1054: WARNING:LONG_LINE: line length of 132 exceeds 100 columns
#1054: FILE: drivers/gpu/drm/i915/intel_pm.c:7134:
+		intel_uncore_write(&dev_priv->uncore, GEN9_CLKGATE_DIS_3, intel_uncore_read(&dev_priv->uncore, GEN9_CLKGATE_DIS_3) |

-:1063: WARNING:LONG_LINE: line length of 126 exceeds 100 columns
#1063: FILE: drivers/gpu/drm/i915/intel_pm.c:7144:
+	intel_uncore_write(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D, intel_uncore_read(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D) |

-:1073: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1073: FILE: drivers/gpu/drm/i915/intel_pm.c:7155:
+	intel_uncore_write(&dev_priv->uncore, _3D_CHICKEN3,
 		   _MASKED_BIT_ENABLE(_3D_CHICKEN3_AA_LINE_QUALITY_FIX_ENABLE));

-:1079: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1079: FILE: drivers/gpu/drm/i915/intel_pm.c:7159:
+	intel_uncore_write(&dev_priv->uncore, GEN8_CHICKEN_DCPR_1,
+		   intel_uncore_read(&dev_priv->uncore, GEN8_CHICKEN_DCPR_1) | MASK_WAKEMEM);

-:1086: WARNING:LONG_LINE: line length of 112 exceeds 100 columns
#1086: FILE: drivers/gpu/drm/i915/intel_pm.c:7165:
+	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |

-:1118: WARNING:LONG_LINE: line length of 122 exceeds 100 columns
#1118: FILE: drivers/gpu/drm/i915/intel_pm.c:7191:
+	intel_uncore_write(&dev_priv->uncore, FBC_LLC_READ_CTRL, intel_uncore_read(&dev_priv->uncore, FBC_LLC_READ_CTRL) |

-:1126: WARNING:LONG_LINE: line length of 112 exceeds 100 columns
#1126: FILE: drivers/gpu/drm/i915/intel_pm.c:7198:
+	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |

-:1134: WARNING:LONG_LINE: line length of 120 exceeds 100 columns
#1134: FILE: drivers/gpu/drm/i915/intel_pm.c:7205:
+	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN, intel_uncore_read(&dev_priv->uncore, ILK_DPFC_CHICKEN) |

-:1143: WARNING:LONG_LINE: line length of 122 exceeds 100 columns
#1143: FILE: drivers/gpu/drm/i915/intel_pm.c:7214:
+	intel_uncore_write(&dev_priv->uncore, FBC_LLC_READ_CTRL, intel_uncore_read(&dev_priv->uncore, FBC_LLC_READ_CTRL) |

-:1149: WARNING:LONG_LINE: line length of 120 exceeds 100 columns
#1149: FILE: drivers/gpu/drm/i915/intel_pm.c:7219:
+		intel_uncore_write(&dev_priv->uncore, GEN8_UCGCTL6, intel_uncore_read(&dev_priv->uncore, GEN8_UCGCTL6) |

-:1155: WARNING:LONG_LINE: line length of 120 exceeds 100 columns
#1155: FILE: drivers/gpu/drm/i915/intel_pm.c:7224:
+		intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL1, intel_uncore_read(&dev_priv->uncore, GEN6_UCGCTL1) |

-:1163: WARNING:LONG_LINE: line length of 112 exceeds 100 columns
#1163: FILE: drivers/gpu/drm/i915/intel_pm.c:7231:
+	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |

-:1171: WARNING:LONG_LINE: line length of 120 exceeds 100 columns
#1171: FILE: drivers/gpu/drm/i915/intel_pm.c:7238:
+	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN, intel_uncore_read(&dev_priv->uncore, ILK_DPFC_CHICKEN) |

-:1180: WARNING:LONG_LINE: line length of 116 exceeds 100 columns
#1180: FILE: drivers/gpu/drm/i915/intel_pm.c:7247:
+	intel_uncore_write(&dev_priv->uncore, GEN7_MISCCPCTL, intel_uncore_read(&dev_priv->uncore, GEN7_MISCCPCTL) &

-:1185: WARNING:LONG_LINE: line length of 122 exceeds 100 columns
#1185: FILE: drivers/gpu/drm/i915/intel_pm.c:7251:
+	intel_uncore_write(&dev_priv->uncore, FBC_LLC_READ_CTRL, intel_uncore_read(&dev_priv->uncore, FBC_LLC_READ_CTRL) |

-:1193: WARNING:LONG_LINE: line length of 112 exceeds 100 columns
#1193: FILE: drivers/gpu/drm/i915/intel_pm.c:7258:
+	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |

-:1201: WARNING:LONG_LINE: line length of 120 exceeds 100 columns
#1201: FILE: drivers/gpu/drm/i915/intel_pm.c:7265:
+	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN, intel_uncore_read(&dev_priv->uncore, ILK_DPFC_CHICKEN) |

-:1209: WARNING:LONG_LINE: line length of 120 exceeds 100 columns
#1209: FILE: drivers/gpu/drm/i915/intel_pm.c:7272:
+	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN, intel_uncore_read(&dev_priv->uncore, ILK_DPFC_CHICKEN) |

-:1220: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1220: FILE: drivers/gpu/drm/i915/intel_pm.c:7282:
+	intel_uncore_write(&dev_priv->uncore, CHICKEN_PIPESL_1(PIPE_A),
+		   intel_uncore_read(&dev_priv->uncore, CHICKEN_PIPESL_1(PIPE_A)) |

-:1225: WARNING:LONG_LINE: line length of 134 exceeds 100 columns
#1225: FILE: drivers/gpu/drm/i915/intel_pm.c:7286:
+	intel_uncore_write(&dev_priv->uncore, GAM_ECOCHK, intel_uncore_read(&dev_priv->uncore, GAM_ECOCHK) | HSW_ECOCHK_ARB_PRIO_SOL);

-:1231: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1231: FILE: drivers/gpu/drm/i915/intel_pm.c:7290:
+	intel_uncore_write(&dev_priv->uncore, CHICKEN_PAR1_1,
+		   intel_uncore_read(&dev_priv->uncore, CHICKEN_PAR1_1) | DPA_MASK_VBLANK_SRD);

-:1238: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1238: FILE: drivers/gpu/drm/i915/intel_pm.c:7295:
+		intel_uncore_write(&dev_priv->uncore, CHICKEN_PIPESL_1(pipe),
+			   intel_uncore_read(&dev_priv->uncore, CHICKEN_PIPESL_1(pipe)) |

-:1247: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1247: FILE: drivers/gpu/drm/i915/intel_pm.c:7302:
+	intel_uncore_write(&dev_priv->uncore, GEN7_FF_THREAD_MODE,
+		   intel_uncore_read(&dev_priv->uncore, GEN7_FF_THREAD_MODE) &

-:1252: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1252: FILE: drivers/gpu/drm/i915/intel_pm.c:7306:
+	intel_uncore_write(&dev_priv->uncore, GEN6_RC_SLEEP_PSMI_CONTROL,
 		   _MASKED_BIT_ENABLE(GEN8_RC_SEMA_IDLE_MSG_DISABLE));

-:1256: WARNING:LONG_LINE: line length of 112 exceeds 100 columns
#1256: FILE: drivers/gpu/drm/i915/intel_pm.c:7309:
+	intel_uncore_write(&dev_priv->uncore, GEN8_UCGCTL6, intel_uncore_read(&dev_priv->uncore, GEN8_UCGCTL6) |

-:1264: WARNING:LONG_LINE: line length of 114 exceeds 100 columns
#1264: FILE: drivers/gpu/drm/i915/intel_pm.c:7316:
+	intel_uncore_write(&dev_priv->uncore, CHICKEN_PAR2_1, intel_uncore_read(&dev_priv->uncore, CHICKEN_PAR2_1)

-:1275: WARNING:LONG_LINE: line length of 107 exceeds 100 columns
#1275: FILE: drivers/gpu/drm/i915/intel_pm.c:7327:
+		   intel_uncore_read(&dev_priv->uncore, GEN6_UCGCTL1) | GEN6_EU_TCUNIT_CLOCK_GATE_DISABLE);

-:1275: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1275: FILE: drivers/gpu/drm/i915/intel_pm.c:7327:
+	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL1,
+		   intel_uncore_read(&dev_priv->uncore, GEN6_UCGCTL1) | GEN6_EU_TCUNIT_CLOCK_GATE_DISABLE);

-:1284: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1284: FILE: drivers/gpu/drm/i915/intel_pm.c:7334:
+	intel_uncore_write(&dev_priv->uncore, CHICKEN_PIPESL_1(PIPE_A),
+		   intel_uncore_read(&dev_priv->uncore, CHICKEN_PIPESL_1(PIPE_A)) |

-:1291: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1291: FILE: drivers/gpu/drm/i915/intel_pm.c:7339:
+	intel_uncore_write(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
+		   intel_uncore_read(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |

-:1296: WARNING:LONG_LINE: line length of 134 exceeds 100 columns
#1296: FILE: drivers/gpu/drm/i915/intel_pm.c:7343:
+	intel_uncore_write(&dev_priv->uncore, GAM_ECOCHK, intel_uncore_read(&dev_priv->uncore, GAM_ECOCHK) | HSW_ECOCHK_ARB_PRIO_SOL);

-:1311: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1311: FILE: drivers/gpu/drm/i915/intel_pm.c:7356:
+	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1,
+		   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1) |

-:1317: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1317: FILE: drivers/gpu/drm/i915/intel_pm.c:7361:
+	intel_uncore_write(&dev_priv->uncore, IVB_CHICKEN3,
 		   CHICKEN3_DGMG_REQ_OUT_FIX_DISABLE |

-:1323: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1323: FILE: drivers/gpu/drm/i915/intel_pm.c:7366:
+		intel_uncore_write(&dev_priv->uncore, GEN7_ROW_CHICKEN2,
 			   _MASKED_BIT_ENABLE(DOP_CLOCK_GATING_DISABLE));

-:1328: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1328: FILE: drivers/gpu/drm/i915/intel_pm.c:7370:
+		intel_uncore_write(&dev_priv->uncore, GEN7_ROW_CHICKEN2,
 			   _MASKED_BIT_ENABLE(DOP_CLOCK_GATING_DISABLE));

-:1331: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1331: FILE: drivers/gpu/drm/i915/intel_pm.c:7372:
+		intel_uncore_write(&dev_priv->uncore, GEN7_ROW_CHICKEN2_GT2,
 			   _MASKED_BIT_ENABLE(DOP_CLOCK_GATING_DISABLE));

-:1340: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1340: FILE: drivers/gpu/drm/i915/intel_pm.c:7380:
+	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL2,
 		   GEN6_RCZUNIT_CLOCK_GATE_DISABLE);

-:1346: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1346: FILE: drivers/gpu/drm/i915/intel_pm.c:7384:
+	intel_uncore_write(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
+			intel_uncore_read(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |

-:1366: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1366: FILE: drivers/gpu/drm/i915/intel_pm.c:7404:
+	intel_uncore_write(&dev_priv->uncore, IVB_CHICKEN3,
 		   CHICKEN3_DGMG_REQ_OUT_FIX_DISABLE |

-:1372: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1372: FILE: drivers/gpu/drm/i915/intel_pm.c:7409:
+	intel_uncore_write(&dev_priv->uncore, GEN7_ROW_CHICKEN2,
 		   _MASKED_BIT_ENABLE(DOP_CLOCK_GATING_DISABLE));

-:1378: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1378: FILE: drivers/gpu/drm/i915/intel_pm.c:7413:
+	intel_uncore_write(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
+		   intel_uncore_read(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |

-:1387: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1387: FILE: drivers/gpu/drm/i915/intel_pm.c:7421:
+	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL2,
 		   GEN6_RCZUNIT_CLOCK_GATE_DISABLE);

-:1395: WARNING:LONG_LINE: line length of 106 exceeds 100 columns
#1395: FILE: drivers/gpu/drm/i915/intel_pm.c:7427:
+		   intel_uncore_read(&dev_priv->uncore, GEN7_UCGCTL4) | GEN7_L3BANK2X_CLOCK_GATE_DISABLE);

-:1395: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1395: FILE: drivers/gpu/drm/i915/intel_pm.c:7427:
+	intel_uncore_write(&dev_priv->uncore, GEN7_UCGCTL4,
+		   intel_uncore_read(&dev_priv->uncore, GEN7_UCGCTL4) | GEN7_L3BANK2X_CLOCK_GATE_DISABLE);

-:1413: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1413: FILE: drivers/gpu/drm/i915/intel_pm.c:7442:
+	intel_uncore_write(&dev_priv->uncore, GEN7_FF_THREAD_MODE,
+		   intel_uncore_read(&dev_priv->uncore, GEN7_FF_THREAD_MODE) &

-:1419: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1419: FILE: drivers/gpu/drm/i915/intel_pm.c:7447:
+	intel_uncore_write(&dev_priv->uncore, GEN6_RC_SLEEP_PSMI_CONTROL,
 		   _MASKED_BIT_ENABLE(GEN8_RC_SEMA_IDLE_MSG_DISABLE));

-:1423: WARNING:LONG_LINE: line length of 112 exceeds 100 columns
#1423: FILE: drivers/gpu/drm/i915/intel_pm.c:7450:
+	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL1, intel_uncore_read(&dev_priv->uncore, GEN6_UCGCTL1) |

-:1428: WARNING:LONG_LINE: line length of 112 exceeds 100 columns
#1428: FILE: drivers/gpu/drm/i915/intel_pm.c:7454:
+	intel_uncore_write(&dev_priv->uncore, GEN8_UCGCTL6, intel_uncore_read(&dev_priv->uncore, GEN8_UCGCTL6) |

-:1468: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1468: FILE: drivers/gpu/drm/i915/intel_pm.c:7507:
+	intel_uncore_write(&dev_priv->uncore, MI_ARB_STATE,
 		   _MASKED_BIT_ENABLE(MI_ARB_DISPLAY_TRICKLE_FEED_DISABLE));

-:1483: WARNING:LONG_LINE: line length of 103 exceeds 100 columns
#1483: FILE: drivers/gpu/drm/i915/intel_pm.c:7519:
+		intel_uncore_write(&dev_priv->uncore, ECOSKPD, _MASKED_BIT_ENABLE(ECO_GATING_CX_ONLY));

-:1495: WARNING:LONG_LINE: line length of 107 exceeds 100 columns
#1495: FILE: drivers/gpu/drm/i915/intel_pm.c:7528:
+	intel_uncore_write(&dev_priv->uncore, MI_ARB_STATE, _MASKED_BIT_ENABLE(MI_ARB_C3_LP_WRITE_ENABLE));

-:1499: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1499: FILE: drivers/gpu/drm/i915/intel_pm.c:7531:
+	intel_uncore_write(&dev_priv->uncore, MI_ARB_STATE,
 		   _MASKED_BIT_ENABLE(MI_ARB_DISPLAY_TRICKLE_FEED_DISABLE));

-:1514: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1514: FILE: drivers/gpu/drm/i915/intel_pm.c:7543:
+	intel_uncore_write(&dev_priv->uncore, MEM_MODE,
 		   _MASKED_BIT_ENABLE(MEM_DISPLAY_TRICKLE_FEED_DISABLE));

-:1523: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1523: FILE: drivers/gpu/drm/i915/intel_pm.c:7553:
+	intel_uncore_write(&dev_priv->uncore, SCPD0,
 		   _MASKED_BIT_ENABLE(SCPD_FBC_IGNORE_3D));

-:1530: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1530: FILE: drivers/gpu/drm/i915/intel_pm.c:7559:
+	intel_uncore_write(&dev_priv->uncore, MEM_MODE,
 		   _MASKED_BIT_ENABLE(MEM_DISPLAY_A_TRICKLE_FEED_DISABLE) |

total: 0 errors, 44 warnings, 66 checks, 1449 lines checked
3b


_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: nuke remaining legacy reg helpers (I915_READ/WRITE etc.)
  2020-11-12 11:44 [Intel-gfx] [PATCH 0/9] drm/i915: nuke remaining legacy reg helpers (I915_READ/WRITE etc.) Jani Nikula
                   ` (9 preceding siblings ...)
  2020-11-12 12:35 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: nuke remaining legacy reg helpers (I915_READ/WRITE etc.) Patchwork
@ 2020-11-12 13:06 ` Patchwork
  2020-11-12 14:51 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
  11 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2020-11-12 13:06 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx


[-- Attachment #1.1: Type: text/plain, Size: 3154 bytes --]

== Series Details ==

Series: drm/i915: nuke remaining legacy reg helpers (I915_READ/WRITE etc.)
URL   : https://patchwork.freedesktop.org/series/83762/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9312 -> Patchwork_18894
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/index.html

New tests
---------

  New tests have been introduced between CI_DRM_9312 and Patchwork_18894:

### New CI tests (1) ###

  * boot:
    - Statuses : 40 pass(s)
    - Exec time: [0.0] s

  

Known issues
------------

  Here are the changes found in Patchwork_18894 that come from known issues:

### IGT changes ###

#### Possible fixes ####

  * igt@kms_busy@basic@flip:
    - {fi-tgl-dsi}:       [DMESG-WARN][1] ([i915#1982]) -> [PASS][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/fi-tgl-dsi/igt@kms_busy@basic@flip.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/fi-tgl-dsi/igt@kms_busy@basic@flip.html

  * igt@kms_cursor_legacy@basic-flip-after-cursor-atomic:
    - fi-icl-u2:          [DMESG-WARN][3] ([i915#1982]) -> [PASS][4] +1 similar issue
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/fi-icl-u2/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/fi-icl-u2/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982


Participating hosts (44 -> 40)
------------------------------

  Additional (1): fi-tgl-y 
  Missing    (5): fi-ilk-m540 fi-hsw-4200u fi-bsw-cyan fi-pnv-d510 fi-bdw-samus 


Build changes
-------------

  * Linux: CI_DRM_9312 -> Patchwork_18894

  CI-20190529: 20190529
  CI_DRM_9312: 88b74d59a27aa168f7cd2dec199c33ee71fe8bb0 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5847: 8cffaebec5228a5042cc6928ac582a0589e2de3e @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_18894: 3d231cbcc15eccab10761eba9bff4851d19a0905 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

3d231cbcc15e drm/i915: remove last traces of I915_READ(), I915_WRITE() and POSTING_READ()
3b0dcd03f814 drm/i915/irq: replace I915_READ()/WRITE() with intel_uncore_read()/write()
67149b9d146a drm/i915/pm: replace I915_READ()/WRITE() with intel_uncore_read()/write()
0ea2a583a565 drm/i915/suspend: replace I915_READ()/WRITE() with intel_de_read()/write()
a62091be81ec drm/i915/debugfs: replace I915_READ() with intel_uncore_read()
301253565834 drm/i915/debugfs: replace I915_READ()+I915_WRITE() with intel_uncore_rmw()
9513480437b3 drm/i915/cdclk: prefer intel_de_write() over I915_WRITE()
d38df7d26218 drm/i915: remove last traces of I915_READ_FW() and I915_WRITE_FW()
9851f04c829b drm/i915: remove last users of I915_READ_FW()

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/index.html

[-- Attachment #1.2: Type: text/html, Size: 3946 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915: nuke remaining legacy reg helpers (I915_READ/WRITE etc.)
  2020-11-12 11:44 [Intel-gfx] [PATCH 0/9] drm/i915: nuke remaining legacy reg helpers (I915_READ/WRITE etc.) Jani Nikula
                   ` (10 preceding siblings ...)
  2020-11-12 13:06 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
@ 2020-11-12 14:51 ` Patchwork
  11 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2020-11-12 14:51 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx


[-- Attachment #1.1: Type: text/plain, Size: 21937 bytes --]

== Series Details ==

Series: drm/i915: nuke remaining legacy reg helpers (I915_READ/WRITE etc.)
URL   : https://patchwork.freedesktop.org/series/83762/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_9312_full -> Patchwork_18894_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_18894_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_18894_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_18894_full:

### IGT changes ###

#### Possible regressions ####

  * igt@gem_eio@in-flight-internal-immediate:
    - shard-snb:          [PASS][1] -> [TIMEOUT][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-snb7/igt@gem_eio@in-flight-internal-immediate.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-snb6/igt@gem_eio@in-flight-internal-immediate.html

  * igt@gem_exec_create@basic:
    - shard-glk:          [PASS][3] -> [FAIL][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-glk8/igt@gem_exec_create@basic.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-glk4/igt@gem_exec_create@basic.html

  * igt@kms_ccs@pipe-a-crc-primary-basic:
    - shard-skl:          [PASS][5] -> [FAIL][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-skl9/igt@kms_ccs@pipe-a-crc-primary-basic.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-skl3/igt@kms_ccs@pipe-a-crc-primary-basic.html

  * igt@perf_pmu@interrupts-sync:
    - shard-hsw:          [PASS][7] -> [FAIL][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-hsw8/igt@perf_pmu@interrupts-sync.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-hsw2/igt@perf_pmu@interrupts-sync.html

  
New tests
---------

  New tests have been introduced between CI_DRM_9312_full and Patchwork_18894_full:

### New CI tests (1) ###

  * boot:
    - Statuses : 200 pass(s)
    - Exec time: [0.0] s

  

Known issues
------------

  Here are the changes found in Patchwork_18894_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_reloc@basic-many-active@rcs0:
    - shard-hsw:          [PASS][9] -> [FAIL][10] ([i915#2389])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-hsw1/igt@gem_exec_reloc@basic-many-active@rcs0.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-hsw2/igt@gem_exec_reloc@basic-many-active@rcs0.html

  * igt@gem_exec_whisper@basic-forked:
    - shard-glk:          [PASS][11] -> [DMESG-WARN][12] ([i915#118] / [i915#95])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-glk8/igt@gem_exec_whisper@basic-forked.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-glk2/igt@gem_exec_whisper@basic-forked.html

  * igt@i915_module_load@reload:
    - shard-iclb:         [PASS][13] -> [DMESG-WARN][14] ([i915#1982])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-iclb5/igt@i915_module_load@reload.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-iclb2/igt@i915_module_load@reload.html

  * igt@kms_cursor_crc@pipe-a-cursor-128x42-sliding:
    - shard-skl:          [PASS][15] -> [FAIL][16] ([i915#54]) +3 similar issues
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-skl5/igt@kms_cursor_crc@pipe-a-cursor-128x42-sliding.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-skl6/igt@kms_cursor_crc@pipe-a-cursor-128x42-sliding.html

  * igt@kms_cursor_edge_walk@pipe-d-64x64-top-edge:
    - shard-tglb:         [PASS][17] -> [DMESG-WARN][18] ([i915#1982])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-tglb3/igt@kms_cursor_edge_walk@pipe-d-64x64-top-edge.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-tglb3/igt@kms_cursor_edge_walk@pipe-d-64x64-top-edge.html

  * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic:
    - shard-hsw:          [PASS][19] -> [FAIL][20] ([i915#96])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-hsw4/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-hsw1/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html

  * igt@kms_cursor_legacy@flip-vs-cursor-crc-atomic:
    - shard-tglb:         [PASS][21] -> [FAIL][22] ([i915#2346])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-tglb3/igt@kms_cursor_legacy@flip-vs-cursor-crc-atomic.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-tglb6/igt@kms_cursor_legacy@flip-vs-cursor-crc-atomic.html

  * igt@kms_flip@flip-vs-expired-vblank@a-edp1:
    - shard-tglb:         [PASS][23] -> [FAIL][24] ([i915#2598])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-tglb3/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-tglb3/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html

  * igt@kms_flip@flip-vs-suspend-interruptible@b-dp1:
    - shard-kbl:          [PASS][25] -> [DMESG-WARN][26] ([i915#180])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-kbl7/igt@kms_flip@flip-vs-suspend-interruptible@b-dp1.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-kbl1/igt@kms_flip@flip-vs-suspend-interruptible@b-dp1.html

  * igt@kms_flip@plain-flip-fb-recreate@a-edp1:
    - shard-skl:          [PASS][27] -> [FAIL][28] ([i915#2122])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-skl10/igt@kms_flip@plain-flip-fb-recreate@a-edp1.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-skl2/igt@kms_flip@plain-flip-fb-recreate@a-edp1.html

  * igt@kms_flip@plain-flip-ts-check@a-hdmi-a1:
    - shard-glk:          [PASS][29] -> [DMESG-WARN][30] ([i915#1982]) +1 similar issue
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-glk6/igt@kms_flip@plain-flip-ts-check@a-hdmi-a1.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-glk3/igt@kms_flip@plain-flip-ts-check@a-hdmi-a1.html

  * igt@kms_hdr@bpc-switch-dpms:
    - shard-skl:          [PASS][31] -> [FAIL][32] ([i915#1188]) +1 similar issue
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-skl2/igt@kms_hdr@bpc-switch-dpms.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-skl9/igt@kms_hdr@bpc-switch-dpms.html

  * igt@kms_plane_lowres@pipe-a-tiling-yf:
    - shard-skl:          [PASS][33] -> [DMESG-WARN][34] ([i915#1982]) +10 similar issues
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-skl5/igt@kms_plane_lowres@pipe-a-tiling-yf.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-skl1/igt@kms_plane_lowres@pipe-a-tiling-yf.html

  * igt@kms_psr@psr2_cursor_plane_move:
    - shard-iclb:         [PASS][35] -> [SKIP][36] ([fdo#109441]) +1 similar issue
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-iclb2/igt@kms_psr@psr2_cursor_plane_move.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-iclb6/igt@kms_psr@psr2_cursor_plane_move.html

  * igt@kms_universal_plane@disable-primary-vs-flip-pipe-a:
    - shard-apl:          [PASS][37] -> [DMESG-WARN][38] ([i915#1635] / [i915#1982]) +1 similar issue
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-apl7/igt@kms_universal_plane@disable-primary-vs-flip-pipe-a.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-apl8/igt@kms_universal_plane@disable-primary-vs-flip-pipe-a.html

  * igt@kms_vblank@pipe-c-query-forked-busy:
    - shard-kbl:          [PASS][39] -> [DMESG-WARN][40] ([i915#1982]) +2 similar issues
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-kbl2/igt@kms_vblank@pipe-c-query-forked-busy.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-kbl1/igt@kms_vblank@pipe-c-query-forked-busy.html

  * igt@prime_vgem@sync@rcs0:
    - shard-iclb:         [PASS][41] -> [INCOMPLETE][42] ([i915#409])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-iclb1/igt@prime_vgem@sync@rcs0.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-iclb3/igt@prime_vgem@sync@rcs0.html

  
#### Possible fixes ####

  * igt@gem_exec_create@basic:
    - shard-snb:          [FAIL][43] ([i915#1037]) -> [PASS][44]
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-snb7/igt@gem_exec_create@basic.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-snb7/igt@gem_exec_create@basic.html

  * igt@gem_softpin@noreloc-s3:
    - shard-skl:          [INCOMPLETE][45] ([i915#198]) -> [PASS][46]
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-skl5/igt@gem_softpin@noreloc-s3.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-skl3/igt@gem_softpin@noreloc-s3.html

  * igt@gen9_exec_parse@allowed-all:
    - shard-skl:          [DMESG-WARN][47] ([i915#1436] / [i915#716]) -> [PASS][48]
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-skl5/igt@gen9_exec_parse@allowed-all.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-skl1/igt@gen9_exec_parse@allowed-all.html

  * {igt@kms_async_flips@alternate-sync-async-flip}:
    - shard-tglb:         [FAIL][49] ([i915#2521]) -> [PASS][50]
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-tglb1/igt@kms_async_flips@alternate-sync-async-flip.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-tglb6/igt@kms_async_flips@alternate-sync-async-flip.html

  * igt@kms_cursor_crc@pipe-c-cursor-64x21-random:
    - shard-skl:          [FAIL][51] ([i915#54]) -> [PASS][52] +1 similar issue
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-skl1/igt@kms_cursor_crc@pipe-c-cursor-64x21-random.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-skl3/igt@kms_cursor_crc@pipe-c-cursor-64x21-random.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
    - shard-skl:          [FAIL][53] ([i915#2346]) -> [PASS][54]
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-skl3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-skl4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html

  * igt@kms_cursor_legacy@flip-vs-cursor-toggle:
    - shard-tglb:         [FAIL][55] ([i915#2346]) -> [PASS][56]
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-tglb8/igt@kms_cursor_legacy@flip-vs-cursor-toggle.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-tglb5/igt@kms_cursor_legacy@flip-vs-cursor-toggle.html

  * igt@kms_cursor_legacy@short-flip-before-cursor-toggle:
    - shard-apl:          [DMESG-WARN][57] ([i915#1635] / [i915#1982]) -> [PASS][58] +1 similar issue
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-apl7/igt@kms_cursor_legacy@short-flip-before-cursor-toggle.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-apl8/igt@kms_cursor_legacy@short-flip-before-cursor-toggle.html

  * igt@kms_draw_crc@draw-method-rgb565-mmap-cpu-ytiled:
    - shard-skl:          [DMESG-WARN][59] ([i915#1982]) -> [PASS][60] +3 similar issues
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-skl5/igt@kms_draw_crc@draw-method-rgb565-mmap-cpu-ytiled.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-skl1/igt@kms_draw_crc@draw-method-rgb565-mmap-cpu-ytiled.html

  * igt@kms_flip@basic-plain-flip@a-hdmi-a1:
    - shard-glk:          [DMESG-WARN][61] ([i915#1982]) -> [PASS][62]
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-glk7/igt@kms_flip@basic-plain-flip@a-hdmi-a1.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-glk7/igt@kms_flip@basic-plain-flip@a-hdmi-a1.html

  * igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1:
    - shard-skl:          [FAIL][63] ([i915#2122]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-skl3/igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-skl4/igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1.html

  * igt@kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-cpu:
    - shard-snb:          [FAIL][65] ([i915#2546]) -> [PASS][66]
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-snb7/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-cpu.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-snb7/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-cpu.html

  * igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min:
    - shard-skl:          [FAIL][67] ([fdo#108145] / [i915#265]) -> [PASS][68]
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-skl7/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-skl5/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html

  * igt@kms_psr@psr2_sprite_plane_move:
    - shard-iclb:         [SKIP][69] ([fdo#109441]) -> [PASS][70] +1 similar issue
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-iclb5/igt@kms_psr@psr2_sprite_plane_move.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html

  * igt@kms_vblank@pipe-c-query-forked-busy:
    - shard-hsw:          [DMESG-WARN][71] ([i915#1982]) -> [PASS][72] +2 similar issues
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-hsw6/igt@kms_vblank@pipe-c-query-forked-busy.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-hsw7/igt@kms_vblank@pipe-c-query-forked-busy.html
    - shard-iclb:         [DMESG-WARN][73] ([i915#1982]) -> [PASS][74] +1 similar issue
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-iclb7/igt@kms_vblank@pipe-c-query-forked-busy.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-iclb1/igt@kms_vblank@pipe-c-query-forked-busy.html

  * igt@perf@short-reads:
    - shard-skl:          [FAIL][75] ([i915#51]) -> [PASS][76]
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-skl4/igt@perf@short-reads.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-skl10/igt@perf@short-reads.html

  
#### Warnings ####

  * igt@core_hotunplug@hotrebind-lateclose:
    - shard-hsw:          [WARN][77] ([i915#2283]) -> [FAIL][78] ([i915#2644])
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-hsw4/igt@core_hotunplug@hotrebind-lateclose.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-hsw6/igt@core_hotunplug@hotrebind-lateclose.html

  * igt@gem_exec_create@forked:
    - shard-hsw:          [FAIL][79] -> [FAIL][80] ([i915#1888])
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-hsw8/igt@gem_exec_create@forked.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-hsw2/igt@gem_exec_create@forked.html

  * igt@kms_dp_dsc@basic-dsc-enable-edp:
    - shard-iclb:         [SKIP][81] ([fdo#109349]) -> [DMESG-WARN][82] ([i915#1226])
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-iclb5/igt@kms_dp_dsc@basic-dsc-enable-edp.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html

  * igt@kms_vblank@pipe-c-ts-continuation-dpms-suspend:
    - shard-apl:          [INCOMPLETE][83] ([i915#1635] / [i915#2635]) -> [DMESG-WARN][84] ([i915#1635] / [i915#2635])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-apl8/igt@kms_vblank@pipe-c-ts-continuation-dpms-suspend.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-apl2/igt@kms_vblank@pipe-c-ts-continuation-dpms-suspend.html

  * igt@runner@aborted:
    - shard-iclb:         ([FAIL][85], [FAIL][86], [FAIL][87]) ([i915#1814] / [i915#2439] / [i915#483]) -> ([FAIL][88], [FAIL][89], [FAIL][90], [FAIL][91]) ([i915#1814] / [i915#2426] / [i915#2439] / [i915#409] / [i915#483])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-iclb6/igt@runner@aborted.html
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-iclb3/igt@runner@aborted.html
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-iclb2/igt@runner@aborted.html
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-iclb1/igt@runner@aborted.html
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-iclb6/igt@runner@aborted.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-iclb3/igt@runner@aborted.html
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-iclb7/igt@runner@aborted.html
    - shard-glk:          ([FAIL][92], [FAIL][93], [FAIL][94]) ([i915#1611] / [i915#1814] / [i915#2439] / [k.org#202321]) -> ([FAIL][95], [FAIL][96], [FAIL][97]) ([i915#1611] / [i915#1814] / [i915#2439] / [i915#483] / [k.org#202321])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-glk4/igt@runner@aborted.html
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-glk2/igt@runner@aborted.html
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-glk6/igt@runner@aborted.html
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-glk8/igt@runner@aborted.html
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-glk1/igt@runner@aborted.html
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-glk3/igt@runner@aborted.html
    - shard-skl:          ([FAIL][98], [FAIL][99]) ([i915#1436] / [i915#1611] / [i915#2439] / [i915#483]) -> [FAIL][100] ([i915#1611] / [i915#2439])
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-skl5/igt@runner@aborted.html
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9312/shard-skl6/igt@runner@aborted.html
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/shard-skl8/igt@runner@aborted.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#109349]: https://bugs.freedesktop.org/show_bug.cgi?id=109349
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [i915#1037]: https://gitlab.freedesktop.org/drm/intel/issues/1037
  [i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
  [i915#1188]: https://gitlab.freedesktop.org/drm/intel/issues/1188
  [i915#1226]: https://gitlab.freedesktop.org/drm/intel/issues/1226
  [i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436
  [i915#1611]: https://gitlab.freedesktop.org/drm/intel/issues/1611
  [i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#1814]: https://gitlab.freedesktop.org/drm/intel/issues/1814
  [i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888
  [i915#198]: https://gitlab.freedesktop.org/drm/intel/issues/198
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
  [i915#2283]: https://gitlab.freedesktop.org/drm/intel/issues/2283
  [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
  [i915#2389]: https://gitlab.freedesktop.org/drm/intel/issues/2389
  [i915#2426]: https://gitlab.freedesktop.org/drm/intel/issues/2426
  [i915#2439]: https://gitlab.freedesktop.org/drm/intel/issues/2439
  [i915#2521]: https://gitlab.freedesktop.org/drm/intel/issues/2521
  [i915#2546]: https://gitlab.freedesktop.org/drm/intel/issues/2546
  [i915#2598]: https://gitlab.freedesktop.org/drm/intel/issues/2598
  [i915#2635]: https://gitlab.freedesktop.org/drm/intel/issues/2635
  [i915#2644]: https://gitlab.freedesktop.org/drm/intel/issues/2644
  [i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
  [i915#409]: https://gitlab.freedesktop.org/drm/intel/issues/409
  [i915#483]: https://gitlab.freedesktop.org/drm/intel/issues/483
  [i915#51]: https://gitlab.freedesktop.org/drm/intel/issues/51
  [i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
  [i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95
  [i915#96]: https://gitlab.freedesktop.org/drm/intel/issues/96
  [k.org#202321]: https://bugzilla.kernel.org/show_bug.cgi?id=202321


Participating hosts (11 -> 11)
------------------------------

  No changes in participating hosts


Build changes
-------------

  * Linux: CI_DRM_9312 -> Patchwork_18894

  CI-20190529: 20190529
  CI_DRM_9312: 88b74d59a27aa168f7cd2dec199c33ee71fe8bb0 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5847: 8cffaebec5228a5042cc6928ac582a0589e2de3e @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_18894: 3d231cbcc15eccab10761eba9bff4851d19a0905 @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18894/index.html

[-- Attachment #1.2: Type: text/html, Size: 26381 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Intel-gfx] [PATCH 1/9] drm/i915: remove last users of I915_READ_FW()
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 1/9] drm/i915: remove last users of I915_READ_FW() Jani Nikula
@ 2020-11-12 20:17   ` Rodrigo Vivi
  2020-11-12 20:24   ` Chris Wilson
  1 sibling, 0 replies; 26+ messages in thread
From: Rodrigo Vivi @ 2020-11-12 20:17 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

On Thu, Nov 12, 2020 at 01:44:34PM +0200, Jani Nikula wrote:
> Use the preferred intel_uncore_read_fw() instead.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 77e76b665098..7cbca268cb61 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -1238,10 +1238,10 @@ static int i915_rps_boost_info(struct seq_file *m, void *data)
>  		u32 rpdown, rpdownei;
>  
>  		intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
> -		rpup = I915_READ_FW(GEN6_RP_CUR_UP) & GEN6_RP_EI_MASK;
> -		rpupei = I915_READ_FW(GEN6_RP_CUR_UP_EI) & GEN6_RP_EI_MASK;
> -		rpdown = I915_READ_FW(GEN6_RP_CUR_DOWN) & GEN6_RP_EI_MASK;
> -		rpdownei = I915_READ_FW(GEN6_RP_CUR_DOWN_EI) & GEN6_RP_EI_MASK;
> +		rpup = intel_uncore_read_fw(&dev_priv->uncore, GEN6_RP_CUR_UP) & GEN6_RP_EI_MASK;
> +		rpupei = intel_uncore_read_fw(&dev_priv->uncore, GEN6_RP_CUR_UP_EI) & GEN6_RP_EI_MASK;
> +		rpdown = intel_uncore_read_fw(&dev_priv->uncore, GEN6_RP_CUR_DOWN) & GEN6_RP_EI_MASK;
> +		rpdownei = intel_uncore_read_fw(&dev_priv->uncore, GEN6_RP_CUR_DOWN_EI) & GEN6_RP_EI_MASK;
>  		intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
>  
>  		seq_printf(m, "\nRPS Autotuning (current \"%s\" window):\n",
> -- 
> 2.20.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Intel-gfx] [PATCH 2/9] drm/i915: remove last traces of I915_READ_FW() and I915_WRITE_FW()
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 2/9] drm/i915: remove last traces of I915_READ_FW() and I915_WRITE_FW() Jani Nikula
@ 2020-11-12 20:19   ` Rodrigo Vivi
  2020-11-12 20:26   ` Chris Wilson
  1 sibling, 0 replies; 26+ messages in thread
From: Rodrigo Vivi @ 2020-11-12 20:19 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

On Thu, Nov 12, 2020 at 01:44:35PM +0200, Jani Nikula wrote:
> Good riddance! Remove the macros and their remaining references in
> comments.
> 
> intel_uncore_read_fw() and intel_uncore_write_fw() should be used
> instead.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> ---
>  drivers/gpu/drm/i915/i915_drv.h     | 29 -----------------------------
>  drivers/gpu/drm/i915/intel_uncore.c |  2 +-
>  drivers/gpu/drm/i915/intel_uncore.h |  2 +-
>  3 files changed, 2 insertions(+), 31 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 15be8debae54..fecb5899cbac 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -1978,35 +1978,6 @@ int i915_reg_read_ioctl(struct drm_device *dev, void *data,
>  
>  #define POSTING_READ(reg__)	__I915_REG_OP(posting_read, dev_priv, (reg__))
>  
> -/* These are untraced mmio-accessors that are only valid to be used inside
> - * critical sections, such as inside IRQ handlers, where forcewake is explicitly
> - * controlled.
> - *
> - * Think twice, and think again, before using these.
> - *
> - * As an example, these accessors can possibly be used between:
> - *
> - * spin_lock_irq(&dev_priv->uncore.lock);
> - * intel_uncore_forcewake_get__locked();
> - *
> - * and
> - *
> - * intel_uncore_forcewake_put__locked();
> - * spin_unlock_irq(&dev_priv->uncore.lock);
> - *
> - *
> - * Note: some registers may not need forcewake held, so
> - * intel_uncore_forcewake_{get,put} can be omitted, see
> - * intel_uncore_forcewake_for_reg().
> - *
> - * Certain architectures will die if the same cacheline is concurrently accessed
> - * by different clients (e.g. on Ivybridge). Access to registers should
> - * therefore generally be serialised, by either the dev_priv->uncore.lock or
> - * a more localised lock guarding all access to that bank of registers.
> - */
> -#define I915_READ_FW(reg__) __I915_REG_OP(read_fw, dev_priv, (reg__))
> -#define I915_WRITE_FW(reg__, val__) __I915_REG_OP(write_fw, dev_priv, (reg__), (val__))
> -
>  /* i915_mm.c */
>  int remap_io_mapping(struct vm_area_struct *vma,
>  		     unsigned long addr, unsigned long pfn, unsigned long size,
> diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
> index 1c14a07eba7d..ef40edfff412 100644
> --- a/drivers/gpu/drm/i915/intel_uncore.c
> +++ b/drivers/gpu/drm/i915/intel_uncore.c
> @@ -2070,7 +2070,7 @@ int i915_reg_read_ioctl(struct drm_device *dev,
>   * This routine waits until the target register @reg contains the expected
>   * @value after applying the @mask, i.e. it waits until ::
>   *
> - *     (I915_READ_FW(reg) & mask) == value
> + *     (intel_uncore_read_fw(uncore, reg) & mask) == value
>   *
>   * Otherwise, the wait will timeout after @slow_timeout_ms milliseconds.
>   * For atomic context @slow_timeout_ms must be zero and @fast_timeout_us
> diff --git a/drivers/gpu/drm/i915/intel_uncore.h b/drivers/gpu/drm/i915/intel_uncore.h
> index bd2467284295..5dcb7f4183b2 100644
> --- a/drivers/gpu/drm/i915/intel_uncore.h
> +++ b/drivers/gpu/drm/i915/intel_uncore.h
> @@ -216,7 +216,7 @@ void intel_uncore_forcewake_flush(struct intel_uncore *uncore,
>  
>  /*
>   * Like above but the caller must manage the uncore.lock itself.
> - * Must be used with I915_READ_FW and friends.
> + * Must be used with intel_uncore_read_fw() and friends.
>   */
>  void intel_uncore_forcewake_get__locked(struct intel_uncore *uncore,
>  					enum forcewake_domains domains);
> -- 
> 2.20.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Intel-gfx] [PATCH 3/9] drm/i915/cdclk: prefer intel_de_write() over I915_WRITE()
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 3/9] drm/i915/cdclk: prefer intel_de_write() over I915_WRITE() Jani Nikula
@ 2020-11-12 20:20   ` Rodrigo Vivi
  0 siblings, 0 replies; 26+ messages in thread
From: Rodrigo Vivi @ 2020-11-12 20:20 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

On Thu, Nov 12, 2020 at 01:44:36PM +0200, Jani Nikula wrote:
> Let's try to not add new ones while we're phasing out I915_READ() and
> I915_WRITE().
> 
> Fixes: 27a6bc802bd9 ("drm/i915/dg1: Initialize RAWCLK properly")
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> ---
>  drivers/gpu/drm/i915/display/intel_cdclk.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c
> index c449d28d0560..088d5908176c 100644
> --- a/drivers/gpu/drm/i915/display/intel_cdclk.c
> +++ b/drivers/gpu/drm/i915/display/intel_cdclk.c
> @@ -2710,8 +2710,8 @@ static int dg1_rawclk(struct drm_i915_private *dev_priv)
>  	 * DG1 always uses a 38.4 MHz rawclk.  The bspec tells us
>  	 * "Program Numerator=2, Denominator=4, Divider=37 decimal."
>  	 */
> -	I915_WRITE(PCH_RAWCLK_FREQ,
> -		   CNP_RAWCLK_DEN(4) | CNP_RAWCLK_DIV(37) | ICP_RAWCLK_NUM(2));
> +	intel_de_write(dev_priv, PCH_RAWCLK_FREQ,
> +		       CNP_RAWCLK_DEN(4) | CNP_RAWCLK_DIV(37) | ICP_RAWCLK_NUM(2));
>  
>  	return 38400;
>  }
> -- 
> 2.20.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Intel-gfx] [PATCH 4/9] drm/i915/debugfs: replace I915_READ()+I915_WRITE() with intel_uncore_rmw()
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 4/9] drm/i915/debugfs: replace I915_READ()+I915_WRITE() with intel_uncore_rmw() Jani Nikula
@ 2020-11-12 20:21   ` Rodrigo Vivi
  2020-11-12 20:28   ` Chris Wilson
  1 sibling, 0 replies; 26+ messages in thread
From: Rodrigo Vivi @ 2020-11-12 20:21 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

On Thu, Nov 12, 2020 at 01:44:37PM +0200, Jani Nikula wrote:
> Remove the last I915_WRITE() use in i915_debugfs.c.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 8 ++------
>  1 file changed, 2 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 7cbca268cb61..151734a1a496 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -1562,13 +1562,9 @@ i915_cache_sharing_set(void *data, u64 val)
>  	drm_dbg(&dev_priv->drm,
>  		"Manually setting uncore sharing to %llu\n", val);
>  	with_intel_runtime_pm(&dev_priv->runtime_pm, wakeref) {
> -		u32 snpcr;
> -
>  		/* Update the cache sharing policy here as well */
> -		snpcr = I915_READ(GEN6_MBCUNIT_SNPCR);
> -		snpcr &= ~GEN6_MBC_SNPCR_MASK;
> -		snpcr |= val << GEN6_MBC_SNPCR_SHIFT;
> -		I915_WRITE(GEN6_MBCUNIT_SNPCR, snpcr);
> +		intel_uncore_rmw(&dev_priv->uncore, GEN6_MBCUNIT_SNPCR,
> +				 GEN6_MBC_SNPCR_MASK, val << GEN6_MBC_SNPCR_SHIFT);
>  	}
>  
>  	return 0;
> -- 
> 2.20.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Intel-gfx] [PATCH 5/9] drm/i915/debugfs: replace I915_READ() with intel_uncore_read()
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 5/9] drm/i915/debugfs: replace I915_READ() with intel_uncore_read() Jani Nikula
@ 2020-11-12 20:23   ` Rodrigo Vivi
  0 siblings, 0 replies; 26+ messages in thread
From: Rodrigo Vivi @ 2020-11-12 20:23 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

On Thu, Nov 12, 2020 at 01:44:38PM +0200, Jani Nikula wrote:
> Another straggler with I915_READ() uses gone.
> 
> Arguably some of these should use intel_de_read(), however not
> all. Prioritize I915_READ() removal in general over migrating to the
> pedantically correct replacement right away.

I agree!

> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>


Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>


> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 214 ++++++++++++++--------------
>  1 file changed, 107 insertions(+), 107 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 151734a1a496..a8b0a67250b5 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -397,37 +397,37 @@ static void gen8_display_interrupt_info(struct seq_file *m)
>  		}
>  		seq_printf(m, "Pipe %c IMR:\t%08x\n",
>  			   pipe_name(pipe),
> -			   I915_READ(GEN8_DE_PIPE_IMR(pipe)));
> +			   intel_uncore_read(&dev_priv->uncore, GEN8_DE_PIPE_IMR(pipe)));
>  		seq_printf(m, "Pipe %c IIR:\t%08x\n",
>  			   pipe_name(pipe),
> -			   I915_READ(GEN8_DE_PIPE_IIR(pipe)));
> +			   intel_uncore_read(&dev_priv->uncore, GEN8_DE_PIPE_IIR(pipe)));
>  		seq_printf(m, "Pipe %c IER:\t%08x\n",
>  			   pipe_name(pipe),
> -			   I915_READ(GEN8_DE_PIPE_IER(pipe)));
> +			   intel_uncore_read(&dev_priv->uncore, GEN8_DE_PIPE_IER(pipe)));
>  
>  		intel_display_power_put(dev_priv, power_domain, wakeref);
>  	}
>  
>  	seq_printf(m, "Display Engine port interrupt mask:\t%08x\n",
> -		   I915_READ(GEN8_DE_PORT_IMR));
> +		   intel_uncore_read(&dev_priv->uncore, GEN8_DE_PORT_IMR));
>  	seq_printf(m, "Display Engine port interrupt identity:\t%08x\n",
> -		   I915_READ(GEN8_DE_PORT_IIR));
> +		   intel_uncore_read(&dev_priv->uncore, GEN8_DE_PORT_IIR));
>  	seq_printf(m, "Display Engine port interrupt enable:\t%08x\n",
> -		   I915_READ(GEN8_DE_PORT_IER));
> +		   intel_uncore_read(&dev_priv->uncore, GEN8_DE_PORT_IER));
>  
>  	seq_printf(m, "Display Engine misc interrupt mask:\t%08x\n",
> -		   I915_READ(GEN8_DE_MISC_IMR));
> +		   intel_uncore_read(&dev_priv->uncore, GEN8_DE_MISC_IMR));
>  	seq_printf(m, "Display Engine misc interrupt identity:\t%08x\n",
> -		   I915_READ(GEN8_DE_MISC_IIR));
> +		   intel_uncore_read(&dev_priv->uncore, GEN8_DE_MISC_IIR));
>  	seq_printf(m, "Display Engine misc interrupt enable:\t%08x\n",
> -		   I915_READ(GEN8_DE_MISC_IER));
> +		   intel_uncore_read(&dev_priv->uncore, GEN8_DE_MISC_IER));
>  
>  	seq_printf(m, "PCU interrupt mask:\t%08x\n",
> -		   I915_READ(GEN8_PCU_IMR));
> +		   intel_uncore_read(&dev_priv->uncore, GEN8_PCU_IMR));
>  	seq_printf(m, "PCU interrupt identity:\t%08x\n",
> -		   I915_READ(GEN8_PCU_IIR));
> +		   intel_uncore_read(&dev_priv->uncore, GEN8_PCU_IIR));
>  	seq_printf(m, "PCU interrupt enable:\t%08x\n",
> -		   I915_READ(GEN8_PCU_IER));
> +		   intel_uncore_read(&dev_priv->uncore, GEN8_PCU_IER));
>  }
>  
>  static int i915_interrupt_info(struct seq_file *m, void *data)
> @@ -443,16 +443,16 @@ static int i915_interrupt_info(struct seq_file *m, void *data)
>  		intel_wakeref_t pref;
>  
>  		seq_printf(m, "Master Interrupt Control:\t%08x\n",
> -			   I915_READ(GEN8_MASTER_IRQ));
> +			   intel_uncore_read(&dev_priv->uncore, GEN8_MASTER_IRQ));
>  
>  		seq_printf(m, "Display IER:\t%08x\n",
> -			   I915_READ(VLV_IER));
> +			   intel_uncore_read(&dev_priv->uncore, VLV_IER));
>  		seq_printf(m, "Display IIR:\t%08x\n",
> -			   I915_READ(VLV_IIR));
> +			   intel_uncore_read(&dev_priv->uncore, VLV_IIR));
>  		seq_printf(m, "Display IIR_RW:\t%08x\n",
> -			   I915_READ(VLV_IIR_RW));
> +			   intel_uncore_read(&dev_priv->uncore, VLV_IIR_RW));
>  		seq_printf(m, "Display IMR:\t%08x\n",
> -			   I915_READ(VLV_IMR));
> +			   intel_uncore_read(&dev_priv->uncore, VLV_IMR));
>  		for_each_pipe(dev_priv, pipe) {
>  			enum intel_display_power_domain power_domain;
>  
> @@ -467,71 +467,71 @@ static int i915_interrupt_info(struct seq_file *m, void *data)
>  
>  			seq_printf(m, "Pipe %c stat:\t%08x\n",
>  				   pipe_name(pipe),
> -				   I915_READ(PIPESTAT(pipe)));
> +				   intel_uncore_read(&dev_priv->uncore, PIPESTAT(pipe)));
>  
>  			intel_display_power_put(dev_priv, power_domain, pref);
>  		}
>  
>  		pref = intel_display_power_get(dev_priv, POWER_DOMAIN_INIT);
>  		seq_printf(m, "Port hotplug:\t%08x\n",
> -			   I915_READ(PORT_HOTPLUG_EN));
> +			   intel_uncore_read(&dev_priv->uncore, PORT_HOTPLUG_EN));
>  		seq_printf(m, "DPFLIPSTAT:\t%08x\n",
> -			   I915_READ(VLV_DPFLIPSTAT));
> +			   intel_uncore_read(&dev_priv->uncore, VLV_DPFLIPSTAT));
>  		seq_printf(m, "DPINVGTT:\t%08x\n",
> -			   I915_READ(DPINVGTT));
> +			   intel_uncore_read(&dev_priv->uncore, DPINVGTT));
>  		intel_display_power_put(dev_priv, POWER_DOMAIN_INIT, pref);
>  
>  		for (i = 0; i < 4; i++) {
>  			seq_printf(m, "GT Interrupt IMR %d:\t%08x\n",
> -				   i, I915_READ(GEN8_GT_IMR(i)));
> +				   i, intel_uncore_read(&dev_priv->uncore, GEN8_GT_IMR(i)));
>  			seq_printf(m, "GT Interrupt IIR %d:\t%08x\n",
> -				   i, I915_READ(GEN8_GT_IIR(i)));
> +				   i, intel_uncore_read(&dev_priv->uncore, GEN8_GT_IIR(i)));
>  			seq_printf(m, "GT Interrupt IER %d:\t%08x\n",
> -				   i, I915_READ(GEN8_GT_IER(i)));
> +				   i, intel_uncore_read(&dev_priv->uncore, GEN8_GT_IER(i)));
>  		}
>  
>  		seq_printf(m, "PCU interrupt mask:\t%08x\n",
> -			   I915_READ(GEN8_PCU_IMR));
> +			   intel_uncore_read(&dev_priv->uncore, GEN8_PCU_IMR));
>  		seq_printf(m, "PCU interrupt identity:\t%08x\n",
> -			   I915_READ(GEN8_PCU_IIR));
> +			   intel_uncore_read(&dev_priv->uncore, GEN8_PCU_IIR));
>  		seq_printf(m, "PCU interrupt enable:\t%08x\n",
> -			   I915_READ(GEN8_PCU_IER));
> +			   intel_uncore_read(&dev_priv->uncore, GEN8_PCU_IER));
>  	} else if (INTEL_GEN(dev_priv) >= 11) {
>  		if (HAS_MASTER_UNIT_IRQ(dev_priv))
>  			seq_printf(m, "Master Unit Interrupt Control:  %08x\n",
> -				   I915_READ(DG1_MSTR_UNIT_INTR));
> +				   intel_uncore_read(&dev_priv->uncore, DG1_MSTR_UNIT_INTR));
>  
>  		seq_printf(m, "Master Interrupt Control:  %08x\n",
> -			   I915_READ(GEN11_GFX_MSTR_IRQ));
> +			   intel_uncore_read(&dev_priv->uncore, GEN11_GFX_MSTR_IRQ));
>  
>  		seq_printf(m, "Render/Copy Intr Enable:   %08x\n",
> -			   I915_READ(GEN11_RENDER_COPY_INTR_ENABLE));
> +			   intel_uncore_read(&dev_priv->uncore, GEN11_RENDER_COPY_INTR_ENABLE));
>  		seq_printf(m, "VCS/VECS Intr Enable:      %08x\n",
> -			   I915_READ(GEN11_VCS_VECS_INTR_ENABLE));
> +			   intel_uncore_read(&dev_priv->uncore, GEN11_VCS_VECS_INTR_ENABLE));
>  		seq_printf(m, "GUC/SG Intr Enable:\t   %08x\n",
> -			   I915_READ(GEN11_GUC_SG_INTR_ENABLE));
> +			   intel_uncore_read(&dev_priv->uncore, GEN11_GUC_SG_INTR_ENABLE));
>  		seq_printf(m, "GPM/WGBOXPERF Intr Enable: %08x\n",
> -			   I915_READ(GEN11_GPM_WGBOXPERF_INTR_ENABLE));
> +			   intel_uncore_read(&dev_priv->uncore, GEN11_GPM_WGBOXPERF_INTR_ENABLE));
>  		seq_printf(m, "Crypto Intr Enable:\t   %08x\n",
> -			   I915_READ(GEN11_CRYPTO_RSVD_INTR_ENABLE));
> +			   intel_uncore_read(&dev_priv->uncore, GEN11_CRYPTO_RSVD_INTR_ENABLE));
>  		seq_printf(m, "GUnit/CSME Intr Enable:\t   %08x\n",
> -			   I915_READ(GEN11_GUNIT_CSME_INTR_ENABLE));
> +			   intel_uncore_read(&dev_priv->uncore, GEN11_GUNIT_CSME_INTR_ENABLE));
>  
>  		seq_printf(m, "Display Interrupt Control:\t%08x\n",
> -			   I915_READ(GEN11_DISPLAY_INT_CTL));
> +			   intel_uncore_read(&dev_priv->uncore, GEN11_DISPLAY_INT_CTL));
>  
>  		gen8_display_interrupt_info(m);
>  	} else if (INTEL_GEN(dev_priv) >= 8) {
>  		seq_printf(m, "Master Interrupt Control:\t%08x\n",
> -			   I915_READ(GEN8_MASTER_IRQ));
> +			   intel_uncore_read(&dev_priv->uncore, GEN8_MASTER_IRQ));
>  
>  		for (i = 0; i < 4; i++) {
>  			seq_printf(m, "GT Interrupt IMR %d:\t%08x\n",
> -				   i, I915_READ(GEN8_GT_IMR(i)));
> +				   i, intel_uncore_read(&dev_priv->uncore, GEN8_GT_IMR(i)));
>  			seq_printf(m, "GT Interrupt IIR %d:\t%08x\n",
> -				   i, I915_READ(GEN8_GT_IIR(i)));
> +				   i, intel_uncore_read(&dev_priv->uncore, GEN8_GT_IIR(i)));
>  			seq_printf(m, "GT Interrupt IER %d:\t%08x\n",
> -				   i, I915_READ(GEN8_GT_IER(i)));
> +				   i, intel_uncore_read(&dev_priv->uncore, GEN8_GT_IER(i)));
>  		}
>  
>  		gen8_display_interrupt_info(m);
> @@ -539,13 +539,13 @@ static int i915_interrupt_info(struct seq_file *m, void *data)
>  		intel_wakeref_t pref;
>  
>  		seq_printf(m, "Display IER:\t%08x\n",
> -			   I915_READ(VLV_IER));
> +			   intel_uncore_read(&dev_priv->uncore, VLV_IER));
>  		seq_printf(m, "Display IIR:\t%08x\n",
> -			   I915_READ(VLV_IIR));
> +			   intel_uncore_read(&dev_priv->uncore, VLV_IIR));
>  		seq_printf(m, "Display IIR_RW:\t%08x\n",
> -			   I915_READ(VLV_IIR_RW));
> +			   intel_uncore_read(&dev_priv->uncore, VLV_IIR_RW));
>  		seq_printf(m, "Display IMR:\t%08x\n",
> -			   I915_READ(VLV_IMR));
> +			   intel_uncore_read(&dev_priv->uncore, VLV_IMR));
>  		for_each_pipe(dev_priv, pipe) {
>  			enum intel_display_power_domain power_domain;
>  
> @@ -560,87 +560,87 @@ static int i915_interrupt_info(struct seq_file *m, void *data)
>  
>  			seq_printf(m, "Pipe %c stat:\t%08x\n",
>  				   pipe_name(pipe),
> -				   I915_READ(PIPESTAT(pipe)));
> +				   intel_uncore_read(&dev_priv->uncore, PIPESTAT(pipe)));
>  			intel_display_power_put(dev_priv, power_domain, pref);
>  		}
>  
>  		seq_printf(m, "Master IER:\t%08x\n",
> -			   I915_READ(VLV_MASTER_IER));
> +			   intel_uncore_read(&dev_priv->uncore, VLV_MASTER_IER));
>  
>  		seq_printf(m, "Render IER:\t%08x\n",
> -			   I915_READ(GTIER));
> +			   intel_uncore_read(&dev_priv->uncore, GTIER));
>  		seq_printf(m, "Render IIR:\t%08x\n",
> -			   I915_READ(GTIIR));
> +			   intel_uncore_read(&dev_priv->uncore, GTIIR));
>  		seq_printf(m, "Render IMR:\t%08x\n",
> -			   I915_READ(GTIMR));
> +			   intel_uncore_read(&dev_priv->uncore, GTIMR));
>  
>  		seq_printf(m, "PM IER:\t\t%08x\n",
> -			   I915_READ(GEN6_PMIER));
> +			   intel_uncore_read(&dev_priv->uncore, GEN6_PMIER));
>  		seq_printf(m, "PM IIR:\t\t%08x\n",
> -			   I915_READ(GEN6_PMIIR));
> +			   intel_uncore_read(&dev_priv->uncore, GEN6_PMIIR));
>  		seq_printf(m, "PM IMR:\t\t%08x\n",
> -			   I915_READ(GEN6_PMIMR));
> +			   intel_uncore_read(&dev_priv->uncore, GEN6_PMIMR));
>  
>  		pref = intel_display_power_get(dev_priv, POWER_DOMAIN_INIT);
>  		seq_printf(m, "Port hotplug:\t%08x\n",
> -			   I915_READ(PORT_HOTPLUG_EN));
> +			   intel_uncore_read(&dev_priv->uncore, PORT_HOTPLUG_EN));
>  		seq_printf(m, "DPFLIPSTAT:\t%08x\n",
> -			   I915_READ(VLV_DPFLIPSTAT));
> +			   intel_uncore_read(&dev_priv->uncore, VLV_DPFLIPSTAT));
>  		seq_printf(m, "DPINVGTT:\t%08x\n",
> -			   I915_READ(DPINVGTT));
> +			   intel_uncore_read(&dev_priv->uncore, DPINVGTT));
>  		intel_display_power_put(dev_priv, POWER_DOMAIN_INIT, pref);
>  
>  	} else if (!HAS_PCH_SPLIT(dev_priv)) {
>  		seq_printf(m, "Interrupt enable:    %08x\n",
> -			   I915_READ(GEN2_IER));
> +			   intel_uncore_read(&dev_priv->uncore, GEN2_IER));
>  		seq_printf(m, "Interrupt identity:  %08x\n",
> -			   I915_READ(GEN2_IIR));
> +			   intel_uncore_read(&dev_priv->uncore, GEN2_IIR));
>  		seq_printf(m, "Interrupt mask:      %08x\n",
> -			   I915_READ(GEN2_IMR));
> +			   intel_uncore_read(&dev_priv->uncore, GEN2_IMR));
>  		for_each_pipe(dev_priv, pipe)
>  			seq_printf(m, "Pipe %c stat:         %08x\n",
>  				   pipe_name(pipe),
> -				   I915_READ(PIPESTAT(pipe)));
> +				   intel_uncore_read(&dev_priv->uncore, PIPESTAT(pipe)));
>  	} else {
>  		seq_printf(m, "North Display Interrupt enable:		%08x\n",
> -			   I915_READ(DEIER));
> +			   intel_uncore_read(&dev_priv->uncore, DEIER));
>  		seq_printf(m, "North Display Interrupt identity:	%08x\n",
> -			   I915_READ(DEIIR));
> +			   intel_uncore_read(&dev_priv->uncore, DEIIR));
>  		seq_printf(m, "North Display Interrupt mask:		%08x\n",
> -			   I915_READ(DEIMR));
> +			   intel_uncore_read(&dev_priv->uncore, DEIMR));
>  		seq_printf(m, "South Display Interrupt enable:		%08x\n",
> -			   I915_READ(SDEIER));
> +			   intel_uncore_read(&dev_priv->uncore, SDEIER));
>  		seq_printf(m, "South Display Interrupt identity:	%08x\n",
> -			   I915_READ(SDEIIR));
> +			   intel_uncore_read(&dev_priv->uncore, SDEIIR));
>  		seq_printf(m, "South Display Interrupt mask:		%08x\n",
> -			   I915_READ(SDEIMR));
> +			   intel_uncore_read(&dev_priv->uncore, SDEIMR));
>  		seq_printf(m, "Graphics Interrupt enable:		%08x\n",
> -			   I915_READ(GTIER));
> +			   intel_uncore_read(&dev_priv->uncore, GTIER));
>  		seq_printf(m, "Graphics Interrupt identity:		%08x\n",
> -			   I915_READ(GTIIR));
> +			   intel_uncore_read(&dev_priv->uncore, GTIIR));
>  		seq_printf(m, "Graphics Interrupt mask:		%08x\n",
> -			   I915_READ(GTIMR));
> +			   intel_uncore_read(&dev_priv->uncore, GTIMR));
>  	}
>  
>  	if (INTEL_GEN(dev_priv) >= 11) {
>  		seq_printf(m, "RCS Intr Mask:\t %08x\n",
> -			   I915_READ(GEN11_RCS0_RSVD_INTR_MASK));
> +			   intel_uncore_read(&dev_priv->uncore, GEN11_RCS0_RSVD_INTR_MASK));
>  		seq_printf(m, "BCS Intr Mask:\t %08x\n",
> -			   I915_READ(GEN11_BCS_RSVD_INTR_MASK));
> +			   intel_uncore_read(&dev_priv->uncore, GEN11_BCS_RSVD_INTR_MASK));
>  		seq_printf(m, "VCS0/VCS1 Intr Mask:\t %08x\n",
> -			   I915_READ(GEN11_VCS0_VCS1_INTR_MASK));
> +			   intel_uncore_read(&dev_priv->uncore, GEN11_VCS0_VCS1_INTR_MASK));
>  		seq_printf(m, "VCS2/VCS3 Intr Mask:\t %08x\n",
> -			   I915_READ(GEN11_VCS2_VCS3_INTR_MASK));
> +			   intel_uncore_read(&dev_priv->uncore, GEN11_VCS2_VCS3_INTR_MASK));
>  		seq_printf(m, "VECS0/VECS1 Intr Mask:\t %08x\n",
> -			   I915_READ(GEN11_VECS0_VECS1_INTR_MASK));
> +			   intel_uncore_read(&dev_priv->uncore, GEN11_VECS0_VECS1_INTR_MASK));
>  		seq_printf(m, "GUC/SG Intr Mask:\t %08x\n",
> -			   I915_READ(GEN11_GUC_SG_INTR_MASK));
> +			   intel_uncore_read(&dev_priv->uncore, GEN11_GUC_SG_INTR_MASK));
>  		seq_printf(m, "GPM/WGBOXPERF Intr Mask: %08x\n",
> -			   I915_READ(GEN11_GPM_WGBOXPERF_INTR_MASK));
> +			   intel_uncore_read(&dev_priv->uncore, GEN11_GPM_WGBOXPERF_INTR_MASK));
>  		seq_printf(m, "Crypto Intr Mask:\t %08x\n",
> -			   I915_READ(GEN11_CRYPTO_RSVD_INTR_MASK));
> +			   intel_uncore_read(&dev_priv->uncore, GEN11_CRYPTO_RSVD_INTR_MASK));
>  		seq_printf(m, "Gunit/CSME Intr Mask:\t %08x\n",
> -			   I915_READ(GEN11_GUNIT_CSME_INTR_MASK));
> +			   intel_uncore_read(&dev_priv->uncore, GEN11_GUNIT_CSME_INTR_MASK));
>  
>  	} else if (INTEL_GEN(dev_priv) >= 6) {
>  		for_each_uabi_engine(engine, dev_priv) {
> @@ -802,7 +802,7 @@ static int i915_frequency_info(struct seq_file *m, void *unused)
>  	} else if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
>  		u32 rpmodectl, freq_sts;
>  
> -		rpmodectl = I915_READ(GEN6_RP_CONTROL);
> +		rpmodectl = intel_uncore_read(&dev_priv->uncore, GEN6_RP_CONTROL);
>  		seq_printf(m, "Video Turbo Mode: %s\n",
>  			   yesno(rpmodectl & GEN6_RP_MEDIA_TURBO));
>  		seq_printf(m, "HW control enabled: %s\n",
> @@ -847,19 +847,19 @@ static int i915_frequency_info(struct seq_file *m, void *unused)
>  		u32 pm_ier, pm_imr, pm_isr, pm_iir, pm_mask;
>  		int max_freq;
>  
> -		rp_state_limits = I915_READ(GEN6_RP_STATE_LIMITS);
> +		rp_state_limits = intel_uncore_read(&dev_priv->uncore, GEN6_RP_STATE_LIMITS);
>  		if (IS_GEN9_LP(dev_priv)) {
> -			rp_state_cap = I915_READ(BXT_RP_STATE_CAP);
> -			gt_perf_status = I915_READ(BXT_GT_PERF_STATUS);
> +			rp_state_cap = intel_uncore_read(&dev_priv->uncore, BXT_RP_STATE_CAP);
> +			gt_perf_status = intel_uncore_read(&dev_priv->uncore, BXT_GT_PERF_STATUS);
>  		} else {
> -			rp_state_cap = I915_READ(GEN6_RP_STATE_CAP);
> -			gt_perf_status = I915_READ(GEN6_GT_PERF_STATUS);
> +			rp_state_cap = intel_uncore_read(&dev_priv->uncore, GEN6_RP_STATE_CAP);
> +			gt_perf_status = intel_uncore_read(&dev_priv->uncore, GEN6_GT_PERF_STATUS);
>  		}
>  
>  		/* RPSTAT1 is in the GT power well */
>  		intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
>  
> -		reqf = I915_READ(GEN6_RPNSWREQ);
> +		reqf = intel_uncore_read(&dev_priv->uncore, GEN6_RPNSWREQ);
>  		if (INTEL_GEN(dev_priv) >= 9)
>  			reqf >>= 23;
>  		else {
> @@ -871,24 +871,24 @@ static int i915_frequency_info(struct seq_file *m, void *unused)
>  		}
>  		reqf = intel_gpu_freq(rps, reqf);
>  
> -		rpmodectl = I915_READ(GEN6_RP_CONTROL);
> -		rpinclimit = I915_READ(GEN6_RP_UP_THRESHOLD);
> -		rpdeclimit = I915_READ(GEN6_RP_DOWN_THRESHOLD);
> -
> -		rpstat = I915_READ(GEN6_RPSTAT1);
> -		rpupei = I915_READ(GEN6_RP_CUR_UP_EI) & GEN6_CURICONT_MASK;
> -		rpcurup = I915_READ(GEN6_RP_CUR_UP) & GEN6_CURBSYTAVG_MASK;
> -		rpprevup = I915_READ(GEN6_RP_PREV_UP) & GEN6_CURBSYTAVG_MASK;
> -		rpdownei = I915_READ(GEN6_RP_CUR_DOWN_EI) & GEN6_CURIAVG_MASK;
> -		rpcurdown = I915_READ(GEN6_RP_CUR_DOWN) & GEN6_CURBSYTAVG_MASK;
> -		rpprevdown = I915_READ(GEN6_RP_PREV_DOWN) & GEN6_CURBSYTAVG_MASK;
> +		rpmodectl = intel_uncore_read(&dev_priv->uncore, GEN6_RP_CONTROL);
> +		rpinclimit = intel_uncore_read(&dev_priv->uncore, GEN6_RP_UP_THRESHOLD);
> +		rpdeclimit = intel_uncore_read(&dev_priv->uncore, GEN6_RP_DOWN_THRESHOLD);
> +
> +		rpstat = intel_uncore_read(&dev_priv->uncore, GEN6_RPSTAT1);
> +		rpupei = intel_uncore_read(&dev_priv->uncore, GEN6_RP_CUR_UP_EI) & GEN6_CURICONT_MASK;
> +		rpcurup = intel_uncore_read(&dev_priv->uncore, GEN6_RP_CUR_UP) & GEN6_CURBSYTAVG_MASK;
> +		rpprevup = intel_uncore_read(&dev_priv->uncore, GEN6_RP_PREV_UP) & GEN6_CURBSYTAVG_MASK;
> +		rpdownei = intel_uncore_read(&dev_priv->uncore, GEN6_RP_CUR_DOWN_EI) & GEN6_CURIAVG_MASK;
> +		rpcurdown = intel_uncore_read(&dev_priv->uncore, GEN6_RP_CUR_DOWN) & GEN6_CURBSYTAVG_MASK;
> +		rpprevdown = intel_uncore_read(&dev_priv->uncore, GEN6_RP_PREV_DOWN) & GEN6_CURBSYTAVG_MASK;
>  		cagf = intel_rps_read_actual_frequency(rps);
>  
>  		intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
>  
>  		if (INTEL_GEN(dev_priv) >= 11) {
> -			pm_ier = I915_READ(GEN11_GPM_WGBOXPERF_INTR_ENABLE);
> -			pm_imr = I915_READ(GEN11_GPM_WGBOXPERF_INTR_MASK);
> +			pm_ier = intel_uncore_read(&dev_priv->uncore, GEN11_GPM_WGBOXPERF_INTR_ENABLE);
> +			pm_imr = intel_uncore_read(&dev_priv->uncore, GEN11_GPM_WGBOXPERF_INTR_MASK);
>  			/*
>  			 * The equivalent to the PM ISR & IIR cannot be read
>  			 * without affecting the current state of the system
> @@ -896,17 +896,17 @@ static int i915_frequency_info(struct seq_file *m, void *unused)
>  			pm_isr = 0;
>  			pm_iir = 0;
>  		} else if (INTEL_GEN(dev_priv) >= 8) {
> -			pm_ier = I915_READ(GEN8_GT_IER(2));
> -			pm_imr = I915_READ(GEN8_GT_IMR(2));
> -			pm_isr = I915_READ(GEN8_GT_ISR(2));
> -			pm_iir = I915_READ(GEN8_GT_IIR(2));
> +			pm_ier = intel_uncore_read(&dev_priv->uncore, GEN8_GT_IER(2));
> +			pm_imr = intel_uncore_read(&dev_priv->uncore, GEN8_GT_IMR(2));
> +			pm_isr = intel_uncore_read(&dev_priv->uncore, GEN8_GT_ISR(2));
> +			pm_iir = intel_uncore_read(&dev_priv->uncore, GEN8_GT_IIR(2));
>  		} else {
> -			pm_ier = I915_READ(GEN6_PMIER);
> -			pm_imr = I915_READ(GEN6_PMIMR);
> -			pm_isr = I915_READ(GEN6_PMISR);
> -			pm_iir = I915_READ(GEN6_PMIIR);
> +			pm_ier = intel_uncore_read(&dev_priv->uncore, GEN6_PMIER);
> +			pm_imr = intel_uncore_read(&dev_priv->uncore, GEN6_PMIMR);
> +			pm_isr = intel_uncore_read(&dev_priv->uncore, GEN6_PMISR);
> +			pm_iir = intel_uncore_read(&dev_priv->uncore, GEN6_PMIIR);
>  		}
> -		pm_mask = I915_READ(GEN6_PMINTRMSK);
> +		pm_mask = intel_uncore_read(&dev_priv->uncore, GEN6_PMINTRMSK);
>  
>  		seq_printf(m, "Video Turbo Mode: %s\n",
>  			   yesno(rpmodectl & GEN6_RP_MEDIA_TURBO));
> @@ -1540,7 +1540,7 @@ i915_cache_sharing_get(void *data, u64 *val)
>  		return -ENODEV;
>  
>  	with_intel_runtime_pm(&dev_priv->runtime_pm, wakeref)
> -		snpcr = I915_READ(GEN6_MBCUNIT_SNPCR);
> +		snpcr = intel_uncore_read(&dev_priv->uncore, GEN6_MBCUNIT_SNPCR);
>  
>  	*val = (snpcr & GEN6_MBC_SNPCR_MASK) >> GEN6_MBC_SNPCR_SHIFT;
>  
> -- 
> 2.20.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Intel-gfx] [PATCH 1/9] drm/i915: remove last users of I915_READ_FW()
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 1/9] drm/i915: remove last users of I915_READ_FW() Jani Nikula
  2020-11-12 20:17   ` Rodrigo Vivi
@ 2020-11-12 20:24   ` Chris Wilson
  1 sibling, 0 replies; 26+ messages in thread
From: Chris Wilson @ 2020-11-12 20:24 UTC (permalink / raw)
  To: Jani Nikula, intel-gfx; +Cc: jani.nikula

Quoting Jani Nikula (2020-11-12 11:44:34)
> Use the preferred intel_uncore_read_fw() instead.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 77e76b665098..7cbca268cb61 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -1238,10 +1238,10 @@ static int i915_rps_boost_info(struct seq_file *m, void *data)
>                 u32 rpdown, rpdownei;
>  
>                 intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
> -               rpup = I915_READ_FW(GEN6_RP_CUR_UP) & GEN6_RP_EI_MASK;
> -               rpupei = I915_READ_FW(GEN6_RP_CUR_UP_EI) & GEN6_RP_EI_MASK;
> -               rpdown = I915_READ_FW(GEN6_RP_CUR_DOWN) & GEN6_RP_EI_MASK;
> -               rpdownei = I915_READ_FW(GEN6_RP_CUR_DOWN_EI) & GEN6_RP_EI_MASK;
> +               rpup = intel_uncore_read_fw(&dev_priv->uncore, GEN6_RP_CUR_UP) & GEN6_RP_EI_MASK;
> +               rpupei = intel_uncore_read_fw(&dev_priv->uncore, GEN6_RP_CUR_UP_EI) & GEN6_RP_EI_MASK;
> +               rpdown = intel_uncore_read_fw(&dev_priv->uncore, GEN6_RP_CUR_DOWN) & GEN6_RP_EI_MASK;
> +               rpdownei = intel_uncore_read_fw(&dev_priv->uncore, GEN6_RP_CUR_DOWN_EI) & GEN6_RP_EI_MASK;
>                 intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);

This information is no longer [as] relevant. We can just remove the if
block.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Intel-gfx] [PATCH 2/9] drm/i915: remove last traces of I915_READ_FW() and I915_WRITE_FW()
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 2/9] drm/i915: remove last traces of I915_READ_FW() and I915_WRITE_FW() Jani Nikula
  2020-11-12 20:19   ` Rodrigo Vivi
@ 2020-11-12 20:26   ` Chris Wilson
  1 sibling, 0 replies; 26+ messages in thread
From: Chris Wilson @ 2020-11-12 20:26 UTC (permalink / raw)
  To: Jani Nikula, intel-gfx; +Cc: jani.nikula

Quoting Jani Nikula (2020-11-12 11:44:35)
> Good riddance! Remove the macros and their remaining references in
> comments.
> 
> intel_uncore_read_fw() and intel_uncore_write_fw() should be used
> instead.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Given the previous patch removing the last user,
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Intel-gfx] [PATCH 6/9] drm/i915/suspend: replace I915_READ()/WRITE() with intel_de_read()/write()
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 6/9] drm/i915/suspend: replace I915_READ()/WRITE() with intel_de_read()/write() Jani Nikula
@ 2020-11-12 20:27   ` Rodrigo Vivi
  0 siblings, 0 replies; 26+ messages in thread
From: Rodrigo Vivi @ 2020-11-12 20:27 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

On Thu, Nov 12, 2020 at 01:44:39PM +0200, Jani Nikula wrote:
> Another straggler with I915_READ() and I915_WRITE() uses gone.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>


Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> ---
>  drivers/gpu/drm/i915/i915_suspend.c | 33 +++++++++++++++--------------
>  1 file changed, 17 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c
> index db2111fc809e..63212df33c9e 100644
> --- a/drivers/gpu/drm/i915/i915_suspend.c
> +++ b/drivers/gpu/drm/i915/i915_suspend.c
> @@ -24,6 +24,7 @@
>   * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
>   */
>  
> +#include "display/intel_de.h"
>  #include "display/intel_fbc.h"
>  #include "display/intel_gmbus.h"
>  #include "display/intel_vga.h"
> @@ -39,21 +40,21 @@ static void intel_save_swf(struct drm_i915_private *dev_priv)
>  	/* Scratch space */
>  	if (IS_GEN(dev_priv, 2) && IS_MOBILE(dev_priv)) {
>  		for (i = 0; i < 7; i++) {
> -			dev_priv->regfile.saveSWF0[i] = I915_READ(SWF0(i));
> -			dev_priv->regfile.saveSWF1[i] = I915_READ(SWF1(i));
> +			dev_priv->regfile.saveSWF0[i] = intel_de_read(dev_priv, SWF0(i));
> +			dev_priv->regfile.saveSWF1[i] = intel_de_read(dev_priv, SWF1(i));
>  		}
>  		for (i = 0; i < 3; i++)
> -			dev_priv->regfile.saveSWF3[i] = I915_READ(SWF3(i));
> +			dev_priv->regfile.saveSWF3[i] = intel_de_read(dev_priv, SWF3(i));
>  	} else if (IS_GEN(dev_priv, 2)) {
>  		for (i = 0; i < 7; i++)
> -			dev_priv->regfile.saveSWF1[i] = I915_READ(SWF1(i));
> +			dev_priv->regfile.saveSWF1[i] = intel_de_read(dev_priv, SWF1(i));
>  	} else if (HAS_GMCH(dev_priv)) {
>  		for (i = 0; i < 16; i++) {
> -			dev_priv->regfile.saveSWF0[i] = I915_READ(SWF0(i));
> -			dev_priv->regfile.saveSWF1[i] = I915_READ(SWF1(i));
> +			dev_priv->regfile.saveSWF0[i] = intel_de_read(dev_priv, SWF0(i));
> +			dev_priv->regfile.saveSWF1[i] = intel_de_read(dev_priv, SWF1(i));
>  		}
>  		for (i = 0; i < 3; i++)
> -			dev_priv->regfile.saveSWF3[i] = I915_READ(SWF3(i));
> +			dev_priv->regfile.saveSWF3[i] = intel_de_read(dev_priv, SWF3(i));
>  	}
>  }
>  
> @@ -64,21 +65,21 @@ static void intel_restore_swf(struct drm_i915_private *dev_priv)
>  	/* Scratch space */
>  	if (IS_GEN(dev_priv, 2) && IS_MOBILE(dev_priv)) {
>  		for (i = 0; i < 7; i++) {
> -			I915_WRITE(SWF0(i), dev_priv->regfile.saveSWF0[i]);
> -			I915_WRITE(SWF1(i), dev_priv->regfile.saveSWF1[i]);
> +			intel_de_write(dev_priv, SWF0(i), dev_priv->regfile.saveSWF0[i]);
> +			intel_de_write(dev_priv, SWF1(i), dev_priv->regfile.saveSWF1[i]);
>  		}
>  		for (i = 0; i < 3; i++)
> -			I915_WRITE(SWF3(i), dev_priv->regfile.saveSWF3[i]);
> +			intel_de_write(dev_priv, SWF3(i), dev_priv->regfile.saveSWF3[i]);
>  	} else if (IS_GEN(dev_priv, 2)) {
>  		for (i = 0; i < 7; i++)
> -			I915_WRITE(SWF1(i), dev_priv->regfile.saveSWF1[i]);
> +			intel_de_write(dev_priv, SWF1(i), dev_priv->regfile.saveSWF1[i]);
>  	} else if (HAS_GMCH(dev_priv)) {
>  		for (i = 0; i < 16; i++) {
> -			I915_WRITE(SWF0(i), dev_priv->regfile.saveSWF0[i]);
> -			I915_WRITE(SWF1(i), dev_priv->regfile.saveSWF1[i]);
> +			intel_de_write(dev_priv, SWF0(i), dev_priv->regfile.saveSWF0[i]);
> +			intel_de_write(dev_priv, SWF1(i), dev_priv->regfile.saveSWF1[i]);
>  		}
>  		for (i = 0; i < 3; i++)
> -			I915_WRITE(SWF3(i), dev_priv->regfile.saveSWF3[i]);
> +			intel_de_write(dev_priv, SWF3(i), dev_priv->regfile.saveSWF3[i]);
>  	}
>  }
>  
> @@ -88,7 +89,7 @@ void i915_save_display(struct drm_i915_private *dev_priv)
>  
>  	/* Display arbitration control */
>  	if (INTEL_GEN(dev_priv) <= 4)
> -		dev_priv->regfile.saveDSPARB = I915_READ(DSPARB);
> +		dev_priv->regfile.saveDSPARB = intel_de_read(dev_priv, DSPARB);
>  
>  	if (IS_GEN(dev_priv, 4))
>  		pci_read_config_word(pdev, GCDGMBUS,
> @@ -109,7 +110,7 @@ void i915_restore_display(struct drm_i915_private *dev_priv)
>  
>  	/* Display arbitration */
>  	if (INTEL_GEN(dev_priv) <= 4)
> -		I915_WRITE(DSPARB, dev_priv->regfile.saveDSPARB);
> +		intel_de_write(dev_priv, DSPARB, dev_priv->regfile.saveDSPARB);
>  
>  	/* only restore FBC info on the platform that supports FBC*/
>  	intel_fbc_global_disable(dev_priv);
> -- 
> 2.20.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Intel-gfx] [PATCH 4/9] drm/i915/debugfs: replace I915_READ()+I915_WRITE() with intel_uncore_rmw()
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 4/9] drm/i915/debugfs: replace I915_READ()+I915_WRITE() with intel_uncore_rmw() Jani Nikula
  2020-11-12 20:21   ` Rodrigo Vivi
@ 2020-11-12 20:28   ` Chris Wilson
  1 sibling, 0 replies; 26+ messages in thread
From: Chris Wilson @ 2020-11-12 20:28 UTC (permalink / raw)
  To: Jani Nikula, intel-gfx; +Cc: jani.nikula

Quoting Jani Nikula (2020-11-12 11:44:37)
> Remove the last I915_WRITE() use in i915_debugfs.c.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 8 ++------
>  1 file changed, 2 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 7cbca268cb61..151734a1a496 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -1562,13 +1562,9 @@ i915_cache_sharing_set(void *data, u64 val)
>         drm_dbg(&dev_priv->drm,
>                 "Manually setting uncore sharing to %llu\n", val);
>         with_intel_runtime_pm(&dev_priv->runtime_pm, wakeref) {
> -               u32 snpcr;
> -
>                 /* Update the cache sharing policy here as well */
> -               snpcr = I915_READ(GEN6_MBCUNIT_SNPCR);
> -               snpcr &= ~GEN6_MBC_SNPCR_MASK;
> -               snpcr |= val << GEN6_MBC_SNPCR_SHIFT;
> -               I915_WRITE(GEN6_MBCUNIT_SNPCR, snpcr);
> +               intel_uncore_rmw(&dev_priv->uncore, GEN6_MBCUNIT_SNPCR,
> +                                GEN6_MBC_SNPCR_MASK, val << GEN6_MBC_SNPCR_SHIFT);
>         }

Remove the braces, or remove the entire i915_cache_sharing file. A debug
interface with no validation or user.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Intel-gfx] [PATCH 7/9] drm/i915/pm: replace I915_READ()/WRITE() with intel_uncore_read()/write()
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 7/9] drm/i915/pm: replace I915_READ()/WRITE() with intel_uncore_read()/write() Jani Nikula
@ 2020-11-12 21:00   ` Rodrigo Vivi
  2020-11-13  7:47     ` Jani Nikula
  0 siblings, 1 reply; 26+ messages in thread
From: Rodrigo Vivi @ 2020-11-12 21:00 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

On Thu, Nov 12, 2020 at 01:44:40PM +0200, Jani Nikula wrote:
> Arguably some of these should use intel_de_read() or intel_de_write(),
> however not all. Prioritize I915_READ() and I915_WRITE() removal in
> general over migrating to the pedantically correct replacements right
> away.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/gpu/drm/i915/intel_pm.c | 552 ++++++++++++++++----------------
>  1 file changed, 276 insertions(+), 276 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index bbec56f97832..c0ed82665706 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -81,24 +81,24 @@ static void gen9_init_clock_gating(struct drm_i915_private *dev_priv)
>  		 * Must match Sampler, Pixel Back End, and Media. See
>  		 * WaCompressedResourceSamplerPbeMediaNewHashMode.
>  		 */
> -		I915_WRITE(CHICKEN_PAR1_1,
> -			   I915_READ(CHICKEN_PAR1_1) |
> +		intel_uncore_write(&dev_priv->uncore, CHICKEN_PAR1_1,
> +			   intel_uncore_read(&dev_priv->uncore, CHICKEN_PAR1_1) |

why not converting them to rmw?

>  			   SKL_DE_COMPRESSED_HASH_MODE);
>  	}
>  
>  	/* See Bspec note for PSR2_CTL bit 31, Wa#828:skl,bxt,kbl,cfl */
> -	I915_WRITE(CHICKEN_PAR1_1,
> -		   I915_READ(CHICKEN_PAR1_1) | SKL_EDP_PSR_FIX_RDWRAP);
> +	intel_uncore_write(&dev_priv->uncore, CHICKEN_PAR1_1,
> +		   intel_uncore_read(&dev_priv->uncore, CHICKEN_PAR1_1) | SKL_EDP_PSR_FIX_RDWRAP);
>  
>  	/* WaEnableChickenDCPR:skl,bxt,kbl,glk,cfl */
> -	I915_WRITE(GEN8_CHICKEN_DCPR_1,
> -		   I915_READ(GEN8_CHICKEN_DCPR_1) | MASK_WAKEMEM);
> +	intel_uncore_write(&dev_priv->uncore, GEN8_CHICKEN_DCPR_1,
> +		   intel_uncore_read(&dev_priv->uncore, GEN8_CHICKEN_DCPR_1) | MASK_WAKEMEM);
>  
>  	/*
>  	 * WaFbcWakeMemOn:skl,bxt,kbl,glk,cfl
>  	 * Display WA #0859: skl,bxt,kbl,glk,cfl
>  	 */
> -	I915_WRITE(DISP_ARB_CTL, I915_READ(DISP_ARB_CTL) |
> +	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
>  		   DISP_FBC_MEMORY_WAKE);
>  }
>  
> @@ -107,21 +107,21 @@ static void bxt_init_clock_gating(struct drm_i915_private *dev_priv)
>  	gen9_init_clock_gating(dev_priv);
>  
>  	/* WaDisableSDEUnitClockGating:bxt */
> -	I915_WRITE(GEN8_UCGCTL6, I915_READ(GEN8_UCGCTL6) |
> +	intel_uncore_write(&dev_priv->uncore, GEN8_UCGCTL6, intel_uncore_read(&dev_priv->uncore, GEN8_UCGCTL6) |
>  		   GEN8_SDEUNIT_CLOCK_GATE_DISABLE);
>  
>  	/*
>  	 * FIXME:
>  	 * GEN8_HDCUNIT_CLOCK_GATE_DISABLE_HDCREQ applies on 3x6 GT SKUs only.
>  	 */
> -	I915_WRITE(GEN8_UCGCTL6, I915_READ(GEN8_UCGCTL6) |
> +	intel_uncore_write(&dev_priv->uncore, GEN8_UCGCTL6, intel_uncore_read(&dev_priv->uncore, GEN8_UCGCTL6) |
>  		   GEN8_HDCUNIT_CLOCK_GATE_DISABLE_HDCREQ);
>  
>  	/*
>  	 * Wa: Backlight PWM may stop in the asserted state, causing backlight
>  	 * to stay fully on.
>  	 */
> -	I915_WRITE(GEN9_CLKGATE_DIS_0, I915_READ(GEN9_CLKGATE_DIS_0) |
> +	intel_uncore_write(&dev_priv->uncore, GEN9_CLKGATE_DIS_0, intel_uncore_read(&dev_priv->uncore, GEN9_CLKGATE_DIS_0) |
>  		   PWM1_GATING_DIS | PWM2_GATING_DIS);
>  
>  	/*
> @@ -130,20 +130,20 @@ static void bxt_init_clock_gating(struct drm_i915_private *dev_priv)
>  	 * is off and a MMIO access is attempted by any privilege
>  	 * application, using batch buffers or any other means.
>  	 */
> -	I915_WRITE(RM_TIMEOUT, MMIO_TIMEOUT_US(950));
> +	intel_uncore_write(&dev_priv->uncore, RM_TIMEOUT, MMIO_TIMEOUT_US(950));
>  
>  	/*
>  	 * WaFbcTurnOffFbcWatermark:bxt
>  	 * Display WA #0562: bxt
>  	 */
> -	I915_WRITE(DISP_ARB_CTL, I915_READ(DISP_ARB_CTL) |
> +	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
>  		   DISP_FBC_WM_DIS);
>  
>  	/*
>  	 * WaFbcHighMemBwCorruptionAvoidance:bxt
>  	 * Display WA #0883: bxt
>  	 */
> -	I915_WRITE(ILK_DPFC_CHICKEN, I915_READ(ILK_DPFC_CHICKEN) |
> +	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN, intel_uncore_read(&dev_priv->uncore, ILK_DPFC_CHICKEN) |
>  		   ILK_DPFC_DISABLE_DUMMY0);
>  }
>  
> @@ -156,7 +156,7 @@ static void glk_init_clock_gating(struct drm_i915_private *dev_priv)
>  	 * Backlight PWM may stop in the asserted state, causing backlight
>  	 * to stay fully on.
>  	 */
> -	I915_WRITE(GEN9_CLKGATE_DIS_0, I915_READ(GEN9_CLKGATE_DIS_0) |
> +	intel_uncore_write(&dev_priv->uncore, GEN9_CLKGATE_DIS_0, intel_uncore_read(&dev_priv->uncore, GEN9_CLKGATE_DIS_0) |
>  		   PWM1_GATING_DIS | PWM2_GATING_DIS);
>  }
>  
> @@ -164,7 +164,7 @@ static void pnv_get_mem_freq(struct drm_i915_private *dev_priv)
>  {
>  	u32 tmp;
>  
> -	tmp = I915_READ(CLKCFG);
> +	tmp = intel_uncore_read(&dev_priv->uncore, CLKCFG);
>  
>  	switch (tmp & CLKCFG_FSB_MASK) {
>  	case CLKCFG_FSB_533:
> @@ -194,7 +194,7 @@ static void pnv_get_mem_freq(struct drm_i915_private *dev_priv)
>  	}
>  
>  	/* detect pineview DDR3 setting */
> -	tmp = I915_READ(CSHRDDR3CTL);
> +	tmp = intel_uncore_read(&dev_priv->uncore, CSHRDDR3CTL);
>  	dev_priv->is_ddr3 = (tmp & CSHRDDR3CTL_DDR3) ? 1 : 0;
>  }
>  
> @@ -365,39 +365,39 @@ static bool _intel_set_memory_cxsr(struct drm_i915_private *dev_priv, bool enabl
>  	u32 val;
>  
>  	if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
> -		was_enabled = I915_READ(FW_BLC_SELF_VLV) & FW_CSPWRDWNEN;
> -		I915_WRITE(FW_BLC_SELF_VLV, enable ? FW_CSPWRDWNEN : 0);
> -		POSTING_READ(FW_BLC_SELF_VLV);
> +		was_enabled = intel_uncore_read(&dev_priv->uncore, FW_BLC_SELF_VLV) & FW_CSPWRDWNEN;
> +		intel_uncore_write(&dev_priv->uncore, FW_BLC_SELF_VLV, enable ? FW_CSPWRDWNEN : 0);
> +		intel_uncore_posting_read(&dev_priv->uncore, FW_BLC_SELF_VLV);
>  	} else if (IS_G4X(dev_priv) || IS_I965GM(dev_priv)) {
> -		was_enabled = I915_READ(FW_BLC_SELF) & FW_BLC_SELF_EN;
> -		I915_WRITE(FW_BLC_SELF, enable ? FW_BLC_SELF_EN : 0);
> -		POSTING_READ(FW_BLC_SELF);
> +		was_enabled = intel_uncore_read(&dev_priv->uncore, FW_BLC_SELF) & FW_BLC_SELF_EN;
> +		intel_uncore_write(&dev_priv->uncore, FW_BLC_SELF, enable ? FW_BLC_SELF_EN : 0);
> +		intel_uncore_posting_read(&dev_priv->uncore, FW_BLC_SELF);
>  	} else if (IS_PINEVIEW(dev_priv)) {
> -		val = I915_READ(DSPFW3);
> +		val = intel_uncore_read(&dev_priv->uncore, DSPFW3);
>  		was_enabled = val & PINEVIEW_SELF_REFRESH_EN;
>  		if (enable)
>  			val |= PINEVIEW_SELF_REFRESH_EN;
>  		else
>  			val &= ~PINEVIEW_SELF_REFRESH_EN;
> -		I915_WRITE(DSPFW3, val);
> -		POSTING_READ(DSPFW3);
> +		intel_uncore_write(&dev_priv->uncore, DSPFW3, val);
> +		intel_uncore_posting_read(&dev_priv->uncore, DSPFW3);
>  	} else if (IS_I945G(dev_priv) || IS_I945GM(dev_priv)) {
> -		was_enabled = I915_READ(FW_BLC_SELF) & FW_BLC_SELF_EN;
> +		was_enabled = intel_uncore_read(&dev_priv->uncore, FW_BLC_SELF) & FW_BLC_SELF_EN;
>  		val = enable ? _MASKED_BIT_ENABLE(FW_BLC_SELF_EN) :
>  			       _MASKED_BIT_DISABLE(FW_BLC_SELF_EN);
> -		I915_WRITE(FW_BLC_SELF, val);
> -		POSTING_READ(FW_BLC_SELF);
> +		intel_uncore_write(&dev_priv->uncore, FW_BLC_SELF, val);
> +		intel_uncore_posting_read(&dev_priv->uncore, FW_BLC_SELF);
>  	} else if (IS_I915GM(dev_priv)) {
>  		/*
>  		 * FIXME can't find a bit like this for 915G, and
>  		 * and yet it does have the related watermark in
>  		 * FW_BLC_SELF. What's going on?
>  		 */
> -		was_enabled = I915_READ(INSTPM) & INSTPM_SELF_EN;
> +		was_enabled = intel_uncore_read(&dev_priv->uncore, INSTPM) & INSTPM_SELF_EN;
>  		val = enable ? _MASKED_BIT_ENABLE(INSTPM_SELF_EN) :
>  			       _MASKED_BIT_DISABLE(INSTPM_SELF_EN);
> -		I915_WRITE(INSTPM, val);
> -		POSTING_READ(INSTPM);
> +		intel_uncore_write(&dev_priv->uncore, INSTPM, val);
> +		intel_uncore_posting_read(&dev_priv->uncore, INSTPM);
>  	} else {
>  		return false;
>  	}
> @@ -493,20 +493,20 @@ static void vlv_get_fifo_size(struct intel_crtc_state *crtc_state)
>  
>  	switch (pipe) {
>  	case PIPE_A:
> -		dsparb = I915_READ(DSPARB);
> -		dsparb2 = I915_READ(DSPARB2);
> +		dsparb = intel_uncore_read(&dev_priv->uncore, DSPARB);
> +		dsparb2 = intel_uncore_read(&dev_priv->uncore, DSPARB2);
>  		sprite0_start = VLV_FIFO_START(dsparb, dsparb2, 0, 0);
>  		sprite1_start = VLV_FIFO_START(dsparb, dsparb2, 8, 4);
>  		break;
>  	case PIPE_B:
> -		dsparb = I915_READ(DSPARB);
> -		dsparb2 = I915_READ(DSPARB2);
> +		dsparb = intel_uncore_read(&dev_priv->uncore, DSPARB);
> +		dsparb2 = intel_uncore_read(&dev_priv->uncore, DSPARB2);
>  		sprite0_start = VLV_FIFO_START(dsparb, dsparb2, 16, 8);
>  		sprite1_start = VLV_FIFO_START(dsparb, dsparb2, 24, 12);
>  		break;
>  	case PIPE_C:
> -		dsparb2 = I915_READ(DSPARB2);
> -		dsparb3 = I915_READ(DSPARB3);
> +		dsparb2 = intel_uncore_read(&dev_priv->uncore, DSPARB2);
> +		dsparb3 = intel_uncore_read(&dev_priv->uncore, DSPARB3);
>  		sprite0_start = VLV_FIFO_START(dsparb3, dsparb2, 0, 16);
>  		sprite1_start = VLV_FIFO_START(dsparb3, dsparb2, 8, 20);
>  		break;
> @@ -524,7 +524,7 @@ static void vlv_get_fifo_size(struct intel_crtc_state *crtc_state)
>  static int i9xx_get_fifo_size(struct drm_i915_private *dev_priv,
>  			      enum i9xx_plane_id i9xx_plane)
>  {
> -	u32 dsparb = I915_READ(DSPARB);
> +	u32 dsparb = intel_uncore_read(&dev_priv->uncore, DSPARB);
>  	int size;
>  
>  	size = dsparb & 0x7f;
> @@ -540,7 +540,7 @@ static int i9xx_get_fifo_size(struct drm_i915_private *dev_priv,
>  static int i830_get_fifo_size(struct drm_i915_private *dev_priv,
>  			      enum i9xx_plane_id i9xx_plane)
>  {
> -	u32 dsparb = I915_READ(DSPARB);
> +	u32 dsparb = intel_uncore_read(&dev_priv->uncore, DSPARB);
>  	int size;
>  
>  	size = dsparb & 0x1ff;
> @@ -557,7 +557,7 @@ static int i830_get_fifo_size(struct drm_i915_private *dev_priv,
>  static int i845_get_fifo_size(struct drm_i915_private *dev_priv,
>  			      enum i9xx_plane_id i9xx_plane)
>  {
> -	u32 dsparb = I915_READ(DSPARB);
> +	u32 dsparb = intel_uncore_read(&dev_priv->uncore, DSPARB);
>  	int size;
>  
>  	size = dsparb & 0x7f;
> @@ -910,38 +910,38 @@ static void pnv_update_wm(struct intel_crtc *unused_crtc)
>  		wm = intel_calculate_wm(clock, &pnv_display_wm,
>  					pnv_display_wm.fifo_size,
>  					cpp, latency->display_sr);
> -		reg = I915_READ(DSPFW1);
> +		reg = intel_uncore_read(&dev_priv->uncore, DSPFW1);
>  		reg &= ~DSPFW_SR_MASK;
>  		reg |= FW_WM(wm, SR);
> -		I915_WRITE(DSPFW1, reg);
> +		intel_uncore_write(&dev_priv->uncore, DSPFW1, reg);
>  		drm_dbg_kms(&dev_priv->drm, "DSPFW1 register is %x\n", reg);
>  
>  		/* cursor SR */
>  		wm = intel_calculate_wm(clock, &pnv_cursor_wm,
>  					pnv_display_wm.fifo_size,
>  					4, latency->cursor_sr);
> -		reg = I915_READ(DSPFW3);
> +		reg = intel_uncore_read(&dev_priv->uncore, DSPFW3);
>  		reg &= ~DSPFW_CURSOR_SR_MASK;
>  		reg |= FW_WM(wm, CURSOR_SR);
> -		I915_WRITE(DSPFW3, reg);
> +		intel_uncore_write(&dev_priv->uncore, DSPFW3, reg);
>  
>  		/* Display HPLL off SR */
>  		wm = intel_calculate_wm(clock, &pnv_display_hplloff_wm,
>  					pnv_display_hplloff_wm.fifo_size,
>  					cpp, latency->display_hpll_disable);
> -		reg = I915_READ(DSPFW3);
> +		reg = intel_uncore_read(&dev_priv->uncore, DSPFW3);
>  		reg &= ~DSPFW_HPLL_SR_MASK;
>  		reg |= FW_WM(wm, HPLL_SR);
> -		I915_WRITE(DSPFW3, reg);
> +		intel_uncore_write(&dev_priv->uncore, DSPFW3, reg);
>  
>  		/* cursor HPLL off SR */
>  		wm = intel_calculate_wm(clock, &pnv_cursor_hplloff_wm,
>  					pnv_display_hplloff_wm.fifo_size,
>  					4, latency->cursor_hpll_disable);
> -		reg = I915_READ(DSPFW3);
> +		reg = intel_uncore_read(&dev_priv->uncore, DSPFW3);
>  		reg &= ~DSPFW_HPLL_CURSOR_MASK;
>  		reg |= FW_WM(wm, HPLL_CURSOR);
> -		I915_WRITE(DSPFW3, reg);
> +		intel_uncore_write(&dev_priv->uncore, DSPFW3, reg);
>  		drm_dbg_kms(&dev_priv->drm, "DSPFW3 register is %x\n", reg);
>  
>  		intel_set_memory_cxsr(dev_priv, true);
> @@ -975,25 +975,25 @@ static void g4x_write_wm_values(struct drm_i915_private *dev_priv,
>  	for_each_pipe(dev_priv, pipe)
>  		trace_g4x_wm(intel_get_crtc_for_pipe(dev_priv, pipe), wm);
>  
> -	I915_WRITE(DSPFW1,
> +	intel_uncore_write(&dev_priv->uncore, DSPFW1,
>  		   FW_WM(wm->sr.plane, SR) |
>  		   FW_WM(wm->pipe[PIPE_B].plane[PLANE_CURSOR], CURSORB) |
>  		   FW_WM(wm->pipe[PIPE_B].plane[PLANE_PRIMARY], PLANEB) |
>  		   FW_WM(wm->pipe[PIPE_A].plane[PLANE_PRIMARY], PLANEA));
> -	I915_WRITE(DSPFW2,
> +	intel_uncore_write(&dev_priv->uncore, DSPFW2,
>  		   (wm->fbc_en ? DSPFW_FBC_SR_EN : 0) |
>  		   FW_WM(wm->sr.fbc, FBC_SR) |
>  		   FW_WM(wm->hpll.fbc, FBC_HPLL_SR) |
>  		   FW_WM(wm->pipe[PIPE_B].plane[PLANE_SPRITE0], SPRITEB) |
>  		   FW_WM(wm->pipe[PIPE_A].plane[PLANE_CURSOR], CURSORA) |
>  		   FW_WM(wm->pipe[PIPE_A].plane[PLANE_SPRITE0], SPRITEA));
> -	I915_WRITE(DSPFW3,
> +	intel_uncore_write(&dev_priv->uncore, DSPFW3,
>  		   (wm->hpll_en ? DSPFW_HPLL_SR_EN : 0) |
>  		   FW_WM(wm->sr.cursor, CURSOR_SR) |
>  		   FW_WM(wm->hpll.cursor, HPLL_CURSOR) |
>  		   FW_WM(wm->hpll.plane, HPLL_SR));
>  
> -	POSTING_READ(DSPFW1);
> +	intel_uncore_posting_read(&dev_priv->uncore, DSPFW1);
>  }
>  
>  #define FW_WM_VLV(value, plane) \
> @@ -1007,7 +1007,7 @@ static void vlv_write_wm_values(struct drm_i915_private *dev_priv,
>  	for_each_pipe(dev_priv, pipe) {
>  		trace_vlv_wm(intel_get_crtc_for_pipe(dev_priv, pipe), wm);
>  
> -		I915_WRITE(VLV_DDL(pipe),
> +		intel_uncore_write(&dev_priv->uncore, VLV_DDL(pipe),
>  			   (wm->ddl[pipe].plane[PLANE_CURSOR] << DDL_CURSOR_SHIFT) |
>  			   (wm->ddl[pipe].plane[PLANE_SPRITE1] << DDL_SPRITE_SHIFT(1)) |
>  			   (wm->ddl[pipe].plane[PLANE_SPRITE0] << DDL_SPRITE_SHIFT(0)) |
> @@ -1019,35 +1019,35 @@ static void vlv_write_wm_values(struct drm_i915_private *dev_priv,
>  	 * high order bits so that there are no out of bounds values
>  	 * present in the registers during the reprogramming.
>  	 */
> -	I915_WRITE(DSPHOWM, 0);
> -	I915_WRITE(DSPHOWM1, 0);
> -	I915_WRITE(DSPFW4, 0);
> -	I915_WRITE(DSPFW5, 0);
> -	I915_WRITE(DSPFW6, 0);
> +	intel_uncore_write(&dev_priv->uncore, DSPHOWM, 0);
> +	intel_uncore_write(&dev_priv->uncore, DSPHOWM1, 0);
> +	intel_uncore_write(&dev_priv->uncore, DSPFW4, 0);
> +	intel_uncore_write(&dev_priv->uncore, DSPFW5, 0);
> +	intel_uncore_write(&dev_priv->uncore, DSPFW6, 0);
>  
> -	I915_WRITE(DSPFW1,
> +	intel_uncore_write(&dev_priv->uncore, DSPFW1,
>  		   FW_WM(wm->sr.plane, SR) |
>  		   FW_WM(wm->pipe[PIPE_B].plane[PLANE_CURSOR], CURSORB) |
>  		   FW_WM_VLV(wm->pipe[PIPE_B].plane[PLANE_PRIMARY], PLANEB) |
>  		   FW_WM_VLV(wm->pipe[PIPE_A].plane[PLANE_PRIMARY], PLANEA));
> -	I915_WRITE(DSPFW2,
> +	intel_uncore_write(&dev_priv->uncore, DSPFW2,
>  		   FW_WM_VLV(wm->pipe[PIPE_A].plane[PLANE_SPRITE1], SPRITEB) |
>  		   FW_WM(wm->pipe[PIPE_A].plane[PLANE_CURSOR], CURSORA) |
>  		   FW_WM_VLV(wm->pipe[PIPE_A].plane[PLANE_SPRITE0], SPRITEA));
> -	I915_WRITE(DSPFW3,
> +	intel_uncore_write(&dev_priv->uncore, DSPFW3,
>  		   FW_WM(wm->sr.cursor, CURSOR_SR));
>  
>  	if (IS_CHERRYVIEW(dev_priv)) {
> -		I915_WRITE(DSPFW7_CHV,
> +		intel_uncore_write(&dev_priv->uncore, DSPFW7_CHV,
>  			   FW_WM_VLV(wm->pipe[PIPE_B].plane[PLANE_SPRITE1], SPRITED) |
>  			   FW_WM_VLV(wm->pipe[PIPE_B].plane[PLANE_SPRITE0], SPRITEC));
> -		I915_WRITE(DSPFW8_CHV,
> +		intel_uncore_write(&dev_priv->uncore, DSPFW8_CHV,
>  			   FW_WM_VLV(wm->pipe[PIPE_C].plane[PLANE_SPRITE1], SPRITEF) |
>  			   FW_WM_VLV(wm->pipe[PIPE_C].plane[PLANE_SPRITE0], SPRITEE));
> -		I915_WRITE(DSPFW9_CHV,
> +		intel_uncore_write(&dev_priv->uncore, DSPFW9_CHV,
>  			   FW_WM_VLV(wm->pipe[PIPE_C].plane[PLANE_PRIMARY], PLANEC) |
>  			   FW_WM(wm->pipe[PIPE_C].plane[PLANE_CURSOR], CURSORC));
> -		I915_WRITE(DSPHOWM,
> +		intel_uncore_write(&dev_priv->uncore, DSPHOWM,
>  			   FW_WM(wm->sr.plane >> 9, SR_HI) |
>  			   FW_WM(wm->pipe[PIPE_C].plane[PLANE_SPRITE1] >> 8, SPRITEF_HI) |
>  			   FW_WM(wm->pipe[PIPE_C].plane[PLANE_SPRITE0] >> 8, SPRITEE_HI) |
> @@ -1059,10 +1059,10 @@ static void vlv_write_wm_values(struct drm_i915_private *dev_priv,
>  			   FW_WM(wm->pipe[PIPE_A].plane[PLANE_SPRITE0] >> 8, SPRITEA_HI) |
>  			   FW_WM(wm->pipe[PIPE_A].plane[PLANE_PRIMARY] >> 8, PLANEA_HI));
>  	} else {
> -		I915_WRITE(DSPFW7,
> +		intel_uncore_write(&dev_priv->uncore, DSPFW7,
>  			   FW_WM_VLV(wm->pipe[PIPE_B].plane[PLANE_SPRITE1], SPRITED) |
>  			   FW_WM_VLV(wm->pipe[PIPE_B].plane[PLANE_SPRITE0], SPRITEC));
> -		I915_WRITE(DSPHOWM,
> +		intel_uncore_write(&dev_priv->uncore, DSPHOWM,
>  			   FW_WM(wm->sr.plane >> 9, SR_HI) |
>  			   FW_WM(wm->pipe[PIPE_B].plane[PLANE_SPRITE1] >> 8, SPRITED_HI) |
>  			   FW_WM(wm->pipe[PIPE_B].plane[PLANE_SPRITE0] >> 8, SPRITEC_HI) |
> @@ -1072,7 +1072,7 @@ static void vlv_write_wm_values(struct drm_i915_private *dev_priv,
>  			   FW_WM(wm->pipe[PIPE_A].plane[PLANE_PRIMARY] >> 8, PLANEA_HI));
>  	}
>  
> -	POSTING_READ(DSPFW1);
> +	intel_uncore_posting_read(&dev_priv->uncore, DSPFW1);
>  }
>  
>  #undef FW_WM_VLV
> @@ -2309,14 +2309,14 @@ static void i965_update_wm(struct intel_crtc *unused_crtc)
>  		    srwm);
>  
>  	/* 965 has limitations... */
> -	I915_WRITE(DSPFW1, FW_WM(srwm, SR) |
> +	intel_uncore_write(&dev_priv->uncore, DSPFW1, FW_WM(srwm, SR) |
>  		   FW_WM(8, CURSORB) |
>  		   FW_WM(8, PLANEB) |
>  		   FW_WM(8, PLANEA));
> -	I915_WRITE(DSPFW2, FW_WM(8, CURSORA) |
> +	intel_uncore_write(&dev_priv->uncore, DSPFW2, FW_WM(8, CURSORA) |
>  		   FW_WM(8, PLANEC_OLD));
>  	/* update cursor SR watermark */
> -	I915_WRITE(DSPFW3, FW_WM(cursor_sr, CURSOR_SR));
> +	intel_uncore_write(&dev_priv->uncore, DSPFW3, FW_WM(cursor_sr, CURSOR_SR));
>  
>  	if (cxsr_enabled)
>  		intel_set_memory_cxsr(dev_priv, true);
> @@ -2446,10 +2446,10 @@ static void i9xx_update_wm(struct intel_crtc *unused_crtc)
>  			srwm = 1;
>  
>  		if (IS_I945G(dev_priv) || IS_I945GM(dev_priv))
> -			I915_WRITE(FW_BLC_SELF,
> +			intel_uncore_write(&dev_priv->uncore, FW_BLC_SELF,
>  				   FW_BLC_SELF_FIFO_MASK | (srwm & 0xff));
>  		else
> -			I915_WRITE(FW_BLC_SELF, srwm & 0x3f);
> +			intel_uncore_write(&dev_priv->uncore, FW_BLC_SELF, srwm & 0x3f);
>  	}
>  
>  	drm_dbg_kms(&dev_priv->drm,
> @@ -2463,8 +2463,8 @@ static void i9xx_update_wm(struct intel_crtc *unused_crtc)
>  	fwater_lo = fwater_lo | (1 << 24) | (1 << 8);
>  	fwater_hi = fwater_hi | (1 << 8);
>  
> -	I915_WRITE(FW_BLC, fwater_lo);
> -	I915_WRITE(FW_BLC2, fwater_hi);
> +	intel_uncore_write(&dev_priv->uncore, FW_BLC, fwater_lo);
> +	intel_uncore_write(&dev_priv->uncore, FW_BLC2, fwater_hi);
>  
>  	if (enabled)
>  		intel_set_memory_cxsr(dev_priv, true);
> @@ -2487,13 +2487,13 @@ static void i845_update_wm(struct intel_crtc *unused_crtc)
>  				       &i845_wm_info,
>  				       dev_priv->display.get_fifo_size(dev_priv, PLANE_A),
>  				       4, pessimal_latency_ns);
> -	fwater_lo = I915_READ(FW_BLC) & ~0xfff;
> +	fwater_lo = intel_uncore_read(&dev_priv->uncore, FW_BLC) & ~0xfff;
>  	fwater_lo |= (3<<8) | planea_wm;
>  
>  	drm_dbg_kms(&dev_priv->drm,
>  		    "Setting FIFO watermarks - A: %d\n", planea_wm);
>  
> -	I915_WRITE(FW_BLC, fwater_lo);
> +	intel_uncore_write(&dev_priv->uncore, FW_BLC, fwater_lo);
>  }
>  
>  /* latency must be in 0.1us units. */
> @@ -3533,17 +3533,17 @@ static bool _ilk_disable_lp_wm(struct drm_i915_private *dev_priv,
>  
>  	if (dirty & WM_DIRTY_LP(3) && previous->wm_lp[2] & WM1_LP_SR_EN) {
>  		previous->wm_lp[2] &= ~WM1_LP_SR_EN;
> -		I915_WRITE(WM3_LP_ILK, previous->wm_lp[2]);
> +		intel_uncore_write(&dev_priv->uncore, WM3_LP_ILK, previous->wm_lp[2]);
>  		changed = true;
>  	}
>  	if (dirty & WM_DIRTY_LP(2) && previous->wm_lp[1] & WM1_LP_SR_EN) {
>  		previous->wm_lp[1] &= ~WM1_LP_SR_EN;
> -		I915_WRITE(WM2_LP_ILK, previous->wm_lp[1]);
> +		intel_uncore_write(&dev_priv->uncore, WM2_LP_ILK, previous->wm_lp[1]);
>  		changed = true;
>  	}
>  	if (dirty & WM_DIRTY_LP(1) && previous->wm_lp[0] & WM1_LP_SR_EN) {
>  		previous->wm_lp[0] &= ~WM1_LP_SR_EN;
> -		I915_WRITE(WM1_LP_ILK, previous->wm_lp[0]);
> +		intel_uncore_write(&dev_priv->uncore, WM1_LP_ILK, previous->wm_lp[0]);
>  		changed = true;
>  	}
>  
> @@ -3573,56 +3573,56 @@ static void ilk_write_wm_values(struct drm_i915_private *dev_priv,
>  	_ilk_disable_lp_wm(dev_priv, dirty);
>  
>  	if (dirty & WM_DIRTY_PIPE(PIPE_A))
> -		I915_WRITE(WM0_PIPE_ILK(PIPE_A), results->wm_pipe[0]);
> +		intel_uncore_write(&dev_priv->uncore, WM0_PIPE_ILK(PIPE_A), results->wm_pipe[0]);
>  	if (dirty & WM_DIRTY_PIPE(PIPE_B))
> -		I915_WRITE(WM0_PIPE_ILK(PIPE_B), results->wm_pipe[1]);
> +		intel_uncore_write(&dev_priv->uncore, WM0_PIPE_ILK(PIPE_B), results->wm_pipe[1]);
>  	if (dirty & WM_DIRTY_PIPE(PIPE_C))
> -		I915_WRITE(WM0_PIPE_ILK(PIPE_C), results->wm_pipe[2]);
> +		intel_uncore_write(&dev_priv->uncore, WM0_PIPE_ILK(PIPE_C), results->wm_pipe[2]);
>  
>  	if (dirty & WM_DIRTY_DDB) {
>  		if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv)) {
> -			val = I915_READ(WM_MISC);
> +			val = intel_uncore_read(&dev_priv->uncore, WM_MISC);
>  			if (results->partitioning == INTEL_DDB_PART_1_2)
>  				val &= ~WM_MISC_DATA_PARTITION_5_6;
>  			else
>  				val |= WM_MISC_DATA_PARTITION_5_6;
> -			I915_WRITE(WM_MISC, val);
> +			intel_uncore_write(&dev_priv->uncore, WM_MISC, val);
>  		} else {
> -			val = I915_READ(DISP_ARB_CTL2);
> +			val = intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL2);
>  			if (results->partitioning == INTEL_DDB_PART_1_2)
>  				val &= ~DISP_DATA_PARTITION_5_6;
>  			else
>  				val |= DISP_DATA_PARTITION_5_6;
> -			I915_WRITE(DISP_ARB_CTL2, val);
> +			intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL2, val);
>  		}
>  	}
>  
>  	if (dirty & WM_DIRTY_FBC) {
> -		val = I915_READ(DISP_ARB_CTL);
> +		val = intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL);
>  		if (results->enable_fbc_wm)
>  			val &= ~DISP_FBC_WM_DIS;
>  		else
>  			val |= DISP_FBC_WM_DIS;
> -		I915_WRITE(DISP_ARB_CTL, val);
> +		intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, val);
>  	}
>  
>  	if (dirty & WM_DIRTY_LP(1) &&
>  	    previous->wm_lp_spr[0] != results->wm_lp_spr[0])
> -		I915_WRITE(WM1S_LP_ILK, results->wm_lp_spr[0]);
> +		intel_uncore_write(&dev_priv->uncore, WM1S_LP_ILK, results->wm_lp_spr[0]);
>  
>  	if (INTEL_GEN(dev_priv) >= 7) {
>  		if (dirty & WM_DIRTY_LP(2) && previous->wm_lp_spr[1] != results->wm_lp_spr[1])
> -			I915_WRITE(WM2S_LP_IVB, results->wm_lp_spr[1]);
> +			intel_uncore_write(&dev_priv->uncore, WM2S_LP_IVB, results->wm_lp_spr[1]);
>  		if (dirty & WM_DIRTY_LP(3) && previous->wm_lp_spr[2] != results->wm_lp_spr[2])
> -			I915_WRITE(WM3S_LP_IVB, results->wm_lp_spr[2]);
> +			intel_uncore_write(&dev_priv->uncore, WM3S_LP_IVB, results->wm_lp_spr[2]);
>  	}
>  
>  	if (dirty & WM_DIRTY_LP(1) && previous->wm_lp[0] != results->wm_lp[0])
> -		I915_WRITE(WM1_LP_ILK, results->wm_lp[0]);
> +		intel_uncore_write(&dev_priv->uncore, WM1_LP_ILK, results->wm_lp[0]);
>  	if (dirty & WM_DIRTY_LP(2) && previous->wm_lp[1] != results->wm_lp[1])
> -		I915_WRITE(WM2_LP_ILK, results->wm_lp[1]);
> +		intel_uncore_write(&dev_priv->uncore, WM2_LP_ILK, results->wm_lp[1]);
>  	if (dirty & WM_DIRTY_LP(3) && previous->wm_lp[2] != results->wm_lp[2])
> -		I915_WRITE(WM3_LP_ILK, results->wm_lp[2]);
> +		intel_uncore_write(&dev_priv->uncore, WM3_LP_ILK, results->wm_lp[2]);
>  
>  	dev_priv->wm.hw = *results;
>  }
> @@ -3639,7 +3639,7 @@ u8 intel_enabled_dbuf_slices_mask(struct drm_i915_private *dev_priv)
>  	u8 enabled_slices_mask = 0;
>  
>  	for (i = 0; i < max_slices; i++) {
> -		if (I915_READ(DBUF_CTL_S(i)) & DBUF_POWER_STATE)
> +		if (intel_uncore_read(&dev_priv->uncore, DBUF_CTL_S(i)) & DBUF_POWER_STATE)
>  			enabled_slices_mask |= BIT(i);
>  	}
>  
> @@ -4307,12 +4307,12 @@ skl_ddb_get_hw_plane_state(struct drm_i915_private *dev_priv,
>  
>  	/* Cursor doesn't support NV12/planar, so no extra calculation needed */
>  	if (plane_id == PLANE_CURSOR) {
> -		val = I915_READ(CUR_BUF_CFG(pipe));
> +		val = intel_uncore_read(&dev_priv->uncore, CUR_BUF_CFG(pipe));
>  		skl_ddb_entry_init_from_hw(dev_priv, ddb_y, val);
>  		return;
>  	}
>  
> -	val = I915_READ(PLANE_CTL(pipe, plane_id));
> +	val = intel_uncore_read(&dev_priv->uncore, PLANE_CTL(pipe, plane_id));
>  
>  	/* No DDB allocated for disabled planes */
>  	if (val & PLANE_CTL_ENABLE)
> @@ -4321,11 +4321,11 @@ skl_ddb_get_hw_plane_state(struct drm_i915_private *dev_priv,
>  					      val & PLANE_CTL_ALPHA_MASK);
>  
>  	if (INTEL_GEN(dev_priv) >= 11) {
> -		val = I915_READ(PLANE_BUF_CFG(pipe, plane_id));
> +		val = intel_uncore_read(&dev_priv->uncore, PLANE_BUF_CFG(pipe, plane_id));
>  		skl_ddb_entry_init_from_hw(dev_priv, ddb_y, val);
>  	} else {
> -		val = I915_READ(PLANE_BUF_CFG(pipe, plane_id));
> -		val2 = I915_READ(PLANE_NV12_BUF_CFG(pipe, plane_id));
> +		val = intel_uncore_read(&dev_priv->uncore, PLANE_BUF_CFG(pipe, plane_id));
> +		val2 = intel_uncore_read(&dev_priv->uncore, PLANE_NV12_BUF_CFG(pipe, plane_id));
>  
>  		if (fourcc &&
>  		    drm_format_info_is_yuv_semiplanar(drm_format_info(fourcc)))
> @@ -6240,9 +6240,9 @@ void skl_pipe_wm_get_hw_state(struct intel_crtc *crtc,
>  
>  		for (level = 0; level <= max_level; level++) {
>  			if (plane_id != PLANE_CURSOR)
> -				val = I915_READ(PLANE_WM(pipe, plane_id, level));
> +				val = intel_uncore_read(&dev_priv->uncore, PLANE_WM(pipe, plane_id, level));
>  			else
> -				val = I915_READ(CUR_WM(pipe, level));
> +				val = intel_uncore_read(&dev_priv->uncore, CUR_WM(pipe, level));
>  
>  			skl_wm_level_from_reg_val(val, &wm->wm[level]);
>  		}
> @@ -6251,9 +6251,9 @@ void skl_pipe_wm_get_hw_state(struct intel_crtc *crtc,
>  			wm->sagv_wm0 = wm->wm[0];
>  
>  		if (plane_id != PLANE_CURSOR)
> -			val = I915_READ(PLANE_WM_TRANS(pipe, plane_id));
> +			val = intel_uncore_read(&dev_priv->uncore, PLANE_WM_TRANS(pipe, plane_id));
>  		else
> -			val = I915_READ(CUR_WM_TRANS(pipe));
> +			val = intel_uncore_read(&dev_priv->uncore, CUR_WM_TRANS(pipe));
>  
>  		skl_wm_level_from_reg_val(val, &wm->trans_wm);
>  	}
> @@ -6288,7 +6288,7 @@ static void ilk_pipe_wm_get_hw_state(struct intel_crtc *crtc)
>  	struct intel_pipe_wm *active = &crtc_state->wm.ilk.optimal;
>  	enum pipe pipe = crtc->pipe;
>  
> -	hw->wm_pipe[pipe] = I915_READ(WM0_PIPE_ILK(pipe));
> +	hw->wm_pipe[pipe] = intel_uncore_read(&dev_priv->uncore, WM0_PIPE_ILK(pipe));
>  
>  	memset(active, 0, sizeof(*active));
>  
> @@ -6332,13 +6332,13 @@ static void g4x_read_wm_values(struct drm_i915_private *dev_priv,
>  {
>  	u32 tmp;
>  
> -	tmp = I915_READ(DSPFW1);
> +	tmp = intel_uncore_read(&dev_priv->uncore, DSPFW1);
>  	wm->sr.plane = _FW_WM(tmp, SR);
>  	wm->pipe[PIPE_B].plane[PLANE_CURSOR] = _FW_WM(tmp, CURSORB);
>  	wm->pipe[PIPE_B].plane[PLANE_PRIMARY] = _FW_WM(tmp, PLANEB);
>  	wm->pipe[PIPE_A].plane[PLANE_PRIMARY] = _FW_WM(tmp, PLANEA);
>  
> -	tmp = I915_READ(DSPFW2);
> +	tmp = intel_uncore_read(&dev_priv->uncore, DSPFW2);
>  	wm->fbc_en = tmp & DSPFW_FBC_SR_EN;
>  	wm->sr.fbc = _FW_WM(tmp, FBC_SR);
>  	wm->hpll.fbc = _FW_WM(tmp, FBC_HPLL_SR);
> @@ -6346,7 +6346,7 @@ static void g4x_read_wm_values(struct drm_i915_private *dev_priv,
>  	wm->pipe[PIPE_A].plane[PLANE_CURSOR] = _FW_WM(tmp, CURSORA);
>  	wm->pipe[PIPE_A].plane[PLANE_SPRITE0] = _FW_WM(tmp, SPRITEA);
>  
> -	tmp = I915_READ(DSPFW3);
> +	tmp = intel_uncore_read(&dev_priv->uncore, DSPFW3);
>  	wm->hpll_en = tmp & DSPFW_HPLL_SR_EN;
>  	wm->sr.cursor = _FW_WM(tmp, CURSOR_SR);
>  	wm->hpll.cursor = _FW_WM(tmp, HPLL_CURSOR);
> @@ -6360,7 +6360,7 @@ static void vlv_read_wm_values(struct drm_i915_private *dev_priv,
>  	u32 tmp;
>  
>  	for_each_pipe(dev_priv, pipe) {
> -		tmp = I915_READ(VLV_DDL(pipe));
> +		tmp = intel_uncore_read(&dev_priv->uncore, VLV_DDL(pipe));
>  
>  		wm->ddl[pipe].plane[PLANE_PRIMARY] =
>  			(tmp >> DDL_PLANE_SHIFT) & (DDL_PRECISION_HIGH | DRAIN_LATENCY_MASK);
> @@ -6372,34 +6372,34 @@ static void vlv_read_wm_values(struct drm_i915_private *dev_priv,
>  			(tmp >> DDL_SPRITE_SHIFT(1)) & (DDL_PRECISION_HIGH | DRAIN_LATENCY_MASK);
>  	}
>  
> -	tmp = I915_READ(DSPFW1);
> +	tmp = intel_uncore_read(&dev_priv->uncore, DSPFW1);
>  	wm->sr.plane = _FW_WM(tmp, SR);
>  	wm->pipe[PIPE_B].plane[PLANE_CURSOR] = _FW_WM(tmp, CURSORB);
>  	wm->pipe[PIPE_B].plane[PLANE_PRIMARY] = _FW_WM_VLV(tmp, PLANEB);
>  	wm->pipe[PIPE_A].plane[PLANE_PRIMARY] = _FW_WM_VLV(tmp, PLANEA);
>  
> -	tmp = I915_READ(DSPFW2);
> +	tmp = intel_uncore_read(&dev_priv->uncore, DSPFW2);
>  	wm->pipe[PIPE_A].plane[PLANE_SPRITE1] = _FW_WM_VLV(tmp, SPRITEB);
>  	wm->pipe[PIPE_A].plane[PLANE_CURSOR] = _FW_WM(tmp, CURSORA);
>  	wm->pipe[PIPE_A].plane[PLANE_SPRITE0] = _FW_WM_VLV(tmp, SPRITEA);
>  
> -	tmp = I915_READ(DSPFW3);
> +	tmp = intel_uncore_read(&dev_priv->uncore, DSPFW3);
>  	wm->sr.cursor = _FW_WM(tmp, CURSOR_SR);
>  
>  	if (IS_CHERRYVIEW(dev_priv)) {
> -		tmp = I915_READ(DSPFW7_CHV);
> +		tmp = intel_uncore_read(&dev_priv->uncore, DSPFW7_CHV);
>  		wm->pipe[PIPE_B].plane[PLANE_SPRITE1] = _FW_WM_VLV(tmp, SPRITED);
>  		wm->pipe[PIPE_B].plane[PLANE_SPRITE0] = _FW_WM_VLV(tmp, SPRITEC);
>  
> -		tmp = I915_READ(DSPFW8_CHV);
> +		tmp = intel_uncore_read(&dev_priv->uncore, DSPFW8_CHV);
>  		wm->pipe[PIPE_C].plane[PLANE_SPRITE1] = _FW_WM_VLV(tmp, SPRITEF);
>  		wm->pipe[PIPE_C].plane[PLANE_SPRITE0] = _FW_WM_VLV(tmp, SPRITEE);
>  
> -		tmp = I915_READ(DSPFW9_CHV);
> +		tmp = intel_uncore_read(&dev_priv->uncore, DSPFW9_CHV);
>  		wm->pipe[PIPE_C].plane[PLANE_PRIMARY] = _FW_WM_VLV(tmp, PLANEC);
>  		wm->pipe[PIPE_C].plane[PLANE_CURSOR] = _FW_WM(tmp, CURSORC);
>  
> -		tmp = I915_READ(DSPHOWM);
> +		tmp = intel_uncore_read(&dev_priv->uncore, DSPHOWM);
>  		wm->sr.plane |= _FW_WM(tmp, SR_HI) << 9;
>  		wm->pipe[PIPE_C].plane[PLANE_SPRITE1] |= _FW_WM(tmp, SPRITEF_HI) << 8;
>  		wm->pipe[PIPE_C].plane[PLANE_SPRITE0] |= _FW_WM(tmp, SPRITEE_HI) << 8;
> @@ -6411,11 +6411,11 @@ static void vlv_read_wm_values(struct drm_i915_private *dev_priv,
>  		wm->pipe[PIPE_A].plane[PLANE_SPRITE0] |= _FW_WM(tmp, SPRITEA_HI) << 8;
>  		wm->pipe[PIPE_A].plane[PLANE_PRIMARY] |= _FW_WM(tmp, PLANEA_HI) << 8;
>  	} else {
> -		tmp = I915_READ(DSPFW7);
> +		tmp = intel_uncore_read(&dev_priv->uncore, DSPFW7);
>  		wm->pipe[PIPE_B].plane[PLANE_SPRITE1] = _FW_WM_VLV(tmp, SPRITED);
>  		wm->pipe[PIPE_B].plane[PLANE_SPRITE0] = _FW_WM_VLV(tmp, SPRITEC);
>  
> -		tmp = I915_READ(DSPHOWM);
> +		tmp = intel_uncore_read(&dev_priv->uncore, DSPHOWM);
>  		wm->sr.plane |= _FW_WM(tmp, SR_HI) << 9;
>  		wm->pipe[PIPE_B].plane[PLANE_SPRITE1] |= _FW_WM(tmp, SPRITED_HI) << 8;
>  		wm->pipe[PIPE_B].plane[PLANE_SPRITE0] |= _FW_WM(tmp, SPRITEC_HI) << 8;
> @@ -6436,7 +6436,7 @@ void g4x_wm_get_hw_state(struct drm_i915_private *dev_priv)
>  
>  	g4x_read_wm_values(dev_priv, wm);
>  
> -	wm->cxsr = I915_READ(FW_BLC_SELF) & FW_BLC_SELF_EN;
> +	wm->cxsr = intel_uncore_read(&dev_priv->uncore, FW_BLC_SELF) & FW_BLC_SELF_EN;
>  
>  	for_each_intel_crtc(&dev_priv->drm, crtc) {
>  		struct intel_crtc_state *crtc_state =
> @@ -6580,7 +6580,7 @@ void vlv_wm_get_hw_state(struct drm_i915_private *dev_priv)
>  
>  	vlv_read_wm_values(dev_priv, wm);
>  
> -	wm->cxsr = I915_READ(FW_BLC_SELF_VLV) & FW_CSPWRDWNEN;
> +	wm->cxsr = intel_uncore_read(&dev_priv->uncore, FW_BLC_SELF_VLV) & FW_CSPWRDWNEN;
>  	wm->level = VLV_WM_LEVEL_PM2;
>  
>  	if (IS_CHERRYVIEW(dev_priv)) {
> @@ -6727,9 +6727,9 @@ void vlv_wm_sanitize(struct drm_i915_private *dev_priv)
>   */
>  static void ilk_init_lp_watermarks(struct drm_i915_private *dev_priv)
>  {
> -	I915_WRITE(WM3_LP_ILK, I915_READ(WM3_LP_ILK) & ~WM1_LP_SR_EN);
> -	I915_WRITE(WM2_LP_ILK, I915_READ(WM2_LP_ILK) & ~WM1_LP_SR_EN);
> -	I915_WRITE(WM1_LP_ILK, I915_READ(WM1_LP_ILK) & ~WM1_LP_SR_EN);
> +	intel_uncore_write(&dev_priv->uncore, WM3_LP_ILK, intel_uncore_read(&dev_priv->uncore, WM3_LP_ILK) & ~WM1_LP_SR_EN);
> +	intel_uncore_write(&dev_priv->uncore, WM2_LP_ILK, intel_uncore_read(&dev_priv->uncore, WM2_LP_ILK) & ~WM1_LP_SR_EN);
> +	intel_uncore_write(&dev_priv->uncore, WM1_LP_ILK, intel_uncore_read(&dev_priv->uncore, WM1_LP_ILK) & ~WM1_LP_SR_EN);
>  
>  	/*
>  	 * Don't touch WM1S_LP_EN here.
> @@ -6747,25 +6747,25 @@ void ilk_wm_get_hw_state(struct drm_i915_private *dev_priv)
>  	for_each_intel_crtc(&dev_priv->drm, crtc)
>  		ilk_pipe_wm_get_hw_state(crtc);
>  
> -	hw->wm_lp[0] = I915_READ(WM1_LP_ILK);
> -	hw->wm_lp[1] = I915_READ(WM2_LP_ILK);
> -	hw->wm_lp[2] = I915_READ(WM3_LP_ILK);
> +	hw->wm_lp[0] = intel_uncore_read(&dev_priv->uncore, WM1_LP_ILK);
> +	hw->wm_lp[1] = intel_uncore_read(&dev_priv->uncore, WM2_LP_ILK);
> +	hw->wm_lp[2] = intel_uncore_read(&dev_priv->uncore, WM3_LP_ILK);
>  
> -	hw->wm_lp_spr[0] = I915_READ(WM1S_LP_ILK);
> +	hw->wm_lp_spr[0] = intel_uncore_read(&dev_priv->uncore, WM1S_LP_ILK);
>  	if (INTEL_GEN(dev_priv) >= 7) {
> -		hw->wm_lp_spr[1] = I915_READ(WM2S_LP_IVB);
> -		hw->wm_lp_spr[2] = I915_READ(WM3S_LP_IVB);
> +		hw->wm_lp_spr[1] = intel_uncore_read(&dev_priv->uncore, WM2S_LP_IVB);
> +		hw->wm_lp_spr[2] = intel_uncore_read(&dev_priv->uncore, WM3S_LP_IVB);
>  	}
>  
>  	if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv))
> -		hw->partitioning = (I915_READ(WM_MISC) & WM_MISC_DATA_PARTITION_5_6) ?
> +		hw->partitioning = (intel_uncore_read(&dev_priv->uncore, WM_MISC) & WM_MISC_DATA_PARTITION_5_6) ?
>  			INTEL_DDB_PART_5_6 : INTEL_DDB_PART_1_2;
>  	else if (IS_IVYBRIDGE(dev_priv))
> -		hw->partitioning = (I915_READ(DISP_ARB_CTL2) & DISP_DATA_PARTITION_5_6) ?
> +		hw->partitioning = (intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL2) & DISP_DATA_PARTITION_5_6) ?
>  			INTEL_DDB_PART_5_6 : INTEL_DDB_PART_1_2;
>  
>  	hw->enable_fbc_wm =
> -		!(I915_READ(DISP_ARB_CTL) & DISP_FBC_WM_DIS);
> +		!(intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) & DISP_FBC_WM_DIS);
>  }
>  
>  /**
> @@ -6816,14 +6816,14 @@ void intel_enable_ipc(struct drm_i915_private *dev_priv)
>  	if (!HAS_IPC(dev_priv))
>  		return;
>  
> -	val = I915_READ(DISP_ARB_CTL2);
> +	val = intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL2);
>  
>  	if (dev_priv->ipc_enabled)
>  		val |= DISP_IPC_ENABLE;
>  	else
>  		val &= ~DISP_IPC_ENABLE;
>  
> -	I915_WRITE(DISP_ARB_CTL2, val);
> +	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL2, val);
>  }
>  
>  static bool intel_can_enable_ipc(struct drm_i915_private *dev_priv)
> @@ -6858,7 +6858,7 @@ static void ibx_init_clock_gating(struct drm_i915_private *dev_priv)
>  	 * gating for the panel power sequencer or it will fail to
>  	 * start up when no ports are active.
>  	 */
> -	I915_WRITE(SOUTH_DSPCLK_GATE_D, PCH_DPLSUNIT_CLOCK_GATE_DISABLE);
> +	intel_uncore_write(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D, PCH_DPLSUNIT_CLOCK_GATE_DISABLE);
>  }
>  
>  static void g4x_disable_trickle_feed(struct drm_i915_private *dev_priv)
> @@ -6866,12 +6866,12 @@ static void g4x_disable_trickle_feed(struct drm_i915_private *dev_priv)
>  	enum pipe pipe;
>  
>  	for_each_pipe(dev_priv, pipe) {
> -		I915_WRITE(DSPCNTR(pipe),
> -			   I915_READ(DSPCNTR(pipe)) |
> +		intel_uncore_write(&dev_priv->uncore, DSPCNTR(pipe),
> +			   intel_uncore_read(&dev_priv->uncore, DSPCNTR(pipe)) |
>  			   DISPPLANE_TRICKLE_FEED_DISABLE);
>  
> -		I915_WRITE(DSPSURF(pipe), I915_READ(DSPSURF(pipe)));
> -		POSTING_READ(DSPSURF(pipe));
> +		intel_uncore_write(&dev_priv->uncore, DSPSURF(pipe), intel_uncore_read(&dev_priv->uncore, DSPSURF(pipe)));
> +		intel_uncore_posting_read(&dev_priv->uncore, DSPSURF(pipe));
>  	}
>  }
>  
> @@ -6887,10 +6887,10 @@ static void ilk_init_clock_gating(struct drm_i915_private *dev_priv)
>  		   ILK_DPFCUNIT_CLOCK_GATE_DISABLE |
>  		   ILK_DPFDUNIT_CLOCK_GATE_ENABLE;
>  
> -	I915_WRITE(PCH_3DCGDIS0,
> +	intel_uncore_write(&dev_priv->uncore, PCH_3DCGDIS0,
>  		   MARIUNIT_CLOCK_GATE_DISABLE |
>  		   SVSMUNIT_CLOCK_GATE_DISABLE);
> -	I915_WRITE(PCH_3DCGDIS1,
> +	intel_uncore_write(&dev_priv->uncore, PCH_3DCGDIS1,
>  		   VFMUNIT_CLOCK_GATE_DISABLE);
>  
>  	/*
> @@ -6900,12 +6900,12 @@ static void ilk_init_clock_gating(struct drm_i915_private *dev_priv)
>  	 * The bit 5 of 0x42020
>  	 * The bit 15 of 0x45000
>  	 */
> -	I915_WRITE(ILK_DISPLAY_CHICKEN2,
> -		   (I915_READ(ILK_DISPLAY_CHICKEN2) |
> +	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2,
> +		   (intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2) |
>  		    ILK_DPARB_GATE | ILK_VSDPFD_FULL));
>  	dspclk_gate |= ILK_DPARBUNIT_CLOCK_GATE_ENABLE;
> -	I915_WRITE(DISP_ARB_CTL,
> -		   (I915_READ(DISP_ARB_CTL) |
> +	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL,
> +		   (intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
>  		    DISP_FBC_WM_DIS));
>  
>  	/*
> @@ -6917,18 +6917,18 @@ static void ilk_init_clock_gating(struct drm_i915_private *dev_priv)
>  	 */
>  	if (IS_IRONLAKE_M(dev_priv)) {
>  		/* WaFbcAsynchFlipDisableFbcQueue:ilk */
> -		I915_WRITE(ILK_DISPLAY_CHICKEN1,
> -			   I915_READ(ILK_DISPLAY_CHICKEN1) |
> +		intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1,
> +			   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1) |
>  			   ILK_FBCQ_DIS);
> -		I915_WRITE(ILK_DISPLAY_CHICKEN2,
> -			   I915_READ(ILK_DISPLAY_CHICKEN2) |
> +		intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2,
> +			   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2) |
>  			   ILK_DPARB_GATE);
>  	}
>  
> -	I915_WRITE(ILK_DSPCLK_GATE_D, dspclk_gate);
> +	intel_uncore_write(&dev_priv->uncore, ILK_DSPCLK_GATE_D, dspclk_gate);
>  
> -	I915_WRITE(ILK_DISPLAY_CHICKEN2,
> -		   I915_READ(ILK_DISPLAY_CHICKEN2) |
> +	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2,
> +		   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2) |
>  		   ILK_ELPIN_409_SELECT);
>  
>  	g4x_disable_trickle_feed(dev_priv);
> @@ -6946,27 +6946,27 @@ static void cpt_init_clock_gating(struct drm_i915_private *dev_priv)
>  	 * gating for the panel power sequencer or it will fail to
>  	 * start up when no ports are active.
>  	 */
> -	I915_WRITE(SOUTH_DSPCLK_GATE_D, PCH_DPLSUNIT_CLOCK_GATE_DISABLE |
> +	intel_uncore_write(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D, PCH_DPLSUNIT_CLOCK_GATE_DISABLE |
>  		   PCH_DPLUNIT_CLOCK_GATE_DISABLE |
>  		   PCH_CPUNIT_CLOCK_GATE_DISABLE);
> -	I915_WRITE(SOUTH_CHICKEN2, I915_READ(SOUTH_CHICKEN2) |
> +	intel_uncore_write(&dev_priv->uncore, SOUTH_CHICKEN2, intel_uncore_read(&dev_priv->uncore, SOUTH_CHICKEN2) |
>  		   DPLS_EDP_PPS_FIX_DIS);
>  	/* The below fixes the weird display corruption, a few pixels shifted
>  	 * downward, on (only) LVDS of some HP laptops with IVY.
>  	 */
>  	for_each_pipe(dev_priv, pipe) {
> -		val = I915_READ(TRANS_CHICKEN2(pipe));
> +		val = intel_uncore_read(&dev_priv->uncore, TRANS_CHICKEN2(pipe));
>  		val |= TRANS_CHICKEN2_TIMING_OVERRIDE;
>  		val &= ~TRANS_CHICKEN2_FDI_POLARITY_REVERSED;
>  		if (dev_priv->vbt.fdi_rx_polarity_inverted)
>  			val |= TRANS_CHICKEN2_FDI_POLARITY_REVERSED;
>  		val &= ~TRANS_CHICKEN2_DISABLE_DEEP_COLOR_COUNTER;
>  		val &= ~TRANS_CHICKEN2_DISABLE_DEEP_COLOR_MODESWITCH;
> -		I915_WRITE(TRANS_CHICKEN2(pipe), val);
> +		intel_uncore_write(&dev_priv->uncore, TRANS_CHICKEN2(pipe), val);
>  	}
>  	/* WADP0ClockGatingDisable */
>  	for_each_pipe(dev_priv, pipe) {
> -		I915_WRITE(TRANS_CHICKEN1(pipe),
> +		intel_uncore_write(&dev_priv->uncore, TRANS_CHICKEN1(pipe),
>  			   TRANS_CHICKEN1_DP0UNIT_GC_DISABLE);
>  	}
>  }
> @@ -6975,7 +6975,7 @@ static void gen6_check_mch_setup(struct drm_i915_private *dev_priv)
>  {
>  	u32 tmp;
>  
> -	tmp = I915_READ(MCH_SSKPD);
> +	tmp = intel_uncore_read(&dev_priv->uncore, MCH_SSKPD);
>  	if ((tmp & MCH_SSKPD_WM0_MASK) != MCH_SSKPD_WM0_VAL)
>  		drm_dbg_kms(&dev_priv->drm,
>  			    "Wrong MCH_SSKPD value: 0x%08x This can cause underruns.\n",
> @@ -6986,14 +6986,14 @@ static void gen6_init_clock_gating(struct drm_i915_private *dev_priv)
>  {
>  	u32 dspclk_gate = ILK_VRHUNIT_CLOCK_GATE_DISABLE;
>  
> -	I915_WRITE(ILK_DSPCLK_GATE_D, dspclk_gate);
> +	intel_uncore_write(&dev_priv->uncore, ILK_DSPCLK_GATE_D, dspclk_gate);
>  
> -	I915_WRITE(ILK_DISPLAY_CHICKEN2,
> -		   I915_READ(ILK_DISPLAY_CHICKEN2) |
> +	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2,
> +		   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2) |
>  		   ILK_ELPIN_409_SELECT);
>  
> -	I915_WRITE(GEN6_UCGCTL1,
> -		   I915_READ(GEN6_UCGCTL1) |
> +	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL1,
> +		   intel_uncore_read(&dev_priv->uncore, GEN6_UCGCTL1) |
>  		   GEN6_BLBUNIT_CLOCK_GATE_DISABLE |
>  		   GEN6_CSUNIT_CLOCK_GATE_DISABLE);
>  
> @@ -7010,7 +7010,7 @@ static void gen6_init_clock_gating(struct drm_i915_private *dev_priv)
>  	 * WaDisableRCCUnitClockGating:snb
>  	 * WaDisableRCPBUnitClockGating:snb
>  	 */
> -	I915_WRITE(GEN6_UCGCTL2,
> +	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL2,
>  		   GEN6_RCPBUNIT_CLOCK_GATE_DISABLE |
>  		   GEN6_RCCUNIT_CLOCK_GATE_DISABLE);
>  
> @@ -7025,14 +7025,14 @@ static void gen6_init_clock_gating(struct drm_i915_private *dev_priv)
>  	 *
>  	 * WaFbcAsynchFlipDisableFbcQueue:snb
>  	 */
> -	I915_WRITE(ILK_DISPLAY_CHICKEN1,
> -		   I915_READ(ILK_DISPLAY_CHICKEN1) |
> +	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1,
> +		   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1) |
>  		   ILK_FBCQ_DIS | ILK_PABSTRETCH_DIS);
> -	I915_WRITE(ILK_DISPLAY_CHICKEN2,
> -		   I915_READ(ILK_DISPLAY_CHICKEN2) |
> +	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2,
> +		   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2) |
>  		   ILK_DPARB_GATE | ILK_VSDPFD_FULL);
> -	I915_WRITE(ILK_DSPCLK_GATE_D,
> -		   I915_READ(ILK_DSPCLK_GATE_D) |
> +	intel_uncore_write(&dev_priv->uncore, ILK_DSPCLK_GATE_D,
> +		   intel_uncore_read(&dev_priv->uncore, ILK_DSPCLK_GATE_D) |
>  		   ILK_DPARBUNIT_CLOCK_GATE_ENABLE  |
>  		   ILK_DPFDUNIT_CLOCK_GATE_ENABLE);
>  
> @@ -7050,23 +7050,23 @@ static void lpt_init_clock_gating(struct drm_i915_private *dev_priv)
>  	 * disabled when not needed anymore in order to save power.
>  	 */
>  	if (HAS_PCH_LPT_LP(dev_priv))
> -		I915_WRITE(SOUTH_DSPCLK_GATE_D,
> -			   I915_READ(SOUTH_DSPCLK_GATE_D) |
> +		intel_uncore_write(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D,
> +			   intel_uncore_read(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D) |
>  			   PCH_LP_PARTITION_LEVEL_DISABLE);
>  
>  	/* WADPOClockGatingDisable:hsw */
> -	I915_WRITE(TRANS_CHICKEN1(PIPE_A),
> -		   I915_READ(TRANS_CHICKEN1(PIPE_A)) |
> +	intel_uncore_write(&dev_priv->uncore, TRANS_CHICKEN1(PIPE_A),
> +		   intel_uncore_read(&dev_priv->uncore, TRANS_CHICKEN1(PIPE_A)) |
>  		   TRANS_CHICKEN1_DP0UNIT_GC_DISABLE);
>  }
>  
>  static void lpt_suspend_hw(struct drm_i915_private *dev_priv)
>  {
>  	if (HAS_PCH_LPT_LP(dev_priv)) {
> -		u32 val = I915_READ(SOUTH_DSPCLK_GATE_D);
> +		u32 val = intel_uncore_read(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D);
>  
>  		val &= ~PCH_LP_PARTITION_LEVEL_DISABLE;
> -		I915_WRITE(SOUTH_DSPCLK_GATE_D, val);
> +		intel_uncore_write(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D, val);
>  	}
>  }
>  
> @@ -7078,33 +7078,33 @@ static void gen8_set_l3sqc_credits(struct drm_i915_private *dev_priv,
>  	u32 val;
>  
>  	/* WaTempDisableDOPClkGating:bdw */
> -	misccpctl = I915_READ(GEN7_MISCCPCTL);
> -	I915_WRITE(GEN7_MISCCPCTL, misccpctl & ~GEN7_DOP_CLOCK_GATE_ENABLE);
> +	misccpctl = intel_uncore_read(&dev_priv->uncore, GEN7_MISCCPCTL);
> +	intel_uncore_write(&dev_priv->uncore, GEN7_MISCCPCTL, misccpctl & ~GEN7_DOP_CLOCK_GATE_ENABLE);
>  
> -	val = I915_READ(GEN8_L3SQCREG1);
> +	val = intel_uncore_read(&dev_priv->uncore, GEN8_L3SQCREG1);
>  	val &= ~L3_PRIO_CREDITS_MASK;
>  	val |= L3_GENERAL_PRIO_CREDITS(general_prio_credits);
>  	val |= L3_HIGH_PRIO_CREDITS(high_prio_credits);
> -	I915_WRITE(GEN8_L3SQCREG1, val);
> +	intel_uncore_write(&dev_priv->uncore, GEN8_L3SQCREG1, val);
>  
>  	/*
>  	 * Wait at least 100 clocks before re-enabling clock gating.
>  	 * See the definition of L3SQCREG1 in BSpec.
>  	 */
> -	POSTING_READ(GEN8_L3SQCREG1);
> +	intel_uncore_posting_read(&dev_priv->uncore, GEN8_L3SQCREG1);
>  	udelay(1);
> -	I915_WRITE(GEN7_MISCCPCTL, misccpctl);
> +	intel_uncore_write(&dev_priv->uncore, GEN7_MISCCPCTL, misccpctl);
>  }
>  
>  static void icl_init_clock_gating(struct drm_i915_private *dev_priv)
>  {
>  	/* Wa_1409120013:icl,ehl */
> -	I915_WRITE(ILK_DPFC_CHICKEN,
> +	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN,
>  		   ILK_DPFC_CHICKEN_COMP_DUMMY_PIXEL);
>  
>  	/* This is not an Wa. Enable to reduce Sampler power */
> -	I915_WRITE(GEN10_DFR_RATIO_EN_AND_CHICKEN,
> -		   I915_READ(GEN10_DFR_RATIO_EN_AND_CHICKEN) & ~DFR_DISABLE);
> +	intel_uncore_write(&dev_priv->uncore, GEN10_DFR_RATIO_EN_AND_CHICKEN,
> +		   intel_uncore_read(&dev_priv->uncore, GEN10_DFR_RATIO_EN_AND_CHICKEN) & ~DFR_DISABLE);
>  
>  	/*Wa_14010594013:icl, ehl */
>  	intel_uncore_rmw(&dev_priv->uncore, GEN8_CHICKEN_DCPR_1,
> @@ -7114,12 +7114,12 @@ static void icl_init_clock_gating(struct drm_i915_private *dev_priv)
>  static void tgl_init_clock_gating(struct drm_i915_private *dev_priv)
>  {
>  	/* Wa_1409120013:tgl */
> -	I915_WRITE(ILK_DPFC_CHICKEN,
> +	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN,
>  		   ILK_DPFC_CHICKEN_COMP_DUMMY_PIXEL);
>  
>  	/* Wa_1409825376:tgl (pre-prod)*/
>  	if (IS_TGL_DISP_REVID(dev_priv, TGL_REVID_A0, TGL_REVID_B1))
> -		I915_WRITE(GEN9_CLKGATE_DIS_3, I915_READ(GEN9_CLKGATE_DIS_3) |
> +		intel_uncore_write(&dev_priv->uncore, GEN9_CLKGATE_DIS_3, intel_uncore_read(&dev_priv->uncore, GEN9_CLKGATE_DIS_3) |
>  			   TGL_VRH_GATING_DIS);
>  
>  	/* Wa_14011059788:tgl */
> @@ -7131,7 +7131,7 @@ static void dg1_init_clock_gating(struct drm_i915_private *dev_priv)
>  {
>  	/* Wa_1409836686:dg1[a0] */
>  	if (IS_DG1_REVID(dev_priv, DG1_REVID_A0, DG1_REVID_A0))
> -		I915_WRITE(GEN9_CLKGATE_DIS_3, I915_READ(GEN9_CLKGATE_DIS_3) |
> +		intel_uncore_write(&dev_priv->uncore, GEN9_CLKGATE_DIS_3, intel_uncore_read(&dev_priv->uncore, GEN9_CLKGATE_DIS_3) |
>  			   DPT_GATING_DIS);
>  }
>  
> @@ -7141,7 +7141,7 @@ static void cnp_init_clock_gating(struct drm_i915_private *dev_priv)
>  		return;
>  
>  	/* Display WA #1181 WaSouthDisplayDisablePWMCGEGating: cnp */
> -	I915_WRITE(SOUTH_DSPCLK_GATE_D, I915_READ(SOUTH_DSPCLK_GATE_D) |
> +	intel_uncore_write(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D, intel_uncore_read(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D) |
>  		   CNP_PWM_CGE_GATING_DISABLE);
>  }
>  
> @@ -7151,35 +7151,35 @@ static void cnl_init_clock_gating(struct drm_i915_private *dev_priv)
>  	cnp_init_clock_gating(dev_priv);
>  
>  	/* This is not an Wa. Enable for better image quality */
> -	I915_WRITE(_3D_CHICKEN3,
> +	intel_uncore_write(&dev_priv->uncore, _3D_CHICKEN3,
>  		   _MASKED_BIT_ENABLE(_3D_CHICKEN3_AA_LINE_QUALITY_FIX_ENABLE));
>  
>  	/* WaEnableChickenDCPR:cnl */
> -	I915_WRITE(GEN8_CHICKEN_DCPR_1,
> -		   I915_READ(GEN8_CHICKEN_DCPR_1) | MASK_WAKEMEM);
> +	intel_uncore_write(&dev_priv->uncore, GEN8_CHICKEN_DCPR_1,
> +		   intel_uncore_read(&dev_priv->uncore, GEN8_CHICKEN_DCPR_1) | MASK_WAKEMEM);
>  
>  	/*
>  	 * WaFbcWakeMemOn:cnl
>  	 * Display WA #0859: cnl
>  	 */
> -	I915_WRITE(DISP_ARB_CTL, I915_READ(DISP_ARB_CTL) |
> +	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
>  		   DISP_FBC_MEMORY_WAKE);
>  
> -	val = I915_READ(SLICE_UNIT_LEVEL_CLKGATE);
> +	val = intel_uncore_read(&dev_priv->uncore, SLICE_UNIT_LEVEL_CLKGATE);
>  	/* ReadHitWriteOnlyDisable:cnl */
>  	val |= RCCUNIT_CLKGATE_DIS;
> -	I915_WRITE(SLICE_UNIT_LEVEL_CLKGATE, val);
> +	intel_uncore_write(&dev_priv->uncore, SLICE_UNIT_LEVEL_CLKGATE, val);
>  
>  	/* Wa_2201832410:cnl */
> -	val = I915_READ(SUBSLICE_UNIT_LEVEL_CLKGATE);
> +	val = intel_uncore_read(&dev_priv->uncore, SUBSLICE_UNIT_LEVEL_CLKGATE);
>  	val |= GWUNIT_CLKGATE_DIS;
> -	I915_WRITE(SUBSLICE_UNIT_LEVEL_CLKGATE, val);
> +	intel_uncore_write(&dev_priv->uncore, SUBSLICE_UNIT_LEVEL_CLKGATE, val);
>  
>  	/* WaDisableVFclkgate:cnl */
>  	/* WaVFUnitClockGatingDisable:cnl */
> -	val = I915_READ(UNSLICE_UNIT_LEVEL_CLKGATE);
> +	val = intel_uncore_read(&dev_priv->uncore, UNSLICE_UNIT_LEVEL_CLKGATE);
>  	val |= VFUNIT_CLKGATE_DIS;
> -	I915_WRITE(UNSLICE_UNIT_LEVEL_CLKGATE, val);
> +	intel_uncore_write(&dev_priv->uncore, UNSLICE_UNIT_LEVEL_CLKGATE, val);
>  }
>  
>  static void cfl_init_clock_gating(struct drm_i915_private *dev_priv)
> @@ -7188,21 +7188,21 @@ static void cfl_init_clock_gating(struct drm_i915_private *dev_priv)
>  	gen9_init_clock_gating(dev_priv);
>  
>  	/* WAC6entrylatency:cfl */
> -	I915_WRITE(FBC_LLC_READ_CTRL, I915_READ(FBC_LLC_READ_CTRL) |
> +	intel_uncore_write(&dev_priv->uncore, FBC_LLC_READ_CTRL, intel_uncore_read(&dev_priv->uncore, FBC_LLC_READ_CTRL) |
>  		   FBC_LLC_FULLY_OPEN);
>  
>  	/*
>  	 * WaFbcTurnOffFbcWatermark:cfl
>  	 * Display WA #0562: cfl
>  	 */
> -	I915_WRITE(DISP_ARB_CTL, I915_READ(DISP_ARB_CTL) |
> +	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
>  		   DISP_FBC_WM_DIS);
>  
>  	/*
>  	 * WaFbcNukeOnHostModify:cfl
>  	 * Display WA #0873: cfl
>  	 */
> -	I915_WRITE(ILK_DPFC_CHICKEN, I915_READ(ILK_DPFC_CHICKEN) |
> +	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN, intel_uncore_read(&dev_priv->uncore, ILK_DPFC_CHICKEN) |
>  		   ILK_DPFC_NUKE_ON_ANY_MODIFICATION);
>  }
>  
> @@ -7211,31 +7211,31 @@ static void kbl_init_clock_gating(struct drm_i915_private *dev_priv)
>  	gen9_init_clock_gating(dev_priv);
>  
>  	/* WAC6entrylatency:kbl */
> -	I915_WRITE(FBC_LLC_READ_CTRL, I915_READ(FBC_LLC_READ_CTRL) |
> +	intel_uncore_write(&dev_priv->uncore, FBC_LLC_READ_CTRL, intel_uncore_read(&dev_priv->uncore, FBC_LLC_READ_CTRL) |
>  		   FBC_LLC_FULLY_OPEN);
>  
>  	/* WaDisableSDEUnitClockGating:kbl */
>  	if (IS_KBL_GT_REVID(dev_priv, 0, KBL_REVID_B0))
> -		I915_WRITE(GEN8_UCGCTL6, I915_READ(GEN8_UCGCTL6) |
> +		intel_uncore_write(&dev_priv->uncore, GEN8_UCGCTL6, intel_uncore_read(&dev_priv->uncore, GEN8_UCGCTL6) |
>  			   GEN8_SDEUNIT_CLOCK_GATE_DISABLE);
>  
>  	/* WaDisableGamClockGating:kbl */
>  	if (IS_KBL_GT_REVID(dev_priv, 0, KBL_REVID_B0))
> -		I915_WRITE(GEN6_UCGCTL1, I915_READ(GEN6_UCGCTL1) |
> +		intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL1, intel_uncore_read(&dev_priv->uncore, GEN6_UCGCTL1) |
>  			   GEN6_GAMUNIT_CLOCK_GATE_DISABLE);
>  
>  	/*
>  	 * WaFbcTurnOffFbcWatermark:kbl
>  	 * Display WA #0562: kbl
>  	 */
> -	I915_WRITE(DISP_ARB_CTL, I915_READ(DISP_ARB_CTL) |
> +	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
>  		   DISP_FBC_WM_DIS);
>  
>  	/*
>  	 * WaFbcNukeOnHostModify:kbl
>  	 * Display WA #0873: kbl
>  	 */
> -	I915_WRITE(ILK_DPFC_CHICKEN, I915_READ(ILK_DPFC_CHICKEN) |
> +	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN, intel_uncore_read(&dev_priv->uncore, ILK_DPFC_CHICKEN) |
>  		   ILK_DPFC_NUKE_ON_ANY_MODIFICATION);
>  }
>  
> @@ -7244,32 +7244,32 @@ static void skl_init_clock_gating(struct drm_i915_private *dev_priv)
>  	gen9_init_clock_gating(dev_priv);
>  
>  	/* WaDisableDopClockGating:skl */
> -	I915_WRITE(GEN7_MISCCPCTL, I915_READ(GEN7_MISCCPCTL) &
> +	intel_uncore_write(&dev_priv->uncore, GEN7_MISCCPCTL, intel_uncore_read(&dev_priv->uncore, GEN7_MISCCPCTL) &
>  		   ~GEN7_DOP_CLOCK_GATE_ENABLE);
>  
>  	/* WAC6entrylatency:skl */
> -	I915_WRITE(FBC_LLC_READ_CTRL, I915_READ(FBC_LLC_READ_CTRL) |
> +	intel_uncore_write(&dev_priv->uncore, FBC_LLC_READ_CTRL, intel_uncore_read(&dev_priv->uncore, FBC_LLC_READ_CTRL) |
>  		   FBC_LLC_FULLY_OPEN);
>  
>  	/*
>  	 * WaFbcTurnOffFbcWatermark:skl
>  	 * Display WA #0562: skl
>  	 */
> -	I915_WRITE(DISP_ARB_CTL, I915_READ(DISP_ARB_CTL) |
> +	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
>  		   DISP_FBC_WM_DIS);
>  
>  	/*
>  	 * WaFbcNukeOnHostModify:skl
>  	 * Display WA #0873: skl
>  	 */
> -	I915_WRITE(ILK_DPFC_CHICKEN, I915_READ(ILK_DPFC_CHICKEN) |
> +	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN, intel_uncore_read(&dev_priv->uncore, ILK_DPFC_CHICKEN) |
>  		   ILK_DPFC_NUKE_ON_ANY_MODIFICATION);
>  
>  	/*
>  	 * WaFbcHighMemBwCorruptionAvoidance:skl
>  	 * Display WA #0883: skl
>  	 */
> -	I915_WRITE(ILK_DPFC_CHICKEN, I915_READ(ILK_DPFC_CHICKEN) |
> +	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN, intel_uncore_read(&dev_priv->uncore, ILK_DPFC_CHICKEN) |
>  		   ILK_DPFC_DISABLE_DUMMY0);
>  }
>  
> @@ -7278,42 +7278,42 @@ static void bdw_init_clock_gating(struct drm_i915_private *dev_priv)
>  	enum pipe pipe;
>  
>  	/* WaFbcAsynchFlipDisableFbcQueue:hsw,bdw */
> -	I915_WRITE(CHICKEN_PIPESL_1(PIPE_A),
> -		   I915_READ(CHICKEN_PIPESL_1(PIPE_A)) |
> +	intel_uncore_write(&dev_priv->uncore, CHICKEN_PIPESL_1(PIPE_A),
> +		   intel_uncore_read(&dev_priv->uncore, CHICKEN_PIPESL_1(PIPE_A)) |
>  		   HSW_FBCQ_DIS);
>  
>  	/* WaSwitchSolVfFArbitrationPriority:bdw */
> -	I915_WRITE(GAM_ECOCHK, I915_READ(GAM_ECOCHK) | HSW_ECOCHK_ARB_PRIO_SOL);
> +	intel_uncore_write(&dev_priv->uncore, GAM_ECOCHK, intel_uncore_read(&dev_priv->uncore, GAM_ECOCHK) | HSW_ECOCHK_ARB_PRIO_SOL);
>  
>  	/* WaPsrDPAMaskVBlankInSRD:bdw */
> -	I915_WRITE(CHICKEN_PAR1_1,
> -		   I915_READ(CHICKEN_PAR1_1) | DPA_MASK_VBLANK_SRD);
> +	intel_uncore_write(&dev_priv->uncore, CHICKEN_PAR1_1,
> +		   intel_uncore_read(&dev_priv->uncore, CHICKEN_PAR1_1) | DPA_MASK_VBLANK_SRD);
>  
>  	/* WaPsrDPRSUnmaskVBlankInSRD:bdw */
>  	for_each_pipe(dev_priv, pipe) {
> -		I915_WRITE(CHICKEN_PIPESL_1(pipe),
> -			   I915_READ(CHICKEN_PIPESL_1(pipe)) |
> +		intel_uncore_write(&dev_priv->uncore, CHICKEN_PIPESL_1(pipe),
> +			   intel_uncore_read(&dev_priv->uncore, CHICKEN_PIPESL_1(pipe)) |
>  			   BDW_DPRS_MASK_VBLANK_SRD);
>  	}
>  
>  	/* WaVSRefCountFullforceMissDisable:bdw */
>  	/* WaDSRefCountFullforceMissDisable:bdw */
> -	I915_WRITE(GEN7_FF_THREAD_MODE,
> -		   I915_READ(GEN7_FF_THREAD_MODE) &
> +	intel_uncore_write(&dev_priv->uncore, GEN7_FF_THREAD_MODE,
> +		   intel_uncore_read(&dev_priv->uncore, GEN7_FF_THREAD_MODE) &
>  		   ~(GEN8_FF_DS_REF_CNT_FFME | GEN7_FF_VS_REF_CNT_FFME));
>  
> -	I915_WRITE(GEN6_RC_SLEEP_PSMI_CONTROL,
> +	intel_uncore_write(&dev_priv->uncore, GEN6_RC_SLEEP_PSMI_CONTROL,
>  		   _MASKED_BIT_ENABLE(GEN8_RC_SEMA_IDLE_MSG_DISABLE));
>  
>  	/* WaDisableSDEUnitClockGating:bdw */
> -	I915_WRITE(GEN8_UCGCTL6, I915_READ(GEN8_UCGCTL6) |
> +	intel_uncore_write(&dev_priv->uncore, GEN8_UCGCTL6, intel_uncore_read(&dev_priv->uncore, GEN8_UCGCTL6) |
>  		   GEN8_SDEUNIT_CLOCK_GATE_DISABLE);
>  
>  	/* WaProgramL3SqcReg1Default:bdw */
>  	gen8_set_l3sqc_credits(dev_priv, 30, 2);
>  
>  	/* WaKVMNotificationOnConfigChange:bdw */
> -	I915_WRITE(CHICKEN_PAR2_1, I915_READ(CHICKEN_PAR2_1)
> +	intel_uncore_write(&dev_priv->uncore, CHICKEN_PAR2_1, intel_uncore_read(&dev_priv->uncore, CHICKEN_PAR2_1)
>  		   | KVM_CONFIG_CHANGE_NOTIFICATION_SELECT);
>  
>  	lpt_init_clock_gating(dev_priv);
> @@ -7323,24 +7323,24 @@ static void bdw_init_clock_gating(struct drm_i915_private *dev_priv)
>  	 * Also see the CHICKEN2 write in bdw_init_workarounds() to disable DOP
>  	 * clock gating.
>  	 */
> -	I915_WRITE(GEN6_UCGCTL1,
> -		   I915_READ(GEN6_UCGCTL1) | GEN6_EU_TCUNIT_CLOCK_GATE_DISABLE);
> +	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL1,
> +		   intel_uncore_read(&dev_priv->uncore, GEN6_UCGCTL1) | GEN6_EU_TCUNIT_CLOCK_GATE_DISABLE);
>  }
>  
>  static void hsw_init_clock_gating(struct drm_i915_private *dev_priv)
>  {
>  	/* WaFbcAsynchFlipDisableFbcQueue:hsw,bdw */
> -	I915_WRITE(CHICKEN_PIPESL_1(PIPE_A),
> -		   I915_READ(CHICKEN_PIPESL_1(PIPE_A)) |
> +	intel_uncore_write(&dev_priv->uncore, CHICKEN_PIPESL_1(PIPE_A),
> +		   intel_uncore_read(&dev_priv->uncore, CHICKEN_PIPESL_1(PIPE_A)) |
>  		   HSW_FBCQ_DIS);
>  
>  	/* This is required by WaCatErrorRejectionIssue:hsw */
> -	I915_WRITE(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
> -		   I915_READ(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
> +	intel_uncore_write(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
> +		   intel_uncore_read(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
>  		   GEN7_SQ_CHICKEN_MBCUNIT_SQINTMOB);
>  
>  	/* WaSwitchSolVfFArbitrationPriority:hsw */
> -	I915_WRITE(GAM_ECOCHK, I915_READ(GAM_ECOCHK) | HSW_ECOCHK_ARB_PRIO_SOL);
> +	intel_uncore_write(&dev_priv->uncore, GAM_ECOCHK, intel_uncore_read(&dev_priv->uncore, GAM_ECOCHK) | HSW_ECOCHK_ARB_PRIO_SOL);
>  
>  	lpt_init_clock_gating(dev_priv);
>  }
> @@ -7349,26 +7349,26 @@ static void ivb_init_clock_gating(struct drm_i915_private *dev_priv)
>  {
>  	u32 snpcr;
>  
> -	I915_WRITE(ILK_DSPCLK_GATE_D, ILK_VRHUNIT_CLOCK_GATE_DISABLE);
> +	intel_uncore_write(&dev_priv->uncore, ILK_DSPCLK_GATE_D, ILK_VRHUNIT_CLOCK_GATE_DISABLE);
>  
>  	/* WaFbcAsynchFlipDisableFbcQueue:ivb */
> -	I915_WRITE(ILK_DISPLAY_CHICKEN1,
> -		   I915_READ(ILK_DISPLAY_CHICKEN1) |
> +	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1,
> +		   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1) |
>  		   ILK_FBCQ_DIS);
>  
>  	/* WaDisableBackToBackFlipFix:ivb */
> -	I915_WRITE(IVB_CHICKEN3,
> +	intel_uncore_write(&dev_priv->uncore, IVB_CHICKEN3,
>  		   CHICKEN3_DGMG_REQ_OUT_FIX_DISABLE |
>  		   CHICKEN3_DGMG_DONE_FIX_DISABLE);
>  
>  	if (IS_IVB_GT1(dev_priv))
> -		I915_WRITE(GEN7_ROW_CHICKEN2,
> +		intel_uncore_write(&dev_priv->uncore, GEN7_ROW_CHICKEN2,
>  			   _MASKED_BIT_ENABLE(DOP_CLOCK_GATING_DISABLE));
>  	else {
>  		/* must write both registers */
> -		I915_WRITE(GEN7_ROW_CHICKEN2,
> +		intel_uncore_write(&dev_priv->uncore, GEN7_ROW_CHICKEN2,
>  			   _MASKED_BIT_ENABLE(DOP_CLOCK_GATING_DISABLE));
> -		I915_WRITE(GEN7_ROW_CHICKEN2_GT2,
> +		intel_uncore_write(&dev_priv->uncore, GEN7_ROW_CHICKEN2_GT2,
>  			   _MASKED_BIT_ENABLE(DOP_CLOCK_GATING_DISABLE));
>  	}
>  
> @@ -7376,20 +7376,20 @@ static void ivb_init_clock_gating(struct drm_i915_private *dev_priv)
>  	 * According to the spec, bit 13 (RCZUNIT) must be set on IVB.
>  	 * This implements the WaDisableRCZUnitClockGating:ivb workaround.
>  	 */
> -	I915_WRITE(GEN6_UCGCTL2,
> +	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL2,
>  		   GEN6_RCZUNIT_CLOCK_GATE_DISABLE);
>  
>  	/* This is required by WaCatErrorRejectionIssue:ivb */
> -	I915_WRITE(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
> -			I915_READ(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
> +	intel_uncore_write(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
> +			intel_uncore_read(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
>  			GEN7_SQ_CHICKEN_MBCUNIT_SQINTMOB);
>  
>  	g4x_disable_trickle_feed(dev_priv);
>  
> -	snpcr = I915_READ(GEN6_MBCUNIT_SNPCR);
> +	snpcr = intel_uncore_read(&dev_priv->uncore, GEN6_MBCUNIT_SNPCR);
>  	snpcr &= ~GEN6_MBC_SNPCR_MASK;
>  	snpcr |= GEN6_MBC_SNPCR_MED;
> -	I915_WRITE(GEN6_MBCUNIT_SNPCR, snpcr);
> +	intel_uncore_write(&dev_priv->uncore, GEN6_MBCUNIT_SNPCR, snpcr);
>  
>  	if (!HAS_PCH_NOP(dev_priv))
>  		cpt_init_clock_gating(dev_priv);
> @@ -7400,58 +7400,58 @@ static void ivb_init_clock_gating(struct drm_i915_private *dev_priv)
>  static void vlv_init_clock_gating(struct drm_i915_private *dev_priv)
>  {
>  	/* WaDisableBackToBackFlipFix:vlv */
> -	I915_WRITE(IVB_CHICKEN3,
> +	intel_uncore_write(&dev_priv->uncore, IVB_CHICKEN3,
>  		   CHICKEN3_DGMG_REQ_OUT_FIX_DISABLE |
>  		   CHICKEN3_DGMG_DONE_FIX_DISABLE);
>  
>  	/* WaDisableDopClockGating:vlv */
> -	I915_WRITE(GEN7_ROW_CHICKEN2,
> +	intel_uncore_write(&dev_priv->uncore, GEN7_ROW_CHICKEN2,
>  		   _MASKED_BIT_ENABLE(DOP_CLOCK_GATING_DISABLE));
>  
>  	/* This is required by WaCatErrorRejectionIssue:vlv */
> -	I915_WRITE(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
> -		   I915_READ(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
> +	intel_uncore_write(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
> +		   intel_uncore_read(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
>  		   GEN7_SQ_CHICKEN_MBCUNIT_SQINTMOB);
>  
>  	/*
>  	 * According to the spec, bit 13 (RCZUNIT) must be set on IVB.
>  	 * This implements the WaDisableRCZUnitClockGating:vlv workaround.
>  	 */
> -	I915_WRITE(GEN6_UCGCTL2,
> +	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL2,
>  		   GEN6_RCZUNIT_CLOCK_GATE_DISABLE);
>  
>  	/* WaDisableL3Bank2xClockGate:vlv
>  	 * Disabling L3 clock gating- MMIO 940c[25] = 1
>  	 * Set bit 25, to disable L3_BANK_2x_CLK_GATING */
> -	I915_WRITE(GEN7_UCGCTL4,
> -		   I915_READ(GEN7_UCGCTL4) | GEN7_L3BANK2X_CLOCK_GATE_DISABLE);
> +	intel_uncore_write(&dev_priv->uncore, GEN7_UCGCTL4,
> +		   intel_uncore_read(&dev_priv->uncore, GEN7_UCGCTL4) | GEN7_L3BANK2X_CLOCK_GATE_DISABLE);
>  
>  	/*
>  	 * WaDisableVLVClockGating_VBIIssue:vlv
>  	 * Disable clock gating on th GCFG unit to prevent a delay
>  	 * in the reporting of vblank events.
>  	 */
> -	I915_WRITE(VLV_GUNIT_CLOCK_GATE, GCFG_DIS);
> +	intel_uncore_write(&dev_priv->uncore, VLV_GUNIT_CLOCK_GATE, GCFG_DIS);
>  }
>  
>  static void chv_init_clock_gating(struct drm_i915_private *dev_priv)
>  {
>  	/* WaVSRefCountFullforceMissDisable:chv */
>  	/* WaDSRefCountFullforceMissDisable:chv */
> -	I915_WRITE(GEN7_FF_THREAD_MODE,
> -		   I915_READ(GEN7_FF_THREAD_MODE) &
> +	intel_uncore_write(&dev_priv->uncore, GEN7_FF_THREAD_MODE,
> +		   intel_uncore_read(&dev_priv->uncore, GEN7_FF_THREAD_MODE) &
>  		   ~(GEN8_FF_DS_REF_CNT_FFME | GEN7_FF_VS_REF_CNT_FFME));
>  
>  	/* WaDisableSemaphoreAndSyncFlipWait:chv */
> -	I915_WRITE(GEN6_RC_SLEEP_PSMI_CONTROL,
> +	intel_uncore_write(&dev_priv->uncore, GEN6_RC_SLEEP_PSMI_CONTROL,
>  		   _MASKED_BIT_ENABLE(GEN8_RC_SEMA_IDLE_MSG_DISABLE));
>  
>  	/* WaDisableCSUnitClockGating:chv */
> -	I915_WRITE(GEN6_UCGCTL1, I915_READ(GEN6_UCGCTL1) |
> +	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL1, intel_uncore_read(&dev_priv->uncore, GEN6_UCGCTL1) |
>  		   GEN6_CSUNIT_CLOCK_GATE_DISABLE);
>  
>  	/* WaDisableSDEUnitClockGating:chv */
> -	I915_WRITE(GEN8_UCGCTL6, I915_READ(GEN8_UCGCTL6) |
> +	intel_uncore_write(&dev_priv->uncore, GEN8_UCGCTL6, intel_uncore_read(&dev_priv->uncore, GEN8_UCGCTL6) |
>  		   GEN8_SDEUNIT_CLOCK_GATE_DISABLE);
>  
>  	/*
> @@ -7466,17 +7466,17 @@ static void g4x_init_clock_gating(struct drm_i915_private *dev_priv)
>  {
>  	u32 dspclk_gate;
>  
> -	I915_WRITE(RENCLK_GATE_D1, 0);
> -	I915_WRITE(RENCLK_GATE_D2, VF_UNIT_CLOCK_GATE_DISABLE |
> +	intel_uncore_write(&dev_priv->uncore, RENCLK_GATE_D1, 0);
> +	intel_uncore_write(&dev_priv->uncore, RENCLK_GATE_D2, VF_UNIT_CLOCK_GATE_DISABLE |
>  		   GS_UNIT_CLOCK_GATE_DISABLE |
>  		   CL_UNIT_CLOCK_GATE_DISABLE);
> -	I915_WRITE(RAMCLK_GATE_D, 0);
> +	intel_uncore_write(&dev_priv->uncore, RAMCLK_GATE_D, 0);
>  	dspclk_gate = VRHUNIT_CLOCK_GATE_DISABLE |
>  		OVRUNIT_CLOCK_GATE_DISABLE |
>  		OVCUNIT_CLOCK_GATE_DISABLE;
>  	if (IS_GM45(dev_priv))
>  		dspclk_gate |= DSSUNIT_CLOCK_GATE_DISABLE;
> -	I915_WRITE(DSPCLK_GATE_D, dspclk_gate);
> +	intel_uncore_write(&dev_priv->uncore, DSPCLK_GATE_D, dspclk_gate);
>  
>  	g4x_disable_trickle_feed(dev_priv);
>  }
> @@ -7497,49 +7497,49 @@ static void i965gm_init_clock_gating(struct drm_i915_private *dev_priv)
>  
>  static void i965g_init_clock_gating(struct drm_i915_private *dev_priv)
>  {
> -	I915_WRITE(RENCLK_GATE_D1, I965_RCZ_CLOCK_GATE_DISABLE |
> +	intel_uncore_write(&dev_priv->uncore, RENCLK_GATE_D1, I965_RCZ_CLOCK_GATE_DISABLE |
>  		   I965_RCC_CLOCK_GATE_DISABLE |
>  		   I965_RCPB_CLOCK_GATE_DISABLE |
>  		   I965_ISC_CLOCK_GATE_DISABLE |
>  		   I965_FBC_CLOCK_GATE_DISABLE);
> -	I915_WRITE(RENCLK_GATE_D2, 0);
> -	I915_WRITE(MI_ARB_STATE,
> +	intel_uncore_write(&dev_priv->uncore, RENCLK_GATE_D2, 0);
> +	intel_uncore_write(&dev_priv->uncore, MI_ARB_STATE,
>  		   _MASKED_BIT_ENABLE(MI_ARB_DISPLAY_TRICKLE_FEED_DISABLE));
>  }
>  
>  static void gen3_init_clock_gating(struct drm_i915_private *dev_priv)
>  {
> -	u32 dstate = I915_READ(D_STATE);
> +	u32 dstate = intel_uncore_read(&dev_priv->uncore, D_STATE);
>  
>  	dstate |= DSTATE_PLL_D3_OFF | DSTATE_GFX_CLOCK_GATING |
>  		DSTATE_DOT_CLOCK_GATING;
> -	I915_WRITE(D_STATE, dstate);
> +	intel_uncore_write(&dev_priv->uncore, D_STATE, dstate);
>  
>  	if (IS_PINEVIEW(dev_priv))
> -		I915_WRITE(ECOSKPD, _MASKED_BIT_ENABLE(ECO_GATING_CX_ONLY));
> +		intel_uncore_write(&dev_priv->uncore, ECOSKPD, _MASKED_BIT_ENABLE(ECO_GATING_CX_ONLY));
>  
>  	/* IIR "flip pending" means done if this bit is set */
> -	I915_WRITE(ECOSKPD, _MASKED_BIT_DISABLE(ECO_FLIP_DONE));
> +	intel_uncore_write(&dev_priv->uncore, ECOSKPD, _MASKED_BIT_DISABLE(ECO_FLIP_DONE));
>  
>  	/* interrupts should cause a wake up from C3 */
> -	I915_WRITE(INSTPM, _MASKED_BIT_ENABLE(INSTPM_AGPBUSY_INT_EN));
> +	intel_uncore_write(&dev_priv->uncore, INSTPM, _MASKED_BIT_ENABLE(INSTPM_AGPBUSY_INT_EN));
>  
>  	/* On GEN3 we really need to make sure the ARB C3 LP bit is set */
> -	I915_WRITE(MI_ARB_STATE, _MASKED_BIT_ENABLE(MI_ARB_C3_LP_WRITE_ENABLE));
> +	intel_uncore_write(&dev_priv->uncore, MI_ARB_STATE, _MASKED_BIT_ENABLE(MI_ARB_C3_LP_WRITE_ENABLE));
>  
> -	I915_WRITE(MI_ARB_STATE,
> +	intel_uncore_write(&dev_priv->uncore, MI_ARB_STATE,
>  		   _MASKED_BIT_ENABLE(MI_ARB_DISPLAY_TRICKLE_FEED_DISABLE));
>  }
>  
>  static void i85x_init_clock_gating(struct drm_i915_private *dev_priv)
>  {
> -	I915_WRITE(RENCLK_GATE_D1, SV_CLOCK_GATE_DISABLE);
> +	intel_uncore_write(&dev_priv->uncore, RENCLK_GATE_D1, SV_CLOCK_GATE_DISABLE);
>  
>  	/* interrupts should cause a wake up from C3 */
> -	I915_WRITE(MI_STATE, _MASKED_BIT_ENABLE(MI_AGPBUSY_INT_EN) |
> +	intel_uncore_write(&dev_priv->uncore, MI_STATE, _MASKED_BIT_ENABLE(MI_AGPBUSY_INT_EN) |
>  		   _MASKED_BIT_DISABLE(MI_AGPBUSY_830_MODE));
>  
> -	I915_WRITE(MEM_MODE,
> +	intel_uncore_write(&dev_priv->uncore, MEM_MODE,
>  		   _MASKED_BIT_ENABLE(MEM_DISPLAY_TRICKLE_FEED_DISABLE));
>  
>  	/*
> @@ -7549,13 +7549,13 @@ static void i85x_init_clock_gating(struct drm_i915_private *dev_priv)
>  	 * abosultely nothing) would not allow FBC to recompress
>  	 * until a 2D blit occurs.
>  	 */
> -	I915_WRITE(SCPD0,
> +	intel_uncore_write(&dev_priv->uncore, SCPD0,
>  		   _MASKED_BIT_ENABLE(SCPD_FBC_IGNORE_3D));
>  }
>  
>  static void i830_init_clock_gating(struct drm_i915_private *dev_priv)
>  {
> -	I915_WRITE(MEM_MODE,
> +	intel_uncore_write(&dev_priv->uncore, MEM_MODE,
>  		   _MASKED_BIT_ENABLE(MEM_DISPLAY_A_TRICKLE_FEED_DISABLE) |
>  		   _MASKED_BIT_ENABLE(MEM_DISPLAY_B_TRICKLE_FEED_DISABLE));
>  }
> -- 
> 2.20.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Intel-gfx] [PATCH 9/9] drm/i915: remove last traces of I915_READ(), I915_WRITE() and POSTING_READ()
  2020-11-12 11:44 ` [Intel-gfx] [PATCH 9/9] drm/i915: remove last traces of I915_READ(), I915_WRITE() and POSTING_READ() Jani Nikula
@ 2020-11-12 21:02   ` Rodrigo Vivi
  0 siblings, 0 replies; 26+ messages in thread
From: Rodrigo Vivi @ 2020-11-12 21:02 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

On Thu, Nov 12, 2020 at 01:44:42PM +0200, Jani Nikula wrote:
> Good riddance! Remove the macros and their remaining references in
> comments.
> 
> The following functions should be used instead, depending on the use
> case:
> 
> - intel_uncore_read(), intel_uncore_write(), intel_uncore_posting_read()
> 
> - intel_de_read(), intel_de_write(), intel_de_posting_read()
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> ---
>  drivers/gpu/drm/i915/display/intel_dvo.c | 4 ----
>  drivers/gpu/drm/i915/i915_drv.h          | 8 --------
>  drivers/gpu/drm/i915/i915_reg.h          | 6 ++++--
>  drivers/gpu/drm/i915/intel_sideband.c    | 4 ++--
>  drivers/gpu/drm/i915/intel_uncore.c      | 2 +-
>  drivers/gpu/drm/i915/intel_uncore.h      | 4 ++--
>  6 files changed, 9 insertions(+), 19 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_dvo.c b/drivers/gpu/drm/i915/display/intel_dvo.c
> index 237dbb1ba0ee..090cd76266c6 100644
> --- a/drivers/gpu/drm/i915/display/intel_dvo.c
> +++ b/drivers/gpu/drm/i915/display/intel_dvo.c
> @@ -301,12 +301,8 @@ static void intel_dvo_pre_enable(struct intel_atomic_state *state,
>  	if (adjusted_mode->flags & DRM_MODE_FLAG_PVSYNC)
>  		dvo_val |= DVO_VSYNC_ACTIVE_HIGH;
>  
> -	/*I915_WRITE(DVOB_SRCDIM,
> -	  (adjusted_mode->crtc_hdisplay << DVO_SRCDIM_HORIZONTAL_SHIFT) |
> -	  (adjusted_mode->crtc_vdisplay << DVO_SRCDIM_VERTICAL_SHIFT));*/
>  	intel_de_write(dev_priv, dvo_srcdim_reg,
>  		       (adjusted_mode->crtc_hdisplay << DVO_SRCDIM_HORIZONTAL_SHIFT) | (adjusted_mode->crtc_vdisplay << DVO_SRCDIM_VERTICAL_SHIFT));
> -	/*I915_WRITE(DVOB, dvo_val);*/
>  	intel_de_write(dev_priv, dvo_reg, dvo_val);
>  }
>  
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index fecb5899cbac..42f60b112436 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -1970,14 +1970,6 @@ mkwrite_device_info(struct drm_i915_private *dev_priv)
>  int i915_reg_read_ioctl(struct drm_device *dev, void *data,
>  			struct drm_file *file);
>  
> -#define __I915_REG_OP(op__, dev_priv__, ...) \
> -	intel_uncore_##op__(&(dev_priv__)->uncore, __VA_ARGS__)
> -
> -#define I915_READ(reg__)	 __I915_REG_OP(read, dev_priv, (reg__))
> -#define I915_WRITE(reg__, val__) __I915_REG_OP(write, dev_priv, (reg__), (val__))
> -
> -#define POSTING_READ(reg__)	__I915_REG_OP(posting_read, dev_priv, (reg__))
> -
>  /* i915_mm.c */
>  int remap_io_mapping(struct vm_area_struct *vma,
>  		     unsigned long addr, unsigned long pfn, unsigned long size,
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 7ea70b7ffcc6..568633448202 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -10849,8 +10849,10 @@ enum skl_power_gate {
>  #define  CNL_DRAM_RANK_3			(0x2 << 9)
>  #define  CNL_DRAM_RANK_4			(0x3 << 9)
>  
> -/* Please see hsw_read_dcomp() and hsw_write_dcomp() before using this register,
> - * since on HSW we can't write to it using I915_WRITE. */
> +/*
> + * Please see hsw_read_dcomp() and hsw_write_dcomp() before using this register,
> + * since on HSW we can't write to it using intel_uncore_write.
> + */
>  #define D_COMP_HSW			_MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5F0C)
>  #define D_COMP_BDW			_MMIO(0x138144)
>  #define  D_COMP_RCOMP_IN_PROGRESS	(1 << 9)
> diff --git a/drivers/gpu/drm/i915/intel_sideband.c b/drivers/gpu/drm/i915/intel_sideband.c
> index 02ebf5a04a9b..0ec0cf191955 100644
> --- a/drivers/gpu/drm/i915/intel_sideband.c
> +++ b/drivers/gpu/drm/i915/intel_sideband.c
> @@ -404,8 +404,8 @@ static int __sandybridge_pcode_rw(struct drm_i915_private *i915,
>  	lockdep_assert_held(&i915->sb_lock);
>  
>  	/*
> -	 * GEN6_PCODE_* are outside of the forcewake domain, we can
> -	 * use te fw I915_READ variants to reduce the amount of work
> +	 * GEN6_PCODE_* are outside of the forcewake domain, we can use
> +	 * intel_uncore_read/write_fw variants to reduce the amount of work
>  	 * required when reading/writing.
>  	 */
>  
> diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
> index ef40edfff412..9ac501bcfdad 100644
> --- a/drivers/gpu/drm/i915/intel_uncore.c
> +++ b/drivers/gpu/drm/i915/intel_uncore.c
> @@ -2126,7 +2126,7 @@ int __intel_wait_for_register_fw(struct intel_uncore *uncore,
>   * This routine waits until the target register @reg contains the expected
>   * @value after applying the @mask, i.e. it waits until ::
>   *
> - *     (I915_READ(reg) & mask) == value
> + *     (intel_uncore_read(uncore, reg) & mask) == value
>   *
>   * Otherwise, the wait will timeout after @timeout_ms milliseconds.
>   *
> diff --git a/drivers/gpu/drm/i915/intel_uncore.h b/drivers/gpu/drm/i915/intel_uncore.h
> index 5dcb7f4183b2..59f0da8f1fbb 100644
> --- a/drivers/gpu/drm/i915/intel_uncore.h
> +++ b/drivers/gpu/drm/i915/intel_uncore.h
> @@ -318,8 +318,8 @@ __uncore_write(write_notrace, 32, l, false)
>   * will be implemented using 2 32-bit writes in an arbitrary order with
>   * an arbitrary delay between them. This can cause the hardware to
>   * act upon the intermediate value, possibly leading to corruption and
> - * machine death. For this reason we do not support I915_WRITE64, or
> - * uncore->funcs.mmio_writeq.
> + * machine death. For this reason we do not support intel_uncore_write64,
> + * or uncore->funcs.mmio_writeq.
>   *
>   * When reading a 64-bit value as two 32-bit values, the delay may cause
>   * the two reads to mismatch, e.g. a timestamp overflowing. Also note that
> -- 
> 2.20.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Intel-gfx] [PATCH 7/9] drm/i915/pm: replace I915_READ()/WRITE() with intel_uncore_read()/write()
  2020-11-12 21:00   ` Rodrigo Vivi
@ 2020-11-13  7:47     ` Jani Nikula
  2020-11-14 20:34       ` Rodrigo Vivi
  0 siblings, 1 reply; 26+ messages in thread
From: Jani Nikula @ 2020-11-13  7:47 UTC (permalink / raw)
  To: Rodrigo Vivi; +Cc: intel-gfx

On Thu, 12 Nov 2020, Rodrigo Vivi <rodrigo.vivi@intel.com> wrote:
> On Thu, Nov 12, 2020 at 01:44:40PM +0200, Jani Nikula wrote:
>> Arguably some of these should use intel_de_read() or intel_de_write(),
>> however not all. Prioritize I915_READ() and I915_WRITE() removal in
>> general over migrating to the pedantically correct replacements right
>> away.
>> 
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> ---
>>  drivers/gpu/drm/i915/intel_pm.c | 552 ++++++++++++++++----------------
>>  1 file changed, 276 insertions(+), 276 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
>> index bbec56f97832..c0ed82665706 100644
>> --- a/drivers/gpu/drm/i915/intel_pm.c
>> +++ b/drivers/gpu/drm/i915/intel_pm.c
>> @@ -81,24 +81,24 @@ static void gen9_init_clock_gating(struct drm_i915_private *dev_priv)
>>  		 * Must match Sampler, Pixel Back End, and Media. See
>>  		 * WaCompressedResourceSamplerPbeMediaNewHashMode.
>>  		 */
>> -		I915_WRITE(CHICKEN_PAR1_1,
>> -			   I915_READ(CHICKEN_PAR1_1) |
>> +		intel_uncore_write(&dev_priv->uncore, CHICKEN_PAR1_1,
>> +			   intel_uncore_read(&dev_priv->uncore, CHICKEN_PAR1_1) |
>
> why not converting them to rmw?

That's actually a functional change I didn't want to make. The rmw
function only writes if the value has changed, while the code currently
writes unconditionally. I'd have to check the registers whether that
makes a difference. Likely not for most registers, but also don't want
to introduce subtle bugs with a superficially non-functional conversion.

BR,
Jani.


>
>>  			   SKL_DE_COMPRESSED_HASH_MODE);
>>  	}
>>  
>>  	/* See Bspec note for PSR2_CTL bit 31, Wa#828:skl,bxt,kbl,cfl */
>> -	I915_WRITE(CHICKEN_PAR1_1,
>> -		   I915_READ(CHICKEN_PAR1_1) | SKL_EDP_PSR_FIX_RDWRAP);
>> +	intel_uncore_write(&dev_priv->uncore, CHICKEN_PAR1_1,
>> +		   intel_uncore_read(&dev_priv->uncore, CHICKEN_PAR1_1) | SKL_EDP_PSR_FIX_RDWRAP);
>>  
>>  	/* WaEnableChickenDCPR:skl,bxt,kbl,glk,cfl */
>> -	I915_WRITE(GEN8_CHICKEN_DCPR_1,
>> -		   I915_READ(GEN8_CHICKEN_DCPR_1) | MASK_WAKEMEM);
>> +	intel_uncore_write(&dev_priv->uncore, GEN8_CHICKEN_DCPR_1,
>> +		   intel_uncore_read(&dev_priv->uncore, GEN8_CHICKEN_DCPR_1) | MASK_WAKEMEM);
>>  
>>  	/*
>>  	 * WaFbcWakeMemOn:skl,bxt,kbl,glk,cfl
>>  	 * Display WA #0859: skl,bxt,kbl,glk,cfl
>>  	 */
>> -	I915_WRITE(DISP_ARB_CTL, I915_READ(DISP_ARB_CTL) |
>> +	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
>>  		   DISP_FBC_MEMORY_WAKE);
>>  }
>>  
>> @@ -107,21 +107,21 @@ static void bxt_init_clock_gating(struct drm_i915_private *dev_priv)
>>  	gen9_init_clock_gating(dev_priv);
>>  
>>  	/* WaDisableSDEUnitClockGating:bxt */
>> -	I915_WRITE(GEN8_UCGCTL6, I915_READ(GEN8_UCGCTL6) |
>> +	intel_uncore_write(&dev_priv->uncore, GEN8_UCGCTL6, intel_uncore_read(&dev_priv->uncore, GEN8_UCGCTL6) |
>>  		   GEN8_SDEUNIT_CLOCK_GATE_DISABLE);
>>  
>>  	/*
>>  	 * FIXME:
>>  	 * GEN8_HDCUNIT_CLOCK_GATE_DISABLE_HDCREQ applies on 3x6 GT SKUs only.
>>  	 */
>> -	I915_WRITE(GEN8_UCGCTL6, I915_READ(GEN8_UCGCTL6) |
>> +	intel_uncore_write(&dev_priv->uncore, GEN8_UCGCTL6, intel_uncore_read(&dev_priv->uncore, GEN8_UCGCTL6) |
>>  		   GEN8_HDCUNIT_CLOCK_GATE_DISABLE_HDCREQ);
>>  
>>  	/*
>>  	 * Wa: Backlight PWM may stop in the asserted state, causing backlight
>>  	 * to stay fully on.
>>  	 */
>> -	I915_WRITE(GEN9_CLKGATE_DIS_0, I915_READ(GEN9_CLKGATE_DIS_0) |
>> +	intel_uncore_write(&dev_priv->uncore, GEN9_CLKGATE_DIS_0, intel_uncore_read(&dev_priv->uncore, GEN9_CLKGATE_DIS_0) |
>>  		   PWM1_GATING_DIS | PWM2_GATING_DIS);
>>  
>>  	/*
>> @@ -130,20 +130,20 @@ static void bxt_init_clock_gating(struct drm_i915_private *dev_priv)
>>  	 * is off and a MMIO access is attempted by any privilege
>>  	 * application, using batch buffers or any other means.
>>  	 */
>> -	I915_WRITE(RM_TIMEOUT, MMIO_TIMEOUT_US(950));
>> +	intel_uncore_write(&dev_priv->uncore, RM_TIMEOUT, MMIO_TIMEOUT_US(950));
>>  
>>  	/*
>>  	 * WaFbcTurnOffFbcWatermark:bxt
>>  	 * Display WA #0562: bxt
>>  	 */
>> -	I915_WRITE(DISP_ARB_CTL, I915_READ(DISP_ARB_CTL) |
>> +	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
>>  		   DISP_FBC_WM_DIS);
>>  
>>  	/*
>>  	 * WaFbcHighMemBwCorruptionAvoidance:bxt
>>  	 * Display WA #0883: bxt
>>  	 */
>> -	I915_WRITE(ILK_DPFC_CHICKEN, I915_READ(ILK_DPFC_CHICKEN) |
>> +	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN, intel_uncore_read(&dev_priv->uncore, ILK_DPFC_CHICKEN) |
>>  		   ILK_DPFC_DISABLE_DUMMY0);
>>  }
>>  
>> @@ -156,7 +156,7 @@ static void glk_init_clock_gating(struct drm_i915_private *dev_priv)
>>  	 * Backlight PWM may stop in the asserted state, causing backlight
>>  	 * to stay fully on.
>>  	 */
>> -	I915_WRITE(GEN9_CLKGATE_DIS_0, I915_READ(GEN9_CLKGATE_DIS_0) |
>> +	intel_uncore_write(&dev_priv->uncore, GEN9_CLKGATE_DIS_0, intel_uncore_read(&dev_priv->uncore, GEN9_CLKGATE_DIS_0) |
>>  		   PWM1_GATING_DIS | PWM2_GATING_DIS);
>>  }
>>  
>> @@ -164,7 +164,7 @@ static void pnv_get_mem_freq(struct drm_i915_private *dev_priv)
>>  {
>>  	u32 tmp;
>>  
>> -	tmp = I915_READ(CLKCFG);
>> +	tmp = intel_uncore_read(&dev_priv->uncore, CLKCFG);
>>  
>>  	switch (tmp & CLKCFG_FSB_MASK) {
>>  	case CLKCFG_FSB_533:
>> @@ -194,7 +194,7 @@ static void pnv_get_mem_freq(struct drm_i915_private *dev_priv)
>>  	}
>>  
>>  	/* detect pineview DDR3 setting */
>> -	tmp = I915_READ(CSHRDDR3CTL);
>> +	tmp = intel_uncore_read(&dev_priv->uncore, CSHRDDR3CTL);
>>  	dev_priv->is_ddr3 = (tmp & CSHRDDR3CTL_DDR3) ? 1 : 0;
>>  }
>>  
>> @@ -365,39 +365,39 @@ static bool _intel_set_memory_cxsr(struct drm_i915_private *dev_priv, bool enabl
>>  	u32 val;
>>  
>>  	if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
>> -		was_enabled = I915_READ(FW_BLC_SELF_VLV) & FW_CSPWRDWNEN;
>> -		I915_WRITE(FW_BLC_SELF_VLV, enable ? FW_CSPWRDWNEN : 0);
>> -		POSTING_READ(FW_BLC_SELF_VLV);
>> +		was_enabled = intel_uncore_read(&dev_priv->uncore, FW_BLC_SELF_VLV) & FW_CSPWRDWNEN;
>> +		intel_uncore_write(&dev_priv->uncore, FW_BLC_SELF_VLV, enable ? FW_CSPWRDWNEN : 0);
>> +		intel_uncore_posting_read(&dev_priv->uncore, FW_BLC_SELF_VLV);
>>  	} else if (IS_G4X(dev_priv) || IS_I965GM(dev_priv)) {
>> -		was_enabled = I915_READ(FW_BLC_SELF) & FW_BLC_SELF_EN;
>> -		I915_WRITE(FW_BLC_SELF, enable ? FW_BLC_SELF_EN : 0);
>> -		POSTING_READ(FW_BLC_SELF);
>> +		was_enabled = intel_uncore_read(&dev_priv->uncore, FW_BLC_SELF) & FW_BLC_SELF_EN;
>> +		intel_uncore_write(&dev_priv->uncore, FW_BLC_SELF, enable ? FW_BLC_SELF_EN : 0);
>> +		intel_uncore_posting_read(&dev_priv->uncore, FW_BLC_SELF);
>>  	} else if (IS_PINEVIEW(dev_priv)) {
>> -		val = I915_READ(DSPFW3);
>> +		val = intel_uncore_read(&dev_priv->uncore, DSPFW3);
>>  		was_enabled = val & PINEVIEW_SELF_REFRESH_EN;
>>  		if (enable)
>>  			val |= PINEVIEW_SELF_REFRESH_EN;
>>  		else
>>  			val &= ~PINEVIEW_SELF_REFRESH_EN;
>> -		I915_WRITE(DSPFW3, val);
>> -		POSTING_READ(DSPFW3);
>> +		intel_uncore_write(&dev_priv->uncore, DSPFW3, val);
>> +		intel_uncore_posting_read(&dev_priv->uncore, DSPFW3);
>>  	} else if (IS_I945G(dev_priv) || IS_I945GM(dev_priv)) {
>> -		was_enabled = I915_READ(FW_BLC_SELF) & FW_BLC_SELF_EN;
>> +		was_enabled = intel_uncore_read(&dev_priv->uncore, FW_BLC_SELF) & FW_BLC_SELF_EN;
>>  		val = enable ? _MASKED_BIT_ENABLE(FW_BLC_SELF_EN) :
>>  			       _MASKED_BIT_DISABLE(FW_BLC_SELF_EN);
>> -		I915_WRITE(FW_BLC_SELF, val);
>> -		POSTING_READ(FW_BLC_SELF);
>> +		intel_uncore_write(&dev_priv->uncore, FW_BLC_SELF, val);
>> +		intel_uncore_posting_read(&dev_priv->uncore, FW_BLC_SELF);
>>  	} else if (IS_I915GM(dev_priv)) {
>>  		/*
>>  		 * FIXME can't find a bit like this for 915G, and
>>  		 * and yet it does have the related watermark in
>>  		 * FW_BLC_SELF. What's going on?
>>  		 */
>> -		was_enabled = I915_READ(INSTPM) & INSTPM_SELF_EN;
>> +		was_enabled = intel_uncore_read(&dev_priv->uncore, INSTPM) & INSTPM_SELF_EN;
>>  		val = enable ? _MASKED_BIT_ENABLE(INSTPM_SELF_EN) :
>>  			       _MASKED_BIT_DISABLE(INSTPM_SELF_EN);
>> -		I915_WRITE(INSTPM, val);
>> -		POSTING_READ(INSTPM);
>> +		intel_uncore_write(&dev_priv->uncore, INSTPM, val);
>> +		intel_uncore_posting_read(&dev_priv->uncore, INSTPM);
>>  	} else {
>>  		return false;
>>  	}
>> @@ -493,20 +493,20 @@ static void vlv_get_fifo_size(struct intel_crtc_state *crtc_state)
>>  
>>  	switch (pipe) {
>>  	case PIPE_A:
>> -		dsparb = I915_READ(DSPARB);
>> -		dsparb2 = I915_READ(DSPARB2);
>> +		dsparb = intel_uncore_read(&dev_priv->uncore, DSPARB);
>> +		dsparb2 = intel_uncore_read(&dev_priv->uncore, DSPARB2);
>>  		sprite0_start = VLV_FIFO_START(dsparb, dsparb2, 0, 0);
>>  		sprite1_start = VLV_FIFO_START(dsparb, dsparb2, 8, 4);
>>  		break;
>>  	case PIPE_B:
>> -		dsparb = I915_READ(DSPARB);
>> -		dsparb2 = I915_READ(DSPARB2);
>> +		dsparb = intel_uncore_read(&dev_priv->uncore, DSPARB);
>> +		dsparb2 = intel_uncore_read(&dev_priv->uncore, DSPARB2);
>>  		sprite0_start = VLV_FIFO_START(dsparb, dsparb2, 16, 8);
>>  		sprite1_start = VLV_FIFO_START(dsparb, dsparb2, 24, 12);
>>  		break;
>>  	case PIPE_C:
>> -		dsparb2 = I915_READ(DSPARB2);
>> -		dsparb3 = I915_READ(DSPARB3);
>> +		dsparb2 = intel_uncore_read(&dev_priv->uncore, DSPARB2);
>> +		dsparb3 = intel_uncore_read(&dev_priv->uncore, DSPARB3);
>>  		sprite0_start = VLV_FIFO_START(dsparb3, dsparb2, 0, 16);
>>  		sprite1_start = VLV_FIFO_START(dsparb3, dsparb2, 8, 20);
>>  		break;
>> @@ -524,7 +524,7 @@ static void vlv_get_fifo_size(struct intel_crtc_state *crtc_state)
>>  static int i9xx_get_fifo_size(struct drm_i915_private *dev_priv,
>>  			      enum i9xx_plane_id i9xx_plane)
>>  {
>> -	u32 dsparb = I915_READ(DSPARB);
>> +	u32 dsparb = intel_uncore_read(&dev_priv->uncore, DSPARB);
>>  	int size;
>>  
>>  	size = dsparb & 0x7f;
>> @@ -540,7 +540,7 @@ static int i9xx_get_fifo_size(struct drm_i915_private *dev_priv,
>>  static int i830_get_fifo_size(struct drm_i915_private *dev_priv,
>>  			      enum i9xx_plane_id i9xx_plane)
>>  {
>> -	u32 dsparb = I915_READ(DSPARB);
>> +	u32 dsparb = intel_uncore_read(&dev_priv->uncore, DSPARB);
>>  	int size;
>>  
>>  	size = dsparb & 0x1ff;
>> @@ -557,7 +557,7 @@ static int i830_get_fifo_size(struct drm_i915_private *dev_priv,
>>  static int i845_get_fifo_size(struct drm_i915_private *dev_priv,
>>  			      enum i9xx_plane_id i9xx_plane)
>>  {
>> -	u32 dsparb = I915_READ(DSPARB);
>> +	u32 dsparb = intel_uncore_read(&dev_priv->uncore, DSPARB);
>>  	int size;
>>  
>>  	size = dsparb & 0x7f;
>> @@ -910,38 +910,38 @@ static void pnv_update_wm(struct intel_crtc *unused_crtc)
>>  		wm = intel_calculate_wm(clock, &pnv_display_wm,
>>  					pnv_display_wm.fifo_size,
>>  					cpp, latency->display_sr);
>> -		reg = I915_READ(DSPFW1);
>> +		reg = intel_uncore_read(&dev_priv->uncore, DSPFW1);
>>  		reg &= ~DSPFW_SR_MASK;
>>  		reg |= FW_WM(wm, SR);
>> -		I915_WRITE(DSPFW1, reg);
>> +		intel_uncore_write(&dev_priv->uncore, DSPFW1, reg);
>>  		drm_dbg_kms(&dev_priv->drm, "DSPFW1 register is %x\n", reg);
>>  
>>  		/* cursor SR */
>>  		wm = intel_calculate_wm(clock, &pnv_cursor_wm,
>>  					pnv_display_wm.fifo_size,
>>  					4, latency->cursor_sr);
>> -		reg = I915_READ(DSPFW3);
>> +		reg = intel_uncore_read(&dev_priv->uncore, DSPFW3);
>>  		reg &= ~DSPFW_CURSOR_SR_MASK;
>>  		reg |= FW_WM(wm, CURSOR_SR);
>> -		I915_WRITE(DSPFW3, reg);
>> +		intel_uncore_write(&dev_priv->uncore, DSPFW3, reg);
>>  
>>  		/* Display HPLL off SR */
>>  		wm = intel_calculate_wm(clock, &pnv_display_hplloff_wm,
>>  					pnv_display_hplloff_wm.fifo_size,
>>  					cpp, latency->display_hpll_disable);
>> -		reg = I915_READ(DSPFW3);
>> +		reg = intel_uncore_read(&dev_priv->uncore, DSPFW3);
>>  		reg &= ~DSPFW_HPLL_SR_MASK;
>>  		reg |= FW_WM(wm, HPLL_SR);
>> -		I915_WRITE(DSPFW3, reg);
>> +		intel_uncore_write(&dev_priv->uncore, DSPFW3, reg);
>>  
>>  		/* cursor HPLL off SR */
>>  		wm = intel_calculate_wm(clock, &pnv_cursor_hplloff_wm,
>>  					pnv_display_hplloff_wm.fifo_size,
>>  					4, latency->cursor_hpll_disable);
>> -		reg = I915_READ(DSPFW3);
>> +		reg = intel_uncore_read(&dev_priv->uncore, DSPFW3);
>>  		reg &= ~DSPFW_HPLL_CURSOR_MASK;
>>  		reg |= FW_WM(wm, HPLL_CURSOR);
>> -		I915_WRITE(DSPFW3, reg);
>> +		intel_uncore_write(&dev_priv->uncore, DSPFW3, reg);
>>  		drm_dbg_kms(&dev_priv->drm, "DSPFW3 register is %x\n", reg);
>>  
>>  		intel_set_memory_cxsr(dev_priv, true);
>> @@ -975,25 +975,25 @@ static void g4x_write_wm_values(struct drm_i915_private *dev_priv,
>>  	for_each_pipe(dev_priv, pipe)
>>  		trace_g4x_wm(intel_get_crtc_for_pipe(dev_priv, pipe), wm);
>>  
>> -	I915_WRITE(DSPFW1,
>> +	intel_uncore_write(&dev_priv->uncore, DSPFW1,
>>  		   FW_WM(wm->sr.plane, SR) |
>>  		   FW_WM(wm->pipe[PIPE_B].plane[PLANE_CURSOR], CURSORB) |
>>  		   FW_WM(wm->pipe[PIPE_B].plane[PLANE_PRIMARY], PLANEB) |
>>  		   FW_WM(wm->pipe[PIPE_A].plane[PLANE_PRIMARY], PLANEA));
>> -	I915_WRITE(DSPFW2,
>> +	intel_uncore_write(&dev_priv->uncore, DSPFW2,
>>  		   (wm->fbc_en ? DSPFW_FBC_SR_EN : 0) |
>>  		   FW_WM(wm->sr.fbc, FBC_SR) |
>>  		   FW_WM(wm->hpll.fbc, FBC_HPLL_SR) |
>>  		   FW_WM(wm->pipe[PIPE_B].plane[PLANE_SPRITE0], SPRITEB) |
>>  		   FW_WM(wm->pipe[PIPE_A].plane[PLANE_CURSOR], CURSORA) |
>>  		   FW_WM(wm->pipe[PIPE_A].plane[PLANE_SPRITE0], SPRITEA));
>> -	I915_WRITE(DSPFW3,
>> +	intel_uncore_write(&dev_priv->uncore, DSPFW3,
>>  		   (wm->hpll_en ? DSPFW_HPLL_SR_EN : 0) |
>>  		   FW_WM(wm->sr.cursor, CURSOR_SR) |
>>  		   FW_WM(wm->hpll.cursor, HPLL_CURSOR) |
>>  		   FW_WM(wm->hpll.plane, HPLL_SR));
>>  
>> -	POSTING_READ(DSPFW1);
>> +	intel_uncore_posting_read(&dev_priv->uncore, DSPFW1);
>>  }
>>  
>>  #define FW_WM_VLV(value, plane) \
>> @@ -1007,7 +1007,7 @@ static void vlv_write_wm_values(struct drm_i915_private *dev_priv,
>>  	for_each_pipe(dev_priv, pipe) {
>>  		trace_vlv_wm(intel_get_crtc_for_pipe(dev_priv, pipe), wm);
>>  
>> -		I915_WRITE(VLV_DDL(pipe),
>> +		intel_uncore_write(&dev_priv->uncore, VLV_DDL(pipe),
>>  			   (wm->ddl[pipe].plane[PLANE_CURSOR] << DDL_CURSOR_SHIFT) |
>>  			   (wm->ddl[pipe].plane[PLANE_SPRITE1] << DDL_SPRITE_SHIFT(1)) |
>>  			   (wm->ddl[pipe].plane[PLANE_SPRITE0] << DDL_SPRITE_SHIFT(0)) |
>> @@ -1019,35 +1019,35 @@ static void vlv_write_wm_values(struct drm_i915_private *dev_priv,
>>  	 * high order bits so that there are no out of bounds values
>>  	 * present in the registers during the reprogramming.
>>  	 */
>> -	I915_WRITE(DSPHOWM, 0);
>> -	I915_WRITE(DSPHOWM1, 0);
>> -	I915_WRITE(DSPFW4, 0);
>> -	I915_WRITE(DSPFW5, 0);
>> -	I915_WRITE(DSPFW6, 0);
>> +	intel_uncore_write(&dev_priv->uncore, DSPHOWM, 0);
>> +	intel_uncore_write(&dev_priv->uncore, DSPHOWM1, 0);
>> +	intel_uncore_write(&dev_priv->uncore, DSPFW4, 0);
>> +	intel_uncore_write(&dev_priv->uncore, DSPFW5, 0);
>> +	intel_uncore_write(&dev_priv->uncore, DSPFW6, 0);
>>  
>> -	I915_WRITE(DSPFW1,
>> +	intel_uncore_write(&dev_priv->uncore, DSPFW1,
>>  		   FW_WM(wm->sr.plane, SR) |
>>  		   FW_WM(wm->pipe[PIPE_B].plane[PLANE_CURSOR], CURSORB) |
>>  		   FW_WM_VLV(wm->pipe[PIPE_B].plane[PLANE_PRIMARY], PLANEB) |
>>  		   FW_WM_VLV(wm->pipe[PIPE_A].plane[PLANE_PRIMARY], PLANEA));
>> -	I915_WRITE(DSPFW2,
>> +	intel_uncore_write(&dev_priv->uncore, DSPFW2,
>>  		   FW_WM_VLV(wm->pipe[PIPE_A].plane[PLANE_SPRITE1], SPRITEB) |
>>  		   FW_WM(wm->pipe[PIPE_A].plane[PLANE_CURSOR], CURSORA) |
>>  		   FW_WM_VLV(wm->pipe[PIPE_A].plane[PLANE_SPRITE0], SPRITEA));
>> -	I915_WRITE(DSPFW3,
>> +	intel_uncore_write(&dev_priv->uncore, DSPFW3,
>>  		   FW_WM(wm->sr.cursor, CURSOR_SR));
>>  
>>  	if (IS_CHERRYVIEW(dev_priv)) {
>> -		I915_WRITE(DSPFW7_CHV,
>> +		intel_uncore_write(&dev_priv->uncore, DSPFW7_CHV,
>>  			   FW_WM_VLV(wm->pipe[PIPE_B].plane[PLANE_SPRITE1], SPRITED) |
>>  			   FW_WM_VLV(wm->pipe[PIPE_B].plane[PLANE_SPRITE0], SPRITEC));
>> -		I915_WRITE(DSPFW8_CHV,
>> +		intel_uncore_write(&dev_priv->uncore, DSPFW8_CHV,
>>  			   FW_WM_VLV(wm->pipe[PIPE_C].plane[PLANE_SPRITE1], SPRITEF) |
>>  			   FW_WM_VLV(wm->pipe[PIPE_C].plane[PLANE_SPRITE0], SPRITEE));
>> -		I915_WRITE(DSPFW9_CHV,
>> +		intel_uncore_write(&dev_priv->uncore, DSPFW9_CHV,
>>  			   FW_WM_VLV(wm->pipe[PIPE_C].plane[PLANE_PRIMARY], PLANEC) |
>>  			   FW_WM(wm->pipe[PIPE_C].plane[PLANE_CURSOR], CURSORC));
>> -		I915_WRITE(DSPHOWM,
>> +		intel_uncore_write(&dev_priv->uncore, DSPHOWM,
>>  			   FW_WM(wm->sr.plane >> 9, SR_HI) |
>>  			   FW_WM(wm->pipe[PIPE_C].plane[PLANE_SPRITE1] >> 8, SPRITEF_HI) |
>>  			   FW_WM(wm->pipe[PIPE_C].plane[PLANE_SPRITE0] >> 8, SPRITEE_HI) |
>> @@ -1059,10 +1059,10 @@ static void vlv_write_wm_values(struct drm_i915_private *dev_priv,
>>  			   FW_WM(wm->pipe[PIPE_A].plane[PLANE_SPRITE0] >> 8, SPRITEA_HI) |
>>  			   FW_WM(wm->pipe[PIPE_A].plane[PLANE_PRIMARY] >> 8, PLANEA_HI));
>>  	} else {
>> -		I915_WRITE(DSPFW7,
>> +		intel_uncore_write(&dev_priv->uncore, DSPFW7,
>>  			   FW_WM_VLV(wm->pipe[PIPE_B].plane[PLANE_SPRITE1], SPRITED) |
>>  			   FW_WM_VLV(wm->pipe[PIPE_B].plane[PLANE_SPRITE0], SPRITEC));
>> -		I915_WRITE(DSPHOWM,
>> +		intel_uncore_write(&dev_priv->uncore, DSPHOWM,
>>  			   FW_WM(wm->sr.plane >> 9, SR_HI) |
>>  			   FW_WM(wm->pipe[PIPE_B].plane[PLANE_SPRITE1] >> 8, SPRITED_HI) |
>>  			   FW_WM(wm->pipe[PIPE_B].plane[PLANE_SPRITE0] >> 8, SPRITEC_HI) |
>> @@ -1072,7 +1072,7 @@ static void vlv_write_wm_values(struct drm_i915_private *dev_priv,
>>  			   FW_WM(wm->pipe[PIPE_A].plane[PLANE_PRIMARY] >> 8, PLANEA_HI));
>>  	}
>>  
>> -	POSTING_READ(DSPFW1);
>> +	intel_uncore_posting_read(&dev_priv->uncore, DSPFW1);
>>  }
>>  
>>  #undef FW_WM_VLV
>> @@ -2309,14 +2309,14 @@ static void i965_update_wm(struct intel_crtc *unused_crtc)
>>  		    srwm);
>>  
>>  	/* 965 has limitations... */
>> -	I915_WRITE(DSPFW1, FW_WM(srwm, SR) |
>> +	intel_uncore_write(&dev_priv->uncore, DSPFW1, FW_WM(srwm, SR) |
>>  		   FW_WM(8, CURSORB) |
>>  		   FW_WM(8, PLANEB) |
>>  		   FW_WM(8, PLANEA));
>> -	I915_WRITE(DSPFW2, FW_WM(8, CURSORA) |
>> +	intel_uncore_write(&dev_priv->uncore, DSPFW2, FW_WM(8, CURSORA) |
>>  		   FW_WM(8, PLANEC_OLD));
>>  	/* update cursor SR watermark */
>> -	I915_WRITE(DSPFW3, FW_WM(cursor_sr, CURSOR_SR));
>> +	intel_uncore_write(&dev_priv->uncore, DSPFW3, FW_WM(cursor_sr, CURSOR_SR));
>>  
>>  	if (cxsr_enabled)
>>  		intel_set_memory_cxsr(dev_priv, true);
>> @@ -2446,10 +2446,10 @@ static void i9xx_update_wm(struct intel_crtc *unused_crtc)
>>  			srwm = 1;
>>  
>>  		if (IS_I945G(dev_priv) || IS_I945GM(dev_priv))
>> -			I915_WRITE(FW_BLC_SELF,
>> +			intel_uncore_write(&dev_priv->uncore, FW_BLC_SELF,
>>  				   FW_BLC_SELF_FIFO_MASK | (srwm & 0xff));
>>  		else
>> -			I915_WRITE(FW_BLC_SELF, srwm & 0x3f);
>> +			intel_uncore_write(&dev_priv->uncore, FW_BLC_SELF, srwm & 0x3f);
>>  	}
>>  
>>  	drm_dbg_kms(&dev_priv->drm,
>> @@ -2463,8 +2463,8 @@ static void i9xx_update_wm(struct intel_crtc *unused_crtc)
>>  	fwater_lo = fwater_lo | (1 << 24) | (1 << 8);
>>  	fwater_hi = fwater_hi | (1 << 8);
>>  
>> -	I915_WRITE(FW_BLC, fwater_lo);
>> -	I915_WRITE(FW_BLC2, fwater_hi);
>> +	intel_uncore_write(&dev_priv->uncore, FW_BLC, fwater_lo);
>> +	intel_uncore_write(&dev_priv->uncore, FW_BLC2, fwater_hi);
>>  
>>  	if (enabled)
>>  		intel_set_memory_cxsr(dev_priv, true);
>> @@ -2487,13 +2487,13 @@ static void i845_update_wm(struct intel_crtc *unused_crtc)
>>  				       &i845_wm_info,
>>  				       dev_priv->display.get_fifo_size(dev_priv, PLANE_A),
>>  				       4, pessimal_latency_ns);
>> -	fwater_lo = I915_READ(FW_BLC) & ~0xfff;
>> +	fwater_lo = intel_uncore_read(&dev_priv->uncore, FW_BLC) & ~0xfff;
>>  	fwater_lo |= (3<<8) | planea_wm;
>>  
>>  	drm_dbg_kms(&dev_priv->drm,
>>  		    "Setting FIFO watermarks - A: %d\n", planea_wm);
>>  
>> -	I915_WRITE(FW_BLC, fwater_lo);
>> +	intel_uncore_write(&dev_priv->uncore, FW_BLC, fwater_lo);
>>  }
>>  
>>  /* latency must be in 0.1us units. */
>> @@ -3533,17 +3533,17 @@ static bool _ilk_disable_lp_wm(struct drm_i915_private *dev_priv,
>>  
>>  	if (dirty & WM_DIRTY_LP(3) && previous->wm_lp[2] & WM1_LP_SR_EN) {
>>  		previous->wm_lp[2] &= ~WM1_LP_SR_EN;
>> -		I915_WRITE(WM3_LP_ILK, previous->wm_lp[2]);
>> +		intel_uncore_write(&dev_priv->uncore, WM3_LP_ILK, previous->wm_lp[2]);
>>  		changed = true;
>>  	}
>>  	if (dirty & WM_DIRTY_LP(2) && previous->wm_lp[1] & WM1_LP_SR_EN) {
>>  		previous->wm_lp[1] &= ~WM1_LP_SR_EN;
>> -		I915_WRITE(WM2_LP_ILK, previous->wm_lp[1]);
>> +		intel_uncore_write(&dev_priv->uncore, WM2_LP_ILK, previous->wm_lp[1]);
>>  		changed = true;
>>  	}
>>  	if (dirty & WM_DIRTY_LP(1) && previous->wm_lp[0] & WM1_LP_SR_EN) {
>>  		previous->wm_lp[0] &= ~WM1_LP_SR_EN;
>> -		I915_WRITE(WM1_LP_ILK, previous->wm_lp[0]);
>> +		intel_uncore_write(&dev_priv->uncore, WM1_LP_ILK, previous->wm_lp[0]);
>>  		changed = true;
>>  	}
>>  
>> @@ -3573,56 +3573,56 @@ static void ilk_write_wm_values(struct drm_i915_private *dev_priv,
>>  	_ilk_disable_lp_wm(dev_priv, dirty);
>>  
>>  	if (dirty & WM_DIRTY_PIPE(PIPE_A))
>> -		I915_WRITE(WM0_PIPE_ILK(PIPE_A), results->wm_pipe[0]);
>> +		intel_uncore_write(&dev_priv->uncore, WM0_PIPE_ILK(PIPE_A), results->wm_pipe[0]);
>>  	if (dirty & WM_DIRTY_PIPE(PIPE_B))
>> -		I915_WRITE(WM0_PIPE_ILK(PIPE_B), results->wm_pipe[1]);
>> +		intel_uncore_write(&dev_priv->uncore, WM0_PIPE_ILK(PIPE_B), results->wm_pipe[1]);
>>  	if (dirty & WM_DIRTY_PIPE(PIPE_C))
>> -		I915_WRITE(WM0_PIPE_ILK(PIPE_C), results->wm_pipe[2]);
>> +		intel_uncore_write(&dev_priv->uncore, WM0_PIPE_ILK(PIPE_C), results->wm_pipe[2]);
>>  
>>  	if (dirty & WM_DIRTY_DDB) {
>>  		if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv)) {
>> -			val = I915_READ(WM_MISC);
>> +			val = intel_uncore_read(&dev_priv->uncore, WM_MISC);
>>  			if (results->partitioning == INTEL_DDB_PART_1_2)
>>  				val &= ~WM_MISC_DATA_PARTITION_5_6;
>>  			else
>>  				val |= WM_MISC_DATA_PARTITION_5_6;
>> -			I915_WRITE(WM_MISC, val);
>> +			intel_uncore_write(&dev_priv->uncore, WM_MISC, val);
>>  		} else {
>> -			val = I915_READ(DISP_ARB_CTL2);
>> +			val = intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL2);
>>  			if (results->partitioning == INTEL_DDB_PART_1_2)
>>  				val &= ~DISP_DATA_PARTITION_5_6;
>>  			else
>>  				val |= DISP_DATA_PARTITION_5_6;
>> -			I915_WRITE(DISP_ARB_CTL2, val);
>> +			intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL2, val);
>>  		}
>>  	}
>>  
>>  	if (dirty & WM_DIRTY_FBC) {
>> -		val = I915_READ(DISP_ARB_CTL);
>> +		val = intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL);
>>  		if (results->enable_fbc_wm)
>>  			val &= ~DISP_FBC_WM_DIS;
>>  		else
>>  			val |= DISP_FBC_WM_DIS;
>> -		I915_WRITE(DISP_ARB_CTL, val);
>> +		intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, val);
>>  	}
>>  
>>  	if (dirty & WM_DIRTY_LP(1) &&
>>  	    previous->wm_lp_spr[0] != results->wm_lp_spr[0])
>> -		I915_WRITE(WM1S_LP_ILK, results->wm_lp_spr[0]);
>> +		intel_uncore_write(&dev_priv->uncore, WM1S_LP_ILK, results->wm_lp_spr[0]);
>>  
>>  	if (INTEL_GEN(dev_priv) >= 7) {
>>  		if (dirty & WM_DIRTY_LP(2) && previous->wm_lp_spr[1] != results->wm_lp_spr[1])
>> -			I915_WRITE(WM2S_LP_IVB, results->wm_lp_spr[1]);
>> +			intel_uncore_write(&dev_priv->uncore, WM2S_LP_IVB, results->wm_lp_spr[1]);
>>  		if (dirty & WM_DIRTY_LP(3) && previous->wm_lp_spr[2] != results->wm_lp_spr[2])
>> -			I915_WRITE(WM3S_LP_IVB, results->wm_lp_spr[2]);
>> +			intel_uncore_write(&dev_priv->uncore, WM3S_LP_IVB, results->wm_lp_spr[2]);
>>  	}
>>  
>>  	if (dirty & WM_DIRTY_LP(1) && previous->wm_lp[0] != results->wm_lp[0])
>> -		I915_WRITE(WM1_LP_ILK, results->wm_lp[0]);
>> +		intel_uncore_write(&dev_priv->uncore, WM1_LP_ILK, results->wm_lp[0]);
>>  	if (dirty & WM_DIRTY_LP(2) && previous->wm_lp[1] != results->wm_lp[1])
>> -		I915_WRITE(WM2_LP_ILK, results->wm_lp[1]);
>> +		intel_uncore_write(&dev_priv->uncore, WM2_LP_ILK, results->wm_lp[1]);
>>  	if (dirty & WM_DIRTY_LP(3) && previous->wm_lp[2] != results->wm_lp[2])
>> -		I915_WRITE(WM3_LP_ILK, results->wm_lp[2]);
>> +		intel_uncore_write(&dev_priv->uncore, WM3_LP_ILK, results->wm_lp[2]);
>>  
>>  	dev_priv->wm.hw = *results;
>>  }
>> @@ -3639,7 +3639,7 @@ u8 intel_enabled_dbuf_slices_mask(struct drm_i915_private *dev_priv)
>>  	u8 enabled_slices_mask = 0;
>>  
>>  	for (i = 0; i < max_slices; i++) {
>> -		if (I915_READ(DBUF_CTL_S(i)) & DBUF_POWER_STATE)
>> +		if (intel_uncore_read(&dev_priv->uncore, DBUF_CTL_S(i)) & DBUF_POWER_STATE)
>>  			enabled_slices_mask |= BIT(i);
>>  	}
>>  
>> @@ -4307,12 +4307,12 @@ skl_ddb_get_hw_plane_state(struct drm_i915_private *dev_priv,
>>  
>>  	/* Cursor doesn't support NV12/planar, so no extra calculation needed */
>>  	if (plane_id == PLANE_CURSOR) {
>> -		val = I915_READ(CUR_BUF_CFG(pipe));
>> +		val = intel_uncore_read(&dev_priv->uncore, CUR_BUF_CFG(pipe));
>>  		skl_ddb_entry_init_from_hw(dev_priv, ddb_y, val);
>>  		return;
>>  	}
>>  
>> -	val = I915_READ(PLANE_CTL(pipe, plane_id));
>> +	val = intel_uncore_read(&dev_priv->uncore, PLANE_CTL(pipe, plane_id));
>>  
>>  	/* No DDB allocated for disabled planes */
>>  	if (val & PLANE_CTL_ENABLE)
>> @@ -4321,11 +4321,11 @@ skl_ddb_get_hw_plane_state(struct drm_i915_private *dev_priv,
>>  					      val & PLANE_CTL_ALPHA_MASK);
>>  
>>  	if (INTEL_GEN(dev_priv) >= 11) {
>> -		val = I915_READ(PLANE_BUF_CFG(pipe, plane_id));
>> +		val = intel_uncore_read(&dev_priv->uncore, PLANE_BUF_CFG(pipe, plane_id));
>>  		skl_ddb_entry_init_from_hw(dev_priv, ddb_y, val);
>>  	} else {
>> -		val = I915_READ(PLANE_BUF_CFG(pipe, plane_id));
>> -		val2 = I915_READ(PLANE_NV12_BUF_CFG(pipe, plane_id));
>> +		val = intel_uncore_read(&dev_priv->uncore, PLANE_BUF_CFG(pipe, plane_id));
>> +		val2 = intel_uncore_read(&dev_priv->uncore, PLANE_NV12_BUF_CFG(pipe, plane_id));
>>  
>>  		if (fourcc &&
>>  		    drm_format_info_is_yuv_semiplanar(drm_format_info(fourcc)))
>> @@ -6240,9 +6240,9 @@ void skl_pipe_wm_get_hw_state(struct intel_crtc *crtc,
>>  
>>  		for (level = 0; level <= max_level; level++) {
>>  			if (plane_id != PLANE_CURSOR)
>> -				val = I915_READ(PLANE_WM(pipe, plane_id, level));
>> +				val = intel_uncore_read(&dev_priv->uncore, PLANE_WM(pipe, plane_id, level));
>>  			else
>> -				val = I915_READ(CUR_WM(pipe, level));
>> +				val = intel_uncore_read(&dev_priv->uncore, CUR_WM(pipe, level));
>>  
>>  			skl_wm_level_from_reg_val(val, &wm->wm[level]);
>>  		}
>> @@ -6251,9 +6251,9 @@ void skl_pipe_wm_get_hw_state(struct intel_crtc *crtc,
>>  			wm->sagv_wm0 = wm->wm[0];
>>  
>>  		if (plane_id != PLANE_CURSOR)
>> -			val = I915_READ(PLANE_WM_TRANS(pipe, plane_id));
>> +			val = intel_uncore_read(&dev_priv->uncore, PLANE_WM_TRANS(pipe, plane_id));
>>  		else
>> -			val = I915_READ(CUR_WM_TRANS(pipe));
>> +			val = intel_uncore_read(&dev_priv->uncore, CUR_WM_TRANS(pipe));
>>  
>>  		skl_wm_level_from_reg_val(val, &wm->trans_wm);
>>  	}
>> @@ -6288,7 +6288,7 @@ static void ilk_pipe_wm_get_hw_state(struct intel_crtc *crtc)
>>  	struct intel_pipe_wm *active = &crtc_state->wm.ilk.optimal;
>>  	enum pipe pipe = crtc->pipe;
>>  
>> -	hw->wm_pipe[pipe] = I915_READ(WM0_PIPE_ILK(pipe));
>> +	hw->wm_pipe[pipe] = intel_uncore_read(&dev_priv->uncore, WM0_PIPE_ILK(pipe));
>>  
>>  	memset(active, 0, sizeof(*active));
>>  
>> @@ -6332,13 +6332,13 @@ static void g4x_read_wm_values(struct drm_i915_private *dev_priv,
>>  {
>>  	u32 tmp;
>>  
>> -	tmp = I915_READ(DSPFW1);
>> +	tmp = intel_uncore_read(&dev_priv->uncore, DSPFW1);
>>  	wm->sr.plane = _FW_WM(tmp, SR);
>>  	wm->pipe[PIPE_B].plane[PLANE_CURSOR] = _FW_WM(tmp, CURSORB);
>>  	wm->pipe[PIPE_B].plane[PLANE_PRIMARY] = _FW_WM(tmp, PLANEB);
>>  	wm->pipe[PIPE_A].plane[PLANE_PRIMARY] = _FW_WM(tmp, PLANEA);
>>  
>> -	tmp = I915_READ(DSPFW2);
>> +	tmp = intel_uncore_read(&dev_priv->uncore, DSPFW2);
>>  	wm->fbc_en = tmp & DSPFW_FBC_SR_EN;
>>  	wm->sr.fbc = _FW_WM(tmp, FBC_SR);
>>  	wm->hpll.fbc = _FW_WM(tmp, FBC_HPLL_SR);
>> @@ -6346,7 +6346,7 @@ static void g4x_read_wm_values(struct drm_i915_private *dev_priv,
>>  	wm->pipe[PIPE_A].plane[PLANE_CURSOR] = _FW_WM(tmp, CURSORA);
>>  	wm->pipe[PIPE_A].plane[PLANE_SPRITE0] = _FW_WM(tmp, SPRITEA);
>>  
>> -	tmp = I915_READ(DSPFW3);
>> +	tmp = intel_uncore_read(&dev_priv->uncore, DSPFW3);
>>  	wm->hpll_en = tmp & DSPFW_HPLL_SR_EN;
>>  	wm->sr.cursor = _FW_WM(tmp, CURSOR_SR);
>>  	wm->hpll.cursor = _FW_WM(tmp, HPLL_CURSOR);
>> @@ -6360,7 +6360,7 @@ static void vlv_read_wm_values(struct drm_i915_private *dev_priv,
>>  	u32 tmp;
>>  
>>  	for_each_pipe(dev_priv, pipe) {
>> -		tmp = I915_READ(VLV_DDL(pipe));
>> +		tmp = intel_uncore_read(&dev_priv->uncore, VLV_DDL(pipe));
>>  
>>  		wm->ddl[pipe].plane[PLANE_PRIMARY] =
>>  			(tmp >> DDL_PLANE_SHIFT) & (DDL_PRECISION_HIGH | DRAIN_LATENCY_MASK);
>> @@ -6372,34 +6372,34 @@ static void vlv_read_wm_values(struct drm_i915_private *dev_priv,
>>  			(tmp >> DDL_SPRITE_SHIFT(1)) & (DDL_PRECISION_HIGH | DRAIN_LATENCY_MASK);
>>  	}
>>  
>> -	tmp = I915_READ(DSPFW1);
>> +	tmp = intel_uncore_read(&dev_priv->uncore, DSPFW1);
>>  	wm->sr.plane = _FW_WM(tmp, SR);
>>  	wm->pipe[PIPE_B].plane[PLANE_CURSOR] = _FW_WM(tmp, CURSORB);
>>  	wm->pipe[PIPE_B].plane[PLANE_PRIMARY] = _FW_WM_VLV(tmp, PLANEB);
>>  	wm->pipe[PIPE_A].plane[PLANE_PRIMARY] = _FW_WM_VLV(tmp, PLANEA);
>>  
>> -	tmp = I915_READ(DSPFW2);
>> +	tmp = intel_uncore_read(&dev_priv->uncore, DSPFW2);
>>  	wm->pipe[PIPE_A].plane[PLANE_SPRITE1] = _FW_WM_VLV(tmp, SPRITEB);
>>  	wm->pipe[PIPE_A].plane[PLANE_CURSOR] = _FW_WM(tmp, CURSORA);
>>  	wm->pipe[PIPE_A].plane[PLANE_SPRITE0] = _FW_WM_VLV(tmp, SPRITEA);
>>  
>> -	tmp = I915_READ(DSPFW3);
>> +	tmp = intel_uncore_read(&dev_priv->uncore, DSPFW3);
>>  	wm->sr.cursor = _FW_WM(tmp, CURSOR_SR);
>>  
>>  	if (IS_CHERRYVIEW(dev_priv)) {
>> -		tmp = I915_READ(DSPFW7_CHV);
>> +		tmp = intel_uncore_read(&dev_priv->uncore, DSPFW7_CHV);
>>  		wm->pipe[PIPE_B].plane[PLANE_SPRITE1] = _FW_WM_VLV(tmp, SPRITED);
>>  		wm->pipe[PIPE_B].plane[PLANE_SPRITE0] = _FW_WM_VLV(tmp, SPRITEC);
>>  
>> -		tmp = I915_READ(DSPFW8_CHV);
>> +		tmp = intel_uncore_read(&dev_priv->uncore, DSPFW8_CHV);
>>  		wm->pipe[PIPE_C].plane[PLANE_SPRITE1] = _FW_WM_VLV(tmp, SPRITEF);
>>  		wm->pipe[PIPE_C].plane[PLANE_SPRITE0] = _FW_WM_VLV(tmp, SPRITEE);
>>  
>> -		tmp = I915_READ(DSPFW9_CHV);
>> +		tmp = intel_uncore_read(&dev_priv->uncore, DSPFW9_CHV);
>>  		wm->pipe[PIPE_C].plane[PLANE_PRIMARY] = _FW_WM_VLV(tmp, PLANEC);
>>  		wm->pipe[PIPE_C].plane[PLANE_CURSOR] = _FW_WM(tmp, CURSORC);
>>  
>> -		tmp = I915_READ(DSPHOWM);
>> +		tmp = intel_uncore_read(&dev_priv->uncore, DSPHOWM);
>>  		wm->sr.plane |= _FW_WM(tmp, SR_HI) << 9;
>>  		wm->pipe[PIPE_C].plane[PLANE_SPRITE1] |= _FW_WM(tmp, SPRITEF_HI) << 8;
>>  		wm->pipe[PIPE_C].plane[PLANE_SPRITE0] |= _FW_WM(tmp, SPRITEE_HI) << 8;
>> @@ -6411,11 +6411,11 @@ static void vlv_read_wm_values(struct drm_i915_private *dev_priv,
>>  		wm->pipe[PIPE_A].plane[PLANE_SPRITE0] |= _FW_WM(tmp, SPRITEA_HI) << 8;
>>  		wm->pipe[PIPE_A].plane[PLANE_PRIMARY] |= _FW_WM(tmp, PLANEA_HI) << 8;
>>  	} else {
>> -		tmp = I915_READ(DSPFW7);
>> +		tmp = intel_uncore_read(&dev_priv->uncore, DSPFW7);
>>  		wm->pipe[PIPE_B].plane[PLANE_SPRITE1] = _FW_WM_VLV(tmp, SPRITED);
>>  		wm->pipe[PIPE_B].plane[PLANE_SPRITE0] = _FW_WM_VLV(tmp, SPRITEC);
>>  
>> -		tmp = I915_READ(DSPHOWM);
>> +		tmp = intel_uncore_read(&dev_priv->uncore, DSPHOWM);
>>  		wm->sr.plane |= _FW_WM(tmp, SR_HI) << 9;
>>  		wm->pipe[PIPE_B].plane[PLANE_SPRITE1] |= _FW_WM(tmp, SPRITED_HI) << 8;
>>  		wm->pipe[PIPE_B].plane[PLANE_SPRITE0] |= _FW_WM(tmp, SPRITEC_HI) << 8;
>> @@ -6436,7 +6436,7 @@ void g4x_wm_get_hw_state(struct drm_i915_private *dev_priv)
>>  
>>  	g4x_read_wm_values(dev_priv, wm);
>>  
>> -	wm->cxsr = I915_READ(FW_BLC_SELF) & FW_BLC_SELF_EN;
>> +	wm->cxsr = intel_uncore_read(&dev_priv->uncore, FW_BLC_SELF) & FW_BLC_SELF_EN;
>>  
>>  	for_each_intel_crtc(&dev_priv->drm, crtc) {
>>  		struct intel_crtc_state *crtc_state =
>> @@ -6580,7 +6580,7 @@ void vlv_wm_get_hw_state(struct drm_i915_private *dev_priv)
>>  
>>  	vlv_read_wm_values(dev_priv, wm);
>>  
>> -	wm->cxsr = I915_READ(FW_BLC_SELF_VLV) & FW_CSPWRDWNEN;
>> +	wm->cxsr = intel_uncore_read(&dev_priv->uncore, FW_BLC_SELF_VLV) & FW_CSPWRDWNEN;
>>  	wm->level = VLV_WM_LEVEL_PM2;
>>  
>>  	if (IS_CHERRYVIEW(dev_priv)) {
>> @@ -6727,9 +6727,9 @@ void vlv_wm_sanitize(struct drm_i915_private *dev_priv)
>>   */
>>  static void ilk_init_lp_watermarks(struct drm_i915_private *dev_priv)
>>  {
>> -	I915_WRITE(WM3_LP_ILK, I915_READ(WM3_LP_ILK) & ~WM1_LP_SR_EN);
>> -	I915_WRITE(WM2_LP_ILK, I915_READ(WM2_LP_ILK) & ~WM1_LP_SR_EN);
>> -	I915_WRITE(WM1_LP_ILK, I915_READ(WM1_LP_ILK) & ~WM1_LP_SR_EN);
>> +	intel_uncore_write(&dev_priv->uncore, WM3_LP_ILK, intel_uncore_read(&dev_priv->uncore, WM3_LP_ILK) & ~WM1_LP_SR_EN);
>> +	intel_uncore_write(&dev_priv->uncore, WM2_LP_ILK, intel_uncore_read(&dev_priv->uncore, WM2_LP_ILK) & ~WM1_LP_SR_EN);
>> +	intel_uncore_write(&dev_priv->uncore, WM1_LP_ILK, intel_uncore_read(&dev_priv->uncore, WM1_LP_ILK) & ~WM1_LP_SR_EN);
>>  
>>  	/*
>>  	 * Don't touch WM1S_LP_EN here.
>> @@ -6747,25 +6747,25 @@ void ilk_wm_get_hw_state(struct drm_i915_private *dev_priv)
>>  	for_each_intel_crtc(&dev_priv->drm, crtc)
>>  		ilk_pipe_wm_get_hw_state(crtc);
>>  
>> -	hw->wm_lp[0] = I915_READ(WM1_LP_ILK);
>> -	hw->wm_lp[1] = I915_READ(WM2_LP_ILK);
>> -	hw->wm_lp[2] = I915_READ(WM3_LP_ILK);
>> +	hw->wm_lp[0] = intel_uncore_read(&dev_priv->uncore, WM1_LP_ILK);
>> +	hw->wm_lp[1] = intel_uncore_read(&dev_priv->uncore, WM2_LP_ILK);
>> +	hw->wm_lp[2] = intel_uncore_read(&dev_priv->uncore, WM3_LP_ILK);
>>  
>> -	hw->wm_lp_spr[0] = I915_READ(WM1S_LP_ILK);
>> +	hw->wm_lp_spr[0] = intel_uncore_read(&dev_priv->uncore, WM1S_LP_ILK);
>>  	if (INTEL_GEN(dev_priv) >= 7) {
>> -		hw->wm_lp_spr[1] = I915_READ(WM2S_LP_IVB);
>> -		hw->wm_lp_spr[2] = I915_READ(WM3S_LP_IVB);
>> +		hw->wm_lp_spr[1] = intel_uncore_read(&dev_priv->uncore, WM2S_LP_IVB);
>> +		hw->wm_lp_spr[2] = intel_uncore_read(&dev_priv->uncore, WM3S_LP_IVB);
>>  	}
>>  
>>  	if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv))
>> -		hw->partitioning = (I915_READ(WM_MISC) & WM_MISC_DATA_PARTITION_5_6) ?
>> +		hw->partitioning = (intel_uncore_read(&dev_priv->uncore, WM_MISC) & WM_MISC_DATA_PARTITION_5_6) ?
>>  			INTEL_DDB_PART_5_6 : INTEL_DDB_PART_1_2;
>>  	else if (IS_IVYBRIDGE(dev_priv))
>> -		hw->partitioning = (I915_READ(DISP_ARB_CTL2) & DISP_DATA_PARTITION_5_6) ?
>> +		hw->partitioning = (intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL2) & DISP_DATA_PARTITION_5_6) ?
>>  			INTEL_DDB_PART_5_6 : INTEL_DDB_PART_1_2;
>>  
>>  	hw->enable_fbc_wm =
>> -		!(I915_READ(DISP_ARB_CTL) & DISP_FBC_WM_DIS);
>> +		!(intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) & DISP_FBC_WM_DIS);
>>  }
>>  
>>  /**
>> @@ -6816,14 +6816,14 @@ void intel_enable_ipc(struct drm_i915_private *dev_priv)
>>  	if (!HAS_IPC(dev_priv))
>>  		return;
>>  
>> -	val = I915_READ(DISP_ARB_CTL2);
>> +	val = intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL2);
>>  
>>  	if (dev_priv->ipc_enabled)
>>  		val |= DISP_IPC_ENABLE;
>>  	else
>>  		val &= ~DISP_IPC_ENABLE;
>>  
>> -	I915_WRITE(DISP_ARB_CTL2, val);
>> +	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL2, val);
>>  }
>>  
>>  static bool intel_can_enable_ipc(struct drm_i915_private *dev_priv)
>> @@ -6858,7 +6858,7 @@ static void ibx_init_clock_gating(struct drm_i915_private *dev_priv)
>>  	 * gating for the panel power sequencer or it will fail to
>>  	 * start up when no ports are active.
>>  	 */
>> -	I915_WRITE(SOUTH_DSPCLK_GATE_D, PCH_DPLSUNIT_CLOCK_GATE_DISABLE);
>> +	intel_uncore_write(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D, PCH_DPLSUNIT_CLOCK_GATE_DISABLE);
>>  }
>>  
>>  static void g4x_disable_trickle_feed(struct drm_i915_private *dev_priv)
>> @@ -6866,12 +6866,12 @@ static void g4x_disable_trickle_feed(struct drm_i915_private *dev_priv)
>>  	enum pipe pipe;
>>  
>>  	for_each_pipe(dev_priv, pipe) {
>> -		I915_WRITE(DSPCNTR(pipe),
>> -			   I915_READ(DSPCNTR(pipe)) |
>> +		intel_uncore_write(&dev_priv->uncore, DSPCNTR(pipe),
>> +			   intel_uncore_read(&dev_priv->uncore, DSPCNTR(pipe)) |
>>  			   DISPPLANE_TRICKLE_FEED_DISABLE);
>>  
>> -		I915_WRITE(DSPSURF(pipe), I915_READ(DSPSURF(pipe)));
>> -		POSTING_READ(DSPSURF(pipe));
>> +		intel_uncore_write(&dev_priv->uncore, DSPSURF(pipe), intel_uncore_read(&dev_priv->uncore, DSPSURF(pipe)));
>> +		intel_uncore_posting_read(&dev_priv->uncore, DSPSURF(pipe));
>>  	}
>>  }
>>  
>> @@ -6887,10 +6887,10 @@ static void ilk_init_clock_gating(struct drm_i915_private *dev_priv)
>>  		   ILK_DPFCUNIT_CLOCK_GATE_DISABLE |
>>  		   ILK_DPFDUNIT_CLOCK_GATE_ENABLE;
>>  
>> -	I915_WRITE(PCH_3DCGDIS0,
>> +	intel_uncore_write(&dev_priv->uncore, PCH_3DCGDIS0,
>>  		   MARIUNIT_CLOCK_GATE_DISABLE |
>>  		   SVSMUNIT_CLOCK_GATE_DISABLE);
>> -	I915_WRITE(PCH_3DCGDIS1,
>> +	intel_uncore_write(&dev_priv->uncore, PCH_3DCGDIS1,
>>  		   VFMUNIT_CLOCK_GATE_DISABLE);
>>  
>>  	/*
>> @@ -6900,12 +6900,12 @@ static void ilk_init_clock_gating(struct drm_i915_private *dev_priv)
>>  	 * The bit 5 of 0x42020
>>  	 * The bit 15 of 0x45000
>>  	 */
>> -	I915_WRITE(ILK_DISPLAY_CHICKEN2,
>> -		   (I915_READ(ILK_DISPLAY_CHICKEN2) |
>> +	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2,
>> +		   (intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2) |
>>  		    ILK_DPARB_GATE | ILK_VSDPFD_FULL));
>>  	dspclk_gate |= ILK_DPARBUNIT_CLOCK_GATE_ENABLE;
>> -	I915_WRITE(DISP_ARB_CTL,
>> -		   (I915_READ(DISP_ARB_CTL) |
>> +	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL,
>> +		   (intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
>>  		    DISP_FBC_WM_DIS));
>>  
>>  	/*
>> @@ -6917,18 +6917,18 @@ static void ilk_init_clock_gating(struct drm_i915_private *dev_priv)
>>  	 */
>>  	if (IS_IRONLAKE_M(dev_priv)) {
>>  		/* WaFbcAsynchFlipDisableFbcQueue:ilk */
>> -		I915_WRITE(ILK_DISPLAY_CHICKEN1,
>> -			   I915_READ(ILK_DISPLAY_CHICKEN1) |
>> +		intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1,
>> +			   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1) |
>>  			   ILK_FBCQ_DIS);
>> -		I915_WRITE(ILK_DISPLAY_CHICKEN2,
>> -			   I915_READ(ILK_DISPLAY_CHICKEN2) |
>> +		intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2,
>> +			   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2) |
>>  			   ILK_DPARB_GATE);
>>  	}
>>  
>> -	I915_WRITE(ILK_DSPCLK_GATE_D, dspclk_gate);
>> +	intel_uncore_write(&dev_priv->uncore, ILK_DSPCLK_GATE_D, dspclk_gate);
>>  
>> -	I915_WRITE(ILK_DISPLAY_CHICKEN2,
>> -		   I915_READ(ILK_DISPLAY_CHICKEN2) |
>> +	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2,
>> +		   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2) |
>>  		   ILK_ELPIN_409_SELECT);
>>  
>>  	g4x_disable_trickle_feed(dev_priv);
>> @@ -6946,27 +6946,27 @@ static void cpt_init_clock_gating(struct drm_i915_private *dev_priv)
>>  	 * gating for the panel power sequencer or it will fail to
>>  	 * start up when no ports are active.
>>  	 */
>> -	I915_WRITE(SOUTH_DSPCLK_GATE_D, PCH_DPLSUNIT_CLOCK_GATE_DISABLE |
>> +	intel_uncore_write(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D, PCH_DPLSUNIT_CLOCK_GATE_DISABLE |
>>  		   PCH_DPLUNIT_CLOCK_GATE_DISABLE |
>>  		   PCH_CPUNIT_CLOCK_GATE_DISABLE);
>> -	I915_WRITE(SOUTH_CHICKEN2, I915_READ(SOUTH_CHICKEN2) |
>> +	intel_uncore_write(&dev_priv->uncore, SOUTH_CHICKEN2, intel_uncore_read(&dev_priv->uncore, SOUTH_CHICKEN2) |
>>  		   DPLS_EDP_PPS_FIX_DIS);
>>  	/* The below fixes the weird display corruption, a few pixels shifted
>>  	 * downward, on (only) LVDS of some HP laptops with IVY.
>>  	 */
>>  	for_each_pipe(dev_priv, pipe) {
>> -		val = I915_READ(TRANS_CHICKEN2(pipe));
>> +		val = intel_uncore_read(&dev_priv->uncore, TRANS_CHICKEN2(pipe));
>>  		val |= TRANS_CHICKEN2_TIMING_OVERRIDE;
>>  		val &= ~TRANS_CHICKEN2_FDI_POLARITY_REVERSED;
>>  		if (dev_priv->vbt.fdi_rx_polarity_inverted)
>>  			val |= TRANS_CHICKEN2_FDI_POLARITY_REVERSED;
>>  		val &= ~TRANS_CHICKEN2_DISABLE_DEEP_COLOR_COUNTER;
>>  		val &= ~TRANS_CHICKEN2_DISABLE_DEEP_COLOR_MODESWITCH;
>> -		I915_WRITE(TRANS_CHICKEN2(pipe), val);
>> +		intel_uncore_write(&dev_priv->uncore, TRANS_CHICKEN2(pipe), val);
>>  	}
>>  	/* WADP0ClockGatingDisable */
>>  	for_each_pipe(dev_priv, pipe) {
>> -		I915_WRITE(TRANS_CHICKEN1(pipe),
>> +		intel_uncore_write(&dev_priv->uncore, TRANS_CHICKEN1(pipe),
>>  			   TRANS_CHICKEN1_DP0UNIT_GC_DISABLE);
>>  	}
>>  }
>> @@ -6975,7 +6975,7 @@ static void gen6_check_mch_setup(struct drm_i915_private *dev_priv)
>>  {
>>  	u32 tmp;
>>  
>> -	tmp = I915_READ(MCH_SSKPD);
>> +	tmp = intel_uncore_read(&dev_priv->uncore, MCH_SSKPD);
>>  	if ((tmp & MCH_SSKPD_WM0_MASK) != MCH_SSKPD_WM0_VAL)
>>  		drm_dbg_kms(&dev_priv->drm,
>>  			    "Wrong MCH_SSKPD value: 0x%08x This can cause underruns.\n",
>> @@ -6986,14 +6986,14 @@ static void gen6_init_clock_gating(struct drm_i915_private *dev_priv)
>>  {
>>  	u32 dspclk_gate = ILK_VRHUNIT_CLOCK_GATE_DISABLE;
>>  
>> -	I915_WRITE(ILK_DSPCLK_GATE_D, dspclk_gate);
>> +	intel_uncore_write(&dev_priv->uncore, ILK_DSPCLK_GATE_D, dspclk_gate);
>>  
>> -	I915_WRITE(ILK_DISPLAY_CHICKEN2,
>> -		   I915_READ(ILK_DISPLAY_CHICKEN2) |
>> +	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2,
>> +		   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2) |
>>  		   ILK_ELPIN_409_SELECT);
>>  
>> -	I915_WRITE(GEN6_UCGCTL1,
>> -		   I915_READ(GEN6_UCGCTL1) |
>> +	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL1,
>> +		   intel_uncore_read(&dev_priv->uncore, GEN6_UCGCTL1) |
>>  		   GEN6_BLBUNIT_CLOCK_GATE_DISABLE |
>>  		   GEN6_CSUNIT_CLOCK_GATE_DISABLE);
>>  
>> @@ -7010,7 +7010,7 @@ static void gen6_init_clock_gating(struct drm_i915_private *dev_priv)
>>  	 * WaDisableRCCUnitClockGating:snb
>>  	 * WaDisableRCPBUnitClockGating:snb
>>  	 */
>> -	I915_WRITE(GEN6_UCGCTL2,
>> +	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL2,
>>  		   GEN6_RCPBUNIT_CLOCK_GATE_DISABLE |
>>  		   GEN6_RCCUNIT_CLOCK_GATE_DISABLE);
>>  
>> @@ -7025,14 +7025,14 @@ static void gen6_init_clock_gating(struct drm_i915_private *dev_priv)
>>  	 *
>>  	 * WaFbcAsynchFlipDisableFbcQueue:snb
>>  	 */
>> -	I915_WRITE(ILK_DISPLAY_CHICKEN1,
>> -		   I915_READ(ILK_DISPLAY_CHICKEN1) |
>> +	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1,
>> +		   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1) |
>>  		   ILK_FBCQ_DIS | ILK_PABSTRETCH_DIS);
>> -	I915_WRITE(ILK_DISPLAY_CHICKEN2,
>> -		   I915_READ(ILK_DISPLAY_CHICKEN2) |
>> +	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2,
>> +		   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2) |
>>  		   ILK_DPARB_GATE | ILK_VSDPFD_FULL);
>> -	I915_WRITE(ILK_DSPCLK_GATE_D,
>> -		   I915_READ(ILK_DSPCLK_GATE_D) |
>> +	intel_uncore_write(&dev_priv->uncore, ILK_DSPCLK_GATE_D,
>> +		   intel_uncore_read(&dev_priv->uncore, ILK_DSPCLK_GATE_D) |
>>  		   ILK_DPARBUNIT_CLOCK_GATE_ENABLE  |
>>  		   ILK_DPFDUNIT_CLOCK_GATE_ENABLE);
>>  
>> @@ -7050,23 +7050,23 @@ static void lpt_init_clock_gating(struct drm_i915_private *dev_priv)
>>  	 * disabled when not needed anymore in order to save power.
>>  	 */
>>  	if (HAS_PCH_LPT_LP(dev_priv))
>> -		I915_WRITE(SOUTH_DSPCLK_GATE_D,
>> -			   I915_READ(SOUTH_DSPCLK_GATE_D) |
>> +		intel_uncore_write(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D,
>> +			   intel_uncore_read(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D) |
>>  			   PCH_LP_PARTITION_LEVEL_DISABLE);
>>  
>>  	/* WADPOClockGatingDisable:hsw */
>> -	I915_WRITE(TRANS_CHICKEN1(PIPE_A),
>> -		   I915_READ(TRANS_CHICKEN1(PIPE_A)) |
>> +	intel_uncore_write(&dev_priv->uncore, TRANS_CHICKEN1(PIPE_A),
>> +		   intel_uncore_read(&dev_priv->uncore, TRANS_CHICKEN1(PIPE_A)) |
>>  		   TRANS_CHICKEN1_DP0UNIT_GC_DISABLE);
>>  }
>>  
>>  static void lpt_suspend_hw(struct drm_i915_private *dev_priv)
>>  {
>>  	if (HAS_PCH_LPT_LP(dev_priv)) {
>> -		u32 val = I915_READ(SOUTH_DSPCLK_GATE_D);
>> +		u32 val = intel_uncore_read(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D);
>>  
>>  		val &= ~PCH_LP_PARTITION_LEVEL_DISABLE;
>> -		I915_WRITE(SOUTH_DSPCLK_GATE_D, val);
>> +		intel_uncore_write(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D, val);
>>  	}
>>  }
>>  
>> @@ -7078,33 +7078,33 @@ static void gen8_set_l3sqc_credits(struct drm_i915_private *dev_priv,
>>  	u32 val;
>>  
>>  	/* WaTempDisableDOPClkGating:bdw */
>> -	misccpctl = I915_READ(GEN7_MISCCPCTL);
>> -	I915_WRITE(GEN7_MISCCPCTL, misccpctl & ~GEN7_DOP_CLOCK_GATE_ENABLE);
>> +	misccpctl = intel_uncore_read(&dev_priv->uncore, GEN7_MISCCPCTL);
>> +	intel_uncore_write(&dev_priv->uncore, GEN7_MISCCPCTL, misccpctl & ~GEN7_DOP_CLOCK_GATE_ENABLE);
>>  
>> -	val = I915_READ(GEN8_L3SQCREG1);
>> +	val = intel_uncore_read(&dev_priv->uncore, GEN8_L3SQCREG1);
>>  	val &= ~L3_PRIO_CREDITS_MASK;
>>  	val |= L3_GENERAL_PRIO_CREDITS(general_prio_credits);
>>  	val |= L3_HIGH_PRIO_CREDITS(high_prio_credits);
>> -	I915_WRITE(GEN8_L3SQCREG1, val);
>> +	intel_uncore_write(&dev_priv->uncore, GEN8_L3SQCREG1, val);
>>  
>>  	/*
>>  	 * Wait at least 100 clocks before re-enabling clock gating.
>>  	 * See the definition of L3SQCREG1 in BSpec.
>>  	 */
>> -	POSTING_READ(GEN8_L3SQCREG1);
>> +	intel_uncore_posting_read(&dev_priv->uncore, GEN8_L3SQCREG1);
>>  	udelay(1);
>> -	I915_WRITE(GEN7_MISCCPCTL, misccpctl);
>> +	intel_uncore_write(&dev_priv->uncore, GEN7_MISCCPCTL, misccpctl);
>>  }
>>  
>>  static void icl_init_clock_gating(struct drm_i915_private *dev_priv)
>>  {
>>  	/* Wa_1409120013:icl,ehl */
>> -	I915_WRITE(ILK_DPFC_CHICKEN,
>> +	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN,
>>  		   ILK_DPFC_CHICKEN_COMP_DUMMY_PIXEL);
>>  
>>  	/* This is not an Wa. Enable to reduce Sampler power */
>> -	I915_WRITE(GEN10_DFR_RATIO_EN_AND_CHICKEN,
>> -		   I915_READ(GEN10_DFR_RATIO_EN_AND_CHICKEN) & ~DFR_DISABLE);
>> +	intel_uncore_write(&dev_priv->uncore, GEN10_DFR_RATIO_EN_AND_CHICKEN,
>> +		   intel_uncore_read(&dev_priv->uncore, GEN10_DFR_RATIO_EN_AND_CHICKEN) & ~DFR_DISABLE);
>>  
>>  	/*Wa_14010594013:icl, ehl */
>>  	intel_uncore_rmw(&dev_priv->uncore, GEN8_CHICKEN_DCPR_1,
>> @@ -7114,12 +7114,12 @@ static void icl_init_clock_gating(struct drm_i915_private *dev_priv)
>>  static void tgl_init_clock_gating(struct drm_i915_private *dev_priv)
>>  {
>>  	/* Wa_1409120013:tgl */
>> -	I915_WRITE(ILK_DPFC_CHICKEN,
>> +	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN,
>>  		   ILK_DPFC_CHICKEN_COMP_DUMMY_PIXEL);
>>  
>>  	/* Wa_1409825376:tgl (pre-prod)*/
>>  	if (IS_TGL_DISP_REVID(dev_priv, TGL_REVID_A0, TGL_REVID_B1))
>> -		I915_WRITE(GEN9_CLKGATE_DIS_3, I915_READ(GEN9_CLKGATE_DIS_3) |
>> +		intel_uncore_write(&dev_priv->uncore, GEN9_CLKGATE_DIS_3, intel_uncore_read(&dev_priv->uncore, GEN9_CLKGATE_DIS_3) |
>>  			   TGL_VRH_GATING_DIS);
>>  
>>  	/* Wa_14011059788:tgl */
>> @@ -7131,7 +7131,7 @@ static void dg1_init_clock_gating(struct drm_i915_private *dev_priv)
>>  {
>>  	/* Wa_1409836686:dg1[a0] */
>>  	if (IS_DG1_REVID(dev_priv, DG1_REVID_A0, DG1_REVID_A0))
>> -		I915_WRITE(GEN9_CLKGATE_DIS_3, I915_READ(GEN9_CLKGATE_DIS_3) |
>> +		intel_uncore_write(&dev_priv->uncore, GEN9_CLKGATE_DIS_3, intel_uncore_read(&dev_priv->uncore, GEN9_CLKGATE_DIS_3) |
>>  			   DPT_GATING_DIS);
>>  }
>>  
>> @@ -7141,7 +7141,7 @@ static void cnp_init_clock_gating(struct drm_i915_private *dev_priv)
>>  		return;
>>  
>>  	/* Display WA #1181 WaSouthDisplayDisablePWMCGEGating: cnp */
>> -	I915_WRITE(SOUTH_DSPCLK_GATE_D, I915_READ(SOUTH_DSPCLK_GATE_D) |
>> +	intel_uncore_write(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D, intel_uncore_read(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D) |
>>  		   CNP_PWM_CGE_GATING_DISABLE);
>>  }
>>  
>> @@ -7151,35 +7151,35 @@ static void cnl_init_clock_gating(struct drm_i915_private *dev_priv)
>>  	cnp_init_clock_gating(dev_priv);
>>  
>>  	/* This is not an Wa. Enable for better image quality */
>> -	I915_WRITE(_3D_CHICKEN3,
>> +	intel_uncore_write(&dev_priv->uncore, _3D_CHICKEN3,
>>  		   _MASKED_BIT_ENABLE(_3D_CHICKEN3_AA_LINE_QUALITY_FIX_ENABLE));
>>  
>>  	/* WaEnableChickenDCPR:cnl */
>> -	I915_WRITE(GEN8_CHICKEN_DCPR_1,
>> -		   I915_READ(GEN8_CHICKEN_DCPR_1) | MASK_WAKEMEM);
>> +	intel_uncore_write(&dev_priv->uncore, GEN8_CHICKEN_DCPR_1,
>> +		   intel_uncore_read(&dev_priv->uncore, GEN8_CHICKEN_DCPR_1) | MASK_WAKEMEM);
>>  
>>  	/*
>>  	 * WaFbcWakeMemOn:cnl
>>  	 * Display WA #0859: cnl
>>  	 */
>> -	I915_WRITE(DISP_ARB_CTL, I915_READ(DISP_ARB_CTL) |
>> +	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
>>  		   DISP_FBC_MEMORY_WAKE);
>>  
>> -	val = I915_READ(SLICE_UNIT_LEVEL_CLKGATE);
>> +	val = intel_uncore_read(&dev_priv->uncore, SLICE_UNIT_LEVEL_CLKGATE);
>>  	/* ReadHitWriteOnlyDisable:cnl */
>>  	val |= RCCUNIT_CLKGATE_DIS;
>> -	I915_WRITE(SLICE_UNIT_LEVEL_CLKGATE, val);
>> +	intel_uncore_write(&dev_priv->uncore, SLICE_UNIT_LEVEL_CLKGATE, val);
>>  
>>  	/* Wa_2201832410:cnl */
>> -	val = I915_READ(SUBSLICE_UNIT_LEVEL_CLKGATE);
>> +	val = intel_uncore_read(&dev_priv->uncore, SUBSLICE_UNIT_LEVEL_CLKGATE);
>>  	val |= GWUNIT_CLKGATE_DIS;
>> -	I915_WRITE(SUBSLICE_UNIT_LEVEL_CLKGATE, val);
>> +	intel_uncore_write(&dev_priv->uncore, SUBSLICE_UNIT_LEVEL_CLKGATE, val);
>>  
>>  	/* WaDisableVFclkgate:cnl */
>>  	/* WaVFUnitClockGatingDisable:cnl */
>> -	val = I915_READ(UNSLICE_UNIT_LEVEL_CLKGATE);
>> +	val = intel_uncore_read(&dev_priv->uncore, UNSLICE_UNIT_LEVEL_CLKGATE);
>>  	val |= VFUNIT_CLKGATE_DIS;
>> -	I915_WRITE(UNSLICE_UNIT_LEVEL_CLKGATE, val);
>> +	intel_uncore_write(&dev_priv->uncore, UNSLICE_UNIT_LEVEL_CLKGATE, val);
>>  }
>>  
>>  static void cfl_init_clock_gating(struct drm_i915_private *dev_priv)
>> @@ -7188,21 +7188,21 @@ static void cfl_init_clock_gating(struct drm_i915_private *dev_priv)
>>  	gen9_init_clock_gating(dev_priv);
>>  
>>  	/* WAC6entrylatency:cfl */
>> -	I915_WRITE(FBC_LLC_READ_CTRL, I915_READ(FBC_LLC_READ_CTRL) |
>> +	intel_uncore_write(&dev_priv->uncore, FBC_LLC_READ_CTRL, intel_uncore_read(&dev_priv->uncore, FBC_LLC_READ_CTRL) |
>>  		   FBC_LLC_FULLY_OPEN);
>>  
>>  	/*
>>  	 * WaFbcTurnOffFbcWatermark:cfl
>>  	 * Display WA #0562: cfl
>>  	 */
>> -	I915_WRITE(DISP_ARB_CTL, I915_READ(DISP_ARB_CTL) |
>> +	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
>>  		   DISP_FBC_WM_DIS);
>>  
>>  	/*
>>  	 * WaFbcNukeOnHostModify:cfl
>>  	 * Display WA #0873: cfl
>>  	 */
>> -	I915_WRITE(ILK_DPFC_CHICKEN, I915_READ(ILK_DPFC_CHICKEN) |
>> +	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN, intel_uncore_read(&dev_priv->uncore, ILK_DPFC_CHICKEN) |
>>  		   ILK_DPFC_NUKE_ON_ANY_MODIFICATION);
>>  }
>>  
>> @@ -7211,31 +7211,31 @@ static void kbl_init_clock_gating(struct drm_i915_private *dev_priv)
>>  	gen9_init_clock_gating(dev_priv);
>>  
>>  	/* WAC6entrylatency:kbl */
>> -	I915_WRITE(FBC_LLC_READ_CTRL, I915_READ(FBC_LLC_READ_CTRL) |
>> +	intel_uncore_write(&dev_priv->uncore, FBC_LLC_READ_CTRL, intel_uncore_read(&dev_priv->uncore, FBC_LLC_READ_CTRL) |
>>  		   FBC_LLC_FULLY_OPEN);
>>  
>>  	/* WaDisableSDEUnitClockGating:kbl */
>>  	if (IS_KBL_GT_REVID(dev_priv, 0, KBL_REVID_B0))
>> -		I915_WRITE(GEN8_UCGCTL6, I915_READ(GEN8_UCGCTL6) |
>> +		intel_uncore_write(&dev_priv->uncore, GEN8_UCGCTL6, intel_uncore_read(&dev_priv->uncore, GEN8_UCGCTL6) |
>>  			   GEN8_SDEUNIT_CLOCK_GATE_DISABLE);
>>  
>>  	/* WaDisableGamClockGating:kbl */
>>  	if (IS_KBL_GT_REVID(dev_priv, 0, KBL_REVID_B0))
>> -		I915_WRITE(GEN6_UCGCTL1, I915_READ(GEN6_UCGCTL1) |
>> +		intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL1, intel_uncore_read(&dev_priv->uncore, GEN6_UCGCTL1) |
>>  			   GEN6_GAMUNIT_CLOCK_GATE_DISABLE);
>>  
>>  	/*
>>  	 * WaFbcTurnOffFbcWatermark:kbl
>>  	 * Display WA #0562: kbl
>>  	 */
>> -	I915_WRITE(DISP_ARB_CTL, I915_READ(DISP_ARB_CTL) |
>> +	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
>>  		   DISP_FBC_WM_DIS);
>>  
>>  	/*
>>  	 * WaFbcNukeOnHostModify:kbl
>>  	 * Display WA #0873: kbl
>>  	 */
>> -	I915_WRITE(ILK_DPFC_CHICKEN, I915_READ(ILK_DPFC_CHICKEN) |
>> +	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN, intel_uncore_read(&dev_priv->uncore, ILK_DPFC_CHICKEN) |
>>  		   ILK_DPFC_NUKE_ON_ANY_MODIFICATION);
>>  }
>>  
>> @@ -7244,32 +7244,32 @@ static void skl_init_clock_gating(struct drm_i915_private *dev_priv)
>>  	gen9_init_clock_gating(dev_priv);
>>  
>>  	/* WaDisableDopClockGating:skl */
>> -	I915_WRITE(GEN7_MISCCPCTL, I915_READ(GEN7_MISCCPCTL) &
>> +	intel_uncore_write(&dev_priv->uncore, GEN7_MISCCPCTL, intel_uncore_read(&dev_priv->uncore, GEN7_MISCCPCTL) &
>>  		   ~GEN7_DOP_CLOCK_GATE_ENABLE);
>>  
>>  	/* WAC6entrylatency:skl */
>> -	I915_WRITE(FBC_LLC_READ_CTRL, I915_READ(FBC_LLC_READ_CTRL) |
>> +	intel_uncore_write(&dev_priv->uncore, FBC_LLC_READ_CTRL, intel_uncore_read(&dev_priv->uncore, FBC_LLC_READ_CTRL) |
>>  		   FBC_LLC_FULLY_OPEN);
>>  
>>  	/*
>>  	 * WaFbcTurnOffFbcWatermark:skl
>>  	 * Display WA #0562: skl
>>  	 */
>> -	I915_WRITE(DISP_ARB_CTL, I915_READ(DISP_ARB_CTL) |
>> +	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
>>  		   DISP_FBC_WM_DIS);
>>  
>>  	/*
>>  	 * WaFbcNukeOnHostModify:skl
>>  	 * Display WA #0873: skl
>>  	 */
>> -	I915_WRITE(ILK_DPFC_CHICKEN, I915_READ(ILK_DPFC_CHICKEN) |
>> +	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN, intel_uncore_read(&dev_priv->uncore, ILK_DPFC_CHICKEN) |
>>  		   ILK_DPFC_NUKE_ON_ANY_MODIFICATION);
>>  
>>  	/*
>>  	 * WaFbcHighMemBwCorruptionAvoidance:skl
>>  	 * Display WA #0883: skl
>>  	 */
>> -	I915_WRITE(ILK_DPFC_CHICKEN, I915_READ(ILK_DPFC_CHICKEN) |
>> +	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN, intel_uncore_read(&dev_priv->uncore, ILK_DPFC_CHICKEN) |
>>  		   ILK_DPFC_DISABLE_DUMMY0);
>>  }
>>  
>> @@ -7278,42 +7278,42 @@ static void bdw_init_clock_gating(struct drm_i915_private *dev_priv)
>>  	enum pipe pipe;
>>  
>>  	/* WaFbcAsynchFlipDisableFbcQueue:hsw,bdw */
>> -	I915_WRITE(CHICKEN_PIPESL_1(PIPE_A),
>> -		   I915_READ(CHICKEN_PIPESL_1(PIPE_A)) |
>> +	intel_uncore_write(&dev_priv->uncore, CHICKEN_PIPESL_1(PIPE_A),
>> +		   intel_uncore_read(&dev_priv->uncore, CHICKEN_PIPESL_1(PIPE_A)) |
>>  		   HSW_FBCQ_DIS);
>>  
>>  	/* WaSwitchSolVfFArbitrationPriority:bdw */
>> -	I915_WRITE(GAM_ECOCHK, I915_READ(GAM_ECOCHK) | HSW_ECOCHK_ARB_PRIO_SOL);
>> +	intel_uncore_write(&dev_priv->uncore, GAM_ECOCHK, intel_uncore_read(&dev_priv->uncore, GAM_ECOCHK) | HSW_ECOCHK_ARB_PRIO_SOL);
>>  
>>  	/* WaPsrDPAMaskVBlankInSRD:bdw */
>> -	I915_WRITE(CHICKEN_PAR1_1,
>> -		   I915_READ(CHICKEN_PAR1_1) | DPA_MASK_VBLANK_SRD);
>> +	intel_uncore_write(&dev_priv->uncore, CHICKEN_PAR1_1,
>> +		   intel_uncore_read(&dev_priv->uncore, CHICKEN_PAR1_1) | DPA_MASK_VBLANK_SRD);
>>  
>>  	/* WaPsrDPRSUnmaskVBlankInSRD:bdw */
>>  	for_each_pipe(dev_priv, pipe) {
>> -		I915_WRITE(CHICKEN_PIPESL_1(pipe),
>> -			   I915_READ(CHICKEN_PIPESL_1(pipe)) |
>> +		intel_uncore_write(&dev_priv->uncore, CHICKEN_PIPESL_1(pipe),
>> +			   intel_uncore_read(&dev_priv->uncore, CHICKEN_PIPESL_1(pipe)) |
>>  			   BDW_DPRS_MASK_VBLANK_SRD);
>>  	}
>>  
>>  	/* WaVSRefCountFullforceMissDisable:bdw */
>>  	/* WaDSRefCountFullforceMissDisable:bdw */
>> -	I915_WRITE(GEN7_FF_THREAD_MODE,
>> -		   I915_READ(GEN7_FF_THREAD_MODE) &
>> +	intel_uncore_write(&dev_priv->uncore, GEN7_FF_THREAD_MODE,
>> +		   intel_uncore_read(&dev_priv->uncore, GEN7_FF_THREAD_MODE) &
>>  		   ~(GEN8_FF_DS_REF_CNT_FFME | GEN7_FF_VS_REF_CNT_FFME));
>>  
>> -	I915_WRITE(GEN6_RC_SLEEP_PSMI_CONTROL,
>> +	intel_uncore_write(&dev_priv->uncore, GEN6_RC_SLEEP_PSMI_CONTROL,
>>  		   _MASKED_BIT_ENABLE(GEN8_RC_SEMA_IDLE_MSG_DISABLE));
>>  
>>  	/* WaDisableSDEUnitClockGating:bdw */
>> -	I915_WRITE(GEN8_UCGCTL6, I915_READ(GEN8_UCGCTL6) |
>> +	intel_uncore_write(&dev_priv->uncore, GEN8_UCGCTL6, intel_uncore_read(&dev_priv->uncore, GEN8_UCGCTL6) |
>>  		   GEN8_SDEUNIT_CLOCK_GATE_DISABLE);
>>  
>>  	/* WaProgramL3SqcReg1Default:bdw */
>>  	gen8_set_l3sqc_credits(dev_priv, 30, 2);
>>  
>>  	/* WaKVMNotificationOnConfigChange:bdw */
>> -	I915_WRITE(CHICKEN_PAR2_1, I915_READ(CHICKEN_PAR2_1)
>> +	intel_uncore_write(&dev_priv->uncore, CHICKEN_PAR2_1, intel_uncore_read(&dev_priv->uncore, CHICKEN_PAR2_1)
>>  		   | KVM_CONFIG_CHANGE_NOTIFICATION_SELECT);
>>  
>>  	lpt_init_clock_gating(dev_priv);
>> @@ -7323,24 +7323,24 @@ static void bdw_init_clock_gating(struct drm_i915_private *dev_priv)
>>  	 * Also see the CHICKEN2 write in bdw_init_workarounds() to disable DOP
>>  	 * clock gating.
>>  	 */
>> -	I915_WRITE(GEN6_UCGCTL1,
>> -		   I915_READ(GEN6_UCGCTL1) | GEN6_EU_TCUNIT_CLOCK_GATE_DISABLE);
>> +	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL1,
>> +		   intel_uncore_read(&dev_priv->uncore, GEN6_UCGCTL1) | GEN6_EU_TCUNIT_CLOCK_GATE_DISABLE);
>>  }
>>  
>>  static void hsw_init_clock_gating(struct drm_i915_private *dev_priv)
>>  {
>>  	/* WaFbcAsynchFlipDisableFbcQueue:hsw,bdw */
>> -	I915_WRITE(CHICKEN_PIPESL_1(PIPE_A),
>> -		   I915_READ(CHICKEN_PIPESL_1(PIPE_A)) |
>> +	intel_uncore_write(&dev_priv->uncore, CHICKEN_PIPESL_1(PIPE_A),
>> +		   intel_uncore_read(&dev_priv->uncore, CHICKEN_PIPESL_1(PIPE_A)) |
>>  		   HSW_FBCQ_DIS);
>>  
>>  	/* This is required by WaCatErrorRejectionIssue:hsw */
>> -	I915_WRITE(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
>> -		   I915_READ(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
>> +	intel_uncore_write(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
>> +		   intel_uncore_read(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
>>  		   GEN7_SQ_CHICKEN_MBCUNIT_SQINTMOB);
>>  
>>  	/* WaSwitchSolVfFArbitrationPriority:hsw */
>> -	I915_WRITE(GAM_ECOCHK, I915_READ(GAM_ECOCHK) | HSW_ECOCHK_ARB_PRIO_SOL);
>> +	intel_uncore_write(&dev_priv->uncore, GAM_ECOCHK, intel_uncore_read(&dev_priv->uncore, GAM_ECOCHK) | HSW_ECOCHK_ARB_PRIO_SOL);
>>  
>>  	lpt_init_clock_gating(dev_priv);
>>  }
>> @@ -7349,26 +7349,26 @@ static void ivb_init_clock_gating(struct drm_i915_private *dev_priv)
>>  {
>>  	u32 snpcr;
>>  
>> -	I915_WRITE(ILK_DSPCLK_GATE_D, ILK_VRHUNIT_CLOCK_GATE_DISABLE);
>> +	intel_uncore_write(&dev_priv->uncore, ILK_DSPCLK_GATE_D, ILK_VRHUNIT_CLOCK_GATE_DISABLE);
>>  
>>  	/* WaFbcAsynchFlipDisableFbcQueue:ivb */
>> -	I915_WRITE(ILK_DISPLAY_CHICKEN1,
>> -		   I915_READ(ILK_DISPLAY_CHICKEN1) |
>> +	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1,
>> +		   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1) |
>>  		   ILK_FBCQ_DIS);
>>  
>>  	/* WaDisableBackToBackFlipFix:ivb */
>> -	I915_WRITE(IVB_CHICKEN3,
>> +	intel_uncore_write(&dev_priv->uncore, IVB_CHICKEN3,
>>  		   CHICKEN3_DGMG_REQ_OUT_FIX_DISABLE |
>>  		   CHICKEN3_DGMG_DONE_FIX_DISABLE);
>>  
>>  	if (IS_IVB_GT1(dev_priv))
>> -		I915_WRITE(GEN7_ROW_CHICKEN2,
>> +		intel_uncore_write(&dev_priv->uncore, GEN7_ROW_CHICKEN2,
>>  			   _MASKED_BIT_ENABLE(DOP_CLOCK_GATING_DISABLE));
>>  	else {
>>  		/* must write both registers */
>> -		I915_WRITE(GEN7_ROW_CHICKEN2,
>> +		intel_uncore_write(&dev_priv->uncore, GEN7_ROW_CHICKEN2,
>>  			   _MASKED_BIT_ENABLE(DOP_CLOCK_GATING_DISABLE));
>> -		I915_WRITE(GEN7_ROW_CHICKEN2_GT2,
>> +		intel_uncore_write(&dev_priv->uncore, GEN7_ROW_CHICKEN2_GT2,
>>  			   _MASKED_BIT_ENABLE(DOP_CLOCK_GATING_DISABLE));
>>  	}
>>  
>> @@ -7376,20 +7376,20 @@ static void ivb_init_clock_gating(struct drm_i915_private *dev_priv)
>>  	 * According to the spec, bit 13 (RCZUNIT) must be set on IVB.
>>  	 * This implements the WaDisableRCZUnitClockGating:ivb workaround.
>>  	 */
>> -	I915_WRITE(GEN6_UCGCTL2,
>> +	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL2,
>>  		   GEN6_RCZUNIT_CLOCK_GATE_DISABLE);
>>  
>>  	/* This is required by WaCatErrorRejectionIssue:ivb */
>> -	I915_WRITE(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
>> -			I915_READ(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
>> +	intel_uncore_write(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
>> +			intel_uncore_read(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
>>  			GEN7_SQ_CHICKEN_MBCUNIT_SQINTMOB);
>>  
>>  	g4x_disable_trickle_feed(dev_priv);
>>  
>> -	snpcr = I915_READ(GEN6_MBCUNIT_SNPCR);
>> +	snpcr = intel_uncore_read(&dev_priv->uncore, GEN6_MBCUNIT_SNPCR);
>>  	snpcr &= ~GEN6_MBC_SNPCR_MASK;
>>  	snpcr |= GEN6_MBC_SNPCR_MED;
>> -	I915_WRITE(GEN6_MBCUNIT_SNPCR, snpcr);
>> +	intel_uncore_write(&dev_priv->uncore, GEN6_MBCUNIT_SNPCR, snpcr);
>>  
>>  	if (!HAS_PCH_NOP(dev_priv))
>>  		cpt_init_clock_gating(dev_priv);
>> @@ -7400,58 +7400,58 @@ static void ivb_init_clock_gating(struct drm_i915_private *dev_priv)
>>  static void vlv_init_clock_gating(struct drm_i915_private *dev_priv)
>>  {
>>  	/* WaDisableBackToBackFlipFix:vlv */
>> -	I915_WRITE(IVB_CHICKEN3,
>> +	intel_uncore_write(&dev_priv->uncore, IVB_CHICKEN3,
>>  		   CHICKEN3_DGMG_REQ_OUT_FIX_DISABLE |
>>  		   CHICKEN3_DGMG_DONE_FIX_DISABLE);
>>  
>>  	/* WaDisableDopClockGating:vlv */
>> -	I915_WRITE(GEN7_ROW_CHICKEN2,
>> +	intel_uncore_write(&dev_priv->uncore, GEN7_ROW_CHICKEN2,
>>  		   _MASKED_BIT_ENABLE(DOP_CLOCK_GATING_DISABLE));
>>  
>>  	/* This is required by WaCatErrorRejectionIssue:vlv */
>> -	I915_WRITE(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
>> -		   I915_READ(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
>> +	intel_uncore_write(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
>> +		   intel_uncore_read(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
>>  		   GEN7_SQ_CHICKEN_MBCUNIT_SQINTMOB);
>>  
>>  	/*
>>  	 * According to the spec, bit 13 (RCZUNIT) must be set on IVB.
>>  	 * This implements the WaDisableRCZUnitClockGating:vlv workaround.
>>  	 */
>> -	I915_WRITE(GEN6_UCGCTL2,
>> +	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL2,
>>  		   GEN6_RCZUNIT_CLOCK_GATE_DISABLE);
>>  
>>  	/* WaDisableL3Bank2xClockGate:vlv
>>  	 * Disabling L3 clock gating- MMIO 940c[25] = 1
>>  	 * Set bit 25, to disable L3_BANK_2x_CLK_GATING */
>> -	I915_WRITE(GEN7_UCGCTL4,
>> -		   I915_READ(GEN7_UCGCTL4) | GEN7_L3BANK2X_CLOCK_GATE_DISABLE);
>> +	intel_uncore_write(&dev_priv->uncore, GEN7_UCGCTL4,
>> +		   intel_uncore_read(&dev_priv->uncore, GEN7_UCGCTL4) | GEN7_L3BANK2X_CLOCK_GATE_DISABLE);
>>  
>>  	/*
>>  	 * WaDisableVLVClockGating_VBIIssue:vlv
>>  	 * Disable clock gating on th GCFG unit to prevent a delay
>>  	 * in the reporting of vblank events.
>>  	 */
>> -	I915_WRITE(VLV_GUNIT_CLOCK_GATE, GCFG_DIS);
>> +	intel_uncore_write(&dev_priv->uncore, VLV_GUNIT_CLOCK_GATE, GCFG_DIS);
>>  }
>>  
>>  static void chv_init_clock_gating(struct drm_i915_private *dev_priv)
>>  {
>>  	/* WaVSRefCountFullforceMissDisable:chv */
>>  	/* WaDSRefCountFullforceMissDisable:chv */
>> -	I915_WRITE(GEN7_FF_THREAD_MODE,
>> -		   I915_READ(GEN7_FF_THREAD_MODE) &
>> +	intel_uncore_write(&dev_priv->uncore, GEN7_FF_THREAD_MODE,
>> +		   intel_uncore_read(&dev_priv->uncore, GEN7_FF_THREAD_MODE) &
>>  		   ~(GEN8_FF_DS_REF_CNT_FFME | GEN7_FF_VS_REF_CNT_FFME));
>>  
>>  	/* WaDisableSemaphoreAndSyncFlipWait:chv */
>> -	I915_WRITE(GEN6_RC_SLEEP_PSMI_CONTROL,
>> +	intel_uncore_write(&dev_priv->uncore, GEN6_RC_SLEEP_PSMI_CONTROL,
>>  		   _MASKED_BIT_ENABLE(GEN8_RC_SEMA_IDLE_MSG_DISABLE));
>>  
>>  	/* WaDisableCSUnitClockGating:chv */
>> -	I915_WRITE(GEN6_UCGCTL1, I915_READ(GEN6_UCGCTL1) |
>> +	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL1, intel_uncore_read(&dev_priv->uncore, GEN6_UCGCTL1) |
>>  		   GEN6_CSUNIT_CLOCK_GATE_DISABLE);
>>  
>>  	/* WaDisableSDEUnitClockGating:chv */
>> -	I915_WRITE(GEN8_UCGCTL6, I915_READ(GEN8_UCGCTL6) |
>> +	intel_uncore_write(&dev_priv->uncore, GEN8_UCGCTL6, intel_uncore_read(&dev_priv->uncore, GEN8_UCGCTL6) |
>>  		   GEN8_SDEUNIT_CLOCK_GATE_DISABLE);
>>  
>>  	/*
>> @@ -7466,17 +7466,17 @@ static void g4x_init_clock_gating(struct drm_i915_private *dev_priv)
>>  {
>>  	u32 dspclk_gate;
>>  
>> -	I915_WRITE(RENCLK_GATE_D1, 0);
>> -	I915_WRITE(RENCLK_GATE_D2, VF_UNIT_CLOCK_GATE_DISABLE |
>> +	intel_uncore_write(&dev_priv->uncore, RENCLK_GATE_D1, 0);
>> +	intel_uncore_write(&dev_priv->uncore, RENCLK_GATE_D2, VF_UNIT_CLOCK_GATE_DISABLE |
>>  		   GS_UNIT_CLOCK_GATE_DISABLE |
>>  		   CL_UNIT_CLOCK_GATE_DISABLE);
>> -	I915_WRITE(RAMCLK_GATE_D, 0);
>> +	intel_uncore_write(&dev_priv->uncore, RAMCLK_GATE_D, 0);
>>  	dspclk_gate = VRHUNIT_CLOCK_GATE_DISABLE |
>>  		OVRUNIT_CLOCK_GATE_DISABLE |
>>  		OVCUNIT_CLOCK_GATE_DISABLE;
>>  	if (IS_GM45(dev_priv))
>>  		dspclk_gate |= DSSUNIT_CLOCK_GATE_DISABLE;
>> -	I915_WRITE(DSPCLK_GATE_D, dspclk_gate);
>> +	intel_uncore_write(&dev_priv->uncore, DSPCLK_GATE_D, dspclk_gate);
>>  
>>  	g4x_disable_trickle_feed(dev_priv);
>>  }
>> @@ -7497,49 +7497,49 @@ static void i965gm_init_clock_gating(struct drm_i915_private *dev_priv)
>>  
>>  static void i965g_init_clock_gating(struct drm_i915_private *dev_priv)
>>  {
>> -	I915_WRITE(RENCLK_GATE_D1, I965_RCZ_CLOCK_GATE_DISABLE |
>> +	intel_uncore_write(&dev_priv->uncore, RENCLK_GATE_D1, I965_RCZ_CLOCK_GATE_DISABLE |
>>  		   I965_RCC_CLOCK_GATE_DISABLE |
>>  		   I965_RCPB_CLOCK_GATE_DISABLE |
>>  		   I965_ISC_CLOCK_GATE_DISABLE |
>>  		   I965_FBC_CLOCK_GATE_DISABLE);
>> -	I915_WRITE(RENCLK_GATE_D2, 0);
>> -	I915_WRITE(MI_ARB_STATE,
>> +	intel_uncore_write(&dev_priv->uncore, RENCLK_GATE_D2, 0);
>> +	intel_uncore_write(&dev_priv->uncore, MI_ARB_STATE,
>>  		   _MASKED_BIT_ENABLE(MI_ARB_DISPLAY_TRICKLE_FEED_DISABLE));
>>  }
>>  
>>  static void gen3_init_clock_gating(struct drm_i915_private *dev_priv)
>>  {
>> -	u32 dstate = I915_READ(D_STATE);
>> +	u32 dstate = intel_uncore_read(&dev_priv->uncore, D_STATE);
>>  
>>  	dstate |= DSTATE_PLL_D3_OFF | DSTATE_GFX_CLOCK_GATING |
>>  		DSTATE_DOT_CLOCK_GATING;
>> -	I915_WRITE(D_STATE, dstate);
>> +	intel_uncore_write(&dev_priv->uncore, D_STATE, dstate);
>>  
>>  	if (IS_PINEVIEW(dev_priv))
>> -		I915_WRITE(ECOSKPD, _MASKED_BIT_ENABLE(ECO_GATING_CX_ONLY));
>> +		intel_uncore_write(&dev_priv->uncore, ECOSKPD, _MASKED_BIT_ENABLE(ECO_GATING_CX_ONLY));
>>  
>>  	/* IIR "flip pending" means done if this bit is set */
>> -	I915_WRITE(ECOSKPD, _MASKED_BIT_DISABLE(ECO_FLIP_DONE));
>> +	intel_uncore_write(&dev_priv->uncore, ECOSKPD, _MASKED_BIT_DISABLE(ECO_FLIP_DONE));
>>  
>>  	/* interrupts should cause a wake up from C3 */
>> -	I915_WRITE(INSTPM, _MASKED_BIT_ENABLE(INSTPM_AGPBUSY_INT_EN));
>> +	intel_uncore_write(&dev_priv->uncore, INSTPM, _MASKED_BIT_ENABLE(INSTPM_AGPBUSY_INT_EN));
>>  
>>  	/* On GEN3 we really need to make sure the ARB C3 LP bit is set */
>> -	I915_WRITE(MI_ARB_STATE, _MASKED_BIT_ENABLE(MI_ARB_C3_LP_WRITE_ENABLE));
>> +	intel_uncore_write(&dev_priv->uncore, MI_ARB_STATE, _MASKED_BIT_ENABLE(MI_ARB_C3_LP_WRITE_ENABLE));
>>  
>> -	I915_WRITE(MI_ARB_STATE,
>> +	intel_uncore_write(&dev_priv->uncore, MI_ARB_STATE,
>>  		   _MASKED_BIT_ENABLE(MI_ARB_DISPLAY_TRICKLE_FEED_DISABLE));
>>  }
>>  
>>  static void i85x_init_clock_gating(struct drm_i915_private *dev_priv)
>>  {
>> -	I915_WRITE(RENCLK_GATE_D1, SV_CLOCK_GATE_DISABLE);
>> +	intel_uncore_write(&dev_priv->uncore, RENCLK_GATE_D1, SV_CLOCK_GATE_DISABLE);
>>  
>>  	/* interrupts should cause a wake up from C3 */
>> -	I915_WRITE(MI_STATE, _MASKED_BIT_ENABLE(MI_AGPBUSY_INT_EN) |
>> +	intel_uncore_write(&dev_priv->uncore, MI_STATE, _MASKED_BIT_ENABLE(MI_AGPBUSY_INT_EN) |
>>  		   _MASKED_BIT_DISABLE(MI_AGPBUSY_830_MODE));
>>  
>> -	I915_WRITE(MEM_MODE,
>> +	intel_uncore_write(&dev_priv->uncore, MEM_MODE,
>>  		   _MASKED_BIT_ENABLE(MEM_DISPLAY_TRICKLE_FEED_DISABLE));
>>  
>>  	/*
>> @@ -7549,13 +7549,13 @@ static void i85x_init_clock_gating(struct drm_i915_private *dev_priv)
>>  	 * abosultely nothing) would not allow FBC to recompress
>>  	 * until a 2D blit occurs.
>>  	 */
>> -	I915_WRITE(SCPD0,
>> +	intel_uncore_write(&dev_priv->uncore, SCPD0,
>>  		   _MASKED_BIT_ENABLE(SCPD_FBC_IGNORE_3D));
>>  }
>>  
>>  static void i830_init_clock_gating(struct drm_i915_private *dev_priv)
>>  {
>> -	I915_WRITE(MEM_MODE,
>> +	intel_uncore_write(&dev_priv->uncore, MEM_MODE,
>>  		   _MASKED_BIT_ENABLE(MEM_DISPLAY_A_TRICKLE_FEED_DISABLE) |
>>  		   _MASKED_BIT_ENABLE(MEM_DISPLAY_B_TRICKLE_FEED_DISABLE));
>>  }
>> -- 
>> 2.20.1
>> 
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Intel-gfx] [PATCH 7/9] drm/i915/pm: replace I915_READ()/WRITE() with intel_uncore_read()/write()
  2020-11-13  7:47     ` Jani Nikula
@ 2020-11-14 20:34       ` Rodrigo Vivi
  0 siblings, 0 replies; 26+ messages in thread
From: Rodrigo Vivi @ 2020-11-14 20:34 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

On Fri, Nov 13, 2020 at 09:47:07AM +0200, Jani Nikula wrote:
> On Thu, 12 Nov 2020, Rodrigo Vivi <rodrigo.vivi@intel.com> wrote:
> > On Thu, Nov 12, 2020 at 01:44:40PM +0200, Jani Nikula wrote:
> >> Arguably some of these should use intel_de_read() or intel_de_write(),
> >> however not all. Prioritize I915_READ() and I915_WRITE() removal in
> >> general over migrating to the pedantically correct replacements right
> >> away.
> >> 
> >> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> >> ---
> >>  drivers/gpu/drm/i915/intel_pm.c | 552 ++++++++++++++++----------------
> >>  1 file changed, 276 insertions(+), 276 deletions(-)
> >> 
> >> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> >> index bbec56f97832..c0ed82665706 100644
> >> --- a/drivers/gpu/drm/i915/intel_pm.c
> >> +++ b/drivers/gpu/drm/i915/intel_pm.c
> >> @@ -81,24 +81,24 @@ static void gen9_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  		 * Must match Sampler, Pixel Back End, and Media. See
> >>  		 * WaCompressedResourceSamplerPbeMediaNewHashMode.
> >>  		 */
> >> -		I915_WRITE(CHICKEN_PAR1_1,
> >> -			   I915_READ(CHICKEN_PAR1_1) |
> >> +		intel_uncore_write(&dev_priv->uncore, CHICKEN_PAR1_1,
> >> +			   intel_uncore_read(&dev_priv->uncore, CHICKEN_PAR1_1) |
> >
> > why not converting them to rmw?
> 
> That's actually a functional change I didn't want to make. The rmw
> function only writes if the value has changed, while the code currently
> writes unconditionally. I'd have to check the registers whether that
> makes a difference. Likely not for most registers, but also don't want
> to introduce subtle bugs with a superficially non-functional conversion.

It makes a lot of sense. Recently, I had similar concern with this rmw
function exactly because it was not necessarily doing the write call.

> 
> BR,
> Jani.
> 
> 
> >
> >>  			   SKL_DE_COMPRESSED_HASH_MODE);
> >>  	}
> >>  
> >>  	/* See Bspec note for PSR2_CTL bit 31, Wa#828:skl,bxt,kbl,cfl */
> >> -	I915_WRITE(CHICKEN_PAR1_1,
> >> -		   I915_READ(CHICKEN_PAR1_1) | SKL_EDP_PSR_FIX_RDWRAP);
> >> +	intel_uncore_write(&dev_priv->uncore, CHICKEN_PAR1_1,
> >> +		   intel_uncore_read(&dev_priv->uncore, CHICKEN_PAR1_1) | SKL_EDP_PSR_FIX_RDWRAP);
> >>  
> >>  	/* WaEnableChickenDCPR:skl,bxt,kbl,glk,cfl */
> >> -	I915_WRITE(GEN8_CHICKEN_DCPR_1,
> >> -		   I915_READ(GEN8_CHICKEN_DCPR_1) | MASK_WAKEMEM);
> >> +	intel_uncore_write(&dev_priv->uncore, GEN8_CHICKEN_DCPR_1,
> >> +		   intel_uncore_read(&dev_priv->uncore, GEN8_CHICKEN_DCPR_1) | MASK_WAKEMEM);
> >>  
> >>  	/*
> >>  	 * WaFbcWakeMemOn:skl,bxt,kbl,glk,cfl
> >>  	 * Display WA #0859: skl,bxt,kbl,glk,cfl
> >>  	 */
> >> -	I915_WRITE(DISP_ARB_CTL, I915_READ(DISP_ARB_CTL) |
> >> +	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
> >>  		   DISP_FBC_MEMORY_WAKE);
> >>  }
> >>  
> >> @@ -107,21 +107,21 @@ static void bxt_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  	gen9_init_clock_gating(dev_priv);
> >>  
> >>  	/* WaDisableSDEUnitClockGating:bxt */
> >> -	I915_WRITE(GEN8_UCGCTL6, I915_READ(GEN8_UCGCTL6) |
> >> +	intel_uncore_write(&dev_priv->uncore, GEN8_UCGCTL6, intel_uncore_read(&dev_priv->uncore, GEN8_UCGCTL6) |
> >>  		   GEN8_SDEUNIT_CLOCK_GATE_DISABLE);
> >>  
> >>  	/*
> >>  	 * FIXME:
> >>  	 * GEN8_HDCUNIT_CLOCK_GATE_DISABLE_HDCREQ applies on 3x6 GT SKUs only.
> >>  	 */
> >> -	I915_WRITE(GEN8_UCGCTL6, I915_READ(GEN8_UCGCTL6) |
> >> +	intel_uncore_write(&dev_priv->uncore, GEN8_UCGCTL6, intel_uncore_read(&dev_priv->uncore, GEN8_UCGCTL6) |
> >>  		   GEN8_HDCUNIT_CLOCK_GATE_DISABLE_HDCREQ);
> >>  
> >>  	/*
> >>  	 * Wa: Backlight PWM may stop in the asserted state, causing backlight
> >>  	 * to stay fully on.
> >>  	 */
> >> -	I915_WRITE(GEN9_CLKGATE_DIS_0, I915_READ(GEN9_CLKGATE_DIS_0) |
> >> +	intel_uncore_write(&dev_priv->uncore, GEN9_CLKGATE_DIS_0, intel_uncore_read(&dev_priv->uncore, GEN9_CLKGATE_DIS_0) |
> >>  		   PWM1_GATING_DIS | PWM2_GATING_DIS);
> >>  
> >>  	/*
> >> @@ -130,20 +130,20 @@ static void bxt_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  	 * is off and a MMIO access is attempted by any privilege
> >>  	 * application, using batch buffers or any other means.
> >>  	 */
> >> -	I915_WRITE(RM_TIMEOUT, MMIO_TIMEOUT_US(950));
> >> +	intel_uncore_write(&dev_priv->uncore, RM_TIMEOUT, MMIO_TIMEOUT_US(950));
> >>  
> >>  	/*
> >>  	 * WaFbcTurnOffFbcWatermark:bxt
> >>  	 * Display WA #0562: bxt
> >>  	 */
> >> -	I915_WRITE(DISP_ARB_CTL, I915_READ(DISP_ARB_CTL) |
> >> +	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
> >>  		   DISP_FBC_WM_DIS);
> >>  
> >>  	/*
> >>  	 * WaFbcHighMemBwCorruptionAvoidance:bxt
> >>  	 * Display WA #0883: bxt
> >>  	 */
> >> -	I915_WRITE(ILK_DPFC_CHICKEN, I915_READ(ILK_DPFC_CHICKEN) |
> >> +	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN, intel_uncore_read(&dev_priv->uncore, ILK_DPFC_CHICKEN) |
> >>  		   ILK_DPFC_DISABLE_DUMMY0);
> >>  }
> >>  
> >> @@ -156,7 +156,7 @@ static void glk_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  	 * Backlight PWM may stop in the asserted state, causing backlight
> >>  	 * to stay fully on.
> >>  	 */
> >> -	I915_WRITE(GEN9_CLKGATE_DIS_0, I915_READ(GEN9_CLKGATE_DIS_0) |
> >> +	intel_uncore_write(&dev_priv->uncore, GEN9_CLKGATE_DIS_0, intel_uncore_read(&dev_priv->uncore, GEN9_CLKGATE_DIS_0) |
> >>  		   PWM1_GATING_DIS | PWM2_GATING_DIS);
> >>  }
> >>  
> >> @@ -164,7 +164,7 @@ static void pnv_get_mem_freq(struct drm_i915_private *dev_priv)
> >>  {
> >>  	u32 tmp;
> >>  
> >> -	tmp = I915_READ(CLKCFG);
> >> +	tmp = intel_uncore_read(&dev_priv->uncore, CLKCFG);
> >>  
> >>  	switch (tmp & CLKCFG_FSB_MASK) {
> >>  	case CLKCFG_FSB_533:
> >> @@ -194,7 +194,7 @@ static void pnv_get_mem_freq(struct drm_i915_private *dev_priv)
> >>  	}
> >>  
> >>  	/* detect pineview DDR3 setting */
> >> -	tmp = I915_READ(CSHRDDR3CTL);
> >> +	tmp = intel_uncore_read(&dev_priv->uncore, CSHRDDR3CTL);
> >>  	dev_priv->is_ddr3 = (tmp & CSHRDDR3CTL_DDR3) ? 1 : 0;
> >>  }
> >>  
> >> @@ -365,39 +365,39 @@ static bool _intel_set_memory_cxsr(struct drm_i915_private *dev_priv, bool enabl
> >>  	u32 val;
> >>  
> >>  	if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
> >> -		was_enabled = I915_READ(FW_BLC_SELF_VLV) & FW_CSPWRDWNEN;
> >> -		I915_WRITE(FW_BLC_SELF_VLV, enable ? FW_CSPWRDWNEN : 0);
> >> -		POSTING_READ(FW_BLC_SELF_VLV);
> >> +		was_enabled = intel_uncore_read(&dev_priv->uncore, FW_BLC_SELF_VLV) & FW_CSPWRDWNEN;
> >> +		intel_uncore_write(&dev_priv->uncore, FW_BLC_SELF_VLV, enable ? FW_CSPWRDWNEN : 0);
> >> +		intel_uncore_posting_read(&dev_priv->uncore, FW_BLC_SELF_VLV);
> >>  	} else if (IS_G4X(dev_priv) || IS_I965GM(dev_priv)) {
> >> -		was_enabled = I915_READ(FW_BLC_SELF) & FW_BLC_SELF_EN;
> >> -		I915_WRITE(FW_BLC_SELF, enable ? FW_BLC_SELF_EN : 0);
> >> -		POSTING_READ(FW_BLC_SELF);
> >> +		was_enabled = intel_uncore_read(&dev_priv->uncore, FW_BLC_SELF) & FW_BLC_SELF_EN;
> >> +		intel_uncore_write(&dev_priv->uncore, FW_BLC_SELF, enable ? FW_BLC_SELF_EN : 0);
> >> +		intel_uncore_posting_read(&dev_priv->uncore, FW_BLC_SELF);
> >>  	} else if (IS_PINEVIEW(dev_priv)) {
> >> -		val = I915_READ(DSPFW3);
> >> +		val = intel_uncore_read(&dev_priv->uncore, DSPFW3);
> >>  		was_enabled = val & PINEVIEW_SELF_REFRESH_EN;
> >>  		if (enable)
> >>  			val |= PINEVIEW_SELF_REFRESH_EN;
> >>  		else
> >>  			val &= ~PINEVIEW_SELF_REFRESH_EN;
> >> -		I915_WRITE(DSPFW3, val);
> >> -		POSTING_READ(DSPFW3);
> >> +		intel_uncore_write(&dev_priv->uncore, DSPFW3, val);
> >> +		intel_uncore_posting_read(&dev_priv->uncore, DSPFW3);
> >>  	} else if (IS_I945G(dev_priv) || IS_I945GM(dev_priv)) {
> >> -		was_enabled = I915_READ(FW_BLC_SELF) & FW_BLC_SELF_EN;
> >> +		was_enabled = intel_uncore_read(&dev_priv->uncore, FW_BLC_SELF) & FW_BLC_SELF_EN;
> >>  		val = enable ? _MASKED_BIT_ENABLE(FW_BLC_SELF_EN) :
> >>  			       _MASKED_BIT_DISABLE(FW_BLC_SELF_EN);
> >> -		I915_WRITE(FW_BLC_SELF, val);
> >> -		POSTING_READ(FW_BLC_SELF);
> >> +		intel_uncore_write(&dev_priv->uncore, FW_BLC_SELF, val);
> >> +		intel_uncore_posting_read(&dev_priv->uncore, FW_BLC_SELF);
> >>  	} else if (IS_I915GM(dev_priv)) {
> >>  		/*
> >>  		 * FIXME can't find a bit like this for 915G, and
> >>  		 * and yet it does have the related watermark in
> >>  		 * FW_BLC_SELF. What's going on?
> >>  		 */
> >> -		was_enabled = I915_READ(INSTPM) & INSTPM_SELF_EN;
> >> +		was_enabled = intel_uncore_read(&dev_priv->uncore, INSTPM) & INSTPM_SELF_EN;
> >>  		val = enable ? _MASKED_BIT_ENABLE(INSTPM_SELF_EN) :
> >>  			       _MASKED_BIT_DISABLE(INSTPM_SELF_EN);
> >> -		I915_WRITE(INSTPM, val);
> >> -		POSTING_READ(INSTPM);
> >> +		intel_uncore_write(&dev_priv->uncore, INSTPM, val);
> >> +		intel_uncore_posting_read(&dev_priv->uncore, INSTPM);
> >>  	} else {
> >>  		return false;
> >>  	}
> >> @@ -493,20 +493,20 @@ static void vlv_get_fifo_size(struct intel_crtc_state *crtc_state)
> >>  
> >>  	switch (pipe) {
> >>  	case PIPE_A:
> >> -		dsparb = I915_READ(DSPARB);
> >> -		dsparb2 = I915_READ(DSPARB2);
> >> +		dsparb = intel_uncore_read(&dev_priv->uncore, DSPARB);
> >> +		dsparb2 = intel_uncore_read(&dev_priv->uncore, DSPARB2);
> >>  		sprite0_start = VLV_FIFO_START(dsparb, dsparb2, 0, 0);
> >>  		sprite1_start = VLV_FIFO_START(dsparb, dsparb2, 8, 4);
> >>  		break;
> >>  	case PIPE_B:
> >> -		dsparb = I915_READ(DSPARB);
> >> -		dsparb2 = I915_READ(DSPARB2);
> >> +		dsparb = intel_uncore_read(&dev_priv->uncore, DSPARB);
> >> +		dsparb2 = intel_uncore_read(&dev_priv->uncore, DSPARB2);
> >>  		sprite0_start = VLV_FIFO_START(dsparb, dsparb2, 16, 8);
> >>  		sprite1_start = VLV_FIFO_START(dsparb, dsparb2, 24, 12);
> >>  		break;
> >>  	case PIPE_C:
> >> -		dsparb2 = I915_READ(DSPARB2);
> >> -		dsparb3 = I915_READ(DSPARB3);
> >> +		dsparb2 = intel_uncore_read(&dev_priv->uncore, DSPARB2);
> >> +		dsparb3 = intel_uncore_read(&dev_priv->uncore, DSPARB3);
> >>  		sprite0_start = VLV_FIFO_START(dsparb3, dsparb2, 0, 16);
> >>  		sprite1_start = VLV_FIFO_START(dsparb3, dsparb2, 8, 20);
> >>  		break;
> >> @@ -524,7 +524,7 @@ static void vlv_get_fifo_size(struct intel_crtc_state *crtc_state)
> >>  static int i9xx_get_fifo_size(struct drm_i915_private *dev_priv,
> >>  			      enum i9xx_plane_id i9xx_plane)
> >>  {
> >> -	u32 dsparb = I915_READ(DSPARB);
> >> +	u32 dsparb = intel_uncore_read(&dev_priv->uncore, DSPARB);
> >>  	int size;
> >>  
> >>  	size = dsparb & 0x7f;
> >> @@ -540,7 +540,7 @@ static int i9xx_get_fifo_size(struct drm_i915_private *dev_priv,
> >>  static int i830_get_fifo_size(struct drm_i915_private *dev_priv,
> >>  			      enum i9xx_plane_id i9xx_plane)
> >>  {
> >> -	u32 dsparb = I915_READ(DSPARB);
> >> +	u32 dsparb = intel_uncore_read(&dev_priv->uncore, DSPARB);
> >>  	int size;
> >>  
> >>  	size = dsparb & 0x1ff;
> >> @@ -557,7 +557,7 @@ static int i830_get_fifo_size(struct drm_i915_private *dev_priv,
> >>  static int i845_get_fifo_size(struct drm_i915_private *dev_priv,
> >>  			      enum i9xx_plane_id i9xx_plane)
> >>  {
> >> -	u32 dsparb = I915_READ(DSPARB);
> >> +	u32 dsparb = intel_uncore_read(&dev_priv->uncore, DSPARB);
> >>  	int size;
> >>  
> >>  	size = dsparb & 0x7f;
> >> @@ -910,38 +910,38 @@ static void pnv_update_wm(struct intel_crtc *unused_crtc)
> >>  		wm = intel_calculate_wm(clock, &pnv_display_wm,
> >>  					pnv_display_wm.fifo_size,
> >>  					cpp, latency->display_sr);
> >> -		reg = I915_READ(DSPFW1);
> >> +		reg = intel_uncore_read(&dev_priv->uncore, DSPFW1);
> >>  		reg &= ~DSPFW_SR_MASK;
> >>  		reg |= FW_WM(wm, SR);
> >> -		I915_WRITE(DSPFW1, reg);
> >> +		intel_uncore_write(&dev_priv->uncore, DSPFW1, reg);
> >>  		drm_dbg_kms(&dev_priv->drm, "DSPFW1 register is %x\n", reg);
> >>  
> >>  		/* cursor SR */
> >>  		wm = intel_calculate_wm(clock, &pnv_cursor_wm,
> >>  					pnv_display_wm.fifo_size,
> >>  					4, latency->cursor_sr);
> >> -		reg = I915_READ(DSPFW3);
> >> +		reg = intel_uncore_read(&dev_priv->uncore, DSPFW3);
> >>  		reg &= ~DSPFW_CURSOR_SR_MASK;
> >>  		reg |= FW_WM(wm, CURSOR_SR);
> >> -		I915_WRITE(DSPFW3, reg);
> >> +		intel_uncore_write(&dev_priv->uncore, DSPFW3, reg);
> >>  
> >>  		/* Display HPLL off SR */
> >>  		wm = intel_calculate_wm(clock, &pnv_display_hplloff_wm,
> >>  					pnv_display_hplloff_wm.fifo_size,
> >>  					cpp, latency->display_hpll_disable);
> >> -		reg = I915_READ(DSPFW3);
> >> +		reg = intel_uncore_read(&dev_priv->uncore, DSPFW3);
> >>  		reg &= ~DSPFW_HPLL_SR_MASK;
> >>  		reg |= FW_WM(wm, HPLL_SR);
> >> -		I915_WRITE(DSPFW3, reg);
> >> +		intel_uncore_write(&dev_priv->uncore, DSPFW3, reg);
> >>  
> >>  		/* cursor HPLL off SR */
> >>  		wm = intel_calculate_wm(clock, &pnv_cursor_hplloff_wm,
> >>  					pnv_display_hplloff_wm.fifo_size,
> >>  					4, latency->cursor_hpll_disable);
> >> -		reg = I915_READ(DSPFW3);
> >> +		reg = intel_uncore_read(&dev_priv->uncore, DSPFW3);
> >>  		reg &= ~DSPFW_HPLL_CURSOR_MASK;
> >>  		reg |= FW_WM(wm, HPLL_CURSOR);
> >> -		I915_WRITE(DSPFW3, reg);
> >> +		intel_uncore_write(&dev_priv->uncore, DSPFW3, reg);
> >>  		drm_dbg_kms(&dev_priv->drm, "DSPFW3 register is %x\n", reg);
> >>  
> >>  		intel_set_memory_cxsr(dev_priv, true);
> >> @@ -975,25 +975,25 @@ static void g4x_write_wm_values(struct drm_i915_private *dev_priv,
> >>  	for_each_pipe(dev_priv, pipe)
> >>  		trace_g4x_wm(intel_get_crtc_for_pipe(dev_priv, pipe), wm);
> >>  
> >> -	I915_WRITE(DSPFW1,
> >> +	intel_uncore_write(&dev_priv->uncore, DSPFW1,
> >>  		   FW_WM(wm->sr.plane, SR) |
> >>  		   FW_WM(wm->pipe[PIPE_B].plane[PLANE_CURSOR], CURSORB) |
> >>  		   FW_WM(wm->pipe[PIPE_B].plane[PLANE_PRIMARY], PLANEB) |
> >>  		   FW_WM(wm->pipe[PIPE_A].plane[PLANE_PRIMARY], PLANEA));
> >> -	I915_WRITE(DSPFW2,
> >> +	intel_uncore_write(&dev_priv->uncore, DSPFW2,
> >>  		   (wm->fbc_en ? DSPFW_FBC_SR_EN : 0) |
> >>  		   FW_WM(wm->sr.fbc, FBC_SR) |
> >>  		   FW_WM(wm->hpll.fbc, FBC_HPLL_SR) |
> >>  		   FW_WM(wm->pipe[PIPE_B].plane[PLANE_SPRITE0], SPRITEB) |
> >>  		   FW_WM(wm->pipe[PIPE_A].plane[PLANE_CURSOR], CURSORA) |
> >>  		   FW_WM(wm->pipe[PIPE_A].plane[PLANE_SPRITE0], SPRITEA));
> >> -	I915_WRITE(DSPFW3,
> >> +	intel_uncore_write(&dev_priv->uncore, DSPFW3,
> >>  		   (wm->hpll_en ? DSPFW_HPLL_SR_EN : 0) |
> >>  		   FW_WM(wm->sr.cursor, CURSOR_SR) |
> >>  		   FW_WM(wm->hpll.cursor, HPLL_CURSOR) |
> >>  		   FW_WM(wm->hpll.plane, HPLL_SR));
> >>  
> >> -	POSTING_READ(DSPFW1);
> >> +	intel_uncore_posting_read(&dev_priv->uncore, DSPFW1);
> >>  }
> >>  
> >>  #define FW_WM_VLV(value, plane) \
> >> @@ -1007,7 +1007,7 @@ static void vlv_write_wm_values(struct drm_i915_private *dev_priv,
> >>  	for_each_pipe(dev_priv, pipe) {
> >>  		trace_vlv_wm(intel_get_crtc_for_pipe(dev_priv, pipe), wm);
> >>  
> >> -		I915_WRITE(VLV_DDL(pipe),
> >> +		intel_uncore_write(&dev_priv->uncore, VLV_DDL(pipe),
> >>  			   (wm->ddl[pipe].plane[PLANE_CURSOR] << DDL_CURSOR_SHIFT) |
> >>  			   (wm->ddl[pipe].plane[PLANE_SPRITE1] << DDL_SPRITE_SHIFT(1)) |
> >>  			   (wm->ddl[pipe].plane[PLANE_SPRITE0] << DDL_SPRITE_SHIFT(0)) |
> >> @@ -1019,35 +1019,35 @@ static void vlv_write_wm_values(struct drm_i915_private *dev_priv,
> >>  	 * high order bits so that there are no out of bounds values
> >>  	 * present in the registers during the reprogramming.
> >>  	 */
> >> -	I915_WRITE(DSPHOWM, 0);
> >> -	I915_WRITE(DSPHOWM1, 0);
> >> -	I915_WRITE(DSPFW4, 0);
> >> -	I915_WRITE(DSPFW5, 0);
> >> -	I915_WRITE(DSPFW6, 0);
> >> +	intel_uncore_write(&dev_priv->uncore, DSPHOWM, 0);
> >> +	intel_uncore_write(&dev_priv->uncore, DSPHOWM1, 0);
> >> +	intel_uncore_write(&dev_priv->uncore, DSPFW4, 0);
> >> +	intel_uncore_write(&dev_priv->uncore, DSPFW5, 0);
> >> +	intel_uncore_write(&dev_priv->uncore, DSPFW6, 0);
> >>  
> >> -	I915_WRITE(DSPFW1,
> >> +	intel_uncore_write(&dev_priv->uncore, DSPFW1,
> >>  		   FW_WM(wm->sr.plane, SR) |
> >>  		   FW_WM(wm->pipe[PIPE_B].plane[PLANE_CURSOR], CURSORB) |
> >>  		   FW_WM_VLV(wm->pipe[PIPE_B].plane[PLANE_PRIMARY], PLANEB) |
> >>  		   FW_WM_VLV(wm->pipe[PIPE_A].plane[PLANE_PRIMARY], PLANEA));
> >> -	I915_WRITE(DSPFW2,
> >> +	intel_uncore_write(&dev_priv->uncore, DSPFW2,
> >>  		   FW_WM_VLV(wm->pipe[PIPE_A].plane[PLANE_SPRITE1], SPRITEB) |
> >>  		   FW_WM(wm->pipe[PIPE_A].plane[PLANE_CURSOR], CURSORA) |
> >>  		   FW_WM_VLV(wm->pipe[PIPE_A].plane[PLANE_SPRITE0], SPRITEA));
> >> -	I915_WRITE(DSPFW3,
> >> +	intel_uncore_write(&dev_priv->uncore, DSPFW3,
> >>  		   FW_WM(wm->sr.cursor, CURSOR_SR));
> >>  
> >>  	if (IS_CHERRYVIEW(dev_priv)) {
> >> -		I915_WRITE(DSPFW7_CHV,
> >> +		intel_uncore_write(&dev_priv->uncore, DSPFW7_CHV,
> >>  			   FW_WM_VLV(wm->pipe[PIPE_B].plane[PLANE_SPRITE1], SPRITED) |
> >>  			   FW_WM_VLV(wm->pipe[PIPE_B].plane[PLANE_SPRITE0], SPRITEC));
> >> -		I915_WRITE(DSPFW8_CHV,
> >> +		intel_uncore_write(&dev_priv->uncore, DSPFW8_CHV,
> >>  			   FW_WM_VLV(wm->pipe[PIPE_C].plane[PLANE_SPRITE1], SPRITEF) |
> >>  			   FW_WM_VLV(wm->pipe[PIPE_C].plane[PLANE_SPRITE0], SPRITEE));
> >> -		I915_WRITE(DSPFW9_CHV,
> >> +		intel_uncore_write(&dev_priv->uncore, DSPFW9_CHV,
> >>  			   FW_WM_VLV(wm->pipe[PIPE_C].plane[PLANE_PRIMARY], PLANEC) |
> >>  			   FW_WM(wm->pipe[PIPE_C].plane[PLANE_CURSOR], CURSORC));
> >> -		I915_WRITE(DSPHOWM,
> >> +		intel_uncore_write(&dev_priv->uncore, DSPHOWM,
> >>  			   FW_WM(wm->sr.plane >> 9, SR_HI) |
> >>  			   FW_WM(wm->pipe[PIPE_C].plane[PLANE_SPRITE1] >> 8, SPRITEF_HI) |
> >>  			   FW_WM(wm->pipe[PIPE_C].plane[PLANE_SPRITE0] >> 8, SPRITEE_HI) |
> >> @@ -1059,10 +1059,10 @@ static void vlv_write_wm_values(struct drm_i915_private *dev_priv,
> >>  			   FW_WM(wm->pipe[PIPE_A].plane[PLANE_SPRITE0] >> 8, SPRITEA_HI) |
> >>  			   FW_WM(wm->pipe[PIPE_A].plane[PLANE_PRIMARY] >> 8, PLANEA_HI));
> >>  	} else {
> >> -		I915_WRITE(DSPFW7,
> >> +		intel_uncore_write(&dev_priv->uncore, DSPFW7,
> >>  			   FW_WM_VLV(wm->pipe[PIPE_B].plane[PLANE_SPRITE1], SPRITED) |
> >>  			   FW_WM_VLV(wm->pipe[PIPE_B].plane[PLANE_SPRITE0], SPRITEC));
> >> -		I915_WRITE(DSPHOWM,
> >> +		intel_uncore_write(&dev_priv->uncore, DSPHOWM,
> >>  			   FW_WM(wm->sr.plane >> 9, SR_HI) |
> >>  			   FW_WM(wm->pipe[PIPE_B].plane[PLANE_SPRITE1] >> 8, SPRITED_HI) |
> >>  			   FW_WM(wm->pipe[PIPE_B].plane[PLANE_SPRITE0] >> 8, SPRITEC_HI) |
> >> @@ -1072,7 +1072,7 @@ static void vlv_write_wm_values(struct drm_i915_private *dev_priv,
> >>  			   FW_WM(wm->pipe[PIPE_A].plane[PLANE_PRIMARY] >> 8, PLANEA_HI));
> >>  	}
> >>  
> >> -	POSTING_READ(DSPFW1);
> >> +	intel_uncore_posting_read(&dev_priv->uncore, DSPFW1);
> >>  }
> >>  
> >>  #undef FW_WM_VLV
> >> @@ -2309,14 +2309,14 @@ static void i965_update_wm(struct intel_crtc *unused_crtc)
> >>  		    srwm);
> >>  
> >>  	/* 965 has limitations... */
> >> -	I915_WRITE(DSPFW1, FW_WM(srwm, SR) |
> >> +	intel_uncore_write(&dev_priv->uncore, DSPFW1, FW_WM(srwm, SR) |
> >>  		   FW_WM(8, CURSORB) |
> >>  		   FW_WM(8, PLANEB) |
> >>  		   FW_WM(8, PLANEA));
> >> -	I915_WRITE(DSPFW2, FW_WM(8, CURSORA) |
> >> +	intel_uncore_write(&dev_priv->uncore, DSPFW2, FW_WM(8, CURSORA) |
> >>  		   FW_WM(8, PLANEC_OLD));
> >>  	/* update cursor SR watermark */
> >> -	I915_WRITE(DSPFW3, FW_WM(cursor_sr, CURSOR_SR));
> >> +	intel_uncore_write(&dev_priv->uncore, DSPFW3, FW_WM(cursor_sr, CURSOR_SR));
> >>  
> >>  	if (cxsr_enabled)
> >>  		intel_set_memory_cxsr(dev_priv, true);
> >> @@ -2446,10 +2446,10 @@ static void i9xx_update_wm(struct intel_crtc *unused_crtc)
> >>  			srwm = 1;
> >>  
> >>  		if (IS_I945G(dev_priv) || IS_I945GM(dev_priv))
> >> -			I915_WRITE(FW_BLC_SELF,
> >> +			intel_uncore_write(&dev_priv->uncore, FW_BLC_SELF,
> >>  				   FW_BLC_SELF_FIFO_MASK | (srwm & 0xff));
> >>  		else
> >> -			I915_WRITE(FW_BLC_SELF, srwm & 0x3f);
> >> +			intel_uncore_write(&dev_priv->uncore, FW_BLC_SELF, srwm & 0x3f);
> >>  	}
> >>  
> >>  	drm_dbg_kms(&dev_priv->drm,
> >> @@ -2463,8 +2463,8 @@ static void i9xx_update_wm(struct intel_crtc *unused_crtc)
> >>  	fwater_lo = fwater_lo | (1 << 24) | (1 << 8);
> >>  	fwater_hi = fwater_hi | (1 << 8);
> >>  
> >> -	I915_WRITE(FW_BLC, fwater_lo);
> >> -	I915_WRITE(FW_BLC2, fwater_hi);
> >> +	intel_uncore_write(&dev_priv->uncore, FW_BLC, fwater_lo);
> >> +	intel_uncore_write(&dev_priv->uncore, FW_BLC2, fwater_hi);
> >>  
> >>  	if (enabled)
> >>  		intel_set_memory_cxsr(dev_priv, true);
> >> @@ -2487,13 +2487,13 @@ static void i845_update_wm(struct intel_crtc *unused_crtc)
> >>  				       &i845_wm_info,
> >>  				       dev_priv->display.get_fifo_size(dev_priv, PLANE_A),
> >>  				       4, pessimal_latency_ns);
> >> -	fwater_lo = I915_READ(FW_BLC) & ~0xfff;
> >> +	fwater_lo = intel_uncore_read(&dev_priv->uncore, FW_BLC) & ~0xfff;
> >>  	fwater_lo |= (3<<8) | planea_wm;
> >>  
> >>  	drm_dbg_kms(&dev_priv->drm,
> >>  		    "Setting FIFO watermarks - A: %d\n", planea_wm);
> >>  
> >> -	I915_WRITE(FW_BLC, fwater_lo);
> >> +	intel_uncore_write(&dev_priv->uncore, FW_BLC, fwater_lo);
> >>  }
> >>  
> >>  /* latency must be in 0.1us units. */
> >> @@ -3533,17 +3533,17 @@ static bool _ilk_disable_lp_wm(struct drm_i915_private *dev_priv,
> >>  
> >>  	if (dirty & WM_DIRTY_LP(3) && previous->wm_lp[2] & WM1_LP_SR_EN) {
> >>  		previous->wm_lp[2] &= ~WM1_LP_SR_EN;
> >> -		I915_WRITE(WM3_LP_ILK, previous->wm_lp[2]);
> >> +		intel_uncore_write(&dev_priv->uncore, WM3_LP_ILK, previous->wm_lp[2]);
> >>  		changed = true;
> >>  	}
> >>  	if (dirty & WM_DIRTY_LP(2) && previous->wm_lp[1] & WM1_LP_SR_EN) {
> >>  		previous->wm_lp[1] &= ~WM1_LP_SR_EN;
> >> -		I915_WRITE(WM2_LP_ILK, previous->wm_lp[1]);
> >> +		intel_uncore_write(&dev_priv->uncore, WM2_LP_ILK, previous->wm_lp[1]);
> >>  		changed = true;
> >>  	}
> >>  	if (dirty & WM_DIRTY_LP(1) && previous->wm_lp[0] & WM1_LP_SR_EN) {
> >>  		previous->wm_lp[0] &= ~WM1_LP_SR_EN;
> >> -		I915_WRITE(WM1_LP_ILK, previous->wm_lp[0]);
> >> +		intel_uncore_write(&dev_priv->uncore, WM1_LP_ILK, previous->wm_lp[0]);
> >>  		changed = true;
> >>  	}
> >>  
> >> @@ -3573,56 +3573,56 @@ static void ilk_write_wm_values(struct drm_i915_private *dev_priv,
> >>  	_ilk_disable_lp_wm(dev_priv, dirty);
> >>  
> >>  	if (dirty & WM_DIRTY_PIPE(PIPE_A))
> >> -		I915_WRITE(WM0_PIPE_ILK(PIPE_A), results->wm_pipe[0]);
> >> +		intel_uncore_write(&dev_priv->uncore, WM0_PIPE_ILK(PIPE_A), results->wm_pipe[0]);
> >>  	if (dirty & WM_DIRTY_PIPE(PIPE_B))
> >> -		I915_WRITE(WM0_PIPE_ILK(PIPE_B), results->wm_pipe[1]);
> >> +		intel_uncore_write(&dev_priv->uncore, WM0_PIPE_ILK(PIPE_B), results->wm_pipe[1]);
> >>  	if (dirty & WM_DIRTY_PIPE(PIPE_C))
> >> -		I915_WRITE(WM0_PIPE_ILK(PIPE_C), results->wm_pipe[2]);
> >> +		intel_uncore_write(&dev_priv->uncore, WM0_PIPE_ILK(PIPE_C), results->wm_pipe[2]);
> >>  
> >>  	if (dirty & WM_DIRTY_DDB) {
> >>  		if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv)) {
> >> -			val = I915_READ(WM_MISC);
> >> +			val = intel_uncore_read(&dev_priv->uncore, WM_MISC);
> >>  			if (results->partitioning == INTEL_DDB_PART_1_2)
> >>  				val &= ~WM_MISC_DATA_PARTITION_5_6;
> >>  			else
> >>  				val |= WM_MISC_DATA_PARTITION_5_6;
> >> -			I915_WRITE(WM_MISC, val);
> >> +			intel_uncore_write(&dev_priv->uncore, WM_MISC, val);
> >>  		} else {
> >> -			val = I915_READ(DISP_ARB_CTL2);
> >> +			val = intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL2);
> >>  			if (results->partitioning == INTEL_DDB_PART_1_2)
> >>  				val &= ~DISP_DATA_PARTITION_5_6;
> >>  			else
> >>  				val |= DISP_DATA_PARTITION_5_6;
> >> -			I915_WRITE(DISP_ARB_CTL2, val);
> >> +			intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL2, val);
> >>  		}
> >>  	}
> >>  
> >>  	if (dirty & WM_DIRTY_FBC) {
> >> -		val = I915_READ(DISP_ARB_CTL);
> >> +		val = intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL);
> >>  		if (results->enable_fbc_wm)
> >>  			val &= ~DISP_FBC_WM_DIS;
> >>  		else
> >>  			val |= DISP_FBC_WM_DIS;
> >> -		I915_WRITE(DISP_ARB_CTL, val);
> >> +		intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, val);
> >>  	}
> >>  
> >>  	if (dirty & WM_DIRTY_LP(1) &&
> >>  	    previous->wm_lp_spr[0] != results->wm_lp_spr[0])
> >> -		I915_WRITE(WM1S_LP_ILK, results->wm_lp_spr[0]);
> >> +		intel_uncore_write(&dev_priv->uncore, WM1S_LP_ILK, results->wm_lp_spr[0]);
> >>  
> >>  	if (INTEL_GEN(dev_priv) >= 7) {
> >>  		if (dirty & WM_DIRTY_LP(2) && previous->wm_lp_spr[1] != results->wm_lp_spr[1])
> >> -			I915_WRITE(WM2S_LP_IVB, results->wm_lp_spr[1]);
> >> +			intel_uncore_write(&dev_priv->uncore, WM2S_LP_IVB, results->wm_lp_spr[1]);
> >>  		if (dirty & WM_DIRTY_LP(3) && previous->wm_lp_spr[2] != results->wm_lp_spr[2])
> >> -			I915_WRITE(WM3S_LP_IVB, results->wm_lp_spr[2]);
> >> +			intel_uncore_write(&dev_priv->uncore, WM3S_LP_IVB, results->wm_lp_spr[2]);
> >>  	}
> >>  
> >>  	if (dirty & WM_DIRTY_LP(1) && previous->wm_lp[0] != results->wm_lp[0])
> >> -		I915_WRITE(WM1_LP_ILK, results->wm_lp[0]);
> >> +		intel_uncore_write(&dev_priv->uncore, WM1_LP_ILK, results->wm_lp[0]);
> >>  	if (dirty & WM_DIRTY_LP(2) && previous->wm_lp[1] != results->wm_lp[1])
> >> -		I915_WRITE(WM2_LP_ILK, results->wm_lp[1]);
> >> +		intel_uncore_write(&dev_priv->uncore, WM2_LP_ILK, results->wm_lp[1]);
> >>  	if (dirty & WM_DIRTY_LP(3) && previous->wm_lp[2] != results->wm_lp[2])
> >> -		I915_WRITE(WM3_LP_ILK, results->wm_lp[2]);
> >> +		intel_uncore_write(&dev_priv->uncore, WM3_LP_ILK, results->wm_lp[2]);
> >>  
> >>  	dev_priv->wm.hw = *results;
> >>  }
> >> @@ -3639,7 +3639,7 @@ u8 intel_enabled_dbuf_slices_mask(struct drm_i915_private *dev_priv)
> >>  	u8 enabled_slices_mask = 0;
> >>  
> >>  	for (i = 0; i < max_slices; i++) {
> >> -		if (I915_READ(DBUF_CTL_S(i)) & DBUF_POWER_STATE)
> >> +		if (intel_uncore_read(&dev_priv->uncore, DBUF_CTL_S(i)) & DBUF_POWER_STATE)
> >>  			enabled_slices_mask |= BIT(i);
> >>  	}
> >>  
> >> @@ -4307,12 +4307,12 @@ skl_ddb_get_hw_plane_state(struct drm_i915_private *dev_priv,
> >>  
> >>  	/* Cursor doesn't support NV12/planar, so no extra calculation needed */
> >>  	if (plane_id == PLANE_CURSOR) {
> >> -		val = I915_READ(CUR_BUF_CFG(pipe));
> >> +		val = intel_uncore_read(&dev_priv->uncore, CUR_BUF_CFG(pipe));
> >>  		skl_ddb_entry_init_from_hw(dev_priv, ddb_y, val);
> >>  		return;
> >>  	}
> >>  
> >> -	val = I915_READ(PLANE_CTL(pipe, plane_id));
> >> +	val = intel_uncore_read(&dev_priv->uncore, PLANE_CTL(pipe, plane_id));
> >>  
> >>  	/* No DDB allocated for disabled planes */
> >>  	if (val & PLANE_CTL_ENABLE)
> >> @@ -4321,11 +4321,11 @@ skl_ddb_get_hw_plane_state(struct drm_i915_private *dev_priv,
> >>  					      val & PLANE_CTL_ALPHA_MASK);
> >>  
> >>  	if (INTEL_GEN(dev_priv) >= 11) {
> >> -		val = I915_READ(PLANE_BUF_CFG(pipe, plane_id));
> >> +		val = intel_uncore_read(&dev_priv->uncore, PLANE_BUF_CFG(pipe, plane_id));
> >>  		skl_ddb_entry_init_from_hw(dev_priv, ddb_y, val);
> >>  	} else {
> >> -		val = I915_READ(PLANE_BUF_CFG(pipe, plane_id));
> >> -		val2 = I915_READ(PLANE_NV12_BUF_CFG(pipe, plane_id));
> >> +		val = intel_uncore_read(&dev_priv->uncore, PLANE_BUF_CFG(pipe, plane_id));
> >> +		val2 = intel_uncore_read(&dev_priv->uncore, PLANE_NV12_BUF_CFG(pipe, plane_id));
> >>  
> >>  		if (fourcc &&
> >>  		    drm_format_info_is_yuv_semiplanar(drm_format_info(fourcc)))
> >> @@ -6240,9 +6240,9 @@ void skl_pipe_wm_get_hw_state(struct intel_crtc *crtc,
> >>  
> >>  		for (level = 0; level <= max_level; level++) {
> >>  			if (plane_id != PLANE_CURSOR)
> >> -				val = I915_READ(PLANE_WM(pipe, plane_id, level));
> >> +				val = intel_uncore_read(&dev_priv->uncore, PLANE_WM(pipe, plane_id, level));
> >>  			else
> >> -				val = I915_READ(CUR_WM(pipe, level));
> >> +				val = intel_uncore_read(&dev_priv->uncore, CUR_WM(pipe, level));
> >>  
> >>  			skl_wm_level_from_reg_val(val, &wm->wm[level]);
> >>  		}
> >> @@ -6251,9 +6251,9 @@ void skl_pipe_wm_get_hw_state(struct intel_crtc *crtc,
> >>  			wm->sagv_wm0 = wm->wm[0];
> >>  
> >>  		if (plane_id != PLANE_CURSOR)
> >> -			val = I915_READ(PLANE_WM_TRANS(pipe, plane_id));
> >> +			val = intel_uncore_read(&dev_priv->uncore, PLANE_WM_TRANS(pipe, plane_id));
> >>  		else
> >> -			val = I915_READ(CUR_WM_TRANS(pipe));
> >> +			val = intel_uncore_read(&dev_priv->uncore, CUR_WM_TRANS(pipe));
> >>  
> >>  		skl_wm_level_from_reg_val(val, &wm->trans_wm);
> >>  	}
> >> @@ -6288,7 +6288,7 @@ static void ilk_pipe_wm_get_hw_state(struct intel_crtc *crtc)
> >>  	struct intel_pipe_wm *active = &crtc_state->wm.ilk.optimal;
> >>  	enum pipe pipe = crtc->pipe;
> >>  
> >> -	hw->wm_pipe[pipe] = I915_READ(WM0_PIPE_ILK(pipe));
> >> +	hw->wm_pipe[pipe] = intel_uncore_read(&dev_priv->uncore, WM0_PIPE_ILK(pipe));
> >>  
> >>  	memset(active, 0, sizeof(*active));
> >>  
> >> @@ -6332,13 +6332,13 @@ static void g4x_read_wm_values(struct drm_i915_private *dev_priv,
> >>  {
> >>  	u32 tmp;
> >>  
> >> -	tmp = I915_READ(DSPFW1);
> >> +	tmp = intel_uncore_read(&dev_priv->uncore, DSPFW1);
> >>  	wm->sr.plane = _FW_WM(tmp, SR);
> >>  	wm->pipe[PIPE_B].plane[PLANE_CURSOR] = _FW_WM(tmp, CURSORB);
> >>  	wm->pipe[PIPE_B].plane[PLANE_PRIMARY] = _FW_WM(tmp, PLANEB);
> >>  	wm->pipe[PIPE_A].plane[PLANE_PRIMARY] = _FW_WM(tmp, PLANEA);
> >>  
> >> -	tmp = I915_READ(DSPFW2);
> >> +	tmp = intel_uncore_read(&dev_priv->uncore, DSPFW2);
> >>  	wm->fbc_en = tmp & DSPFW_FBC_SR_EN;
> >>  	wm->sr.fbc = _FW_WM(tmp, FBC_SR);
> >>  	wm->hpll.fbc = _FW_WM(tmp, FBC_HPLL_SR);
> >> @@ -6346,7 +6346,7 @@ static void g4x_read_wm_values(struct drm_i915_private *dev_priv,
> >>  	wm->pipe[PIPE_A].plane[PLANE_CURSOR] = _FW_WM(tmp, CURSORA);
> >>  	wm->pipe[PIPE_A].plane[PLANE_SPRITE0] = _FW_WM(tmp, SPRITEA);
> >>  
> >> -	tmp = I915_READ(DSPFW3);
> >> +	tmp = intel_uncore_read(&dev_priv->uncore, DSPFW3);
> >>  	wm->hpll_en = tmp & DSPFW_HPLL_SR_EN;
> >>  	wm->sr.cursor = _FW_WM(tmp, CURSOR_SR);
> >>  	wm->hpll.cursor = _FW_WM(tmp, HPLL_CURSOR);
> >> @@ -6360,7 +6360,7 @@ static void vlv_read_wm_values(struct drm_i915_private *dev_priv,
> >>  	u32 tmp;
> >>  
> >>  	for_each_pipe(dev_priv, pipe) {
> >> -		tmp = I915_READ(VLV_DDL(pipe));
> >> +		tmp = intel_uncore_read(&dev_priv->uncore, VLV_DDL(pipe));
> >>  
> >>  		wm->ddl[pipe].plane[PLANE_PRIMARY] =
> >>  			(tmp >> DDL_PLANE_SHIFT) & (DDL_PRECISION_HIGH | DRAIN_LATENCY_MASK);
> >> @@ -6372,34 +6372,34 @@ static void vlv_read_wm_values(struct drm_i915_private *dev_priv,
> >>  			(tmp >> DDL_SPRITE_SHIFT(1)) & (DDL_PRECISION_HIGH | DRAIN_LATENCY_MASK);
> >>  	}
> >>  
> >> -	tmp = I915_READ(DSPFW1);
> >> +	tmp = intel_uncore_read(&dev_priv->uncore, DSPFW1);
> >>  	wm->sr.plane = _FW_WM(tmp, SR);
> >>  	wm->pipe[PIPE_B].plane[PLANE_CURSOR] = _FW_WM(tmp, CURSORB);
> >>  	wm->pipe[PIPE_B].plane[PLANE_PRIMARY] = _FW_WM_VLV(tmp, PLANEB);
> >>  	wm->pipe[PIPE_A].plane[PLANE_PRIMARY] = _FW_WM_VLV(tmp, PLANEA);
> >>  
> >> -	tmp = I915_READ(DSPFW2);
> >> +	tmp = intel_uncore_read(&dev_priv->uncore, DSPFW2);
> >>  	wm->pipe[PIPE_A].plane[PLANE_SPRITE1] = _FW_WM_VLV(tmp, SPRITEB);
> >>  	wm->pipe[PIPE_A].plane[PLANE_CURSOR] = _FW_WM(tmp, CURSORA);
> >>  	wm->pipe[PIPE_A].plane[PLANE_SPRITE0] = _FW_WM_VLV(tmp, SPRITEA);
> >>  
> >> -	tmp = I915_READ(DSPFW3);
> >> +	tmp = intel_uncore_read(&dev_priv->uncore, DSPFW3);
> >>  	wm->sr.cursor = _FW_WM(tmp, CURSOR_SR);
> >>  
> >>  	if (IS_CHERRYVIEW(dev_priv)) {
> >> -		tmp = I915_READ(DSPFW7_CHV);
> >> +		tmp = intel_uncore_read(&dev_priv->uncore, DSPFW7_CHV);
> >>  		wm->pipe[PIPE_B].plane[PLANE_SPRITE1] = _FW_WM_VLV(tmp, SPRITED);
> >>  		wm->pipe[PIPE_B].plane[PLANE_SPRITE0] = _FW_WM_VLV(tmp, SPRITEC);
> >>  
> >> -		tmp = I915_READ(DSPFW8_CHV);
> >> +		tmp = intel_uncore_read(&dev_priv->uncore, DSPFW8_CHV);
> >>  		wm->pipe[PIPE_C].plane[PLANE_SPRITE1] = _FW_WM_VLV(tmp, SPRITEF);
> >>  		wm->pipe[PIPE_C].plane[PLANE_SPRITE0] = _FW_WM_VLV(tmp, SPRITEE);
> >>  
> >> -		tmp = I915_READ(DSPFW9_CHV);
> >> +		tmp = intel_uncore_read(&dev_priv->uncore, DSPFW9_CHV);
> >>  		wm->pipe[PIPE_C].plane[PLANE_PRIMARY] = _FW_WM_VLV(tmp, PLANEC);
> >>  		wm->pipe[PIPE_C].plane[PLANE_CURSOR] = _FW_WM(tmp, CURSORC);
> >>  
> >> -		tmp = I915_READ(DSPHOWM);
> >> +		tmp = intel_uncore_read(&dev_priv->uncore, DSPHOWM);
> >>  		wm->sr.plane |= _FW_WM(tmp, SR_HI) << 9;
> >>  		wm->pipe[PIPE_C].plane[PLANE_SPRITE1] |= _FW_WM(tmp, SPRITEF_HI) << 8;
> >>  		wm->pipe[PIPE_C].plane[PLANE_SPRITE0] |= _FW_WM(tmp, SPRITEE_HI) << 8;
> >> @@ -6411,11 +6411,11 @@ static void vlv_read_wm_values(struct drm_i915_private *dev_priv,
> >>  		wm->pipe[PIPE_A].plane[PLANE_SPRITE0] |= _FW_WM(tmp, SPRITEA_HI) << 8;
> >>  		wm->pipe[PIPE_A].plane[PLANE_PRIMARY] |= _FW_WM(tmp, PLANEA_HI) << 8;
> >>  	} else {
> >> -		tmp = I915_READ(DSPFW7);
> >> +		tmp = intel_uncore_read(&dev_priv->uncore, DSPFW7);
> >>  		wm->pipe[PIPE_B].plane[PLANE_SPRITE1] = _FW_WM_VLV(tmp, SPRITED);
> >>  		wm->pipe[PIPE_B].plane[PLANE_SPRITE0] = _FW_WM_VLV(tmp, SPRITEC);
> >>  
> >> -		tmp = I915_READ(DSPHOWM);
> >> +		tmp = intel_uncore_read(&dev_priv->uncore, DSPHOWM);
> >>  		wm->sr.plane |= _FW_WM(tmp, SR_HI) << 9;
> >>  		wm->pipe[PIPE_B].plane[PLANE_SPRITE1] |= _FW_WM(tmp, SPRITED_HI) << 8;
> >>  		wm->pipe[PIPE_B].plane[PLANE_SPRITE0] |= _FW_WM(tmp, SPRITEC_HI) << 8;
> >> @@ -6436,7 +6436,7 @@ void g4x_wm_get_hw_state(struct drm_i915_private *dev_priv)
> >>  
> >>  	g4x_read_wm_values(dev_priv, wm);
> >>  
> >> -	wm->cxsr = I915_READ(FW_BLC_SELF) & FW_BLC_SELF_EN;
> >> +	wm->cxsr = intel_uncore_read(&dev_priv->uncore, FW_BLC_SELF) & FW_BLC_SELF_EN;
> >>  
> >>  	for_each_intel_crtc(&dev_priv->drm, crtc) {
> >>  		struct intel_crtc_state *crtc_state =
> >> @@ -6580,7 +6580,7 @@ void vlv_wm_get_hw_state(struct drm_i915_private *dev_priv)
> >>  
> >>  	vlv_read_wm_values(dev_priv, wm);
> >>  
> >> -	wm->cxsr = I915_READ(FW_BLC_SELF_VLV) & FW_CSPWRDWNEN;
> >> +	wm->cxsr = intel_uncore_read(&dev_priv->uncore, FW_BLC_SELF_VLV) & FW_CSPWRDWNEN;
> >>  	wm->level = VLV_WM_LEVEL_PM2;
> >>  
> >>  	if (IS_CHERRYVIEW(dev_priv)) {
> >> @@ -6727,9 +6727,9 @@ void vlv_wm_sanitize(struct drm_i915_private *dev_priv)
> >>   */
> >>  static void ilk_init_lp_watermarks(struct drm_i915_private *dev_priv)
> >>  {
> >> -	I915_WRITE(WM3_LP_ILK, I915_READ(WM3_LP_ILK) & ~WM1_LP_SR_EN);
> >> -	I915_WRITE(WM2_LP_ILK, I915_READ(WM2_LP_ILK) & ~WM1_LP_SR_EN);
> >> -	I915_WRITE(WM1_LP_ILK, I915_READ(WM1_LP_ILK) & ~WM1_LP_SR_EN);
> >> +	intel_uncore_write(&dev_priv->uncore, WM3_LP_ILK, intel_uncore_read(&dev_priv->uncore, WM3_LP_ILK) & ~WM1_LP_SR_EN);
> >> +	intel_uncore_write(&dev_priv->uncore, WM2_LP_ILK, intel_uncore_read(&dev_priv->uncore, WM2_LP_ILK) & ~WM1_LP_SR_EN);
> >> +	intel_uncore_write(&dev_priv->uncore, WM1_LP_ILK, intel_uncore_read(&dev_priv->uncore, WM1_LP_ILK) & ~WM1_LP_SR_EN);
> >>  
> >>  	/*
> >>  	 * Don't touch WM1S_LP_EN here.
> >> @@ -6747,25 +6747,25 @@ void ilk_wm_get_hw_state(struct drm_i915_private *dev_priv)
> >>  	for_each_intel_crtc(&dev_priv->drm, crtc)
> >>  		ilk_pipe_wm_get_hw_state(crtc);
> >>  
> >> -	hw->wm_lp[0] = I915_READ(WM1_LP_ILK);
> >> -	hw->wm_lp[1] = I915_READ(WM2_LP_ILK);
> >> -	hw->wm_lp[2] = I915_READ(WM3_LP_ILK);
> >> +	hw->wm_lp[0] = intel_uncore_read(&dev_priv->uncore, WM1_LP_ILK);
> >> +	hw->wm_lp[1] = intel_uncore_read(&dev_priv->uncore, WM2_LP_ILK);
> >> +	hw->wm_lp[2] = intel_uncore_read(&dev_priv->uncore, WM3_LP_ILK);
> >>  
> >> -	hw->wm_lp_spr[0] = I915_READ(WM1S_LP_ILK);
> >> +	hw->wm_lp_spr[0] = intel_uncore_read(&dev_priv->uncore, WM1S_LP_ILK);
> >>  	if (INTEL_GEN(dev_priv) >= 7) {
> >> -		hw->wm_lp_spr[1] = I915_READ(WM2S_LP_IVB);
> >> -		hw->wm_lp_spr[2] = I915_READ(WM3S_LP_IVB);
> >> +		hw->wm_lp_spr[1] = intel_uncore_read(&dev_priv->uncore, WM2S_LP_IVB);
> >> +		hw->wm_lp_spr[2] = intel_uncore_read(&dev_priv->uncore, WM3S_LP_IVB);
> >>  	}
> >>  
> >>  	if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv))
> >> -		hw->partitioning = (I915_READ(WM_MISC) & WM_MISC_DATA_PARTITION_5_6) ?
> >> +		hw->partitioning = (intel_uncore_read(&dev_priv->uncore, WM_MISC) & WM_MISC_DATA_PARTITION_5_6) ?
> >>  			INTEL_DDB_PART_5_6 : INTEL_DDB_PART_1_2;
> >>  	else if (IS_IVYBRIDGE(dev_priv))
> >> -		hw->partitioning = (I915_READ(DISP_ARB_CTL2) & DISP_DATA_PARTITION_5_6) ?
> >> +		hw->partitioning = (intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL2) & DISP_DATA_PARTITION_5_6) ?
> >>  			INTEL_DDB_PART_5_6 : INTEL_DDB_PART_1_2;
> >>  
> >>  	hw->enable_fbc_wm =
> >> -		!(I915_READ(DISP_ARB_CTL) & DISP_FBC_WM_DIS);
> >> +		!(intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) & DISP_FBC_WM_DIS);
> >>  }
> >>  
> >>  /**
> >> @@ -6816,14 +6816,14 @@ void intel_enable_ipc(struct drm_i915_private *dev_priv)
> >>  	if (!HAS_IPC(dev_priv))
> >>  		return;
> >>  
> >> -	val = I915_READ(DISP_ARB_CTL2);
> >> +	val = intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL2);
> >>  
> >>  	if (dev_priv->ipc_enabled)
> >>  		val |= DISP_IPC_ENABLE;
> >>  	else
> >>  		val &= ~DISP_IPC_ENABLE;
> >>  
> >> -	I915_WRITE(DISP_ARB_CTL2, val);
> >> +	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL2, val);
> >>  }
> >>  
> >>  static bool intel_can_enable_ipc(struct drm_i915_private *dev_priv)
> >> @@ -6858,7 +6858,7 @@ static void ibx_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  	 * gating for the panel power sequencer or it will fail to
> >>  	 * start up when no ports are active.
> >>  	 */
> >> -	I915_WRITE(SOUTH_DSPCLK_GATE_D, PCH_DPLSUNIT_CLOCK_GATE_DISABLE);
> >> +	intel_uncore_write(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D, PCH_DPLSUNIT_CLOCK_GATE_DISABLE);
> >>  }
> >>  
> >>  static void g4x_disable_trickle_feed(struct drm_i915_private *dev_priv)
> >> @@ -6866,12 +6866,12 @@ static void g4x_disable_trickle_feed(struct drm_i915_private *dev_priv)
> >>  	enum pipe pipe;
> >>  
> >>  	for_each_pipe(dev_priv, pipe) {
> >> -		I915_WRITE(DSPCNTR(pipe),
> >> -			   I915_READ(DSPCNTR(pipe)) |
> >> +		intel_uncore_write(&dev_priv->uncore, DSPCNTR(pipe),
> >> +			   intel_uncore_read(&dev_priv->uncore, DSPCNTR(pipe)) |
> >>  			   DISPPLANE_TRICKLE_FEED_DISABLE);
> >>  
> >> -		I915_WRITE(DSPSURF(pipe), I915_READ(DSPSURF(pipe)));
> >> -		POSTING_READ(DSPSURF(pipe));
> >> +		intel_uncore_write(&dev_priv->uncore, DSPSURF(pipe), intel_uncore_read(&dev_priv->uncore, DSPSURF(pipe)));
> >> +		intel_uncore_posting_read(&dev_priv->uncore, DSPSURF(pipe));
> >>  	}
> >>  }
> >>  
> >> @@ -6887,10 +6887,10 @@ static void ilk_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  		   ILK_DPFCUNIT_CLOCK_GATE_DISABLE |
> >>  		   ILK_DPFDUNIT_CLOCK_GATE_ENABLE;
> >>  
> >> -	I915_WRITE(PCH_3DCGDIS0,
> >> +	intel_uncore_write(&dev_priv->uncore, PCH_3DCGDIS0,
> >>  		   MARIUNIT_CLOCK_GATE_DISABLE |
> >>  		   SVSMUNIT_CLOCK_GATE_DISABLE);
> >> -	I915_WRITE(PCH_3DCGDIS1,
> >> +	intel_uncore_write(&dev_priv->uncore, PCH_3DCGDIS1,
> >>  		   VFMUNIT_CLOCK_GATE_DISABLE);
> >>  
> >>  	/*
> >> @@ -6900,12 +6900,12 @@ static void ilk_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  	 * The bit 5 of 0x42020
> >>  	 * The bit 15 of 0x45000
> >>  	 */
> >> -	I915_WRITE(ILK_DISPLAY_CHICKEN2,
> >> -		   (I915_READ(ILK_DISPLAY_CHICKEN2) |
> >> +	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2,
> >> +		   (intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2) |
> >>  		    ILK_DPARB_GATE | ILK_VSDPFD_FULL));
> >>  	dspclk_gate |= ILK_DPARBUNIT_CLOCK_GATE_ENABLE;
> >> -	I915_WRITE(DISP_ARB_CTL,
> >> -		   (I915_READ(DISP_ARB_CTL) |
> >> +	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL,
> >> +		   (intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
> >>  		    DISP_FBC_WM_DIS));
> >>  
> >>  	/*
> >> @@ -6917,18 +6917,18 @@ static void ilk_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  	 */
> >>  	if (IS_IRONLAKE_M(dev_priv)) {
> >>  		/* WaFbcAsynchFlipDisableFbcQueue:ilk */
> >> -		I915_WRITE(ILK_DISPLAY_CHICKEN1,
> >> -			   I915_READ(ILK_DISPLAY_CHICKEN1) |
> >> +		intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1,
> >> +			   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1) |
> >>  			   ILK_FBCQ_DIS);
> >> -		I915_WRITE(ILK_DISPLAY_CHICKEN2,
> >> -			   I915_READ(ILK_DISPLAY_CHICKEN2) |
> >> +		intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2,
> >> +			   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2) |
> >>  			   ILK_DPARB_GATE);
> >>  	}
> >>  
> >> -	I915_WRITE(ILK_DSPCLK_GATE_D, dspclk_gate);
> >> +	intel_uncore_write(&dev_priv->uncore, ILK_DSPCLK_GATE_D, dspclk_gate);
> >>  
> >> -	I915_WRITE(ILK_DISPLAY_CHICKEN2,
> >> -		   I915_READ(ILK_DISPLAY_CHICKEN2) |
> >> +	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2,
> >> +		   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2) |
> >>  		   ILK_ELPIN_409_SELECT);
> >>  
> >>  	g4x_disable_trickle_feed(dev_priv);
> >> @@ -6946,27 +6946,27 @@ static void cpt_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  	 * gating for the panel power sequencer or it will fail to
> >>  	 * start up when no ports are active.
> >>  	 */
> >> -	I915_WRITE(SOUTH_DSPCLK_GATE_D, PCH_DPLSUNIT_CLOCK_GATE_DISABLE |
> >> +	intel_uncore_write(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D, PCH_DPLSUNIT_CLOCK_GATE_DISABLE |
> >>  		   PCH_DPLUNIT_CLOCK_GATE_DISABLE |
> >>  		   PCH_CPUNIT_CLOCK_GATE_DISABLE);
> >> -	I915_WRITE(SOUTH_CHICKEN2, I915_READ(SOUTH_CHICKEN2) |
> >> +	intel_uncore_write(&dev_priv->uncore, SOUTH_CHICKEN2, intel_uncore_read(&dev_priv->uncore, SOUTH_CHICKEN2) |
> >>  		   DPLS_EDP_PPS_FIX_DIS);
> >>  	/* The below fixes the weird display corruption, a few pixels shifted
> >>  	 * downward, on (only) LVDS of some HP laptops with IVY.
> >>  	 */
> >>  	for_each_pipe(dev_priv, pipe) {
> >> -		val = I915_READ(TRANS_CHICKEN2(pipe));
> >> +		val = intel_uncore_read(&dev_priv->uncore, TRANS_CHICKEN2(pipe));
> >>  		val |= TRANS_CHICKEN2_TIMING_OVERRIDE;
> >>  		val &= ~TRANS_CHICKEN2_FDI_POLARITY_REVERSED;
> >>  		if (dev_priv->vbt.fdi_rx_polarity_inverted)
> >>  			val |= TRANS_CHICKEN2_FDI_POLARITY_REVERSED;
> >>  		val &= ~TRANS_CHICKEN2_DISABLE_DEEP_COLOR_COUNTER;
> >>  		val &= ~TRANS_CHICKEN2_DISABLE_DEEP_COLOR_MODESWITCH;
> >> -		I915_WRITE(TRANS_CHICKEN2(pipe), val);
> >> +		intel_uncore_write(&dev_priv->uncore, TRANS_CHICKEN2(pipe), val);
> >>  	}
> >>  	/* WADP0ClockGatingDisable */
> >>  	for_each_pipe(dev_priv, pipe) {
> >> -		I915_WRITE(TRANS_CHICKEN1(pipe),
> >> +		intel_uncore_write(&dev_priv->uncore, TRANS_CHICKEN1(pipe),
> >>  			   TRANS_CHICKEN1_DP0UNIT_GC_DISABLE);
> >>  	}
> >>  }
> >> @@ -6975,7 +6975,7 @@ static void gen6_check_mch_setup(struct drm_i915_private *dev_priv)
> >>  {
> >>  	u32 tmp;
> >>  
> >> -	tmp = I915_READ(MCH_SSKPD);
> >> +	tmp = intel_uncore_read(&dev_priv->uncore, MCH_SSKPD);
> >>  	if ((tmp & MCH_SSKPD_WM0_MASK) != MCH_SSKPD_WM0_VAL)
> >>  		drm_dbg_kms(&dev_priv->drm,
> >>  			    "Wrong MCH_SSKPD value: 0x%08x This can cause underruns.\n",
> >> @@ -6986,14 +6986,14 @@ static void gen6_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  {
> >>  	u32 dspclk_gate = ILK_VRHUNIT_CLOCK_GATE_DISABLE;
> >>  
> >> -	I915_WRITE(ILK_DSPCLK_GATE_D, dspclk_gate);
> >> +	intel_uncore_write(&dev_priv->uncore, ILK_DSPCLK_GATE_D, dspclk_gate);
> >>  
> >> -	I915_WRITE(ILK_DISPLAY_CHICKEN2,
> >> -		   I915_READ(ILK_DISPLAY_CHICKEN2) |
> >> +	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2,
> >> +		   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2) |
> >>  		   ILK_ELPIN_409_SELECT);
> >>  
> >> -	I915_WRITE(GEN6_UCGCTL1,
> >> -		   I915_READ(GEN6_UCGCTL1) |
> >> +	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL1,
> >> +		   intel_uncore_read(&dev_priv->uncore, GEN6_UCGCTL1) |
> >>  		   GEN6_BLBUNIT_CLOCK_GATE_DISABLE |
> >>  		   GEN6_CSUNIT_CLOCK_GATE_DISABLE);
> >>  
> >> @@ -7010,7 +7010,7 @@ static void gen6_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  	 * WaDisableRCCUnitClockGating:snb
> >>  	 * WaDisableRCPBUnitClockGating:snb
> >>  	 */
> >> -	I915_WRITE(GEN6_UCGCTL2,
> >> +	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL2,
> >>  		   GEN6_RCPBUNIT_CLOCK_GATE_DISABLE |
> >>  		   GEN6_RCCUNIT_CLOCK_GATE_DISABLE);
> >>  
> >> @@ -7025,14 +7025,14 @@ static void gen6_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  	 *
> >>  	 * WaFbcAsynchFlipDisableFbcQueue:snb
> >>  	 */
> >> -	I915_WRITE(ILK_DISPLAY_CHICKEN1,
> >> -		   I915_READ(ILK_DISPLAY_CHICKEN1) |
> >> +	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1,
> >> +		   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1) |
> >>  		   ILK_FBCQ_DIS | ILK_PABSTRETCH_DIS);
> >> -	I915_WRITE(ILK_DISPLAY_CHICKEN2,
> >> -		   I915_READ(ILK_DISPLAY_CHICKEN2) |
> >> +	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2,
> >> +		   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN2) |
> >>  		   ILK_DPARB_GATE | ILK_VSDPFD_FULL);
> >> -	I915_WRITE(ILK_DSPCLK_GATE_D,
> >> -		   I915_READ(ILK_DSPCLK_GATE_D) |
> >> +	intel_uncore_write(&dev_priv->uncore, ILK_DSPCLK_GATE_D,
> >> +		   intel_uncore_read(&dev_priv->uncore, ILK_DSPCLK_GATE_D) |
> >>  		   ILK_DPARBUNIT_CLOCK_GATE_ENABLE  |
> >>  		   ILK_DPFDUNIT_CLOCK_GATE_ENABLE);
> >>  
> >> @@ -7050,23 +7050,23 @@ static void lpt_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  	 * disabled when not needed anymore in order to save power.
> >>  	 */
> >>  	if (HAS_PCH_LPT_LP(dev_priv))
> >> -		I915_WRITE(SOUTH_DSPCLK_GATE_D,
> >> -			   I915_READ(SOUTH_DSPCLK_GATE_D) |
> >> +		intel_uncore_write(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D,
> >> +			   intel_uncore_read(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D) |
> >>  			   PCH_LP_PARTITION_LEVEL_DISABLE);
> >>  
> >>  	/* WADPOClockGatingDisable:hsw */
> >> -	I915_WRITE(TRANS_CHICKEN1(PIPE_A),
> >> -		   I915_READ(TRANS_CHICKEN1(PIPE_A)) |
> >> +	intel_uncore_write(&dev_priv->uncore, TRANS_CHICKEN1(PIPE_A),
> >> +		   intel_uncore_read(&dev_priv->uncore, TRANS_CHICKEN1(PIPE_A)) |
> >>  		   TRANS_CHICKEN1_DP0UNIT_GC_DISABLE);
> >>  }
> >>  
> >>  static void lpt_suspend_hw(struct drm_i915_private *dev_priv)
> >>  {
> >>  	if (HAS_PCH_LPT_LP(dev_priv)) {
> >> -		u32 val = I915_READ(SOUTH_DSPCLK_GATE_D);
> >> +		u32 val = intel_uncore_read(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D);
> >>  
> >>  		val &= ~PCH_LP_PARTITION_LEVEL_DISABLE;
> >> -		I915_WRITE(SOUTH_DSPCLK_GATE_D, val);
> >> +		intel_uncore_write(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D, val);
> >>  	}
> >>  }
> >>  
> >> @@ -7078,33 +7078,33 @@ static void gen8_set_l3sqc_credits(struct drm_i915_private *dev_priv,
> >>  	u32 val;
> >>  
> >>  	/* WaTempDisableDOPClkGating:bdw */
> >> -	misccpctl = I915_READ(GEN7_MISCCPCTL);
> >> -	I915_WRITE(GEN7_MISCCPCTL, misccpctl & ~GEN7_DOP_CLOCK_GATE_ENABLE);
> >> +	misccpctl = intel_uncore_read(&dev_priv->uncore, GEN7_MISCCPCTL);
> >> +	intel_uncore_write(&dev_priv->uncore, GEN7_MISCCPCTL, misccpctl & ~GEN7_DOP_CLOCK_GATE_ENABLE);
> >>  
> >> -	val = I915_READ(GEN8_L3SQCREG1);
> >> +	val = intel_uncore_read(&dev_priv->uncore, GEN8_L3SQCREG1);
> >>  	val &= ~L3_PRIO_CREDITS_MASK;
> >>  	val |= L3_GENERAL_PRIO_CREDITS(general_prio_credits);
> >>  	val |= L3_HIGH_PRIO_CREDITS(high_prio_credits);
> >> -	I915_WRITE(GEN8_L3SQCREG1, val);
> >> +	intel_uncore_write(&dev_priv->uncore, GEN8_L3SQCREG1, val);
> >>  
> >>  	/*
> >>  	 * Wait at least 100 clocks before re-enabling clock gating.
> >>  	 * See the definition of L3SQCREG1 in BSpec.
> >>  	 */
> >> -	POSTING_READ(GEN8_L3SQCREG1);
> >> +	intel_uncore_posting_read(&dev_priv->uncore, GEN8_L3SQCREG1);
> >>  	udelay(1);
> >> -	I915_WRITE(GEN7_MISCCPCTL, misccpctl);
> >> +	intel_uncore_write(&dev_priv->uncore, GEN7_MISCCPCTL, misccpctl);
> >>  }
> >>  
> >>  static void icl_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  {
> >>  	/* Wa_1409120013:icl,ehl */
> >> -	I915_WRITE(ILK_DPFC_CHICKEN,
> >> +	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN,
> >>  		   ILK_DPFC_CHICKEN_COMP_DUMMY_PIXEL);
> >>  
> >>  	/* This is not an Wa. Enable to reduce Sampler power */
> >> -	I915_WRITE(GEN10_DFR_RATIO_EN_AND_CHICKEN,
> >> -		   I915_READ(GEN10_DFR_RATIO_EN_AND_CHICKEN) & ~DFR_DISABLE);
> >> +	intel_uncore_write(&dev_priv->uncore, GEN10_DFR_RATIO_EN_AND_CHICKEN,
> >> +		   intel_uncore_read(&dev_priv->uncore, GEN10_DFR_RATIO_EN_AND_CHICKEN) & ~DFR_DISABLE);
> >>  
> >>  	/*Wa_14010594013:icl, ehl */
> >>  	intel_uncore_rmw(&dev_priv->uncore, GEN8_CHICKEN_DCPR_1,
> >> @@ -7114,12 +7114,12 @@ static void icl_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  static void tgl_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  {
> >>  	/* Wa_1409120013:tgl */
> >> -	I915_WRITE(ILK_DPFC_CHICKEN,
> >> +	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN,
> >>  		   ILK_DPFC_CHICKEN_COMP_DUMMY_PIXEL);
> >>  
> >>  	/* Wa_1409825376:tgl (pre-prod)*/
> >>  	if (IS_TGL_DISP_REVID(dev_priv, TGL_REVID_A0, TGL_REVID_B1))
> >> -		I915_WRITE(GEN9_CLKGATE_DIS_3, I915_READ(GEN9_CLKGATE_DIS_3) |
> >> +		intel_uncore_write(&dev_priv->uncore, GEN9_CLKGATE_DIS_3, intel_uncore_read(&dev_priv->uncore, GEN9_CLKGATE_DIS_3) |
> >>  			   TGL_VRH_GATING_DIS);
> >>  
> >>  	/* Wa_14011059788:tgl */
> >> @@ -7131,7 +7131,7 @@ static void dg1_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  {
> >>  	/* Wa_1409836686:dg1[a0] */
> >>  	if (IS_DG1_REVID(dev_priv, DG1_REVID_A0, DG1_REVID_A0))
> >> -		I915_WRITE(GEN9_CLKGATE_DIS_3, I915_READ(GEN9_CLKGATE_DIS_3) |
> >> +		intel_uncore_write(&dev_priv->uncore, GEN9_CLKGATE_DIS_3, intel_uncore_read(&dev_priv->uncore, GEN9_CLKGATE_DIS_3) |
> >>  			   DPT_GATING_DIS);
> >>  }
> >>  
> >> @@ -7141,7 +7141,7 @@ static void cnp_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  		return;
> >>  
> >>  	/* Display WA #1181 WaSouthDisplayDisablePWMCGEGating: cnp */
> >> -	I915_WRITE(SOUTH_DSPCLK_GATE_D, I915_READ(SOUTH_DSPCLK_GATE_D) |
> >> +	intel_uncore_write(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D, intel_uncore_read(&dev_priv->uncore, SOUTH_DSPCLK_GATE_D) |
> >>  		   CNP_PWM_CGE_GATING_DISABLE);
> >>  }
> >>  
> >> @@ -7151,35 +7151,35 @@ static void cnl_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  	cnp_init_clock_gating(dev_priv);
> >>  
> >>  	/* This is not an Wa. Enable for better image quality */
> >> -	I915_WRITE(_3D_CHICKEN3,
> >> +	intel_uncore_write(&dev_priv->uncore, _3D_CHICKEN3,
> >>  		   _MASKED_BIT_ENABLE(_3D_CHICKEN3_AA_LINE_QUALITY_FIX_ENABLE));
> >>  
> >>  	/* WaEnableChickenDCPR:cnl */
> >> -	I915_WRITE(GEN8_CHICKEN_DCPR_1,
> >> -		   I915_READ(GEN8_CHICKEN_DCPR_1) | MASK_WAKEMEM);
> >> +	intel_uncore_write(&dev_priv->uncore, GEN8_CHICKEN_DCPR_1,
> >> +		   intel_uncore_read(&dev_priv->uncore, GEN8_CHICKEN_DCPR_1) | MASK_WAKEMEM);
> >>  
> >>  	/*
> >>  	 * WaFbcWakeMemOn:cnl
> >>  	 * Display WA #0859: cnl
> >>  	 */
> >> -	I915_WRITE(DISP_ARB_CTL, I915_READ(DISP_ARB_CTL) |
> >> +	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
> >>  		   DISP_FBC_MEMORY_WAKE);
> >>  
> >> -	val = I915_READ(SLICE_UNIT_LEVEL_CLKGATE);
> >> +	val = intel_uncore_read(&dev_priv->uncore, SLICE_UNIT_LEVEL_CLKGATE);
> >>  	/* ReadHitWriteOnlyDisable:cnl */
> >>  	val |= RCCUNIT_CLKGATE_DIS;
> >> -	I915_WRITE(SLICE_UNIT_LEVEL_CLKGATE, val);
> >> +	intel_uncore_write(&dev_priv->uncore, SLICE_UNIT_LEVEL_CLKGATE, val);
> >>  
> >>  	/* Wa_2201832410:cnl */
> >> -	val = I915_READ(SUBSLICE_UNIT_LEVEL_CLKGATE);
> >> +	val = intel_uncore_read(&dev_priv->uncore, SUBSLICE_UNIT_LEVEL_CLKGATE);
> >>  	val |= GWUNIT_CLKGATE_DIS;
> >> -	I915_WRITE(SUBSLICE_UNIT_LEVEL_CLKGATE, val);
> >> +	intel_uncore_write(&dev_priv->uncore, SUBSLICE_UNIT_LEVEL_CLKGATE, val);
> >>  
> >>  	/* WaDisableVFclkgate:cnl */
> >>  	/* WaVFUnitClockGatingDisable:cnl */
> >> -	val = I915_READ(UNSLICE_UNIT_LEVEL_CLKGATE);
> >> +	val = intel_uncore_read(&dev_priv->uncore, UNSLICE_UNIT_LEVEL_CLKGATE);
> >>  	val |= VFUNIT_CLKGATE_DIS;
> >> -	I915_WRITE(UNSLICE_UNIT_LEVEL_CLKGATE, val);
> >> +	intel_uncore_write(&dev_priv->uncore, UNSLICE_UNIT_LEVEL_CLKGATE, val);
> >>  }
> >>  
> >>  static void cfl_init_clock_gating(struct drm_i915_private *dev_priv)
> >> @@ -7188,21 +7188,21 @@ static void cfl_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  	gen9_init_clock_gating(dev_priv);
> >>  
> >>  	/* WAC6entrylatency:cfl */
> >> -	I915_WRITE(FBC_LLC_READ_CTRL, I915_READ(FBC_LLC_READ_CTRL) |
> >> +	intel_uncore_write(&dev_priv->uncore, FBC_LLC_READ_CTRL, intel_uncore_read(&dev_priv->uncore, FBC_LLC_READ_CTRL) |
> >>  		   FBC_LLC_FULLY_OPEN);
> >>  
> >>  	/*
> >>  	 * WaFbcTurnOffFbcWatermark:cfl
> >>  	 * Display WA #0562: cfl
> >>  	 */
> >> -	I915_WRITE(DISP_ARB_CTL, I915_READ(DISP_ARB_CTL) |
> >> +	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
> >>  		   DISP_FBC_WM_DIS);
> >>  
> >>  	/*
> >>  	 * WaFbcNukeOnHostModify:cfl
> >>  	 * Display WA #0873: cfl
> >>  	 */
> >> -	I915_WRITE(ILK_DPFC_CHICKEN, I915_READ(ILK_DPFC_CHICKEN) |
> >> +	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN, intel_uncore_read(&dev_priv->uncore, ILK_DPFC_CHICKEN) |
> >>  		   ILK_DPFC_NUKE_ON_ANY_MODIFICATION);
> >>  }
> >>  
> >> @@ -7211,31 +7211,31 @@ static void kbl_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  	gen9_init_clock_gating(dev_priv);
> >>  
> >>  	/* WAC6entrylatency:kbl */
> >> -	I915_WRITE(FBC_LLC_READ_CTRL, I915_READ(FBC_LLC_READ_CTRL) |
> >> +	intel_uncore_write(&dev_priv->uncore, FBC_LLC_READ_CTRL, intel_uncore_read(&dev_priv->uncore, FBC_LLC_READ_CTRL) |
> >>  		   FBC_LLC_FULLY_OPEN);
> >>  
> >>  	/* WaDisableSDEUnitClockGating:kbl */
> >>  	if (IS_KBL_GT_REVID(dev_priv, 0, KBL_REVID_B0))
> >> -		I915_WRITE(GEN8_UCGCTL6, I915_READ(GEN8_UCGCTL6) |
> >> +		intel_uncore_write(&dev_priv->uncore, GEN8_UCGCTL6, intel_uncore_read(&dev_priv->uncore, GEN8_UCGCTL6) |
> >>  			   GEN8_SDEUNIT_CLOCK_GATE_DISABLE);
> >>  
> >>  	/* WaDisableGamClockGating:kbl */
> >>  	if (IS_KBL_GT_REVID(dev_priv, 0, KBL_REVID_B0))
> >> -		I915_WRITE(GEN6_UCGCTL1, I915_READ(GEN6_UCGCTL1) |
> >> +		intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL1, intel_uncore_read(&dev_priv->uncore, GEN6_UCGCTL1) |
> >>  			   GEN6_GAMUNIT_CLOCK_GATE_DISABLE);
> >>  
> >>  	/*
> >>  	 * WaFbcTurnOffFbcWatermark:kbl
> >>  	 * Display WA #0562: kbl
> >>  	 */
> >> -	I915_WRITE(DISP_ARB_CTL, I915_READ(DISP_ARB_CTL) |
> >> +	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
> >>  		   DISP_FBC_WM_DIS);
> >>  
> >>  	/*
> >>  	 * WaFbcNukeOnHostModify:kbl
> >>  	 * Display WA #0873: kbl
> >>  	 */
> >> -	I915_WRITE(ILK_DPFC_CHICKEN, I915_READ(ILK_DPFC_CHICKEN) |
> >> +	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN, intel_uncore_read(&dev_priv->uncore, ILK_DPFC_CHICKEN) |
> >>  		   ILK_DPFC_NUKE_ON_ANY_MODIFICATION);
> >>  }
> >>  
> >> @@ -7244,32 +7244,32 @@ static void skl_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  	gen9_init_clock_gating(dev_priv);
> >>  
> >>  	/* WaDisableDopClockGating:skl */
> >> -	I915_WRITE(GEN7_MISCCPCTL, I915_READ(GEN7_MISCCPCTL) &
> >> +	intel_uncore_write(&dev_priv->uncore, GEN7_MISCCPCTL, intel_uncore_read(&dev_priv->uncore, GEN7_MISCCPCTL) &
> >>  		   ~GEN7_DOP_CLOCK_GATE_ENABLE);
> >>  
> >>  	/* WAC6entrylatency:skl */
> >> -	I915_WRITE(FBC_LLC_READ_CTRL, I915_READ(FBC_LLC_READ_CTRL) |
> >> +	intel_uncore_write(&dev_priv->uncore, FBC_LLC_READ_CTRL, intel_uncore_read(&dev_priv->uncore, FBC_LLC_READ_CTRL) |
> >>  		   FBC_LLC_FULLY_OPEN);
> >>  
> >>  	/*
> >>  	 * WaFbcTurnOffFbcWatermark:skl
> >>  	 * Display WA #0562: skl
> >>  	 */
> >> -	I915_WRITE(DISP_ARB_CTL, I915_READ(DISP_ARB_CTL) |
> >> +	intel_uncore_write(&dev_priv->uncore, DISP_ARB_CTL, intel_uncore_read(&dev_priv->uncore, DISP_ARB_CTL) |
> >>  		   DISP_FBC_WM_DIS);
> >>  
> >>  	/*
> >>  	 * WaFbcNukeOnHostModify:skl
> >>  	 * Display WA #0873: skl
> >>  	 */
> >> -	I915_WRITE(ILK_DPFC_CHICKEN, I915_READ(ILK_DPFC_CHICKEN) |
> >> +	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN, intel_uncore_read(&dev_priv->uncore, ILK_DPFC_CHICKEN) |
> >>  		   ILK_DPFC_NUKE_ON_ANY_MODIFICATION);
> >>  
> >>  	/*
> >>  	 * WaFbcHighMemBwCorruptionAvoidance:skl
> >>  	 * Display WA #0883: skl
> >>  	 */
> >> -	I915_WRITE(ILK_DPFC_CHICKEN, I915_READ(ILK_DPFC_CHICKEN) |
> >> +	intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN, intel_uncore_read(&dev_priv->uncore, ILK_DPFC_CHICKEN) |
> >>  		   ILK_DPFC_DISABLE_DUMMY0);
> >>  }
> >>  
> >> @@ -7278,42 +7278,42 @@ static void bdw_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  	enum pipe pipe;
> >>  
> >>  	/* WaFbcAsynchFlipDisableFbcQueue:hsw,bdw */
> >> -	I915_WRITE(CHICKEN_PIPESL_1(PIPE_A),
> >> -		   I915_READ(CHICKEN_PIPESL_1(PIPE_A)) |
> >> +	intel_uncore_write(&dev_priv->uncore, CHICKEN_PIPESL_1(PIPE_A),
> >> +		   intel_uncore_read(&dev_priv->uncore, CHICKEN_PIPESL_1(PIPE_A)) |
> >>  		   HSW_FBCQ_DIS);
> >>  
> >>  	/* WaSwitchSolVfFArbitrationPriority:bdw */
> >> -	I915_WRITE(GAM_ECOCHK, I915_READ(GAM_ECOCHK) | HSW_ECOCHK_ARB_PRIO_SOL);
> >> +	intel_uncore_write(&dev_priv->uncore, GAM_ECOCHK, intel_uncore_read(&dev_priv->uncore, GAM_ECOCHK) | HSW_ECOCHK_ARB_PRIO_SOL);
> >>  
> >>  	/* WaPsrDPAMaskVBlankInSRD:bdw */
> >> -	I915_WRITE(CHICKEN_PAR1_1,
> >> -		   I915_READ(CHICKEN_PAR1_1) | DPA_MASK_VBLANK_SRD);
> >> +	intel_uncore_write(&dev_priv->uncore, CHICKEN_PAR1_1,
> >> +		   intel_uncore_read(&dev_priv->uncore, CHICKEN_PAR1_1) | DPA_MASK_VBLANK_SRD);
> >>  
> >>  	/* WaPsrDPRSUnmaskVBlankInSRD:bdw */
> >>  	for_each_pipe(dev_priv, pipe) {
> >> -		I915_WRITE(CHICKEN_PIPESL_1(pipe),
> >> -			   I915_READ(CHICKEN_PIPESL_1(pipe)) |
> >> +		intel_uncore_write(&dev_priv->uncore, CHICKEN_PIPESL_1(pipe),
> >> +			   intel_uncore_read(&dev_priv->uncore, CHICKEN_PIPESL_1(pipe)) |
> >>  			   BDW_DPRS_MASK_VBLANK_SRD);
> >>  	}
> >>  
> >>  	/* WaVSRefCountFullforceMissDisable:bdw */
> >>  	/* WaDSRefCountFullforceMissDisable:bdw */
> >> -	I915_WRITE(GEN7_FF_THREAD_MODE,
> >> -		   I915_READ(GEN7_FF_THREAD_MODE) &
> >> +	intel_uncore_write(&dev_priv->uncore, GEN7_FF_THREAD_MODE,
> >> +		   intel_uncore_read(&dev_priv->uncore, GEN7_FF_THREAD_MODE) &
> >>  		   ~(GEN8_FF_DS_REF_CNT_FFME | GEN7_FF_VS_REF_CNT_FFME));
> >>  
> >> -	I915_WRITE(GEN6_RC_SLEEP_PSMI_CONTROL,
> >> +	intel_uncore_write(&dev_priv->uncore, GEN6_RC_SLEEP_PSMI_CONTROL,
> >>  		   _MASKED_BIT_ENABLE(GEN8_RC_SEMA_IDLE_MSG_DISABLE));
> >>  
> >>  	/* WaDisableSDEUnitClockGating:bdw */
> >> -	I915_WRITE(GEN8_UCGCTL6, I915_READ(GEN8_UCGCTL6) |
> >> +	intel_uncore_write(&dev_priv->uncore, GEN8_UCGCTL6, intel_uncore_read(&dev_priv->uncore, GEN8_UCGCTL6) |
> >>  		   GEN8_SDEUNIT_CLOCK_GATE_DISABLE);
> >>  
> >>  	/* WaProgramL3SqcReg1Default:bdw */
> >>  	gen8_set_l3sqc_credits(dev_priv, 30, 2);
> >>  
> >>  	/* WaKVMNotificationOnConfigChange:bdw */
> >> -	I915_WRITE(CHICKEN_PAR2_1, I915_READ(CHICKEN_PAR2_1)
> >> +	intel_uncore_write(&dev_priv->uncore, CHICKEN_PAR2_1, intel_uncore_read(&dev_priv->uncore, CHICKEN_PAR2_1)
> >>  		   | KVM_CONFIG_CHANGE_NOTIFICATION_SELECT);
> >>  
> >>  	lpt_init_clock_gating(dev_priv);
> >> @@ -7323,24 +7323,24 @@ static void bdw_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  	 * Also see the CHICKEN2 write in bdw_init_workarounds() to disable DOP
> >>  	 * clock gating.
> >>  	 */
> >> -	I915_WRITE(GEN6_UCGCTL1,
> >> -		   I915_READ(GEN6_UCGCTL1) | GEN6_EU_TCUNIT_CLOCK_GATE_DISABLE);
> >> +	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL1,
> >> +		   intel_uncore_read(&dev_priv->uncore, GEN6_UCGCTL1) | GEN6_EU_TCUNIT_CLOCK_GATE_DISABLE);
> >>  }
> >>  
> >>  static void hsw_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  {
> >>  	/* WaFbcAsynchFlipDisableFbcQueue:hsw,bdw */
> >> -	I915_WRITE(CHICKEN_PIPESL_1(PIPE_A),
> >> -		   I915_READ(CHICKEN_PIPESL_1(PIPE_A)) |
> >> +	intel_uncore_write(&dev_priv->uncore, CHICKEN_PIPESL_1(PIPE_A),
> >> +		   intel_uncore_read(&dev_priv->uncore, CHICKEN_PIPESL_1(PIPE_A)) |
> >>  		   HSW_FBCQ_DIS);
> >>  
> >>  	/* This is required by WaCatErrorRejectionIssue:hsw */
> >> -	I915_WRITE(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
> >> -		   I915_READ(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
> >> +	intel_uncore_write(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
> >> +		   intel_uncore_read(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
> >>  		   GEN7_SQ_CHICKEN_MBCUNIT_SQINTMOB);
> >>  
> >>  	/* WaSwitchSolVfFArbitrationPriority:hsw */
> >> -	I915_WRITE(GAM_ECOCHK, I915_READ(GAM_ECOCHK) | HSW_ECOCHK_ARB_PRIO_SOL);
> >> +	intel_uncore_write(&dev_priv->uncore, GAM_ECOCHK, intel_uncore_read(&dev_priv->uncore, GAM_ECOCHK) | HSW_ECOCHK_ARB_PRIO_SOL);
> >>  
> >>  	lpt_init_clock_gating(dev_priv);
> >>  }
> >> @@ -7349,26 +7349,26 @@ static void ivb_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  {
> >>  	u32 snpcr;
> >>  
> >> -	I915_WRITE(ILK_DSPCLK_GATE_D, ILK_VRHUNIT_CLOCK_GATE_DISABLE);
> >> +	intel_uncore_write(&dev_priv->uncore, ILK_DSPCLK_GATE_D, ILK_VRHUNIT_CLOCK_GATE_DISABLE);
> >>  
> >>  	/* WaFbcAsynchFlipDisableFbcQueue:ivb */
> >> -	I915_WRITE(ILK_DISPLAY_CHICKEN1,
> >> -		   I915_READ(ILK_DISPLAY_CHICKEN1) |
> >> +	intel_uncore_write(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1,
> >> +		   intel_uncore_read(&dev_priv->uncore, ILK_DISPLAY_CHICKEN1) |
> >>  		   ILK_FBCQ_DIS);
> >>  
> >>  	/* WaDisableBackToBackFlipFix:ivb */
> >> -	I915_WRITE(IVB_CHICKEN3,
> >> +	intel_uncore_write(&dev_priv->uncore, IVB_CHICKEN3,
> >>  		   CHICKEN3_DGMG_REQ_OUT_FIX_DISABLE |
> >>  		   CHICKEN3_DGMG_DONE_FIX_DISABLE);
> >>  
> >>  	if (IS_IVB_GT1(dev_priv))
> >> -		I915_WRITE(GEN7_ROW_CHICKEN2,
> >> +		intel_uncore_write(&dev_priv->uncore, GEN7_ROW_CHICKEN2,
> >>  			   _MASKED_BIT_ENABLE(DOP_CLOCK_GATING_DISABLE));
> >>  	else {
> >>  		/* must write both registers */
> >> -		I915_WRITE(GEN7_ROW_CHICKEN2,
> >> +		intel_uncore_write(&dev_priv->uncore, GEN7_ROW_CHICKEN2,
> >>  			   _MASKED_BIT_ENABLE(DOP_CLOCK_GATING_DISABLE));
> >> -		I915_WRITE(GEN7_ROW_CHICKEN2_GT2,
> >> +		intel_uncore_write(&dev_priv->uncore, GEN7_ROW_CHICKEN2_GT2,
> >>  			   _MASKED_BIT_ENABLE(DOP_CLOCK_GATING_DISABLE));
> >>  	}
> >>  
> >> @@ -7376,20 +7376,20 @@ static void ivb_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  	 * According to the spec, bit 13 (RCZUNIT) must be set on IVB.
> >>  	 * This implements the WaDisableRCZUnitClockGating:ivb workaround.
> >>  	 */
> >> -	I915_WRITE(GEN6_UCGCTL2,
> >> +	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL2,
> >>  		   GEN6_RCZUNIT_CLOCK_GATE_DISABLE);
> >>  
> >>  	/* This is required by WaCatErrorRejectionIssue:ivb */
> >> -	I915_WRITE(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
> >> -			I915_READ(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
> >> +	intel_uncore_write(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
> >> +			intel_uncore_read(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
> >>  			GEN7_SQ_CHICKEN_MBCUNIT_SQINTMOB);
> >>  
> >>  	g4x_disable_trickle_feed(dev_priv);
> >>  
> >> -	snpcr = I915_READ(GEN6_MBCUNIT_SNPCR);
> >> +	snpcr = intel_uncore_read(&dev_priv->uncore, GEN6_MBCUNIT_SNPCR);
> >>  	snpcr &= ~GEN6_MBC_SNPCR_MASK;
> >>  	snpcr |= GEN6_MBC_SNPCR_MED;
> >> -	I915_WRITE(GEN6_MBCUNIT_SNPCR, snpcr);
> >> +	intel_uncore_write(&dev_priv->uncore, GEN6_MBCUNIT_SNPCR, snpcr);
> >>  
> >>  	if (!HAS_PCH_NOP(dev_priv))
> >>  		cpt_init_clock_gating(dev_priv);
> >> @@ -7400,58 +7400,58 @@ static void ivb_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  static void vlv_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  {
> >>  	/* WaDisableBackToBackFlipFix:vlv */
> >> -	I915_WRITE(IVB_CHICKEN3,
> >> +	intel_uncore_write(&dev_priv->uncore, IVB_CHICKEN3,
> >>  		   CHICKEN3_DGMG_REQ_OUT_FIX_DISABLE |
> >>  		   CHICKEN3_DGMG_DONE_FIX_DISABLE);
> >>  
> >>  	/* WaDisableDopClockGating:vlv */
> >> -	I915_WRITE(GEN7_ROW_CHICKEN2,
> >> +	intel_uncore_write(&dev_priv->uncore, GEN7_ROW_CHICKEN2,
> >>  		   _MASKED_BIT_ENABLE(DOP_CLOCK_GATING_DISABLE));
> >>  
> >>  	/* This is required by WaCatErrorRejectionIssue:vlv */
> >> -	I915_WRITE(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
> >> -		   I915_READ(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
> >> +	intel_uncore_write(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
> >> +		   intel_uncore_read(&dev_priv->uncore, GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
> >>  		   GEN7_SQ_CHICKEN_MBCUNIT_SQINTMOB);
> >>  
> >>  	/*
> >>  	 * According to the spec, bit 13 (RCZUNIT) must be set on IVB.
> >>  	 * This implements the WaDisableRCZUnitClockGating:vlv workaround.
> >>  	 */
> >> -	I915_WRITE(GEN6_UCGCTL2,
> >> +	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL2,
> >>  		   GEN6_RCZUNIT_CLOCK_GATE_DISABLE);
> >>  
> >>  	/* WaDisableL3Bank2xClockGate:vlv
> >>  	 * Disabling L3 clock gating- MMIO 940c[25] = 1
> >>  	 * Set bit 25, to disable L3_BANK_2x_CLK_GATING */
> >> -	I915_WRITE(GEN7_UCGCTL4,
> >> -		   I915_READ(GEN7_UCGCTL4) | GEN7_L3BANK2X_CLOCK_GATE_DISABLE);
> >> +	intel_uncore_write(&dev_priv->uncore, GEN7_UCGCTL4,
> >> +		   intel_uncore_read(&dev_priv->uncore, GEN7_UCGCTL4) | GEN7_L3BANK2X_CLOCK_GATE_DISABLE);
> >>  
> >>  	/*
> >>  	 * WaDisableVLVClockGating_VBIIssue:vlv
> >>  	 * Disable clock gating on th GCFG unit to prevent a delay
> >>  	 * in the reporting of vblank events.
> >>  	 */
> >> -	I915_WRITE(VLV_GUNIT_CLOCK_GATE, GCFG_DIS);
> >> +	intel_uncore_write(&dev_priv->uncore, VLV_GUNIT_CLOCK_GATE, GCFG_DIS);
> >>  }
> >>  
> >>  static void chv_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  {
> >>  	/* WaVSRefCountFullforceMissDisable:chv */
> >>  	/* WaDSRefCountFullforceMissDisable:chv */
> >> -	I915_WRITE(GEN7_FF_THREAD_MODE,
> >> -		   I915_READ(GEN7_FF_THREAD_MODE) &
> >> +	intel_uncore_write(&dev_priv->uncore, GEN7_FF_THREAD_MODE,
> >> +		   intel_uncore_read(&dev_priv->uncore, GEN7_FF_THREAD_MODE) &
> >>  		   ~(GEN8_FF_DS_REF_CNT_FFME | GEN7_FF_VS_REF_CNT_FFME));
> >>  
> >>  	/* WaDisableSemaphoreAndSyncFlipWait:chv */
> >> -	I915_WRITE(GEN6_RC_SLEEP_PSMI_CONTROL,
> >> +	intel_uncore_write(&dev_priv->uncore, GEN6_RC_SLEEP_PSMI_CONTROL,
> >>  		   _MASKED_BIT_ENABLE(GEN8_RC_SEMA_IDLE_MSG_DISABLE));
> >>  
> >>  	/* WaDisableCSUnitClockGating:chv */
> >> -	I915_WRITE(GEN6_UCGCTL1, I915_READ(GEN6_UCGCTL1) |
> >> +	intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL1, intel_uncore_read(&dev_priv->uncore, GEN6_UCGCTL1) |
> >>  		   GEN6_CSUNIT_CLOCK_GATE_DISABLE);
> >>  
> >>  	/* WaDisableSDEUnitClockGating:chv */
> >> -	I915_WRITE(GEN8_UCGCTL6, I915_READ(GEN8_UCGCTL6) |
> >> +	intel_uncore_write(&dev_priv->uncore, GEN8_UCGCTL6, intel_uncore_read(&dev_priv->uncore, GEN8_UCGCTL6) |
> >>  		   GEN8_SDEUNIT_CLOCK_GATE_DISABLE);
> >>  
> >>  	/*
> >> @@ -7466,17 +7466,17 @@ static void g4x_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  {
> >>  	u32 dspclk_gate;
> >>  
> >> -	I915_WRITE(RENCLK_GATE_D1, 0);
> >> -	I915_WRITE(RENCLK_GATE_D2, VF_UNIT_CLOCK_GATE_DISABLE |
> >> +	intel_uncore_write(&dev_priv->uncore, RENCLK_GATE_D1, 0);
> >> +	intel_uncore_write(&dev_priv->uncore, RENCLK_GATE_D2, VF_UNIT_CLOCK_GATE_DISABLE |
> >>  		   GS_UNIT_CLOCK_GATE_DISABLE |
> >>  		   CL_UNIT_CLOCK_GATE_DISABLE);
> >> -	I915_WRITE(RAMCLK_GATE_D, 0);
> >> +	intel_uncore_write(&dev_priv->uncore, RAMCLK_GATE_D, 0);
> >>  	dspclk_gate = VRHUNIT_CLOCK_GATE_DISABLE |
> >>  		OVRUNIT_CLOCK_GATE_DISABLE |
> >>  		OVCUNIT_CLOCK_GATE_DISABLE;
> >>  	if (IS_GM45(dev_priv))
> >>  		dspclk_gate |= DSSUNIT_CLOCK_GATE_DISABLE;
> >> -	I915_WRITE(DSPCLK_GATE_D, dspclk_gate);
> >> +	intel_uncore_write(&dev_priv->uncore, DSPCLK_GATE_D, dspclk_gate);
> >>  
> >>  	g4x_disable_trickle_feed(dev_priv);
> >>  }
> >> @@ -7497,49 +7497,49 @@ static void i965gm_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  
> >>  static void i965g_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  {
> >> -	I915_WRITE(RENCLK_GATE_D1, I965_RCZ_CLOCK_GATE_DISABLE |
> >> +	intel_uncore_write(&dev_priv->uncore, RENCLK_GATE_D1, I965_RCZ_CLOCK_GATE_DISABLE |
> >>  		   I965_RCC_CLOCK_GATE_DISABLE |
> >>  		   I965_RCPB_CLOCK_GATE_DISABLE |
> >>  		   I965_ISC_CLOCK_GATE_DISABLE |
> >>  		   I965_FBC_CLOCK_GATE_DISABLE);
> >> -	I915_WRITE(RENCLK_GATE_D2, 0);
> >> -	I915_WRITE(MI_ARB_STATE,
> >> +	intel_uncore_write(&dev_priv->uncore, RENCLK_GATE_D2, 0);
> >> +	intel_uncore_write(&dev_priv->uncore, MI_ARB_STATE,
> >>  		   _MASKED_BIT_ENABLE(MI_ARB_DISPLAY_TRICKLE_FEED_DISABLE));
> >>  }
> >>  
> >>  static void gen3_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  {
> >> -	u32 dstate = I915_READ(D_STATE);
> >> +	u32 dstate = intel_uncore_read(&dev_priv->uncore, D_STATE);
> >>  
> >>  	dstate |= DSTATE_PLL_D3_OFF | DSTATE_GFX_CLOCK_GATING |
> >>  		DSTATE_DOT_CLOCK_GATING;
> >> -	I915_WRITE(D_STATE, dstate);
> >> +	intel_uncore_write(&dev_priv->uncore, D_STATE, dstate);
> >>  
> >>  	if (IS_PINEVIEW(dev_priv))
> >> -		I915_WRITE(ECOSKPD, _MASKED_BIT_ENABLE(ECO_GATING_CX_ONLY));
> >> +		intel_uncore_write(&dev_priv->uncore, ECOSKPD, _MASKED_BIT_ENABLE(ECO_GATING_CX_ONLY));
> >>  
> >>  	/* IIR "flip pending" means done if this bit is set */
> >> -	I915_WRITE(ECOSKPD, _MASKED_BIT_DISABLE(ECO_FLIP_DONE));
> >> +	intel_uncore_write(&dev_priv->uncore, ECOSKPD, _MASKED_BIT_DISABLE(ECO_FLIP_DONE));
> >>  
> >>  	/* interrupts should cause a wake up from C3 */
> >> -	I915_WRITE(INSTPM, _MASKED_BIT_ENABLE(INSTPM_AGPBUSY_INT_EN));
> >> +	intel_uncore_write(&dev_priv->uncore, INSTPM, _MASKED_BIT_ENABLE(INSTPM_AGPBUSY_INT_EN));
> >>  
> >>  	/* On GEN3 we really need to make sure the ARB C3 LP bit is set */
> >> -	I915_WRITE(MI_ARB_STATE, _MASKED_BIT_ENABLE(MI_ARB_C3_LP_WRITE_ENABLE));
> >> +	intel_uncore_write(&dev_priv->uncore, MI_ARB_STATE, _MASKED_BIT_ENABLE(MI_ARB_C3_LP_WRITE_ENABLE));
> >>  
> >> -	I915_WRITE(MI_ARB_STATE,
> >> +	intel_uncore_write(&dev_priv->uncore, MI_ARB_STATE,
> >>  		   _MASKED_BIT_ENABLE(MI_ARB_DISPLAY_TRICKLE_FEED_DISABLE));
> >>  }
> >>  
> >>  static void i85x_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  {
> >> -	I915_WRITE(RENCLK_GATE_D1, SV_CLOCK_GATE_DISABLE);
> >> +	intel_uncore_write(&dev_priv->uncore, RENCLK_GATE_D1, SV_CLOCK_GATE_DISABLE);
> >>  
> >>  	/* interrupts should cause a wake up from C3 */
> >> -	I915_WRITE(MI_STATE, _MASKED_BIT_ENABLE(MI_AGPBUSY_INT_EN) |
> >> +	intel_uncore_write(&dev_priv->uncore, MI_STATE, _MASKED_BIT_ENABLE(MI_AGPBUSY_INT_EN) |
> >>  		   _MASKED_BIT_DISABLE(MI_AGPBUSY_830_MODE));
> >>  
> >> -	I915_WRITE(MEM_MODE,
> >> +	intel_uncore_write(&dev_priv->uncore, MEM_MODE,
> >>  		   _MASKED_BIT_ENABLE(MEM_DISPLAY_TRICKLE_FEED_DISABLE));
> >>  
> >>  	/*
> >> @@ -7549,13 +7549,13 @@ static void i85x_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  	 * abosultely nothing) would not allow FBC to recompress
> >>  	 * until a 2D blit occurs.
> >>  	 */
> >> -	I915_WRITE(SCPD0,
> >> +	intel_uncore_write(&dev_priv->uncore, SCPD0,
> >>  		   _MASKED_BIT_ENABLE(SCPD_FBC_IGNORE_3D));
> >>  }
> >>  
> >>  static void i830_init_clock_gating(struct drm_i915_private *dev_priv)
> >>  {
> >> -	I915_WRITE(MEM_MODE,
> >> +	intel_uncore_write(&dev_priv->uncore, MEM_MODE,
> >>  		   _MASKED_BIT_ENABLE(MEM_DISPLAY_A_TRICKLE_FEED_DISABLE) |
> >>  		   _MASKED_BIT_ENABLE(MEM_DISPLAY_B_TRICKLE_FEED_DISABLE));
> >>  }
> >> -- 
> >> 2.20.1
> >> 
> >> _______________________________________________
> >> Intel-gfx mailing list
> >> Intel-gfx@lists.freedesktop.org
> >> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 
> -- 
> Jani Nikula, Intel Open Source Graphics Center
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2020-11-14 20:32 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-12 11:44 [Intel-gfx] [PATCH 0/9] drm/i915: nuke remaining legacy reg helpers (I915_READ/WRITE etc.) Jani Nikula
2020-11-12 11:44 ` [Intel-gfx] [PATCH 1/9] drm/i915: remove last users of I915_READ_FW() Jani Nikula
2020-11-12 20:17   ` Rodrigo Vivi
2020-11-12 20:24   ` Chris Wilson
2020-11-12 11:44 ` [Intel-gfx] [PATCH 2/9] drm/i915: remove last traces of I915_READ_FW() and I915_WRITE_FW() Jani Nikula
2020-11-12 20:19   ` Rodrigo Vivi
2020-11-12 20:26   ` Chris Wilson
2020-11-12 11:44 ` [Intel-gfx] [PATCH 3/9] drm/i915/cdclk: prefer intel_de_write() over I915_WRITE() Jani Nikula
2020-11-12 20:20   ` Rodrigo Vivi
2020-11-12 11:44 ` [Intel-gfx] [PATCH 4/9] drm/i915/debugfs: replace I915_READ()+I915_WRITE() with intel_uncore_rmw() Jani Nikula
2020-11-12 20:21   ` Rodrigo Vivi
2020-11-12 20:28   ` Chris Wilson
2020-11-12 11:44 ` [Intel-gfx] [PATCH 5/9] drm/i915/debugfs: replace I915_READ() with intel_uncore_read() Jani Nikula
2020-11-12 20:23   ` Rodrigo Vivi
2020-11-12 11:44 ` [Intel-gfx] [PATCH 6/9] drm/i915/suspend: replace I915_READ()/WRITE() with intel_de_read()/write() Jani Nikula
2020-11-12 20:27   ` Rodrigo Vivi
2020-11-12 11:44 ` [Intel-gfx] [PATCH 7/9] drm/i915/pm: replace I915_READ()/WRITE() with intel_uncore_read()/write() Jani Nikula
2020-11-12 21:00   ` Rodrigo Vivi
2020-11-13  7:47     ` Jani Nikula
2020-11-14 20:34       ` Rodrigo Vivi
2020-11-12 11:44 ` [Intel-gfx] [PATCH 8/9] drm/i915/irq: " Jani Nikula
2020-11-12 11:44 ` [Intel-gfx] [PATCH 9/9] drm/i915: remove last traces of I915_READ(), I915_WRITE() and POSTING_READ() Jani Nikula
2020-11-12 21:02   ` Rodrigo Vivi
2020-11-12 12:35 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: nuke remaining legacy reg helpers (I915_READ/WRITE etc.) Patchwork
2020-11-12 13:06 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2020-11-12 14:51 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.