summaryrefslogtreecommitdiff
path: root/drivers/usb/chipidea/otg.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/chipidea/otg.h')
-rw-r--r--drivers/usb/chipidea/otg.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/usb/chipidea/otg.h b/drivers/usb/chipidea/otg.h
index a5557c70034a..ba73a2ad59cb 100644
--- a/drivers/usb/chipidea/otg.h
+++ b/drivers/usb/chipidea/otg.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013-2014 Freescale Semiconductor, Inc.
+ * Copyright (C) 2013-2015 Freescale Semiconductor, Inc.
*
* Author: Peter Chen
*
@@ -17,11 +17,17 @@ int ci_hdrc_otg_init(struct ci_hdrc *ci);
void ci_hdrc_otg_destroy(struct ci_hdrc *ci);
enum ci_role ci_otg_role(struct ci_hdrc *ci);
void ci_handle_vbus_change(struct ci_hdrc *ci);
+void ci_handle_id_switch(struct ci_hdrc *ci);
+void ci_handle_vbus_connected(struct ci_hdrc *ci);
static inline void ci_otg_queue_work(struct ci_hdrc *ci)
{
- disable_irq_nosync(ci->irq);
- if (queue_work(ci->wq, &ci->work) == false)
- enable_irq(ci->irq);
+ if (ci->wq) {
+ disable_irq_nosync(ci->irq);
+ if (queue_work(ci->wq, &ci->work) == false)
+ enable_irq(ci->irq);
+ } else {
+ WARN_ON(!ci->wq);
+ }
}
#endif /* __DRIVERS_USB_CHIPIDEA_OTG_H */