Current-Users archive

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

Re: USB networking (cdce) with Linux host (g_ether)



From: Nick Hudson <skrll%netbsd.org@localhost>, Date: Sun, 05 Apr 2015 10:12:50 +0100

> On 04/05/15 01:52, Ryo ONODERA wrote:
>> Hi,
>>
>> I believe that following patch is good for us because my USB modem
>> device
>> is bad information and it should be treated as special case.
>>
>> Index: sys/dev/usb/umodem.c
>> ===================================================================
>> RCS file: /cvsroot/src/sys/dev/usb/umodem.c,v
>> retrieving revision 1.66
>> diff -u -r1.66 umodem.c
>> --- sys/dev/usb/umodem.c	6 Apr 2014 02:01:43 -0000	1.66
>> +++ sys/dev/usb/umodem.c	5 Apr 2015 00:49:30 -0000
>> @@ -81,6 +81,11 @@
>>   	NULL,
>>   };
>>   +Static const struct usb_devno umodem_devs[] = {
>> +	{ USB_VENDOR_CONEXANT, USB_PRODUCT_CONEXANT_MODEM_1},
>> +};
>> +#define umodem_lookup(v, p) usb_lookup(umodem_devs, v, p)
>> +
>>   int             umodem_match(device_t, cfdata_t, void *);
>>   void            umodem_attach(device_t, device_t, void *);
>>   int             umodem_detach(device_t, int);
>> @@ -97,22 +102,24 @@
>>   	struct usbif_attach_arg *uaa = aux;
>>   	usb_interface_descriptor_t *id;
>>   	int cm, acm;
>> +	int ret = UMATCH_NONE;
>>   -	id = usbd_get_interface_descriptor(uaa->iface);
>> -	if (uaa->subclass != UISUBCLASS_ABSTRACT_CONTROL_MODEL &&
>> -	    (id->bInterfaceClass == UICLASS_CDC_DATA &&
>> -	     id->bInterfaceSubClass == UISUBCLASS_DATA))
>> -		return (UMATCH_IFACECLASS_IFACESUBCLASS);
>> -
>> -	if (uaa->class != UICLASS_CDC ||
>> -	    uaa->subclass != UISUBCLASS_ABSTRACT_CONTROL_MODEL ||
>> -	    !(uaa->proto == UIPROTO_CDC_NOCLASS || uaa->proto ==
>> -	    !UIPROTO_CDC_AT))
>> -		return (UMATCH_NONE);
>> +	if (umodem_lookup(uaa->vendor, uaa->product))
>> +		ret = UMATCH_VENDOR_PRODUCT;
>>   +	if (uaa->class == UICLASS_CDC &&
>> +	    uaa->subclass == UISUBCLASS_ABSTRACT_CONTROL_MODEL &&
>> +	    uaa->proto == UIPROTO_CDC_AT)
>> +		ret = UMATCH_IFACECLASS_IFACESUBCLASS_IFACEPROTO;
> 
> Missing  uaa->proto == UIPROTO_CDC_NOCLASS, I think.

It is right.
UIPROTO_CDC_NOCLASS should be added.

> That said, I think there's a bug somewhere else that's causing
> problems here.
> 
> Can you boot with -xv flags and an updated -current kernel with
> USB_DEBUG
> and usbdebug set? I've add some more debug output to the kernel.

I will post the output later.
(I am working on pkgsrc/misc/libreoffice4 now.)

> Thanks,
> Nick

Thank you.

--
Ryo ONODERA // ryo_on%yk.rim.or.jp@localhost
PGP fingerprint = 82A2 DC91 76E0 A10A 8ABB  FD1B F404 27FA C7D1 15F3


Home | Main Index | Thread Index | Old Index