mirror of
https://github.com/rd-stuffs/msm-4.14.git
synced 2025-03-24 20:28:07 +08:00
drm/i915: don't schedule force_wake_timer at gen6_read
So far force_wake_timer was only used by gen6_gt_force_wake_put. Since we always had balanced gen6_gt_force_wake_get/put calls, we could guarantee balanced calls to intel_runtime_pm_get/put. Commit 8232644ccf099548710843e97360a3fcd6d28e04, "drm/i915: Convert the forcewake worker into a timer func" started scheduling the force_wake_timer at gen6_read, which resulted in an unbalanced runtime_pm refcount. So this commit just reverts to the old behavior until we can find a proper way to used delayed force_wake from the register read/write macros without leaving the runtime_pm refcounts unbalanced and without runtime suspending the driver while forcewake is active. Testcase: igt/pm_pc8/rte Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76544 Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
ae48434c2a
commit
aa0b3b5bb8
@ -550,11 +550,12 @@ gen6_read##x(struct drm_i915_private *dev_priv, off_t reg, bool trace) { \
|
||||
NEEDS_FORCE_WAKE((dev_priv), (reg))) { \
|
||||
dev_priv->uncore.funcs.force_wake_get(dev_priv, \
|
||||
FORCEWAKE_ALL); \
|
||||
dev_priv->uncore.forcewake_count++; \
|
||||
mod_timer_pinned(&dev_priv->uncore.force_wake_timer, \
|
||||
jiffies + 1); \
|
||||
val = __raw_i915_read##x(dev_priv, reg); \
|
||||
dev_priv->uncore.funcs.force_wake_put(dev_priv, \
|
||||
FORCEWAKE_ALL); \
|
||||
} else { \
|
||||
val = __raw_i915_read##x(dev_priv, reg); \
|
||||
} \
|
||||
val = __raw_i915_read##x(dev_priv, reg); \
|
||||
REG_READ_FOOTER; \
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user