drm/xe/debugfs: grab mem_access around forcewake
authorMatthew Auld <matthew.auld@intel.com>
Wed, 19 Jul 2023 08:38:05 +0000 (09:38 +0100)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Thu, 21 Dec 2023 16:37:35 +0000 (11:37 -0500)
We need keep the device awake when performing any kind of mmio operation.

Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/279
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/xe_debugfs.c

index 7827a785b020426570b823880ba437967061d310..047341d5689abfe32e44d3a836ef82395efd2f76 100644 (file)
@@ -70,6 +70,8 @@ static int forcewake_open(struct inode *inode, struct file *file)
        struct xe_gt *gt;
        u8 id;
 
+       xe_device_mem_access_get(xe);
+
        for_each_gt(gt, xe, id)
                XE_WARN_ON(xe_force_wake_get(gt_to_fw(gt), XE_FORCEWAKE_ALL));
 
@@ -85,6 +87,8 @@ static int forcewake_release(struct inode *inode, struct file *file)
        for_each_gt(gt, xe, id)
                XE_WARN_ON(xe_force_wake_put(gt_to_fw(gt), XE_FORCEWAKE_ALL));
 
+       xe_device_mem_access_put(xe);
+
        return 0;
 }