// SPDX-License-Identifier: GPL-2.0+/* * u_serial.c - utilities for USB gadget "serial port"/TTY support * * Copyright (C) 2003 Al Borchers (alborchers@steinerpoint.com) * Copyright (C) 2008 David Brownell * Copyright (C) 2008 by Nokia Corporation * * This code also borrows from usbserial.c, which is * Copyright (C) 1999 - 2002 Greg Kroah-Hartman (greg@kroah.com) * Copyright (C) 2000 Peter Berger (pberger@brimson.com) * Copyright (C) 2000 Al Borchers (alborchers@steinerpoint.com) *//* #define VERBOSE_DEBUG */#include<linux/kernel.h>#include<linux/sched.h>#include<linux/device.h>#include<linux/delay.h>#include<linux/tty.h>#include<linux/tty_flip.h>#include<linux/slab.h>#include<linux/export.h>#include<linux/module.h>#include<linux/console.h>#include<linux/kstrtox.h>#include<linux/kthread.h>#include<linux/workqueue.h>#include<linux/kfifo.h>#include"u_serial.h"/* * This component encapsulates the TTY layer glue needed to provide basic * "serial port" functionality through the USB gadget stack. Each such * port is exposed through a /dev/ttyGS