Re: [PATCH v3 01/10] drm/xe/xe_survivability: Decouple survivability info from boot survivability

Mallesh, Koujalagi
2026-04-14T12:16:03Z

On 02-04-2026 12:31 pm, Riana Tauro wrote:
> On CSC runtime firmware errors that requires firmware flash through SPI,
> PCODE sets the FDO mode bit in the Capability register.
> Currently the survivability_info group is created only for boot
> survivability.
>
> Create survivability_info group even for runtime survivability to allow
> userspace to check FDO mode sysfs.
>
> Signed-off-by: Riana Tauro <riana.tauro@intel.com>
> ---
> v2: Fix typo (Mallesh)
> ---
> drivers/gpu/drm/xe/xe_survivability_mode.c | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_survivability_mode.c b/drivers/gpu/drm/xe/xe_survivability_mode.c
> index db64cac39c94..ad51a58831b0 100644
> --- a/drivers/gpu/drm/xe/xe_survivability_mode.c
> +++ b/drivers/gpu/drm/xe/xe_survivability_mode.c
> @@ -98,6 +98,15 @@
> * # cat /sys/bus/pci/devices/<device>/survivability_mode
> * Runtime
> *
> + * On some CSC firmware errors, PCODE sets FDO mode and the only recovery possible is through
> + * firmware flash using SPI driver. Userspace can check if FDO mode is set by checking the below
> + * sysfs entry.
> + *
> + * .. code-block:: shell
> + *
> + * # cat /sys/bus/pci/devices/<device>/survivability_info/fdo_mode
> + * enabled

Nit: The indentation of enabled here uses space, however boot and
Runtime use tab+spaces

Please keep consistency.

With that addressed

Reviewed-by: Mallesh Koujalagi <mallesh.koujalagi@intel.com>

> + *
> * When such errors occur, userspace is notified with the drm device wedged uevent and runtime
> * survivability mode. User can then initiate a firmware flash using userspace tools like fwupd
> * to restore device to normal operation.
> @@ -296,7 +305,8 @@ static int create_survivability_sysfs(struct pci_dev *pdev)
> if (ret)
> return ret;
>
> - if (check_boot_failure(xe)) {
> + /* Survivability info is not required if enabled via configfs */
> + if (!xe_configfs_get_survivability_mode(pdev)) {
> ret = devm_device_add_group(dev, &survivability_info_group);
> if (ret)
> return ret;