On Mon, Sep 24, 2001 at 02:50:01PM +0200, Gilad Bornstein wrote:
> What I wanted was that the ACM driver will recognize the device as a modem,
> so again I'll be able to use it as one.
> The ACM module was loaded successfully but when I tried doing:
> echo atd > /dev/input/ttyACM0
> I got a "wrong parameter" message.
> I REALLY need some help here...
> Is it possible to have an ACM device with more then 3 end-points?
> What should I change in the ACM driver in-order for the modem to work fine?
> IF the ACM will work fine, will it be possible for me to use the other two
> (unused) end-points by using IOCTL and the end-point id?
Well, the driver expects exactly two interfaces with the appropriate
classes as described in the ACM spec. The number of endpoints on these
interfaces isn't checked.
So this would probably work:
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 11 Spd=12 MxCh= 0
D: Ver= 1.01 Cls=02(comm.) Sub=00 Prot=00 MxPS=16 #Cfgs= 1
P: Vendor=xxxx ProdID=xxxx Rev= 0.00
S: Manufacturer=xxxxxxxxxxxxxxxx
S: Product=xxxxxxxxxxxxxx
S: SerialNumber=Serial Number
C:* #Ifs= 3 Cfg#= 1 Atr=e0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=(none)
E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=128ms
I: If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=(none)
E: Ad=8a(I) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
E: Ad=0b(O) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
E: Ad=83(I) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
E: Ad=06(O) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
But this would be better:
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
D: Ver= 1.01 Cls=02(comm.) Sub=00 Prot=00 MxPS=16 #Cfgs= 1
P: Vendor=xxxx ProdID=xxxx Rev= 0.00
S: Manufacturer=xxxxxxxxxxxxxxxxxxx
S: Product=xxxxxxxxxxxxxxxxxxxxxxxxxx
S: SerialNumber=Serial Number
C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=(none)
E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl= 32ms
I: If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=(none)
E: Ad=8a(I) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
E: Ad=0b(O) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
C:* #Ifs= 2 Cfg#= 2 Atr=e0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=128ms
E: Ad=8a(I) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
E: Ad=0b(O) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E: Ad=83(I) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
E: Ad=06(O) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
Anyway, the driver can be modified to ignore any interfaces beyond 2.
--
Vojtech Pavlik
SuSE Labs
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel