mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-24 04:34:22 +08:00
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:
parent
890076d20e
commit
2caf974b5f
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
|
@ -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_ */
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user