mirror of
https://github.com/apache/nuttx.git
synced 2026-05-10 23:40:21 +08:00
929acd26e0
Fix several issues in the ESP32-S3 CAM driver: - stop_capture: reset DMA channel, CAM module and AFIFO under spinlock to fully quiesce hardware before returning. Clear pending VSYNC interrupt to prevent stale ISR firing. - uninit: reset CAM/AFIFO before releasing DMA to prevent in-flight transfers after channel detach. Use esp_teardown_irq with correct peripheral ID (ESP32S3_PERIPH_LCD_CAM) instead of irq_detach which corrupts the shared IRQ mapping table. Mask interrupts and clear pending flags under spinlock before detaching handler. - uninit: preserve XCLK output so the sensor remains accessible via I2C for subsequent re-initialization. - set_buf/uninit: track driver-allocated vs user-provided frame buffers with fb_allocated flag to prevent double-free when using V4L2 USERPTR mode. Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>