Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1473604 > unrolled thread
| Started by | Sinan Kaya <okaya@codeaurora.org> |
|---|---|
| First post | 2016-08-31 17:20 +0200 |
| Last post | 2016-08-31 17:20 +0200 |
| Articles | 1 — 1 participant |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH V4 2/3] dmaengine: qcom_hidma: report transfer errors with new interface Sinan Kaya <okaya@codeaurora.org> - 2016-08-31 17:20 +0200
| From | Sinan Kaya <okaya@codeaurora.org> |
|---|---|
| Date | 2016-08-31 17:20 +0200 |
| Subject | [PATCH V4 2/3] dmaengine: qcom_hidma: report transfer errors with new interface |
| Message-ID | <scft0-44i-9@gated-at.bofh.it> |
Pass the DMA errors to the client by passing a result argument. The HW only
supports a generic error when something goes wrong. That's why, using
DMA_TRANS_ABORTED all the time.
Signed-off-by: Sinan Kaya <okaya@codeaurora.org>
---
drivers/dma/qcom/hidma.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/dma/qcom/hidma.c b/drivers/dma/qcom/hidma.c
index b8493ba..ea24863 100644
--- a/drivers/dma/qcom/hidma.c
+++ b/drivers/dma/qcom/hidma.c
@@ -126,6 +126,7 @@ static void hidma_process_completed(struct hidma_chan *mchan)
list_for_each_entry_safe(mdesc, next, &list, node) {
enum dma_status llstat;
struct dmaengine_desc_callback cb;
+ struct dmaengine_result result;
desc = &mdesc->desc;
@@ -141,10 +142,15 @@ static void hidma_process_completed(struct hidma_chan *mchan)
spin_lock_irqsave(&mchan->lock, irqflags);
list_move(&mdesc->node, &mchan->free);
- spin_unlock_irqrestore(&mchan->lock, irqflags);
if (llstat == DMA_COMPLETE)
- dmaengine_desc_callback_invoke(&cb, NULL);
+ result.result = DMA_TRANS_NOERROR;
+ else
+ result.result = DMA_TRANS_ABORTED;
+
+ spin_unlock_irqrestore(&mchan->lock, irqflags);
+
+ dmaengine_desc_callback_invoke(&cb, &result);
}
}
--
1.9.1
Back to top | Article view | linux.kernel
csiph-web