Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Anoop, Vijay" <anoop.c.vijay@intel.com>
To: intel-xe@lists.freedesktop.org
Cc: umesh.nerlige.ramappa@intel.com, badal.nilawar@intel.com,
	rodrigo.vivi@intel.com, aravind.iddamsetty@intel.com,
	riana.tauro@intel.com, anshuman.gupta@intel.com,
	matthew.d.roper@intel.com, michael.j.ruhl@intel.com,
	paul.e.luse@intel.com, mohamed.mansoor.v@intel.com,
	kam.nasim@intel.com, anoop.c.vijay@intel.com
Subject: [PATCH v11 0/7] drm/xe/xe_sysctrl: Add system controller component for Xe3p dGPU platforms
Date: Thu, 19 Mar 2026 10:30:30 -0700	[thread overview]
Message-ID: <20260319173031.1320708-9-anoop.c.vijay@intel.com> (raw)

From: Anoop Vijay <anoop.c.vijay@intel.com>

This patch series introduces initial support for System Controller
(sysctrl) component on Intel Xe3p discrete GPU platforms.

System Controller is a firmware-managed entity responsible for selected
platform-level management functions delegated by driver. Interaction
with System Controller is performed via a mailbox interface.

This series adds foundational infrastructure required to detect and
initialize System Controller interface and to exchange commands and
responses with firmware, including support for fragmented message
transfers for larger payloads.

This establishes base for subsequent System Controller feature
enablement and firmware command handling.

Follow-up series covering sysctrl usage are available at:
https://patchwork.freedesktop.org/series/160482/
https://patchwork.freedesktop.org/series/160184/
https://patchwork.freedesktop.org/series/161655/
---
v2: (Umesh)
- Fix commit message to 75 chars per line
- Address CI.Hooks and checkpatch warnings
- Add sc_to_xe() helper for cleaner conversions
- Alphabetical order for headers
- Simplify write/read frame logic using memcpy
- Drop redundant frame length checks
- Use xe_mmio_rmw32() for register updates
- Align FIELD_PREP macros
- Improve error handling and timeout messages
- Handle phase_bit revert on write-frame failure
- Update rdata_len on partial receive before return
- Remove unnecessary headers

v3: (Matt, Riana, Umesh)
- Split patch into logical series
- Rename SC_* macros to SYSCTRL_* for consistency
- Move MKHI_* defines to .c file
- Pass xe directly to helpers
- Place devm_add_action_or_reset() after set_sysctrl_region()
- Add kernel-doc for xe_sysctrl_mailbox_init()
- Add short documentation for System Controller in xe_sysctrl.c
- Avoid hardcoded sizes
- Move structs to _types.h

v4: (Matt, Mike)
- Code style improvements
- Add domain-specific MMIO accessor
- Change phase_bit to bool type
- Add input validation and buffer overflow protection

v5: (Umesh, Riana)
- Reset phase bit to 0 on error conditions
- Refactor mailbox receive path
- Updated xe_err messages for consistency

v6: (Matt)
- Move protocol constants from xe_sysctrl_regs.h to xe_sysctrl_mailbox_types.h
- Add SYSCTRL_MB_CTRL_MKHI_CMD helper macro

v7:
- Fix for CI failure

v8: (Matt, Michal, Shuicheng)
- Reordered patches for logical flow
- Moved ABI definitions to dedicated header
- Static functions renamed with short prefix
- Fixed include order
- Added VF check
- Converted runtime checks to assertions
- Changed xe_sysctrl_send_command() function parameter from 'xe' to 'sc'
- Added frame length validation and command overflow protection
- Use REG_FIELD_PREP for hardware registers
- Changed error format to %pe
- Removed unnecessary NULL checks and explicit zeros
- Fixed kernel-doc syntax
- Added sc_to_xe() helper

v9: (Matt, Umesh, Badal)
- Extended commit message to explain System Controller and purpose of
  `has_sysctrl` flag
- Normalized hexadecimal literal casing
- Renamed MKHI to SCHI (System Controller Host Interface)
- Fixed kernel-doc syntax

v10: (Riana, Badal, Anshuman, Umesh)
- Removed SCHI terminology and aligned to sysctrl mailbox naming
- Cleaned up commit message
- Updated sysctrl documentation
- Fixed mutex lifetime management
- Added System Controller ABI kernel-doc
- Converted xe_sysctrl_app_msg_hdr data field to u32
- Fixed macro alignment
- Added sysctrl suspend/resume handling
- Dropped redundant header includes and unused variable initialization
- Updated runtime PM guarding in xe_sysctrl_send_command() to use
  guard(xe_pm_runtime_noresume)

