diff options
author | Inaky Perez-Gonzalez <inaky@linux.intel.com> | 2009-02-28 18:42:50 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-03-02 06:10:25 -0500 |
commit | 8987691a4aa6622a1b58bb12c56abaf3d2098fad (patch) | |
tree | 92da0abdf6a29aa60ec5aff6250b1937d4c264d6 /include/linux/wimax/i2400m.h | |
parent | 6a0f7ab8305cb60a43a6c4a548f57adab784e6cd (diff) |
wimax/i2400m: allow control of the base-station idle mode timeout
For power saving reasons, WiMAX links can be put in idle mode while
connected after a certain time of the link not being used for tx or
rx. In this mode, the device pages the base-station regularly and when
data is ready to be transmitted, the link is revived.
This patch allows the user to control the time the device has to be
idle before it decides to go to idle mode from a sysfs
interace.
It also updates the initialization code to acknowledge the module
variable 'idle_mode_disabled' when the firmware is a newer version
(upcoming 1.4 vs 2.6.29's v1.3).
The method for setting the idle mode timeout in the older firmwares is
much more limited and can be only done at initialization time. Thus,
the sysfs file will return -ENOSYS on older ones.
Signed-off-by: Inaky Perez-Gonzalez <inaky@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/wimax/i2400m.h')
-rw-r--r-- | include/linux/wimax/i2400m.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/include/linux/wimax/i2400m.h b/include/linux/wimax/i2400m.h index 74198f5bb4dc..686eeb2b9704 100644 --- a/include/linux/wimax/i2400m.h +++ b/include/linux/wimax/i2400m.h | |||
@@ -381,6 +381,7 @@ enum i2400m_tlv { | |||
381 | I2400M_TLV_RF_STATUS = 163, | 381 | I2400M_TLV_RF_STATUS = 163, |
382 | I2400M_TLV_DEVICE_RESET_TYPE = 132, | 382 | I2400M_TLV_DEVICE_RESET_TYPE = 132, |
383 | I2400M_TLV_CONFIG_IDLE_PARAMETERS = 601, | 383 | I2400M_TLV_CONFIG_IDLE_PARAMETERS = 601, |
384 | I2400M_TLV_CONFIG_IDLE_TIMEOUT = 611, | ||
384 | }; | 385 | }; |
385 | 386 | ||
386 | 387 | ||
@@ -509,4 +510,13 @@ struct i2400m_tlv_media_status { | |||
509 | __le32 media_status; | 510 | __le32 media_status; |
510 | } __attribute__((packed)); | 511 | } __attribute__((packed)); |
511 | 512 | ||
513 | |||
514 | /* New in v1.4 */ | ||
515 | struct i2400m_tlv_config_idle_timeout { | ||
516 | struct i2400m_tlv_hdr hdr; | ||
517 | __le32 timeout; /* 100 to 300000 ms [5min], 100 increments | ||
518 | * 0 disabled */ | ||
519 | } __attribute__((packed)); | ||
520 | |||
521 | |||
512 | #endif /* #ifndef __LINUX__WIMAX__I2400M_H__ */ | 522 | #endif /* #ifndef __LINUX__WIMAX__I2400M_H__ */ |