diff options
Diffstat (limited to 'drivers/usb/misc/usbsevseg.c')
| -rw-r--r-- | drivers/usb/misc/usbsevseg.c | 60 | 
1 files changed, 17 insertions, 43 deletions
| diff --git a/drivers/usb/misc/usbsevseg.c b/drivers/usb/misc/usbsevseg.c index 551074f5b7ad..4bc816bb09bb 100644 --- a/drivers/usb/misc/usbsevseg.c +++ b/drivers/usb/misc/usbsevseg.c @@ -74,15 +74,10 @@ static void update_display_powered(struct usb_sevsegdev *mydev)  	if (mydev->shadow_power != 1)  		return; -	rc = usb_control_msg(mydev->udev, -			usb_sndctrlpipe(mydev->udev, 0), -			0x12, -			0x48, -			(80 * 0x100) + 10, /*  (power mode) */ -			(0x00 * 0x100) + (mydev->powered ? 1 : 0), -			NULL, -			0, -			2000); +	rc = usb_control_msg_send(mydev->udev, 0, 0x12, 0x48, +				  (80 * 0x100) + 10, /*  (power mode) */ +				  (0x00 * 0x100) + (mydev->powered ? 1 : 0), +				  NULL, 0, 2000, GFP_KERNEL);  	if (rc < 0)  		dev_dbg(&mydev->udev->dev, "power retval = %d\n", rc); @@ -99,15 +94,10 @@ static void update_display_mode(struct usb_sevsegdev *mydev)  	if(mydev->shadow_power != 1)  		return; -	rc = usb_control_msg(mydev->udev, -			usb_sndctrlpipe(mydev->udev, 0), -			0x12, -			0x48, -			(82 * 0x100) + 10, /* (set mode) */ -			(mydev->mode_msb * 0x100) + mydev->mode_lsb, -			NULL, -			0, -			2000); +	rc = usb_control_msg_send(mydev->udev, 0, 0x12, 0x48, +				  (82 * 0x100) + 10, /* (set mode) */ +				  (mydev->mode_msb * 0x100) + mydev->mode_lsb, +				  NULL, 0, 2000, GFP_NOIO);  	if (rc < 0)  		dev_dbg(&mydev->udev->dev, "mode retval = %d\n", rc); @@ -117,48 +107,32 @@ static void update_display_visual(struct usb_sevsegdev *mydev, gfp_t mf)  {  	int rc;  	int i; -	unsigned char *buffer; +	unsigned char buffer[MAXLEN] = {0};  	u8 decimals = 0;  	if(mydev->shadow_power != 1)  		return; -	buffer = kzalloc(MAXLEN, mf); -	if (!buffer) -		return; -  	/* The device is right to left, where as you write left to right */  	for (i = 0; i < mydev->textlength; i++)  		buffer[i] = mydev->text[mydev->textlength-1-i]; -	rc = usb_control_msg(mydev->udev, -			usb_sndctrlpipe(mydev->udev, 0), -			0x12, -			0x48, -			(85 * 0x100) + 10, /* (write text) */ -			(0 * 0x100) + mydev->textmode, /* mode  */ -			buffer, -			mydev->textlength, -			2000); +	rc = usb_control_msg_send(mydev->udev, 0, 0x12, 0x48, +				  (85 * 0x100) + 10, /* (write text) */ +				  (0 * 0x100) + mydev->textmode, /* mode  */ +				  &buffer, mydev->textlength, 2000, mf);  	if (rc < 0)  		dev_dbg(&mydev->udev->dev, "write retval = %d\n", rc); -	kfree(buffer); -  	/* The device is right to left, where as you write left to right */  	for (i = 0; i < sizeof(mydev->decimals); i++)  		decimals |= mydev->decimals[i] << i; -	rc = usb_control_msg(mydev->udev, -			usb_sndctrlpipe(mydev->udev, 0), -			0x12, -			0x48, -			(86 * 0x100) + 10, /* (set decimal) */ -			(0 * 0x100) + decimals, /* decimals */ -			NULL, -			0, -			2000); +	rc = usb_control_msg_send(mydev->udev, 0, 0x12, 0x48, +				  (86 * 0x100) + 10, /* (set decimal) */ +				  (0 * 0x100) + decimals, /* decimals */ +				  NULL, 0, 2000, mf);  	if (rc < 0)  		dev_dbg(&mydev->udev->dev, "decimal retval = %d\n", rc); | 
