if (ring_id == RCS0 && INTEL_GEN(dev_priv) >= 9)
                fw |= FORCEWAKE_RENDER;
 
-       intel_uncore_forcewake_get(dev_priv, fw);
+       intel_uncore_forcewake_get(&dev_priv->uncore, fw);
 
        I915_WRITE_FW(reg, 0x1);
 
        else
                vgpu_vreg_t(vgpu, reg) = 0;
 
-       intel_uncore_forcewake_put(dev_priv, fw);
+       intel_uncore_forcewake_put(&dev_priv->uncore, fw);
 
        gvt_dbg_core("invalidate TLB for ring %d\n", ring_id);
 }
         * performace for batch mmio read/write, so we need
         * handle forcewake mannually.
         */
-       intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
        switch_mmio(pre, next, ring_id);
-       intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
 }
 
 /**
 
                                workload->ring_id, workload);
 
                if (need_force_wake)
-                       intel_uncore_forcewake_get(gvt->dev_priv,
+                       intel_uncore_forcewake_get(&gvt->dev_priv->uncore,
                                        FORCEWAKE_ALL);
 
                ret = dispatch_workload(workload);
                complete_current_workload(gvt, ring_id);
 
                if (need_force_wake)
-                       intel_uncore_forcewake_put(gvt->dev_priv,
+                       intel_uncore_forcewake_put(&gvt->dev_priv->uncore,
                                        FORCEWAKE_ALL);
 
                intel_runtime_pm_put_unchecked(gvt->dev_priv);
 
                }
 
                /* RPSTAT1 is in the GT power well */
-               intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
+               intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
 
                reqf = I915_READ(GEN6_RPNSWREQ);
                if (INTEL_GEN(dev_priv) >= 9)
                cagf = intel_gpu_freq(dev_priv,
                                      intel_get_cagf(dev_priv, rpstat));
 
-               intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+               intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
 
                if (INTEL_GEN(dev_priv) >= 11) {
                        pm_ier = I915_READ(GEN11_GPM_WGBOXPERF_INTR_ENABLE);
                u32 rpup, rpupei;
                u32 rpdown, rpdownei;
 
-               intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
+               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;
-               intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+               intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
 
                seq_printf(m, "\nRPS Autotuning (current \"%s\" window):\n",
                           rps_power_to_str(rps->power.mode));
                return 0;
 
        file->private_data = (void *)(uintptr_t)intel_runtime_pm_get(i915);
-       intel_uncore_forcewake_user_get(i915);
+       intel_uncore_forcewake_user_get(&i915->uncore);
 
        return 0;
 }
        if (INTEL_GEN(i915) < 6)
                return 0;
 
-       intel_uncore_forcewake_user_put(i915);
+       intel_uncore_forcewake_user_put(&i915->uncore);
        intel_runtime_pm_put(i915,
                             (intel_wakeref_t)(uintptr_t)file->private_data);
 
 
        GEM_TRACE("\n");
 
        wakeref = intel_runtime_pm_get(i915);
-       intel_uncore_forcewake_get(i915, FORCEWAKE_ALL);
+       intel_uncore_forcewake_get(&i915->uncore, FORCEWAKE_ALL);
 
        /*
         * As we have just resumed the machine and woken the device up from
         */
        intel_engines_sanitize(i915, false);
 
-       intel_uncore_forcewake_put(i915, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&i915->uncore, FORCEWAKE_ALL);
        intel_runtime_pm_put(i915, wakeref);
 
        mutex_lock(&i915->drm.struct_mutex);
        WARN_ON(i915->gt.awake);
 
        mutex_lock(&i915->drm.struct_mutex);
-       intel_uncore_forcewake_get(i915, FORCEWAKE_ALL);
+       intel_uncore_forcewake_get(&i915->uncore, FORCEWAKE_ALL);
 
        i915_gem_restore_gtt_mappings(i915);
        i915_gem_restore_fences(i915);
                goto err_wedged;
 
 out_unlock:
