diff options
Diffstat (limited to 'drivers/usb/serial/kobil_sct.c')
| -rw-r--r-- | drivers/usb/serial/kobil_sct.c | 12 | 
1 files changed, 12 insertions, 0 deletions
| diff --git a/drivers/usb/serial/kobil_sct.c b/drivers/usb/serial/kobil_sct.c index 2363654cafc9..813035f51fe7 100644 --- a/drivers/usb/serial/kobil_sct.c +++ b/drivers/usb/serial/kobil_sct.c @@ -51,6 +51,7 @@  /* Function prototypes */ +static int kobil_attach(struct usb_serial *serial);  static int kobil_port_probe(struct usb_serial_port *probe);  static int kobil_port_remove(struct usb_serial_port *probe);  static int  kobil_open(struct tty_struct *tty, struct usb_serial_port *port); @@ -86,6 +87,7 @@ static struct usb_serial_driver kobil_device = {  	.description =		"KOBIL USB smart card terminal",  	.id_table =		id_table,  	.num_ports =		1, +	.attach =		kobil_attach,  	.port_probe =		kobil_port_probe,  	.port_remove =		kobil_port_remove,  	.ioctl =		kobil_ioctl, @@ -113,6 +115,16 @@ struct kobil_private {  }; +static int kobil_attach(struct usb_serial *serial) +{ +	if (serial->num_interrupt_out < serial->num_ports) { +		dev_err(&serial->interface->dev, "missing interrupt-out endpoint\n"); +		return -ENODEV; +	} + +	return 0; +} +  static int kobil_port_probe(struct usb_serial_port *port)  {  	struct usb_serial *serial = port->serial; |