]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
spi: mtk_spim: clear IRQ enable bits
authorWeijie Gao <weijie.gao@mediatek.com>
Wed, 19 Jul 2023 09:16:02 +0000 (17:16 +0800)
committerTom Rini <trini@konsulko.com>
Thu, 3 Aug 2023 13:40:49 +0000 (09:40 -0400)
In u-boot we don't use IRQ. Instead, we poll busy bit in SPI_STATUS.

However these IRQ enable bits may be set in previous boot stage (BootROM).

If we leave these bits not cleared, although u-boot has disabled IRQ and
nothing will happen, the linux kernel may encounter panic during
initializing the spim driver due to IRQ event happens before IRQ handler
is properly setup.

This patch clear IRQ bits to prevent this from happening.

Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com>
Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
drivers/spi/mtk_spim.c

index 3a742d160c20bd92fafe48f542bec897f123c5f4..418e586b91d98950c257af0cc2ed48b77f25967f 100644 (file)
@@ -242,6 +242,9 @@ static int mtk_spim_hw_init(struct spi_slave *slave)
                        reg_val &= ~SPI_CMD_SAMPLE_SEL;
        }
 
+       /* Disable interrupt enable for pause mode & normal mode */
+       reg_val &= ~(SPI_CMD_PAUSE_IE | SPI_CMD_FINISH_IE);
+
        /* disable dma mode */
        reg_val &= ~(SPI_CMD_TX_DMA | SPI_CMD_RX_DMA);