There is no reason to limit the number of line6 devices. Drop the static array. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> --- drivers/staging/line6/driver.c | 20 +------------------- drivers/staging/line6/driver.h | 2 -- 2 files changed, 1 insertion(+), 21 deletions(-) diff --git a/drivers/staging/line6/driver.c b/drivers/staging/line6/driver.c index b8358ca..ac11a3b 100644 --- a/drivers/staging/line6/driver.c +++ b/drivers/staging/line6/driver.c @@ -96,8 +96,6 @@ static const char line6_request_version[] = { 0xf0, 0x7e, 0x7f, 0x06, 0x01, 0xf7 }; -struct usb_line6 *line6_devices[LINE6_MAX_DEVICES]; - /** Class for asynchronous messages. */ @@ -740,7 +738,6 @@ static int line6_probe(struct usb_interface *interface, struct usb_device *usbdev; struct usb_line6 *line6; const struct line6_properties *properties; - int devnum; int interface_number, alternate = 0; int product; int size = 0; @@ -774,16 +771,6 @@ static int line6_probe(struct usb_interface *interface, goto err_put; } - /* find free slot in device table: */ - for (devnum = 0; devnum < LINE6_MAX_DEVICES; ++devnum) - if (line6_devices[devnum] == NULL) - break; - - if (devnum == LINE6_MAX_DEVICES) { - ret = -ENODEV; - goto err_put; - } - /* initialize device info: */ properties = &line6_properties_table[devtype]; dev_info(&interface->dev, "Line6 %s found\n", properties->name); @@ -1112,7 +1099,6 @@ static int line6_probe(struct usb_interface *interface, dev_info(&interface->dev, "Line6 %s now attached\n", line6->properties->name); - line6_devices[devnum] = line6; switch (product) { case LINE6_DEVID_PODX3: @@ -1141,7 +1127,7 @@ static void line6_disconnect(struct usb_interface *interface) { struct usb_line6 *line6; struct usb_device *usbdev; - int interface_number, i; + int interface_number; if (interface == NULL) return; @@ -1214,10 +1200,6 @@ static void line6_disconnect(struct usb_interface *interface) dev_info(&interface->dev, "Line6 %s now disconnected\n", line6->properties->name); - - for (i = LINE6_MAX_DEVICES; i--;) - if (line6_devices[i] == line6) - line6_devices[i] = NULL; } line6_destruct(interface); diff --git a/drivers/staging/line6/driver.h b/drivers/staging/line6/driver.h index a3029eb..35246cf 100644 --- a/drivers/staging/line6/driver.h +++ b/drivers/staging/line6/driver.h @@ -25,7 +25,6 @@ #endif #define LINE6_TIMEOUT 1 -#define LINE6_MAX_DEVICES 8 #define LINE6_BUFSIZE_LISTEN 32 #define LINE6_MESSAGE_MAXLEN 256 @@ -78,7 +77,6 @@ do { \ } while (0) extern const unsigned char line6_midi_id[3]; -extern struct usb_line6 *line6_devices[LINE6_MAX_DEVICES]; static const int SYSEX_DATA_OFS = sizeof(line6_midi_id) + 3; static const int SYSEX_EXTRA_SIZE = sizeof(line6_midi_id) + 4; -- 1.7.11.7 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel