diff --git a/dma.c b/dma.c index ce34af31..bb5eec1b 100644 --- a/dma.c +++ b/dma.c @@ -303,8 +303,6 @@ int mt76_dma_tx_queue_skb(struct mt76_dev *dev, enum mt76_txq_id qid, } skb->prev = skb->next = NULL; - if (dev->drv->tx_aligned4_skbs) - mt76_insert_hdr_pad(skb); len = skb_headlen(skb); addr = dma_map_single(dev->dev, skb->data, len, DMA_TO_DEVICE); diff --git a/mt76.h b/mt76.h index ab184705..2534c341 100644 --- a/mt76.h +++ b/mt76.h @@ -297,7 +297,6 @@ struct mt76_hw_cap { }; struct mt76_driver_ops { - bool tx_aligned4_skbs; u16 txwi_size; void (*update_survey)(struct mt76_dev *dev); @@ -668,20 +667,6 @@ int mt76_dma_tx_queue_skb(struct mt76_dev *dev, enum mt76_txq_id qid, struct sk_buff *skb, struct mt76_wcid *wcid, struct ieee80211_sta *sta); -static inline void mt76_insert_hdr_pad(struct sk_buff *skb) -{ - int len = ieee80211_get_hdrlen_from_skb(skb); - - if (len % 4 == 0) - return; - - skb_push(skb, 2); - memmove(skb->data, skb->data + 2, len); - - skb->data[len] = 0; - skb->data[len + 1] = 0; -} - void mt76_rx(struct mt76_dev *dev, enum mt76_rxq_id q, struct sk_buff *skb); void mt76_tx(struct mt76_dev *dev, struct ieee80211_sta *sta, struct mt76_wcid *wcid, struct sk_buff *skb); diff --git a/mt76x0/pci.c b/mt76x0/pci.c index e07a6224..f3021620 100644 --- a/mt76x0/pci.c +++ b/mt76x0/pci.c @@ -164,7 +164,6 @@ mt76x0e_probe(struct pci_dev *pdev, const struct pci_device_id *id) { static const struct mt76_driver_ops drv_ops = { .txwi_size = sizeof(struct mt76x02_txwi), - .tx_aligned4_skbs = true, .update_survey = mt76x02_update_channel, .tx_prepare_skb = mt76x02_tx_prepare_skb, .tx_complete_skb = mt76x02_tx_complete_skb, diff --git a/mt76x02_usb_core.c b/mt76x02_usb_core.c index 394dfe5b..c470e5ea 100644 --- a/mt76x02_usb_core.c +++ b/mt76x02_usb_core.c @@ -82,8 +82,6 @@ int mt76x02u_tx_prepare_skb(struct mt76_dev *mdev, void *data, enum mt76_qsel qsel; u32 flags; - mt76_insert_hdr_pad(skb); - txwi = (struct mt76x02_txwi *)(skb->data - sizeof(struct mt76x02_txwi)); mt76x02_mac_write_txwi(dev, txwi, skb, wcid, sta, len); skb_push(skb, sizeof(struct mt76x02_txwi)); diff --git a/mt76x02_util.c b/mt76x02_util.c index 079ac265..d1066221 100644 --- a/mt76x02_util.c +++ b/mt76x02_util.c @@ -174,6 +174,7 @@ void mt76x02_init_device(struct mt76x02_dev *dev) hw->sta_data_size = sizeof(struct mt76x02_sta); hw->vif_data_size = sizeof(struct mt76x02_vif); + ieee80211_hw_set(hw, TX_NEEDS_ALIGNED4_SKBS); ieee80211_hw_set(hw, SUPPORTS_HT_CCK_RATES); ieee80211_hw_set(hw, SUPPORTS_REORDERING_BUFFER); diff --git a/mt76x2/pci.c b/mt76x2/pci.c index 4747f782..6274655e 100644 --- a/mt76x2/pci.c +++ b/mt76x2/pci.c @@ -32,7 +32,6 @@ mt76pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) { static const struct mt76_driver_ops drv_ops = { .txwi_size = sizeof(struct mt76x02_txwi), - .tx_aligned4_skbs = true, .update_survey = mt76x02_update_channel, .tx_prepare_skb = mt76x02_tx_prepare_skb, .tx_complete_skb = mt76x02_tx_complete_skb,