[PATCH 00/22] Cleanup and Refactor TI-SCI driver
From: Beleswar Padhi
Date: Tue Sep 29 2026 - 16:19:23 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/20260929200159.4033010-1-b-padhi@xxxxxx
Testing Done:
- Boot tested on TI K3 J784S4 EVM.
- Tested some of the Core, Device, Clock, and Proc ops with remoteproc
- Tested each patch for no new warnings or errors.
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 | 907 +++++
drivers/firmware/ti_sci.c | 4259 ------------------------
include/linux/soc/ti/ti_sci_protocol.h | 389 ++-
14 files changed, 4118 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