]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/usb/musb/musb_core.c
Merge tag 'armsoc-fixes-nc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm...
[karo-tx-linux.git] / drivers / usb / musb / musb_core.c
index c3e172e15ec3d9d9ec7346b972b2702fed710c65..9e226468a13eb07af0bf5a6407d81cd304436369 100644 (file)
 #include <linux/io.h>
 #include <linux/dma-mapping.h>
 #include <linux/usb.h>
+#include <linux/usb/of.h>
 
 #include "musb_core.h"
 #include "musb_trace.h"
@@ -130,6 +131,24 @@ static inline struct musb *dev_to_musb(struct device *dev)
        return dev_get_drvdata(dev);
 }
 
+enum musb_mode musb_get_mode(struct device *dev)
+{
+       enum usb_dr_mode mode;
+
+       mode = usb_get_dr_mode(dev);
+       switch (mode) {
+       case USB_DR_MODE_HOST:
+               return MUSB_HOST;
+       case USB_DR_MODE_PERIPHERAL:
+               return MUSB_PERIPHERAL;
+       case USB_DR_MODE_OTG:
+       case USB_DR_MODE_UNKNOWN:
+       default:
+               return MUSB_OTG;
+       }
+}
+EXPORT_SYMBOL_GPL(musb_get_mode);
+
 /*-------------------------------------------------------------------------*/
 
 #ifndef CONFIG_BLACKFIN
@@ -569,10 +588,7 @@ static irqreturn_t musb_stage0_irq(struct musb *musb, u8 int_usb,
                if (devctl & MUSB_DEVCTL_HM) {
                        switch (musb->xceiv->otg->state) {
                        case OTG_STATE_A_SUSPEND:
-                               /* remote wakeup?  later, GetPortStatus
-                                * will stop RESUME signaling
-                                */
-
+                               /* remote wakeup? */
                                musb->port1_status |=
                                                (USB_PORT_STAT_C_SUSPEND << 16)
                                                | MUSB_PORT_STAT_RESUME;
@@ -2414,8 +2430,9 @@ fail2:
        musb_platform_exit(musb);
 
 fail1:
-       dev_err(musb->controller,
-               "musb_init_controller failed with status %d\n", status);
+       if (status != -EPROBE_DEFER)
+               dev_err(musb->controller,
+                       "%s failed with status %d\n", __func__, status);
 
        musb_free(musb);