mt76x0: disable usb rx bulk aggregation
authorLorenzo Bianconi <lorenzo.bianconi@redhat.com>
Thu, 6 Sep 2018 09:18:27 +0000 (11:18 +0200)
committerFelix Fietkau <nbd@nbd.name>
Wed, 19 Sep 2018 10:29:36 +0000 (12:29 +0200)
In order to use zero-copying, disable usb rx bulk aggregation

Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt76x0/init.c

index 45c9f1f..f2d3ae9 100644 (file)
@@ -109,17 +109,17 @@ static void mt76x0_reset_csr_bbp(struct mt76x0_dev *dev)
 
 static void mt76x0_init_usb_dma(struct mt76x0_dev *dev)
 {
-       struct mt76_usb *usb = &dev->mt76.usb;
        u32 val;
 
        val = mt76_rr(dev, MT_USB_DMA_CFG);
 
-       val |= FIELD_PREP(MT_USB_DMA_CFG_RX_BULK_AGG_TOUT, MT_USB_AGGR_TIMEOUT) |
-              FIELD_PREP(MT_USB_DMA_CFG_RX_BULK_AGG_LMT, MT_USB_AGGR_SIZE_LIMIT) |
-              MT_USB_DMA_CFG_RX_BULK_EN |
+       val |= MT_USB_DMA_CFG_RX_BULK_EN |
               MT_USB_DMA_CFG_TX_BULK_EN;
-       if (usb->in_max_packet == 512)
-               val |= MT_USB_DMA_CFG_RX_BULK_AGG_EN;
+
+       /* disable AGGR_BULK_RX in order to receive one
+        * frame in each rx urb and avoid copies
+        */
+       val &= ~MT_USB_DMA_CFG_RX_BULK_AGG_EN;
        mt76_wr(dev, MT_USB_DMA_CFG, val);
 
        val = mt76_rr(dev, MT_COM_REG0);