wimax/i2400m: implement .reset_resume in USB subdriver
authorInaky Perez-Gonzalez <inaky@linux.intel.com>
Mon, 14 Sep 2009 22:28:14 +0000 (15:28 -0700)
committerInaky Perez-Gonzalez <inaky@linux.intel.com>
Mon, 19 Oct 2009 06:56:03 +0000 (15:56 +0900)
Current driver didn't implement the .reset_resume method. The i2400m
normally always reset on a comeback from system standby/hibernation.

This requires previously applied commits to cache the firmware image
file.

Signed-off-by: Inaky Perez-Gonzalez <inaky@linux.intel.com>
drivers/net/wimax/i2400m/usb.c

index 77d08d928274ebbd14fba2820d615e7e33a5f82b..07653ded6c59ede7ffc268635af493216973a26e 100644 (file)
@@ -623,6 +623,21 @@ out:
 }
 
 
+static
+int i2400mu_reset_resume(struct usb_interface *iface)
+{
+       int result;
+       struct device *dev = &iface->dev;
+       struct i2400mu *i2400mu = usb_get_intfdata(iface);
+       struct i2400m *i2400m = &i2400mu->i2400m;
+
+       d_fnstart(3, dev, "(iface %p)\n", iface);
+       result = i2400m_dev_reset_handle(i2400m, "device reset on resume");
+       d_fnend(3, dev, "(iface %p) = %d\n", iface, result);
+       return result < 0 ? result : 0;
+}
+
+
 static
 struct usb_device_id i2400mu_id_table[] = {
        { USB_DEVICE(0x8086, USB_DEVICE_ID_I6050) },
@@ -643,6 +658,7 @@ struct usb_driver i2400mu_driver = {
        .name = KBUILD_MODNAME,
        .suspend = i2400mu_suspend,
        .resume = i2400mu_resume,
+       .reset_resume = i2400mu_reset_resume,
        .probe = i2400mu_probe,
        .disconnect = i2400mu_disconnect,
        .id_table = i2400mu_id_table,