diff options
Diffstat (limited to 'drivers/usb/gadget/f_rndis.c')
| -rw-r--r-- | drivers/usb/gadget/f_rndis.c | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/usb/gadget/f_rndis.c b/drivers/usb/gadget/f_rndis.c index 659b3d9671c..3a8bb53fc47 100644 --- a/drivers/usb/gadget/f_rndis.c +++ b/drivers/usb/gadget/f_rndis.c @@ -172,7 +172,6 @@ static struct usb_interface_descriptor rndis_data_intf __initdata = {  	.bDescriptorType =	USB_DT_INTERFACE,  	/* .bInterfaceNumber = DYNAMIC */ -	.bAlternateSetting =	1,  	.bNumEndpoints =	2,  	.bInterfaceClass =	USB_CLASS_CDC_DATA,  	.bInterfaceSubClass =	0, @@ -303,7 +302,7 @@ static void rndis_response_available(void *_rndis)  	__le32				*data = req->buf;  	int				status; -	if (atomic_inc_return(&rndis->notify_count)) +	if (atomic_inc_return(&rndis->notify_count) != 1)  		return;  	/* Send RNDIS RESPONSE_AVAILABLE notification; a @@ -652,6 +651,8 @@ rndis_bind(struct usb_configuration *c, struct usb_function *f)  				fs_in_desc.bEndpointAddress;  		hs_out_desc.bEndpointAddress =  				fs_out_desc.bEndpointAddress; +		hs_notify_desc.bEndpointAddress = +				fs_notify_desc.bEndpointAddress;  		/* copy descriptors, and track endpoint copies */  		f->hs_descriptors = usb_copy_descriptors(eth_hs_function); @@ -663,6 +664,8 @@ rndis_bind(struct usb_configuration *c, struct usb_function *f)  				f->hs_descriptors, &hs_in_desc);  		rndis->hs.out = usb_find_endpoint(eth_hs_function,  				f->hs_descriptors, &hs_out_desc); +		rndis->hs.notify = usb_find_endpoint(eth_hs_function, +				f->hs_descriptors, &hs_notify_desc);  	}  	rndis->port.open = rndis_open;  |