diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-09-07 17:03:05 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-09-07 17:03:05 -0400 |
| commit | cd7b34fe1c2d93c54b368c295de88612c0b7120b (patch) | |
| tree | 63e7726e2b437c79a53d1b3528d4dc685d3f84e3 /drivers/dma/k3dma.c | |
| parent | 75c727155ce1239c1417ba32a48c796de0d762d4 (diff) | |
| parent | 41bd0314fa3a458bee7ad768d079e681316332e7 (diff) | |
Merge tag 'dmaengine-4.14-rc1' of git://git.infradead.org/users/vkoul/slave-dma
Pull dmaengine updates from Vinod Koul:
"This one features the usual updates to the drivers and one good part
of removing DA_SG from core as it has no users.
Summary:
- Remove DMA_SG support as we have no users for this feature
- New driver for Altera / Intel mSGDMA IP core
- Support for memset in dmatest and qcom_hidma driver
- Update for non cyclic mode in k3dma, bunch of update in bam_dma,
bcm sba-raid
- Constify device ids across drivers"
* tag 'dmaengine-4.14-rc1' of git://git.infradead.org/users/vkoul/slave-dma: (52 commits)
dmaengine: sun6i: support V3s SoC variant
dmaengine: sun6i: make gate bit in sun8i's DMA engines a common quirk
dmaengine: rcar-dmac: document R8A77970 bindings
dmaengine: xilinx_dma: Fix error code format specifier
dmaengine: altera: Use macros instead of structs to describe the registers
dmaengine: ti-dma-crossbar: Fix dra7 reserve function
dmaengine: pl330: constify amba_id
dmaengine: pl08x: constify amba_id
dmaengine: bcm-sba-raid: Remove redundant SBA_REQUEST_STATE_COMPLETED
dmaengine: bcm-sba-raid: Explicitly ACK mailbox message after sending
dmaengine: bcm-sba-raid: Add debugfs support
dmaengine: bcm-sba-raid: Remove redundant SBA_REQUEST_STATE_RECEIVED
dmaengine: bcm-sba-raid: Re-factor sba_process_deferred_requests()
dmaengine: bcm-sba-raid: Pre-ack async tx descriptor
dmaengine: bcm-sba-raid: Peek mbox when we have no free requests
dmaengine: bcm-sba-raid: Alloc resources before registering DMA device
dmaengine: bcm-sba-raid: Improve sba_issue_pending() run duration
dmaengine: bcm-sba-raid: Increase number of free sba_request
dmaengine: bcm-sba-raid: Allow arbitrary number free sba_request
dmaengine: bcm-sba-raid: Remove reqs_free_count from sba_device
...
Diffstat (limited to 'drivers/dma/k3dma.c')
| -rw-r--r-- | drivers/dma/k3dma.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/drivers/dma/k3dma.c b/drivers/dma/k3dma.c index 01e25c68dd5a..01d2a750a621 100644 --- a/drivers/dma/k3dma.c +++ b/drivers/dma/k3dma.c | |||
| @@ -223,7 +223,6 @@ static irqreturn_t k3_dma_int_handler(int irq, void *dev_id) | |||
| 223 | if (c && (tc1 & BIT(i))) { | 223 | if (c && (tc1 & BIT(i))) { |
| 224 | spin_lock_irqsave(&c->vc.lock, flags); | 224 | spin_lock_irqsave(&c->vc.lock, flags); |
| 225 | vchan_cookie_complete(&p->ds_run->vd); | 225 | vchan_cookie_complete(&p->ds_run->vd); |
| 226 | WARN_ON_ONCE(p->ds_done); | ||
| 227 | p->ds_done = p->ds_run; | 226 | p->ds_done = p->ds_run; |
| 228 | p->ds_run = NULL; | 227 | p->ds_run = NULL; |
| 229 | spin_unlock_irqrestore(&c->vc.lock, flags); | 228 | spin_unlock_irqrestore(&c->vc.lock, flags); |
| @@ -274,13 +273,14 @@ static int k3_dma_start_txd(struct k3_dma_chan *c) | |||
| 274 | */ | 273 | */ |
| 275 | list_del(&ds->vd.node); | 274 | list_del(&ds->vd.node); |
| 276 | 275 | ||
| 277 | WARN_ON_ONCE(c->phy->ds_run); | ||
| 278 | WARN_ON_ONCE(c->phy->ds_done); | ||
| 279 | c->phy->ds_run = ds; | 276 | c->phy->ds_run = ds; |
| 277 | c->phy->ds_done = NULL; | ||
| 280 | /* start dma */ | 278 | /* start dma */ |
| 281 | k3_dma_set_desc(c->phy, &ds->desc_hw[0]); | 279 | k3_dma_set_desc(c->phy, &ds->desc_hw[0]); |
| 282 | return 0; | 280 | return 0; |
| 283 | } | 281 | } |
| 282 | c->phy->ds_run = NULL; | ||
| 283 | c->phy->ds_done = NULL; | ||
| 284 | return -EAGAIN; | 284 | return -EAGAIN; |
| 285 | } | 285 | } |
| 286 | 286 | ||
| @@ -722,11 +722,7 @@ static int k3_dma_terminate_all(struct dma_chan *chan) | |||
| 722 | k3_dma_free_desc(&p->ds_run->vd); | 722 | k3_dma_free_desc(&p->ds_run->vd); |
| 723 | p->ds_run = NULL; | 723 | p->ds_run = NULL; |
| 724 | } | 724 | } |
| 725 | if (p->ds_done) { | 725 | p->ds_done = NULL; |
| 726 | k3_dma_free_desc(&p->ds_done->vd); | ||
| 727 | p->ds_done = NULL; | ||
| 728 | } | ||
| 729 | |||
| 730 | } | 726 | } |
| 731 | spin_unlock_irqrestore(&c->vc.lock, flags); | 727 | spin_unlock_irqrestore(&c->vc.lock, flags); |
| 732 | vchan_dma_desc_free_list(&c->vc, &head); | 728 | vchan_dma_desc_free_list(&c->vc, &head); |
