Merge branch 'fixes' of git://git.infradead.org/users/vkoul/slave-dma

Pull slave-dmaengine fixes from Vinod Koul:
"Another week, time to send another fixes request taking time out of
extended weekend for the festivities in this part of the world.

We have two fixes from Sergei for rcar driver and one fixing memory
leak of edma driver by Geyslan"

* 'fixes' of git://git.infradead.org/users/vkoul/slave-dma:
dma: edma.c: remove edma_desc leakage
rcar-hpbdma: add parameter to set_slave() method
rcar-hpbdma: remove shdma_free_irq() calls

Changed files
+6 -4
drivers
+1
drivers/dma/edma.c
··· 306 306 EDMA_SLOT_ANY); 307 307 if (echan->slot[i] < 0) { 308 308 dev_err(dev, "Failed to allocate slot\n"); 309 + kfree(edesc); 309 310 return NULL; 310 311 } 311 312 }
+5 -4
drivers/dma/sh/rcar-hpbdma.c
··· 93 93 void __iomem *base; 94 94 const struct hpb_dmae_slave_config *cfg; 95 95 char dev_id[16]; /* unique name per DMAC of channel */ 96 + dma_addr_t slave_addr; 96 97 }; 97 98 98 99 struct hpb_dmae_device { ··· 433 432 hpb_chan->xfer_mode = XFER_DOUBLE; 434 433 } else { 435 434 dev_err(hpb_chan->shdma_chan.dev, "DCR setting error"); 436 - shdma_free_irq(&hpb_chan->shdma_chan); 437 435 return -EINVAL; 438 436 } 439 437 ··· 446 446 return 0; 447 447 } 448 448 449 - static int hpb_dmae_set_slave(struct shdma_chan *schan, int slave_id, bool try) 449 + static int hpb_dmae_set_slave(struct shdma_chan *schan, int slave_id, 450 + dma_addr_t slave_addr, bool try) 450 451 { 451 452 struct hpb_dmae_chan *chan = to_chan(schan); 452 453 const struct hpb_dmae_slave_config *sc = ··· 458 457 if (try) 459 458 return 0; 460 459 chan->cfg = sc; 460 + chan->slave_addr = slave_addr ? : sc->addr; 461 461 return hpb_dmae_alloc_chan_resources(chan, sc); 462 462 } 463 463 ··· 470 468 { 471 469 struct hpb_dmae_chan *chan = to_chan(schan); 472 470 473 - return chan->cfg->addr; 471 + return chan->slave_addr; 474 472 } 475 473 476 474 static struct shdma_desc *hpb_dmae_embedded_desc(void *buf, int i) ··· 616 614 shdma_for_each_chan(schan, &hpbdev->shdma_dev, i) { 617 615 BUG_ON(!schan); 618 616 619 - shdma_free_irq(schan); 620 617 shdma_chan_remove(schan); 621 618 } 622 619 dma_dev->chancnt = 0;