From b493e2a03c1780ae1ba09a9de58474c17a33310d Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 13 May 2020 18:28:27 +0100 Subject: [PATCH] media: bcm2835-unicam: Always service interrupts From when bringing up the driver, there was a check in the isr to ignore interrupts (claiming them handled) should the driver not be streaming. The VPU now will not register a camera driver if it finds a CSI2 node enabled in device tree, therefore this flawed check is redundant. https://github.com/raspberrypi/linux/issues/3602 Signed-off-by: Dave Stevenson --- drivers/media/platform/bcm2835/bcm2835-unicam.c | 15 --------------- 1 file changed, 15 deletions(-) --- a/drivers/media/platform/bcm2835/bcm2835-unicam.c +++ b/drivers/media/platform/bcm2835/bcm2835-unicam.c @@ -772,12 +772,6 @@ static bool unicam_all_nodes_streaming(s return ret; } -static bool unicam_all_nodes_disabled(struct unicam_device *dev) -{ - return !dev->node[IMAGE_PAD].streaming && - !dev->node[METADATA_PAD].streaming; -} - static void unicam_queue_event_sof(struct unicam_device *unicam) { struct v4l2_event event = { @@ -805,15 +799,6 @@ static irqreturn_t unicam_isr(int irq, v u32 ista, sta; u64 ts; - /* - * Don't service interrupts if not streaming. - * Avoids issues if the VPU should enable the - * peripheral without the kernel knowing (that - * shouldn't happen, but causes issues if it does). - */ - if (unicam_all_nodes_disabled(unicam)) - return IRQ_NONE; - sta = reg_read(unicam, UNICAM_STA); /* Write value back to clear the interrupts */ reg_write(unicam, UNICAM_STA, sta);