The CDC NCM specification describes the alternate settings that a CDC NCM interface must support. Alternate setting 0 does not allow any network traffic but allows configuration of the interface. Alternate 1 allows network traffic but doesn't allow configuration of some of the interface properties. This change provides #defines for there two numbers to clarify why usb_set_interface is being called. Signed-off-by: Toby Gray <toby.gray@xxxxxxxxxxx> --- drivers/net/usb/cdc_ncm.c | 11 +++++++++-- 1 files changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c index 3a539a9..3df51ee 100644 --- a/drivers/net/usb/cdc_ncm.c +++ b/drivers/net/usb/cdc_ncm.c @@ -87,6 +87,13 @@ (sizeof(struct usb_cdc_ncm_nth16) + sizeof(struct usb_cdc_ncm_ndp16) + \ (CDC_NCM_DPT_DATAGRAMS_MAX + 1) * sizeof(struct usb_cdc_ncm_dpe16)) +/* CDC NCM ch. 5.3 describes alternate setting 0 as having no + * endpoints and therefore not allowing any networking traffic. */ +#define CDC_NCM_ALTSETTING_RESET 0 +/* CDC NCM ch. 5.3 describes alternate setting 1 as having the + * required bulk endpoints for normal operation. */ +#define CDC_NCM_ALTSETTING_DATA 1 + struct cdc_ncm_data { struct usb_cdc_ncm_nth16 nth16; struct usb_cdc_ncm_ndp16 ndp16; @@ -549,7 +556,7 @@ advance: iface_no = ctx->data->cur_altsetting->desc.bInterfaceNumber; /* reset data interface */ - temp = usb_set_interface(dev->udev, iface_no, 0); + temp = usb_set_interface(dev->udev, iface_no, CDC_NCM_ALTSETTING_RESET); if (temp) goto error2; @@ -558,7 +565,7 @@ advance: goto error2; /* configure data interface */ - temp = usb_set_interface(dev->udev, iface_no, 1); + temp = usb_set_interface(dev->udev, iface_no, CDC_NCM_ALTSETTING_DATA); if (temp) goto error2; -- 1.7.0.4 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html