On Mon, Dec 09, 2013 at 07:35:19PM -0800, David Cohen wrote: > On 12/09/2013 06:34 PM, Michal Nazarewicz wrote: > > dOn Tue, Dec 10 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 'quirk_ep_out_aligned_size' field to struct usb_gadget > >> to inform when controller's epout requires buffer size to be aligned to > >> MaxPacketSize. A helper is also provided to align buffer size when > >> necessary. > >> > >> Signed-off-by: David Cohen <david.a.cohen@xxxxxxxxxxxxxxx> > >> Cc: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> > >> Cc: Michal Nazarewicz <mina86@xxxxxxxxxx> > > > > Acked-by: Michal Nazarewicz <mina86@xxxxxxxxxx> > > > >> --- > >> include/linux/usb/gadget.h | 20 ++++++++++++++++++++ > >> 1 file changed, 20 insertions(+) > >> > >> diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h > >> index 23b3bfd0a842..cae8a6216551 100644 > >> --- a/include/linux/usb/gadget.h > >> +++ b/include/linux/usb/gadget.h > >> @@ -502,6 +502,8 @@ struct usb_gadget_ops { > >> * only supports HNP on a different root port. > >> * @b_hnp_enable: OTG device feature flag, indicating that the A-Host > >> * enabled HNP support. > >> + * @quirk_ep_out_aligned_size: epout requires buffer size to be aligned to > >> + * MaxPacketSize. > >> * > >> * Gadgets have a mostly-portable "gadget driver" implementing device > >> * functions, handling all usb configurations and interfaces. Gadget > >> @@ -541,6 +543,7 @@ struct usb_gadget { > >> unsigned b_hnp_enable:1; > >> unsigned a_hnp_support:1; > >> unsigned a_alt_hnp_support:1; > >> + unsigned quirk_ep_out_aligned_size:1; > >> }; > >> #define work_to_gadget(w) (container_of((w), struct usb_gadget, work)) > >> > >> @@ -559,6 +562,23 @@ static inline struct usb_gadget *dev_to_usb_gadget(struct device *dev) > >> > >> > >> /** > >> + * usb_ep_align_maybe - returns @len aligned to ep's maxpacketsize if gadget > >> + * requires quirk_ep_out_aligned_size, otherwise reguens len. > > > > “returns” > > I've got no idea how returns became reguens :) > But maybe Felipe can fix it when applying? Sure, but you owe me a beer hehe :-) -- balbi
Attachment:
signature.asc
Description: Digital signature