summaryrefslogtreecommitdiffstats
path: root/drivers/dma
diff options
context:
space:
mode:
authorJonas Aaberg <jonas.aberg@stericsson.com>2010-06-20 23:26:59 +0200
committerDan Williams <dan.j.williams@intel.com>2010-06-23 03:01:57 +0200
commit6b7acd84426235c63a3c0f0b230a95064f97b0d4 (patch)
treee3b6e605493c387b3d522f05eb7cac0e6f5fda9d /drivers/dma
parentDMAENGINE: ste_dma40: no disabled phy channels on ux500 (diff)
downloadlinux-6b7acd84426235c63a3c0f0b230a95064f97b0d4.tar.xz
linux-6b7acd84426235c63a3c0f0b230a95064f97b0d4.zip
DMAENGINE: ste_dma40: support disabling physical channels
This makes it possible to disable physical channels. Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/dma')
-rw-r--r--drivers/dma/ste_dma40.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/dma/ste_dma40.c b/drivers/dma/ste_dma40.c
index e14c39526255..1d21fbd419d1 100644
--- a/drivers/dma/ste_dma40.c
+++ b/drivers/dma/ste_dma40.c
@@ -2230,6 +2230,14 @@ static int __init d40_phy_res_init(struct d40_base *base)
}
spin_lock_init(&base->phy_res[i].lock);
}
+
+ /* Mark disabled channels as occupied */
+ for (i = 0; base->plat_data->disabled_channels[i] != -1; i++) {
+ base->phy_res[i].allocated_src = D40_ALLOC_PHY;
+ base->phy_res[i].allocated_dst = D40_ALLOC_PHY;
+ num_phy_chans_avail--;
+ }
+
dev_info(base->dev, "%d of %d physical DMA channels available\n",
num_phy_chans_avail, base->num_phy_chans);