|
41 | 41 | * be moved to FW_FAILED.
|
42 | 42 | */
|
43 | 43 |
|
| 44 | +#define I915_CSR_KBL "i915/kbl_dmc_ver1.bin" |
| 45 | +MODULE_FIRMWARE(I915_CSR_KBL); |
| 46 | +#define KBL_CSR_VERSION_REQUIRED CSR_VERSION(1, 1) |
| 47 | + |
44 | 48 | #define I915_CSR_SKL "i915/skl_dmc_ver1.bin"
|
| 49 | +MODULE_FIRMWARE(I915_CSR_SKL); |
| 50 | +#define SKL_CSR_VERSION_REQUIRED CSR_VERSION(1, 23) |
| 51 | + |
45 | 52 | #define I915_CSR_BXT "i915/bxt_dmc_ver1.bin"
|
| 53 | +MODULE_FIRMWARE(I915_CSR_BXT); |
| 54 | +#define BXT_CSR_VERSION_REQUIRED CSR_VERSION(1, 7) |
46 | 55 |
|
47 | 56 | #define FIRMWARE_URL "https://01.org/linuxgraphics/intel-linux-graphics-firmwares"
|
48 | 57 |
|
49 |
| -MODULE_FIRMWARE(I915_CSR_SKL); |
50 |
| -MODULE_FIRMWARE(I915_CSR_BXT); |
51 | 58 |
|
52 |
| -#define SKL_CSR_VERSION_REQUIRED CSR_VERSION(1, 23) |
53 |
| -#define BXT_CSR_VERSION_REQUIRED CSR_VERSION(1, 7) |
| 59 | + |
54 | 60 |
|
55 | 61 | #define CSR_MAX_FW_SIZE 0x2FFF
|
56 | 62 | #define CSR_DEFAULT_FW_OFFSET 0xFFFFFFFF
|
@@ -169,12 +175,10 @@ struct stepping_info {
|
169 | 175 | char substepping;
|
170 | 176 | };
|
171 | 177 |
|
172 |
| -/* |
173 |
| - * Kabylake derivated from Skylake H0, so SKL H0 |
174 |
| - * is the right firmware for KBL A0 (revid 0). |
175 |
| - */ |
176 | 178 | static const struct stepping_info kbl_stepping_info[] = {
|
177 |
| - {'H', '0'}, {'I', '0'} |
| 179 | + {'A', '0'}, {'B', '0'}, {'C', '0'}, |
| 180 | + {'D', '0'}, {'E', '0'}, {'F', '0'}, |
| 181 | + {'G', '0'}, {'H', '0'}, {'I', '0'}, |
178 | 182 | };
|
179 | 183 |
|
180 | 184 | static const struct stepping_info skl_stepping_info[] = {
|
@@ -298,7 +302,9 @@ static uint32_t *parse_csr_fw(struct drm_i915_private *dev_priv,
|
298 | 302 |
|
299 | 303 | csr->version = css_header->version;
|
300 | 304 |
|
301 |
| - if (IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) { |
| 305 | + if (IS_KABYLAKE(dev_priv)) { |
| 306 | + required_min_version = KBL_CSR_VERSION_REQUIRED; |
| 307 | + } else if (IS_SKYLAKE(dev_priv)) { |
302 | 308 | required_min_version = SKL_CSR_VERSION_REQUIRED;
|
303 | 309 | } else if (IS_BROXTON(dev_priv)) {
|
304 | 310 | required_min_version = BXT_CSR_VERSION_REQUIRED;
|
@@ -446,7 +452,9 @@ void intel_csr_ucode_init(struct drm_i915_private *dev_priv)
|
446 | 452 | if (!HAS_CSR(dev_priv))
|
447 | 453 | return;
|
448 | 454 |
|
449 |
| - if (IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) |
| 455 | + if (IS_KABYLAKE(dev_priv)) |
| 456 | + csr->fw_path = I915_CSR_KBL; |
| 457 | + else if (IS_SKYLAKE(dev_priv)) |
450 | 458 | csr->fw_path = I915_CSR_SKL;
|
451 | 459 | else if (IS_BROXTON(dev_priv))
|
452 | 460 | csr->fw_path = I915_CSR_BXT;
|
|
0 commit comments