board: usb: Replace legacy usb_gadget_handle_interrupts()

The usb_gadget_handle_interrupts() is no longer used anywhere,
replace the remaining uses with dm_usb_gadget_handle_interrupts()
which takes udevice as a parameter.

Some of the UDC drivers currently ignore the index parameter altogether,
those also ignore the udevice and have to be reworked. Other like the
dwc3_uboot_handle_interrupt() had to be switched from index to udevice
look up to avoid breakage.

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Tested-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> # on khadas vim3
Signed-off-by: Marek Vasut <marex@denx.de>
This commit is contained in:
Marek Vasut 2023-09-01 11:50:03 +02:00
parent 890076d20e
commit 2caf974b5f
17 changed files with 28 additions and 54 deletions

View File

@ -299,9 +299,9 @@ static struct dwc3_device dwc3_device_data = {
.hsphy_mode = USBPHY_INTERFACE_MODE_UTMIW,
};
int usb_gadget_handle_interrupts(int index)
int dm_usb_gadget_handle_interrupts(struct udevice *dev)
{
dwc3_uboot_handle_interrupt(0);
dwc3_uboot_handle_interrupt(dev);
return 0;
}

View File

@ -418,9 +418,9 @@ out:
return rv;
}
int usb_gadget_handle_interrupts(int index)
int dm_usb_gadget_handle_interrupts(struct udevice *dev)
{
dwc3_uboot_handle_interrupt(0);
dwc3_uboot_handle_interrupt(dev);
return 0;
}

View File

@ -126,9 +126,9 @@ static struct dwc3_device dwc3_device_data = {
.index = 0,
};
int usb_gadget_handle_interrupts(int index)
int dm_usb_gadget_handle_interrupts(struct udevice *dev)
{
dwc3_uboot_handle_interrupt(0);
dwc3_uboot_handle_interrupt(dev);
return 0;
}

View File

@ -50,9 +50,9 @@ static struct dwc3_device dwc3_device_data = {
.index = 0,
};
int usb_gadget_handle_interrupts(int index)
int dm_usb_gadget_handle_interrupts(struct udevice *dev)
{
dwc3_uboot_handle_interrupt(index);
dwc3_uboot_handle_interrupt(dev);
return 0;
}

View File

@ -760,13 +760,13 @@ static struct ti_usb_phy_device usb_phy2_device = {
.index = 1,
};
int usb_gadget_handle_interrupts(int index)
int dm_usb_gadget_handle_interrupts(struct udevice *dev)
{
u32 status;
status = dwc3_omap_uboot_interrupt_status(index);
status = dwc3_omap_uboot_interrupt_status(dev);
if (status)
dwc3_uboot_handle_interrupt(index);
dwc3_uboot_handle_interrupt(dev);
return 0;
}

View File

