Hi,

I believe I have fixed a problem with my iTegno GPRS modem using the
pl2303.c driver.

System:
Linux 2.4.21-rc2 from linuxusb.bkbits.net
Intel Celeron 1.7ghz CPU
Intel 82801DB ICH4
usb-uhci bus driver
pl2303.c device driver
iTegno GPRS modem WM1080

Symptom:
On system reboots, GPRS modem does not come up.  Console reports the
following message:
---
hub.c: new USB device 00:1d.1-2, assigned address 3
host/usb-uhci.c: interrupt, status 2, frame# 169
usb.c: USB device not accepting new address=3 (error=-110)
hub.c: new USB device 00:1d.1-2, assigned address 4
usb.c: USB device not accepting new address=4 (error=-110)
---

Steps to Reproduce:
1) Boot up Linux with GPRS modem attached
2) Wait until green light on modem starts flashing.
3) Dial-up into network ("pppd call gprs")
4) reboot system (/sbin/reboot or reboot button on case)
5) On Linux boot up, error message will indicate USB GPRS modem not
registered.

Fix:
Problem cannot be reproduced running Windows 2000 on same hardware using
iTegno's shipped drivers.  Also, problem only occured if the serial port
was opened.  I then used a USB snooper and noticed that the Windows driver
does not send certain VENDOR_WRITE_REQUEST messages when opening the port.
Removing these messages from the Linux driver fixed the problem.

Question to Greg KH or anyone:
Could someone tell me what these magic messages are supposed to do, so I
can make sure I didn't break anything?  Thanks,

Eli


--- >8 ---
diff -u -r1.1.1.2 pl2303.c
--- drivers/usb/serial/pl2303.c 2003/05/13 04:14:35 1.1.1.2
+++ drivers/usb/serial/pl2303.c 2003/07/31 04:05:45
@@ -265,13 +265,6 @@
  dbg ("0xa1:0x21:0:0  %d - %x %x %x %x %x %x %x", i,
       buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6]);

-
- i = usb_control_msg (serial->dev, usb_sndctrlpipe (serial->dev, 0),
-        VENDOR_WRITE_REQUEST, VENDOR_WRITE_REQUEST_TYPE,
-        0, 1, NULL, 0, 100);
-
- dbg ("0x40:1:0:1  %d", i);
-
  if (cflag & CSIZE) {
   switch (cflag & CSIZE) {
    case CS5: buf[6] = 5; break;
@@ -405,9 +398,6 @@
  SOUP (VENDOR_WRITE_REQUEST_TYPE, VENDOR_WRITE_REQUEST, 0x0404, 1);
  FISH (VENDOR_READ_REQUEST_TYPE, VENDOR_READ_REQUEST, 0x8484, 0);
  FISH (VENDOR_READ_REQUEST_TYPE, VENDOR_READ_REQUEST, 0x8383, 0);
- SOUP (VENDOR_WRITE_REQUEST_TYPE, VENDOR_WRITE_REQUEST, 0, 1);
- SOUP (VENDOR_WRITE_REQUEST_TYPE, VENDOR_WRITE_REQUEST, 1, 0xc0);
- SOUP (VENDOR_WRITE_REQUEST_TYPE, VENDOR_WRITE_REQUEST, 2, 4);

  /* Setup termios */
  if (port->tty) {




-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to