.. | .. |
---|
8 | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
---|
9 | 9 | * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH |
---|
10 | 10 | * Copyright(c) 2016 - 2017 Intel Deutschland GmbH |
---|
| 11 | + * Copyright(c) 2018 - 2019 Intel Corporation |
---|
11 | 12 | * |
---|
12 | 13 | * This program is free software; you can redistribute it and/or modify |
---|
13 | 14 | * it under the terms of version 2 of the GNU General Public License as |
---|
.. | .. |
---|
30 | 31 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
---|
31 | 32 | * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH |
---|
32 | 33 | * Copyright(c) 2016 - 2017 Intel Deutschland GmbH |
---|
| 34 | + * Copyright(c) 2018 - 2019 Intel Corporation |
---|
33 | 35 | * All rights reserved. |
---|
34 | 36 | * |
---|
35 | 37 | * Redistribution and use in source and binary forms, with or without |
---|
.. | .. |
---|
72 | 74 | */ |
---|
73 | 75 | LOW_LATENCY_CMD = 0x3, |
---|
74 | 76 | /** |
---|
| 77 | + * @CHANNEL_SWITCH_TIME_EVENT_CMD: &struct iwl_chan_switch_te_cmd |
---|
| 78 | + */ |
---|
| 79 | + CHANNEL_SWITCH_TIME_EVENT_CMD = 0x4, |
---|
| 80 | + /** |
---|
| 81 | + * @MISSED_VAP_NOTIF: &struct iwl_missed_vap_notif |
---|
| 82 | + */ |
---|
| 83 | + MISSED_VAP_NOTIF = 0xFA, |
---|
| 84 | + /** |
---|
| 85 | + * @SESSION_PROTECTION_CMD: &struct iwl_mvm_session_prot_cmd |
---|
| 86 | + */ |
---|
| 87 | + SESSION_PROTECTION_CMD = 0x5, |
---|
| 88 | + |
---|
| 89 | + /** |
---|
| 90 | + * @SESSION_PROTECTION_NOTIF: &struct iwl_mvm_session_prot_notif |
---|
| 91 | + */ |
---|
| 92 | + SESSION_PROTECTION_NOTIF = 0xFB, |
---|
| 93 | + |
---|
| 94 | + /** |
---|
| 95 | + * @PROBE_RESPONSE_DATA_NOTIF: &struct iwl_probe_resp_data_notif |
---|
| 96 | + */ |
---|
| 97 | + PROBE_RESPONSE_DATA_NOTIF = 0xFC, |
---|
| 98 | + |
---|
| 99 | + /** |
---|
75 | 100 | * @CHANNEL_SWITCH_NOA_NOTIF: &struct iwl_channel_switch_noa_notif |
---|
76 | 101 | */ |
---|
77 | 102 | CHANNEL_SWITCH_NOA_NOTIF = 0xFF, |
---|
78 | 103 | }; |
---|
| 104 | + |
---|
| 105 | +#define IWL_P2P_NOA_DESC_COUNT (2) |
---|
| 106 | + |
---|
| 107 | +/** |
---|
| 108 | + * struct iwl_p2p_noa_attr - NOA attr contained in probe resp FW notification |
---|
| 109 | + * |
---|
| 110 | + * @id: attribute id |
---|
| 111 | + * @len_low: length low half |
---|
| 112 | + * @len_high: length high half |
---|
| 113 | + * @idx: instance of NoA timing |
---|
| 114 | + * @ctwin: GO's ct window and pwer save capability |
---|
| 115 | + * @desc: NoA descriptor |
---|
| 116 | + * @reserved: reserved for alignment purposes |
---|
| 117 | + */ |
---|
| 118 | +struct iwl_p2p_noa_attr { |
---|
| 119 | + u8 id; |
---|
| 120 | + u8 len_low; |
---|
| 121 | + u8 len_high; |
---|
| 122 | + u8 idx; |
---|
| 123 | + u8 ctwin; |
---|
| 124 | + struct ieee80211_p2p_noa_desc desc[IWL_P2P_NOA_DESC_COUNT]; |
---|
| 125 | + u8 reserved; |
---|
| 126 | +} __packed; |
---|
| 127 | + |
---|
| 128 | +#define IWL_PROBE_RESP_DATA_NO_CSA (0xff) |
---|
| 129 | + |
---|
| 130 | +/** |
---|
| 131 | + * struct iwl_probe_resp_data_notif - notification with NOA and CSA counter |
---|
| 132 | + * |
---|
| 133 | + * @mac_id: the mac which should send the probe response |
---|
| 134 | + * @noa_active: notifies if the noa attribute should be handled |
---|
| 135 | + * @noa_attr: P2P NOA attribute |
---|
| 136 | + * @csa_counter: current csa counter |
---|
| 137 | + * @reserved: reserved for alignment purposes |
---|
| 138 | + */ |
---|
| 139 | +struct iwl_probe_resp_data_notif { |
---|
| 140 | + __le32 mac_id; |
---|
| 141 | + __le32 noa_active; |
---|
| 142 | + struct iwl_p2p_noa_attr noa_attr; |
---|
| 143 | + u8 csa_counter; |
---|
| 144 | + u8 reserved[3]; |
---|
| 145 | +} __packed; /* PROBE_RESPONSE_DATA_NTFY_API_S_VER_1 */ |
---|
| 146 | + |
---|
| 147 | +/** |
---|
| 148 | + * struct iwl_missed_vap_notif - notification of missing vap detection |
---|
| 149 | + * |
---|
| 150 | + * @mac_id: the mac for which the ucode sends the notification for |
---|
| 151 | + * @num_beacon_intervals_elapsed: beacons elpased with no vap profile inside |
---|
| 152 | + * @profile_periodicity: beacons period to have our profile inside |
---|
| 153 | + * @reserved: reserved for alignment purposes |
---|
| 154 | + */ |
---|
| 155 | +struct iwl_missed_vap_notif { |
---|
| 156 | + __le32 mac_id; |
---|
| 157 | + u8 num_beacon_intervals_elapsed; |
---|
| 158 | + u8 profile_periodicity; |
---|
| 159 | + u8 reserved[2]; |
---|
| 160 | +} __packed; /* MISSED_VAP_NTFY_API_S_VER_1 */ |
---|
79 | 161 | |
---|
80 | 162 | /** |
---|
81 | 163 | * struct iwl_channel_switch_noa_notif - Channel switch NOA notification |
---|
.. | .. |
---|
87 | 169 | } __packed; /* CHANNEL_SWITCH_START_NTFY_API_S_VER_1 */ |
---|
88 | 170 | |
---|
89 | 171 | /** |
---|
| 172 | + * struct iwl_chan_switch_te_cmd - Channel Switch Time Event command |
---|
| 173 | + * |
---|
| 174 | + * @mac_id: MAC ID for channel switch |
---|
| 175 | + * @action: action to perform, one of FW_CTXT_ACTION_* |
---|
| 176 | + * @tsf: beacon tsf |
---|
| 177 | + * @cs_count: channel switch count from CSA/eCSA IE |
---|
| 178 | + * @cs_delayed_bcn_count: if set to N (!= 0) GO/AP can delay N beacon intervals |
---|
| 179 | + * at the new channel after the channel switch, otherwise (N == 0) expect |
---|
| 180 | + * beacon right after the channel switch. |
---|
| 181 | + * @cs_mode: 1 - quiet, 0 - otherwise |
---|
| 182 | + * @reserved: reserved for alignment purposes |
---|
| 183 | + */ |
---|
| 184 | +struct iwl_chan_switch_te_cmd { |
---|
| 185 | + __le32 mac_id; |
---|
| 186 | + __le32 action; |
---|
| 187 | + __le32 tsf; |
---|
| 188 | + u8 cs_count; |
---|
| 189 | + u8 cs_delayed_bcn_count; |
---|
| 190 | + u8 cs_mode; |
---|
| 191 | + u8 reserved; |
---|
| 192 | +} __packed; /* MAC_CHANNEL_SWITCH_TIME_EVENT_S_VER_2 */ |
---|
| 193 | + |
---|
| 194 | +/** |
---|
90 | 195 | * struct iwl_mac_low_latency_cmd - set/clear mac to 'low-latency mode' |
---|
91 | 196 | * |
---|
92 | 197 | * @mac_id: MAC ID to whom to apply the low-latency configurations |
---|