-       intel_uncore_forcewake_put(i915, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&i915->uncore, FORCEWAKE_ALL);
        mutex_unlock(&i915->drm.struct_mutex);
        return;
 
        dev_priv->gt.last_init_time = ktime_get();
 
        /* Double layer security blanket, see i915_gem_init() */
-       intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
 
        if (HAS_EDRAM(dev_priv) && INTEL_GEN(dev_priv) < 9)
                I915_WRITE(HSW_IDICR, I915_READ(HSW_IDICR) | IDIHASHMSK(0xf));
        if (ret)
                goto cleanup_uc;
 
-       intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
 
        return 0;
 
 cleanup_uc:
        intel_uc_fini_hw(dev_priv);
 out:
-       intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
 
        return ret;
 }
         * just magically go away.
         */
        mutex_lock(&dev_priv->drm.struct_mutex);
-       intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
 
        ret = i915_gem_init_ggtt(dev_priv);
        if (ret) {
                goto err_init_hw;
        }
 
-       intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
        mutex_unlock(&dev_priv->drm.struct_mutex);
 
        return 0;
        i915_gem_fini_scratch(dev_priv);
 err_ggtt:
 err_unlock:
-       intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
        mutex_unlock(&dev_priv->drm.struct_mutex);
 
 err_uc_misc:
 
 
        free_oa_buffer(dev_priv);
 
-       intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
        intel_runtime_pm_put(dev_priv, stream->wakeref);
 
        if (stream->ctx)
         *   references will effectively disable RC6.
         */
        stream->wakeref = intel_runtime_pm_get(dev_priv);
-       intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
 
        ret = alloc_oa_buffer(dev_priv);
        if (ret)
 err_oa_buf_alloc:
        put_oa_config(dev_priv, stream->oa_config);
 
-       intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
        intel_runtime_pm_put(dev_priv, stream->wakeref);
 
 err_config:
 
         * If the power well sleeps during the reset, the reset
         * request may be dropped and never completes (causing -EIO).
         */
-       intel_uncore_forcewake_get(i915, FORCEWAKE_ALL);
+       intel_uncore_forcewake_get(&i915->uncore, FORCEWAKE_ALL);
        for (retry = 0; ret == -ETIMEDOUT && retry < retries; retry++) {
                /*
                 * We stop engines, otherwise we might get failed reset and a
                ret = reset(i915, engine_mask, retry);
                preempt_enable();
        }
-       intel_uncore_forcewake_put(i915, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&i915->uncore, FORCEWAKE_ALL);
 
        return ret;
 }
 
        GEM_BUG_ON(!HAS_GUC(i915));
 
-       intel_uncore_forcewake_get(i915, FORCEWAKE_ALL);
+       intel_uncore_forcewake_get(&i915->uncore, FORCEWAKE_ALL);
        ret = gen6_hw_domain_reset(i915, guc_domain);
-       intel_uncore_forcewake_put(i915, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&i915->uncore, FORCEWAKE_ALL);
 
        return ret;
 }
         * written to the powercontext is undefined and so we may lose
         * GPU state upon resume, i.e. fail to restart after a reset.
         */
-       intel_uncore_forcewake_get(engine->i915, FORCEWAKE_ALL);
+       intel_uncore_forcewake_get(&engine->i915->uncore, FORCEWAKE_ALL);
        engine->reset.prepare(engine);
 }
 
 static void reset_finish_engine(struct intel_engine_cs *engine)
 {
        engine->reset.finish(engine);
-       intel_uncore_forcewake_put(engine->i915, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&engine->i915->uncore, FORCEWAKE_ALL);
 }
 
 struct i915_gpu_restart {
 
         * Make sure we're not on PC8 state before disabling PC8, otherwise
         * we'll hang the machine. To prevent PC8 state, just enable force_wake.
         */
-       intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
 
        if (val & LCPLL_POWER_DOWN_ALLOW) {
                val &= ~LCPLL_POWER_DOWN_ALLOW;
                        DRM_ERROR("Switching back to LCPLL failed\n");
        }
 
-       intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
 
        intel_update_cdclk(dev_priv);
        intel_dump_cdclk_state(&dev_priv->cdclk.hw, "Current CDCLK");
 
                                                     FW_REG_READ | FW_REG_WRITE);
 
        spin_lock_irq(&dev_priv->uncore.lock);
