Skip to content

Commit

Permalink
mt76: mt7915: fix rx fcs error count in testmode
Browse files Browse the repository at this point in the history
[ Upstream commit 8904352 ]

FCS error packets are filtered by default and won't be reported to
driver, so that RX fcs error and PER in testmode always show zero.
Fix this issue by reading fcs error count from hw counter.

We did't fix this issue by disabling fcs error rx filter since it may
let HW suffer some SER errors.

Fixes: 5d8a83f ("mt76: mt7915: implement testmode rx support")
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Sasha Levin <sashal@kernel.org>
  • Loading branch information
csyuanc authored and gregkh committed Jul 14, 2021
1 parent a641c9e commit 1f7de74
Showing 1 changed file with 19 additions and 2 deletions.
21 changes: 19 additions & 2 deletions drivers/net/wireless/mediatek/mt76/mt7915/testmode.c
Original file line number Diff line number Diff line change
Expand Up @@ -476,10 +476,17 @@ mt7915_tm_set_tx_frames(struct mt7915_phy *phy, bool en)
static void
mt7915_tm_set_rx_frames(struct mt7915_phy *phy, bool en)
{
if (en)
mt7915_tm_set_trx(phy, TM_MAC_RX_RXV, false);

if (en) {
struct mt7915_dev *dev = phy->dev;

mt7915_tm_update_channel(phy);

mt7915_tm_set_trx(phy, TM_MAC_RX_RXV, en);
/* read-clear */
mt76_rr(dev, MT_MIB_SDR3(phy != &dev->phy));
mt7915_tm_set_trx(phy, TM_MAC_RX_RXV, en);
}
}

static int
Expand Down Expand Up @@ -702,7 +709,11 @@ static int
mt7915_tm_dump_stats(struct mt76_phy *mphy, struct sk_buff *msg)
{
struct mt7915_phy *phy = mphy->priv;
struct mt7915_dev *dev = phy->dev;
bool ext_phy = phy != &dev->phy;
enum mt76_rxq_id q;
void *rx, *rssi;
u16 fcs_err;
int i;

rx = nla_nest_start(msg, MT76_TM_STATS_ATTR_LAST_RX);
Expand Down Expand Up @@ -747,6 +758,12 @@ mt7915_tm_dump_stats(struct mt76_phy *mphy, struct sk_buff *msg)

nla_nest_end(msg, rx);

fcs_err = mt76_get_field(dev, MT_MIB_SDR3(ext_phy),
MT_MIB_SDR3_FCS_ERR_MASK);
q = ext_phy ? MT_RXQ_EXT : MT_RXQ_MAIN;
mphy->test.rx_stats.packets[q] += fcs_err;
mphy->test.rx_stats.fcs_error[q] += fcs_err;

return 0;
}

Expand Down

0 comments on commit 1f7de74

Please sign in to comment.