Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

b43: add support for setting the beacon listen interval

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

authored by

Hauke Mehrtens and committed by
John W. Linville
4214852e 0996c391

+10
+1
drivers/net/wireless/b43/b43.h
··· 300 300 #define B43_SHM_SH_LFFBLIM 0x0046 /* Long frame fallback retry limit */ 301 301 #define B43_SHM_SH_BEACPHYCTL 0x0054 /* Beacon PHY TX control word (see PHY TX control) */ 302 302 #define B43_SHM_SH_EXTNPHYCTL 0x00B0 /* Extended bytes for beacon PHY control (N) */ 303 + #define B43_SHM_SH_BCN_LI 0x00B6 /* beacon listen interval */ 303 304 /* SHM_SHARED ACK/CTS control */ 304 305 #define B43_SHM_SH_ACKCTSPHYCTL 0x0022 /* ACK/CTS PHY control word (see PHY TX control) */ 305 306 /* SHM_SHARED probe response variables */
+9
drivers/net/wireless/b43/main.c
··· 3930 3930 return 0; 3931 3931 } 3932 3932 3933 + static void b43_set_beacon_listen_interval(struct b43_wldev *dev, u16 interval) 3934 + { 3935 + interval = min_t(u16, interval, (u16)0xFF); 3936 + b43_shm_write16(dev, B43_SHM_SHARED, B43_SHM_SH_BCN_LI, interval); 3937 + } 3938 + 3933 3939 /* Write the short and long frame retry limit values. */ 3934 3940 static void b43_set_retry_limits(struct b43_wldev *dev, 3935 3941 unsigned int short_retry, ··· 3963 3957 3964 3958 mutex_lock(&wl->mutex); 3965 3959 b43_mac_suspend(dev); 3960 + 3961 + if (changed & IEEE80211_CONF_CHANGE_LISTEN_INTERVAL) 3962 + b43_set_beacon_listen_interval(dev, conf->listen_interval); 3966 3963 3967 3964 if (changed & IEEE80211_CONF_CHANGE_CHANNEL) { 3968 3965 phy->chandef = &conf->chandef;