diff mbox series

[25/25] media: venus: vdec: Fix decoder cmd STOP issue

Message ID 20210222160300.1811121-26-bryan.odonoghue@linaro.org
State Superseded
Headers show
Series media: venus: Enable 6xx support | expand

Commit Message

Bryan O'Donoghue Feb. 22, 2021, 4:03 p.m. UTC
From: Stanimir Varbanov <stanimir.varbanov@linaro.org>


Fixes an issue when issuing a stop command to the controller, negating the
following firmware error.

"SFR message from FW: Exception: TID = Unknown IP = 0x3b7dc FA = 0x0
 cause = 0x6"

Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>

---
 drivers/media/platform/qcom/venus/hfi_cmds.c | 2 +-
 drivers/media/platform/qcom/venus/vdec.c     | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

-- 
2.29.2

Comments

Stanimir Varbanov Feb. 26, 2021, 10:25 a.m. UTC | #1
On 2/22/21 6:03 PM, Bryan O'Donoghue wrote:
> From: Stanimir Varbanov <stanimir.varbanov@linaro.org>

> 

> Fixes an issue when issuing a stop command to the controller, negating the

> following firmware error.

> 

> "SFR message from FW: Exception: TID = Unknown IP = 0x3b7dc FA = 0x0

>  cause = 0x6"

> 

> Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>

> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>

> ---

>  drivers/media/platform/qcom/venus/hfi_cmds.c | 2 +-

>  drivers/media/platform/qcom/venus/vdec.c     | 2 +-

>  2 files changed, 2 insertions(+), 2 deletions(-)

> 

> diff --git a/drivers/media/platform/qcom/venus/hfi_cmds.c b/drivers/media/platform/qcom/venus/hfi_cmds.c

> index cc282b0df8c3..0a32bb44506c 100644

> --- a/drivers/media/platform/qcom/venus/hfi_cmds.c

> +++ b/drivers/media/platform/qcom/venus/hfi_cmds.c

> @@ -254,7 +254,7 @@ int pkt_session_unset_buffers(struct hfi_session_release_buffer_pkt *pkt,

>  int pkt_session_etb_decoder(struct hfi_session_empty_buffer_compressed_pkt *pkt,

>  			    void *cookie, struct hfi_frame_data *in_frame)

>  {

> -	if (!cookie || !in_frame->device_addr)

> +	if (!cookie)

>  		return -EINVAL;

>  

>  	pkt->shdr.hdr.size = sizeof(*pkt);

> diff --git a/drivers/media/platform/qcom/venus/vdec.c b/drivers/media/platform/qcom/venus/vdec.c

> index 903443a7a757..9fbff40c4568 100644

> --- a/drivers/media/platform/qcom/venus/vdec.c

> +++ b/drivers/media/platform/qcom/venus/vdec.c

> @@ -515,7 +515,7 @@ vdec_decoder_cmd(struct file *file, void *fh, struct v4l2_decoder_cmd *cmd)

>  

>  		fdata.buffer_type = HFI_BUFFER_INPUT;

>  		fdata.flags |= HFI_BUFFERFLAG_EOS;

> -		fdata.device_addr = 0xdeadb000;

> +		fdata.device_addr = 0;


This should be 0 for v6 only until we find some better way for this EOS
packet.

>  

>  		ret = hfi_session_process_buf(inst, &fdata);

>  

> 


-- 
regards,
Stan
diff mbox series

Patch

diff --git a/drivers/media/platform/qcom/venus/hfi_cmds.c b/drivers/media/platform/qcom/venus/hfi_cmds.c
index cc282b0df8c3..0a32bb44506c 100644
--- a/drivers/media/platform/qcom/venus/hfi_cmds.c
+++ b/drivers/media/platform/qcom/venus/hfi_cmds.c
@@ -254,7 +254,7 @@  int pkt_session_unset_buffers(struct hfi_session_release_buffer_pkt *pkt,
 int pkt_session_etb_decoder(struct hfi_session_empty_buffer_compressed_pkt *pkt,
 			    void *cookie, struct hfi_frame_data *in_frame)
 {
-	if (!cookie || !in_frame->device_addr)
+	if (!cookie)
 		return -EINVAL;
 
 	pkt->shdr.hdr.size = sizeof(*pkt);
diff --git a/drivers/media/platform/qcom/venus/vdec.c b/drivers/media/platform/qcom/venus/vdec.c
index 903443a7a757..9fbff40c4568 100644
--- a/drivers/media/platform/qcom/venus/vdec.c
+++ b/drivers/media/platform/qcom/venus/vdec.c
@@ -515,7 +515,7 @@  vdec_decoder_cmd(struct file *file, void *fh, struct v4l2_decoder_cmd *cmd)
 
 		fdata.buffer_type = HFI_BUFFER_INPUT;
 		fdata.flags |= HFI_BUFFERFLAG_EOS;
-		fdata.device_addr = 0xdeadb000;
+		fdata.device_addr = 0;
 
 		ret = hfi_session_process_buf(inst, &fdata);