Skip to contentSkip to conversation

Try 2: Modify rt2x00-d80211 to use wireless statistics

PATCH In review Larry Finger 1 participant 1 message Aug 24, 2006

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 4/4 Try 2: Modify rt2x00-d80211 to use wireless statistics

These patches modify the rt2x00-d80211 family of drivers to use the wireless statics added in patch 1.

======================================

drivers/net/wireless/d80211/rt2x00/rt2400pci.c +9 -0
index 00f3a66..4244e94 100644
@@ -1709,6 +1709,14 @@ static void rt2400pci_rxdone(void *data)
 			rt2x00dev->rx_params.ssi =
 				rt2x00_get_field32(rxd->word2, RXD_W2_RSSI);
 
+/* FIXME: The following set of assignments supply additional data for wireless statistics. The
+          necessary quantities are (1) the "noise" value in dBm, and (2) the "signal" value in dBm.
+          The present code supplies dummy values for these quantities. */
+
+			rt2x00dev->rx_params.noise = -85;   /* FIXME */
+			rt2x00dev->rx_params.signal =
+				rt2x00dev->rx_params.ssi - RT2X00_RX_MAX_SSI; /* FIXME */
+
 			__ieee80211_rx(ring->net_dev,
 				skb, &rt2x00dev->rx_params);
 		}
@@ -2565,6 +2573,7 @@ static int rt2400pci_init_hw(struct rt2x
 	hw->device_strips_mic = 0;
 	hw->monitor_during_oper = 1;
 	hw->fraglist = 0;
+	hw->maxssi = RT2X00_RX_MAX_SSI;
 
 	/*
 	 * We have 2 TX queues: TX and PRIO.
drivers/net/wireless/d80211/rt2x00/rt2500pci.c +9 -0
index 3f6dd94..16cffe0 100644
@@ -1853,6 +1853,14 @@ static void rt2500pci_rxdone(void *data)
 			rt2x00dev->rx_params.ssi =
 				rt2x00_get_field32(rxd->word2, RXD_W2_RSSI);
 
+/* FIXME: The following set of assignments supply additional data for wireless statistics. The
+          necessary quantities are (1) the "noise" value in dBm, and (2) the "signal" value in dBm.
+          The present code supplies dummy values for these quantities. */
+
+			rt2x00dev->rx_params.noise = -85;   /* FIXME */
+			rt2x00dev->rx_params.signal =
+				rt2x00dev->rx_params.ssi - RT2X00_RX_MAX_SSI; /* FIXME */
+
 			__ieee80211_rx(ring->net_dev,
 				skb, &rt2x00dev->rx_params);
 
@@ -2717,6 +2725,7 @@ static int rt2500pci_init_hw(struct rt2x
 	hw->device_strips_mic = 0;
 	hw->monitor_during_oper = 1;
 	hw->fraglist = 0;
+	hw->maxssi = RT2X00_RX_MAX_SSI;
 
 	/*
 	 * We have 2 TX queues: TX and PRIO.
drivers/net/wireless/d80211/rt2x00/rt2500usb.c +9 -0
index 383f4a9..f77ecd4 100644
@@ -1623,6 +1623,14 @@ static void rt2500usb_rxdone(void *data)
 			rt2x00dev->rx_params.ssi =
 				rt2x00_get_field32(rxd->word1, RXD_W1_RSSI);
 
+/* FIXME: The following set of assignments supply additional data for wireless statistics. The
+	  necessary quantities are (1) the "noise" value in dBm, and (2) the "signal" value in dBm.
+	  The present code supplies dummy values for these quantities. */
+
+			rt2x00dev->rx_params.noise = -85;   /* FIXME */
+			rt2x00dev->rx_params.signal =
+				rt2x00dev->rx_params.ssi - RT2X00_RX_MAX_SSI; /* FIXME */
+
 			__ieee80211_rx(ring->net_dev,
 				skb, &rt2x00dev->rx_params);
 
@@ -2387,6 +2395,7 @@ static int rt2500usb_init_hw(struct rt2x
 	hw->device_strips_mic = 0;
 	hw->monitor_during_oper = 1;
 	hw->fraglist = 0;
+	hw->maxssi = RT2X00_RX_MAX_SSI;
 
 	/*
 	 * We have 2 TX queues: TX and PRIO.
drivers/net/wireless/d80211/rt2x00/rt2x00.h +2 -0
index 89eee23..5669ef9 100644
@@ -826,6 +826,8 @@ #define CONFIG_EXTERNAL_LNA_BG		0x000080
 #define CONFIG_DOUBLE_ANTENNA		0x00010000
 #define CONFIG_DISABLE_BBP_TUNING	0x00020000
 
+#define RT2X00_RX_MAX_SSI		100
+
 	/*
 	 * Chipset identification.
 	 */
drivers/net/wireless/d80211/rt2x00/rt61pci.c +9 -0
index 2157ba2..fa6fec4 100644
@@ -2300,6 +2300,14 @@ static void rt61pci_rxdone(void *data)
 			rt2x00dev->rx_params.ssi =
 				rt2x00_get_field32(rxd->word1, RXD_W1_RSSI);
 
+/* FIXME: The following set of assignments supply additional data for wireless statistics. The
+	  necessary quantities are (1) the "noise" value in dBm, and (2) the "signal" value in dBm.
+	  The present code supplies dummy values for these quantities. */
+
+			rt2x00dev->rx_params.noise = -85;   /* FIXME */
+			rt2x00dev->rx_params.signal =
+				rt2x00dev->rx_params.ssi - RT2X00_RX_MAX_SSI; /* FIXME */
+
 			__ieee80211_rx(ring->net_dev,
 				skb, &rt2x00dev->rx_params);
 
@@ -3242,6 +3250,7 @@ static int rt61pci_init_hw(struct rt2x00
 	hw->device_strips_mic = 0;
 	hw->monitor_during_oper = 1;
 	hw->fraglist = 0;
+	hw->maxssi = RT2X00_RX_MAX_SSI;
 
 	/*
 	 * We have full WMM capabilities.
drivers/net/wireless/d80211/rt2x00/rt73usb.c +9 -0
index 682d078..9ab54a9 100644
@@ -1907,6 +1907,14 @@ static void rt73usb_rxdone(void *data)
 			rt2x00dev->rx_params.ssi =
 				rt2x00_get_field32(rxd->word1, RXD_W1_RSSI);
 
+/* FIXME: The following set of assignments supply additional data for wireless statistics. The
+	  necessary quantities are (1) the "noise" value in dBm, and (2) the "signal" value in dBm.
+	  The present code supplies dummy values for these quantities. */
+
+			rt2x00dev->rx_params.noise = -85;   /* FIXME */
+			rt2x00dev->rx_params.signal =
+				rt2x00dev->rx_params.ssi - RT2X00_RX_MAX_SSI; /* FIXME */
+
 			__ieee80211_rx(ring->net_dev,
 				skb, &rt2x00dev->rx_params);
 
@@ -2755,6 +2763,7 @@ static int rt73usb_init_hw(struct rt2x00
 	hw->device_strips_mic = 0;
 	hw->monitor_during_oper = 1;
 	hw->fraglist = 0;
+	hw->maxssi = RT2X00_RX_MAX_SSI;
 
 	/*
 	 * We have full WMM capabilities.