v11: (Umesh, Badal)
- Improve struct member spacing for readability
- Updated System Controller ABI doc
- Remove explicit SoC remapper disable on suspend
---
Anoop Vijay (7):
  drm/xe/xe_sysctrl: Add System Controller types and device integration
  drm/xe/xe_sysctrl: Add System Controller mailbox register definitions
  drm/xe/xe_sysctrl: Add ABI and mailbox interface headers
  drm/xe/xe_sysctrl: Add System Controller initialization support
  drm/xe/xe_sysctrl: Add System Controller mailbox communication support
  drm/xe/xe_sysctrl: Add System Controller power management support
  drm/xe/xe_pci: Enable System Controller support on CRI platform

 drivers/gpu/drm/xe/Makefile                   |   2 +
 drivers/gpu/drm/xe/abi/xe_sysctrl_abi.h       |  65 +++
 drivers/gpu/drm/xe/regs/xe_sysctrl_regs.h     |  36 ++
 drivers/gpu/drm/xe/xe_device.c                |   5 +
 drivers/gpu/drm/xe/xe_device_types.h          |   6 +
 drivers/gpu/drm/xe/xe_pci.c                   |   2 +
 drivers/gpu/drm/xe/xe_pci_types.h             |   1 +
 drivers/gpu/drm/xe/xe_pm.c                    |  11 +
 drivers/gpu/drm/xe/xe_sysctrl.c               | 128 ++++++
 drivers/gpu/drm/xe/xe_sysctrl.h               |  23 ++
 drivers/gpu/drm/xe/xe_sysctrl_mailbox.c       | 369 ++++++++++++++++++
 drivers/gpu/drm/xe/xe_sysctrl_mailbox.h       |  31 ++
 drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h |  40 ++
 drivers/gpu/drm/xe/xe_sysctrl_types.h         |  32 ++
 14 files changed, 751 insertions(+)
 create mode 100644 drivers/gpu/drm/xe/abi/xe_sysctrl_abi.h
 create mode 100644 drivers/gpu/drm/xe/regs/xe_sysctrl_regs.h
 create mode 100644 drivers/gpu/drm/xe/xe_sysctrl.c
 create mode 100644 drivers/gpu/drm/xe/xe_sysctrl.h
 create mode 100644 drivers/gpu/drm/xe/xe_sysctrl_mailbox.c
 create mode 100644 drivers/gpu/drm/xe/xe_sysctrl_mailbox.h
 create mode 100644 drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
 create mode 100644 drivers/gpu/drm/xe/xe_sysctrl_types.h

-- 
2.43.0


             reply	other threads:[~2026-03-19 17:30 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-19 17:30 Anoop, Vijay [this message]
2026-03-19 17:30 ` [PATCH v11 1/7] drm/xe/xe_sysctrl: Add System Controller types and device integration Anoop, Vijay
2026-03-19 17:30 ` [PATCH v11 2/7] drm/xe/xe_sysctrl: Add System Controller mailbox register definitions Anoop, Vijay
2026-03-19 17:30 ` [PATCH v11 3/7] drm/xe/xe_sysctrl: Add ABI and mailbox interface headers Anoop, Vijay
2026-03-19 17:30 ` [PATCH v11 4/7] drm/xe/xe_sysctrl: Add System Controller initialization support Anoop, Vijay
2026-03-19 17:30 ` [PATCH v11 5/7] drm/xe/xe_sysctrl: Add System Controller mailbox communication support Anoop, Vijay
2026-03-19 17:30 ` [PATCH v11 6/7] drm/xe/xe_sysctrl: Add System Controller power management support Anoop, Vijay
2026-03-20  8:35   ` Nilawar, Badal
2026-03-19 17:30 ` [PATCH v11 7/7] drm/xe/xe_pci: Enable System Controller support on CRI platform Anoop, Vijay
2026-03-19 17:37 ` ✗ CI.checkpatch: warning for drm/xe/xe_sysctrl: Add system controller component for Xe3p dGPU platforms (rev2) Patchwork
2026-03-19 17:38 ` ✓ CI.KUnit: success " Patchwork
2026-03-19 18:13 ` ✓ Xe.CI.BAT: " Patchwork
2026-03-20 17:37 ` ✗ Xe.CI.FULL: failure " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260319173031.1320708-9-anoop.c.vijay@intel.com \
    --to=anoop.c.vijay@intel.com \
    --cc=anshuman.gupta@intel.com \
    --cc=aravind.iddamsetty@intel.com \
    --cc=badal.nilawar@intel.com \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=kam.nasim@intel.com \
    --cc=matthew.d.roper@intel.com \
    --cc=michael.j.ruhl@intel.com \
    --cc=mohamed.mansoor.v@intel.com \
    --cc=paul.e.luse@intel.com \
    --cc=riana.tauro@intel.com \
    --cc=rodrigo.vivi@intel.com \
    --cc=umesh.nerlige.ramappa@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox