Re: [Bug 13354] Entry in "unusual_devs" keeps modem device from switching

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




The entry for vendor=0x05c6 and product=0x1000 in "unusual_devs.h" is specific for only one maker. There are several other devices which share these IDs (used by a Qualcomm chipset for storage device mode) but need a different handling to switch their mode to "modem".

I received a report recently that one device ("Anydata ADU-510L") could not be switched by the userspace tool "usb_modeswitch" when used with 2.6.30rc5, compared to 2.6.27. In the latter, dmesg shows there are problems with the storage device at plugin time, presumably caused from the "option_ms_init" function, but afterwards the storage device is bound correctly. This fails in 2.6.30rc5 with the error:
"usb-storage: probe of 6-2:1.0 failed with error -5".


Alan Stern schrieb:

A usbmon trace of the failed probe might provide a clue.


I'll try to get one from the reporter. Anyway, the problem vanished when commenting out the entry in "unusual_devs.h".

I presently know about three different modem devices (or families) that show vendor=0x05c6 and product=0x1000 (all storage class):

- Older "Option" 3G modems
- AnyData 3G modems
- Samsung SGH-Z810

They need three different switching commands which may interfere if used in a sequence.

If there's no way to tell these devices apart but they need different switching commands, how do other operating systems handle them?


They have their Windows drivers onboard in the 'storage part'; either these drivers do an (yet unknown) additional ID routine, or (what I suspect at least in some cases) they don't care at all about the possibility of a third party device with the same ID.

I wonder if Filip Aben of Option can comment on this (or did he so earlier?). Does the Windows driver e.g. of the GlobeSurfer iCON identify the device apart from the vendor/product ID? The text description says just "Qualcomm, Inc." ...

Do you know what the different switching commands are?


- Option uses the REZERO command (0x01)
- AnyData uses the START/STOP command (eject, 0x1b)
- Samsung uses a command with number 0x16 (not found in specs)

If "eject" is used for switching, the device needs to be initialized as storage obviously. There was a precedent with ZTE devices, I believe.

- Usb-storage has a module option "option_zero_cd". Set the default to be "2" (Allow CD-Rom) instead of "1" (Force Modem)

- Remove entry from "unusual_devs.h" entirely

Either way you're likely to get arguments from other people.


I'll get them anyway even when things stay as they are, which would mean that one hardware manufacturer is privileged before others.

(My basic opinion still is that usb-storage is the wrong place to handle device switching, but that's annother thread :-))


Josua Dietze
--
Man is the only creature on earth enabled to take a
warm meal while flying!                      Loriot
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux