Message ID | 20210804142729.7231-6-dafna.hirschfeld@collabora.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | media: mtk-vcodec: venc: variouse bug fixes | expand |
On Wed, 2021-08-04 at 16:27 +0200, Dafna Hirschfeld wrote: > Each message sent to the VPU should raise a signal. The signal > handler sets vpu->signaled. Test the field and fail > if it is 0. I suppose you want to handle the message execution result, if ipi message can't send or acked successfully, the returned "status" of "mtk_vcodec_fw_ipi_send" will return, so I think you don't need to check "signaled" again. > > Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld@collabora.com> > --- > drivers/media/platform/mtk-vcodec/venc_vpu_if.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/platform/mtk-vcodec/venc_vpu_if.c > b/drivers/media/platform/mtk-vcodec/venc_vpu_if.c > index 234705ba7cd6..8331b1bd1971 100644 > --- a/drivers/media/platform/mtk-vcodec/venc_vpu_if.c > +++ b/drivers/media/platform/mtk-vcodec/venc_vpu_if.c > @@ -92,6 +92,7 @@ static int vpu_enc_send_msg(struct venc_vpu_inst > *vpu, void *msg, > { > int status; > > + vpu->signaled = 0; > mtk_vcodec_debug_enter(vpu); > > if (!vpu->ctx->dev->fw_handler) { > @@ -106,6 +107,8 @@ static int vpu_enc_send_msg(struct venc_vpu_inst > *vpu, void *msg, > *(uint32_t *)msg, len, status); > return -EINVAL; > } > + if (!vpu->signaled) > + return -EINVAL; > if (vpu->failure) > return -EINVAL; > > @@ -122,7 +125,6 @@ int vpu_enc_init(struct venc_vpu_inst *vpu) > mtk_vcodec_debug_enter(vpu); > > init_waitqueue_head(&vpu->wq_hd); > - vpu->signaled = 0; > vpu->failure = 0; > > status = mtk_vcodec_fw_ipi_register(vpu->ctx->dev->fw_handler, > vpu->id,
On 06.08.21 08:50, Irui Wang (王瑞) wrote: > On Wed, 2021-08-04 at 16:27 +0200, Dafna Hirschfeld wrote: >> Each message sent to the VPU should raise a signal. The signal >> handler sets vpu->signaled. Test the field and fail >> if it is 0. > > I suppose you want to handle the message execution result, if ipi > message can't send or acked successfully, the returned "status" of > "mtk_vcodec_fw_ipi_send" will return, so I think you don't need to > check "signaled" again. in that case, the field 'signaled' is not needed and can be removed So I can send a patch to remove it. Thanks, Dafna > >> >> Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld@collabora.com> >> --- >> drivers/media/platform/mtk-vcodec/venc_vpu_if.c | 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/media/platform/mtk-vcodec/venc_vpu_if.c >> b/drivers/media/platform/mtk-vcodec/venc_vpu_if.c >> index 234705ba7cd6..8331b1bd1971 100644 >> --- a/drivers/media/platform/mtk-vcodec/venc_vpu_if.c >> +++ b/drivers/media/platform/mtk-vcodec/venc_vpu_if.c >> @@ -92,6 +92,7 @@ static int vpu_enc_send_msg(struct venc_vpu_inst >> *vpu, void *msg, >> { >> int status; >> >> + vpu->signaled = 0; >> mtk_vcodec_debug_enter(vpu); >> >> if (!vpu->ctx->dev->fw_handler) { >> @@ -106,6 +107,8 @@ static int vpu_enc_send_msg(struct venc_vpu_inst >> *vpu, void *msg, >> *(uint32_t *)msg, len, status); >> return -EINVAL; >> } >> + if (!vpu->signaled) >> + return -EINVAL; >> if (vpu->failure) >> return -EINVAL; >> >> @@ -122,7 +125,6 @@ int vpu_enc_init(struct venc_vpu_inst *vpu) >> mtk_vcodec_debug_enter(vpu); >> >> init_waitqueue_head(&vpu->wq_hd); >> - vpu->signaled = 0; >> vpu->failure = 0; >> >> status = mtk_vcodec_fw_ipi_register(vpu->ctx->dev->fw_handler, >> vpu->id,
diff --git a/drivers/media/platform/mtk-vcodec/venc_vpu_if.c b/drivers/media/platform/mtk-vcodec/venc_vpu_if.c index 234705ba7cd6..8331b1bd1971 100644 --- a/drivers/media/platform/mtk-vcodec/venc_vpu_if.c +++ b/drivers/media/platform/mtk-vcodec/venc_vpu_if.c @@ -92,6 +92,7 @@ static int vpu_enc_send_msg(struct venc_vpu_inst *vpu, void *msg, { int status; + vpu->signaled = 0; mtk_vcodec_debug_enter(vpu); if (!vpu->ctx->dev->fw_handler) { @@ -106,6 +107,8 @@ static int vpu_enc_send_msg(struct venc_vpu_inst *vpu, void *msg, *(uint32_t *)msg, len, status); return -EINVAL; } + if (!vpu->signaled) + return -EINVAL; if (vpu->failure) return -EINVAL; @@ -122,7 +125,6 @@ int vpu_enc_init(struct venc_vpu_inst *vpu) mtk_vcodec_debug_enter(vpu); init_waitqueue_head(&vpu->wq_hd); - vpu->signaled = 0; vpu->failure = 0; status = mtk_vcodec_fw_ipi_register(vpu->ctx->dev->fw_handler, vpu->id,
Each message sent to the VPU should raise a signal. The signal handler sets vpu->signaled. Test the field and fail if it is 0. Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld@collabora.com> --- drivers/media/platform/mtk-vcodec/venc_vpu_if.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)