summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobby Cai <R63905@freescale.com>2012-11-02 15:58:40 +0800
committerRobby Cai <R63905@freescale.com>2012-11-19 16:20:40 +0800
commitf664c0b85d3505e9d7190d30573fd3e153537bd3 (patch)
tree5d1837d1155ee39a8678e0cd9e16b733a577d2fd
parent82bcc6e34ec2097edf80a3775208906a331d9569 (diff)
ENGR00232000: Fix "dmaengine: failed to get dma1chan0: (-22)" when boot
The log from [MX6DL/S_SD]: ... mxc_sdc_fb mxc_sdc_fb.1: register mxc display driver ldb dmaengine: failed to get dma1chan0: (-22) dmaengine: failed to get dma1chan1: (-22) dmaengine: failed to get dma1chan2: (-22) dmaengine: failed to get dma1chan3: (-22) dmaengine: failed to get dma1chan4: (-22) dmaengine: failed to get dma1chan5: (-22) dmaengine: failed to get dma1chan6: (-22) dmaengine: failed to get dma1chan7: (-22) dmaengine: failed to get dma1chan8: (-22) dmaengine: failed to get dma1chan9: (-22) dmaengine: failed to get dma1chan10: (-22) dmaengine: failed to get dma1chan11: (-22) dmaengine: failed to get dma1chan12: (-22) dmaengine: failed to get dma1chan13: (-22) dmaengine: failed to get dma1chan14: (-22) dmaengine: failed to get dma1chan15: (-22) ... It happens when there are many DMA-engine drivers in the system and dmaengine_get() is called. dmaengine_get() will call dma_chan_get(), which will call device_alloc_chan_resources() literally on channels of available dma drivers unless reach -ENODEV. device_alloc_chan_resources() is implemented in the individual dma drivers, which could return -EINVAL rather than -ENODEV, then the above messages print out (doesn't hurt, however). Indeed, the dmaengine_get() and dmaengine_put() is not needed and thus removed. Signed-off-by: Robby Cai <R63905@freescale.com>
-rw-r--r--drivers/dma/pxp/pxp_device.c5
1 files changed, 0 insertions, 5 deletions
diff --git a/drivers/dma/pxp/pxp_device.c b/drivers/dma/pxp/pxp_device.c
index 6b3d7aa37dce..5981fa6331a9 100644
--- a/drivers/dma/pxp/pxp_device.c
+++ b/drivers/dma/pxp/pxp_device.c
@@ -477,9 +477,6 @@ static int __devinit pxp_device_probe(struct platform_device *pdev)
{
int ret;
- /* PxP DMA interface */
- dmaengine_get();
-
ret = misc_register(&pxp_device_miscdev);
if (ret)
return ret;
@@ -492,8 +489,6 @@ static int __devexit pxp_device_remove(struct platform_device *pdev)
{
misc_deregister(&pxp_device_miscdev);
- dmaengine_put();
-
return 0;
}