mfd: dln2: Add suspend/resume functionality
[linux-2.6-microblaze.git] / drivers / mfd / dln2.c
index 8311820..1be9bd1 100644 (file)
@@ -791,6 +791,24 @@ out_free:
        return ret;
 }
 
+static int dln2_suspend(struct usb_interface *iface, pm_message_t message)
+{
+       struct dln2_dev *dln2 = usb_get_intfdata(iface);
+
+       dln2_stop(dln2);
+
+       return 0;
+}
+
+static int dln2_resume(struct usb_interface *iface)
+{
+       struct dln2_dev *dln2 = usb_get_intfdata(iface);
+
+       dln2->disconnect = false;
+
+       return dln2_start_rx_urbs(dln2, GFP_NOIO);
+}
+
 static const struct usb_device_id dln2_table[] = {
        { USB_DEVICE(0xa257, 0x2013) },
        { }
@@ -803,6 +821,8 @@ static struct usb_driver dln2_driver = {
        .probe = dln2_probe,
        .disconnect = dln2_disconnect,
        .id_table = dln2_table,
+       .suspend = dln2_suspend,
+       .resume = dln2_resume,
 };
 
 module_usb_driver(dln2_driver);