Commit 455b4f7e authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman

USB: serial: increase the number of devices we support

We had the limit of 255 USB to serial devices on one system for almost
15 years, with no complaints.  But now it's time to move on from these
tiny "baby" systems, and bump the number up to 512, which should last
us a few more years:
	"512 is a nice number" -- Tobias Winter

Note, this is still a static value, and uses up tty core memory with
this many tty devices allocated.  Converting the driver to use
TTY_DRIVER_DYNAMIC_DEV is the next thing to do in order to remove this
limitation.
Reported-by: default avatarTobias Winter <tobias@linuxdingsda.de>
Tested-by: default avatarTobias Winter <tobias@linuxdingsda.de>
Reviewed-by: default avatarJohan Hovold <jhovold@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent e5b1e206
...@@ -43,6 +43,9 @@ ...@@ -43,6 +43,9 @@
#define DRIVER_AUTHOR "Greg Kroah-Hartman <gregkh@linuxfoundation.org>" #define DRIVER_AUTHOR "Greg Kroah-Hartman <gregkh@linuxfoundation.org>"
#define DRIVER_DESC "USB Serial Driver core" #define DRIVER_DESC "USB Serial Driver core"
#define USB_SERIAL_TTY_MAJOR 188
#define USB_SERIAL_TTY_MINORS 512 /* should be enough for a while */
/* There is no MODULE_DEVICE_TABLE for usbserial.c. Instead /* There is no MODULE_DEVICE_TABLE for usbserial.c. Instead
the MODULE_DEVICE_TABLE declarations in each serial driver the MODULE_DEVICE_TABLE declarations in each serial driver
cause the "hotplug" program to pull in whatever module is necessary cause the "hotplug" program to pull in whatever module is necessary
...@@ -449,7 +452,7 @@ static int serial_proc_show(struct seq_file *m, void *v) ...@@ -449,7 +452,7 @@ static int serial_proc_show(struct seq_file *m, void *v)
char tmp[40]; char tmp[40];
seq_puts(m, "usbserinfo:1.0 driver:2.0\n"); seq_puts(m, "usbserinfo:1.0 driver:2.0\n");
for (i = 0; i < SERIAL_TTY_MINORS; ++i) { for (i = 0; i < USB_SERIAL_TTY_MINORS; ++i) {
port = usb_serial_port_get_by_minor(i); port = usb_serial_port_get_by_minor(i);
if (port == NULL) if (port == NULL)
continue; continue;
...@@ -1217,7 +1220,7 @@ static int __init usb_serial_init(void) ...@@ -1217,7 +1220,7 @@ static int __init usb_serial_init(void)
{ {
int result; int result;
usb_serial_tty_driver = alloc_tty_driver(SERIAL_TTY_MINORS); usb_serial_tty_driver = alloc_tty_driver(USB_SERIAL_TTY_MINORS);
if (!usb_serial_tty_driver) if (!usb_serial_tty_driver)
return -ENOMEM; return -ENOMEM;
...@@ -1230,7 +1233,7 @@ static int __init usb_serial_init(void) ...@@ -1230,7 +1233,7 @@ static int __init usb_serial_init(void)
usb_serial_tty_driver->driver_name = "usbserial"; usb_serial_tty_driver->driver_name = "usbserial";
usb_serial_tty_driver->name = "ttyUSB"; usb_serial_tty_driver->name = "ttyUSB";
usb_serial_tty_driver->major = SERIAL_TTY_MAJOR; usb_serial_tty_driver->major = USB_SERIAL_TTY_MAJOR;
usb_serial_tty_driver->minor_start = 0; usb_serial_tty_driver->minor_start = 0;
usb_serial_tty_driver->type = TTY_DRIVER_TYPE_SERIAL; usb_serial_tty_driver->type = TTY_DRIVER_TYPE_SERIAL;
usb_serial_tty_driver->subtype = SERIAL_TYPE_NORMAL; usb_serial_tty_driver->subtype = SERIAL_TYPE_NORMAL;
......
...@@ -19,9 +19,6 @@ ...@@ -19,9 +19,6 @@
#include <linux/sysrq.h> #include <linux/sysrq.h>
#include <linux/kfifo.h> #include <linux/kfifo.h>
#define SERIAL_TTY_MAJOR 188 /* Nice legal number now */
#define SERIAL_TTY_MINORS 254 /* loads of devices :) */
/* The maximum number of ports one device can grab at once */ /* The maximum number of ports one device can grab at once */
#define MAX_NUM_PORTS 8 #define MAX_NUM_PORTS 8
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment