Hi Hans,
Problem was that lock was held while calling dmaengine APIs, which
causes double lock issue when dma callback was called under context of
dma_async_issue_pending() (see dcmi_start_dma() & below comments).
Rest of changes are around spin_lock() changed to spin_lock_irq() for
safer lock
On 02/22/2018 10:49 AM, Hugues Fruchet wrote:
> Fix lock scheme leading to spurious freeze.
Can you elaborate a bit more? It's hard to review since you don't
describe what was wrong and why this fixes the problem.
Regards,
Hans
>
> Signed-off-by: Hugues Fruchet
> ---
> version 2:
>
Fix lock scheme leading to spurious freeze.
Signed-off-by: Hugues Fruchet
---
version 2:
- dcmi_buf_queue() refactor to avoid to have "else" after "return"
(warning detected by checkpatch.pl --strict -f stm32-dcmi.c)
drivers/media/platform/stm32/stm32-dcmi.c | 57 +