diff options
| -rw-r--r-- | drivers/dma/sh/rcar-dmac.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar-dmac.c index 5a6b85527107..2eb65e1bf938 100644 --- a/drivers/dma/sh/rcar-dmac.c +++ b/drivers/dma/sh/rcar-dmac.c | |||
| @@ -929,11 +929,6 @@ static int rcar_dmac_alloc_chan_resources(struct dma_chan *chan) | |||
| 929 | struct rcar_dmac_chan *rchan = to_rcar_dmac_chan(chan); | 929 | struct rcar_dmac_chan *rchan = to_rcar_dmac_chan(chan); |
| 930 | int ret; | 930 | int ret; |
| 931 | 931 | ||
| 932 | INIT_LIST_HEAD(&rchan->desc.free); | ||
| 933 | INIT_LIST_HEAD(&rchan->desc.pending); | ||
| 934 | INIT_LIST_HEAD(&rchan->desc.active); | ||
| 935 | INIT_LIST_HEAD(&rchan->desc.done); | ||
| 936 | INIT_LIST_HEAD(&rchan->desc.wait); | ||
| 937 | INIT_LIST_HEAD(&rchan->desc.chunks_free); | 932 | INIT_LIST_HEAD(&rchan->desc.chunks_free); |
| 938 | INIT_LIST_HEAD(&rchan->desc.pages); | 933 | INIT_LIST_HEAD(&rchan->desc.pages); |
| 939 | 934 | ||
| @@ -970,11 +965,11 @@ static void rcar_dmac_free_chan_resources(struct dma_chan *chan) | |||
| 970 | rchan->mid_rid = -EINVAL; | 965 | rchan->mid_rid = -EINVAL; |
| 971 | } | 966 | } |
| 972 | 967 | ||
| 973 | list_splice(&rchan->desc.free, &list); | 968 | list_splice_init(&rchan->desc.free, &list); |
| 974 | list_splice(&rchan->desc.pending, &list); | 969 | list_splice_init(&rchan->desc.pending, &list); |
| 975 | list_splice(&rchan->desc.active, &list); | 970 | list_splice_init(&rchan->desc.active, &list); |
| 976 | list_splice(&rchan->desc.done, &list); | 971 | list_splice_init(&rchan->desc.done, &list); |
| 977 | list_splice(&rchan->desc.wait, &list); | 972 | list_splice_init(&rchan->desc.wait, &list); |
| 978 | 973 | ||
| 979 | list_for_each_entry(desc, &list, node) | 974 | list_for_each_entry(desc, &list, node) |
| 980 | rcar_dmac_realloc_hwdesc(rchan, desc, 0); | 975 | rcar_dmac_realloc_hwdesc(rchan, desc, 0); |
| @@ -1519,6 +1514,12 @@ static int rcar_dmac_chan_probe(struct rcar_dmac *dmac, | |||
| 1519 | 1514 | ||
| 1520 | spin_lock_init(&rchan->lock); | 1515 | spin_lock_init(&rchan->lock); |
| 1521 | 1516 | ||
| 1517 | INIT_LIST_HEAD(&rchan->desc.free); | ||
| 1518 | INIT_LIST_HEAD(&rchan->desc.pending); | ||
| 1519 | INIT_LIST_HEAD(&rchan->desc.active); | ||
| 1520 | INIT_LIST_HEAD(&rchan->desc.done); | ||
| 1521 | INIT_LIST_HEAD(&rchan->desc.wait); | ||
| 1522 | |||
| 1522 | /* Request the channel interrupt. */ | 1523 | /* Request the channel interrupt. */ |
| 1523 | sprintf(pdev_irqname, "ch%u", index); | 1524 | sprintf(pdev_irqname, "ch%u", index); |
| 1524 | irq = platform_get_irq_byname(pdev, pdev_irqname); | 1525 | irq = platform_get_irq_byname(pdev, pdev_irqname); |
