2023-09-29 12:20:33

by Ekansh Gupta

[permalink] [raw]
Subject: [PATCH v1 0/4] Add missing features to FastRPC driver

This patch series adds the listed features that have been missing
in upstream fastRPC driver.

- Add early wakeup support to allow DSP user to send early response
to CPU and improve fastrpc performance.
- Add polling mode support with which driver polls on memory to avoid
CPU from going to low power modes.
- Add notifications frameworks to provide users with the DSP PD status
notifications.
- Add a control mechanism to allow users to clean up DSP user PD

Ekansh Gupta (4):
misc: fastrpc: Add early wakeup support for fastRPC driver
misc: fastrpc: Add polling mode support for fastRPC driver
misc: fastrpc: Add DSP PD notification support
misc: fastrpc: Add support for users to clean up DSP user PD

drivers/misc/fastrpc.c | 463 ++++++++++++++++++++++++++++++++++++++++++--
include/uapi/misc/fastrpc.h | 8 +
2 files changed, 456 insertions(+), 15 deletions(-)

--
2.7.4


2023-09-29 15:27:30

by Ekansh Gupta

[permalink] [raw]
Subject: [PATCH v1 4/4] misc: fastrpc: Add support for users to clean up DSP user PD

Add a control mechanism for users to clean up DSP user PD. This
method can be used by users for handling any unexpected hang
scenarios on DSP PD. User can clean up DSP PD and restart the
user PD again.

Signed-off-by: Ekansh Gupta <[email protected]>
---
drivers/misc/fastrpc.c | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c
index 40cb867..55f5286 100644
--- a/drivers/misc/fastrpc.c
+++ b/drivers/misc/fastrpc.c
@@ -2253,6 +2253,11 @@ static int fastrpc_internal_control(struct fastrpc_user *fl,
case FASTRPC_CONTROL_RPC_POLL:
err = fastrpc_manage_poll_mode(fl, cp->lp.enable, cp->lp.latency);
break;
+ case FASTRPC_CONTROL_DSPPROCESS_CLEAN:
+ err = fastrpc_release_current_dsp_process(fl);
+ if (!err)
+ fastrpc_queue_pd_status(fl, fl->cctx->domain_id, FASTRPC_USERPD_FORCE_KILL);
+ break;
default:
err = -EBADRQC;
break;
--
2.7.4