[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>
This commit is contained in:
Cahill, Ben M 2006-03-08 02:58:02 +08:00 коммит произвёл John W. Linville
Родитель 3e1555bae1
Коммит 12977154e7
2 изменённых файлов: 10 добавлений и 7 удалений

Просмотреть файл

@ -4541,10 +4541,9 @@ static void ipw_rx_notification(struct ipw_priv *priv,
if (notif->size == sizeof(*x)) { if (notif->size == sizeof(*x)) {
IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE, IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE,
"link deterioration: '%s' " MAC_FMT "link deterioration: type %d, cnt %d\n",
" \n", escape_essid(priv->essid, x->silence_notification_type,
priv->essid_len), x->silence_count);
MAC_ARG(priv->bssid));
memcpy(&priv->last_link_deterioration, x, memcpy(&priv->last_link_deterioration, x,
sizeof(*x)); sizeof(*x));
} else { } else {
@ -9607,6 +9606,7 @@ static void init_sys_config(struct ipw_sys_config *sys_config)
sys_config->enable_cts_to_self = 0; sys_config->enable_cts_to_self = 0;
sys_config->bt_coexist_collision_thr = 0; sys_config->bt_coexist_collision_thr = 0;
sys_config->pass_noise_stats_to_host = 1; //1 -- fix for 256 sys_config->pass_noise_stats_to_host = 1; //1 -- fix for 256
sys_config->silence_threshold = 0x1e;
} }
static int ipw_net_open(struct net_device *dev) static int ipw_net_open(struct net_device *dev)

Просмотреть файл

@ -618,13 +618,16 @@ struct notif_tgi_tx_key {
u8 reserved; u8 reserved;
} __attribute__ ((packed)); } __attribute__ ((packed));
#define SILENCE_OVER_THRESH (1)
#define SILENCE_UNDER_THRESH (2)
struct notif_link_deterioration { struct notif_link_deterioration {
struct ipw_cmd_stats stats; struct ipw_cmd_stats stats;
u8 rate; u8 rate;
u8 modulation; u8 modulation;
struct rate_histogram histogram; struct rate_histogram histogram;
u8 reserved1; u8 silence_notification_type; /* SILENCE_OVER/UNDER_THRESH */
u16 reserved2; u16 silence_count;
} __attribute__ ((packed)); } __attribute__ ((packed));
struct notif_association { struct notif_association {
@ -782,7 +785,7 @@ struct ipw_sys_config {
u8 enable_cts_to_self; u8 enable_cts_to_self;
u8 enable_multicast_filtering; u8 enable_multicast_filtering;
u8 bt_coexist_collision_thr; u8 bt_coexist_collision_thr;
u8 reserved2; u8 silence_threshold;
u8 accept_all_mgmt_bcpr; u8 accept_all_mgmt_bcpr;
u8 accept_all_mgtm_frames; u8 accept_all_mgtm_frames;
u8 pass_noise_stats_to_host; u8 pass_noise_stats_to_host;