From: Hoegeun Kwon Date: Mon, 29 Jan 2024 02:45:44 +0000 (+0900) Subject: drm/verisilicon: vs_dc: Fix to disable interrupt on probe X-Git-Tag: accepted/tizen/unified/x/20240220.145856~27 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4b0a676b04bc3d2b39c8973b76d827f9c32bbc75;p=platform%2Fkernel%2Flinux-starfive.git drm/verisilicon: vs_dc: Fix to disable interrupt on probe There is a case where interrupt enable is set in decon req before decon probe is completed. There is a problem that a kernel panic occurs if an interrupt is executed before the decon is bound. Disable interrupts before registering interrupts. Also, irq generated when the interrupt state is disabled is ignored. Change-Id: I0b611aadf6c16ea8f850eb570f569e7bad792ce1 Signed-off-by: Hoegeun Kwon Signed-off-by: Jaehoon Chung --- diff --git a/drivers/gpu/drm/verisilicon/vs_dc.c b/drivers/gpu/drm/verisilicon/vs_dc.c index 4cf57fc0d71b..97d08a113be1 100644 --- a/drivers/gpu/drm/verisilicon/vs_dc.c +++ b/drivers/gpu/drm/verisilicon/vs_dc.c @@ -985,6 +985,8 @@ static irqreturn_t dc_isr(int irq, void *data) return IRQ_HANDLED; ret = dc_hw_get_interrupt(&dc->hw); + if (!ret) + return IRQ_HANDLED; for (i = 0; i < dc_info->panel_num; i++) drm_crtc_handle_vblank(&dc->crtc[i]->base); @@ -1163,6 +1165,8 @@ static int dc_probe(struct platform_device *pdev) return ret; } + dc_hw_enable_interrupt(&dc->hw, 0); + dc->irq = platform_get_irq(pdev, 0); /* do not autoenable, will be enabled later */