Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e6119d50 authored by Petar Sivenov's avatar Petar Sivenov
Browse files

msm: camera: isp: skip overflow when no stream is active



This patch skips overflow recovery sequence if there are no active
streams.
The ISP Overflow recovery mechanism disables IRQs and send a message
to userspace to initiate stream restarting sequence. However if
overflow happens just after last stream is stopped, this leads to
invalid state because:
  - during overflow in kernel irqs are skipped, so kernel cannot
        complete stop sequence.
  - during stop userspace drops overflow restart requests from
        kernel. So restart will not take place and kernel won't
        leave overflow state.
Actually the restarting of streams is not needed, if we have none.

Change-Id: Ie8e70f6994820b44546e24456668d52819b0ce37
Signed-off-by: default avatarPetar Sivenov <psiven@codeaurora.org>
parent ccc80175
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -1281,6 +1281,10 @@ static void msm_isp_process_overflow_irq(
{
	uint32_t overflow_mask;

	/* if there are no active streams - do not start recovery */
	if (!vfe_dev->axi_data.num_active_stream)
		return;

	/*Mask out all other irqs if recovery is started*/
	if (atomic_read(&vfe_dev->error_info.overflow_state) != NO_OVERFLOW) {
		uint32_t halt_restart_mask0, halt_restart_mask1;