mwifiex: add inactivity deauth support for ap
[deliverable/linux.git] / drivers / net / wireless / mwifiex / uap_cmd.c
index 8a627d856d18bab0aaf5cd7205a65393576da74f..d95a2d558fcfbb2d84950650344c1656db173351 100644 (file)
@@ -343,6 +343,7 @@ mwifiex_uap_bss_param_prepare(u8 *tlv, void *cmd_buf, u16 *param_size)
        struct host_cmd_tlv_encrypt_protocol *encrypt_protocol;
        struct host_cmd_tlv_auth_type *auth_type;
        struct host_cmd_tlv_rates *tlv_rates;
+       struct host_cmd_tlv_ageout_timer *ao_timer, *ps_ao_timer;
        struct mwifiex_ie_types_htcap *htcap;
        struct mwifiex_uap_bss_param *bss_cfg = cmd_buf;
        int i;
@@ -497,6 +498,27 @@ mwifiex_uap_bss_param_prepare(u8 *tlv, void *cmd_buf, u16 *param_size)
                tlv += sizeof(struct mwifiex_ie_types_htcap);
        }
 
+       if (bss_cfg->sta_ao_timer) {
+               ao_timer = (struct host_cmd_tlv_ageout_timer *)tlv;
+               ao_timer->tlv.type = cpu_to_le16(TLV_TYPE_UAP_AO_TIMER);
+               ao_timer->tlv.len = cpu_to_le16(sizeof(*ao_timer) -
+                                               sizeof(struct host_cmd_tlv));
+               ao_timer->sta_ao_timer = cpu_to_le32(bss_cfg->sta_ao_timer);
+               cmd_size += sizeof(*ao_timer);
+               tlv += sizeof(*ao_timer);
+       }
+
+       if (bss_cfg->ps_sta_ao_timer) {
+               ps_ao_timer = (struct host_cmd_tlv_ageout_timer *)tlv;
+               ps_ao_timer->tlv.type = cpu_to_le16(TLV_TYPE_UAP_PS_AO_TIMER);
+               ps_ao_timer->tlv.len = cpu_to_le16(sizeof(*ps_ao_timer) -
+                                                  sizeof(struct host_cmd_tlv));
+               ps_ao_timer->sta_ao_timer =
+                                       cpu_to_le32(bss_cfg->ps_sta_ao_timer);
+               cmd_size += sizeof(*ps_ao_timer);
+               tlv += sizeof(*ps_ao_timer);
+       }
+
        *param_size = cmd_size;
 
        return 0;
This page took 0.025045 seconds and 5 git commands to generate.