[COMMON] media: smfc: cancel queued buffers in .stop_streaming()
authorCho KyongHo <pullip.cho@samsung.com>
Tue, 21 Apr 2015 05:17:28 +0000 (14:17 +0900)
committerCosmin Tanislav <demonsingur@gmail.com>
Mon, 22 Apr 2024 17:22:18 +0000 (20:22 +0300)
commitcb95bf7d6bdd0c389717df9c23a0dc19eee36394
tree17ee6d51eaa2e4354b76841dce7a75e76eb93c51
parent5068329da510d0a7ec1ba8979e1131de9fe1c5a7
[COMMON] media: smfc: cancel queued buffers in .stop_streaming()

stop_streaming() waits for all queued buffers to be finished. But SMFC
driver as a mem2mem device, may wait for the queued buffer of the
current vb2_queue while no buffer is queued in the other vb2_queue.
If .stop_streaming() is called in that situation, it waits for a
buffer to be queued to the other vb2_queue infinitely.
However it will never happen because no user will queue a buffer
during stopping operations on the device. Therefore, the driver
should see if other vb2_queue has a queued buffer when this vb2_queue
is stopping streaming. If the other vb2_queue has no queued buffer,
stop_streaming() should cancel all queued buffers in the current
vb2_queue.

Change-Id: I3b07916707a0b0d238a3238621fea631df8b942d
Signed-off-by: Cho KyongHo <pullip.cho@samsung.com>
drivers/media/platform/exynos/smfc/smfc.c