On 02/13/2017 12:35 PM, Uri Mashiach wrote: > A weak version of the function board_usb_init is implemented in: > common/usb.c > drivers/usb/host/xhci-omap.c > > To fix the double implementations: > * Convert the board_usb_init function in drivers/usb/host/xhci-omap.c > normal (not weak). > * The function board_usb_init in drivers/usb/host/xhci-omap.c calls to > the weak function omap_xhci_board_usb_init. > * Rename board version of the function board_usb_init to > omap_xhci_board_usb_init. > Done only for boards that defines CONFIG_USB_XHCI_OMAP. > > To achieve the same flexibility with the function board_usb_cleanup: > * Add a normal (not weak) implementation of the function > board_usb_cleanup in drivers/usb/host/xhci-omap.c > * The function board_usb_cleanup in drivers/usb/host/xhci-omap.c calls > to the weak function omap_xhci_board_usb_cleanup. > * Rename board version of the function board_usb_cleanup to > omap_xhci_board_usb_cleanup. > Done only for boards that defines CONFIG_USB_XHCI_OMAP. > > Signed-off-by: Uri Mashiach <uri.mashi...@compulab.co.il> > --- > V1 -> V2: Use __weak instead of attribute block
[...] > +++ b/board/ti/dra7xx/evm.c > @@ -727,7 +727,7 @@ static struct ti_usb_phy_device usb_phy2_device = { > .index = 1, > }; > > -int board_usb_init(int index, enum usb_init_type init) > +int omap_xhci_board_usb_init(int index, enum usb_init_type init) ^ Here's a superfluous space. > { > enable_usb_clocks(index); > switch (index) { > @@ -764,7 +764,7 @@ int board_usb_init(int index, enum usb_init_type init) > return 0; > } > > -int board_usb_cleanup(int index, enum usb_init_type init) > +int omap_xhci_board_usb_cleanup(int index, enum usb_init_type init) > { > switch (index) { > case 0: > diff --git a/drivers/usb/host/xhci-omap.c b/drivers/usb/host/xhci-omap.c > index b881b19..a1b4f2f 100644 > --- a/drivers/usb/host/xhci-omap.c > +++ b/drivers/usb/host/xhci-omap.c > @@ -27,12 +27,25 @@ DECLARE_GLOBAL_DATA_PTR; > > static struct omap_xhci omap; > > -__weak int __board_usb_init(int index, enum usb_init_type init) > +__weak int omap_xhci_board_usb_init(int index, enum usb_init_type init) > { > return 0; > } > + > int board_usb_init(int index, enum usb_init_type init) > - __attribute__((weak, alias("__board_usb_init"))); > +{ > + return omap_xhci_board_usb_init(index, init); > +} > + > +__weak int omap_xhci_board_usb_cleanup(int index, enum usb_init_type init) > +{ > + return 0; > +} > + > +int board_usb_cleanup(int index, enum usb_init_type init) > +{ > + return omap_xhci_board_usb_cleanup(index, init); > +} > > static int omap_xhci_core_init(struct omap_xhci *omap) > { > Otherwise: Acked-by: Marek Vasut <ma...@denx.de> -- Best regards, Marek Vasut _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot