drm/xe: Drop xe_mmio_write64()
authorMatt Roper <matthew.d.roper@intel.com>
Wed, 23 Aug 2023 00:33:14 +0000 (17:33 -0700)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Thu, 21 Dec 2023 16:40:27 +0000 (11:40 -0500)
The only possible 64-bit register writes in the driver come from the
highly questionable MMIO ioctl.  That ioctl's register write support
only operates for userspace running as root and cannot be used by any
real userspace; it exists solely to support the "xe_reg" debug tool in
IGT.  Since the spec indicates that hardware does not officially support
64-bit register accesses, there's no reason to allow such 64-bit writes,
even for debugging.

Bspec: 60027
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Link: https://lore.kernel.org/r/20230823003312.1356779-4-matthew.d.roper@intel.com
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/xe_mmio.c
drivers/gpu/drm/xe/xe_mmio.h

index c2ec52eefb2e4727102926ef170e540af782d92c..3ccc0af4430be4b1dc9da7f850b95fe7c454b1bb 100644 (file)
@@ -490,9 +490,6 @@ int xe_mmio_ioctl(struct drm_device *dev, void *data,
                        }
                        xe_mmio_write32(gt, reg, args->value);
                        break;
-               case DRM_XE_MMIO_64BIT:
-                       xe_mmio_write64(gt, reg, args->value);
-                       break;
                default:
                        drm_dbg(&xe->drm, "Invalid MMIO bit size");
                        fallthrough;
index f72c34c7d1d08fec0b0f313e7cef7ac6151dcd24..cd9fe08ccf4ada6673bd523607ae664548ea0b54 100644 (file)
@@ -75,17 +75,6 @@ static inline u32 xe_mmio_rmw32(struct xe_gt *gt, struct xe_reg reg, u32 clr,
        return old;
 }
 
-static inline void xe_mmio_write64(struct xe_gt *gt,
-                                  struct xe_reg reg, u64 val)
-{
-       struct xe_tile *tile = gt_to_tile(gt);
-
-       if (reg.addr < gt->mmio.adj_limit)
-               reg.addr += gt->mmio.adj_offset;
-
-       writeq(val, tile->mmio.regs + reg.addr);
-}
-
 static inline int xe_mmio_write32_and_verify(struct xe_gt *gt,
                                             struct xe_reg reg, u32 val,
                                             u32 mask, u32 eval)