aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCahill, Ben M <ben.m.cahill@intel.com>2006-03-07 13:58:02 -0500
committerJohn W. Linville <linville@tuxdriver.com>2006-03-17 15:08:04 -0500
commit12977154e7cb4d72b1295f009a040c56a7e05d90 (patch)
tree45e0f0d861158c76f37ac8731a100d4dfadadb4e
parent3e1555bae145ab2d079a1823cbdd5c486503d147 (diff)
[PATCH] ipw2200: Set a meaningful silence threshold value
Set a meaningful silence threshold value (replacing our previous "0" default), which gets rid of the gratuitous "Link deterioration" notifications that we've been receiving from firmware. This notification feature tells the driver information to help it determine when to pre-emptively restart the firmware/ucode in anticipation of firmware errors! But since setting this new threshold, I haven't seen any such notifications. At least it keeps the logs a little less busy. Signed-off-by: Cahill, Ben M <ben.m.cahill@intel.com> Signed-off-by: Zhu Yi <yi.zhu@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/ipw2200.c8
-rw-r--r--drivers/net/wireless/ipw2200.h9
2 files changed, 10 insertions, 7 deletions
diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c
index a56a77e8f32b..06909cbc9808 100644
--- a/drivers/net/wireless/ipw2200.c
+++ b/drivers/net/wireless/ipw2200.c
@@ -4541,10 +4541,9 @@ static void ipw_rx_notification(struct ipw_priv *priv,
4541 4541
4542 if (notif->size == sizeof(*x)) { 4542 if (notif->size == sizeof(*x)) {
4543 IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE, 4543 IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE,
4544 "link deterioration: '%s' " MAC_FMT 4544 "link deterioration: type %d, cnt %d\n",
4545 " \n", escape_essid(priv->essid, 4545 x->silence_notification_type,
4546 priv->essid_len), 4546 x->silence_count);
4547 MAC_ARG(priv->bssid));
4548 memcpy(&priv->last_link_deterioration, x, 4547 memcpy(&priv->last_link_deterioration, x,
4549 sizeof(*x)); 4548 sizeof(*x));
4550 } else { 4549 } else {
@@ -9607,6 +9606,7 @@ static void init_sys_config(struct ipw_sys_config *sys_config)
9607 sys_config->enable_cts_to_self = 0; 9606 sys_config->enable_cts_to_self = 0;
9608 sys_config->bt_coexist_collision_thr = 0; 9607 sys_config->bt_coexist_collision_thr = 0;
9609 sys_config->pass_noise_stats_to_host = 1; //1 -- fix for 256 9608 sys_config->pass_noise_stats_to_host = 1; //1 -- fix for 256
9609 sys_config->silence_threshold = 0x1e;
9610} 9610}
9611 9611
9612static int ipw_net_open(struct net_device *dev) 9612static int ipw_net_open(struct net_device *dev)
diff --git a/drivers/net/wireless/ipw2200.h b/drivers/net/wireless/ipw2200.h
index c2a7aa32f724..d9f57f456fb7 100644
--- a/drivers/net/wireless/ipw2200.h
+++ b/drivers/net/wireless/ipw2200.h
@@ -618,13 +618,16 @@ struct notif_tgi_tx_key {
618 u8 reserved; 618 u8 reserved;
619} __attribute__ ((packed)); 619} __attribute__ ((packed));
620 620
621#define SILENCE_OVER_THRESH (1)
622#define SILENCE_UNDER_THRESH (2)
623
621struct notif_link_deterioration { 624struct notif_link_deterioration {
622 struct ipw_cmd_stats stats; 625 struct ipw_cmd_stats stats;
623 u8 rate; 626 u8 rate;
624 u8 modulation; 627 u8 modulation;
625 struct rate_histogram histogram; 628 struct rate_histogram histogram;
626 u8 reserved1; 629 u8 silence_notification_type; /* SILENCE_OVER/UNDER_THRESH */
627 u16 reserved2; 630 u16 silence_count;
628} __attribute__ ((packed)); 631} __attribute__ ((packed));
629 632
630struct notif_association { 633struct notif_association {
@@ -782,7 +785,7 @@ struct ipw_sys_config {
782 u8 enable_cts_to_self; 785 u8 enable_cts_to_self;
783 u8 enable_multicast_filtering; 786 u8 enable_multicast_filtering;
784 u8 bt_coexist_collision_thr; 787 u8 bt_coexist_collision_thr;
785 u8 reserved2; 788 u8 silence_threshold;
786 u8 accept_all_mgmt_bcpr; 789 u8 accept_all_mgmt_bcpr;
787 u8 accept_all_mgtm_frames; 790 u8 accept_all_mgtm_frames;
788 u8 pass_noise_stats_to_host; 791 u8 pass_noise_stats_to_host;