-       intel_uncore_forcewake_get__locked(dev_priv, fw_domains);
+       intel_uncore_forcewake_get__locked(&dev_priv->uncore, fw_domains);
 
        mcr = I915_READ_FW(GEN8_MCR_SELECTOR);
 
 
        I915_WRITE_FW(GEN8_MCR_SELECTOR, mcr);
 
-       intel_uncore_forcewake_put__locked(dev_priv, fw_domains);
+       intel_uncore_forcewake_put__locked(&dev_priv->uncore, fw_domains);
        spin_unlock_irq(&dev_priv->uncore.lock);
 
        return ret;
 
         * they are power context saved so it's ok to release forcewake
         * when we are done here and take it again at xfer time.
         */
-       intel_uncore_forcewake_get(dev_priv, FORCEWAKE_BLITTER);
+       intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_BLITTER);
 
        I915_WRITE(SOFT_SCRATCH(0), 0);
 
        for (i = 0; i < GUC_CTL_MAX_DWORDS; i++)
                I915_WRITE(SOFT_SCRATCH(1 + i), params[i]);
 
-       intel_uncore_forcewake_put(dev_priv, FORCEWAKE_BLITTER);
+       intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_BLITTER);
 }
 
 int intel_guc_send_nop(struct intel_guc *guc, const u32 *action, u32 len,
                *action != INTEL_GUC_ACTION_DEREGISTER_COMMAND_TRANSPORT_BUFFER);
 
        mutex_lock(&guc->send_mutex);
-       intel_uncore_forcewake_get(dev_priv, guc->send_regs.fw_domains);
+       intel_uncore_forcewake_get(&dev_priv->uncore, guc->send_regs.fw_domains);
 
        for (i = 0; i < len; i++)
                I915_WRITE(guc_send_reg(guc, i), action[i]);
        ret = INTEL_GUC_MSG_TO_DATA(status);
 
 out:
-       intel_uncore_forcewake_put(dev_priv, guc->send_regs.fw_domains);
+       intel_uncore_forcewake_put(&dev_priv->uncore, guc->send_regs.fw_domains);
        mutex_unlock(&guc->send_mutex);
 
        return ret;
 
 
        GEM_BUG_ON(guc_fw->type != INTEL_UC_FW_TYPE_GUC);
 
-       intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
 
        guc_prepare_xfer(guc);
 
 
        ret = guc_xfer_ucode(guc, vma);
 
-       intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
 
        return ret;
 }
 
 
        GEM_BUG_ON(huc_fw->type != INTEL_UC_FW_TYPE_HUC);
 
-       intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
 
        /* Set the source address for the uCode */
        offset = intel_guc_ggtt_offset(&dev_priv->guc, vma) +
        /* Disable the bits once DMA is over */
        I915_WRITE(DMA_CTRL, _MASKED_BIT_DISABLE(HUC_UKERNEL));
 
-       intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
 
        return ret;
 }
 
         * punit into committing the voltage change) as that takes a lot less
         * power than the render powerwell.
         */
-       intel_uncore_forcewake_get(dev_priv, FORCEWAKE_MEDIA);
+       intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_MEDIA);
        err = valleyview_set_rps(dev_priv, val);
-       intel_uncore_forcewake_put(dev_priv, FORCEWAKE_MEDIA);
+       intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_MEDIA);
 
        if (err)
                DRM_ERROR("Failed to set RPS for idle\n");
 {
        /* We're doing forcewake before Disabling RC6,
         * This what the BIOS expects when going into suspend */
-       intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
 
        I915_WRITE(GEN6_RC_CONTROL, 0);
 
-       intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
 }
 
 static void valleyview_disable_rps(struct drm_i915_private *dev_priv)
 /* See the Gen9_GT_PM_Programming_Guide doc for the below */
 static void gen9_enable_rps(struct drm_i915_private *dev_priv)
 {
-       intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
 
        /* Program defaults and thresholds for RPS */
        if (IS_GEN(dev_priv, 9))
         * RP_INTERRUPT_LIMITS & RPNSWREQ registers */
        reset_rps(dev_priv, gen6_set_rps);
 
-       intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
 }
 
 static void gen9_enable_rc6(struct drm_i915_private *dev_priv)
 
        /* 1b: Get forcewake during program sequence. Although the driver
         * hasn't enabled a state yet where we need forcewake, BIOS may have.*/
