On Wed, 2021-08-04 at 16:27 +0200, Dafna Hirschfeld wrote: > 1. Fail if the function mtk_vcodec_fw_map_dm_addr > returns ERR pointer. > 2. Fail if the state from the vpu msg is either > VEN_IPI_MSG_ENC_STATE_ERROR or VEN_IPI_MSG_ENC_STATE_PART > > Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld@xxxxxxxxxxxxx> > --- > drivers/media/platform/mtk-vcodec/venc_vpu_if.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/media/platform/mtk-vcodec/venc_vpu_if.c > b/drivers/media/platform/mtk-vcodec/venc_vpu_if.c > index 32dc844d16f9..234705ba7cd6 100644 > --- a/drivers/media/platform/mtk-vcodec/venc_vpu_if.c > +++ b/drivers/media/platform/mtk-vcodec/venc_vpu_if.c > @@ -17,6 +17,8 @@ static int handle_enc_init_msg(struct venc_vpu_inst > *vpu, const void *data) > vpu->vsi = mtk_vcodec_fw_map_dm_addr(vpu->ctx->dev->fw_handler, > msg->vpu_inst_addr); > > + if (IS_ERR(vpu->vsi)) > + return PTR_ERR(vpu->vsi); > /* Firmware version field value is unspecified on MT8173. */ > if (vpu->ctx->dev->venc_pdata->chip == MTK_MT8173) > return 0; > @@ -42,6 +44,12 @@ static int handle_enc_encode_msg(struct > venc_vpu_inst *vpu, const void *data) > vpu->state = msg->state; > vpu->bs_size = msg->bs_size; > vpu->is_key_frm = msg->is_key_frm; > + if (vpu->state == VEN_IPI_MSG_ENC_STATE_ERROR || > + vpu->state == VEN_IPI_MSG_ENC_STATE_PART) { > + mtk_vcodec_err(vpu, "bad ipi-enc-state: %s", > + vpu->state == > VEN_IPI_MSG_ENC_STATE_ERROR ? "ERR" : "PART"); > + return -EINVAL; > + } Hi Dafna, This state check is useless, the enc result will check in "vpu_enc_ipi_handler". Thanks > return 0; > } >