[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)
committerSeungchul Kim <sc377.kim@samsung.com>
Mon, 28 May 2018 05:30:55 +0000 (14:30 +0900)
commit2c8a5ba3320df9158ce2fe80a533b8b76a75250e
tree0ffc9b8da502057f1c6a2d6e9a7976e66d393421
parent5a61fdb4c13b8fde7c6806b67989448d4ffd5607
[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