summaryrefslogtreecommitdiffstats
path: root/target/linux/ipq806x/patches-3.18/150-dmaengine-Rework-dma_chan_get.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ipq806x/patches-3.18/150-dmaengine-Rework-dma_chan_get.patch')
-rw-r--r--target/linux/ipq806x/patches-3.18/150-dmaengine-Rework-dma_chan_get.patch70
1 files changed, 0 insertions, 70 deletions
diff --git a/target/linux/ipq806x/patches-3.18/150-dmaengine-Rework-dma_chan_get.patch b/target/linux/ipq806x/patches-3.18/150-dmaengine-Rework-dma_chan_get.patch
deleted file mode 100644
index 880e67c46b..0000000000
--- a/target/linux/ipq806x/patches-3.18/150-dmaengine-Rework-dma_chan_get.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From d2f4f99db3e9ec8b063cf2e45704e2bb95428317 Mon Sep 17 00:00:00 2001
-From: Maxime Ripard <maxime.ripard@free-electrons.com>
-Date: Mon, 17 Nov 2014 14:41:58 +0100
-Subject: [PATCH] dmaengine: Rework dma_chan_get
-
-dma_chan_get uses a rather interesting error handling and code path.
-
-Change it to something more usual in the kernel.
-
-Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
-Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-Signed-off-by: Vinod Koul <vinod.koul@intel.com>
----
- drivers/dma/dmaengine.c | 36 +++++++++++++++++++-----------------
- 1 file changed, 19 insertions(+), 17 deletions(-)
-
---- a/drivers/dma/dmaengine.c
-+++ b/drivers/dma/dmaengine.c
-@@ -222,31 +222,33 @@ static void balance_ref_count(struct dma
- */
- static int dma_chan_get(struct dma_chan *chan)
- {
-- int err = -ENODEV;
- struct module *owner = dma_chan_to_owner(chan);
-+ int ret;
-
-+ /* The channel is already in use, update client count */
- if (chan->client_count) {
- __module_get(owner);
-- err = 0;
-- } else if (try_module_get(owner))
-- err = 0;
-+ goto out;
-+ }
-
-- if (err == 0)
-- chan->client_count++;
-+ if (!try_module_get(owner))
-+ return -ENODEV;
-
- /* allocate upon first client reference */
-- if (chan->client_count == 1 && err == 0) {
-- int desc_cnt = chan->device->device_alloc_chan_resources(chan);
--
-- if (desc_cnt < 0) {
-- err = desc_cnt;
-- chan->client_count = 0;
-- module_put(owner);
-- } else if (!dma_has_cap(DMA_PRIVATE, chan->device->cap_mask))
-- balance_ref_count(chan);
-- }
--
-- return err;
-+ ret = chan->device->device_alloc_chan_resources(chan);
-+ if (ret < 0)
-+ goto err_out;
-+
-+ if (!dma_has_cap(DMA_PRIVATE, chan->device->cap_mask))
-+ balance_ref_count(chan);
-+
-+out:
-+ chan->client_count++;
-+ return 0;
-+
-+err_out:
-+ module_put(owner);
-+ return ret;
- }
-
- /**