mt76: mt7615: introduce mt7615_txwi_to_txp utility routine
authorLorenzo Bianconi <lorenzo@kernel.org>
Wed, 28 Aug 2019 09:01:40 +0000 (11:01 +0200)
committerFelix Fietkau <nbd@nbd.name>
Thu, 5 Sep 2019 16:14:14 +0000 (18:14 +0200)
Introduce mt7615_txwi_to_txp utility routine to convert mt76_txwi_cache
into mt7615_txp and remove duplicated code

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7615/mac.c
drivers/net/wireless/mediatek/mt76/mt7615/mac.h

index c35c386..e07ce2c 100644 (file)
@@ -232,11 +232,9 @@ void mt7615_tx_complete_skb(struct mt76_dev *mdev, enum mt76_txq_id qid,
                struct mt76_txwi_cache *t;
                struct mt7615_dev *dev;
                struct mt7615_txp *txp;
-               u8 *txwi_ptr;
 
-               txwi_ptr = mt76_get_txwi_ptr(mdev, e->txwi);
-               txp = (struct mt7615_txp *)(txwi_ptr + MT_TXD_SIZE);
                dev = container_of(mdev, struct mt7615_dev, mt76);
+               txp = mt7615_txwi_to_txp(mdev, e->txwi);
 
                spin_lock_bh(&dev->token_lock);
                t = idr_remove(&dev->token, le16_to_cpu(txp->token));
@@ -449,11 +447,9 @@ void mt7615_txp_skb_unmap(struct mt76_dev *dev,
                          struct mt76_txwi_cache *t)
 {
        struct mt7615_txp *txp;
-       u8 *txwi;
        int i;
 
-       txwi = mt76_get_txwi_ptr(dev, t);
-       txp = (struct mt7615_txp *)(txwi + MT_TXD_SIZE);
+       txp = mt7615_txwi_to_txp(dev, t);
        for (i = 1; i < txp->nbuf; i++)
                dma_unmap_single(dev->dev, le32_to_cpu(txp->buf[i]),
                                 le16_to_cpu(txp->len[i]), DMA_TO_DEVICE);
index 051b540..38695d4 100644 (file)
@@ -317,4 +317,17 @@ enum mt7615_cipher_type {
        MT_CIPHER_GCMP_256,
 };
 
+static inline struct mt7615_txp *
+mt7615_txwi_to_txp(struct mt76_dev *dev, struct mt76_txwi_cache *t)
+{
+       u8 *txwi;
+
+       if (!t)
+               return NULL;
+
+       txwi = mt76_get_txwi_ptr(dev, t);
+
+       return (struct mt7615_txp *)(txwi + MT_TXD_SIZE);
+}
+
 #endif