media: xilinx: Use dma_request_chan() instead dma_request_slave_channel()
dma_request_slave_channel() is a wrapper on top of dma_request_chan() eating up the error code. By using dma_request_chan() directly the driver can support deferred probing against DMA. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
parent
ceeb2e6166
commit
dea0ab3782
|
@ -725,10 +725,11 @@ int xvip_dma_init(struct xvip_composite_device *xdev, struct xvip_dma *dma,
|
|||
|
||||
/* ... and the DMA channel. */
|
||||
snprintf(name, sizeof(name), "port%u", port);
|
||||
dma->dma = dma_request_slave_channel(dma->xdev->dev, name);
|
||||
if (dma->dma == NULL) {
|
||||
dev_err(dma->xdev->dev, "no VDMA channel found\n");
|
||||
ret = -ENODEV;
|
||||
dma->dma = dma_request_chan(dma->xdev->dev, name);
|
||||
if (IS_ERR(dma->dma)) {
|
||||
ret = PTR_ERR(dma->dma);
|
||||
if (ret != -EPROBE_DEFER)
|
||||
dev_err(dma->xdev->dev, "no VDMA channel found\n");
|
||||
goto error;
|
||||
}
|
||||
|
||||
|
@ -752,7 +753,7 @@ void xvip_dma_cleanup(struct xvip_dma *dma)
|
|||
if (video_is_registered(&dma->video))
|
||||
video_unregister_device(&dma->video);
|
||||
|
||||
if (dma->dma)
|
||||
if (!IS_ERR_OR_NULL(dma->dma))
|
||||
dma_release_channel(dma->dma);
|
||||
|
||||
media_entity_cleanup(&dma->video.entity);
|
||||
|
|
Loading…
Reference in New Issue