Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1609260

[PATCH 1/2] dmaengine: qcom_hidma: disable/enable IRQs on pause/resume

From Sinan Kaya <okaya@codeaurora.org>
Newsgroups linux.kernel
Subject [PATCH 1/2] dmaengine: qcom_hidma: disable/enable IRQs on pause/resume
Date 2017-03-26 00:10 +0100
Message-ID <tp2YN-7Ly-1@gated-at.bofh.it> (permalink)
Organization linux.* mail to news gateway

Show all headers | View raw


Once the channels are stopped, disable interrupts to make sure no new
HW interaction can happen.

Similarly, re-enable the interrupts only if we know that channel is
operational again.

Signed-off-by: Sinan Kaya <okaya@codeaurora.org>
---
 drivers/dma/qcom/hidma_ll.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/dma/qcom/hidma_ll.c b/drivers/dma/qcom/hidma_ll.c
index 6645bdf..1530a66 100644
--- a/drivers/dma/qcom/hidma_ll.c
+++ b/drivers/dma/qcom/hidma_ll.c
@@ -499,6 +499,9 @@ int hidma_ll_enable(struct hidma_lldev *lldev)
 	lldev->trch_state = HIDMA_CH_ENABLED;
 	lldev->evch_state = HIDMA_CH_ENABLED;
 
+	/* enable irqs */
+	writel(ENABLE_IRQS, lldev->evca + HIDMA_EVCA_IRQ_EN_REG);
+
 	return 0;
 }
 
@@ -596,6 +599,9 @@ int hidma_ll_disable(struct hidma_lldev *lldev)
 
 	lldev->trch_state = HIDMA_CH_SUSPENDED;
 	lldev->evch_state = HIDMA_CH_SUSPENDED;
+
+	/* disable interrupts */
+	writel(0, lldev->evca + HIDMA_EVCA_IRQ_EN_REG);
 	return 0;
 }
 
-- 
1.9.1

Back to linux.kernel | Previous | NextNext in thread | Find similar | Unroll thread


Thread

[PATCH 1/2] dmaengine: qcom_hidma: disable/enable IRQs on pause/resume Sinan Kaya <okaya@codeaurora.org> - 2017-03-26 00:10 +0100
  [PATCH 2/2] dmaengine: qcom_hidma: pause the channel on shutdown Sinan Kaya <okaya@codeaurora.org> - 2017-03-26 00:10 +0100
  Re: [PATCH 1/2] dmaengine: qcom_hidma: disable/enable IRQs on  pause/resume Vinod Koul <vinod.koul@intel.com> - 2017-03-27 07:20 +0200

csiph-web