From: Kalliguddi, Hema <[email protected]>

Save the last event in the otg_transceiver so that it can used in the
musb driver and gadget driver to configure the musb and enable the 
vbus for host mode and OTG mode, if the device is connected during boot.

Signed-off-by: Hema HK <[email protected]>
Cc: Felipe Balbi <[email protected]>

---
[Reusing some part of the patch[1] posted by Arnaud Mandy]
[1] http://permalink.gmane.org/gmane.linux.usb.general/37123
---
 drivers/usb/otg/twl6030-usb.c |    3 +++
 include/linux/usb/otg.h       |    1 +
 2 files changed, 4 insertions(+)

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Index: linux-2.6/drivers/usb/otg/twl6030-usb.c
===================================================================
--- linux-2.6.orig/drivers/usb/otg/twl6030-usb.c
+++ linux-2.6/drivers/usb/otg/twl6030-usb.c
@@ -265,11 +265,13 @@ static irqreturn_t twl6030_usb_irq(int i
                        twl->otg.default_a = false;
                        twl->otg.state = OTG_STATE_B_IDLE;
                        twl->linkstat = status;
+                       twl->otg.last_event = status;
                        blocking_notifier_call_chain(&twl->otg.notifier,
                                                status, twl->otg.gadget);
                } else {
                        status = USB_EVENT_NONE;
                        twl->linkstat = status;
+                       twl->otg.last_event = status;
                        blocking_notifier_call_chain(&twl->otg.notifier,
                                                status, twl->otg.gadget);
                        if (twl->asleep) {
@@ -302,6 +304,7 @@ static irqreturn_t twl6030_usbotg_irq(in
                twl->otg.default_a = true;
                twl->otg.state = OTG_STATE_A_IDLE;
                twl->linkstat = status;
+               twl->otg.last_event = status;
                blocking_notifier_call_chain(&twl->otg.notifier, status,
                                                        twl->otg.gadget);
        } else  {
Index: linux-2.6/include/linux/usb/otg.h
===================================================================
--- linux-2.6.orig/include/linux/usb/otg.h
+++ linux-2.6/include/linux/usb/otg.h
@@ -66,6 +66,7 @@ struct otg_transceiver {
 
        u8                      default_a;
        enum usb_otg_state      state;
+       enum usb_xceiv_events   last_event;
 
        struct usb_bus          *host;
        struct usb_gadget       *gadget;
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to