linux/drivers/firmware/arm_scmi
Peng Fan fa8b28ba22 firmware: arm_scmi: Add support for platform to agent channel completion
On some systems the SCMI platform to agent(p2a) communication can be fully
interrupt driven. The notification(p2a) channel needs completion interrupt
to drive its notification queue at the platform. Without it, the platform
notification will not work as the platform will wait for agent indication
of clearing the channel via interrupt unlike few platforms which can poll
instead.

To support such systems, an optional unidirectional mailbox channel for
p2a reply communication. If the platform sets channel INTR flag set
indicating that it expects the agent to trigger the interrupt to acknowledge
the reciept of the notification or any p2a message, and the completion
interrupt channel is provided, send a mailbox message to the platform
after the p2a message is read and channel is freed to accept new
notifications or p2a messages.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Link: https://lore.kernel.org/r/20240510-scmi-notify-v2-2-e994cf14ef86@nxp.com
Reviewed-by: Cristian Marussi <cristian.marussi@arm.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
2024-06-14 12:14:19 +01:00
..
Kconfig pmdomain: arm_scmi: Move Kconfig options to the pmdomain subsystem 2023-11-23 17:32:53 +01:00
Makefile firmware: arm_scmi: Add basic support for SCMI v3.2 pincontrol protocol 2024-04-19 15:17:37 +01:00
base.c firmware: arm_scmi: Add protocol versioning checks 2023-12-01 16:46:10 +00:00
bus.c firmware: arm_scmi: Make scmi_bus_type const 2024-02-20 06:35:55 +00:00
clock.c firmware: arm_scmi: Update the supported clock protocol version 2024-02-22 08:17:11 +00:00
common.h firmware: arm_scmi: Add support for platform to agent channel completion 2024-06-14 12:14:19 +01:00
driver.c firmware: arm_scmi: Add basic support for SCMI v3.2 pincontrol protocol 2024-04-19 15:17:37 +01:00
mailbox.c firmware: arm_scmi: Add support for platform to agent channel completion 2024-06-14 12:14:19 +01:00
msg.c firmware: arm_scmi: Add message passing abstractions for transports 2021-08-05 10:23:23 +01:00
notify.c firmware: arm_scmi: Simplify scmi_devm_notifier_unregister 2024-03-26 11:33:33 +00:00
notify.h firmware: arm_scmi: Check for notification support 2024-02-20 06:35:55 +00:00
optee.c firmware: arm_scmi: Fix struct kernel-doc warnings in optee transport 2024-02-22 08:17:10 +00:00
perf.c firmware: arm_scmi: Log the perf domain names in the error paths 2024-03-26 11:15:55 +00:00
pinctrl.c firmware: arm_scmi: Add basic support for SCMI v3.2 pincontrol protocol 2024-04-19 15:17:37 +01:00
power.c firmware: arm_scmi: Implement is_notify_supported callback in power protocol 2024-02-20 06:35:55 +00:00
powercap.c firmware: arm_scmi: Fix wrong fastchannel initialization 2024-03-25 10:14:28 +00:00
protocols.h firmware: arm_scmi: Add basic support for SCMI v3.2 pincontrol protocol 2024-04-19 15:17:37 +01:00
raw_mode.c firmware: arm_scmi: Make raw debugfs entries non-seekable 2024-03-25 10:14:28 +00:00
raw_mode.h firmware: arm_scmi: Add per-channel raw injection support 2023-01-20 11:41:37 +00:00
reset.c firmware: arm_scmi: Implement is_notify_supported callback in reset protocol 2024-02-20 12:22:29 +00:00
scmi_power_control.c firmware: arm_scmi: Add support for system suspend in power control driver 2024-06-14 09:48:35 +01:00
sensors.c firmware: arm_scmi: Implement is_notify_supported callback in sensor protocol 2024-02-20 12:22:29 +00:00
shmem.c firmware: arm_scmi: Add support for platform to agent channel completion 2024-06-14 12:14:19 +01:00
smc.c firmware: arm_scmi: Fix double free in SMC transport cleanup path 2024-02-20 06:35:54 +00:00
system.c firmware: arm_scmi: Implement is_notify_supported callback in system power protocol 2024-02-20 06:35:55 +00:00
virtio.c firmware: arm_scmi: virtio: drop owner assignment 2024-05-22 08:31:17 -04:00
voltage.c firmware: arm_scmi: Add protocol versioning checks 2023-12-01 16:46:10 +00:00