mirror-linux/include/linux/firmware
Muhammad Amirul Asyraf Mohamad Jamian 22fd7f7fed firmware: stratix10-svc: Add Multi SVC clients support
In the current implementation, SVC client drivers such as socfpga-hwmon,
intel_fcs, stratix10-soc, stratix10-rsu each send an SMC command that
triggers a single thread in the stratix10-svc driver. Upon receiving a
callback, the initiating client driver sends a stratix10-svc-done signal,
terminating the thread without waiting for other pending SMC commands to
complete. This leads to a timeout issue in the firmware SVC mailbox service
when multiple client drivers send SMC commands concurrently.

To resolve this issue, a dedicated thread is now created per channel. The
stratix10-svc driver will support up to the number of channels defined by
SVC_NUM_CHANNEL. Thread synchronization is handled using a mutex to prevent
simultaneous issuance of SMC commands by multiple threads.

SVC_NUM_DATA_IN_FIFO is reduced from 32 to 8, since each channel now has
its own dedicated FIFO and the SDM processes commands one at a time.
8 entries per channel is sufficient while keeping the total aggregate
capacity the same (4 channels x 8 = 32 entries).

Additionally, a thread task is now validated before invoking kthread_stop
when the user aborts, ensuring safe termination.

Timeout values have also been adjusted to accommodate the increased load
from concurrent client driver activity.

Fixes: 7ca5ce8965 ("firmware: add Intel Stratix10 service layer driver")
Cc: stable@vger.kernel.org
Signed-off-by: Ang Tien Sung <tien.sung.ang@altera.com>
Signed-off-by: Fong, Yan Kei <yankei.fong@altera.com>
Signed-off-by: Muhammad Amirul Asyraf Mohamad Jamian <muhammad.amirul.asyraf.mohamad.jamian@altera.com>
Link: https://lore.kernel.org/all/20260305093151.2678-1-muhammad.amirul.asyraf.mohamad.jamian@altera.com
Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
2026-03-10 11:32:31 -05:00
..
broadcom
cirrus firmware: cs_dsp: mock_bin: Add function to create long-offset patches 2026-01-05 13:18:28 +00:00
imx ASoC: fsl_sai: Add AUDMIX mode support on i.MX952 2026-01-26 12:09:19 +00:00
intel firmware: stratix10-svc: Add Multi SVC clients support 2026-03-10 11:32:31 -05:00
mediatek ASoC: SOF: mediatek: Constify struct mtk_adsp_ipc_ops 2024-06-17 13:08:31 +01:00
meson drivers: meson: sm: correct meson_sm_* API retval handling 2023-09-11 11:45:26 +02:00
qcom firmware: qcom_scm: Add qcom_scm_pas_get_rsc_table() to get resource table 2026-01-13 12:14:34 -06:00
samsung firmware: exynos-acpm: add empty method to allow compile test 2025-10-22 07:49:38 +02:00
thead firmware: thead: Add AON firmware protocol driver 2025-03-13 14:41:32 +01:00
trusted_foundations.h
xlnx-event-manager.h soc: xilinx: Add cb event for subsystem restart 2024-06-03 13:07:56 +02:00
xlnx-zynqmp-crypto.h firmware: xilinx: Add firmware API's to support aes-gcm in Versal device 2026-01-23 13:48:43 +08:00
xlnx-zynqmp-ufs.h scsi: firmware: xilinx: Add APIs for UFS PHY initialization 2025-10-29 23:00:48 -04:00
xlnx-zynqmp.h firmware: zynqmp: Move crypto API's to separate file 2026-01-23 13:48:43 +08:00