rcu_read_unlock();
}
seq_printf(m, "Semaphore boosts: %d\n", dev_priv->rps.semaphores.rps_boosts);
+ seq_printf(m, "MMIO flip boosts: %d\n", dev_priv->rps.mmioflips.rps_boosts);
seq_printf(m, "Kernel boosts: %d\n", dev_priv->rps.boosts);
mutex_unlock(&dev_priv->rps.hw_lock);
unsigned boosts;
struct drm_i915_file_private semaphores;
+ struct drm_i915_file_private mmioflips;
/* manual wa residency calculations */
struct intel_rps_ei up_ei, down_ei;
if (mmio_flip->req)
WARN_ON(__i915_wait_request(mmio_flip->req,
mmio_flip->crtc->reset_counter,
- false, NULL, NULL));
+ false, NULL,
+ &mmio_flip->i915->rps.mmioflips));
intel_do_mmio_flip(mmio_flip->crtc);
if (mmio_flip == NULL)
return -ENOMEM;
+ mmio_flip->i915 = to_i915(dev);
mmio_flip->req = i915_gem_request_reference(obj->last_write_req);
mmio_flip->crtc = to_intel_crtc(crtc);
struct intel_mmio_flip {
struct work_struct work;
+ struct drm_i915_private *i915;
struct drm_i915_gem_request *req;
struct intel_crtc *crtc;
};
intel_gen6_powersave_work);
INIT_LIST_HEAD(&dev_priv->rps.clients);
INIT_LIST_HEAD(&dev_priv->rps.semaphores.rps_boost);
+ INIT_LIST_HEAD(&dev_priv->rps.mmioflips.rps_boost);
dev_priv->pm.suspended = false;
}