[PATCH v4 3/4] USB: Gadget: Add Samsung S3C24XX USB High-Speed controller driver

Heiko Stübner heiko at sntech.de
Thu Apr 14 13:06:47 EDT 2011


Am Donnerstag 14 April 2011, 17:47:48 schrieb Greg KH:
> On Thu, Apr 14, 2011 at 11:35:43AM -0400, Alan Stern wrote:
> > On Thu, 14 Apr 2011, Heiko [iso-8859-1] St?bner wrote:
> > > From: Thomas Abraham <thomas.ab at samsung.com>
> > > 
> > > The Samsung's S3C2416, S3C2443 and S3C2450 includes a USB High-Speed
> > > device controller module. This driver enables support for USB
> > > high-speed gadget functionality for the Samsung S3C24xx SoC's that
> > > include this controller.
> > > 
> > > Signed-off-by: Thomas Abraham <thomas.ab at samsung.com>
> > > Signed-off-by: Sangbeom Kim <sbkim73 at samsung.com>
> > > Signed-off-by: Kukjin Kim <kgene.kim at samsung.com>
> > > Signed-off-by: Alexander Neumann <alexander at bumpern.de>
> > > Signed-off-by: Heiko Stuebner <heiko at sntech.de>
> > 
> > ...
> > 
> > > +static struct usb_ep_ops s3c_hsudc_ep_ops = {
> > > +	.enable = s3c_hsudc_ep_enable,
> > > +	.disable = s3c_hsudc_ep_disable,
> > > +	.alloc_request = s3c_hsudc_alloc_request,
> > > +	.free_request = s3c_hsudc_free_request,
> > > +	.queue = s3c_hsudc_queue,
> > > +	.dequeue = s3c_hsudc_dequeue,
> > > +	.set_halt = s3c_hsudc_set_halt,
> > > +};
> > 
> > There's no .set_wedge method.  Why do people always leave this out?
> 
> Does the code spit out a nasty warning if this isn't set?  If not, I
> would suggest adding it so that this doesn't keep happening.

From what I gathered from gadget.h the usb_ep_set_wedge function checks if 
set_wedge is defined and uses set_halt if it's missing. The comments 
surrounding usb_ep_set_wedge and usb_ep_ops also don't indicate that set_wedge 
is a must. 
As it has a fallback [through set_halt] it might therefore lead to the 
impression of being optional.

From Alan's response I gather that it isn't optional and the fallback is only 
there for older drivers.

Hopefully Thomas [the original author] reads this. He would probably be able 
to implement the set_wedge function in a tiny fraction of the time I would 
need :-), as I don't really understand the inner workings of this.


Heiko



More information about the linux-arm-kernel mailing list