|
|
@@ -68,6 +68,16 @@ struct iuu_private {
|
|
|
u32 clk;
|
|
|
};
|
|
|
|
|
|
+static int iuu_attach(struct usb_serial *serial)
|
|
|
+{
|
|
|
+ unsigned char num_ports = serial->num_ports;
|
|
|
+
|
|
|
+ if (serial->num_bulk_in < num_ports || serial->num_bulk_out < num_ports)
|
|
|
+ return -ENODEV;
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
static int iuu_port_probe(struct usb_serial_port *port)
|
|
|
{
|
|
|
struct iuu_private *priv;
|
|
|
@@ -1196,6 +1206,7 @@ static struct usb_serial_driver iuu_device = {
|
|
|
.tiocmset = iuu_tiocmset,
|
|
|
.set_termios = iuu_set_termios,
|
|
|
.init_termios = iuu_init_termios,
|
|
|
+ .attach = iuu_attach,
|
|
|
.port_probe = iuu_port_probe,
|
|
|
.port_remove = iuu_port_remove,
|
|
|
};
|