Commit 45883418 authored by Lucas De Marchi's avatar Lucas De Marchi

drm/xe: Always allow to override firmware

The current logic for firmware selection is reminiscent from i915 where
there are 2 backends and several platforms support only 1: execlist or
GuC. The xe driver has only the GuC backend and it simply doesn't work
without it. Allow developers to override the firmware path even if there
isn't a firmware entry in the table yet: this allows developers to more
easily test the very first firmware before adding it there.

The justification above is only true for GuC, however those override
paths should really be viewed as developer aid param. Simply make the
same logic for all firmwares and allow the override path to be used
for all of them.
Signed-off-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: default avatarFrancois Dugast <francois.dugast@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240201224724.551130-2-lucas.demarchi@intel.com
parent d9890c02
...@@ -658,6 +658,7 @@ static int uc_fw_request(struct xe_uc_fw *uc_fw, const struct firmware **firmwar ...@@ -658,6 +658,7 @@ static int uc_fw_request(struct xe_uc_fw *uc_fw, const struct firmware **firmwar
xe_assert(xe, !uc_fw->path); xe_assert(xe, !uc_fw->path);
uc_fw_auto_select(xe, uc_fw); uc_fw_auto_select(xe, uc_fw);
uc_fw_override(uc_fw);
xe_uc_fw_change_status(uc_fw, uc_fw->path ? xe_uc_fw_change_status(uc_fw, uc_fw->path ?
XE_UC_FIRMWARE_SELECTED : XE_UC_FIRMWARE_SELECTED :
XE_UC_FIRMWARE_NOT_SUPPORTED); XE_UC_FIRMWARE_NOT_SUPPORTED);
...@@ -665,8 +666,6 @@ static int uc_fw_request(struct xe_uc_fw *uc_fw, const struct firmware **firmwar ...@@ -665,8 +666,6 @@ static int uc_fw_request(struct xe_uc_fw *uc_fw, const struct firmware **firmwar
if (!xe_uc_fw_is_supported(uc_fw)) if (!xe_uc_fw_is_supported(uc_fw))
return 0; return 0;
uc_fw_override(uc_fw);
/* an empty path means the firmware is disabled */ /* an empty path means the firmware is disabled */
if (!xe_device_uc_enabled(xe) || !(*uc_fw->path)) { if (!xe_device_uc_enabled(xe) || !(*uc_fw->path)) {
xe_uc_fw_change_status(uc_fw, XE_UC_FIRMWARE_DISABLED); xe_uc_fw_change_status(uc_fw, XE_UC_FIRMWARE_DISABLED);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment