From 448e2b6327d0498d58506d6f4e4b2a325ab7cca0 Mon Sep 17 00:00:00 2001 From: Tom Rini Date: Mon, 16 Jan 2023 15:46:49 -0500 Subject: event: Correct dependencies on the EVENT framework The event framework is just that, a framework. Enabling it by itself does nothing, so we shouldn't ask the user about it. Reword (and correct typos) around this the option and help text. This also applies to DM_EVENT and EVENT_DYNAMIC. Only EVENT_DEBUG and CMD_EVENT should be visible to the user to select, when EVENT is selected. With this, it's time to address the larger problems. When functionality uses events, typically via EVENT_SPY, the appropriate framework then must be select'd and NOT imply'd. As the functionality will cease to work (and so, platforms will fail to boot) this is non-optional and where select is appropriate. Audit the current users of EVENT_SPY to have a more fine-grained approach to select'ing the framework where used. Also ensure the current users of event_register and also select EVENT_DYNAMIC. Cc: AKASHI Takahiro Cc: Heinrich Schuchardt Reported-by: Oliver Graute Reported-by: Francesco Dolcini Fixes: 7fe32b3442f0 ("event: Convert arch_cpu_init_dm() to use events") Fixes: 42fdcebf859f ("event: Convert misc_init_f() to use events") Fixes: c5ef2025579e ("dm: fix DM_EVENT dependencies") Signed-off-by: Tom Rini Tested-by: Simon Glass Reviewed-by: Simon Glass Reviewed-by: Fabio Estevam --- drivers/core/Kconfig | 9 +++++---- drivers/cpu/Kconfig | 1 - 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'drivers') diff --git a/drivers/core/Kconfig b/drivers/core/Kconfig index 8fde77c23ee..6fc8854b574 100644 --- a/drivers/core/Kconfig +++ b/drivers/core/Kconfig @@ -109,13 +109,14 @@ config DM_DEVICE_REMOVE causes USB host controllers to not be stopped when booting the OS. config DM_EVENT - bool "Support events with driver model" - depends on DM && EVENT - default y if SANDBOX + bool + depends on DM + select EVENT help This enables support for generating events related to driver model operations, such as prbing or removing a device. Subsystems can - register a 'spy' function that is called when the event occurs. + register a 'spy' function that is called when the event occurs. Such + subsystems must select this option. config SPL_DM_DEVICE_REMOVE bool "Support device removal in SPL" diff --git a/drivers/cpu/Kconfig b/drivers/cpu/Kconfig index 21874335c87..3bf04105e5e 100644 --- a/drivers/cpu/Kconfig +++ b/drivers/cpu/Kconfig @@ -23,7 +23,6 @@ config CPU_RISCV config CPU_MICROBLAZE bool "Enable Microblaze CPU driver" depends on CPU && MICROBLAZE - select EVENT select DM_EVENT select XILINX_MICROBLAZE0_PVR help -- cgit v1.2.3 From 7a2d80efc3f7445ac0a5fea710d6c796a782f063 Mon Sep 17 00:00:00 2001 From: Andreas Kemnade Date: Mon, 9 Jan 2023 08:13:30 +0100 Subject: 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 --- drivers/usb/musb-new/omap2430.c | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) (limited to 'drivers') diff --git a/drivers/usb/musb-new/omap2430.c b/drivers/usb/musb-new/omap2430.c index 7d15b94a6c4..0d1fb03727d 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) -- cgit v1.2.3 From 2e4865bc6486988dd5778c1f21c5459aae7a7706 Mon Sep 17 00:00:00 2001 From: Andreas Kemnade Date: Mon, 9 Jan 2023 08:13:31 +0100 Subject: musb-new: omap2430: fix compiling in DM_USB_GADGET config Add the separate IRQ handling function and change the registration. Signed-off-by: Andreas Kemnade --- drivers/usb/musb-new/omap2430.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'drivers') diff --git a/drivers/usb/musb-new/omap2430.c b/drivers/usb/musb-new/omap2430.c index 0d1fb03727d..42e7abddbc2 100644 --- a/drivers/usb/musb-new/omap2430.c +++ b/drivers/usb/musb-new/omap2430.c @@ -46,6 +46,15 @@ static inline void omap2430_low_level_init(struct musb *musb) musb_writel(musb->mregs, OTG_FORCESTDBY, l); } +#ifdef CONFIG_DM_USB_GADGET +int dm_usb_gadget_handle_interrupts(struct udevice *dev) +{ + struct musb_host_data *host = dev_get_priv(dev); + + host->host->isr(0, host->host); + return 0; +} +#endif static int omap2430_musb_init(struct musb *musb) { @@ -235,6 +244,16 @@ static int omap2430_musb_probe(struct udevice *dev) return -EIO; return musb_lowlevel_init(host); + } else if (CONFIG_IS_ENABLED(DM_USB_GADGET)) { + struct musb_host_data *host = dev_get_priv(dev); + + host->host = musb_init_controller(&plat->plat, + (struct device *)otg_board_data, + plat->base); + if (!host->host) + return -EIO; + + return usb_add_gadget_udc((struct device *)otg_board_data, &host->host->g); } musbp = musb_register(&plat->plat, (struct device *)otg_board_data, -- cgit v1.2.3 From 83d7a7af5d8c6251824aa63504d653d756b42c9b Mon Sep 17 00:00:00 2001 From: Jorge Ramirez-Ortiz Date: Tue, 10 Jan 2023 18:29:48 +0100 Subject: firmware: ti_sci: fix typo in boot authentication message name Fix AUTH_BOOT message identifier (s/IMIAGE/IMAGE) Signed-off-by: Jorge Ramirez-Ortiz Reviewed-by: Oleksandr Suvorov Acked-by: Andrew Davis --- drivers/firmware/ti_sci.c | 2 +- drivers/firmware/ti_sci.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'drivers') diff --git a/drivers/firmware/ti_sci.c b/drivers/firmware/ti_sci.c index 727e090e8ab..bd7379ae555 100644 --- a/drivers/firmware/ti_sci.c +++ b/drivers/firmware/ti_sci.c @@ -1935,7 +1935,7 @@ static int ti_sci_cmd_proc_auth_boot_image(const struct ti_sci_handle *handle, info = handle_to_ti_sci_info(handle); - xfer = ti_sci_setup_one_xfer(info, TISCI_MSG_PROC_AUTH_BOOT_IMIAGE, + xfer = ti_sci_setup_one_xfer(info, TISCI_MSG_PROC_AUTH_BOOT_IMAGE, TI_SCI_FLAG_REQ_ACK_ON_PROCESSED, (u32 *)&req, sizeof(req), sizeof(*resp)); if (IS_ERR(xfer)) { diff --git a/drivers/firmware/ti_sci.h b/drivers/firmware/ti_sci.h index e4a087c2baf..101210eb215 100644 --- a/drivers/firmware/ti_sci.h +++ b/drivers/firmware/ti_sci.h @@ -49,7 +49,7 @@ #define TISCI_MSG_PROC_HANDOVER 0xc005 #define TISCI_MSG_SET_PROC_BOOT_CONFIG 0xc100 #define TISCI_MSG_SET_PROC_BOOT_CTRL 0xc101 -#define TISCI_MSG_PROC_AUTH_BOOT_IMIAGE 0xc120 +#define TISCI_MSG_PROC_AUTH_BOOT_IMAGE 0xc120 #define TISCI_MSG_GET_PROC_BOOT_STATUS 0xc400 #define TISCI_MSG_WAIT_PROC_BOOT_STATUS 0xc401 -- cgit v1.2.3