rt2800_register_read(rt2x00dev, MAX_LEN_CFG, ®);
        rt2x00_set_field32(®, 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(®, MAX_LEN_CFG_MAX_PSDU, 2);
        } else {
                drv_data->max_psdu = 1;
-               rt2x00_set_field32(®, MAX_LEN_CFG_MAX_PSDU, 1);
        }
+       rt2x00_set_field32(®, MAX_LEN_CFG_MAX_PSDU, drv_data->max_psdu);
        rt2x00_set_field32(®, MAX_LEN_CFG_MIN_PSDU, 10);
        rt2x00_set_field32(®, MAX_LEN_CFG_MIN_MPDU, 10);
        rt2800_register_write(rt2x00dev, MAX_LEN_CFG, reg);