]> www.infradead.org Git - users/jedix/linux-maple.git/commit
drm/xe/vf: Perform early GT MMIO initialization to read GMDID
authorMichal Wajdeczko <michal.wajdeczko@intel.com>
Tue, 14 Jan 2025 21:13:47 +0000 (22:13 +0100)
committerMichal Wajdeczko <michal.wajdeczko@intel.com>
Sat, 18 Jan 2025 21:04:59 +0000 (22:04 +0100)
commit13265fe7426ec9ba5aa86baab913417ca361e8a4
treed0b7823e0261bbfbdf90699bb609dfa1d88c2d27
parentbbd8429264baf8bc3c40cefda048560ae0eb7890
drm/xe/vf: Perform early GT MMIO initialization to read GMDID

VFs need to communicate with the GuC to obtain the GMDID value
and existing GuC functions used for that assume that the GT has
it's MMIO members already setup. However, due to recent refactoring
the gt->mmio is initialized later, and any attempt by the VF to use
xe_mmio_read|write() from GuC functions will lead to NPD crash due
to unset MMIO register address:

[] xe 0000:00:02.1: [drm] Running in SR-IOV VF mode
[] xe 0000:00:02.1: [drm] GT0: sending H2G MMIO 0x5507
[] BUG: unable to handle page fault for address: 0000000000190240

Since we are already tweaking the id and type of the primary GT to
mimic it's a Media GT before initializing the GuC communication,
we can also call xe_gt_mmio_init() to perform early setup of the
gt->mmio which will make those GuC functions work again.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Matt Roper <matthew.d.roper@intel.com>
Cc: Piotr Piórkowski <piotr.piorkowski@intel.com>
Reviewed-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250114211347.1083-1-michal.wajdeczko@intel.com
drivers/gpu/drm/xe/xe_pci.c