diff options
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2x00dev.c')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00dev.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c index eb2d21c4e8e9..a885254d2e85 100644 --- a/drivers/net/wireless/rt2x00/rt2x00dev.c +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c | |||
@@ -574,19 +574,21 @@ void rt2x00lib_rxdone(struct queue_entry *entry, | |||
574 | u16 fc; | 574 | u16 fc; |
575 | 575 | ||
576 | /* | 576 | /* |
577 | * If the signal is the plcp value, | ||
578 | * we need to strip the preamble bit (0x08). | ||
579 | */ | ||
580 | if (rxdesc->signal_plcp) | ||
581 | rxdesc->signal &= ~0x08; | ||
582 | |||
583 | /* | ||
577 | * Update RX statistics. | 584 | * Update RX statistics. |
578 | */ | 585 | */ |
579 | sband = &rt2x00dev->bands[rt2x00dev->curr_band]; | 586 | sband = &rt2x00dev->bands[rt2x00dev->curr_band]; |
580 | for (i = 0; i < sband->n_bitrates; i++) { | 587 | for (i = 0; i < sband->n_bitrates; i++) { |
581 | rate = rt2x00_get_rate(sband->bitrates[i].hw_value); | 588 | rate = rt2x00_get_rate(sband->bitrates[i].hw_value); |
582 | 589 | ||
583 | /* | 590 | if ((rxdesc->signal_plcp && rate->plcp == rxdesc->signal) || |
584 | * When frame was received with an OFDM bitrate, | 591 | (!rxdesc->signal_plcp && rate->bitrate == rxdesc->signal)) { |
585 | * the signal is the PLCP value. If it was received with | ||
586 | * a CCK bitrate the signal is the rate in 100kbit/s. | ||
587 | */ | ||
588 | if ((rxdesc->ofdm && rate->plcp == rxdesc->signal) || | ||
589 | (!rxdesc->ofdm && rate->bitrate == rxdesc->signal)) { | ||
590 | idx = i; | 592 | idx = i; |
591 | break; | 593 | break; |
592 | } | 594 | } |