Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5e334c19 authored by Tvrtko Ursulin's avatar Tvrtko Ursulin
Browse files

drm/i915/guc: Consolidate firmware major-minor to one place



Currently to change the firmware one has to update the exported
module firmware string and the major-minor versions used for
verification after load. Consolidate that to a single place
defining correct major and minor versions per platform.

v2: Rebased for KBL.

Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Dave Gordon <david.s.gordon@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Peter Antoine <peter.antoine@intel.com>
Cc: Michel Thierry <michel.thierry@intel.com>
Reviewed-by: default avatarDave Gordon <david.s.gordon@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1470842206-35685-1-git-send-email-tvrtko.ursulin@linux.intel.com
parent c1bb1145
Loading
Loading
Loading
Loading
+21 −9
Original line number Original line Diff line number Diff line
@@ -59,13 +59,25 @@
 *
 *
 */
 */


#define I915_SKL_GUC_UCODE "i915/skl_guc_ver6_1.bin"
#define SKL_FW_MAJOR 6
#define SKL_FW_MINOR 1

#define BXT_FW_MAJOR 8
#define BXT_FW_MINOR 7

#define KBL_FW_MAJOR 9
#define KBL_FW_MINOR 14

#define GUC_FW_PATH(platform, major, minor) \
       "i915/" __stringify(platform) "_guc_ver" __stringify(major) "_" __stringify(minor) ".bin"

#define I915_SKL_GUC_UCODE GUC_FW_PATH(skl, SKL_FW_MAJOR, SKL_FW_MINOR)
MODULE_FIRMWARE(I915_SKL_GUC_UCODE);
MODULE_FIRMWARE(I915_SKL_GUC_UCODE);


#define I915_BXT_GUC_UCODE "i915/bxt_guc_ver8_7.bin"
#define I915_BXT_GUC_UCODE GUC_FW_PATH(bxt, BXT_FW_MAJOR, BXT_FW_MINOR)
MODULE_FIRMWARE(I915_BXT_GUC_UCODE);
MODULE_FIRMWARE(I915_BXT_GUC_UCODE);


#define I915_KBL_GUC_UCODE "i915/kbl_guc_ver9_14.bin"
#define I915_KBL_GUC_UCODE GUC_FW_PATH(kbl, KBL_FW_MAJOR, KBL_FW_MINOR)
MODULE_FIRMWARE(I915_KBL_GUC_UCODE);
MODULE_FIRMWARE(I915_KBL_GUC_UCODE);


/* User-friendly representation of an enum */
/* User-friendly representation of an enum */
@@ -697,16 +709,16 @@ void intel_guc_init(struct drm_device *dev)
		fw_path = NULL;
		fw_path = NULL;
	} else if (IS_SKYLAKE(dev)) {
	} else if (IS_SKYLAKE(dev)) {
		fw_path = I915_SKL_GUC_UCODE;
		fw_path = I915_SKL_GUC_UCODE;
		guc_fw->guc_fw_major_wanted = 6;
		guc_fw->guc_fw_major_wanted = SKL_FW_MAJOR;
		guc_fw->guc_fw_minor_wanted = 1;
		guc_fw->guc_fw_minor_wanted = SKL_FW_MINOR;
	} else if (IS_BROXTON(dev)) {
	} else if (IS_BROXTON(dev)) {
		fw_path = I915_BXT_GUC_UCODE;
		fw_path = I915_BXT_GUC_UCODE;
		guc_fw->guc_fw_major_wanted = 8;
		guc_fw->guc_fw_major_wanted = BXT_FW_MAJOR;
		guc_fw->guc_fw_minor_wanted = 7;
		guc_fw->guc_fw_minor_wanted = BXT_FW_MINOR;
	} else if (IS_KABYLAKE(dev)) {
	} else if (IS_KABYLAKE(dev)) {
		fw_path = I915_KBL_GUC_UCODE;
		fw_path = I915_KBL_GUC_UCODE;
		guc_fw->guc_fw_major_wanted = 9;
		guc_fw->guc_fw_major_wanted = KBL_FW_MAJOR;
		guc_fw->guc_fw_minor_wanted = 14;
		guc_fw->guc_fw_minor_wanted = KBL_FW_MINOR;
	} else {
	} else {
		fw_path = "";	/* unknown device */
		fw_path = "";	/* unknown device */
	}
	}