Merge tag 'drm-intel-next-2021-01-04' of git://anongit.freedesktop.org/drm/drm-intel...
[platform/kernel/linux-starfive.git] / drivers / gpu / drm / i915 / intel_pm.c
index a20b505..bbc73df 100644 (file)
@@ -82,24 +82,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);
 }
 
@@ -108,21 +108,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);
 
        /*
@@ -131,20 +131,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);
 }
 
@@ -157,7 +157,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);
 }
 
@@ -165,7 +165,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:
@@ -195,7 +195,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;
 }
 
@@ -366,39 +366,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;
        }
@@ -494,20 +494,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;
@@ -525,7 +525,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;
@@ -541,7 +541,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;
@@ -558,7 +558,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;
@@ -911,38 +911,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);
@@ -976,25 +976,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) \
@@ -1008,7 +1008,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)) |
@@ -1020,35 +1020,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) |
@@ -1060,10 +1060,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) |
@@ -1073,7 +1073,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
@@ -2310,14 +2310,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);
@@ -2447,10 +2447,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,
@@ -2464,8 +2464,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);
@@ -2488,13 +2488,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. */
@@ -3534,17 +3534,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;
        }
 
@@ -3574,56 +3574,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;
 }
@@ -3640,7 +3640,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);
        }
 
@@ -4300,12 +4300,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)
@@ -4314,11 +4314,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)))
@@ -6231,9 +6231,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]);
                }
@@ -6242,9 +6242,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);
        }
@@ -6280,7 +6280,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));
 
@@ -6324,13 +6324,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);
@@ -6338,7 +6338,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);
@@ -6352,7 +6352,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);
@@ -6364,34 +6364,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;
@@ -6403,11 +6403,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;
@@ -6428,7 +6428,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 =
@@ -6572,7 +6572,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)) {
@@ -6719,9 +6719,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.
@@ -6739,25 +6739,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);
 }
 
 /**
@@ -6808,14 +6808,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)
@@ -6850,7 +6850,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)
@@ -6858,12 +6858,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));
        }
 }
 
@@ -6879,10 +6879,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);
 
        /*
@@ -6892,12 +6892,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));
 
        /*
@@ -6909,18 +6909,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);
@@ -6938,27 +6938,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);
        }
 }
@@ -6967,7 +6967,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",
@@ -6978,14 +6978,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);
 
@@ -7002,7 +7002,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);
 
@@ -7017,14 +7017,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);
 
@@ -7042,23 +7042,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);
        }
 }
 
@@ -7070,33 +7070,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,
@@ -7106,12 +7106,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 */
@@ -7123,7 +7123,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);
 }
 
@@ -7133,7 +7133,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);
 }
 
@@ -7143,35 +7143,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)
@@ -7180,21 +7180,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);
 }
 
@@ -7203,31 +7203,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);
 }
 
@@ -7236,32 +7236,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);
 }
 
@@ -7270,42 +7270,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);
@@ -7315,24 +7315,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);
 }
@@ -7341,26 +7341,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));
        }
 
@@ -7368,20 +7368,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);
@@ -7392,58 +7392,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);
 
        /*
@@ -7458,17 +7458,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);
 }
@@ -7489,49 +7489,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));
 
        /*
@@ -7541,13 +7541,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));
 }