rt2800: set max_psdu to 3 on usb devices
authorStanislaw Gruszka <sgruszka@redhat.com>
Fri, 6 Jan 2017 13:05:18 +0000 (14:05 +0100)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 17 Jan 2017 11:58:38 +0000 (13:58 +0200)
All Ralink USB devices I have, including old ones, work well with
max_psdu = 3 (64kB tx AMPDUs).

Fix indent on the way.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/ralink/rt2x00/rt2800lib.c

index 1f4a120fb16d8f054de214d193391011fe2b5ba2..ff047dc5cc2cfd88a2d06e928a0338c49cacc170 100644 (file)
@@ -4743,15 +4743,16 @@ static int rt2800_init_registers(struct rt2x00_dev *rt2x00dev)
 
        rt2800_register_read(rt2x00dev, MAX_LEN_CFG, &reg);
        rt2x00_set_field32(&reg, MAX_LEN_CFG_MAX_MPDU, AGGREGATION_SIZE);
-       if (rt2x00_rt_rev_gte(rt2x00dev, RT2872, REV_RT2872E) ||
-           rt2x00_rt(rt2x00dev, RT2883) ||
-           rt2x00_rt_rev_lt(rt2x00dev, RT3070, REV_RT3070E)) {
+       if (rt2x00_is_usb(rt2x00dev)) {
+               drv_data->max_psdu = 3;
+       } else if (rt2x00_rt_rev_gte(rt2x00dev, RT2872, REV_RT2872E) ||
+                  rt2x00_rt(rt2x00dev, RT2883) ||
+                  rt2x00_rt_rev_lt(rt2x00dev, RT3070, REV_RT3070E)) {
                drv_data->max_psdu = 2;
-               rt2x00_set_field32(&reg, MAX_LEN_CFG_MAX_PSDU, 2);
        } else {
                drv_data->max_psdu = 1;
-               rt2x00_set_field32(&reg, MAX_LEN_CFG_MAX_PSDU, 1);
        }
+       rt2x00_set_field32(&reg, MAX_LEN_CFG_MAX_PSDU, drv_data->max_psdu);
        rt2x00_set_field32(&reg, MAX_LEN_CFG_MIN_PSDU, 10);
        rt2x00_set_field32(&reg, MAX_LEN_CFG_MIN_MPDU, 10);
        rt2800_register_write(rt2x00dev, MAX_LEN_CFG, reg);