ChangeSet 1.1043.1.15, 2003/02/17 10:13:56-08:00, baldrick@wanadoo.fr [PATCH] USB speedtouch: speedtouch 330 support Differences: speedtouch 330 vs the older speedtouch USB: Vendor and ProdID: no difference (!) Rev: 2.00 vs 0.00 SerialNumber: 0090D0xxxxxx, xxxxxx larger for 330 Interface 1, Alt 2: E: Ad=06(O) Atr=02(Bulk) MxPS=64 Ivl=0ms E: Ad=07(O) Atr=02(Bulk) MxPS=64 Ivl=0ms E: Ad=87(I) Atr=01(Isoc) MxPS=640 Ivl=1ms vs E: Ad=06(O) Atr=02(Bulk) MxPS=32 Ivl=0ms E: Ad=07(O) Atr=02(Bulk) MxPS=32 Ivl=0ms E: Ad=87(I) Atr=02(Bulk) MxPS=64 Ivl=0ms Interface 1, Alt 3: E: Ad=06(O) Atr=02(Bulk) MxPS=64 Ivl=0ms E: Ad=07(O) Atr=02(Bulk) MxPS=64 Ivl=0ms E: Ad=87(I) Atr=01(Isoc) MxPS=960 Ivl=1ms vs E: Ad=06(O) Atr=02(Bulk) MxPS=16 Ivl=0ms E: Ad=07(O) Atr=02(Bulk) MxPS=16 Ivl=0ms E: Ad=87(I) Atr=02(Bulk) MxPS=64 Ivl=0ms The current driver works with the speedtouch 330 as long as we use alternate setting 1 on interface 1 rather than alternate 2 as we do now. In fact it makes sense to use alternate 1 for the speedtouch USB as well: the difference is in the max packet size for the out bulk endpoint (0x07): 64 for Alt 1, 32 for Alt 2. Since we send only multiples of 53 bytes (ATM cell size), the potential lower latency for Alt 2 is not really exploitable (think about it!). My tests indicate no harm and perhaps a slight gain by using Alt 1. The manufacturer seems to think so too, since they chose to keep the Alt 1 setting and threw out Alt 2 when designing the 330. So just use Alt 1 for both modems. diff -Nru a/drivers/usb/misc/speedtouch.c b/drivers/usb/misc/speedtouch.c --- a/drivers/usb/misc/speedtouch.c Tue Feb 18 16:39:47 2003 +++ b/drivers/usb/misc/speedtouch.c Tue Feb 18 16:39:47 2003 @@ -859,7 +859,7 @@ instance->atm_dev->signal = ATM_PHY_SIG_FOUND; down (&instance->serialize); /* vs self */ if (!instance->firmware_loaded) { - usb_set_interface (instance->usb_dev, 1, 2); + usb_set_interface (instance->usb_dev, 1, 1); instance->firmware_loaded = 1; } up (&instance->serialize);