usb: dwc3: initialize platform data at pci glue layer
authorHuang Rui <ray.huang@amd.com>
Tue, 28 Oct 2014 11:54:24 +0000 (19:54 +0800)
committerFelipe Balbi <balbi@ti.com>
Mon, 3 Nov 2014 16:03:35 +0000 (10:03 -0600)
This patch initializes platform data at pci glue layer, and SoCs x86-based
platform vendor is able to define their flags in platform data at bus glue
layer. Then do some independent behaviors at dwc3 core level.

Signed-off-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/dwc3/dwc3-pci.c

index a36cf66302fbe56e06f6ed20451b8c008479b0d2..ada975f0b36574e2d877c2c330ce05dbd17d61eb 100644 (file)
@@ -25,6 +25,8 @@
 #include <linux/usb/otg.h>
 #include <linux/usb/usb_phy_generic.h>
 
+#include "platform_data.h"
+
 /* FIXME define these in <linux/pci_ids.h> */
 #define PCI_VENDOR_ID_SYNOPSYS         0x16c3
 #define PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3        0xabcd
@@ -102,6 +104,9 @@ static int dwc3_pci_probe(struct pci_dev *pci,
        struct dwc3_pci         *glue;
        int                     ret;
        struct device           *dev = &pci->dev;
+       struct dwc3_platform_data dwc3_pdata;
+
+       memset(&dwc3_pdata, 0x00, sizeof(dwc3_pdata));
 
        glue = devm_kzalloc(dev, sizeof(*glue), GFP_KERNEL);
        if (!glue)
@@ -148,6 +153,10 @@ static int dwc3_pci_probe(struct pci_dev *pci,
 
        pci_set_drvdata(pci, glue);
 
+       ret = platform_device_add_data(dwc3, &dwc3_pdata, sizeof(dwc3_pdata));
+       if (ret)
+               goto err3;
+
        dma_set_coherent_mask(&dwc3->dev, dev->coherent_dma_mask);
 
        dwc3->dev.dma_mask = dev->dma_mask;