-       intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
 
        /* 2a: Disable RC states. */
        I915_WRITE(GEN6_RC_CONTROL, 0);
                I915_WRITE(GEN9_PG_ENABLE,
                           GEN9_RENDER_PG_ENABLE | GEN9_MEDIA_PG_ENABLE);
 
-       intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
 }
 
 static void gen8_enable_rc6(struct drm_i915_private *dev_priv)
 
        /* 1b: Get forcewake during program sequence. Although the driver
         * hasn't enabled a state yet where we need forcewake, BIOS may have.*/
-       intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
 
        /* 2a: Disable RC states. */
        I915_WRITE(GEN6_RC_CONTROL, 0);
                   GEN7_RC_CTL_TO_MODE |
                   GEN6_RC_CTL_RC6_ENABLE);
 
-       intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
 }
 
 static void gen8_enable_rps(struct drm_i915_private *dev_priv)
 {
        struct intel_rps *rps = &dev_priv->gt_pm.rps;
 
-       intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
 
        /* 1 Program defaults and thresholds for RPS*/
        I915_WRITE(GEN6_RPNSWREQ,
 
        reset_rps(dev_priv, gen6_set_rps);
 
-       intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
 }
 
 static void gen6_enable_rc6(struct drm_i915_private *dev_priv)
                I915_WRITE(GTFIFODBG, gtfifodbg);
        }
 
-       intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
 
        /* disable the counters and set deterministic thresholds */
        I915_WRITE(GEN6_RC_CONTROL, 0);
                        DRM_ERROR("Couldn't fix incorrect rc6 voltage\n");
        }
 
-       intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
 }
 
 static void gen6_enable_rps(struct drm_i915_private *dev_priv)
         * Perhaps there might be some value in exposing these to
         * userspace...
         */
-       intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
 
        /* Power down if completely idle for over 50ms */
        I915_WRITE(GEN6_RP_DOWN_TIMEOUT, 50000);
 
        reset_rps(dev_priv, gen6_set_rps);
 
-       intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
 }
 
 static void gen6_update_ring_freq(struct drm_i915_private *dev_priv)
 
        /* 1a & 1b: Get forcewake during program sequence. Although the driver
         * hasn't enabled a state yet where we need forcewake, BIOS may have.*/
-       intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
 
        /*  Disable RC states. */
        I915_WRITE(GEN6_RC_CONTROL, 0);
                rc6_mode = GEN7_RC_CTL_TO_MODE;
        I915_WRITE(GEN6_RC_CONTROL, rc6_mode);
 
-       intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
 }
 
 static void cherryview_enable_rps(struct drm_i915_private *dev_priv)
 {
        u32 val;
 
-       intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
 
        /* 1: Program defaults and thresholds for RPS*/
        I915_WRITE(GEN6_RP_DOWN_TIMEOUT, 1000000);
 
        reset_rps(dev_priv, valleyview_set_rps);
 
-       intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
 }
 
 static void valleyview_enable_rc6(struct drm_i915_private *dev_priv)
                I915_WRITE(GTFIFODBG, gtfifodbg);
        }
 
-       intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
 
        /*  Disable RC states. */
        I915_WRITE(GEN6_RC_CONTROL, 0);
        I915_WRITE(GEN6_RC_CONTROL,
                   GEN7_RC_CTL_TO_MODE | VLV_RC_CTL_CTX_RST_PARALLEL);
 
