Merge tag 'drm-fixes-2025-05-24' of https://gitlab.freedesktop.org/drm/kernel

Pull drm fixes from Dave Airlie:
"Weekly drm fixes pull, on target to be quiet, just one amdgpu, one
edid and a few minor xe fixes.

edid:
- fix HDR metadata reset

amdgpu:
- Hibernate fix

xe:
- Make sure to check all forcewakes when dumping mocs
- Fix wrong use of read64 on 32b register
- Synchronize Panther Lake PCI IDs"

* tag 'drm-fixes-2025-05-24' of https://gitlab.freedesktop.org/drm/kernel:
drm/xe/ptl: Update the PTL pci id table
drm/xe: Use xe_mmio_read32() to read mtcfg register
drm/xe/mocs: Check if all domains awake
Revert "drm/amd: Keep display off while going into S4"
drm/edid: fixed the bug that hdr metadata was not reset

Changed files
+16 -15
drivers
gpu
drm
amd
display
amdgpu_dm
xe
include
drm
intel
-5
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
··· 3469 3469 3470 3470 return 0; 3471 3471 } 3472 - 3473 - /* leave display off for S4 sequence */ 3474 - if (adev->in_s4) 3475 - return 0; 3476 - 3477 3472 /* Recreate dc_state - DC invalidates it when setting power state to S3. */ 3478 3473 dc_state_release(dm_state->context); 3479 3474 dm_state->context = dc_state_create(dm->dc, NULL);
+1
drivers/gpu/drm/drm_edid.c
··· 6596 6596 info->has_hdmi_infoframe = false; 6597 6597 info->rgb_quant_range_selectable = false; 6598 6598 memset(&info->hdmi, 0, sizeof(info->hdmi)); 6599 + memset(&connector->hdr_sink_metadata, 0, sizeof(connector->hdr_sink_metadata)); 6599 6600 6600 6601 info->edid_hdmi_rgb444_dc_modes = 0; 6601 6602 info->edid_hdmi_ycbcr444_dc_modes = 0;
+5 -5
drivers/gpu/drm/xe/xe_mmio.c
··· 75 75 * is fine as it's going to the root tile's mmio, that's 76 76 * guaranteed to be initialized earlier in xe_mmio_probe_early() 77 77 */ 78 - mtcfg = xe_mmio_read64_2x32(mmio, XEHP_MTCFG_ADDR); 78 + mtcfg = xe_mmio_read32(mmio, XEHP_MTCFG_ADDR); 79 79 tile_count = REG_FIELD_GET(TILE_COUNT, mtcfg) + 1; 80 80 81 81 if (tile_count < xe->info.tile_count) { 82 82 drm_info(&xe->drm, "tile_count: %d, reduced_tile_count %d\n", 83 - xe->info.tile_count, tile_count); 83 + xe->info.tile_count, tile_count); 84 84 xe->info.tile_count = tile_count; 85 85 86 86 /* ··· 128 128 */ 129 129 xe->mmio.size = pci_resource_len(pdev, GTTMMADR_BAR); 130 130 xe->mmio.regs = pci_iomap(pdev, GTTMMADR_BAR, 0); 131 - if (xe->mmio.regs == NULL) { 131 + if (!xe->mmio.regs) { 132 132 drm_err(&xe->drm, "failed to map registers\n"); 133 133 return -EIO; 134 134 } ··· 309 309 return (u64)udw << 32 | ldw; 310 310 } 311 311 312 - static int __xe_mmio_wait32(struct xe_mmio *mmio, struct xe_reg reg, u32 mask, u32 val, u32 timeout_us, 313 - u32 *out_val, bool atomic, bool expect_match) 312 + static int __xe_mmio_wait32(struct xe_mmio *mmio, struct xe_reg reg, u32 mask, u32 val, 313 + u32 timeout_us, u32 *out_val, bool atomic, bool expect_match) 314 314 { 315 315 ktime_t cur = ktime_get_raw(); 316 316 const ktime_t end = ktime_add_us(cur, timeout_us);
+6 -5
drivers/gpu/drm/xe/xe_mocs.c
··· 775 775 void xe_mocs_dump(struct xe_gt *gt, struct drm_printer *p) 776 776 { 777 777 struct xe_device *xe = gt_to_xe(gt); 778 + enum xe_force_wake_domains domain; 778 779 struct xe_mocs_info table; 779 780 unsigned int fw_ref, flags; 780 781 781 782 flags = get_mocs_settings(xe, &table); 782 783 784 + domain = flags & HAS_LNCF_MOCS ? XE_FORCEWAKE_ALL : XE_FW_GT; 783 785 xe_pm_runtime_get_noresume(xe); 784 - fw_ref = xe_force_wake_get(gt_to_fw(gt), 785 - flags & HAS_LNCF_MOCS ? 786 - XE_FORCEWAKE_ALL : XE_FW_GT); 787 - if (!fw_ref) 786 + fw_ref = xe_force_wake_get(gt_to_fw(gt), domain); 787 + 788 + if (!xe_force_wake_ref_has_domain(fw_ref, domain)) 788 789 goto err_fw; 789 790 790 791 table.ops->dump(&table, flags, gt, p); 791 792 792 - xe_force_wake_put(gt_to_fw(gt), fw_ref); 793 793 err_fw: 794 + xe_force_wake_put(gt_to_fw(gt), fw_ref); 794 795 xe_pm_runtime_put(xe); 795 796 } 796 797
+4
include/drm/intel/pciids.h
··· 861 861 MACRO__(0xB081, ## __VA_ARGS__), \ 862 862 MACRO__(0xB082, ## __VA_ARGS__), \ 863 863 MACRO__(0xB083, ## __VA_ARGS__), \ 864 + MACRO__(0xB084, ## __VA_ARGS__), \ 865 + MACRO__(0xB085, ## __VA_ARGS__), \ 866 + MACRO__(0xB086, ## __VA_ARGS__), \ 867 + MACRO__(0xB087, ## __VA_ARGS__), \ 864 868 MACRO__(0xB08F, ## __VA_ARGS__), \ 865 869 MACRO__(0xB090, ## __VA_ARGS__), \ 866 870 MACRO__(0xB0A0, ## __VA_ARGS__), \