[PATCH v2 00/22] Cleanup and Refactor TI-SCI driver
From: Beleswar Padhi
Date: Wed Sep 30 2026 - 12:20:02 EST
This series does a lot of cleanups and refactoring of the TI-SCI driver.
Patches 01-11:
The first part of the series refactors a lot of common code from each of
the TI-SCI message functions into a single place (get_one_xfer() and
do_xfer()). Result is removal of net ~740 lines (~20% of the whole driver
size) without changing functionality.
Patches 12-15:
The second part of the series does some preparatory work for being able
to break down the single large TI-SCI file into smaller files.
Patches 16-22:
The third and final part of the series breaks down the single large
ti_sci.c file into smaller logical files: ti_sci core, device, clock,
pm, rm, and proc. This allows for better readability and maintenance.
Note:
Since the [PATCH 10/22] (first part of the cleanup) now passes local
stack values as part of request, the following[0] patch series
in the underlying mbox layer is ideally needed. It is better for those
patches to be picked to avoid any KASAN warnings and possible duplicate
message resends.
[0]: https://lore.kernel.org/all/20260930143810.2419010-1-b-padhi@xxxxxx
v2: Changelog:
1. Fix build for arm32 platforms like keystone by including appropriate
headers in ti_sci_rm.c in [PATCH v2 21/22].
Link to v1:
https://lore.kernel.org/all/20260929201746.4078803-1-b-padhi@xxxxxx/
Testing Done:
- Boot tested on all TI K3 SoCs.
- Boot tested on Keystone platforms like K2G-EVM, K2G-ICE, K2HK-EVM.
- Tested some of the Core, Device, Clock, and Proc ops with remoteproc
- Tested each patch for no new warnings or errors.
Logs:
https://gist.github.com/3V3RYONE/b8ef9d63eaa45db251dc84306b1451e0
Thanks,
Beleswar
Andrew Davis (18):
firmware: ti_sci: Move error message handling into
ti_sci_get_one_xfer()
firmware: ti_sci: Move error message handling into ti_sci_do_xfer()
firmware: ti_sci: Move check for ACK into ti_sci_do_xfer()
firmware: ti_sci: Remove out of place RM debug messages
firmware: ti_sci: Name response variable resp for consistency
firmware: ti_sci: Handle xfer cleanup inside ti_sci_do_xfer()
firmware: ti_sci: Pass request struct into ti_sci_do_xfer()
firmware: ti_sci: Combine xfer allocation and transfer functions
firmware: ti_sci: Fetch info struct from handle inside
ti_sci_do_xfer()
firmware: ti_sci: Use tx_message as message buffer directly
firmware: ti_sci: Use rx_message as message receive buffer
firmware: ti_sci: Do not export reboot control
firmware: ti_sci: Move the huge ti_sci file into its own directory
firmware: ti: ti_sci: Add missing includes for self-contained headers
firmware: ti: ti_sci_device: Move device ops into its own file
firmware: ti: ti_sci_clock: Move clock ops into its own file
firmware: ti: ti_sci_pm: Move pm ops into its own file
firmware: ti: ti_sci_rm: Move rm ops into its own file
Beleswar Padhi (4):
firmware: ti_sci: Fix some kernel-doc references in structs
soc: ti: ti_sci_protocol.h: Add missing documentation for structs
firmware: ti_sci: Use pmops fxn pointers in suspend/resume hooks
firmware: ti: ti_sci_proc: Move processor ops into its own file
MAINTAINERS | 2 +-
drivers/firmware/Kconfig | 17 +-
drivers/firmware/Makefile | 2 +-
drivers/firmware/ti/Kconfig | 17 +
drivers/firmware/ti/Makefile | 9 +
drivers/firmware/{ => ti}/ti_sci.h | 258 +-
drivers/firmware/ti/ti_sci_clock.c | 553 +++
drivers/firmware/ti/ti_sci_core.c | 1320 ++++++++
drivers/firmware/ti/ti_sci_device.c | 388 +++
drivers/firmware/ti/ti_sci_pm.c | 145 +
drivers/firmware/ti/ti_sci_proc.c | 214 ++
drivers/firmware/ti/ti_sci_rm.c | 910 +++++
drivers/firmware/ti_sci.c | 4259 ------------------------
include/linux/soc/ti/ti_sci_protocol.h | 389 ++-
14 files changed, 4121 insertions(+), 4362 deletions(-)
create mode 100644 drivers/firmware/ti/Kconfig
create mode 100644 drivers/firmware/ti/Makefile
rename drivers/firmware/{ => ti}/ti_sci.h (89%)
create mode 100644 drivers/firmware/ti/ti_sci_clock.c
create mode 100644 drivers/firmware/ti/ti_sci_core.c
create mode 100644 drivers/firmware/ti/ti_sci_device.c
create mode 100644 drivers/firmware/ti/ti_sci_pm.c
create mode 100644 drivers/firmware/ti/ti_sci_proc.c
create mode 100644 drivers/firmware/ti/ti_sci_rm.c
delete mode 100644 drivers/firmware/ti_sci.c
--
2.34.1