On Wed, Jul 30, 2014 at 07:28:24PM +0400, Sergei Shtylyov wrote: > On 07/30/2014 01:43 PM, Robert Baldyga wrote: > > >This patch introduces ioctl named FUNCTIONFS_ENDPOINT_DESC, which > >returns endpoint descriptor to userspace. It works only if function > >is active. > > >Signed-off-by: Robert Baldyga <r.baldyga@xxxxxxxxxxx> > >--- > > drivers/usb/gadget/f_fs.c | 17 +++++++++++++++++ > > include/uapi/linux/usb/functionfs.h | 6 ++++++ > > 2 files changed, 23 insertions(+) > > >diff --git a/drivers/usb/gadget/f_fs.c b/drivers/usb/gadget/f_fs.c > >index 6b806be..7f16c5a 100644 > >--- a/drivers/usb/gadget/f_fs.c > >+++ b/drivers/usb/gadget/f_fs.c > >@@ -1031,6 +1031,23 @@ static long ffs_epfile_ioctl(struct file *file, unsigned code, > > case FUNCTIONFS_ENDPOINT_REVMAP: > > ret = epfile->ep->num; > > break; > >+ case FUNCTIONFS_ENDPOINT_DESC: > >+ { > >+ int desc_idx; > >+ struct usb_endpoint_descriptor *desc; > >+ > >+ if (epfile->ffs->gadget->speed == USB_SPEED_SUPER) > >+ desc_idx = 2; > >+ else if (epfile->ffs->gadget->speed == USB_SPEED_HIGH) > >+ desc_idx = 1; > >+ else > >+ desc_idx = 0; > > I think the above is asking to be a *switch* statement instead. agreed. -- balbi
Attachment:
signature.asc
Description: Digital signature