linux/drivers/usb/gadget/function/g_zero.h
<<
>>
Prefs
   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
  17struct 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
  29struct 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
  50struct 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
  65void lb_modexit(void);
  66int lb_modinit(void);
  67
  68/* common utilities */
  69void 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 */
  74