Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3730c05e authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "platform: qcom-geni-se: Disable CMD_DONE in DMA mode for I2C and SPI"

parents f3ac939f d826c0a7
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -357,9 +357,12 @@ static int geni_se_select_dma_mode(void __iomem *base)
	geni_write_reg(0xFFFFFFFF, base, SE_IRQ_EN);

	common_geni_m_irq_en = geni_read_reg(base, SE_GENI_M_IRQ_EN);
	if (proto != UART)
	if (proto != UART) {
		common_geni_m_irq_en &=
			~(M_TX_FIFO_WATERMARK_EN | M_RX_FIFO_WATERMARK_EN);
		if (proto != I3C)
			common_geni_m_irq_en &= ~M_CMD_DONE_EN;
	}

	geni_write_reg(common_geni_m_irq_en, base, SE_GENI_M_IRQ_EN);
	geni_dma_mode = geni_read_reg(base, SE_GENI_DMA_MODE_EN);
@@ -478,6 +481,14 @@ EXPORT_SYMBOL(geni_setup_s_cmd);
 */
void geni_cancel_m_cmd(void __iomem *base)
{
	unsigned int common_geni_m_irq_en;
	int proto = get_se_proto(base);

	if (proto != UART && proto != I3C) {
		common_geni_m_irq_en = geni_read_reg(base, SE_GENI_M_IRQ_EN);
		common_geni_m_irq_en &= ~M_CMD_DONE_EN;
		geni_write_reg(common_geni_m_irq_en, base, SE_GENI_M_IRQ_EN);
	}
	geni_write_reg(M_GENI_CMD_CANCEL, base, SE_GENI_M_CMD_CTRL_REG);
}
EXPORT_SYMBOL(geni_cancel_m_cmd);