media: s5p-mfc: Support for handling RET_ENC_BUFFER_FULL interrupt
authorAakarsh Jain <aakarsh.jain@samsung.com>
Wed, 5 Mar 2025 05:53:08 +0000 (11:23 +0530)
committerHans Verkuil <hverkuil@xs4all.nl>
Fri, 25 Apr 2025 13:14:27 +0000 (15:14 +0200)
commit728c0d50994764a3783ce4993b54e4e2855aab3b
tree8452623c0500a767d815664394b03c6e37c482a5
parentc09acbbfff2037fe594396388e0c28eeeca79012
media: s5p-mfc: Support for handling RET_ENC_BUFFER_FULL interrupt

When output encoded buffer size provided by userspace
is insufficient with current encoding parameters, it
leads to RET_ENC_BUFFER_FULL interrupt which was not
handled in IRQ handler.

On handling of RET_ENC_BUFFER_FULL interrupt leads to
NAL_ABORT command from host to risc which in turn leads
to RET_NAL_ABORT interrupt. On receiving RET_NAL_ABORT
driver clears workbit and VB2 queues for cleaner closing
of MFC instance.

When user encounters "Call on DQBUF after unrecoverable
error", userspace should close fd and restart with larger
output encoder buffer size.

Signed-off-by: Aakarsh Jain <aakarsh.jain@samsung.com>
Acked-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
drivers/media/platform/samsung/s5p-mfc/regs-mfc-v6.h
drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c
drivers/media/platform/samsung/s5p-mfc/s5p_mfc_common.h
drivers/media/platform/samsung/s5p-mfc/s5p_mfc_opr_v6.c