From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tom Rini Date: Tue, 16 May 2017 15:31:58 -0400 Subject: [U-Boot] [PATCH 09/14] usb: ums: support multiple controllers using controller_index In-Reply-To: <1494936994-20026-10-git-send-email-yinbo.zhu@nxp.com> References: <1494936994-20026-1-git-send-email-yinbo.zhu@nxp.com> <1494936994-20026-10-git-send-email-yinbo.zhu@nxp.com> Message-ID: <20170516193158.GL5701@bill-the-cat> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Tue, May 16, 2017 at 08:16:29PM +0800, yinbo.zhu wrote: > From: Rajesh Bhagat > > Adds a new field in fsg_common namely controller_index to support > multiple controllers usb gadget support. > > Signed-off-by: Rajat Srivastava > Signed-off-by: Rajesh Bhagat > Acked-by: Lukasz Majewski > --- > cmd/usb_mass_storage.c | 2 +- > drivers/usb/gadget/f_mass_storage.c | 11 +++++++++-- > include/usb_mass_storage.h | 2 +- > 3 files changed, 11 insertions(+), 4 deletions(-) > > diff --git a/cmd/usb_mass_storage.c b/cmd/usb_mass_storage.c > index 86398fc..139b537 100644 > --- a/cmd/usb_mass_storage.c > +++ b/cmd/usb_mass_storage.c > @@ -214,7 +214,7 @@ int do_usb_mass_storage(cmd_tbl_t *cmdtp, int flag, > while (1) { > usb_gadget_handle_interrupts(controller_index); > > - rc = fsg_main_thread(NULL); > + rc = fsg_main_thread(controller_index); > if (rc) { > /* Check I/O error */ > if (rc == -EIO) > diff --git a/drivers/usb/gadget/f_mass_storage.c b/drivers/usb/gadget/f_mass_storage.c > index 1ecb92a..27ca5fe 100644 > --- a/drivers/usb/gadget/f_mass_storage.c > +++ b/drivers/usb/gadget/f_mass_storage.c > @@ -362,6 +362,7 @@ struct fsg_common { > char inquiry_string[8 + 16 + 4 + 1]; > > struct kref ref; > + unsigned int controller_index; > }; > > struct fsg_config { > @@ -691,7 +692,7 @@ static int sleep_thread(struct fsg_common *common) > k = 0; > } > > - usb_gadget_handle_interrupts(0); > + usb_gadget_handle_interrupts(common->controller_index); > } > common->thread_wakeup_needed = 0; > return rc; > @@ -2402,10 +2403,14 @@ static void handle_exception(struct fsg_common *common) > > /*-------------------------------------------------------------------------*/ > > -int fsg_main_thread(void *common_) > +int fsg_main_thread(unsigned int controller_index) > { > int ret; > struct fsg_common *common = the_fsg_common; > + > + /* update the controller_index */ > + common->controller_index = controller_index; > + > /* The main loop */ > do { > if (exception_in_progress(common)) { > @@ -2476,6 +2481,7 @@ static struct fsg_common *fsg_common_init(struct fsg_common *common, > > common->ops = NULL; > common->private_data = NULL; > + common->controller_index = 0; > > common->gadget = gadget; > common->ep0 = gadget->ep0; > @@ -2770,6 +2776,7 @@ int fsg_add(struct usb_configuration *c) > > fsg_common->ops = NULL; > fsg_common->private_data = NULL; > + fsg_common->controller_index = 0; > > the_fsg_common = fsg_common; > > diff --git a/include/usb_mass_storage.h b/include/usb_mass_storage.h > index 8229f62..f21cc7a 100644 > --- a/include/usb_mass_storage.h > +++ b/include/usb_mass_storage.h > @@ -28,6 +28,6 @@ struct ums { > > int fsg_init(struct ums *ums_devs, int count); > void fsg_cleanup(void); > -int fsg_main_thread(void *); > +int fsg_main_thread(unsigned int); > int fsg_add(struct usb_configuration *c); > #endif /* __USB_MASS_STORAGE_H__ */ Lukasz? -- Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: Digital signature URL: