mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
media: rkisp1: Fix IRQ handler return values
[ Upstream commit 3eb7910e1b ]
The IRQ handler rkisp1_isr() calls sub-handlers, all of which returns an
irqreturn_t value, but rkisp1_isr() ignores those values and always
returns IRQ_HANDLED.
Fix this by collecting the return values, and returning IRQ_HANDLED or
IRQ_NONE as appropriate.
Link: https://lore.kernel.org/r/20231207-rkisp-irq-fix-v3-2-358a2c871a3c@ideasonboard.com
Tested-by: Adam Ford <aford173@gmail.com> #imx8mp-beacon
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
c58cf93e87
commit
e970de0413
@@ -442,17 +442,25 @@ error:
|
|||||||
|
|
||||||
static irqreturn_t rkisp1_isr(int irq, void *ctx)
|
static irqreturn_t rkisp1_isr(int irq, void *ctx)
|
||||||
{
|
{
|
||||||
|
irqreturn_t ret = IRQ_NONE;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Call rkisp1_capture_isr() first to handle the frame that
|
* Call rkisp1_capture_isr() first to handle the frame that
|
||||||
* potentially completed using the current frame_sequence number before
|
* potentially completed using the current frame_sequence number before
|
||||||
* it is potentially incremented by rkisp1_isp_isr() in the vertical
|
* it is potentially incremented by rkisp1_isp_isr() in the vertical
|
||||||
* sync.
|
* sync.
|
||||||
*/
|
*/
|
||||||
rkisp1_capture_isr(irq, ctx);
|
|
||||||
rkisp1_isp_isr(irq, ctx);
|
|
||||||
rkisp1_csi_isr(irq, ctx);
|
|
||||||
|
|
||||||
return IRQ_HANDLED;
|
if (rkisp1_capture_isr(irq, ctx) == IRQ_HANDLED)
|
||||||
|
ret = IRQ_HANDLED;
|
||||||
|
|
||||||
|
if (rkisp1_isp_isr(irq, ctx) == IRQ_HANDLED)
|
||||||
|
ret = IRQ_HANDLED;
|
||||||
|
|
||||||
|
if (rkisp1_csi_isr(irq, ctx) == IRQ_HANDLED)
|
||||||
|
ret = IRQ_HANDLED;
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char * const px30_isp_clks[] = {
|
static const char * const px30_isp_clks[] = {
|
||||||
|
|||||||
Reference in New Issue
Block a user