-       intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
 }
 
 static void valleyview_enable_rps(struct drm_i915_private *dev_priv)
 {
        u32 val;
 
-       intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
 
        I915_WRITE(GEN6_RP_DOWN_TIMEOUT, 1000000);
        I915_WRITE(GEN6_RP_UP_THRESHOLD, 59400);
 
        reset_rps(dev_priv, valleyview_set_rps);
 
-       intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
 }
 
 static unsigned long intel_pxfreq(u32 vidfreq)
        fw_domains = intel_uncore_forcewake_for_reg(dev_priv, reg, FW_REG_READ);
 
        spin_lock_irqsave(&dev_priv->uncore.lock, flags);
-       intel_uncore_forcewake_get__locked(dev_priv, fw_domains);
+       intel_uncore_forcewake_get__locked(&dev_priv->uncore, fw_domains);
 
        /* On VLV and CHV, residency time is in CZ units rather than 1.28us */
        if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
        time_hw += dev_priv->gt_pm.rc6.cur_residency[i];
        dev_priv->gt_pm.rc6.cur_residency[i] = time_hw;
 
-       intel_uncore_forcewake_put__locked(dev_priv, fw_domains);
+       intel_uncore_forcewake_put__locked(&dev_priv->uncore, fw_domains);
        spin_unlock_irqrestore(&dev_priv->uncore.lock, flags);
 
        return mul_u64_u32_div(time_hw, mul, div);
 
        struct intel_ring *ring = engine->buffer;
        int ret = 0;
 
-       intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
 
        if (!stop_ring(engine)) {
                /* G45 ring initialization often fails to reset head to zero */
        /* Papering over lost _interrupts_ immediately following the restart */
        intel_engine_queue_breadcrumbs(engine);
 out:
-       intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
 
        return ret;
 }
 {
        struct drm_i915_private *dev_priv = request->i915;
 
-       intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
 
        /* Every tail move must follow the sequence below */
 
        I915_WRITE_FW(GEN6_BSD_SLEEP_PSMI_CONTROL,
                      _MASKED_BIT_DISABLE(GEN6_BSD_SLEEP_MSG_DISABLE));
 
-       intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
 }
 
 static int mi_flush_dw(struct i915_request *rq, u32 flags)
 
 
 /**
  * intel_uncore_forcewake_get - grab forcewake domain references
- * @dev_priv: i915 device instance
+ * @uncore: the intel_uncore structure
  * @fw_domains: forcewake domains to get reference on
  *
  * This function can be used get GT's forcewake domain references.
  * call to intel_unforce_forcewake_put(). Usually caller wants all the domains
  * to be kept awake so the @fw_domains would be then FORCEWAKE_ALL.
  */
