Skip to content

Commit fe1e5a1

Browse files
committed
Merge tag 'drm-xe-fixes-2025-05-23' of https://gitlab.freedesktop.org/drm/xe/kernel into drm-fixes
Driver Changes: - Make sure to check all forcewakes when dumping mocs - Fix wrong use of read64 on 32b register - Synchronize Panther Lake PCI IDs Signed-off-by: Dave Airlie <[email protected]> From: Lucas De Marchi <[email protected]> Link: https://lore.kernel.org/r/uixp5cq7emz32lmwwvq4vbujppugfozhyj3cm2aqzx4lcg7ivn@m2khvf4kvz5p
2 parents 4731d5e + 027a362 commit fe1e5a1

File tree

3 files changed

+15
-10
lines changed

3 files changed

+15
-10
lines changed

drivers/gpu/drm/xe/xe_mmio.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,12 @@ static void mmio_multi_tile_setup(struct xe_device *xe, size_t tile_mmio_size)
7575
* is fine as it's going to the root tile's mmio, that's
7676
* guaranteed to be initialized earlier in xe_mmio_probe_early()
7777
*/
78-
mtcfg = xe_mmio_read64_2x32(mmio, XEHP_MTCFG_ADDR);
78+
mtcfg = xe_mmio_read32(mmio, XEHP_MTCFG_ADDR);
7979
tile_count = REG_FIELD_GET(TILE_COUNT, mtcfg) + 1;
8080

8181
if (tile_count < xe->info.tile_count) {
8282
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);
8484
xe->info.tile_count = tile_count;
8585

8686
/*
@@ -128,7 +128,7 @@ int xe_mmio_probe_early(struct xe_device *xe)
128128
*/
129129
xe->mmio.size = pci_resource_len(pdev, GTTMMADR_BAR);
130130
xe->mmio.regs = pci_iomap(pdev, GTTMMADR_BAR, 0);
131-
if (xe->mmio.regs == NULL) {
131+
if (!xe->mmio.regs) {
132132
drm_err(&xe->drm, "failed to map registers\n");
133133
return -EIO;
134134
}
@@ -309,8 +309,8 @@ u64 xe_mmio_read64_2x32(struct xe_mmio *mmio, struct xe_reg reg)
309309
return (u64)udw << 32 | ldw;
310310
}
311311

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)
314314
{
315315
ktime_t cur = ktime_get_raw();
316316
const ktime_t end = ktime_add_us(cur, timeout_us);

drivers/gpu/drm/xe/xe_mocs.c

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -775,22 +775,23 @@ void xe_mocs_init(struct xe_gt *gt)
775775
void xe_mocs_dump(struct xe_gt *gt, struct drm_printer *p)
776776
{
777777
struct xe_device *xe = gt_to_xe(gt);
778+
enum xe_force_wake_domains domain;
778779
struct xe_mocs_info table;
779780
unsigned int fw_ref, flags;
780781

781782
flags = get_mocs_settings(xe, &table);
782783

784+
domain = flags & HAS_LNCF_MOCS ? XE_FORCEWAKE_ALL : XE_FW_GT;
783785
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))
788789
goto err_fw;
789790

790791
table.ops->dump(&table, flags, gt, p);
791792

792-
xe_force_wake_put(gt_to_fw(gt), fw_ref);
793793
err_fw:
794+
xe_force_wake_put(gt_to_fw(gt), fw_ref);
794795
xe_pm_runtime_put(xe);
795796
}
796797

include/drm/intel/pciids.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -861,6 +861,10 @@
861861
MACRO__(0xB081, ## __VA_ARGS__), \
862862
MACRO__(0xB082, ## __VA_ARGS__), \
863863
MACRO__(0xB083, ## __VA_ARGS__), \
864+
MACRO__(0xB084, ## __VA_ARGS__), \
865+
MACRO__(0xB085, ## __VA_ARGS__), \
866+
MACRO__(0xB086, ## __VA_ARGS__), \
867+
MACRO__(0xB087, ## __VA_ARGS__), \
864868
MACRO__(0xB08F, ## __VA_ARGS__), \
865869
MACRO__(0xB090, ## __VA_ARGS__), \
866870
MACRO__(0xB0A0, ## __VA_ARGS__), \

0 commit comments

Comments
 (0)