1
0
mirror of https://xff.cz/git/u-boot/ synced 2025-09-25 20:41:16 +02:00

usb: modify usb_gadget_handle_interrupts to take controller index

Since we support multiple dwc3 controllers to be existent at the same
time, in order to handle the interrupts of a particular dwc3 controller
usb_gadget_handle_interrutps should take controller index as an
argument.

Hence the API of usb_gadget_handle_interrupts is modified to take
controller index as an argument and made the corresponding changes to all
the usb_gadget_handle_interrupts calls.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
This commit is contained in:
Kishon Vijay Abraham I
2015-02-23 18:40:23 +05:30
committed by Marek Vasut
parent a69e2c225d
commit 2d48aa69bd
15 changed files with 25 additions and 25 deletions

View File

@@ -732,13 +732,13 @@ int board_usb_cleanup(int index, enum usb_init_type init)
return 0; return 0;
} }
int usb_gadget_handle_interrupts(void) int usb_gadget_handle_interrupts(int index)
{ {
u32 status; u32 status;
status = dwc3_omap_uboot_interrupt_status(0); status = dwc3_omap_uboot_interrupt_status(index);
if (status) if (status)
dwc3_uboot_handle_interrupt(0); dwc3_uboot_handle_interrupt(index);
return 0; return 0;
} }

View File

@@ -220,13 +220,13 @@ int board_usb_cleanup(int index, enum usb_init_type init)
return 0; return 0;
} }
int usb_gadget_handle_interrupts(void) int usb_gadget_handle_interrupts(int index)
{ {
u32 status; u32 status;
status = dwc3_omap_uboot_interrupt_status(0); status = dwc3_omap_uboot_interrupt_status(index);
if (status) if (status)
dwc3_uboot_handle_interrupt(0); dwc3_uboot_handle_interrupt(index);
return 0; return 0;
} }

View File

@@ -64,7 +64,7 @@ static int do_dfu(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
if (ctrlc()) if (ctrlc())
goto exit; goto exit;
usb_gadget_handle_interrupts(); usb_gadget_handle_interrupts(controller_index);
} }
exit: exit:
g_dnl_unregister(); g_dnl_unregister();

View File

@@ -31,7 +31,7 @@ static int do_fastboot(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
break; break;
if (ctrlc()) if (ctrlc())
break; break;
usb_gadget_handle_interrupts(); usb_gadget_handle_interrupts(0);
} }
g_dnl_unregister(); g_dnl_unregister();

View File

@@ -137,7 +137,7 @@ int do_usb_mass_storage(cmd_tbl_t *cmdtp, int flag,
} }
while (1) { while (1) {
usb_gadget_handle_interrupts(); usb_gadget_handle_interrupts(controller_index);
rc = fsg_main_thread(NULL); rc = fsg_main_thread(NULL);
if (rc) { if (rc) {

View File

@@ -1199,7 +1199,7 @@ static struct usba_udc controller = {
}, },
}; };
int usb_gadget_handle_interrupts(void) int usb_gadget_handle_interrupts(int index)
{ {
struct usba_udc *udc = &controller; struct usba_udc *udc = &controller;

View File

@@ -741,7 +741,7 @@ void udc_irq(void)
} }
} }
int usb_gadget_handle_interrupts(void) int usb_gadget_handle_interrupts(int index)
{ {
u32 value; u32 value;
struct ci_udc *udc = (struct ci_udc *)controller.ctrl->hcor; struct ci_udc *udc = (struct ci_udc *)controller.ctrl->hcor;

View File

@@ -1907,7 +1907,7 @@ static int eth_stop(struct eth_dev *dev)
/* Wait until host receives OID_GEN_MEDIA_CONNECT_STATUS */ /* Wait until host receives OID_GEN_MEDIA_CONNECT_STATUS */
ts = get_timer(0); ts = get_timer(0);
while (get_timer(ts) < timeout) while (get_timer(ts) < timeout)
usb_gadget_handle_interrupts(); usb_gadget_handle_interrupts(0);
#endif #endif
rndis_uninit(dev->rndis_config); rndis_uninit(dev->rndis_config);
@@ -2358,7 +2358,7 @@ static int usb_eth_init(struct eth_device *netdev, bd_t *bd)
error("The remote end did not respond in time."); error("The remote end did not respond in time.");
goto fail; goto fail;
} }
usb_gadget_handle_interrupts(); usb_gadget_handle_interrupts(0);
} }
packet_received = 0; packet_received = 0;
@@ -2426,7 +2426,7 @@ static int usb_eth_send(struct eth_device *netdev, void *packet, int length)
printf("timeout sending packets to usb ethernet\n"); printf("timeout sending packets to usb ethernet\n");
return -1; return -1;
} }
usb_gadget_handle_interrupts(); usb_gadget_handle_interrupts(0);
} }
if (rndis_pkt) if (rndis_pkt)
free(rndis_pkt); free(rndis_pkt);
@@ -2441,7 +2441,7 @@ static int usb_eth_recv(struct eth_device *netdev)
{ {
struct eth_dev *dev = &l_ethdev; struct eth_dev *dev = &l_ethdev;
usb_gadget_handle_interrupts(); usb_gadget_handle_interrupts(0);
if (packet_received) { if (packet_received) {
debug("%s: packet received\n", __func__); debug("%s: packet received\n", __func__);
@@ -2486,7 +2486,7 @@ void usb_eth_halt(struct eth_device *netdev)
/* Clear pending interrupt */ /* Clear pending interrupt */
if (dev->network_started) { if (dev->network_started) {
usb_gadget_handle_interrupts(); usb_gadget_handle_interrupts(0);
dev->network_started = 0; dev->network_started = 0;
} }

View File

@@ -689,7 +689,7 @@ static int sleep_thread(struct fsg_common *common)
k = 0; k = 0;
} }
usb_gadget_handle_interrupts(); usb_gadget_handle_interrupts(0);
} }
common->thread_wakeup_needed = 0; common->thread_wakeup_needed = 0;
return rc; return rc;

