Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1730813
| From | Peter Ujfalusi <peter.ujfalusi@ti.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 2/5] dmaengine: omap-dma: Implement protection for invalid max_burst |
| Date | 2017-09-12 12:50 +0200 |
| Message-ID | <uoQVs-ah-13@gated-at.bofh.it> (permalink) |
| References | <uoQVr-ah-5@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Set the device's max_burst to 16777215 (EN is 24bit unsigned value) so clients can take this into consideration when setting up the trasnfer. During slave transfer preparation check if the requested maxburst is valid. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> --- drivers/dma/omap-dma.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/dma/omap-dma.c b/drivers/dma/omap-dma.c index 8c1665c8fe33..f6dd849159d8 100644 --- a/drivers/dma/omap-dma.c +++ b/drivers/dma/omap-dma.c @@ -1288,6 +1288,10 @@ static int omap_dma_slave_config(struct dma_chan *chan, struct dma_slave_config cfg->dst_addr_width == DMA_SLAVE_BUSWIDTH_8_BYTES) return -EINVAL; + if (cfg->src_maxburst > chan->device->max_burst || + cfg->dst_maxburst > chan->device->max_burst) + return -EINVAL; + memcpy(&c->cfg, cfg, sizeof(c->cfg)); return 0; @@ -1482,6 +1486,7 @@ static int omap_dma_probe(struct platform_device *pdev) od->ddev.dst_addr_widths = OMAP_DMA_BUSWIDTHS; od->ddev.directions = BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_DEV); od->ddev.residue_granularity = DMA_RESIDUE_GRANULARITY_BURST; + od->ddev.max_burst = SZ_16M - 1; /* CCEN: 24bit unsigned */ od->ddev.dev = &pdev->dev; INIT_LIST_HEAD(&od->ddev.channels); spin_lock_init(&od->lock); -- 2.14.1 Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 0/5] dmaengine: core/edma/omap-dma: maximum SG len reporting Peter Ujfalusi <peter.ujfalusi@ti.com> - 2017-09-12 12:50 +0200
[PATCH 3/5] dmaengine: Support for querying maximum trasnfer length (of an SG element) Peter Ujfalusi <peter.ujfalusi@ti.com> - 2017-09-12 12:50 +0200
Re: [PATCH 3/5] dmaengine: Support for querying maximum trasnfer length (of an SG element) Vinod Koul <vinod.koul@intel.com> - 2017-09-21 19:20 +0200
Re: [PATCH 3/5] dmaengine: Support for querying maximum trasnfer length (of an SG element) Peter Ujfalusi <peter.ujfalusi@ti.com> - 2017-09-22 11:50 +0200
[PATCH 4/5] dmaengine: edma: Implement device_get_max_len callback Peter Ujfalusi <peter.ujfalusi@ti.com> - 2017-09-12 12:50 +0200
[PATCH 1/5] dmaengine: edma: Implement protection for invalid max_burst Peter Ujfalusi <peter.ujfalusi@ti.com> - 2017-09-12 12:50 +0200
Re: [PATCH 1/5] dmaengine: edma: Implement protection for invalid max_burst Vinod Koul <vinod.koul@intel.com> - 2017-09-21 19:40 +0200
[PATCH 2/5] dmaengine: omap-dma: Implement protection for invalid max_burst Peter Ujfalusi <peter.ujfalusi@ti.com> - 2017-09-12 12:50 +0200
Re: [PATCH 2/5] dmaengine: omap-dma: Implement protection for invalid max_burst Vinod Koul <vinod.koul@intel.com> - 2017-09-21 19:40 +0200
[PATCH 5/5] dmaengine: omap-dma: Implement device_get_max_len callback Peter Ujfalusi <peter.ujfalusi@ti.com> - 2017-09-12 12:50 +0200
csiph-web