Skip to content

Commit 9b571b3

Browse files
committed
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: Dave Airlie <[email protected]> From: Rodrigo Vivi <[email protected]> Link: https://patch.msgid.link/[email protected]
2 parents 6a23ae0 + 5474560 commit 9b571b3

File tree

6 files changed

+34
-13
lines changed

6 files changed

+34
-13
lines changed

drivers/gpu/drm/i915/display/intel_cx0_phy.c

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,12 @@ bool intel_encoder_is_c10phy(struct intel_encoder *encoder)
3939
struct intel_display *display = to_intel_display(encoder);
4040
enum phy phy = intel_encoder_to_phy(encoder);
4141

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

5149
if ((display->platform.lunarlake || display->platform.meteorlake) && phy < PHY_C)
5250
return true;

drivers/gpu/drm/i915/display/intel_display_device.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1404,8 +1404,20 @@ static const struct platform_desc bmg_desc = {
14041404
PLATFORM_GROUP(dgfx),
14051405
};
14061406

1407+
static const u16 wcl_ids[] = {
1408+
INTEL_WCL_IDS(ID),
1409+
0
1410+
};
1411+
14071412
static const struct platform_desc ptl_desc = {
14081413
PLATFORM(pantherlake),
1414+
.subplatforms = (const struct subplatform_desc[]) {
1415+
{
1416+
SUBPLATFORM(pantherlake, wildcatlake),
1417+
.pciidlist = wcl_ids,
1418+
},
1419+
{},
1420+
}
14091421
};
14101422

14111423
__diag_pop();
@@ -1482,6 +1494,7 @@ static const struct {
14821494
INTEL_LNL_IDS(INTEL_DISPLAY_DEVICE, &lnl_desc),
14831495
INTEL_BMG_IDS(INTEL_DISPLAY_DEVICE, &bmg_desc),
14841496
INTEL_PTL_IDS(INTEL_DISPLAY_DEVICE, &ptl_desc),
1497+
INTEL_WCL_IDS(INTEL_DISPLAY_DEVICE, &ptl_desc),
14851498
};
14861499

14871500
static const struct {

drivers/gpu/drm/i915/display/intel_display_device.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,9 @@ struct pci_dev;
101101
/* Display ver 14.1 (based on GMD ID) */ \
102102
func(battlemage) \
103103
/* Display ver 30 (based on GMD ID) */ \
104-
func(pantherlake)
104+
func(pantherlake) \
105+
func(pantherlake_wildcatlake)
106+
105107

106108
#define __MEMBER(name) unsigned long name:1;
107109
#define __COUNT(x) 1 +

drivers/gpu/drm/i915/display/intel_dmc.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,9 @@ static bool dmc_firmware_param_disabled(struct intel_display *display)
127127
#define DISPLAY_VER13_DMC_MAX_FW_SIZE 0x20000
128128
#define DISPLAY_VER12_DMC_MAX_FW_SIZE ICL_DMC_MAX_FW_SIZE
129129

130+
#define XE3LPD_3002_DMC_PATH DMC_PATH(xe3lpd_3002)
131+
MODULE_FIRMWARE(XE3LPD_3002_DMC_PATH);
132+
130133
#define XE3LPD_DMC_PATH DMC_PATH(xe3lpd)
131134
MODULE_FIRMWARE(XE3LPD_DMC_PATH);
132135

@@ -183,9 +186,10 @@ static const char *dmc_firmware_default(struct intel_display *display, u32 *size
183186
{
184187
const char *fw_path = NULL;
185188
u32 max_fw_size = 0;
186-
187-
if (DISPLAY_VERx100(display) == 3002 ||
188-
DISPLAY_VERx100(display) == 3000) {
189+
if (DISPLAY_VERx100(display) == 3002) {
190+
fw_path = XE3LPD_3002_DMC_PATH;
191+
max_fw_size = XE2LPD_DMC_MAX_FW_SIZE;
192+
} else if (DISPLAY_VERx100(display) == 3000) {
189193
fw_path = XE3LPD_DMC_PATH;
190194
max_fw_size = XE2LPD_DMC_MAX_FW_SIZE;
191195
} else if (DISPLAY_VERx100(display) == 2000) {

drivers/gpu/drm/xe/xe_pci.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,7 @@ static const struct pci_device_id pciidlist[] = {
375375
INTEL_LNL_IDS(INTEL_VGA_DEVICE, &lnl_desc),
376376
INTEL_BMG_IDS(INTEL_VGA_DEVICE, &bmg_desc),
377377
INTEL_PTL_IDS(INTEL_VGA_DEVICE, &ptl_desc),
378+
INTEL_WCL_IDS(INTEL_VGA_DEVICE, &ptl_desc),
378379
{ }
379380
};
380381
MODULE_DEVICE_TABLE(pci, pciidlist);

include/drm/intel/pciids.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -877,7 +877,10 @@
877877
MACRO__(0xB08F, ## __VA_ARGS__), \
878878
MACRO__(0xB090, ## __VA_ARGS__), \
879879
MACRO__(0xB0A0, ## __VA_ARGS__), \
880-
MACRO__(0xB0B0, ## __VA_ARGS__), \
880+
MACRO__(0xB0B0, ## __VA_ARGS__)
881+
882+
/* WCL */
883+
#define INTEL_WCL_IDS(MACRO__, ...) \
881884
MACRO__(0xFD80, ## __VA_ARGS__), \
882885
MACRO__(0xFD81, ## __VA_ARGS__)
883886

0 commit comments

Comments
 (0)