goto err;
 #endif
 
+       if (!debugfs_create_u8("low_latency_agg_frame_limit", S_IRUSR | S_IWUSR,
+                              mvm->debugfs_dir,
+                              &mvm->low_latency_agg_frame_limit))
+               goto err;
        if (!debugfs_create_u8("ps_disabled", S_IRUSR,
                               mvm->debugfs_dir, &mvm->ps_disabled))
                goto err;
 
 
        /* system time of last beacon (for AP/GO interface) */
        u32 ap_last_beacon_gp2;
+
+       u8 low_latency_agg_frame_limit;
 };
 
 /* Extract MVM priv from op_mode and _hw */
 
                mvm->first_agg_queue = 12;
        }
        mvm->sf_state = SF_UNINIT;
+       mvm->low_latency_agg_frame_limit = 1;
 
        mutex_init(&mvm->mutex);
        mutex_init(&mvm->d0i3_suspend_mutex);
 
         * Tx Fifo so that it can start a transaction in the same TxOP. This
         * basically allows the firmware to send bursts.
         */
-       if (iwl_mvm_vif_low_latency(mvmvif))
+       if (iwl_mvm_vif_low_latency(mvmvif)) {
                lq_cmd->agg_frame_cnt_limit--;
 
+               if (mvm->low_latency_agg_frame_limit)
+                       lq_cmd->agg_frame_cnt_limit =
+                               min(lq_cmd->agg_frame_cnt_limit,
+                                   mvm->low_latency_agg_frame_limit);
+       }
+
        if (mvmsta->vif->p2p)
                lq_cmd->flags |= LQ_FLAG_USE_RTS_MSK;