View File

@@ -543,7 +543,7 @@ static int thor_rx_data(void)
} }
while (!dev->rxdata) { while (!dev->rxdata) {
usb_gadget_handle_interrupts(); usb_gadget_handle_interrupts(0);
if (ctrlc()) if (ctrlc())
return -1; return -1;
} }
@@ -577,7 +577,7 @@ static void thor_tx_data(unsigned char *data, int len)
/* Wait until tx interrupt received */ /* Wait until tx interrupt received */
while (!dev->txdata) while (!dev->txdata)
usb_gadget_handle_interrupts(); usb_gadget_handle_interrupts(0);
dev->txdata = 0; dev->txdata = 0;
} }
@@ -694,7 +694,7 @@ int thor_init(void)
/* Wait for a device enumeration and configuration settings */ /* Wait for a device enumeration and configuration settings */
debug("THOR enumeration/configuration setting....\n"); debug("THOR enumeration/configuration setting....\n");
while (!dev->configuration_done) while (!dev->configuration_done)
usb_gadget_handle_interrupts(); usb_gadget_handle_interrupts(0);
thor_set_dma(thor_rx_data_buf, strlen("THOR")); thor_set_dma(thor_rx_data_buf, strlen("THOR"));
/* detect the download request from Host PC */ /* detect the download request from Host PC */

View File

@@ -832,7 +832,7 @@ static struct fotg210_chip controller = {
}, },
}; };
int usb_gadget_handle_interrupts(void) int usb_gadget_handle_interrupts(int index)
{ {
struct fotg210_chip *chip = &controller; struct fotg210_chip *chip = &controller;
struct fotg210_regs *regs = chip->regs; struct fotg210_regs *regs = chip->regs;

View File

@@ -2041,7 +2041,7 @@ extern void udc_disconnect(void)
/*-------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------*/
extern int extern int
usb_gadget_handle_interrupts(void) usb_gadget_handle_interrupts(int index)
{ {
return pxa25x_udc_irq(); return pxa25x_udc_irq();
} }

View File

@@ -833,7 +833,7 @@ int s3c_udc_probe(struct s3c_plat_otg_data *pdata)
return retval; return retval;
} }
int usb_gadget_handle_interrupts() int usb_gadget_handle_interrupts(int index)
{ {
u32 intr_status = readl(&reg->gintsts); u32 intr_status = readl(&reg->gintsts);
u32 gintmsk = readl(&reg->gintmsk); u32 gintmsk = readl(&reg->gintmsk);

View File

@@ -252,7 +252,7 @@ int usb_lowlevel_stop(int index)
#ifdef CONFIG_MUSB_GADGET #ifdef CONFIG_MUSB_GADGET
static struct musb *gadget; static struct musb *gadget;
int usb_gadget_handle_interrupts(void) int usb_gadget_handle_interrupts(int index)
{ {
WATCHDOG_RESET(); WATCHDOG_RESET();
if (!gadget || !gadget->isr) if (!gadget || !gadget->isr)

View File

@@ -937,6 +937,6 @@ extern struct usb_ep *usb_ep_autoconfig(struct usb_gadget *,
extern void usb_ep_autoconfig_reset(struct usb_gadget *); extern void usb_ep_autoconfig_reset(struct usb_gadget *);
extern int usb_gadget_handle_interrupts(void); extern int usb_gadget_handle_interrupts(int index);
#endif /* __LINUX_USB_GADGET_H */ #endif /* __LINUX_USB_GADGET_H */