summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Kemnade <andreas@kemnade.info>2023-01-09 10:13:30 +0300
committerTom Rini <trini@konsulko.com>2023-01-18 20:46:13 +0300
commit7a2d80efc3f7445ac0a5fea710d6c796a782f063 (patch)
tree39f95f8dc80225e11587ce58a0f2d1ed7a3aced2
parent448e2b6327d0498d58506d6f4e4b2a325ab7cca0 (diff)
downloadu-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.c34
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)