X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=carlfw%2Fsrc%2Fcmd.c;h=587a826cee6372dca2a72e0dd474c50d7a101052;hb=65dd584c008fdc28e8398bacfdb311b19ae80507;hp=058f9674677752763bd20bb456b119ab6fdaa44a;hpb=679e5eaaf89efed8e3da5493d32a9db42b02e53e;p=carl9170fw.git diff --git a/carlfw/src/cmd.c b/carlfw/src/cmd.c index 058f967..587a826 100644 --- a/carlfw/src/cmd.c +++ b/carlfw/src/cmd.c @@ -69,11 +69,9 @@ void handle_cmd(struct carl9170_rsp *resp) case CARL9170_CMD_REBOOT: /* - * reboot does not return and generates no response * resp->len = 0; */ - - reboot(); + fw.reboot = 1; break; case CARL9170_CMD_READ_TSF: @@ -84,9 +82,15 @@ void handle_cmd(struct carl9170_rsp *resp) #ifdef CONFIG_CARL9170FW_CAB_QUEUE case CARL9170_CMD_FLUSH_CAB: resp->hdr.len = 0; - fw.wlan.cab_flush_trigger = CARL9170_CAB_TRIGGER_ARMED; - fw.wlan.cab_flush_time = get_clock_counter() + - CARL9170_TBTT_DELTA; + + if (cmd->cab_flush.mode & CARL9170_CAB_FLUSH_CAB_TRIGGER) { + wlan_cab_modify_dtim_beacon(cmd->cab_flush.vif_id); + set(AR9170_MAC_REG_BCN_CTRL, AR9170_BCN_CTRL_READY); + } else { + wlan_cab_flush_queue(cmd->cab_flush.vif_id); + if (fw.wlan.cab_flush_vif == cmd->cab_flush.vif_id) + fw.wlan.cab_flush_trigger = CARL9170_CAB_TRIGGER_EMPTY; + } break; #endif /* CONFIG_CARL9170FW_CAB_QUEUE */ @@ -125,14 +129,6 @@ void handle_cmd(struct carl9170_rsp *resp) # endif /* CONFIG_CARL9170FW_PSM */ #endif /* CONFIG_CARL9170FW_RADIO_FUNCTIOS */ -#ifdef CONFIG_CARL9170FW_USB_WATCHDOG - case CARL9170_CMD_USB_WD: - resp->hdr.len = 4; - fw.usb.watchdog.state = le32_to_cpu(cmd->watchdog.state); - break; - -#endif /* CONFIG_CARL9170FW_USB_WATCHDOG */ - default: break; }