Message ID | 2f86258ad8393f01d27273b2f955b66ca4d49bbd.1689756363.git.weijie.gao@mediatek.com |
---|---|
State | Accepted |
Commit | b43512d0468a7e409fc2a8d5130d5a2efdee1b3f |
Delegated to: | Tom Rini |
Headers | show |
Series | Add support for MediaTek MT7988 SoC | expand |
On Wed, Jul 19, 2023 at 2:46 PM Weijie Gao <weijie.gao@mediatek.com> wrote: > > 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>
diff --git a/drivers/spi/mtk_spim.c b/drivers/spi/mtk_spim.c index 3a742d160c..418e586b91 100644 --- a/drivers/spi/mtk_spim.c +++ b/drivers/spi/mtk_spim.c @@ -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);