diff options
Diffstat (limited to 'drivers/usb/misc/ehset.c')
| -rw-r--r-- | drivers/usb/misc/ehset.c | 76 | 
1 files changed, 32 insertions, 44 deletions
| diff --git a/drivers/usb/misc/ehset.c b/drivers/usb/misc/ehset.c index 2752e1f4f4d0..f87890f9cd26 100644 --- a/drivers/usb/misc/ehset.c +++ b/drivers/usb/misc/ehset.c @@ -24,68 +24,57 @@ static int ehset_probe(struct usb_interface *intf,  	int ret = -EINVAL;  	struct usb_device *dev = interface_to_usbdev(intf);  	struct usb_device *hub_udev = dev->parent; -	struct usb_device_descriptor *buf; +	struct usb_device_descriptor buf;  	u8 portnum = dev->portnum;  	u16 test_pid = le16_to_cpu(dev->descriptor.idProduct);  	switch (test_pid) {  	case TEST_SE0_NAK_PID: -		ret = usb_control_msg(hub_udev, usb_sndctrlpipe(hub_udev, 0), -					USB_REQ_SET_FEATURE, USB_RT_PORT, -					USB_PORT_FEAT_TEST, -					(USB_TEST_SE0_NAK << 8) | portnum, -					NULL, 0, 1000); +		ret = usb_control_msg_send(hub_udev, 0, USB_REQ_SET_FEATURE, +					   USB_RT_PORT, USB_PORT_FEAT_TEST, +					   (USB_TEST_SE0_NAK << 8) | portnum, +					   NULL, 0, 1000, GFP_KERNEL);  		break;  	case TEST_J_PID: -		ret = usb_control_msg(hub_udev, usb_sndctrlpipe(hub_udev, 0), -					USB_REQ_SET_FEATURE, USB_RT_PORT, -					USB_PORT_FEAT_TEST, -					(USB_TEST_J << 8) | portnum, -					NULL, 0, 1000); +		ret = usb_control_msg_send(hub_udev, 0, USB_REQ_SET_FEATURE, +					   USB_RT_PORT, USB_PORT_FEAT_TEST, +					   (USB_TEST_J << 8) | portnum, NULL, 0, +					   1000, GFP_KERNEL);  		break;  	case TEST_K_PID: -		ret = usb_control_msg(hub_udev, usb_sndctrlpipe(hub_udev, 0), -					USB_REQ_SET_FEATURE, USB_RT_PORT, -					USB_PORT_FEAT_TEST, -					(USB_TEST_K << 8) | portnum, -					NULL, 0, 1000); +		ret = usb_control_msg_send(hub_udev, 0, USB_REQ_SET_FEATURE, +					   USB_RT_PORT, USB_PORT_FEAT_TEST, +					   (USB_TEST_K << 8) | portnum, NULL, 0, +					   1000, GFP_KERNEL);  		break;  	case TEST_PACKET_PID: -		ret = usb_control_msg(hub_udev, usb_sndctrlpipe(hub_udev, 0), -					USB_REQ_SET_FEATURE, USB_RT_PORT, -					USB_PORT_FEAT_TEST, -					(USB_TEST_PACKET << 8) | portnum, -					NULL, 0, 1000); +		ret = usb_control_msg_send(hub_udev, 0, USB_REQ_SET_FEATURE, +					   USB_RT_PORT, USB_PORT_FEAT_TEST, +					   (USB_TEST_PACKET << 8) | portnum, +					   NULL, 0, 1000, GFP_KERNEL);  		break;  	case TEST_HS_HOST_PORT_SUSPEND_RESUME:  		/* Test: wait for 15secs -> suspend -> 15secs delay -> resume */  		msleep(15 * 1000); -		ret = usb_control_msg(hub_udev, usb_sndctrlpipe(hub_udev, 0), -					USB_REQ_SET_FEATURE, USB_RT_PORT, -					USB_PORT_FEAT_SUSPEND, portnum, -					NULL, 0, 1000); +		ret = usb_control_msg_send(hub_udev, 0, USB_REQ_SET_FEATURE, +					   USB_RT_PORT, USB_PORT_FEAT_SUSPEND, +					   portnum, NULL, 0, 1000, GFP_KERNEL);  		if (ret < 0)  			break;  		msleep(15 * 1000); -		ret = usb_control_msg(hub_udev, usb_sndctrlpipe(hub_udev, 0), -					USB_REQ_CLEAR_FEATURE, USB_RT_PORT, -					USB_PORT_FEAT_SUSPEND, portnum, -					NULL, 0, 1000); +		ret = usb_control_msg_send(hub_udev, 0, USB_REQ_CLEAR_FEATURE, +					   USB_RT_PORT, USB_PORT_FEAT_SUSPEND, +					   portnum, NULL, 0, 1000, GFP_KERNEL);  		break;  	case TEST_SINGLE_STEP_GET_DEV_DESC:  		/* Test: wait for 15secs -> GetDescriptor request */  		msleep(15 * 1000); -		buf = kmalloc(USB_DT_DEVICE_SIZE, GFP_KERNEL); -		if (!buf) -			return -ENOMEM; -		ret = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0), -					USB_REQ_GET_DESCRIPTOR, USB_DIR_IN, -					USB_DT_DEVICE << 8, 0, -					buf, USB_DT_DEVICE_SIZE, -					USB_CTRL_GET_TIMEOUT); -		kfree(buf); +		ret = usb_control_msg_recv(dev, 0, USB_REQ_GET_DESCRIPTOR, +					   USB_DIR_IN, USB_DT_DEVICE << 8, 0, +					   &buf, USB_DT_DEVICE_SIZE, +					   USB_CTRL_GET_TIMEOUT, GFP_KERNEL);  		break;  	case TEST_SINGLE_STEP_SET_FEATURE:  		/* @@ -100,11 +89,10 @@ static int ehset_probe(struct usb_interface *intf,  			break;  		} -		ret = usb_control_msg(hub_udev, usb_sndctrlpipe(hub_udev, 0), -					USB_REQ_SET_FEATURE, USB_RT_PORT, -					USB_PORT_FEAT_TEST, -					(6 << 8) | portnum, -					NULL, 0, 60 * 1000); +		ret = usb_control_msg_send(hub_udev, 0, USB_REQ_SET_FEATURE, +					   USB_RT_PORT, USB_PORT_FEAT_TEST, +					   (6 << 8) | portnum, NULL, 0, +					   60 * 1000, GFP_KERNEL);  		break;  	default: @@ -112,7 +100,7 @@ static int ehset_probe(struct usb_interface *intf,  			__func__, test_pid);  	} -	return (ret < 0) ? ret : 0; +	return ret;  }  static void ehset_disconnect(struct usb_interface *intf) | 
