aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_wakeref.h
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2019-05-03 12:52:14 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2019-05-07 11:59:43 +0100
commit7ee280a75fd922ac32aa7ed67cd72bdf64952b3a (patch)
tree300dce0ad7cc255c56ed012e766f982efee798a7 /drivers/gpu/drm/i915/intel_wakeref.h
parentdrm/i915: Assert breadcrumbs are correctly ordered in the signal handler (diff)
downloadlinux-dev-7ee280a75fd922ac32aa7ed67cd72bdf64952b3a.tar.xz
linux-dev-7ee280a75fd922ac32aa7ed67cd72bdf64952b3a.zip
drm/i915: Prefer checking the wakeref itself rather than the counter
The counter goes to zero at the start of the parking cycle, but the wakeref itself is held until the end. Likewise, the counter becomes one at the end of the unparking, but the wakeref is taken first. If we check the wakeref instead of the counter, we include the unpark/unparking time as intel_wakeref_is_active(), and do not spuriously declare inactive if we fail to park (i.e. the parking and wakeref drop is postponed). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20190503115225.30831-2-chris@chris-wilson.co.uk
Diffstat (limited to 'drivers/gpu/drm/i915/intel_wakeref.h')
-rw-r--r--drivers/gpu/drm/i915/intel_wakeref.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_wakeref.h b/drivers/gpu/drm/i915/intel_wakeref.h
index a979d638344b..db742291211c 100644
--- a/drivers/gpu/drm/i915/intel_wakeref.h
+++ b/drivers/gpu/drm/i915/intel_wakeref.h
@@ -127,7 +127,7 @@ intel_wakeref_unlock(struct intel_wakeref *wf)
static inline bool
intel_wakeref_active(struct intel_wakeref *wf)
{
- return atomic_read(&wf->count);
+ return READ_ONCE(wf->wakeref);
}
#endif /* INTEL_WAKEREF_H */