Re: [PATCH v2 1/2] usb: gadget: udc-core: independent registration of gadgets and gadget drivers

From: Felipe Balbi
Date: Mon Feb 16 2015 - 08:20:03 EST


On Sun, Feb 15, 2015 at 06:23:02PM -0500, Alan Stern wrote:
> On Mon, 16 Feb 2015, Ruslan Bilovol wrote:
>
> > Change behavior during registration of gadgets and
> > gadget drivers in udc-core. Instead of previous
> > approach when for successful probe of usb gadget driver
> > at least one usb gadget should be already registered
> > use another one where gadget drivers and gadgets
> > can be registered in udc-core independently.
> >
> > Independent registration of gadgets and gadget drivers
> > is useful for built-in into kernel gadget and gadget
> > driver case - because it's possible that gadget is
> > really probed only on late_init stage (due to deferred
> > probe) whereas gadget driver's probe is silently failed
> > on module_init stage due to no any UDC added.
> >
> > Also it is useful for modules case - now there is no
> > difference what module to insert first: gadget module
> > or gadget driver one.
> >
> > Signed-off-by: Ruslan Bilovol <ruslan.bilovol@xxxxxxxxx>
> > ---
> > drivers/usb/gadget/udc/udc-core.c | 77 +++++++++++++++++++++++++++++++++++++--
> > 1 file changed, 74 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/usb/gadget/udc/udc-core.c b/drivers/usb/gadget/udc/udc-core.c
> > index 5a81cb0..71b6942 100644
> > --- a/drivers/usb/gadget/udc/udc-core.c
> > +++ b/drivers/usb/gadget/udc/udc-core.c
> > @@ -46,10 +46,18 @@ struct usb_udc {
> > struct list_head list;
> > };
> >
> > +struct pending_gadget_driver {
> > + struct usb_gadget_driver *driver;
> > + char *udc_name;
> > + struct list_head list;
> > +};
>
> Don't make this a separate structure. It should be embedded in the
> usb_gadget_driver structure. This will make a lot of the changes
> below much simpler.

right, also when resending, make sure to Cc linux-usb as well.

--
balbi

Attachment: signature.asc
Description: Digital signature