aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStanimir Varbanov <stanimir.varbanov@linaro.org>2021-01-13 16:39:50 +0000
committerBryan O'Donoghue <bryan.odonoghue@linaro.org>2021-01-21 00:47:43 +0000
commit6f7f59c396b6b335fba196ede4c8e3a06aeb444c (patch)
treeca5cf29d3d647c6d50eb1af2c002d8bac0400ce3
parent726343246143fd9d10d7910735ec3f297be910f6 (diff)
media: venus: Fix decoder cmd STOP issuetracking-qcomlt-sm8250-venus-12
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>
-rw-r--r--drivers/media/platform/qcom/venus/hfi_cmds.c3
-rw-r--r--drivers/media/platform/qcom/venus/vdec.c2
2 files changed, 3 insertions, 2 deletions
diff --git a/drivers/media/platform/qcom/venus/hfi_cmds.c b/drivers/media/platform/qcom/venus/hfi_cmds.c
index 1a93a9b579c5..017c4f950c15 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);
@@ -1248,6 +1248,7 @@ pkt_session_set_property_6xx(struct hfi_session_set_property_pkt *pkt,
info->plane_format[1] = in->plane_format[1];
pkt->shdr.hdr.size += sizeof(u32) + sizeof(*info);
+ break;
}
case HFI_PROPERTY_CONFIG_HEIC_FRAME_QUALITY: {
struct hfi_heic_frame_quality *in = pdata, *cq = prop_data;
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);