[PATCH v2 1/2] drm/xe/debugfs: add local forcewake_get/put funcs

Rodrigo Vivi rodrigo.vivi at intel.com
Mon Mar 24 15:01:55 UTC 2025


On Mon, Mar 24, 2025 at 01:07:29PM +0200, Dafna Hirschfeld wrote:
> add the function forcewake_get, forcewake_put. They will be
> used in laters commits.

Why?

Why can't the later commits use directly xe_force_wake_get instead?

> 
> Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld at intel.com>
> ---
> changes from v1:
> 1. fix according to comments,
> 2. support steering for mcr registers.
> 
>  drivers/gpu/drm/xe/xe_debugfs.c | 18 +++++++++++++++---
>  1 file changed, 15 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_debugfs.c b/drivers/gpu/drm/xe/xe_debugfs.c
> index d0503959a8ed..e60eaefdd4a5 100644
> --- a/drivers/gpu/drm/xe/xe_debugfs.c
> +++ b/drivers/gpu/drm/xe/xe_debugfs.c
> @@ -87,9 +87,8 @@ static const struct drm_info_list debugfs_list[] = {
>  	{ .name = "sriov_info", .show = sriov_info, },
>  };
>  
> -static int forcewake_open(struct inode *inode, struct file *file)
> +static int forcewake_get(struct xe_device *xe)
>  {
> -	struct xe_device *xe = inode->i_private;
>  	struct xe_gt *gt;
>  	u8 id, last_gt;
>  	unsigned int fw_ref;
> @@ -119,15 +118,28 @@ static int forcewake_open(struct inode *inode, struct file *file)
>  	return -ETIMEDOUT;
>  }
>  
> -static int forcewake_release(struct inode *inode, struct file *file)
> +static int forcewake_open(struct inode *inode, struct file *file)
>  {
>  	struct xe_device *xe = inode->i_private;
> +
> +	return forcewake_get(xe);
> +}
> +
> +static void forcewake_put(struct xe_device *xe)
> +{
>  	struct xe_gt *gt;
>  	u8 id;
>  
>  	for_each_gt(gt, xe, id)
>  		xe_force_wake_put(gt_to_fw(gt), XE_FORCEWAKE_ALL);
>  	xe_pm_runtime_put(xe);
> +}
> +
> +static int forcewake_release(struct inode *inode, struct file *file)
> +{
> +	struct xe_device *xe = inode->i_private;
> +
> +	forcewake_put(xe);
>  
>  	return 0;
>  }
> -- 
> 2.34.1
> 


More information about the Intel-xe mailing list