mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-27 12:37:59 +07:00
24ceb9c669
Now that the SPDX tag is in all USB files, that identifies the license in a specific and legally-defined manner. So the extra GPL text wording can be removed as it is no longer needed at all. This is done on a quest to remove the 700+ different ways that files in the kernel describe the GPL license text. And there's unneeded stuff like the address (sometimes incorrect) for the FSF which is never needed. No copyright headers or other non-license-description text was removed. Cc: Oliver Neukum <oneukum@suse.com> Cc: Johan Hovold <johan@kernel.org> Cc: Jerry Zhang <zhangjerry@google.com> Cc: John Keeping <john@metanate.com> Cc: Krzysztof Opasiak <k.opasiak@samsung.com> Cc: Abdulhadi Mohamed <abdulahhadi2@gmail.com> Cc: Matthew Wilcox <willy@linux.intel.com> Cc: Janusz Dziedzic <januszx.dziedzic@linux.intel.com> Acked-by: Felipe Balbi <felipe.balbi@linux.intel.com> Acked-by: Michal Nazarewicz <mina86@mina86.com> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Acked-by: Vincent Pelletier <plr.vincent@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
69 lines
2.0 KiB
C
69 lines
2.0 KiB
C
// SPDX-License-Identifier: GPL-2.0+
|
|
/*
|
|
* u_serial.h - interface to USB gadget "serial port"/TTY utilities
|
|
*
|
|
* Copyright (C) 2008 David Brownell
|
|
* Copyright (C) 2008 by Nokia Corporation
|
|
*/
|
|
|
|
#ifndef __U_SERIAL_H
|
|
#define __U_SERIAL_H
|
|
|
|
#include <linux/usb/composite.h>
|
|
#include <linux/usb/cdc.h>
|
|
|
|
#define MAX_U_SERIAL_PORTS 4
|
|
|
|
struct f_serial_opts {
|
|
struct usb_function_instance func_inst;
|
|
u8 port_num;
|
|
};
|
|
|
|
/*
|
|
* One non-multiplexed "serial" I/O port ... there can be several of these
|
|
* on any given USB peripheral device, if it provides enough endpoints.
|
|
*
|
|
* The "u_serial" utility component exists to do one thing: manage TTY
|
|
* style I/O using the USB peripheral endpoints listed here, including
|
|
* hookups to sysfs and /dev for each logical "tty" device.
|
|
*
|
|
* REVISIT at least ACM could support tiocmget() if needed.
|
|
*
|
|
* REVISIT someday, allow multiplexing several TTYs over these endpoints.
|
|
*/
|
|
struct gserial {
|
|
struct usb_function func;
|
|
|
|
/* port is managed by gserial_{connect,disconnect} */
|
|
struct gs_port *ioport;
|
|
|
|
struct usb_ep *in;
|
|
struct usb_ep *out;
|
|
|
|
/* REVISIT avoid this CDC-ACM support harder ... */
|
|
struct usb_cdc_line_coding port_line_coding; /* 9600-8-N-1 etc */
|
|
|
|
/* notification callbacks */
|
|
void (*connect)(struct gserial *p);
|
|
void (*disconnect)(struct gserial *p);
|
|
int (*send_break)(struct gserial *p, int duration);
|
|
};
|
|
|
|
/* utilities to allocate/free request and buffer */
|
|
struct usb_request *gs_alloc_req(struct usb_ep *ep, unsigned len, gfp_t flags);
|
|
void gs_free_req(struct usb_ep *, struct usb_request *req);
|
|
|
|
/* management of individual TTY ports */
|
|
int gserial_alloc_line(unsigned char *port_line);
|
|
void gserial_free_line(unsigned char port_line);
|
|
|
|
/* connect/disconnect is handled by individual functions */
|
|
int gserial_connect(struct gserial *, u8 port_num);
|
|
void gserial_disconnect(struct gserial *);
|
|
|
|
/* functions are bound to configurations by a config or gadget driver */
|
|
int gser_bind_config(struct usb_configuration *c, u8 port_num);
|
|
int obex_bind_config(struct usb_configuration *c, u8 port_num);
|
|
|
|
#endif /* __U_SERIAL_H */
|