drm/xe: Fix display runtime_pm handling
authorRodrigo Vivi <rodrigo.vivi@intel.com>
Fri, 1 Mar 2024 18:05:23 +0000 (13:05 -0500)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Mon, 4 Mar 2024 17:47:04 +0000 (12:47 -0500)
commit3b85b7bcccf45f674d35c0bf65aa84153397380d
treee629e70edcfee0d377721401467ee384207e76ed
parent4d5242a003bb93c119e0346951a9938f60fecfb9
drm/xe: Fix display runtime_pm handling

i915's intel_runtime_pm_get_if_in_use actually calls the
pm_runtime_get_if_active() with ign_usage_count = false, but Xe
was erroneously calling it with true because of the mem_access cases.

This can lead to unnecessary references getting hold here and device
never getting into the runtime suspended state.

Let's use directly the 'if_in_use' function provided by linux/pm_runtime.

Also, already start this new function protected from the runtime
recursion, since runtime_pm will need to call for display functions
for a proper D3Cold flow.

v2: Update commit message based on Matt's feedback.
    Fix return condition of pm_runtime_get_if_in_use (Matt)

Cc: Anshuman Gupta <anshuman.gupta@intel.com>
Cc: Matthew Auld <matthew.auld@intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240301180526.643505-1-rodrigo.vivi@intel.com
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
drivers/gpu/drm/xe/xe_pm.c
drivers/gpu/drm/xe/xe_pm.h