USB: serial: metro-usb: remove function prototypes

By rearranging the functions a bit, we can remove all function
prototypes.

Note, this also deleted the _close function, as it wasn't needed, it was
doing the same thing the cleanup function did, so just call that
instead.

Cc: Aleksey Babahin <tamerlan311@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
diff --git a/drivers/usb/serial/metro-usb.c b/drivers/usb/serial/metro-usb.c
index 66e9355..8758e01 100644
--- a/drivers/usb/serial/metro-usb.c
+++ b/drivers/usb/serial/metro-usb.c
@@ -56,153 +56,6 @@
 /* Input parameter constants. */
 static bool debug;
 
-/* Function prototypes. */
-static void metrousb_cleanup(struct usb_serial_port *port);
-static void metrousb_close(struct usb_serial_port *port);
-static int  metrousb_open(struct tty_struct *tty, struct usb_serial_port *port);
-static void metrousb_read_int_callback(struct urb *urb);
-static void metrousb_shutdown(struct usb_serial *serial);
-static int metrousb_startup(struct usb_serial *serial);
-static void metrousb_throttle(struct tty_struct *tty);
-static int metrousb_tiocmget(struct tty_struct *tty);
-static int metrousb_tiocmset(struct tty_struct *tty, unsigned int set, unsigned int clear);
-static void metrousb_unthrottle(struct tty_struct *tty);
-
-/* Driver structure. */
-static struct usb_driver metrousb_driver = {
-	.name =		"metro-usb",
-	.probe =	usb_serial_probe,
-	.disconnect =	usb_serial_disconnect,
-	.id_table =	id_table
-};
-
-/* Device structure. */
-static struct usb_serial_driver metrousb_device = {
-	.driver = {
-		.owner =	THIS_MODULE,
-		.name =		"metro-usb",
-	},
-	.description		= "Metrologic USB to serial converter.",
-	.id_table		= id_table,
-	.num_ports		= 1,
-	.open			= metrousb_open,
-	.close			= metrousb_close,
-	.read_int_callback	= metrousb_read_int_callback,
-	.attach			= metrousb_startup,
-	.release		= metrousb_shutdown,
-	.throttle		= metrousb_throttle,
-	.unthrottle		= metrousb_unthrottle,
-	.tiocmget		= metrousb_tiocmget,
-	.tiocmset		= metrousb_tiocmset,
-};
-
-static struct usb_serial_driver * const serial_drivers[] = {
-	&metrousb_device,
-	NULL,
-};
-
-/* ----------------------------------------------------------------------------------------------
-  Description:
-	Clean up any urbs and port information.
-
-  Input:
-	struct usb_serial_port *: pointer to a usb_serial_port structure.
-
-  Output:
-	int: Returns true (0) if successful, false otherwise.
-*/
-static void metrousb_cleanup(struct usb_serial_port *port)
-{
-	dbg("METRO-USB - %s - port number=%d", __FUNCTION__, port->number);
-
-	if (port->serial->dev) {
-		/* Shutdown any interrupt in urbs. */
-		if (port->interrupt_in_urb) {
-			usb_unlink_urb(port->interrupt_in_urb);
-			usb_kill_urb(port->interrupt_in_urb);
-		}
-	}
-}
-
-/* ----------------------------------------------------------------------------------------------
-  Description:
-	Close the open serial port. Cleanup any open serial port information.
-
-  Input:
-	struct usb_serial_port *: pointer to a usb_serial_port structure.
-	struct file *: pointer to a file structure.
-
-  Output:
-	int: Returns true (0) if successful, false otherwise.
-*/
-static void metrousb_close(struct usb_serial_port *port)
-{
-	dbg("METRO-USB - %s - port number=%d", __FUNCTION__, port->number);
-	metrousb_cleanup(port);
-}
-
-/* ----------------------------------------------------------------------------------------------
-  Description:
-	Open the drivers serial port.
-
-  Input:
-	struct usb_serial_port *: pointer to a usb_serial_port structure.
-	struct file *: pointer to a file structure.
-
-  Output:
-	int: Returns true (0) if successful, false otherwise.
-*/
-static int metrousb_open(struct tty_struct *tty, struct usb_serial_port *port)
-{
-	struct usb_serial *serial = port->serial;
-	struct metrousb_private *metro_priv = usb_get_serial_port_data(port);
-	unsigned long flags = 0;
-	int result = 0;
-
-	dbg("METRO-USB - %s - port number=%d", __FUNCTION__, port->number);
-
-	/* Make sure the urb is initialized. */
-	if (!port->interrupt_in_urb) {
-		dbg("METRO-USB - %s - interrupt urb not initialized for port number=%d", __FUNCTION__, port->number);
-		return -ENODEV;
-	}
-
-	/* Set the private data information for the port. */
-	spin_lock_irqsave(&metro_priv->lock, flags);
-	metro_priv->control_state = 0;
-	metro_priv->throttled = 0;
-	spin_unlock_irqrestore(&metro_priv->lock, flags);
-
-	/*
-	 * Force low_latency on so that our tty_push actually forces the data
-	 * through, otherwise it is scheduled, and with high data rates (like
-	 * with OHCI) data can get lost.
-	 */
-	if (tty)
-		tty->low_latency = 1;
-
-	/* Clear the urb pipe. */
-	usb_clear_halt(serial->dev, port->interrupt_in_urb->pipe);
-
-	/* Start reading from the device */
-	usb_fill_int_urb(port->interrupt_in_urb, serial->dev,
-			  usb_rcvintpipe(serial->dev, port->interrupt_in_endpointAddress),
-			   port->interrupt_in_urb->transfer_buffer,
-			   port->interrupt_in_urb->transfer_buffer_length,
-			   metrousb_read_int_callback, port, 1);
-	result = usb_submit_urb(port->interrupt_in_urb, GFP_KERNEL);
-
-	if (result) {
-		dbg("METRO-USB - %s - failed submitting interrupt in urb for port number=%d, error code=%d"
-			, __FUNCTION__, port->number, result);
-		goto exit;
-	}
-
-	dbg("METRO-USB - %s - port open for port number=%d", __FUNCTION__, port->number);
-exit:
-	return result;
-}
-
 /* ----------------------------------------------------------------------------------------------
   Description:
 	Read the port from the read interrupt.
@@ -293,6 +146,91 @@
 
 /* ----------------------------------------------------------------------------------------------
   Description:
+	Clean up any urbs and port information.
+
+  Input:
+	struct usb_serial_port *: pointer to a usb_serial_port structure.
+
+  Output:
+	int: Returns true (0) if successful, false otherwise.
+*/
+static void metrousb_cleanup(struct usb_serial_port *port)
+{
+	dbg("METRO-USB - %s - port number=%d", __FUNCTION__, port->number);
+
+	if (port->serial->dev) {
+		/* Shutdown any interrupt in urbs. */
+		if (port->interrupt_in_urb) {
+			usb_unlink_urb(port->interrupt_in_urb);
+			usb_kill_urb(port->interrupt_in_urb);
+		}
+	}
+}
+
+/* ----------------------------------------------------------------------------------------------
+  Description:
+	Open the drivers serial port.
+
+  Input:
+	struct usb_serial_port *: pointer to a usb_serial_port structure.
+	struct file *: pointer to a file structure.
+
+  Output:
+	int: Returns true (0) if successful, false otherwise.
+*/
+static int metrousb_open(struct tty_struct *tty, struct usb_serial_port *port)
+{
+	struct usb_serial *serial = port->serial;
+	struct metrousb_private *metro_priv = usb_get_serial_port_data(port);
+	unsigned long flags = 0;
+	int result = 0;
+
+	dbg("METRO-USB - %s - port number=%d", __FUNCTION__, port->number);
+
+	/* Make sure the urb is initialized. */
+	if (!port->interrupt_in_urb) {
+		dbg("METRO-USB - %s - interrupt urb not initialized for port number=%d", __FUNCTION__, port->number);
+		return -ENODEV;
+	}
+
+	/* Set the private data information for the port. */
+	spin_lock_irqsave(&metro_priv->lock, flags);
+	metro_priv->control_state = 0;
+	metro_priv->throttled = 0;
+	spin_unlock_irqrestore(&metro_priv->lock, flags);
+
+	/*
+	 * Force low_latency on so that our tty_push actually forces the data
+	 * through, otherwise it is scheduled, and with high data rates (like
+	 * with OHCI) data can get lost.
+	 */
+	if (tty)
+		tty->low_latency = 1;
+
+	/* Clear the urb pipe. */
+	usb_clear_halt(serial->dev, port->interrupt_in_urb->pipe);
+
+	/* Start reading from the device */
+	usb_fill_int_urb(port->interrupt_in_urb, serial->dev,
+			  usb_rcvintpipe(serial->dev, port->interrupt_in_endpointAddress),
+			   port->interrupt_in_urb->transfer_buffer,
+			   port->interrupt_in_urb->transfer_buffer_length,
+			   metrousb_read_int_callback, port, 1);
+	result = usb_submit_urb(port->interrupt_in_urb, GFP_KERNEL);
+
+	if (result) {
+		dbg("METRO-USB - %s - failed submitting interrupt in urb for port number=%d, error code=%d"
+			, __FUNCTION__, port->number, result);
+		goto exit;
+	}
+
+	dbg("METRO-USB - %s - port open for port number=%d", __FUNCTION__, port->number);
+exit:
+	return result;
+}
+
+/* ----------------------------------------------------------------------------------------------
+  Description:
 	Set the modem control state for the entered serial port.
 
   Input:
@@ -522,6 +460,39 @@
 	}
 }
 
+/* Driver structure. */
+static struct usb_driver metrousb_driver = {
+	.name =		"metro-usb",
+	.probe =	usb_serial_probe,
+	.disconnect =	usb_serial_disconnect,
+	.id_table =	id_table
+};
+
+/* Device structure. */
+static struct usb_serial_driver metrousb_device = {
+	.driver = {
+		.owner =	THIS_MODULE,
+		.name =		"metro-usb",
+	},
+	.description		= "Metrologic USB to serial converter.",
+	.id_table		= id_table,
+	.num_ports		= 1,
+	.open			= metrousb_open,
+	.close			= metrousb_cleanup,
+	.read_int_callback	= metrousb_read_int_callback,
+	.attach			= metrousb_startup,
+	.release		= metrousb_shutdown,
+	.throttle		= metrousb_throttle,
+	.unthrottle		= metrousb_unthrottle,
+	.tiocmget		= metrousb_tiocmget,
+	.tiocmset		= metrousb_tiocmset,
+};
+
+static struct usb_serial_driver * const serial_drivers[] = {
+	&metrousb_device,
+	NULL,
+};
+
 module_usb_serial_driver(metrousb_driver, serial_drivers);
 
 MODULE_LICENSE("GPL");