diff options
author | Andreas Kemnade <andreas@kemnade.info> | 2023-01-09 10:13:30 +0300 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2023-01-18 20:46:13 +0300 |
commit | 7a2d80efc3f7445ac0a5fea710d6c796a782f063 (patch) | |
tree | 39f95f8dc80225e11587ce58a0f2d1ed7a3aced2 | |
parent | 448e2b6327d0498d58506d6f4e4b2a325ab7cca0 (diff) | |
download | u-boot-7a2d80efc3f7445ac0a5fea710d6c796a782f063.tar.xz |
musb-new: omap2430: no host data access in gadget mode
Avoid accessing structures (usb_bus_priv) only present when musb is
in host mode.
Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
-rw-r--r-- | drivers/usb/musb-new/omap2430.c | 34 |
1 files changed, 16 insertions, 18 deletions
diff --git a/drivers/usb/musb-new/omap2430.c b/drivers/usb/musb-new/omap2430.c index 7d15b94a6c..0d1fb03727 100644 --- a/drivers/usb/musb-new/omap2430.c +++ b/drivers/usb/musb-new/omap2430.c @@ -214,37 +214,35 @@ static int omap2430_musb_of_to_plat(struct udevice *dev) static int omap2430_musb_probe(struct udevice *dev) { -#ifdef CONFIG_USB_MUSB_HOST - struct musb_host_data *host = dev_get_priv(dev); -#else - struct musb *musbp; -#endif struct omap2430_musb_plat *plat = dev_get_plat(dev); - struct usb_bus_priv *priv = dev_get_uclass_priv(dev); struct omap_musb_board_data *otg_board_data; int ret = 0; void *base = dev_read_addr_ptr(dev); - - priv->desc_before_addr = true; + struct musb *musbp; otg_board_data = &plat->otg_board_data; -#ifdef CONFIG_USB_MUSB_HOST - host->host = musb_init_controller(&plat->plat, - (struct device *)otg_board_data, - plat->base); - if (!host->host) { - return -EIO; + if (CONFIG_IS_ENABLED(USB_MUSB_HOST)) { + struct musb_host_data *host = dev_get_priv(dev); + struct usb_bus_priv *priv = dev_get_uclass_priv(dev); + + priv->desc_before_addr = true; + + host->host = musb_init_controller(&plat->plat, + (struct device *)otg_board_data, + plat->base); + if (!host->host) + return -EIO; + + return musb_lowlevel_init(host); } - ret = musb_lowlevel_init(host); -#else musbp = musb_register(&plat->plat, (struct device *)otg_board_data, plat->base); if (IS_ERR_OR_NULL(musbp)) return -EINVAL; -#endif - return ret; + + return 0; } static int omap2430_musb_remove(struct udevice *dev) |