root/drivers/usb/gadget/function/g_zero.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  * This header declares the utility functions used by "Gadget Zero", plus
   4  * interfaces to its two single-configuration function drivers.
   5  */
   6 
   7 #ifndef __G_ZERO_H
   8 #define __G_ZERO_H
   9 
  10 #define GZERO_BULK_BUFLEN       4096
  11 #define GZERO_QLEN              32
  12 #define GZERO_ISOC_INTERVAL     4
  13 #define GZERO_ISOC_MAXPACKET    1024
  14 #define GZERO_SS_BULK_QLEN      1
  15 #define GZERO_SS_ISO_QLEN       8
  16 
  17 struct usb_zero_options {
  18         unsigned pattern;
  19         unsigned isoc_interval;
  20         unsigned isoc_maxpacket;
  21         unsigned isoc_mult;
  22         unsigned isoc_maxburst;
  23         unsigned bulk_buflen;
  24         unsigned qlen;
  25         unsigned ss_bulk_qlen;
  26         unsigned ss_iso_qlen;
  27 };
  28 
  29 struct f_ss_opts {
  30         struct usb_function_instance func_inst;
  31         unsigned pattern;
  32         unsigned isoc_interval;
  33         unsigned isoc_maxpacket;
  34         unsigned isoc_mult;
  35         unsigned isoc_maxburst;
  36         unsigned bulk_buflen;
  37         unsigned bulk_qlen;
  38         unsigned iso_qlen;
  39 
  40         /*
  41          * Read/write access to configfs attributes is handled by configfs.
  42          *
  43          * This is to protect the data from concurrent access by read/write
  44          * and create symlink/remove symlink.
  45          */
  46         struct mutex                    lock;
  47         int                             refcnt;
  48 };
  49 
  50 struct f_lb_opts {
  51         struct usb_function_instance func_inst;
  52         unsigned bulk_buflen;
  53         unsigned qlen;
  54 
  55         /*
  56          * Read/write access to configfs attributes is handled by configfs.
  57          *
  58          * This is to protect the data from concurrent access by read/write
  59          * and create symlink/remove symlink.
  60          */
  61         struct mutex                    lock;
  62         int                             refcnt;
  63 };
  64 
  65 void lb_modexit(void);
  66 int lb_modinit(void);
  67 
  68 /* common utilities */
  69 void disable_endpoints(struct usb_composite_dev *cdev,
  70                 struct usb_ep *in, struct usb_ep *out,
  71                 struct usb_ep *iso_in, struct usb_ep *iso_out);
  72 
  73 #endif /* __G_ZERO_H */

/* [<][>][^][v][top][bottom][index][help] */