[PATCH v6 1/2] drm/xe: add a new debugfs file - mmio

Matt Roper matthew.d.roper at intel.com
Wed Feb 14 21:43:37 UTC 2024


On Wed, Jan 31, 2024 at 09:59:52PM +0200, Koby Elbaz wrote:
> Now that the former mmio handlers are fully removed, this
> debugfs file will be used for mmio access (read/write)
> through the debugfs ioctl file operation.
> 
> Signed-off-by: Koby Elbaz <kelbaz at habana.ai>
> ---
>  drivers/gpu/drm/xe/xe_debugfs.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/drivers/gpu/drm/xe/xe_debugfs.c b/drivers/gpu/drm/xe/xe_debugfs.c
> index 01db5b27bec5..21b2257aa3a8 100644
> --- a/drivers/gpu/drm/xe/xe_debugfs.c
> +++ b/drivers/gpu/drm/xe/xe_debugfs.c
> @@ -98,12 +98,22 @@ static int forcewake_release(struct inode *inode, struct file *file)
>  	return 0;
>  }
>  
> +static long xe_debugfs_mmio_ioctl(struct file *f, unsigned int cmd, unsigned long arg)
> +{
> +	return 0;
> +}
> +
>  static const struct file_operations forcewake_all_fops = {
>  	.owner = THIS_MODULE,
>  	.open = forcewake_open,
>  	.release = forcewake_release,
>  };
>  
> +static const struct file_operations mmio_fops = {
> +	.owner = THIS_MODULE,
> +	.unlocked_ioctl = xe_debugfs_mmio_ioctl,
> +};
> +
>  void xe_debugfs_register(struct xe_device *xe)
>  {
>  	struct ttm_device *bdev = &xe->ttm;
> @@ -142,6 +152,8 @@ void xe_debugfs_register(struct xe_device *xe)
>  	for_each_gt(gt, xe, id)
>  		xe_gt_debugfs_register(gt);
>  
> +	debugfs_create_file("mmio", 0644, root, xe, &mmio_fops);

Do we actually want/need this debugfs at the device level?  Wouldn't a
per-tile debugfs be more useful since the offsets that we provide to
MMIO operations are relative to a specific tile?


Matt

> +
>  #ifdef CONFIG_FAULT_INJECTION
>  	fault_create_debugfs_attr("fail_gt_reset", root, &gt_reset_failure);
>  #endif
> -- 
> 2.34.1
> 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation


More information about the Intel-xe mailing list