* it. */
        case I2400M_MT_REPORT_POWERSAVE_READY:  /* zzzzz */
                if (l3l4_hdr->status == cpu_to_le16(I2400M_MS_DONE_OK)) {
-                       d_printf(1, dev, "ready for powersave, requesting\n");
-                       i2400m_cmd_enter_powersave(i2400m);
+                       if (i2400m_power_save_disabled)
+                               d_printf(1, dev, "ready for powersave, "
+                                        "not requesting (disabled by module "
+                                        "parameter)\n");
+                       else {
+                               d_printf(1, dev, "ready for powersave, "
+                                        "requesting\n");
+                               i2400m_cmd_enter_powersave(i2400m);
+                       }
                }
                break;
        };
 
 MODULE_PARM_DESC(rx_reorder_disabled,
                 "If true, RX reordering will be disabled.");
 
+int i2400m_power_save_disabled;        /* 0 (power saving enabled) by default */
+module_param_named(power_save_disabled, i2400m_power_save_disabled, int, 0644);
+MODULE_PARM_DESC(power_save_disabled,
+                "If true, the driver will not tell the device to enter "
+                "power saving mode when it reports it is ready for it. "
+                "False by default (so the device is told to do power "
+                "saving).");
+
 /**
  * i2400m_queue_work - schedule work on a i2400m's queue
  *
 
        cpu_to_le32(I2400M_SBOOT_BARKER)
 };
 
+extern int i2400m_power_save_disabled;
 
 /*
  * Utility functions