Messages in this thread | | | Date | Wed, 30 Oct 2013 10:35:45 -0400 (EDT) | From | Alan Stern <> | Subject | Re: [RFC/PATCH v2 1/3] usb: gadget: add quirks field to struct usb_gadget |
| |
On Tue, 29 Oct 2013, David Cohen wrote:
> Due to USB controllers may have different restrictions, usb gadget layer > needs to provide a generic way to inform gadget functions to complain > with non-standard requirements. > > This patch adds 'quirks' field to struct usb_gadget and the first quirk > called USB_GADGET_QUIRK_EP_OUT_ALIGNED_SIZE necessary to inform when > controller's epout requires buffer size to be aligned to MaxPacketSize. > > Signed-off-by: David Cohen <david.a.cohen@linux.intel.com> > --- > include/linux/usb/gadget.h | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h > index 942ef5e..7014ad9 100644 > --- a/include/linux/usb/gadget.h > +++ b/include/linux/usb/gadget.h > @@ -540,6 +540,11 @@ struct usb_gadget { > struct device dev; > unsigned out_epnum; > unsigned in_epnum; > + > + u32 quirks; > +/* epout requires buffer size to be aligned to MaxPacketSize */ > +#define USB_GADGET_QUIRK_EP_OUT_ALIGNED_SIZE (1 << 0)
If you decide to go through with this, it might be better to define a series of single-bit flags instead of a single "quirks" field. For example:
unsigned quirk_ep_out_aligned_size:1;
Yes, other people (including me!) have done it your way in the past, but now this seems to make more sense.
Alan Stern
| |