USB: serial: mxuport: register two ports for unknown devices
Print a message and register two ports for interfaces for which we do not know how many ports there are instead of binding, allocating resources, but not register any ports. This provides a hint that anyone adding a dynamic device id must also provide a reference id (driver info) from which the port count can be retrieved, for example: echo <vid> <pid> 0 0x110A 0x1410 > new_id Signed-off-by: Johan Hovold <johan@kernel.org>
This commit is contained in:
parent
ea3c6ebdcb
commit
bc4c2c15cb
|
@ -950,17 +950,23 @@ static int mxuport_calc_num_ports(struct usb_serial *serial,
|
|||
struct usb_serial_endpoints *epds)
|
||||
{
|
||||
unsigned long features = (unsigned long)usb_get_serial_data(serial);
|
||||
int num_ports;
|
||||
|
||||
if (features & MX_UPORT_2_PORT)
|
||||
return 2;
|
||||
if (features & MX_UPORT_4_PORT)
|
||||
return 4;
|
||||
if (features & MX_UPORT_8_PORT)
|
||||
return 8;
|
||||
if (features & MX_UPORT_16_PORT)
|
||||
return 16;
|
||||
if (features & MX_UPORT_2_PORT) {
|
||||
num_ports = 2;
|
||||
} else if (features & MX_UPORT_4_PORT) {
|
||||
num_ports = 4;
|
||||
} else if (features & MX_UPORT_8_PORT) {
|
||||
num_ports = 8;
|
||||
} else if (features & MX_UPORT_16_PORT) {
|
||||
num_ports = 16;
|
||||
} else {
|
||||
dev_warn(&serial->interface->dev,
|
||||
"unknown device, assuming two ports\n");
|
||||
num_ports = 2;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return num_ports;
|
||||
}
|
||||
|
||||
/* Get the version of the firmware currently running. */
|
||||
|
@ -1367,7 +1373,6 @@ static struct usb_serial_driver mxuport_device = {
|
|||
},
|
||||
.description = "MOXA UPort",
|
||||
.id_table = mxuport_idtable,
|
||||
.num_ports = 0,
|
||||
.probe = mxuport_probe,
|
||||
.port_probe = mxuport_port_probe,
|
||||
.attach = mxuport_attach,
|
||||
|
|
Loading…
Reference in New Issue