X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=carlfw%2Fsrc%2Fcmd.c;h=9e37f5429e2bef6d7956556f23d17855e96daa38;hb=904914f47c3b6974622cba176c6e9fb76b5f06e5;hp=2bbfcffaa71f1cacbdda4b33ddcee3e60eef8c72;hpb=f064ea52ed3ab342b7f2d31ac88239ceac5bc214;p=carl9170fw.git diff --git a/carlfw/src/cmd.c b/carlfw/src/cmd.c index 2bbfcff..9e37f54 100644 --- a/carlfw/src/cmd.c +++ b/carlfw/src/cmd.c @@ -86,6 +86,19 @@ void handle_cmd(struct carl9170_rsp *resp) fw.wlan.rx_filter = cmd->rx_filter.rx_filter; break; +#ifdef CONFIG_CARL9170FW_WOL + case CARL9170_CMD_WOL: + memcpy(&fw.wlan.wol.cmd, &cmd->wol, sizeof(cmd->wol)); + break; +#endif /* CONFIG_CARL9170FW_WOL */ + + case CARL9170_CMD_TALLY: + resp->hdr.len = sizeof(struct carl9170_tally_rsp); + memcpy(&resp->tally, &fw.tally, sizeof(struct carl9170_tally_rsp)); + resp->tally.tick = fw.ticks_per_usec; + memset(&fw.tally, 0, sizeof(struct carl9170_tally_rsp)); + break; + #ifdef CONFIG_CARL9170FW_CAB_QUEUE case CARL9170_CMD_BCN_CTRL: resp->hdr.len = 0; @@ -98,7 +111,7 @@ void handle_cmd(struct carl9170_rsp *resp) 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; + fw.wlan.cab_flush_trigger[cmd->bcn_ctrl.vif_id] = CARL9170_CAB_TRIGGER_EMPTY; } break; #endif /* CONFIG_CARL9170FW_CAB_QUEUE */