<Charles.Hyde@xxxxxxxxxxxx> writes: >> > What better suggestion do folks have, instead of using >> USB_REQ_SET_ADDRESS? >> >> The spec is clear: wIndex is supposed to be 'NCM Communications Interface'. >> That's how you address a specific NCM function (a USB device can have more >> than one...), and that's what you'll see in all the other interface specific class >> requests in this driver. You don't have to look hard to find examples. >> >> >> Bjørn > > > I have presented what works, with the v3 patch series. Sure. It will work iff your NCM function has a control interface numbered 5. Most NCM functions do not. > Mind you, the code I have provided sends the exact same USB message as > I traced with Wireshark on my Windows system. Snooping on communcation with one specific device is not a good way to figure out dynamic content. wIndex cannot be a constant. It depends on the device configuration. >If you can provide good working code that replicates what I have >provided, I would be thrilled. There is working control request code a few lines up in the driver. I didn't think it was too much to ask that you looked it up. But I can copy an example here too: static int cdc_ncm_init(struct usbnet *dev) { struct cdc_ncm_ctx *ctx = (struct cdc_ncm_ctx *)dev->data[0]; u8 iface_no = ctx->control->cur_altsetting->desc.bInterfaceNumber; int err; err = usbnet_read_cmd(dev, USB_CDC_GET_NTB_PARAMETERS, USB_TYPE_CLASS | USB_DIR_IN |USB_RECIP_INTERFACE, 0, iface_no, &ctx->ncm_parm, sizeof(ctx->ncm_parm)); ,, You'll obviously have to replace USB_CDC_GET_NTB_PARAMETERS with USB_CDC_GET_NET_ADDRESS, &ctx->ncm_parm with buf, and sizeof(ctx->ncm_parm) with ETH_ALEN. Bjørn