ath9k: fix too early enabling of rx during ath_startrecv()
rx should only be enabled after enough rx buffers have been given to the hardware, however ath_rx_buf_link was calling ath9k_hw_rxena after every single added buffer. Fix this by calling ath9k_hw_rxena directly from the rx tasklet after completion instead. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
264bbec811
commit
952949738a
1 changed files with 1 additions and 1 deletions
|
@ -75,7 +75,6 @@ static void ath_rx_buf_link(struct ath_softc *sc, struct ath_buf *bf)
|
||||||
*sc->rx.rxlink = bf->bf_daddr;
|
*sc->rx.rxlink = bf->bf_daddr;
|
||||||
|
|
||||||
sc->rx.rxlink = &ds->ds_link;
|
sc->rx.rxlink = &ds->ds_link;
|
||||||
ath9k_hw_rxena(ah);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ath_setdefantenna(struct ath_softc *sc, u32 antenna)
|
static void ath_setdefantenna(struct ath_softc *sc, u32 antenna)
|
||||||
|
@ -1765,6 +1764,7 @@ requeue:
|
||||||
} else {
|
} else {
|
||||||
list_move_tail(&bf->list, &sc->rx.rxbuf);
|
list_move_tail(&bf->list, &sc->rx.rxbuf);
|
||||||
ath_rx_buf_link(sc, bf);
|
ath_rx_buf_link(sc, bf);
|
||||||
|
ath9k_hw_rxena(ah);
|
||||||
}
|
}
|
||||||
} while (1);
|
} while (1);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue