diff -urN orig/cdc-acm.c tiquirk/cdc-acm.c --- orig/cdc-acm.c 2012-06-13 13:44:24.000000000 +0200 +++ tiquirk/cdc-acm.c 2012-07-05 15:54:26.000000000 +0200 @@ -79,7 +79,7 @@ /* * Version Information */ -#define DRIVER_VERSION "v0.26" +#define DRIVER_VERSION "v0.26+TIQUIRKS" #define DRIVER_AUTHOR "Armin Fuerst, Pavel Machek, Johannes Erdfelt, Vojtech Pavlik, David Kubicek" #define DRIVER_DESC "USB Abstract Control Model driver for USB modems and ISDN adapters" @@ -581,10 +581,11 @@ dbg("usb_submit_urb(ctrl irq) failed"); goto bail_out; } - +#if 0 if (0 > acm_set_control(acm, acm->ctrlout = ACM_CTRL_DTR | ACM_CTRL_RTS) && (acm->ctrl_caps & USB_CDC_CAP_LINE)) goto full_bailout; +#endif usb_autopm_put_interface(acm->control); @@ -608,8 +609,10 @@ mutex_unlock(&open_mutex); return rv; +#if 0 full_bailout: usb_kill_urb(acm->ctrlurb); +#endif bail_out: usb_autopm_put_interface(acm->control); acm->port.count--; @@ -645,7 +648,9 @@ mutex_lock(&open_mutex); if (acm->dev) { usb_autopm_get_interface(acm->control); +#if 0 acm_set_control(acm, acm->ctrlout = 0); +#endif /* try letting the last writes drain naturally */ if (drain) { wait_event_interruptible_timeout(acm->drain_wait, @@ -1016,7 +1021,7 @@ case USB_CDC_CALL_MANAGEMENT_TYPE: call_management_function = buffer[3]; call_interface_num = buffer[4]; - if ((call_management_function & 3) != 3) + if ((quirks & NOT_A_MODEM) == 0 && (call_management_function & 3) != 3) dev_err(&intf->dev, "This device cannot do calls on its own. It is not a modem.\n"); break; default: @@ -1555,6 +1560,9 @@ { USB_DEVICE(0x1576, 0x03b1), /* Maretron USB100 */ .driver_info = NO_UNION_NORMAL, /* reports zero length descriptor */ }, + { USB_DEVICE(0x0451, 0xf432), /* Texas Instruments MSP-FET430UIF */ + .driver_info = NOT_A_MODEM, + }, /* Nokia S60 phones expose two ACM channels. The first is * a modem and is picked up by the standard AT-command diff -urN orig/cdc-acm.h tiquirk/cdc-acm.h --- orig/cdc-acm.h 2012-06-13 13:44:24.000000000 +0200 +++ tiquirk/cdc-acm.h 2012-07-05 15:52:08.000000000 +0200 @@ -136,3 +136,4 @@ #define NO_UNION_NORMAL 1 #define SINGLE_RX_URB 2 #define NO_CAP_LINE 4 +#define NOT_A_MODEM 8