usb: host: xhci-omap: fix double weak board_usb_init functions

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.

Cc: Lokesh Vutla <lokeshvutla@ti.com>
Signed-off-by: Uri Mashiach <uri.mashiach@compulab.co.il>
Acked-by: Marek Vasut <marex@denx.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Roger Quadros <rogerq@ti.com>
This commit is contained in:
Uri Mashiach 2017-02-23 15:39:37 +02:00 committed by Tom Rini
parent ef3f3b8100
commit 1a9a5f7a39
5 changed files with 22 additions and 9 deletions

View File

@ -54,7 +54,7 @@ int board_mmc_init(bd_t *bis)
#endif /* CONFIG_GENERIC_MMC */ #endif /* CONFIG_GENERIC_MMC */
#ifdef CONFIG_USB_XHCI_OMAP #ifdef CONFIG_USB_XHCI_OMAP
int board_usb_init(int index, enum usb_init_type init) int omap_xhci_board_usb_init(int index, enum usb_init_type init)
{ {
setbits_le32((*prcm)->cm_l3init_usb_otg_ss1_clkctrl, setbits_le32((*prcm)->cm_l3init_usb_otg_ss1_clkctrl,
OTG_SS_CLKCTRL_MODULEMODE_HW | OPTFCLKEN_REFCLK960M); OTG_SS_CLKCTRL_MODULEMODE_HW | OPTFCLKEN_REFCLK960M);

View File

@ -694,7 +694,7 @@ int usb_gadget_handle_interrupts(int index)
#endif /* CONFIG_USB_DWC3 */ #endif /* CONFIG_USB_DWC3 */
#if defined(CONFIG_USB_DWC3) || defined(CONFIG_USB_XHCI_OMAP) #if defined(CONFIG_USB_DWC3) || defined(CONFIG_USB_XHCI_OMAP)
int board_usb_init(int index, enum usb_init_type init) int omap_xhci_board_usb_init(int index, enum usb_init_type init)
{ {
enable_usb_clocks(index); enable_usb_clocks(index);
#ifdef CONFIG_USB_DWC3 #ifdef CONFIG_USB_DWC3
@ -725,7 +725,7 @@ int board_usb_init(int index, enum usb_init_type init)
return 0; 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)
{ {
#ifdef CONFIG_USB_DWC3 #ifdef CONFIG_USB_DWC3
switch (index) { switch (index) {

View File

@ -720,7 +720,7 @@ int usb_gadget_handle_interrupts(int index)
#endif /* CONFIG_USB_DWC3 */ #endif /* CONFIG_USB_DWC3 */
#if defined(CONFIG_USB_DWC3) || defined(CONFIG_USB_XHCI_OMAP) #if defined(CONFIG_USB_DWC3) || defined(CONFIG_USB_XHCI_OMAP)
int board_usb_init(int index, enum usb_init_type init) int omap_xhci_board_usb_init(int index, enum usb_init_type init)
{ {
enable_usb_clocks(index); enable_usb_clocks(index);
switch (index) { switch (index) {
@ -754,7 +754,7 @@ int board_usb_init(int index, enum usb_init_type init)
return 0; 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)
{ {
#ifdef CONFIG_USB_DWC3 #ifdef CONFIG_USB_DWC3
switch (index) { switch (index) {

View File

@ -750,7 +750,7 @@ static struct ti_usb_phy_device usb_phy2_device = {
.index = 1, .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)
{ {
enable_usb_clocks(index); enable_usb_clocks(index);
switch (index) { switch (index) {
@ -787,7 +787,7 @@ int board_usb_init(int index, enum usb_init_type init)
return 0; 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) { switch (index) {
case 0: case 0:

View File

@ -27,12 +27,25 @@ DECLARE_GLOBAL_DATA_PTR;
static struct omap_xhci omap; 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; return 0;
} }
int board_usb_init(int index, enum usb_init_type init) 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) static int omap_xhci_core_init(struct omap_xhci *omap)
{ {