Message ID | 57e5f1989113be4d63386478d9438cfc35a2a1f7.1726680898.git.jani.nikula@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915: wakeref fixes and improvements | expand |
On Wed, Sep 18, 2024 at 08:35:44PM +0300, Jani Nikula wrote: > A number of places rely on the magic -1 to denote > INTEL_WAKEREF_DEF. Switch to the macro. Define it for xe as well. > > Signed-off-by: Jani Nikula <jani.nikula@intel.com> > --- > drivers/gpu/drm/i915/display/intel_display_power.c | 2 +- > drivers/gpu/drm/i915/display/intel_display_power.h | 4 ++-- > drivers/gpu/drm/i915/intel_runtime_pm.c | 6 +++--- > drivers/gpu/drm/i915/intel_wakeref.h | 2 +- > drivers/gpu/drm/xe/compat-i915-headers/intel_runtime_pm.h | 7 ++++--- > drivers/gpu/drm/xe/compat-i915-headers/intel_wakeref.h | 2 ++ > 6 files changed, 13 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c > index ecabb674644b..40727a22f18b 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_power.c > +++ b/drivers/gpu/drm/i915/display/intel_display_power.c > @@ -895,7 +895,7 @@ intel_display_power_put_mask_in_set(struct drm_i915_private *i915, > !bitmap_subset(mask->bits, power_domain_set->mask.bits, POWER_DOMAIN_NUM)); > > for_each_power_domain(domain, mask) { > - intel_wakeref_t __maybe_unused wf = -1; > + intel_wakeref_t __maybe_unused wf = INTEL_WAKEREF_DEF; > > #if IS_ENABLED(CONFIG_DRM_I915_DEBUG_RUNTIME_PM) > wf = fetch_and_zero(&power_domain_set->wakerefs[domain]); > diff --git a/drivers/gpu/drm/i915/display/intel_display_power.h b/drivers/gpu/drm/i915/display/intel_display_power.h > index 425452c5a469..3b7c1a0bb1de 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_power.h > +++ b/drivers/gpu/drm/i915/display/intel_display_power.h > @@ -232,7 +232,7 @@ intel_display_power_put_async(struct drm_i915_private *i915, > enum intel_display_power_domain domain, > intel_wakeref_t wakeref) > { > - __intel_display_power_put_async(i915, domain, -1, -1); > + __intel_display_power_put_async(i915, domain, INTEL_WAKEREF_DEF, -1); > } > > static inline void > @@ -241,7 +241,7 @@ intel_display_power_put_async_delay(struct drm_i915_private *i915, > intel_wakeref_t wakeref, > int delay_ms) > { > - __intel_display_power_put_async(i915, domain, -1, delay_ms); > + __intel_display_power_put_async(i915, domain, INTEL_WAKEREF_DEF, delay_ms); > } > #endif > > diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c > index 2d0647aca964..a21f5a1c89bc 100644 > --- a/drivers/gpu/drm/i915/intel_runtime_pm.c > +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c > @@ -66,7 +66,7 @@ static intel_wakeref_t > track_intel_runtime_pm_wakeref(struct intel_runtime_pm *rpm) > { > if (!rpm->available || rpm->no_wakeref_tracking) > - return -1; > + return INTEL_WAKEREF_DEF; > > return intel_ref_tracker_alloc(&rpm->debug); > } > @@ -114,7 +114,7 @@ static void init_intel_runtime_pm_wakeref(struct intel_runtime_pm *rpm) > static intel_wakeref_t > track_intel_runtime_pm_wakeref(struct intel_runtime_pm *rpm) > { > - return -1; > + return INTEL_WAKEREF_DEF; > } > > static void untrack_intel_runtime_pm_wakeref(struct intel_runtime_pm *rpm, > @@ -336,7 +336,7 @@ intel_runtime_pm_put_raw(struct intel_runtime_pm *rpm, intel_wakeref_t wref) > */ > void intel_runtime_pm_put_unchecked(struct intel_runtime_pm *rpm) > { > - __intel_runtime_pm_put(rpm, -1, true); > + __intel_runtime_pm_put(rpm, INTEL_WAKEREF_DEF, true); > } > > #if IS_ENABLED(CONFIG_DRM_I915_DEBUG_RUNTIME_PM) > diff --git a/drivers/gpu/drm/i915/intel_wakeref.h b/drivers/gpu/drm/i915/intel_wakeref.h > index 68aa3be48251..3944587a5e78 100644 > --- a/drivers/gpu/drm/i915/intel_wakeref.h > +++ b/drivers/gpu/drm/i915/intel_wakeref.h > @@ -314,7 +314,7 @@ static inline void intel_wakeref_untrack(struct intel_wakeref *wf, > > static inline intel_wakeref_t intel_wakeref_track(struct intel_wakeref *wf) > { > - return -1; > + return INTEL_WAKEREF_DEF; > } > > static inline void intel_wakeref_untrack(struct intel_wakeref *wf, > diff --git a/drivers/gpu/drm/xe/compat-i915-headers/intel_runtime_pm.h b/drivers/gpu/drm/xe/compat-i915-headers/intel_runtime_pm.h > index 8c7b315aa8ac..380d25428bdb 100644 > --- a/drivers/gpu/drm/xe/compat-i915-headers/intel_runtime_pm.h > +++ b/drivers/gpu/drm/xe/compat-i915-headers/intel_runtime_pm.h > @@ -24,14 +24,14 @@ static inline intel_wakeref_t intel_runtime_pm_get(struct xe_runtime_pm *pm) > { > struct xe_device *xe = container_of(pm, struct xe_device, runtime_pm); > > - return xe_pm_runtime_resume_and_get(xe); > + return xe_pm_runtime_resume_and_get(xe) ? INTEL_WAKEREF_DEF : 0; > } > > static inline intel_wakeref_t intel_runtime_pm_get_if_in_use(struct xe_runtime_pm *pm) > { > struct xe_device *xe = container_of(pm, struct xe_device, runtime_pm); > > - return xe_pm_runtime_get_if_in_use(xe); > + return xe_pm_runtime_get_if_in_use(xe) ? INTEL_WAKEREF_DEF : 0; > } > > static inline intel_wakeref_t intel_runtime_pm_get_noresume(struct xe_runtime_pm *pm) > @@ -39,7 +39,8 @@ static inline intel_wakeref_t intel_runtime_pm_get_noresume(struct xe_runtime_pm > struct xe_device *xe = container_of(pm, struct xe_device, runtime_pm); > > xe_pm_runtime_get_noresume(xe); > - return true; > + > + return INTEL_WAKEREF_DEF; oh! for some reason I thought we were redefining the intel_wakeref_t to bool here in Xe... > } > > static inline void intel_runtime_pm_put_unchecked(struct xe_runtime_pm *pm) > diff --git a/drivers/gpu/drm/xe/compat-i915-headers/intel_wakeref.h b/drivers/gpu/drm/xe/compat-i915-headers/intel_wakeref.h > index ecb1c0707706..5c139ba144a6 100644 > --- a/drivers/gpu/drm/xe/compat-i915-headers/intel_wakeref.h > +++ b/drivers/gpu/drm/xe/compat-i915-headers/intel_wakeref.h > @@ -6,3 +6,5 @@ > #include <linux/types.h> > > typedef unsigned long intel_wakeref_t; but apparently not, but we were lucky! this definition brings more clarity indeed. Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > + > +#define INTEL_WAKEREF_DEF ((intel_wakeref_t)(-1)) > -- > 2.39.2 >
diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c index ecabb674644b..40727a22f18b 100644 --- a/drivers/gpu/drm/i915/display/intel_display_power.c +++ b/drivers/gpu/drm/i915/display/intel_display_power.c @@ -895,7 +895,7 @@ intel_display_power_put_mask_in_set(struct drm_i915_private *i915, !bitmap_subset(mask->bits, power_domain_set->mask.bits, POWER_DOMAIN_NUM)); for_each_power_domain(domain, mask) { - intel_wakeref_t __maybe_unused wf = -1; + intel_wakeref_t __maybe_unused wf = INTEL_WAKEREF_DEF; #if IS_ENABLED(CONFIG_DRM_I915_DEBUG_RUNTIME_PM) wf = fetch_and_zero(&power_domain_set->wakerefs[domain]); diff --git a/drivers/gpu/drm/i915/display/intel_display_power.h b/drivers/gpu/drm/i915/display/intel_display_power.h index 425452c5a469..3b7c1a0bb1de 100644 --- a/drivers/gpu/drm/i915/display/intel_display_power.h +++ b/drivers/gpu/drm/i915/display/intel_display_power.h @@ -232,7 +232,7 @@ intel_display_power_put_async(struct drm_i915_private *i915, enum intel_display_power_domain domain, intel_wakeref_t wakeref) { - __intel_display_power_put_async(i915, domain, -1, -1); + __intel_display_power_put_async(i915, domain, INTEL_WAKEREF_DEF, -1); } static inline void @@ -241,7 +241,7 @@ intel_display_power_put_async_delay(struct drm_i915_private *i915, intel_wakeref_t wakeref, int delay_ms) { - __intel_display_power_put_async(i915, domain, -1, delay_ms); + __intel_display_power_put_async(i915, domain, INTEL_WAKEREF_DEF, delay_ms); } #endif diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c index 2d0647aca964..a21f5a1c89bc 100644 --- a/drivers/gpu/drm/i915/intel_runtime_pm.c +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c @@ -66,7 +66,7 @@ static intel_wakeref_t track_intel_runtime_pm_wakeref(struct intel_runtime_pm *rpm) { if (!rpm->available || rpm->no_wakeref_tracking) - return -1; + return INTEL_WAKEREF_DEF; return intel_ref_tracker_alloc(&rpm->debug); } @@ -114,7 +114,7 @@ static void init_intel_runtime_pm_wakeref(struct intel_runtime_pm *rpm) static intel_wakeref_t track_intel_runtime_pm_wakeref(struct intel_runtime_pm *rpm) { - return -1; + return INTEL_WAKEREF_DEF; } static void untrack_intel_runtime_pm_wakeref(struct intel_runtime_pm *rpm, @@ -336,7 +336,7 @@ intel_runtime_pm_put_raw(struct intel_runtime_pm *rpm, intel_wakeref_t wref) */ void intel_runtime_pm_put_unchecked(struct intel_runtime_pm *rpm) { - __intel_runtime_pm_put(rpm, -1, true); + __intel_runtime_pm_put(rpm, INTEL_WAKEREF_DEF, true); } #if IS_ENABLED(CONFIG_DRM_I915_DEBUG_RUNTIME_PM) diff --git a/drivers/gpu/drm/i915/intel_wakeref.h b/drivers/gpu/drm/i915/intel_wakeref.h index 68aa3be48251..3944587a5e78 100644 --- a/drivers/gpu/drm/i915/intel_wakeref.h +++ b/drivers/gpu/drm/i915/intel_wakeref.h @@ -314,7 +314,7 @@ static inline void intel_wakeref_untrack(struct intel_wakeref *wf, static inline intel_wakeref_t intel_wakeref_track(struct intel_wakeref *wf) { - return -1; + return INTEL_WAKEREF_DEF; } static inline void intel_wakeref_untrack(struct intel_wakeref *wf, diff --git a/drivers/gpu/drm/xe/compat-i915-headers/intel_runtime_pm.h b/drivers/gpu/drm/xe/compat-i915-headers/intel_runtime_pm.h index 8c7b315aa8ac..380d25428bdb 100644 --- a/drivers/gpu/drm/xe/compat-i915-headers/intel_runtime_pm.h +++ b/drivers/gpu/drm/xe/compat-i915-headers/intel_runtime_pm.h @@ -24,14 +24,14 @@ static inline intel_wakeref_t intel_runtime_pm_get(struct xe_runtime_pm *pm) { struct xe_device *xe = container_of(pm, struct xe_device, runtime_pm); - return xe_pm_runtime_resume_and_get(xe); + return xe_pm_runtime_resume_and_get(xe) ? INTEL_WAKEREF_DEF : 0; } static inline intel_wakeref_t intel_runtime_pm_get_if_in_use(struct xe_runtime_pm *pm) { struct xe_device *xe = container_of(pm, struct xe_device, runtime_pm); - return xe_pm_runtime_get_if_in_use(xe); + return xe_pm_runtime_get_if_in_use(xe) ? INTEL_WAKEREF_DEF : 0; } static inline intel_wakeref_t intel_runtime_pm_get_noresume(struct xe_runtime_pm *pm) @@ -39,7 +39,8 @@ static inline intel_wakeref_t intel_runtime_pm_get_noresume(struct xe_runtime_pm struct xe_device *xe = container_of(pm, struct xe_device, runtime_pm); xe_pm_runtime_get_noresume(xe); - return true; + + return INTEL_WAKEREF_DEF; } static inline void intel_runtime_pm_put_unchecked(struct xe_runtime_pm *pm) diff --git a/drivers/gpu/drm/xe/compat-i915-headers/intel_wakeref.h b/drivers/gpu/drm/xe/compat-i915-headers/intel_wakeref.h index ecb1c0707706..5c139ba144a6 100644 --- a/drivers/gpu/drm/xe/compat-i915-headers/intel_wakeref.h +++ b/drivers/gpu/drm/xe/compat-i915-headers/intel_wakeref.h @@ -6,3 +6,5 @@ #include <linux/types.h> typedef unsigned long intel_wakeref_t; + +#define INTEL_WAKEREF_DEF ((intel_wakeref_t)(-1))
A number of places rely on the magic -1 to denote INTEL_WAKEREF_DEF. Switch to the macro. Define it for xe as well. Signed-off-by: Jani Nikula <jani.nikula@intel.com> --- drivers/gpu/drm/i915/display/intel_display_power.c | 2 +- drivers/gpu/drm/i915/display/intel_display_power.h | 4 ++-- drivers/gpu/drm/i915/intel_runtime_pm.c | 6 +++--- drivers/gpu/drm/i915/intel_wakeref.h | 2 +- drivers/gpu/drm/xe/compat-i915-headers/intel_runtime_pm.h | 7 ++++--- drivers/gpu/drm/xe/compat-i915-headers/intel_wakeref.h | 2 ++ 6 files changed, 13 insertions(+), 10 deletions(-)