@@ -1310,6 +1310,26 @@ static int usbtouch_resume(struct usb_interface *intf)
return rv;
}
+static int usbtouch_reset_resume(struct usb_interface *intf)
+{
+ struct usbtouch_usb *usbtouch = usb_get_intfdata(intf);
+ int rv;
+
+ /* device specific init */
+ if (usbtouch->type->init) {
+ rv = usbtouch->type->init(usbtouch);
+ if (rv) {
+ dbg("%s - type->init() failed, err: %d", __func__, rv);
+ goto err_out;
+ }
+ }
+
+ rv = usbtouch_resume(intf);
+
+err_out:
+ return rv;
+}
+
static void usbtouch_free_buffers(struct usb_device *udev,
struct usbtouch_usb *usbtouch)
{
@@ -1501,6 +1521,7 @@ static struct usb_driver usbtouch_driver = {
.disconnect = usbtouch_disconnect,
.suspend = usbtouch_suspend,
.resume = usbtouch_resume,
+ .reset_resume = usbtouch_reset_resume,
.id_table = usbtouch_devices,
};