[PATCH v4 07/11] drm/xe/configfs: Reintroduce struct xe_config_device

John Harrison john.c.harrison at intel.com
Tue Jul 29 00:06:08 UTC 2025


On 7/27/2025 10:20 AM, Michal Wajdeczko wrote:
> This time it will hold just pure configuration parameters, without
> any configfs related stuff. This will help us define defaults data
> without wasting space for unneeded data.
>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko at intel.com>
> Cc: Lucas De Marchi <lucas.demarchi at intel.com>
Reviewed-by: John Harrison <John.C.Harrison at Intel.com>

> ---
>   drivers/gpu/drm/xe/xe_configfs.c | 27 +++++++++++++++++----------
>   1 file changed, 17 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
> index f5a780b8bb80..a5f13dd779c7 100644
> --- a/drivers/gpu/drm/xe/xe_configfs.c
> +++ b/drivers/gpu/drm/xe/xe_configfs.c
> @@ -92,8 +92,10 @@
>   struct xe_config_group_device {
>   	struct config_group group;
>   
> -	bool survivability_mode;
> -	u64 engines_allowed;
> +	struct xe_config_device {
> +		bool survivability_mode;
> +		u64 engines_allowed;
> +	} config;
>   };
>   
>   struct engine_info {
> @@ -119,16 +121,21 @@ static struct xe_config_group_device *to_xe_config_group_device(struct config_it
>   	return container_of(to_config_group(item), struct xe_config_group_device, group);
>   }
>   
> +static struct xe_config_device *to_xe_config_device(struct config_item *item)
> +{
> +	return &to_xe_config_group_device(item)->config;
> +}
> +
>   static ssize_t survivability_mode_show(struct config_item *item, char *page)
>   {
> -	struct xe_config_group_device *dev = to_xe_config_group_device(item);
> +	struct xe_config_device *dev = to_xe_config_device(item);
>   
>   	return sprintf(page, "%d\n", dev->survivability_mode);
>   }
>   
>   static ssize_t survivability_mode_store(struct config_item *item, const char *page, size_t len)
>   {
> -	struct xe_config_group_device *dev = to_xe_config_group_device(item);
> +	struct xe_config_device *dev = to_xe_config_device(item);
>   	bool survivability_mode;
>   	int ret;
>   
> @@ -144,7 +151,7 @@ static ssize_t survivability_mode_store(struct config_item *item, const char *pa
>   
>   static ssize_t engines_allowed_show(struct config_item *item, char *page)
>   {
> -	struct xe_config_group_device *dev = to_xe_config_group_device(item);
> +	struct xe_config_device *dev = to_xe_config_device(item);
>   	char *p = page;
>   
>   	for (size_t i = 0; i < ARRAY_SIZE(engine_info); i++) {
> @@ -199,7 +206,7 @@ static bool lookup_engine_mask(const char *pattern, u64 *mask)
>   static ssize_t engines_allowed_store(struct config_item *item, const char *page,
>   				     size_t len)
>   {
> -	struct xe_config_group_device *dev = to_xe_config_group_device(item);
> +	struct xe_config_device *dev = to_xe_config_device(item);
>   	size_t patternlen, p;
>   	u64 mask, val = 0;
>   
> @@ -280,7 +287,7 @@ static struct config_group *xe_config_make_device_group(struct config_group *gro
>   		return ERR_PTR(-ENOMEM);
>   
>   	/* Default values */
> -	dev->engines_allowed = U64_MAX;
> +	dev->config.engines_allowed = U64_MAX;
>   
>   	config_group_init_type_name(&dev->group, name, &xe_config_device_type);
>   
> @@ -334,7 +341,7 @@ bool xe_configfs_get_survivability_mode(struct pci_dev *pdev)
>   	if (!dev)
>   		return false;
>   
> -	mode = dev->survivability_mode;
> +	mode = dev->config.survivability_mode;
>   	config_group_put(&dev->group);
>   
>   	return mode;
> @@ -355,7 +362,7 @@ void xe_configfs_clear_survivability_mode(struct pci_dev *pdev)
>   		return;
>   
>   	scoped_guard(mutex, &xe_configfs.su_mutex)
> -		dev->survivability_mode = 0;
> +		dev->config.survivability_mode = 0;
>   
>   	config_group_put(&dev->group);
>   }
> @@ -377,7 +384,7 @@ u64 xe_configfs_get_engines_allowed(struct pci_dev *pdev)
>   	if (!dev)
>   		return U64_MAX;
>   
> -	engines_allowed = dev->engines_allowed;
> +	engines_allowed = dev->config.engines_allowed;
>   	config_group_put(&dev->group);
>   
>   	return engines_allowed;



More information about the Intel-xe mailing list