[PATCH v6 00/11] mtd: add driver for Intel discrete graphics

Alexander Usyskin
2025-03-02T14:20:49Z

Add driver for access to Intel discrete graphics card
internal NVM device.
Expose device on auxiliary bus by i915 and Xe drivers and
provide mtd driver to register this device with MTD framework.

This is a rewrite of "drm/i915/spi: spi access for discrete graphics"
and "spi: add driver for Intel discrete graphics"
series with connection to the Xe driver and splitting
the spi driver part to separate module in mtd subsystem.

This series intended to be pushed through drm-xe-next.

V2: Replace dev_* prints with drm_* prints in drm (xe and i915) patches.
Enable NVM device on Battlemage HW (xe driver patch)
Fix overwrite register address (xe driver patch)
Add Rodrigo's r-b

V3: Use devm_pm_runtime_enable to simplify flow.
Drop print in i915 unload that was accidentally set as error.
Drop HAS_GSC_NVM macro in line with latest Xe changes.
Add more Rodrigo's r-b and Miquel's ack.

V4: Add patch that always creates mtd master device
and adjust mtd-intel-dg power management to use this device.

V5: Fix master device creation to accomodate for devices without
partitions (create partitoned master in this case)
Rebase over latest drm-xe-next
Add ack's
V6: Fix master device release (use rigth idr in release)
Rebase over latest drm-xe-next
Grammar and style fixes

Alexander Usyskin (11):
mtd: core: always create master device
mtd: add driver for intel graphics non-volatile memory device
mtd: intel-dg: implement region enumeration
mtd: intel-dg: implement access functions
mtd: intel-dg: register with mtd
mtd: intel-dg: align 64bit read and write
mtd: intel-dg: wake card on operations
drm/i915/nvm: add nvm device for discrete graphics
drm/i915/nvm: add support for access mode
drm/xe/nvm: add on-die non-volatile memory device
drm/xe/nvm: add support for access mode

MAINTAINERS | 7 +
drivers/gpu/drm/i915/Makefile | 4 +
drivers/gpu/drm/i915/i915_driver.c | 6 +
drivers/gpu/drm/i915/i915_drv.h | 3 +
drivers/gpu/drm/i915/i915_reg.h | 1 +
drivers/gpu/drm/i915/intel_nvm.c | 115 ++++
drivers/gpu/drm/i915/intel_nvm.h | 15 +
drivers/gpu/drm/xe/Makefile | 1 +
drivers/gpu/drm/xe/regs/xe_gsc_regs.h | 4 +
drivers/gpu/drm/xe/xe_device.c | 5 +
drivers/gpu/drm/xe/xe_device_types.h | 6 +
drivers/gpu/drm/xe/xe_heci_gsc.c | 5 +-
drivers/gpu/drm/xe/xe_nvm.c | 136 +++++
drivers/gpu/drm/xe/xe_nvm.h | 15 +
drivers/gpu/drm/xe/xe_pci.c | 6 +
drivers/mtd/devices/Kconfig | 11 +
drivers/mtd/devices/Makefile | 1 +
drivers/mtd/devices/mtd_intel_dg.c | 845 ++++++++++++++++++++++++++
drivers/mtd/mtdcore.c | 141 +++--
drivers/mtd/mtdcore.h | 2 +-
drivers/mtd/mtdpart.c | 17 +-
include/linux/intel_dg_nvm_aux.h | 27 +
22 files changed, 1319 insertions(+), 54 deletions(-)
create mode 100644 drivers/gpu/drm/i915/intel_nvm.c
create mode 100644 drivers/gpu/drm/i915/intel_nvm.h
create mode 100644 drivers/gpu/drm/xe/xe_nvm.c
create mode 100644 drivers/gpu/drm/xe/xe_nvm.h
create mode 100644 drivers/mtd/devices/mtd_intel_dg.c
create mode 100644 include/linux/intel_dg_nvm_aux.h

--
2.43.0