On Tue, Mar 05, 2013 at 08:31:58PM +0530, kishon wrote: > Hi, > > On Tuesday 05 March 2013 08:26 PM, Felipe Balbi wrote: > >On Tue, Mar 05, 2013 at 07:51:58PM +0530, Kishon Vijay Abraham I wrote: > >>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@xxxxxx> > >>--- > >> drivers/usb/dwc3/dwc3-omap.c | 7 +++++-- > >> include/linux/usb/dwc3-omap.h | 6 +++--- > >> 2 files changed, 8 insertions(+), 5 deletions(-) > >> > >>diff --git a/drivers/usb/dwc3/dwc3-omap.c b/drivers/usb/dwc3/dwc3-omap.c > >>index 19c6e72..9428f4e 100644 > >>--- a/drivers/usb/dwc3/dwc3-omap.c > >>+++ b/drivers/usb/dwc3/dwc3-omap.c > >>@@ -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 IRQ_HANDLED; > > > >IRQ_HANDLED ???? > > Actually I did it that way since palmas_vbus_wakeup_irq can directly > return the return value from dwc3_omap_mailbox. If this seems hacky > to you, I'll change it. it does seem hacky :-) Try something like: ret = dwc3_omap_mailbox(); if (ret) print_error(); return IRQ_HANDLED; -- balbi
Attachment:
signature.asc
Description: Digital signature