summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobby Cai <R63905@freescale.com>2012-11-02 15:58:40 +0800
committerJason Liu <r64343@freescale.com>2012-11-02 21:49:56 +0800
commit751d27f0da571ffc591be168fe58a992c733d412 (patch)
treef1cf5e4b2974b4324cabb3cd5a3874f11e7eae16
parent1c8b759de7d82619ea5e54faedc788c8792f0bee (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;
}