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