drm/xe: Don't fail probe on unsupported mailbox command
authorRaag Jadav <raag.jadav@intel.com>
Mon, 14 Jul 2025 21:55:03 +0000 (03:25 +0530)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Mon, 28 Jul 2025 14:22:12 +0000 (10:22 -0400)
If the device is running older pcode firmware, it is possible that newer
mailbox commands are not supported by it. The sysfs attributes aren't
useful in that case, but we shouldn't fail driver probe because of it.
As of now, it is unknown if we can distinguish unsupported commands before
attempting them. But until we figure out a way to do that, fix the
regressions.

v2: Add debug message (Lucas)

Fixes: cdc36b66cd41 ("drm/xe: Expose fan control and voltage regulator version")
Signed-off-by: Raag Jadav <raag.jadav@intel.com>
Tested-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Link: https://lore.kernel.org/r/20250714215503.2897748-1-raag.jadav@intel.com
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
(cherry picked from commit ed5461daa150b037e36b8202381da1ef85d6b16b)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/xe_device_sysfs.c

index e5fd0cd537bceb78a6745247c59b65122d3f9174..bd9015761aa0ed05e1673676b347c6f65916e133 100644 (file)
@@ -160,8 +160,13 @@ static int late_bind_create_files(struct device *dev)
 
        ret = xe_pcode_read(root, PCODE_MBOX(PCODE_LATE_BINDING, GET_CAPABILITY_STATUS, 0),
                            &cap, NULL);
-       if (ret)
+       if (ret) {
+               if (ret == -ENXIO) {
+                       drm_dbg(&xe->drm, "Late binding not supported by firmware\n");
+                       ret = 0;
+               }
                goto out;
+       }
 
        if (REG_FIELD_GET(V1_FAN_SUPPORTED, cap)) {
                ret = sysfs_create_file(&dev->kobj, &dev_attr_lb_fan_control_version.attr);