History

drm/i915/guc: ADL-N should use the same GuC FW as ADL-S

The only difference between the ADL S and P GuC FWs is the HWConfig support. ADL-N does not support HWConfig, so we should use the same binary as ADL-S, otherwise the GuC might attempt to fetch a config table that does not exist. ADL-N is internally identified as an ADL-P, so we need to special-case it in the FW selection code.

Daniele Ceraolo Spurio committed 4 years ago

Commit 1391b9c1 parent 046cd8a1 file · +9 −0Browse files

Unified · Split

drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c+9−0
@@ -162,6 +162,15 @@ __uc_fw_auto_select(struct drm_i915_private *i915, struct intel_uc_fw *uc_fw) · 161 unmodified lines
162 u8 rev = INTEL_REVID(i915);162 u8 rev = INTEL_REVID(i915);
163 int i;163 int i;
164 164
165 /*
166 * The only difference between the ADL GuC FWs is the HWConfig support.
167 * ADL-N does not support HWConfig, so we should use the same binary as
168 * ADL-S, otherwise the GuC might attempt to fetch a config table that
169 * does not exist.
170 */
171 if (IS_ADLP_N(i915))
172 p = INTEL_ALDERLAKE_S;
173
165 GEM_BUG_ON(uc_fw->type >= ARRAY_SIZE(blobs_all));174 GEM_BUG_ON(uc_fw->type >= ARRAY_SIZE(blobs_all));
166 fw_blobs = blobs_all[uc_fw->type].blobs;175 fw_blobs = blobs_all[uc_fw->type].blobs;
167 fw_count = blobs_all[uc_fw->type].count;176 fw_count = blobs_all[uc_fw->type].count;