- fw.wlan.cab_flush_trigger = CARL9170_CAB_TRIGGER_ARMED;
- fw.wlan.cab_flush_time = get_clock_counter() +
- CARL9170_TBTT_DELTA;
+
+ if (cmd->bcn_ctrl.mode & CARL9170_BCN_CTRL_CAB_TRIGGER) {
+ wlan_cab_modify_dtim_beacon(cmd->bcn_ctrl.vif_id,
+ cmd->bcn_ctrl.bcn_addr, cmd->bcn_ctrl.bcn_len);
+ set(AR9170_MAC_REG_BCN_ADDR, cmd->bcn_ctrl.bcn_addr);
+ set(AR9170_MAC_REG_BCN_LENGTH, cmd->bcn_ctrl.bcn_len);
+ set(AR9170_MAC_REG_BCN_CTRL, AR9170_BCN_CTRL_READY);
+ } else {
+ wlan_cab_flush_queue(cmd->bcn_ctrl.vif_id);
+ fw.wlan.cab_flush_trigger[i] = CARL9170_CAB_TRIGGER_EMPTY;
+ }