Commit 9b571b32 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm-intel-fixes-2025-11-20' of...

Merge tag 'drm-intel-fixes-2025-11-20' of https://gitlab.freedesktop.org/drm/i915/kernel

 into drm-fixes

- Wildcat Lake and Panther Lake detangled for display fixes (Dnyaneshwar)

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>

From: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patch.msgid.link/aR8jByCwjIThpnpk@intel.com
parents 6a23ae0a 54745603
Loading
Loading
Loading
Loading
+6 −8
Original line number Diff line number Diff line
@@ -39,14 +39,12 @@ bool intel_encoder_is_c10phy(struct intel_encoder *encoder)
	struct intel_display *display = to_intel_display(encoder);
	enum phy phy = intel_encoder_to_phy(encoder);

	/* PTL doesn't have a PHY connected to PORT B; as such,
	 * there will never be a case where PTL uses PHY B.
	 * WCL uses PORT A and B with the C10 PHY.
	 * Reusing the condition for WCL and extending it for PORT B
	 * should not cause any issues for PTL.
	 */
	if (display->platform.pantherlake && phy < PHY_C)
		return true;
	if (display->platform.pantherlake) {
		if (display->platform.pantherlake_wildcatlake)
			return phy <= PHY_B;
		else
			return phy == PHY_A;
	}

	if ((display->platform.lunarlake || display->platform.meteorlake) && phy < PHY_C)
		return true;
+13 −0
Original line number Diff line number Diff line
@@ -1404,8 +1404,20 @@ static const struct platform_desc bmg_desc = {
	PLATFORM_GROUP(dgfx),
};

static const u16 wcl_ids[] = {
	INTEL_WCL_IDS(ID),
	0
};

static const struct platform_desc ptl_desc = {
	PLATFORM(pantherlake),
	.subplatforms = (const struct subplatform_desc[]) {
		{
			SUBPLATFORM(pantherlake, wildcatlake),
			.pciidlist = wcl_ids,
		},
		{},
	}
};

__diag_pop();
@@ -1482,6 +1494,7 @@ static const struct {
	INTEL_LNL_IDS(INTEL_DISPLAY_DEVICE, &lnl_desc),
	INTEL_BMG_IDS(INTEL_DISPLAY_DEVICE, &bmg_desc),
	INTEL_PTL_IDS(INTEL_DISPLAY_DEVICE, &ptl_desc),
	INTEL_WCL_IDS(INTEL_DISPLAY_DEVICE, &ptl_desc),
};

static const struct {
+3 −1
Original line number Diff line number Diff line
@@ -101,7 +101,9 @@ struct pci_dev;
	/* Display ver 14.1 (based on GMD ID) */ \
	func(battlemage) \
	/* Display ver 30 (based on GMD ID) */ \
	func(pantherlake)
	func(pantherlake) \
	func(pantherlake_wildcatlake)


#define __MEMBER(name) unsigned long name:1;
#define __COUNT(x) 1 +
+7 −3
Original line number Diff line number Diff line
@@ -127,6 +127,9 @@ static bool dmc_firmware_param_disabled(struct intel_display *display)
#define DISPLAY_VER13_DMC_MAX_FW_SIZE	0x20000
#define DISPLAY_VER12_DMC_MAX_FW_SIZE	ICL_DMC_MAX_FW_SIZE

#define XE3LPD_3002_DMC_PATH		DMC_PATH(xe3lpd_3002)
MODULE_FIRMWARE(XE3LPD_3002_DMC_PATH);

#define XE3LPD_DMC_PATH			DMC_PATH(xe3lpd)
MODULE_FIRMWARE(XE3LPD_DMC_PATH);

@@ -183,9 +186,10 @@ static const char *dmc_firmware_default(struct intel_display *display, u32 *size
{
	const char *fw_path = NULL;
	u32 max_fw_size = 0;

	if (DISPLAY_VERx100(display) == 3002 ||
	    DISPLAY_VERx100(display) == 3000) {
	if (DISPLAY_VERx100(display) == 3002) {
		fw_path = XE3LPD_3002_DMC_PATH;
		max_fw_size = XE2LPD_DMC_MAX_FW_SIZE;
	} else if (DISPLAY_VERx100(display) == 3000) {
		fw_path = XE3LPD_DMC_PATH;
		max_fw_size = XE2LPD_DMC_MAX_FW_SIZE;
	} else if (DISPLAY_VERx100(display) == 2000) {
+1 −0
Original line number Diff line number Diff line
@@ -375,6 +375,7 @@ static const struct pci_device_id pciidlist[] = {
	INTEL_LNL_IDS(INTEL_VGA_DEVICE, &lnl_desc),
	INTEL_BMG_IDS(INTEL_VGA_DEVICE, &bmg_desc),
	INTEL_PTL_IDS(INTEL_VGA_DEVICE, &ptl_desc),
	INTEL_WCL_IDS(INTEL_VGA_DEVICE, &ptl_desc),
	{ }
};
MODULE_DEVICE_TABLE(pci, pciidlist);
Loading