-void intel_uncore_forcewake_get(struct drm_i915_private *dev_priv,
+void intel_uncore_forcewake_get(struct intel_uncore *uncore,
                                enum forcewake_domains fw_domains)
 {
-       struct intel_uncore *uncore = &dev_priv->uncore;
        unsigned long irqflags;
 
        if (!uncore->funcs.force_wake_get)
                return;
 
-       assert_rpm_wakelock_held(dev_priv);
+       assert_rpm_wakelock_held(uncore_to_i915(uncore));
 
        spin_lock_irqsave(&uncore->lock, irqflags);
        __intel_uncore_forcewake_get(uncore, fw_domains);
 
 /**
  * intel_uncore_forcewake_user_get - claim forcewake on behalf of userspace
- * @dev_priv: i915 device instance
+ * @uncore: the intel_uncore structure
  *
  * This function is a wrapper around intel_uncore_forcewake_get() to acquire
  * the GT powerwell and in the process disable our debugging for the
  * duration of userspace's bypass.
  */
-void intel_uncore_forcewake_user_get(struct drm_i915_private *dev_priv)
+void intel_uncore_forcewake_user_get(struct intel_uncore *uncore)
 {
-       struct intel_uncore *uncore = &dev_priv->uncore;
-
        spin_lock_irq(&uncore->lock);
        if (!uncore->user_forcewake.count++) {
-               intel_uncore_forcewake_get__locked(dev_priv, FORCEWAKE_ALL);
+               intel_uncore_forcewake_get__locked(uncore, FORCEWAKE_ALL);
 
                /* Save and disable mmio debugging for the user bypass */
                uncore->user_forcewake.saved_mmio_check =
 
 /**
  * intel_uncore_forcewake_user_put - release forcewake on behalf of userspace
- * @dev_priv: i915 device instance
+ * @uncore: the intel_uncore structure
  *
  * This function complements intel_uncore_forcewake_user_get() and releases
  * the GT powerwell taken on behalf of the userspace bypass.
  */
-void intel_uncore_forcewake_user_put(struct drm_i915_private *dev_priv)
+void intel_uncore_forcewake_user_put(struct intel_uncore *uncore)
 {
-       struct intel_uncore *uncore = &dev_priv->uncore;
+       struct drm_i915_private *i915 = uncore_to_i915(uncore);
 
        spin_lock_irq(&uncore->lock);
        if (!--uncore->user_forcewake.count) {
-               if (intel_uncore_unclaimed_mmio(dev_priv))
-                       dev_info(dev_priv->drm.dev,
+               if (intel_uncore_unclaimed_mmio(i915))
+                       dev_info(i915->drm.dev,
                                 "Invalid mmio detected during user access\n");
 
                uncore->unclaimed_mmio_check =
                i915_modparams.mmio_debug =
                        uncore->user_forcewake.saved_mmio_debug;
 
-               intel_uncore_forcewake_put__locked(dev_priv, FORCEWAKE_ALL);
+               intel_uncore_forcewake_put__locked(uncore, FORCEWAKE_ALL);
        }
        spin_unlock_irq(&uncore->lock);
 }
 
 /**
  * intel_uncore_forcewake_get__locked - grab forcewake domain references
- * @dev_priv: i915 device instance
+ * @uncore: the intel_uncore structure
  * @fw_domains: forcewake domains to get reference on
  *
  * See intel_uncore_forcewake_get(). This variant places the onus
  * on the caller to explicitly handle the dev_priv->uncore.lock spinlock.
  */
-void intel_uncore_forcewake_get__locked(struct drm_i915_private *dev_priv,
+void intel_uncore_forcewake_get__locked(struct intel_uncore *uncore,
                                        enum forcewake_domains fw_domains)
 {
-       struct intel_uncore *uncore = &dev_priv->uncore;
-
        lockdep_assert_held(&uncore->lock);
 
        if (!uncore->funcs.force_wake_get)
 
 /**
  * intel_uncore_forcewake_put - release a forcewake domain reference
- * @dev_priv: i915 device instance
+ * @uncore: the intel_uncore structure
  * @fw_domains: forcewake domains to put references
  *
  * This function drops the device-level forcewakes for specified
  * domains obtained by intel_uncore_forcewake_get().
  */
-void intel_uncore_forcewake_put(struct drm_i915_private *dev_priv,
+void intel_uncore_forcewake_put(struct intel_uncore *uncore,
                                enum forcewake_domains fw_domains)
 {
-       struct intel_uncore *uncore = &dev_priv->uncore;
        unsigned long irqflags;
 
        if (!uncore->funcs.force_wake_put)
 
 /**
  * intel_uncore_forcewake_put__locked - grab forcewake domain references
- * @dev_priv: i915 device instance
+ * @uncore: the intel_uncore structure
  * @fw_domains: forcewake domains to get reference on
  *
  * See intel_uncore_forcewake_put(). This variant places the onus
  * on the caller to explicitly handle the dev_priv->uncore.lock spinlock.
  */
-void intel_uncore_forcewake_put__locked(struct drm_i915_private *dev_priv,
+void intel_uncore_forcewake_put__locked(struct intel_uncore *uncore,
                                        enum forcewake_domains fw_domains)
 {
-       struct intel_uncore *uncore = &dev_priv->uncore;
-
        lockdep_assert_held(&uncore->lock);
 
        if (!uncore->funcs.force_wake_put)
                 * the access.
                 */
                disable_rpm_wakeref_asserts(dev_priv);
-               intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
+               intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
                enable_rpm_wakeref_asserts(dev_priv);
                break;
        case MBI_PMIC_BUS_ACCESS_END:
-               intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+               intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
                break;
        }
 
        might_sleep_if(slow_timeout_ms);
 
        spin_lock_irq(&dev_priv->uncore.lock);
-       intel_uncore_forcewake_get__locked(dev_priv, fw);
+       intel_uncore_forcewake_get__locked(&dev_priv->uncore, fw);
 
        ret = __intel_wait_for_register_fw(dev_priv,
                                           reg, mask, value,
                                           fast_timeout_us, 0, ®_value);
 
-       intel_uncore_forcewake_put__locked(dev_priv, fw);
+       intel_uncore_forcewake_put__locked(&dev_priv->uncore, fw);
        spin_unlock_irq(&dev_priv->uncore.lock);
 
        if (ret && slow_timeout_ms)
 
 #define FW_REG_READ  (1)
 #define FW_REG_WRITE (2)
 
-void intel_uncore_forcewake_get(struct drm_i915_private *dev_priv,
+void intel_uncore_forcewake_get(struct intel_uncore *uncore,
                                enum forcewake_domains domains);
-void intel_uncore_forcewake_put(struct drm_i915_private *dev_priv,
+void intel_uncore_forcewake_put(struct intel_uncore *uncore,
                                enum forcewake_domains domains);
 /* Like above but the caller must manage the uncore.lock itself.
  * Must be used with I915_READ_FW and friends.
  */
-void intel_uncore_forcewake_get__locked(struct drm_i915_private *dev_priv,
+void intel_uncore_forcewake_get__locked(struct intel_uncore *uncore,
                                        enum forcewake_domains domains);
-void intel_uncore_forcewake_put__locked(struct drm_i915_private *dev_priv,
+void intel_uncore_forcewake_put__locked(struct intel_uncore *uncore,
                                        enum forcewake_domains domains);
 
-void intel_uncore_forcewake_user_get(struct drm_i915_private *dev_priv);
-void intel_uncore_forcewake_user_put(struct drm_i915_private *dev_priv);
+void intel_uncore_forcewake_user_get(struct intel_uncore *uncore);
+void intel_uncore_forcewake_user_put(struct intel_uncore *uncore);
 
 int __intel_wait_for_register(struct drm_i915_private *dev_priv,
                              i915_reg_t reg,
 
        fw = wal_get_fw_for_rmw(dev_priv, wal);
 
        spin_lock_irqsave(&dev_priv->uncore.lock, flags);
-       intel_uncore_forcewake_get__locked(dev_priv, fw);
+       intel_uncore_forcewake_get__locked(&dev_priv->uncore, fw);
 
        for (i = 0, wa = wal->list; i < wal->count; i++, wa++) {
                u32 val = I915_READ_FW(wa->reg);
                I915_WRITE_FW(wa->reg, val);
        }
 
-       intel_uncore_forcewake_put__locked(dev_priv, fw);
+       intel_uncore_forcewake_put__locked(&dev_priv->uncore, fw);
        spin_unlock_irqrestore(&dev_priv->uncore.lock, flags);
 }
 
 
                        goto out_rpm;
                }
 
-               intel_uncore_forcewake_get(i915, fw_domains);
+               intel_uncore_forcewake_get(uncore, fw_domains);
                val = readl(reg);
-               intel_uncore_forcewake_put(i915, fw_domains);
+               intel_uncore_forcewake_put(uncore, fw_domains);
 
                /* Flush the forcewake release (delayed onto a timer) */
                for_each_fw_domain_masked(domain, fw_domains, uncore, tmp) {
        if (!valid)
                return -ENOMEM;
 
-       intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
 
        check_for_unclaimed_mmio(dev_priv);
        for (offset = 0; offset < FW_RANGE; offset += 4) {
                        set_bit(offset, valid);
        }
 
-       intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+       intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
 
        err = 0;
        for_each_set_bit(offset, valid, FW_RANGE) {