drm/xe: Introduce xe_pm_runtime_get_noresume for inner callers
authorRodrigo Vivi <rodrigo.vivi@intel.com>
Wed, 17 Apr 2024 20:39:43 +0000 (16:39 -0400)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Thu, 18 Apr 2024 12:31:39 +0000 (08:31 -0400)
commitcbb6a7413b174637f35354675ecd7e1183091bfa
treed9a5cd3a1142b0e3a21bb848c5944c65942e9c41
parent2817a1f1bfb1a2e8a4fb16dd307980216f831c46
drm/xe: Introduce xe_pm_runtime_get_noresume for inner callers

Let's ensure that we have an option for inner callers that will
raise WARN if device is not active and not protected by outer callers.

Make this also a void function forcing every caller to unconditionally
put the reference back afterwards.

This will be very important for cases where we want to hold the
reference before scheduling a work in a queue. Then the work job
will be responsible for putting it back.

While at this, already convert a case from mem_access_get_ongoing where
it is not checking for the reference and put it back, what would
cause the underflow.

v2: Fix identation.
v3: Convert equivalent missing put from mem_access towards pm_runtime.

Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240417203952.25503-1-rodrigo.vivi@intel.com
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/xe_exec_queue.c
drivers/gpu/drm/xe/xe_pm.c
drivers/gpu/drm/xe/xe_pm.h