[U-Boot] [PATCH 09/14] usb: ums: support multiple controllers using controller_index

Lukasz Majewski lukma at denx.de
Tue May 16 21:00:03 UTC 2017


Hi Tom,

> On Tue, May 16, 2017 at 08:16:29PM +0800, yinbo.zhu wrote:
> 
> > From: Rajesh Bhagat <rajesh.bhagat at nxp.com>
> > 
> > Adds a new field in fsg_common namely controller_index to support
> > multiple controllers usb gadget support.
> > 
> > Signed-off-by: Rajat Srivastava <rajat.srivastava at nxp.com>
> > Signed-off-by: Rajesh Bhagat <rajesh.bhagat at nxp.com>
> > Acked-by: Lukasz Majewski <l.majewski at samsung.com>

I've already acked this patch :-)

Best regards,
Ɓukasz

> > ---
> >  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?
> 




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20170516/d7ae2497/attachment.sig>


More information about the U-Boot mailing list