Parcourir la source

msm: eva: Reduce HFI processing timeout to 1s

From original 2s. It enables CPU and DSP communication timeout
to 1.5s.

Change-Id: I33cba756e95cd2cc535927960610c1dab26d4242
Signed-off-by: George Shen <[email protected]>
George Shen il y a 1 an
Parent
commit
1028da124c
4 fichiers modifiés avec 4 ajouts et 96 suppressions
  1. 0 8
      msm/eva/msm_cvp_buf.c
  2. 0 70
      msm/eva/msm_cvp_dsp.c
  3. 2 17
      msm/eva/msm_cvp_dsp.h
  4. 2 1
      msm/eva/msm_cvp_platform.c

+ 0 - 8
msm/eva/msm_cvp_buf.c

@@ -1998,14 +1998,6 @@ int msm_cvp_session_deinit_buffers(struct msm_cvp_inst *inst)
 	list_for_each_entry_safe(cbuf, dummy, &inst->cvpdspbufs.list, list) {
 		print_internal_buffer(CVP_MEM, "remove dspbufs", inst, cbuf);
 		if (cbuf->ownership == CLIENT) {
-			rc = cvp_dsp_deregister_buffer(hash32_ptr(session),
-				cbuf->fd, cbuf->smem->dma_buf->size, cbuf->size,
-				cbuf->offset, cbuf->index,
-				(uint32_t)cbuf->smem->device_addr);
-			if (rc)
-				dprintk(CVP_ERR,
-				"%s: failed dsp deregistration fd=%d rc=%d",
-				__func__, cbuf->fd, rc);
 			msm_cvp_unmap_smem(inst, cbuf->smem, "unmap dsp");
 			msm_cvp_smem_put_dma_buf(cbuf->smem->dma_buf);
 		} else if (cbuf->ownership == DSP) {

+ 0 - 70
msm/eva/msm_cvp_dsp.c

@@ -675,76 +675,6 @@ exit:
 	return rc;
 }
 
-int cvp_dsp_deregister_buffer(uint32_t session_id, uint32_t buff_fd,
-			uint32_t buff_fd_size, uint32_t buff_size,
-			uint32_t buff_offset, uint32_t buff_index,
-			uint32_t buff_fd_iova)
-{
-	struct cvp_dsp_cmd_msg cmd;
-	int rc;
-	struct cvp_dsp_apps *me = &gfa_cv;
-	struct cvp_dsp_rsp_msg rsp;
-	bool retried = false;
-
-	cmd.type = CPU2DSP_DEREGISTER_BUFFER;
-	cmd.session_id = session_id;
-	cmd.buff_fd = buff_fd;
-	cmd.buff_fd_size = buff_fd_size;
-	cmd.buff_size = buff_size;
-	cmd.buff_offset = buff_offset;
-	cmd.buff_index = buff_index;
-	cmd.buff_fd_iova = buff_fd_iova;
-
-	dprintk(CVP_DSP,
-		"%s: type=0x%x, buff_fd_iova=0x%x buff_index=0x%x\n",
-		__func__, cmd.type, buff_fd_iova,
-		cmd.buff_index);
-	dprintk(CVP_DSP, "%s: buff_size=0x%x session_id=0x%x\n",
-		__func__, cmd.buff_size, cmd.session_id);
-
-	mutex_lock(&me->tx_lock);
-retry:
-	rc = cvp_dsp_send_cmd_sync(&cmd, sizeof(struct cvp_dsp_cmd_msg), &rsp);
-	if (rc) {
-		dprintk(CVP_ERR, "%s send failed rc = %d\n", __func__, rc);
-		goto exit;
-	}
-
-	if (rsp.ret == CPU2DSP_EFAIL || rsp.ret == CPU2DSP_EUNSUPPORTED) {
-		dprintk(CVP_WARN, "%s, DSP return err %d\n", __func__, rsp.ret);
-		rc = -EINVAL;
-		goto exit;
-	}
-
-	if (rsp.ret == CPU2DSP_EUNAVAILABLE)
-		goto fatal_exit;
-
-	if (rsp.ret == CPU2DSP_EFATAL) {
-		if (!retried) {
-			mutex_unlock(&me->tx_lock);
-			retried = true;
-			rc = cvp_reinit_dsp();
-			mutex_lock(&me->tx_lock);
-			if (rc)
-				goto fatal_exit;
-			else
-				goto retry;
-		} else {
-			goto fatal_exit;
-		}
-	}
-
-	goto exit;
-
-fatal_exit:
-	me->state = DSP_INVALID;
-	cvp_hyp_assign_from_dsp();
-	rc = -ENOTSUPP;
-exit:
-	mutex_unlock(&me->tx_lock);
-	return rc;
-}
-
 static const struct rpmsg_device_id cvp_dsp_rpmsg_match[] = {
 	{ CVP_APPS_DSP_GLINK_GUID },
 	{ },

+ 2 - 17
msm/eva/msm_cvp_dsp.h

@@ -1,6 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 /*
  * Copyright (c) 2018-2021, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
 #ifndef MSM_CVP_DSP_H
@@ -48,7 +49,7 @@ struct fastrpc_driver {
 #define DSP_VM_NUM 2
 #define CVP_DSP_MAX_RESERVED 5
 #define CVP_DSP2CPU_RESERVED 8
-#define CVP_DSP_RESPONSE_TIMEOUT 300
+#define CVP_DSP_RESPONSE_TIMEOUT 600
 #define CVP_INVALID_RPMSG_TYPE 0xBADDFACE
 #define MAX_FRAME_BUF_NUM 16
 
@@ -267,22 +268,6 @@ int cvp_dsp_resume(void);
  */
 int cvp_dsp_shutdown(void);
 
-/*
- * API to de-register iova buffer address from CDSP
- *
- * @session_id:     cvp session id
- * @buff_fd:        buffer fd
- * @buff_fd_size:   total size of fd in bytes
- * @buff_size:      size in bytes of cvp buffer
- * @buff_offset:    buffer offset
- * @buff_index:     buffer index
- * @iova_buff_addr: IOVA buffer address
- */
-int cvp_dsp_deregister_buffer(uint32_t session_id, uint32_t buff_fd,
-			uint32_t buff_fd_size, uint32_t buff_size,
-			uint32_t buff_offset, uint32_t buff_index,
-			uint32_t buff_fd_iova);
-
 int cvp_dsp_fastrpc_unmap(uint32_t handle, struct cvp_internal_buf *buf);
 
 int cvp_dsp_del_sess(uint32_t handle, struct msm_cvp_inst *inst);

+ 2 - 1
msm/eva/msm_cvp_platform.c

@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /*
  * Copyright (c) 2018-2021, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
 #include <linux/debugfs.h>
@@ -235,7 +236,7 @@ static struct msm_cvp_common_data sm8650_common_data[] = {
 	},
 	{
 		.key = "qcom,hw-resp-timeout",
-		.value = 2000,
+		.value = 1000,
 	},
 	{
 		.key = "qcom,dsp-resp-timeout",