|
|
@@ -208,10 +208,18 @@ static void rtl8821ce_rx_mpdu(_adapter *padapter)
|
|
|
_rtw_init_listhead(&precvframe->u.hdr.list);
|
|
|
precvframe->u.hdr.len = 0;
|
|
|
|
|
|
+ #if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0))
|
|
|
pci_unmap_single(pdvobjpriv->ppcidev,
|
|
|
*((dma_addr_t *)skb->cb),
|
|
|
r_priv->rxbuffersize,
|
|
|
PCI_DMA_FROMDEVICE);
|
|
|
+ #else
|
|
|
+ dma_unmap_single(&(pdvobjpriv->ppcidev)->dev,
|
|
|
+ *((dma_addr_t *)skb->cb),
|
|
|
+ r_priv->rxbuffersize,
|
|
|
+ DMA_FROM_DEVICE);
|
|
|
+ #endif
|
|
|
+
|
|
|
|
|
|
rtl8821c_query_rx_desc(precvframe, skb->data);
|
|
|
pattrib = &precvframe->u.hdr.attrib;
|
|
|
@@ -244,10 +252,17 @@ static void rtl8821ce_rx_mpdu(_adapter *padapter)
|
|
|
|
|
|
RTW_INFO("rtl8821ce_rx_mpdu:can't allocate memory for skb copy\n");
|
|
|
*((dma_addr_t *) skb->cb) =
|
|
|
+ #if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0))
|
|
|
pci_map_single(pdvobjpriv->ppcidev,
|
|
|
skb_tail_pointer(skb),
|
|
|
r_priv->rxbuffersize,
|
|
|
PCI_DMA_FROMDEVICE);
|
|
|
+ #else
|
|
|
+ dma_map_single(&(pdvobjpriv->ppcidev)->dev,
|
|
|
+ skb_tail_pointer(skb),
|
|
|
+ r_priv->rxbuffersize,
|
|
|
+ DMA_FROM_DEVICE);
|
|
|
+ #endif
|
|
|
goto done;
|
|
|
}
|
|
|
|
|
|
@@ -264,10 +279,17 @@ static void rtl8821ce_rx_mpdu(_adapter *padapter)
|
|
|
rtw_free_recvframe(precvframe, pfree_recv_queue);
|
|
|
}
|
|
|
*((dma_addr_t *) skb->cb) =
|
|
|
+ #if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0))
|
|
|
pci_map_single(pdvobjpriv->ppcidev,
|
|
|
skb_tail_pointer(skb),
|
|
|
r_priv->rxbuffersize,
|
|
|
PCI_DMA_FROMDEVICE);
|
|
|
+ #else
|
|
|
+ dma_map_single(&(pdvobjpriv->ppcidev)->dev,
|
|
|
+ skb_tail_pointer(skb),
|
|
|
+ r_priv->rxbuffersize,
|
|
|
+ DMA_FROM_DEVICE);
|
|
|
+ #endif
|
|
|
}
|
|
|
done:
|
|
|
|
|
|
@@ -369,10 +391,18 @@ int rtl8821ce_init_rxbd_ring(_adapter *padapter)
|
|
|
/* rx_queue_idx 1:RX_CMD_QUEUE */
|
|
|
for (rx_queue_idx = 0; rx_queue_idx < 1; rx_queue_idx++) {
|
|
|
r_priv->rx_ring[rx_queue_idx].buf_desc =
|
|
|
+ #if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0))
|
|
|
pci_alloc_consistent(pdev,
|
|
|
sizeof(*r_priv->rx_ring[rx_queue_idx].buf_desc) *
|
|
|
r_priv->rxringcount,
|
|
|
&r_priv->rx_ring[rx_queue_idx].dma);
|
|
|
+ #else
|
|
|
+ dma_alloc_coherent(&pdev->dev,
|
|
|
+ sizeof(*r_priv->rx_ring[rx_queue_idx].buf_desc) *
|
|
|
+ r_priv->rxringcount,
|
|
|
+ &r_priv->rx_ring[rx_queue_idx].dma,
|
|
|
+ GFP_KERNEL);
|
|
|
+ #endif
|
|
|
|
|
|
if (!r_priv->rx_ring[rx_queue_idx].buf_desc ||
|
|
|
(unsigned long)r_priv->rx_ring[rx_queue_idx].buf_desc &
|
|
|
@@ -401,9 +431,16 @@ int rtl8821ce_init_rxbd_ring(_adapter *padapter)
|
|
|
/* just set skb->cb to mapping addr
|
|
|
* for pci_unmap_single use
|
|
|
*/
|
|
|
+ #if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0))
|
|
|
*mapping = pci_map_single(pdev, skb_tail_pointer(skb),
|
|
|
- r_priv->rxbuffersize,
|
|
|
- PCI_DMA_FROMDEVICE);
|
|
|
+ r_priv->rxbuffersize,
|
|
|
+ PCI_DMA_FROMDEVICE);
|
|
|
+ #else
|
|
|
+ *mapping = dma_map_single(&pdev->dev, skb_tail_pointer(skb),
|
|
|
+ r_priv->rxbuffersize,
|
|
|
+ DMA_FROM_DEVICE);
|
|
|
+ #endif
|
|
|
+
|
|
|
|
|
|
/* Reset FS, LS, Total len */
|
|
|
SET_RX_BD_LS(rx_desc, 0);
|
|
|
@@ -445,18 +482,33 @@ void rtl8821ce_free_rxbd_ring(_adapter *padapter)
|
|
|
if (!skb)
|
|
|
continue;
|
|
|
|
|
|
+ #if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0))
|
|
|
pci_unmap_single(pdev,
|
|
|
*((dma_addr_t *) skb->cb),
|
|
|
r_priv->rxbuffersize,
|
|
|
PCI_DMA_FROMDEVICE);
|
|
|
+ #else
|
|
|
+ dma_unmap_single(&pdev->dev,
|
|
|
+ *((dma_addr_t *) skb->cb),
|
|
|
+ r_priv->rxbuffersize,
|
|
|
+ DMA_FROM_DEVICE);
|
|
|
+ #endif
|
|
|
kfree_skb(skb);
|
|
|
}
|
|
|
|
|
|
+ #if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0))
|
|
|
pci_free_consistent(pdev,
|
|
|
sizeof(*r_priv->rx_ring[rx_queue_idx].buf_desc) *
|
|
|
r_priv->rxringcount,
|
|
|
r_priv->rx_ring[rx_queue_idx].buf_desc,
|
|
|
r_priv->rx_ring[rx_queue_idx].dma);
|
|
|
+ #else
|
|
|
+ dma_free_coherent(&pdev->dev,
|
|
|
+ sizeof(*r_priv->rx_ring[rx_queue_idx].buf_desc) *
|
|
|
+ r_priv->rxringcount,
|
|
|
+ r_priv->rx_ring[rx_queue_idx].buf_desc,
|
|
|
+ r_priv->rx_ring[rx_queue_idx].dma);
|
|
|
+ #endif
|
|
|
r_priv->rx_ring[rx_queue_idx].buf_desc = NULL;
|
|
|
}
|
|
|
|