diff options
Diffstat (limited to 'drivers/usb/serial/option.c')
| -rw-r--r-- | drivers/usb/serial/option.c | 162 | 
1 files changed, 131 insertions, 31 deletions
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c index 73f8277f88f..6fa1ec441b6 100644 --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c @@ -79,38 +79,36 @@ static int  option_send_setup(struct tty_struct *tty, struct usb_serial_port *po  #define OPTION_PRODUCT_VIPER			0x6600  #define OPTION_PRODUCT_VIPER_BUS		0x6601  #define OPTION_PRODUCT_GT_MAX_READY		0x6701 -#define OPTION_PRODUCT_GT_MAX			0x6711  #define OPTION_PRODUCT_FUJI_MODEM_LIGHT		0x6721  #define OPTION_PRODUCT_FUJI_MODEM_GT		0x6741  #define OPTION_PRODUCT_FUJI_MODEM_EX		0x6761 -#define OPTION_PRODUCT_FUJI_NETWORK_LIGHT	0x6731 -#define OPTION_PRODUCT_FUJI_NETWORK_GT		0x6751 -#define OPTION_PRODUCT_FUJI_NETWORK_EX		0x6771  #define OPTION_PRODUCT_KOI_MODEM		0x6800 -#define OPTION_PRODUCT_KOI_NETWORK		0x6811  #define OPTION_PRODUCT_SCORPION_MODEM		0x6901 -#define OPTION_PRODUCT_SCORPION_NETWORK		0x6911  #define OPTION_PRODUCT_ETNA_MODEM		0x7001 -#define OPTION_PRODUCT_ETNA_NETWORK		0x7011  #define OPTION_PRODUCT_ETNA_MODEM_LITE		0x7021  #define OPTION_PRODUCT_ETNA_MODEM_GT		0x7041  #define OPTION_PRODUCT_ETNA_MODEM_EX		0x7061 -#define OPTION_PRODUCT_ETNA_NETWORK_LITE	0x7031 -#define OPTION_PRODUCT_ETNA_NETWORK_GT		0x7051 -#define OPTION_PRODUCT_ETNA_NETWORK_EX		0x7071  #define OPTION_PRODUCT_ETNA_KOI_MODEM		0x7100 -#define OPTION_PRODUCT_ETNA_KOI_NETWORK		0x7111  #define HUAWEI_VENDOR_ID			0x12D1  #define HUAWEI_PRODUCT_E600			0x1001  #define HUAWEI_PRODUCT_E220			0x1003  #define HUAWEI_PRODUCT_E220BIS			0x1004  #define HUAWEI_PRODUCT_E1401			0x1401 +#define HUAWEI_PRODUCT_E1402			0x1402  #define HUAWEI_PRODUCT_E1403			0x1403 +#define HUAWEI_PRODUCT_E1404			0x1404  #define HUAWEI_PRODUCT_E1405			0x1405  #define HUAWEI_PRODUCT_E1406			0x1406 +#define HUAWEI_PRODUCT_E1407			0x1407  #define HUAWEI_PRODUCT_E1408			0x1408  #define HUAWEI_PRODUCT_E1409			0x1409 +#define HUAWEI_PRODUCT_E140A			0x140A +#define HUAWEI_PRODUCT_E140B			0x140B +#define HUAWEI_PRODUCT_E140C			0x140C +#define HUAWEI_PRODUCT_E140D			0x140D +#define HUAWEI_PRODUCT_E140E			0x140E +#define HUAWEI_PRODUCT_E140F			0x140F  #define HUAWEI_PRODUCT_E1410			0x1410  #define HUAWEI_PRODUCT_E1411			0x1411  #define HUAWEI_PRODUCT_E1412			0x1412 @@ -121,9 +119,52 @@ static int  option_send_setup(struct tty_struct *tty, struct usb_serial_port *po  #define HUAWEI_PRODUCT_E1417			0x1417  #define HUAWEI_PRODUCT_E1418			0x1418  #define HUAWEI_PRODUCT_E1419			0x1419 +#define HUAWEI_PRODUCT_E141A			0x141A +#define HUAWEI_PRODUCT_E141B			0x141B +#define HUAWEI_PRODUCT_E141C			0x141C +#define HUAWEI_PRODUCT_E141D			0x141D +#define HUAWEI_PRODUCT_E141E			0x141E +#define HUAWEI_PRODUCT_E141F			0x141F +#define HUAWEI_PRODUCT_E1420			0x1420 +#define HUAWEI_PRODUCT_E1421			0x1421 +#define HUAWEI_PRODUCT_E1422			0x1422 +#define HUAWEI_PRODUCT_E1423			0x1423 +#define HUAWEI_PRODUCT_E1424			0x1424 +#define HUAWEI_PRODUCT_E1425			0x1425 +#define HUAWEI_PRODUCT_E1426			0x1426 +#define HUAWEI_PRODUCT_E1427			0x1427 +#define HUAWEI_PRODUCT_E1428			0x1428 +#define HUAWEI_PRODUCT_E1429			0x1429 +#define HUAWEI_PRODUCT_E142A			0x142A +#define HUAWEI_PRODUCT_E142B			0x142B +#define HUAWEI_PRODUCT_E142C			0x142C +#define HUAWEI_PRODUCT_E142D			0x142D +#define HUAWEI_PRODUCT_E142E			0x142E +#define HUAWEI_PRODUCT_E142F			0x142F +#define HUAWEI_PRODUCT_E1430			0x1430 +#define HUAWEI_PRODUCT_E1431			0x1431 +#define HUAWEI_PRODUCT_E1432			0x1432 +#define HUAWEI_PRODUCT_E1433			0x1433 +#define HUAWEI_PRODUCT_E1434			0x1434 +#define HUAWEI_PRODUCT_E1435			0x1435 +#define HUAWEI_PRODUCT_E1436			0x1436 +#define HUAWEI_PRODUCT_E1437			0x1437 +#define HUAWEI_PRODUCT_E1438			0x1438 +#define HUAWEI_PRODUCT_E1439			0x1439 +#define HUAWEI_PRODUCT_E143A			0x143A +#define HUAWEI_PRODUCT_E143B			0x143B +#define HUAWEI_PRODUCT_E143C			0x143C +#define HUAWEI_PRODUCT_E143D			0x143D +#define HUAWEI_PRODUCT_E143E			0x143E +#define HUAWEI_PRODUCT_E143F			0x143F  #define NOVATELWIRELESS_VENDOR_ID		0x1410 +/* YISO PRODUCTS */ + +#define YISO_VENDOR_ID				0x0EAB +#define YISO_PRODUCT_U893			0xC893 +  /* MERLIN EVDO PRODUCTS */  #define NOVATELWIRELESS_PRODUCT_V640		0x1100  #define NOVATELWIRELESS_PRODUCT_V620		0x1110 @@ -218,8 +259,19 @@ static int  option_send_setup(struct tty_struct *tty, struct usb_serial_port *po  /* ZTE PRODUCTS */  #define ZTE_VENDOR_ID				0x19d2  #define ZTE_PRODUCT_MF628			0x0015 +#define ZTE_PRODUCT_MF626			0x0031  #define ZTE_PRODUCT_CDMA_TECH			0xfffe +/* Ericsson products */ +#define ERICSSON_VENDOR_ID			0x0bdb +#define ERICSSON_PRODUCT_F3507G			0x1900 + +/* Pantech products */ +#define PANTECH_VENDOR_ID			0x106c +#define PANTECH_PRODUCT_PC5740			0x3701 +#define PANTECH_PRODUCT_PC5750			0x3702  /* PX-500 */ +#define PANTECH_PRODUCT_UM150			0x3711 +  static struct usb_device_id option_ids[] = {  	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },  	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) }, @@ -235,36 +287,34 @@ static struct usb_device_id option_ids[] = {  	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_VIPER) },  	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_VIPER_BUS) },  	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_GT_MAX_READY) }, -	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_GT_MAX) },  	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_MODEM_LIGHT) },  	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_MODEM_GT) },  	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_MODEM_EX) }, -	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_NETWORK_LIGHT) }, -	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_NETWORK_GT) }, -	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_NETWORK_EX) },  	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_KOI_MODEM) }, -	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_KOI_NETWORK) },  	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_SCORPION_MODEM) }, -	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_SCORPION_NETWORK) },  	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM) }, -	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_NETWORK) },  	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM_LITE) },  	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM_GT) },  	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM_EX) }, -	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_NETWORK_LITE) }, -	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_NETWORK_GT) }, -	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_NETWORK_EX) },  	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_KOI_MODEM) }, -	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_KOI_NETWORK) },  	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600, 0xff, 0xff, 0xff) },  	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220, 0xff, 0xff, 0xff) },  	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220BIS, 0xff, 0xff, 0xff) },  	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1401, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1402, 0xff, 0xff, 0xff) },  	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1403, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1404, 0xff, 0xff, 0xff) },  	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1405, 0xff, 0xff, 0xff) },  	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1406, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1407, 0xff, 0xff, 0xff) },  	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1408, 0xff, 0xff, 0xff) },  	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1409, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140A, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140B, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140C, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140D, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140E, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140F, 0xff, 0xff, 0xff) },  	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1410, 0xff, 0xff, 0xff) },  	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1411, 0xff, 0xff, 0xff) },  	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1412, 0xff, 0xff, 0xff) }, @@ -275,6 +325,44 @@ static struct usb_device_id option_ids[] = {  	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1417, 0xff, 0xff, 0xff) },  	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1418, 0xff, 0xff, 0xff) },  	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1419, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141A, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141B, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141C, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141D, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141E, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141F, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1420, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1421, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1422, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1423, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1424, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1425, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1426, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1427, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1428, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1429, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142A, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142B, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142C, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142D, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142E, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142F, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1430, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1431, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1432, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1433, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1434, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1435, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1436, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1437, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1438, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1439, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143A, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143B, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143C, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143D, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143E, 0xff, 0xff, 0xff) }, +	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143F, 0xff, 0xff, 0xff) },  	{ USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_9508) },  	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) }, /* Novatel Merlin V640/XV620 */  	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V620) }, /* Novatel Merlin V620/S620 */ @@ -318,12 +406,14 @@ static struct usb_device_id option_ids[] = {  	{ USB_DEVICE(DELL_VENDOR_ID, 0x8136) },	/* Dell Wireless HSDPA 5520 == Novatel Expedite EU860D */  	{ USB_DEVICE(DELL_VENDOR_ID, 0x8137) },	/* Dell Wireless HSDPA 5520 */  	{ USB_DEVICE(DELL_VENDOR_ID, 0x8138) },	/* Dell Wireless 5520 Voda I Mobile Broadband (3G HSDPA) Minicard */ -	{ USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_E100A) }, +	{ USB_DEVICE(DELL_VENDOR_ID, 0x8147) },	/* Dell Wireless 5530 Mobile Broadband (3G HSPA) Mini-Card */ +	{ USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_E100A) },	/* ADU-E100, ADU-310 */  	{ USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_500A) },  	{ USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_620UW) },  	{ USB_DEVICE(AXESSTEL_VENDOR_ID, AXESSTEL_PRODUCT_MV110H) },  	{ USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_MSA501HS) },  	{ USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_ET502HS) }, +	{ USB_DEVICE(YISO_VENDOR_ID, YISO_PRODUCT_U893) },  	{ USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_1) },  	{ USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_2) },  	{ USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1004) }, @@ -347,8 +437,13 @@ static struct usb_device_id option_ids[] = {  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */  	{ USB_DEVICE(MAXON_VENDOR_ID, 0x6280) }, /* BP3-USB & BP3-EXT HSDPA */  	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864E) }, +	{ USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF626) },  	{ USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF628) },  	{ USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH) }, +	{ USB_DEVICE(ERICSSON_VENDOR_ID, ERICSSON_PRODUCT_F3507G) }, +	{ USB_DEVICE(PANTECH_VENDOR_ID, PANTECH_PRODUCT_PC5740) }, +	{ USB_DEVICE(PANTECH_VENDOR_ID, PANTECH_PRODUCT_PC5750) }, +	{ USB_DEVICE(PANTECH_VENDOR_ID, PANTECH_PRODUCT_UM150) },  	{ } /* Terminating entry */  };  MODULE_DEVICE_TABLE(usb, option_ids); @@ -427,7 +522,8 @@ static int __init option_init(void)  	if (retval)  		goto failed_driver_register; -	info(DRIVER_DESC ": " DRIVER_VERSION); +	printk(KERN_INFO KBUILD_MODNAME ": " DRIVER_VERSION ":" +	       DRIVER_DESC "\n");  	return 0; @@ -571,14 +667,14 @@ static void option_indat_callback(struct urb *urb)  		dbg("%s: nonzero status: %d on endpoint %02x.",  		    __func__, status, endpoint);  	} else { -		tty = port->port.tty; +		tty = tty_port_tty_get(&port->port);  		if (urb->actual_length) {  			tty_buffer_request_room(tty, urb->actual_length);  			tty_insert_flip_string(tty, data, urb->actual_length);  			tty_flip_buffer_push(tty); -		} else { +		} else   			dbg("%s: empty read urb received", __func__); -		} +		tty_kref_put(tty);  		/* Resubmit urb so we continue receiving */  		if (port->port.count && status != -ESHUTDOWN) { @@ -647,9 +743,13 @@ static void option_instat_callback(struct urb *urb)  			portdata->dsr_state = ((signals & 0x02) ? 1 : 0);  			portdata->ri_state = ((signals & 0x08) ? 1 : 0); -			if (port->port.tty && !C_CLOCAL(port->port.tty) && -					old_dcd_state && !portdata->dcd_state) -				tty_hangup(port->port.tty); +			if (old_dcd_state && !portdata->dcd_state) { +				struct tty_struct *tty = +						tty_port_tty_get(&port->port); +				if (tty && !C_CLOCAL(tty)) +					tty_hangup(tty); +				tty_kref_put(tty); +			}  		} else {  			dbg("%s: type %x req %x", __func__,  				req_pkt->bRequestType, req_pkt->bRequest); @@ -793,7 +893,7 @@ static void option_close(struct tty_struct *tty,  		for (i = 0; i < N_OUT_URB; i++)  			usb_kill_urb(portdata->out_urbs[i]);  	} -	port->port.tty = NULL;	/* FIXME */ +	tty_port_tty_set(&port->port, NULL);  }  /* Helper functions used by option_setup_urbs */  | 
