Message ID | 1423212497-11970-24-git-send-email-kishon@ti.com |
---|---|
State | Accepted |
Delegated to: | Łukasz Majewski |
Headers | show |
Hi Kishon, > Since interrupt support is not present in u-boot, added an > API to handle the interrupts in dwc3 core. This API can be > polled to handle the interrupts. > > Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> > --- > drivers/usb/dwc3/core.c | 21 +++++++++++++++++++++ > include/dwc3-uboot.h | 1 + > 2 files changed, 22 insertions(+) > > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c > index bd34dbd..5a8d5ea 100644 > --- a/drivers/usb/dwc3/core.c > +++ b/drivers/usb/dwc3/core.c > @@ -758,6 +758,27 @@ void dwc3_uboot_exit(int index) > } > } > > +/** > + * dwc3_uboot_handle_interrupt - handle dwc3 core interrupt > + * @index: index of this controller > + * > + * Invokes dwc3 gadget interrupts. > + * > + * Generally called from board file. > + */ > +void dwc3_uboot_handle_interrupt(int index) > +{ > + struct dwc3 *dwc = NULL; > + > + list_for_each_entry(dwc, &dwc3_list, list) { > + if (dwc->index != index) > + continue; > + > + dwc3_gadget_uboot_handle_interrupt(dwc); > + break; > + } > +} > + > MODULE_ALIAS("platform:dwc3"); > MODULE_AUTHOR("Felipe Balbi <balbi@ti.com>"); > MODULE_LICENSE("GPL v2"); > diff --git a/include/dwc3-uboot.h b/include/dwc3-uboot.h > index 272a020..09ff8a7 100644 > --- a/include/dwc3-uboot.h > +++ b/include/dwc3-uboot.h > @@ -38,4 +38,5 @@ struct dwc3_device { > > int dwc3_uboot_init(struct dwc3_device *dev); > void dwc3_uboot_exit(int index); > +void dwc3_uboot_handle_interrupt(int index); > #endif /* __DWC3_UBOOT_H_ */ Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index bd34dbd..5a8d5ea 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -758,6 +758,27 @@ void dwc3_uboot_exit(int index) } } +/** + * dwc3_uboot_handle_interrupt - handle dwc3 core interrupt + * @index: index of this controller + * + * Invokes dwc3 gadget interrupts. + * + * Generally called from board file. + */ +void dwc3_uboot_handle_interrupt(int index) +{ + struct dwc3 *dwc = NULL; + + list_for_each_entry(dwc, &dwc3_list, list) { + if (dwc->index != index) + continue; + + dwc3_gadget_uboot_handle_interrupt(dwc); + break; + } +} + MODULE_ALIAS("platform:dwc3"); MODULE_AUTHOR("Felipe Balbi <balbi@ti.com>"); MODULE_LICENSE("GPL v2"); diff --git a/include/dwc3-uboot.h b/include/dwc3-uboot.h index 272a020..09ff8a7 100644 --- a/include/dwc3-uboot.h +++ b/include/dwc3-uboot.h @@ -38,4 +38,5 @@ struct dwc3_device { int dwc3_uboot_init(struct dwc3_device *dev); void dwc3_uboot_exit(int index); +void dwc3_uboot_handle_interrupt(int index); #endif /* __DWC3_UBOOT_H_ */
Since interrupt support is not present in u-boot, added an API to handle the interrupts in dwc3 core. This API can be polled to handle the interrupts. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> --- drivers/usb/dwc3/core.c | 21 +++++++++++++++++++++ include/dwc3-uboot.h | 1 + 2 files changed, 22 insertions(+)