struct drm_i915_gem_object *ctx_obj0,
                                 struct drm_i915_gem_object *ctx_obj1)
 {
-       struct drm_i915_private *dev_priv = ring->dev->dev_private;
+       struct drm_device *dev = ring->dev;
+       struct drm_i915_private *dev_priv = dev->dev_private;
        uint64_t temp = 0;
        uint32_t desc[4];
        unsigned long flags;
         * Instead, we do the runtime_pm_get/put when creating/destroying requests.
         */
        spin_lock_irqsave(&dev_priv->uncore.lock, flags);
-       if (IS_CHERRYVIEW(dev_priv->dev)) {
+       if (IS_CHERRYVIEW(dev) || INTEL_INFO(dev)->gen >= 9) {
                if (dev_priv->uncore.fw_rendercount++ == 0)
                        dev_priv->uncore.funcs.force_wake_get(dev_priv,
                                                              FORCEWAKE_RENDER);
                if (dev_priv->uncore.fw_mediacount++ == 0)
                        dev_priv->uncore.funcs.force_wake_get(dev_priv,
                                                              FORCEWAKE_MEDIA);
+               if (INTEL_INFO(dev)->gen >= 9) {
+                       if (dev_priv->uncore.fw_blittercount++ == 0)
+                               dev_priv->uncore.funcs.force_wake_get(dev_priv,
+                                                       FORCEWAKE_BLITTER);
+               }
        } else {
                if (dev_priv->uncore.forcewake_count++ == 0)
                        dev_priv->uncore.funcs.force_wake_get(dev_priv,
 
        /* Release Force Wakeup (see the big comment above). */
        spin_lock_irqsave(&dev_priv->uncore.lock, flags);
-       if (IS_CHERRYVIEW(dev_priv->dev)) {
+       if (IS_CHERRYVIEW(dev) || INTEL_INFO(dev)->gen >= 9) {
                if (--dev_priv->uncore.fw_rendercount == 0)
                        dev_priv->uncore.funcs.force_wake_put(dev_priv,
                                                              FORCEWAKE_RENDER);
                if (--dev_priv->uncore.fw_mediacount == 0)
                        dev_priv->uncore.funcs.force_wake_put(dev_priv,
                                                              FORCEWAKE_MEDIA);
+               if (INTEL_INFO(dev)->gen >= 9) {
+                       if (--dev_priv->uncore.fw_blittercount == 0)
+                               dev_priv->uncore.funcs.force_wake_put(dev_priv,
+                                                       FORCEWAKE_BLITTER);
+               }
        } else {
                if (--dev_priv->uncore.forcewake_count == 0)
                        dev_priv->uncore.funcs.force_wake_put(dev_priv,