msm: camera: isp: Handle deferred bufdone and bubble cases
- In cases where bufdone is handled without request being in
active list, there could be possibility that the request
is applied just before SOF, RUP but the context state is
not moved to applied state, at this time the request is in
wait_list. In such cases RUP event doesn't move the request
into active_list. Also, if the bufdone on a port is comes
before EPOCH, that buf_done will be dropped and then the
request will eventually be tagged as BUBBLE at the time of
EPOCH. since buf_done is dropped, the request will never
come out of BUBBLE. To handle such cases and to come out of
BUBBLE, check if BUF_DONE matches with the request in wait_list
by checking last_consumed address and if so, mark it as deferred
buf_done and handle once the request is moved to active_list.
- When there are deferred bufdones even before bubble is
detected, then such deferred bufdones need to handled during
bubble otherwise bubble request cannot be finished. This change
handles deferred bufdone in case of bubble.
CRs-Fixed: 3468612
Change-Id: I17b71f693a7d12cd7ba9dd38a94f0103c039b2d1
Signed-off-by:
Shivakumar Malke <quic_smalke@quicinc.com>
Loading
Please register or sign in to comment