Subject: Re: [PATCH] usb: gadget: f_rndis: fix usb_interface_descriptor for rndis

From: Heiko Schocher <[email-masked]>
Date: Wed, 24 Sep 2014 15:12:08 +0200

Hello Michal,

Am 24.09.2014 11:38, schrieb Michal Nazarewicz:
> On Wed, Sep 24 2014, Heiko Schocher<[email-masked]>  wrote:
>> use the values for RNDIS over Ethernet as defined in
>> http://www.usb.org/developers/defined_class
>> (search for RDNIS):
>>
>> - baseclass: 0xef (miscellaneous)
>> - subclass: 0x04
>> - protocol: 0x01
>>
>> with this setings the file in Documentation/usb/linux.inf is
>> obsolete.
>>
>> Signed-off-by: Heiko Schocher<[email-masked]>
>>
>> ---
>>
>> Cc: Felipe Balbi<[email-masked]>
>> Cc: Greg Kroah-Hartman<[email-masked]>
>> Cc: [email-masked]
>> Cc: [email-masked]
>> Cc: Oliver Neukum<[email-masked]>
>> Cc: [email-masked]
>> Cc: [email-masked]
>> Cc: Andrzej Pietrasiewicz<[email-masked]>
>> Cc: Michal Nazarewicz<[email-masked]>
>> Cc: Kyungmin Park<[email-masked]>
>> Cc: Dan Carpenter<[email-masked]>
>> Cc: Macpaul Lin<[email-masked]>
>>
>> Tested with the "USB Compliance test suite which runs Windows", see:
>> http://www.usb.org/developers/tools/usb20_tools/#usb20cv
>>
>>   drivers/net/usb/cdc_ether.c           | 6 +++---
>>   drivers/usb/core/generic.c            | 6 +++---
>>   drivers/usb/gadget/function/f_rndis.c | 6 +++---
>>   include/uapi/linux/usb/cdc.h          | 3 +++
>>   4 files changed, 12 insertions(+), 9 deletions(-)
>>
>> diff --git a/drivers/net/usb/cdc_ether.c b/drivers/net/usb/cdc_ether.c
>> index 2a32d91..9c216c2 100644
>> --- a/drivers/net/usb/cdc_ether.c
>> +++ b/drivers/net/usb/cdc_ether.c
>> @@ -35,9 +35,9 @@
>>
>>   static int is_rndis(struct usb_interface_descriptor *desc)
>>   {
>> -	return (desc->bInterfaceClass == USB_CLASS_COMM&&
>> -		desc->bInterfaceSubClass == 2&&
>> -		desc->bInterfaceProtocol == 0xff);
>> +	return (desc->bInterfaceClass == USB_CLASS_MISC&&
>> +		desc->bInterfaceSubClass == USB_CDC_SUBCLASS_RNDIS&&
>> +		desc->bInterfaceProtocol == USB_CDC_RNDIS_PROTO_ETH);
>>   }
>
> Does that mean that new kernels will stop working with old RNDIs
> gadgets because they stop recognising them as RNDIS?  I feel like this
> function should accept both, i.e.:

Hmm.. I am not a usb guru ... but I think, yes, you are right.
I add this to a v2 (if this patch has a chance to go in mainline).

Thanks!

bye,
Heiko
-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany