Re: [PATCH] usb: gadget: f_rndis: fix usb_interface_descriptor for rndis
From: Lars Melin <hidden>
Date: 2014-09-24 14:22:29
Also in:
linux-api, lkml
On 2014-09-24 20:12, Heiko Schocher wrote:
Hello Lars, Am 24.09.2014 14:25, schrieb Lars Melin:quoted
On 2014-09-24 13:48, Heiko Schocher wrote:quoted
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: 0x01That is usb class, it is not the same thing as communication device class.quoted
--- a/include/uapi/linux/usb/cdc.h +++ b/include/uapi/linux/usb/cdc.h@@ -12,6 +12,7 @@#include <linux/types.h> #define USB_CDC_SUBCLASS_ACM 0x02 +#define USB_CDC_SUBCLASS_RNDIS 0x04No, no, no. There is no CDC_SUBCLASS_RNDIS and you can not define one over an already used cdc subclass number, 0x04 is Multi-Channel Control ModelAh, ok, so I have to define this values in a new header file, as there is no current file for the USB_CLASS_MISC defines? Or is there a proper place for them? BTW: where do I find the "cdc subclass number, 0x04 is Multi-Channel Control Model" define? bye, Heiko
You can still find the original specification usbcdc11.pdf on the net if you google for it, it has been pulled from usb.org where you could download it until a few years ago. It is old but covers a lot of what you need to know. Linux has afaik only the cdc.h definition file, everything else is coded by class/subclass in respectively drivers when needed. 02/02/ff or e0/01/03 are the most common interface attribute for rndis, both of them together with a data interface with attributes 0a/00/00. Please check the whitelisting in drivers/net/usb/rndis_host.c and also blacklistings in other net drivers under the same path, it should give you an idea how to bind an interface to a specific driver by interface attributes and/or usb vid:pid. You should be able to do the same for your particular device.