usb: dwc3: set dma_mask for dwc3_omap device
authorKishon Vijay Abraham I <kishon@ti.com>
Thu, 7 Mar 2013 13:21:43 +0000 (18:51 +0530)
committerFelipe Balbi <balbi@ti.com>
Mon, 18 Mar 2013 09:18:14 +0000 (11:18 +0200)
*dma_mask* is not set for devices created from dt data. So filled dma_mask
for dwc3_omap device here. And dwc3 core will copy the dma_mask from its
parent.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/dwc3/core.c
drivers/usb/dwc3/dwc3-omap.c

index 66c05725daf3b3aee5c9f0761eb5a865750199ad..c845e7087069fc6407f09d54c3b463f786daf6df 100644 (file)
@@ -454,6 +454,10 @@ static int dwc3_probe(struct platform_device *pdev)
        dwc->regs_size  = resource_size(res);
        dwc->dev        = dev;
 
+       dev->dma_mask   = dev->parent->dma_mask;
+       dev->dma_parms  = dev->parent->dma_parms;
+       dma_set_coherent_mask(dev, dev->parent->coherent_dma_mask);
+
        if (!strncmp("super", maximum_speed, 5))
                dwc->maximum_speed = DWC3_DCFG_SUPERSPEED;
        else if (!strncmp("high", maximum_speed, 4))
index 35b9673b84dfc7f3c0537b69201598073c7edebb..546f1fd84920112fc8b30d1281bb040072d54b85 100644 (file)
@@ -277,6 +277,8 @@ static void dwc3_omap_disable_irqs(struct dwc3_omap *omap)
        dwc3_omap_writel(omap->base, USBOTGSS_IRQENABLE_SET_0, 0x00);
 }
 
+static u64 dwc3_omap_dma_mask = DMA_BIT_MASK(32);
+
 static int dwc3_omap_probe(struct platform_device *pdev)
 {
        struct device_node      *node = pdev->dev.of_node;
@@ -330,6 +332,7 @@ static int dwc3_omap_probe(struct platform_device *pdev)
        omap->dev       = dev;
        omap->irq       = irq;
        omap->base      = base;
+       dev->dma_mask   = &dwc3_omap_dma_mask;
 
        /*
         * REVISIT if we ever have two instances of the wrapper, we will be