OSDN Git Service

usb: musb: do not change dev's dma_mask
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>
Mon, 22 Jul 2013 18:10:04 +0000 (20:10 +0200)
committerFelipe Balbi <balbi@ti.com>
Mon, 29 Jul 2013 10:58:16 +0000 (13:58 +0300)
Commit 8d2421e ("usb: musb: kill global and static for multi instance")
removed the global dma_mask copy and replaced by parent's DMA mask. The
problem here is that if the parent does not have a dma_mask then
musb_remove() goes kaboom.
Instead trying to fix this I was thinking we do we need to erase
dma_mask in the first place?

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/musb/musb_core.c

index 9b774e7..80ffd7e 100644 (file)
@@ -1843,10 +1843,6 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl)
        if (use_dma && dev->dma_mask)
                musb->dma_controller = dma_controller_create(musb, musb->mregs);
 
-       /* ideally this would be abstracted in platform setup */
-       if (!musb->dma_controller)
-               dev->dma_mask = NULL;
-
        /* be sure interrupts are disabled before connecting ISR */
        musb_platform_disable(musb);
        musb_generic_disable(musb);
@@ -1993,9 +1989,6 @@ static int musb_remove(struct platform_device *pdev)
 
        musb_free(musb);
        device_init_wakeup(dev, 0);
-#ifndef CONFIG_MUSB_PIO_ONLY
-       dma_set_mask(dev, *dev->parent->dma_mask);
-#endif
        return 0;
 }