diff options
Diffstat (limited to 'drivers/usb/input/yealink.c')
| -rw-r--r-- | drivers/usb/input/yealink.c | 13 | 
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/usb/input/yealink.c b/drivers/usb/input/yealink.c index caff8e6d744..c54f1a5dcb4 100644 --- a/drivers/usb/input/yealink.c +++ b/drivers/usb/input/yealink.c @@ -502,7 +502,7 @@ static int input_ev(struct input_dev *dev, unsigned int type,  static int input_open(struct input_dev *dev)  { -	struct yealink_dev *yld = dev->private; +	struct yealink_dev *yld = input_get_drvdata(dev);  	int i, ret;  	dbg("%s", __FUNCTION__); @@ -529,7 +529,7 @@ static int input_open(struct input_dev *dev)  static void input_close(struct input_dev *dev)  { -	struct yealink_dev *yld = dev->private; +	struct yealink_dev *yld = input_get_drvdata(dev);  	usb_kill_urb(yld->urb_ctl);  	usb_kill_urb(yld->urb_irq); @@ -937,9 +937,10 @@ static int usb_probe(struct usb_interface *intf, const struct usb_device_id *id)  	input_dev->name = nfo->name;  	input_dev->phys = yld->phys;  	usb_to_input_id(udev, &input_dev->id); -	input_dev->cdev.dev = &intf->dev; +	input_dev->dev.parent = &intf->dev; + +	input_set_drvdata(input_dev, yld); -	input_dev->private = yld;  	input_dev->open = input_open;  	input_dev->close = input_close;  	/* input_dev->event = input_ev;	TODO */ @@ -955,7 +956,9 @@ static int usb_probe(struct usb_interface *intf, const struct usb_device_id *id)  		}  	} -	input_register_device(yld->idev); +	ret = input_register_device(yld->idev); +	if (ret) +		return usb_cleanup(yld, ret);  	usb_set_intfdata(intf, yld);  |