浏览代码

rt2x00: Only strip preamble bit in rt2400pci

Only rt2400pci can have the preamble bit set in the PLCP value,
for all other drivers it should not be cleared since that will
conflict with the plcp values for OFDM rates.

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Ivo van Doorn 17 年之前
父节点
当前提交
8ed0985407
共有 2 个文件被更改,包括 3 次插入9 次删除
  1. 3 2
      drivers/net/wireless/rt2x00/rt2400pci.c
  2. 0 7
      drivers/net/wireless/rt2x00/rt2x00dev.c

+ 3 - 2
drivers/net/wireless/rt2x00/rt2400pci.c

@@ -1072,9 +1072,10 @@ static void rt2400pci_fill_rxdone(struct queue_entry *entry,
 
 	/*
 	 * Obtain the status about this packet.
-	 * The signal is the PLCP value.
+	 * The signal is the PLCP value, and needs to be stripped
+	 * of the preamble bit (0x08).
 	 */
-	rxdesc->signal = rt2x00_get_field32(word2, RXD_W2_SIGNAL);
+	rxdesc->signal = rt2x00_get_field32(word2, RXD_W2_SIGNAL) & ~0x08;
 	rxdesc->signal_plcp = 1;
 	rxdesc->rssi = rt2x00_get_field32(word2, RXD_W3_RSSI) -
 	    entry->queue->rt2x00dev->rssi_offset;

+ 0 - 7
drivers/net/wireless/rt2x00/rt2x00dev.c

@@ -573,13 +573,6 @@ void rt2x00lib_rxdone(struct queue_entry *entry,
 	int idx = -1;
 	u16 fc;
 
-	/*
-	 * If the signal is the plcp value,
-	 * we need to strip the preamble bit (0x08).
-	 */
-	if (rxdesc->signal_plcp)
-		rxdesc->signal &= ~0x08;
-
 	/*
 	 * Update RX statistics.
 	 */