Without this patch, monitor mode does not returns all frames. With this patch,
the performance are quite poor if we create a monitor interface. Note :
creating a monitor interface with the "cook" flag has no impact on performance.

Signed-off-by: Benoit Papillault <benoit.papilla...@free.fr>
---
 drivers/net/wireless/zd1211rw/zd_mac.c |   20 +++++++++++++++++++-
 1 files changed, 19 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c 
b/drivers/net/wireless/zd1211rw/zd_mac.c
index 2d555cc..9cb6cbc 100644
--- a/drivers/net/wireless/zd1211rw/zd_mac.c
+++ b/drivers/net/wireless/zd1211rw/zd_mac.c
@@ -904,8 +904,26 @@ static int zd_op_config(struct ieee80211_hw *hw, u32 
changed)
 {
        struct zd_mac *mac = zd_hw_mac(hw);
        struct ieee80211_conf *conf = &hw->conf;
+       int ret;
 
-       return zd_chip_set_channel(&mac->chip, conf->channel->hw_value);
+       if (changed & IEEE80211_CONF_CHANGE_MONITOR) {
+               /*
+                * Warning : enabling this register kills RX & TX
+                * performance
+                */
+               u32 cr_sniffer = !!(conf->flags & IEEE80211_CONF_MONITOR);
+               ret = zd_iowrite32(&mac->chip, CR_SNIFFER_ON, cr_sniffer);
+               if (!ret)
+                       return ret;
+       }
+
+       if (changed & IEEE80211_CONF_CHANGE_CHANNEL) {
+               ret = zd_chip_set_channel(&mac->chip, conf->channel->hw_value);
+               if (!ret)
+                       return ret;
+       }
+
+       return 0;
 }
 
 static void zd_process_intr(struct work_struct *work)
-- 
1.5.6.5


------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
_______________________________________________
Zd1211-devs mailing list - http://zd1211.wiki.sourceforge.net/
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/zd1211-devs

Reply via email to