usb: dwc3: dwc3-omap: return -EPROBE_DEFER if probe has not yet executed
authorKishon Vijay Abraham I <kishon@ti.com>
Thu, 7 Mar 2013 13:21:44 +0000 (18:51 +0530)
committerFelipe Balbi <balbi@ti.com>
Mon, 18 Mar 2013 09:18:14 +0000 (11:18 +0200)
return -EPROBE_DEFER from dwc3_omap_mailbox in dwc3-omap.c, if the probe of
dwc3-omap has not yet been executed or failed.

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

index 546f1fd84920112fc8b30d1281bb040072d54b85..2fe9723ff1dfeea8bb7720a0243d8f6c476e355b 100644 (file)
@@ -138,11 +138,14 @@ static inline void dwc3_omap_writel(void __iomem *base, u32 offset, u32 value)
        writel(value, base + offset);
 }
 
-void dwc3_omap_mailbox(enum omap_dwc3_vbus_id_status status)
+int dwc3_omap_mailbox(enum omap_dwc3_vbus_id_status status)
 {
        u32                     val;
        struct dwc3_omap        *omap = _omap;
 
+       if (!omap)
+               return -EPROBE_DEFER;
+
        switch (status) {
        case OMAP_DWC3_ID_GROUND:
                dev_dbg(omap->dev, "ID GND\n");
@@ -185,7 +188,7 @@ void dwc3_omap_mailbox(enum omap_dwc3_vbus_id_status status)
                dev_dbg(omap->dev, "ID float\n");
        }
 
-       return;
+       return 0;
 }
 EXPORT_SYMBOL_GPL(dwc3_omap_mailbox);
 
index 51eae14477f72000dcbfbca7fdbc965cafc1c405..5615f4d8272499d4cbc5d1c9850d0cc06e9bf319 100644 (file)
@@ -19,11 +19,11 @@ enum omap_dwc3_vbus_id_status {
 };
 
 #if (defined(CONFIG_USB_DWC3) || defined(CONFIG_USB_DWC3_MODULE))
-extern void dwc3_omap_mailbox(enum omap_dwc3_vbus_id_status status);
+extern int dwc3_omap_mailbox(enum omap_dwc3_vbus_id_status status);
 #else
-static inline void dwc3_omap_mailbox(enum omap_dwc3_vbus_id_status status)
+static inline int dwc3_omap_mailbox(enum omap_dwc3_vbus_id_status status)
 {
-       return;
+       return -ENODEV;
 }
 #endif