aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorInaky Perez-Gonzalez <inaky@linux.intel.com>2009-05-07 13:27:42 -0400
committerInaky Perez-Gonzalez <inaky@linux.intel.com>2009-06-11 06:30:17 -0400
commitfb10167478a3a8e29fe122a7bf4c67b5cfc48a1b (patch)
treec71f8cbfb7e1cb3425d0ed1aa70de2a333a59aa9 /drivers
parent0ed586d075ef65c0268982e5b7f36d0ffaa95547 (diff)
wimax/i2400m: introduce module parameter to disable entering power save
The i2400m driver waits for the device to report being ready for entering power save before asking it to do so. This module parameter allows control of said operation; if disabled, the driver won't ask the device to enter power save mode. This is useful in setups where power saving is not so important or when the overhead imposed by network reentry after power save is not acceptable; by combining this with parameter 'idle_mode_disabled', the driver will always maintain both the connection and the device in active state. Signed-off-by: Inaky Perez-Gonzalez <inaky@linux.intel.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wimax/i2400m/control.c11
-rw-r--r--drivers/net/wimax/i2400m/driver.c8
-rw-r--r--drivers/net/wimax/i2400m/i2400m.h1
3 files changed, 18 insertions, 2 deletions
diff --git a/drivers/net/wimax/i2400m/control.c b/drivers/net/wimax/i2400m/control.c
index bd193ae2178b..89cdfe4e8d89 100644
--- a/drivers/net/wimax/i2400m/control.c
+++ b/drivers/net/wimax/i2400m/control.c
@@ -505,8 +505,15 @@ void i2400m_report_hook(struct i2400m *i2400m,
505 * it. */ 505 * it. */
506 case I2400M_MT_REPORT_POWERSAVE_READY: /* zzzzz */ 506 case I2400M_MT_REPORT_POWERSAVE_READY: /* zzzzz */
507 if (l3l4_hdr->status == cpu_to_le16(I2400M_MS_DONE_OK)) { 507 if (l3l4_hdr->status == cpu_to_le16(I2400M_MS_DONE_OK)) {
508 d_printf(1, dev, "ready for powersave, requesting\n"); 508 if (i2400m_power_save_disabled)
509 i2400m_cmd_enter_powersave(i2400m); 509 d_printf(1, dev, "ready for powersave, "
510 "not requesting (disabled by module "
511 "parameter)\n");
512 else {
513 d_printf(1, dev, "ready for powersave, "
514 "requesting\n");
515 i2400m_cmd_enter_powersave(i2400m);
516 }
510 } 517 }
511 break; 518 break;
512 }; 519 };
diff --git a/drivers/net/wimax/i2400m/driver.c b/drivers/net/wimax/i2400m/driver.c
index ef16c573bb22..86dd18a48358 100644
--- a/drivers/net/wimax/i2400m/driver.c
+++ b/drivers/net/wimax/i2400m/driver.c
@@ -82,6 +82,14 @@ module_param_named(rx_reorder_disabled, i2400m_rx_reorder_disabled, int, 0644);
82MODULE_PARM_DESC(rx_reorder_disabled, 82MODULE_PARM_DESC(rx_reorder_disabled,
83 "If true, RX reordering will be disabled."); 83 "If true, RX reordering will be disabled.");
84 84
85int i2400m_power_save_disabled; /* 0 (power saving enabled) by default */
86module_param_named(power_save_disabled, i2400m_power_save_disabled, int, 0644);
87MODULE_PARM_DESC(power_save_disabled,
88 "If true, the driver will not tell the device to enter "
89 "power saving mode when it reports it is ready for it. "
90 "False by default (so the device is told to do power "
91 "saving).");
92
85/** 93/**
86 * i2400m_queue_work - schedule work on a i2400m's queue 94 * i2400m_queue_work - schedule work on a i2400m's queue
87 * 95 *
diff --git a/drivers/net/wimax/i2400m/i2400m.h b/drivers/net/wimax/i2400m/i2400m.h
index 434ba310c2fe..8dba246e15bf 100644
--- a/drivers/net/wimax/i2400m/i2400m.h
+++ b/drivers/net/wimax/i2400m/i2400m.h
@@ -709,6 +709,7 @@ static const __le32 i2400m_SBOOT_BARKER[4] = {
709 cpu_to_le32(I2400M_SBOOT_BARKER) 709 cpu_to_le32(I2400M_SBOOT_BARKER)
710}; 710};
711 711
712extern int i2400m_power_save_disabled;
712 713
713/* 714/*
714 * Utility functions 715 * Utility functions