diff options
author | Lorenzo Bianconi <lorenzo@kernel.org> | 2020-09-26 17:06:22 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2020-12-04 13:46:13 +0100 |
commit | e0ad800243291dc34250997ce8b4ab602651522f (patch) | |
tree | c177f773c017e91a6ce0e4cd2d125482b15de6de /drivers/net/wireless/mediatek/mt76/sdio.c | |
parent | mt76: mt7615: retry if mt7615_mcu_init returns -EAGAIN (diff) | |
download | linux-e0ad800243291dc34250997ce8b4ab602651522f.tar.xz linux-e0ad800243291dc34250997ce8b4ab602651522f.zip |
mt76: mt7663s: move tx/rx processing in the same txrx workqueue
Move mt7663 tx and rx processing in the same workqueue in order to
reduce jitter that can hit tcp performances. This is a preliminary patch
to switch to mt76 workers APIs
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'drivers/net/wireless/mediatek/mt76/sdio.c')
-rw-r--r-- | drivers/net/wireless/mediatek/mt76/sdio.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/sdio.c b/drivers/net/wireless/mediatek/mt76/sdio.c index 9a4d95a2a707..6eb75ffa9e0f 100644 --- a/drivers/net/wireless/mediatek/mt76/sdio.c +++ b/drivers/net/wireless/mediatek/mt76/sdio.c @@ -66,10 +66,9 @@ void mt76s_stop_txrx(struct mt76_dev *dev) { struct mt76_sdio *sdio = &dev->sdio; - cancel_work_sync(&sdio->tx.xmit_work); - cancel_work_sync(&sdio->tx.status_work); - cancel_work_sync(&sdio->rx.recv_work); - cancel_work_sync(&sdio->rx.net_work); + cancel_work_sync(&sdio->txrx_work); + cancel_work_sync(&sdio->status_work); + cancel_work_sync(&sdio->net_work); cancel_work_sync(&sdio->stat_work); clear_bit(MT76_READING_STATS, &dev->phy.state); @@ -257,7 +256,7 @@ static void mt76s_tx_kick(struct mt76_dev *dev, struct mt76_queue *q) { struct mt76_sdio *sdio = &dev->sdio; - queue_work(sdio->txrx_wq, &sdio->tx.xmit_work); + queue_work(sdio->txrx_wq, &sdio->txrx_work); } static const struct mt76_queue_ops sdio_queue_ops = { @@ -269,7 +268,7 @@ static const struct mt76_queue_ops sdio_queue_ops = { static void mt76s_tx_work(struct work_struct *work) { struct mt76_sdio *sdio = container_of(work, struct mt76_sdio, - tx.status_work); + status_work); struct mt76_dev *dev = container_of(sdio, struct mt76_dev, sdio); int i; @@ -284,7 +283,7 @@ static void mt76s_tx_work(struct work_struct *work) static void mt76s_rx_work(struct work_struct *work) { struct mt76_sdio *sdio = container_of(work, struct mt76_sdio, - rx.net_work); + net_work); struct mt76_dev *dev = container_of(sdio, struct mt76_dev, sdio); int i; @@ -343,8 +342,8 @@ int mt76s_init(struct mt76_dev *dev, struct sdio_func *func, return -ENOMEM; INIT_WORK(&sdio->stat_work, mt76s_tx_status_data); - INIT_WORK(&sdio->tx.status_work, mt76s_tx_work); - INIT_WORK(&sdio->rx.net_work, mt76s_rx_work); + INIT_WORK(&sdio->status_work, mt76s_tx_work); + INIT_WORK(&sdio->net_work, mt76s_rx_work); mutex_init(&sdio->sched.lock); dev->queue_ops = &sdio_queue_ops; |