Hi Kishon,

> 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 <kis...@ti.com>
> ---
>  board/ti/am43xx/board.c             |    6 +++---
>  board/ti/dra7xx/evm.c               |    6 +++---
>  common/cmd_dfu.c                    |    2 +-
>  common/cmd_fastboot.c               |    2 +-
>  common/cmd_usb_mass_storage.c       |    2 +-
>  drivers/usb/gadget/atmel_usba_udc.c |    2 +-
>  drivers/usb/gadget/ci_udc.c         |    2 +-
>  drivers/usb/gadget/ether.c          |   10 +++++-----
>  drivers/usb/gadget/f_mass_storage.c |    2 +-
>  drivers/usb/gadget/f_thor.c         |    6 +++---
>  drivers/usb/gadget/fotg210.c        |    2 +-
>  drivers/usb/gadget/pxa25x_udc.c     |    2 +-
>  drivers/usb/gadget/s3c_udc_otg.c    |    2 +-
>  drivers/usb/musb-new/musb_uboot.c   |    2 +-
>  include/linux/usb/gadget.h          |    2 +-
>  15 files changed, 25 insertions(+), 25 deletions(-)
> 
> diff --git a/board/ti/am43xx/board.c b/board/ti/am43xx/board.c
> index a8796b1..096e5db 100644
> --- a/board/ti/am43xx/board.c
> +++ b/board/ti/am43xx/board.c
> @@ -782,13 +782,13 @@ int board_usb_cleanup(int index, enum
> usb_init_type init) return 0;
>  }
>  
> -int usb_gadget_handle_interrupts(void)
> +int usb_gadget_handle_interrupts(int index)
>  {
>       u32 status;
>  
> -     status = dwc3_omap_uboot_interrupt_status(0);
> +     status = dwc3_omap_uboot_interrupt_status(index);
>       if (status)
> -             dwc3_uboot_handle_interrupt(0);
> +             dwc3_uboot_handle_interrupt(index);
>  
>       return 0;
>  }
> diff --git a/board/ti/dra7xx/evm.c b/board/ti/dra7xx/evm.c
> index 284775c..3089fa2 100644
> --- a/board/ti/dra7xx/evm.c
> +++ b/board/ti/dra7xx/evm.c
> @@ -220,13 +220,13 @@ int board_usb_cleanup(int index, enum
> usb_init_type init) return 0;
>  }
>  
> -int usb_gadget_handle_interrupts(void)
> +int usb_gadget_handle_interrupts(int index)
>  {
>       u32 status;
>  
> -     status = dwc3_omap_uboot_interrupt_status(0);
> +     status = dwc3_omap_uboot_interrupt_status(index);
>       if (status)
> -             dwc3_uboot_handle_interrupt(0);
> +             dwc3_uboot_handle_interrupt(index);
>  
>       return 0;
>  }
> diff --git a/common/cmd_dfu.c b/common/cmd_dfu.c
> index 161d38b..ec90998 100644
> --- a/common/cmd_dfu.c
> +++ b/common/cmd_dfu.c
> @@ -64,7 +64,7 @@ static int do_dfu(cmd_tbl_t *cmdtp, int flag, int
> argc, char * const argv[]) if (ctrlc())
>                       goto exit;
>  
> -             usb_gadget_handle_interrupts();
> +             usb_gadget_handle_interrupts(controller_index);
>       }
>  exit:
>       g_dnl_unregister();
> diff --git a/common/cmd_fastboot.c b/common/cmd_fastboot.c
> index b72f4f3..8281f8e 100644
> --- a/common/cmd_fastboot.c
> +++ b/common/cmd_fastboot.c
> @@ -25,7 +25,7 @@ static int do_fastboot(cmd_tbl_t *cmdtp, int flag,
> int argc, char *const argv[]) break;
>               if (ctrlc())
>                       break;
> -             usb_gadget_handle_interrupts();
> +             usb_gadget_handle_interrupts(0);
>       }
>  
>       g_dnl_unregister();
> diff --git a/common/cmd_usb_mass_storage.c
> b/common/cmd_usb_mass_storage.c index 2c879ea..c5f909d 100644
> --- a/common/cmd_usb_mass_storage.c
> +++ b/common/cmd_usb_mass_storage.c
> @@ -137,7 +137,7 @@ int do_usb_mass_storage(cmd_tbl_t *cmdtp, int
> flag, }
>  
>       while (1) {
> -             usb_gadget_handle_interrupts();
> +             usb_gadget_handle_interrupts(controller_index);
>  
>               rc = fsg_main_thread(NULL);
>               if (rc) {
> diff --git a/drivers/usb/gadget/atmel_usba_udc.c
> b/drivers/usb/gadget/atmel_usba_udc.c index fbc74f3..1e23d09 100644
> --- a/drivers/usb/gadget/atmel_usba_udc.c
> +++ b/drivers/usb/gadget/atmel_usba_udc.c
> @@ -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;
>  
> diff --git a/drivers/usb/gadget/ci_udc.c b/drivers/usb/gadget/ci_udc.c
> index b0ef35e..a7dc0b2 100644
> --- a/drivers/usb/gadget/ci_udc.c
> +++ b/drivers/usb/gadget/ci_udc.c
> @@ -741,7 +741,7 @@ void udc_irq(void)
>       }
>  }
>  
> -int usb_gadget_handle_interrupts(void)
> +int usb_gadget_handle_interrupts(int index)
>  {
>       u32 value;
>       struct ci_udc *udc = (struct ci_udc *)controller.ctrl->hcor;
> diff --git a/drivers/usb/gadget/ether.c b/drivers/usb/gadget/ether.c
> index 8ccf9b0..ba79faf 100644
> --- a/drivers/usb/gadget/ether.c
> +++ b/drivers/usb/gadget/ether.c
> @@ -1908,7 +1908,7 @@ static int eth_stop(struct eth_dev *dev)
>               /* Wait until host receives
> OID_GEN_MEDIA_CONNECT_STATUS */ ts = get_timer(0);
>               while (get_timer(ts) < timeout)
> -                     usb_gadget_handle_interrupts();
> +                     usb_gadget_handle_interrupts(0);
>  #endif
>  
>               rndis_uninit(dev->rndis_config);
> @@ -2359,7 +2359,7 @@ static int usb_eth_init(struct eth_device
> *netdev, bd_t *bd) error("The remote end did not respond in time.");
>                       goto fail;
>               }
> -             usb_gadget_handle_interrupts();
> +             usb_gadget_handle_interrupts(0);
>       }
>  
>       packet_received = 0;
> @@ -2427,7 +2427,7 @@ static int usb_eth_send(struct eth_device
> *netdev, void *packet, int length) printf("timeout sending packets to
> usb ethernet\n"); return -1;
>               }
> -             usb_gadget_handle_interrupts();
> +             usb_gadget_handle_interrupts(0);
>       }
>       if (rndis_pkt)
>               free(rndis_pkt);
> @@ -2442,7 +2442,7 @@ static int usb_eth_recv(struct eth_device
> *netdev) {
>       struct eth_dev *dev = &l_ethdev;
>  
> -     usb_gadget_handle_interrupts();
> +     usb_gadget_handle_interrupts(0);
>  
>       if (packet_received) {
>               debug("%s: packet received\n", __func__);
> @@ -2487,7 +2487,7 @@ void usb_eth_halt(struct eth_device *netdev)
>  
>       /* Clear pending interrupt */
>       if (dev->network_started) {
> -             usb_gadget_handle_interrupts();
> +             usb_gadget_handle_interrupts(0);
>               dev->network_started = 0;
>       }
>  
> diff --git a/drivers/usb/gadget/f_mass_storage.c
> b/drivers/usb/gadget/f_mass_storage.c index e045957..4fab35e 100644
> --- a/drivers/usb/gadget/f_mass_storage.c
> +++ b/drivers/usb/gadget/f_mass_storage.c
> @@ -689,7 +689,7 @@ static int sleep_thread(struct fsg_common *common)
>                       k = 0;
>               }
>  
> -             usb_gadget_handle_interrupts();
> +             usb_gadget_handle_interrupts(0);
>       }
>       common->thread_wakeup_needed = 0;
>       return rc;
> diff --git a/drivers/usb/gadget/f_thor.c b/drivers/usb/gadget/f_thor.c
> index 2d0410d..1fd41ff 100644
> --- a/drivers/usb/gadget/f_thor.c
> +++ b/drivers/usb/gadget/f_thor.c
> @@ -543,7 +543,7 @@ static int thor_rx_data(void)
>               }
>  
>               while (!dev->rxdata) {
> -                     usb_gadget_handle_interrupts();
> +                     usb_gadget_handle_interrupts(0);
>                       if (ctrlc())
>                               return -1;
>               }
> @@ -577,7 +577,7 @@ static void thor_tx_data(unsigned char *data, int
> len) 
>       /* Wait until tx interrupt received */
>       while (!dev->txdata)
> -             usb_gadget_handle_interrupts();
> +             usb_gadget_handle_interrupts(0);
>  
>       dev->txdata = 0;
>  }
> @@ -694,7 +694,7 @@ int thor_init(void)
>       /* Wait for a device enumeration and configuration settings
> */ debug("THOR enumeration/configuration setting....\n");
>       while (!dev->configuration_done)
> -             usb_gadget_handle_interrupts();
> +             usb_gadget_handle_interrupts(0);
>  
>       thor_set_dma(thor_rx_data_buf, strlen("THOR"));
>       /* detect the download request from Host PC */
> diff --git a/drivers/usb/gadget/fotg210.c
> b/drivers/usb/gadget/fotg210.c index 3acf6a1..1d8f58f 100644
> --- a/drivers/usb/gadget/fotg210.c
> +++ b/drivers/usb/gadget/fotg210.c
> @@ -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_regs *regs = chip->regs;
> diff --git a/drivers/usb/gadget/pxa25x_udc.c
> b/drivers/usb/gadget/pxa25x_udc.c index 8945c5b..1910227 100644
> --- a/drivers/usb/gadget/pxa25x_udc.c
> +++ b/drivers/usb/gadget/pxa25x_udc.c
> @@ -2041,7 +2041,7 @@ extern void udc_disconnect(void)
>  /*-------------------------------------------------------------------------*/
>  
>  extern int
> -usb_gadget_handle_interrupts(void)
> +usb_gadget_handle_interrupts(int index)
>  {
>       return pxa25x_udc_irq();
>  }
> diff --git a/drivers/usb/gadget/s3c_udc_otg.c
> b/drivers/usb/gadget/s3c_udc_otg.c index 7653f03..7a2d1e7 100644
> --- a/drivers/usb/gadget/s3c_udc_otg.c
> +++ b/drivers/usb/gadget/s3c_udc_otg.c
> @@ -833,7 +833,7 @@ int s3c_udc_probe(struct s3c_plat_otg_data *pdata)
>       return retval;
>  }
>  
> -int usb_gadget_handle_interrupts()
> +int usb_gadget_handle_interrupts(int index)
>  {
>       u32 intr_status = readl(&reg->gintsts);
>       u32 gintmsk = readl(&reg->gintmsk);
> diff --git a/drivers/usb/musb-new/musb_uboot.c
> b/drivers/usb/musb-new/musb_uboot.c index 2676f09..79f29fb 100644
> --- a/drivers/usb/musb-new/musb_uboot.c
> +++ b/drivers/usb/musb-new/musb_uboot.c
> @@ -162,7 +162,7 @@ int usb_lowlevel_stop(int index)
>  #ifdef CONFIG_MUSB_GADGET
>  static struct musb *gadget;
>  
> -int usb_gadget_handle_interrupts(void)
> +int usb_gadget_handle_interrupts(int index)
>  {
>       WATCHDOG_RESET();
>       if (!gadget || !gadget->isr)
> diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
> index 93a5ffc..230f47d 100644
> --- a/include/linux/usb/gadget.h
> +++ b/include/linux/usb/gadget.h
> @@ -937,6 +937,6 @@ 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(void);
> +extern int usb_gadget_handle_interrupts(int index);
>  
>  #endif       /* __LINUX_USB_GADGET_H */

Reviewed-by: Lukasz Majewski <l.majew...@samsung.com>

-- 
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to