summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/realtek/rtw88/pci.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/net/wireless/realtek/rtw88/pci.c b/drivers/net/wireless/realtek/rtw88/pci.c
index bc3a36402e56..d90928be663b 100644
--- a/drivers/net/wireless/realtek/rtw88/pci.c
+++ b/drivers/net/wireless/realtek/rtw88/pci.c
@@ -500,6 +500,17 @@ static void rtw_pci_dma_reset(struct rtw_dev *rtwdev, struct rtw_pci *rtwpci)
500 rtwpci->rx_tag = 0; 500 rtwpci->rx_tag = 0;
501} 501}
502 502
503static void rtw_pci_dma_release(struct rtw_dev *rtwdev, struct rtw_pci *rtwpci)
504{
505 struct rtw_pci_tx_ring *tx_ring;
506 u8 queue;
507
508 for (queue = 0; queue < RTK_MAX_TX_QUEUE_NUM; queue++) {
509 tx_ring = &rtwpci->tx_rings[queue];
510 rtw_pci_free_tx_ring_skbs(rtwdev, tx_ring);
511 }
512}
513
503static int rtw_pci_start(struct rtw_dev *rtwdev) 514static int rtw_pci_start(struct rtw_dev *rtwdev)
504{ 515{
505 struct rtw_pci *rtwpci = (struct rtw_pci *)rtwdev->priv; 516 struct rtw_pci *rtwpci = (struct rtw_pci *)rtwdev->priv;
@@ -521,6 +532,7 @@ static void rtw_pci_stop(struct rtw_dev *rtwdev)
521 532
522 spin_lock_irqsave(&rtwpci->irq_lock, flags); 533 spin_lock_irqsave(&rtwpci->irq_lock, flags);
523 rtw_pci_disable_interrupt(rtwdev, rtwpci); 534 rtw_pci_disable_interrupt(rtwdev, rtwpci);
535 rtw_pci_dma_release(rtwdev, rtwpci);
524 spin_unlock_irqrestore(&rtwpci->irq_lock, flags); 536 spin_unlock_irqrestore(&rtwpci->irq_lock, flags);
525} 537}
526 538