@ -986,18 +986,18 @@ void dwc3_uboot_exit(int index)
/**
* dwc3_uboot_handle_interrupt - handle dwc3 core interrupt
* @index: index of this controller
* @dev: device of this controller
*
* Invokes dwc3 gadget interrupts.
*
* Generally called from board file.
*/
void dwc3_uboot_handle_interrupt(int index)
void dwc3_uboot_handle_interrupt(struct udevice *dev)
{
struct dwc3 *dwc = NULL;
list_for_each_entry(dwc, &dwc3_list, list) {
if (dwc->index != index)
if (dwc->dev != dev)
continue;
dwc3_gadget_uboot_handle_interrupt(dwc);

View File

@ -119,7 +119,7 @@
#define USBOTGSS_UTMI_OTG_STATUS_VBUSVALID (1 << 1)
struct dwc3_omap {
struct device *dev;
struct udevice *dev;
void __iomem *base;
@ -429,19 +429,19 @@ void dwc3_omap_uboot_exit(int index)
/**
* dwc3_omap_uboot_interrupt_status - check the status of interrupt
* @index: index of this controller
* @dev: device of this controller
*
* Checks the status of interrupts and returns true if an interrupt
* is detected or false otherwise.
*
* Generally called from board file.
*/
int dwc3_omap_uboot_interrupt_status(int index)
int dwc3_omap_uboot_interrupt_status(struct udevice *dev)
{
struct dwc3_omap *omap = NULL;
list_for_each_entry(omap, &dwc3_omap_list, list)
if (omap->index == index)
if (omap->dev == dev)
return dwc3_omap_interrupt(-1, omap);
return 0;

View File

@ -1429,7 +1429,7 @@ static const struct at91_udc_caps at91sam9261_udc_caps = {
};
#endif
int usb_gadget_handle_interrupts(int index)
int dm_usb_gadget_handle_interrupts(struct udevice *dev)
{
struct at91_udc *udc = controller;

View File

@ -1198,14 +1198,13 @@ static struct usba_udc controller = {
},
};
int usb_gadget_handle_interrupts(int index)
int dm_usb_gadget_handle_interrupts(struct udevice *dev)
{
struct usba_udc *udc = &controller;
return usba_udc_irq(udc);
}
int usb_gadget_register_driver(struct usb_gadget_driver *driver)
{
struct usba_udc *udc = &controller;

View File

@ -869,10 +869,10 @@ void udc_irq(void)
}
}
int usb_gadget_handle_interrupts(int index)
int dm_usb_gadget_handle_interrupts(struct udevice *dev)
{
u32 value;
struct ci_udc *udc = (struct ci_udc *)controller.ctrl->hcor;
u32 value;
value = readl(&udc->usbsts);
if (value)

View File

@ -941,15 +941,12 @@ int dwc2_udc_handle_interrupt(void)
return 0;
}
#if !CONFIG_IS_ENABLED(DM_USB_GADGET)
int usb_gadget_handle_interrupts(int index)
int dm_usb_gadget_handle_interrupts(struct udevice *dev)
{
return dwc2_udc_handle_interrupt();
}
#else /* CONFIG_IS_ENABLED(DM_USB_GADGET) */
#if CONFIG_IS_ENABLED(DM_USB_GADGET)
struct dwc2_priv_data {
struct clk_bulk clks;
struct reset_ctl_bulk resets;
@ -957,11 +954,6 @@ struct dwc2_priv_data {
struct udevice *usb33d_supply;
};
int dm_usb_gadget_handle_interrupts(struct udevice *dev)
{
return dwc2_udc_handle_interrupt();
}
static int dwc2_phy_setup(struct udevice *dev, struct phy_bulk *phys)
{
int ret;

View File

@ -41,18 +41,6 @@ int udc_device_put(struct udevice *udev)
return -ENOSYS;
#endif
}
int usb_gadget_handle_interrupts(int index)
{
struct udevice *udc;
int ret;
ret = udc_device_get_by_index(index, &udc);
if (ret)
return ret;
return dm_usb_gadget_handle_interrupts(udc);
}
#else
/* Backwards hardware compatibility -- switch to DM_USB_GADGET */
static int legacy_index;

View File

@ -130,11 +130,6 @@ int dm_usb_gadget_handle_interrupts(struct udevice *dev)
return 0;
}
#else
int usb_gadget_handle_interrupts(int index)
{
return 0;
}
int usb_gadget_register_driver(struct usb_gadget_driver *driver)
{
struct sandbox_udc *dev = this_controller;

View File

@ -376,7 +376,7 @@ struct dm_usb_ops musb_usb_ops = {
#if defined(CONFIG_USB_MUSB_GADGET) && !CONFIG_IS_ENABLED(DM_USB_GADGET)
static struct musb *gadget;
int usb_gadget_handle_interrupts(int index)
int dm_usb_gadget_handle_interrupts(struct udevice *dev)
{
schedule();
if (!gadget || !gadget->isr)

View File

@ -27,5 +27,5 @@ struct dwc3_omap_device {
int dwc3_omap_uboot_init(struct dwc3_omap_device *dev);
void dwc3_omap_uboot_exit(int index);
int dwc3_omap_uboot_interrupt_status(int index);
int dwc3_omap_uboot_interrupt_status(struct udevice *dev);
#endif /* __DWC3_OMAP_UBOOT_H_ */

View File

@ -44,7 +44,7 @@ struct dwc3_device {
int dwc3_uboot_init(struct dwc3_device *dev);
void dwc3_uboot_exit(int index);
void dwc3_uboot_handle_interrupt(int index);
void dwc3_uboot_handle_interrupt(struct udevice *dev);
struct phy;
#if CONFIG_IS_ENABLED(PHY) && CONFIG_IS_ENABLED(DM_USB)

View File

@ -968,7 +968,7 @@ extern struct usb_ep *usb_ep_autoconfig(struct usb_gadget *,
extern void usb_ep_autoconfig_reset(struct usb_gadget *);
extern int usb_gadget_handle_interrupts(int index);
extern int dm_usb_gadget_handle_interrupts(struct udevice *);
/**
* udc_device_get_by_index() - Get UDC udevice by index