iwlwifi: move under intel vendor directory
[cascardo/linux.git] / drivers / net / wireless / iwlwifi / mvm / fw-api-tof.h
diff --git a/drivers/net/wireless/iwlwifi/mvm/fw-api-tof.h b/drivers/net/wireless/iwlwifi/mvm/fw-api-tof.h
deleted file mode 100644 (file)
index eed6271..0000000
+++ /dev/null
@@ -1,386 +0,0 @@
-/******************************************************************************
- *
- * This file is provided under a dual BSD/GPLv2 license.  When using or
- * redistributing this file, you may do so under either license.
- *
- * GPL LICENSE SUMMARY
- *
- * Copyright(c) 2015 Intel Deutschland GmbH
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110,
- * USA
- *
- * The full GNU General Public License is included in this distribution
- * in the file called COPYING.
- *
- * Contact Information:
- * Intel Linux Wireless <ilw@linux.intel.com>
- * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
- *
- * BSD LICENSE
- *
- * Copyright(c) 2015 Intel Deutschland GmbH
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *  * Neither the name Intel Corporation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- *****************************************************************************/
-#ifndef __fw_api_tof_h__
-#define __fw_api_tof_h__
-
-#include "fw-api.h"
-
-/* ToF sub-group command IDs */
-enum iwl_mvm_tof_sub_grp_ids {
-       TOF_RANGE_REQ_CMD = 0x1,
-       TOF_CONFIG_CMD = 0x2,
-       TOF_RANGE_ABORT_CMD = 0x3,
-       TOF_RANGE_REQ_EXT_CMD = 0x4,
-       TOF_RESPONDER_CONFIG_CMD = 0x5,
-       TOF_NW_INITIATED_RES_SEND_CMD = 0x6,
-       TOF_NEIGHBOR_REPORT_REQ_CMD = 0x7,
-       TOF_NEIGHBOR_REPORT_RSP_NOTIF = 0xFC,
-       TOF_NW_INITIATED_REQ_RCVD_NOTIF = 0xFD,
-       TOF_RANGE_RESPONSE_NOTIF = 0xFE,
-       TOF_MCSI_DEBUG_NOTIF = 0xFB,
-};
-
-/**
- * struct iwl_tof_config_cmd - ToF configuration
- * @tof_disabled: 0 enabled, 1 - disabled
- * @one_sided_disabled: 0 enabled, 1 - disabled
- * @is_debug_mode: 1 debug mode, 0 - otherwise
- * @is_buf_required: 1 channel estimation buffer required, 0 - otherwise
- */
-struct iwl_tof_config_cmd {
-       __le32 sub_grp_cmd_id;
-       u8 tof_disabled;
-       u8 one_sided_disabled;
-       u8 is_debug_mode;
-       u8 is_buf_required;
-} __packed;
-
-/**
- * struct iwl_tof_responder_config_cmd - ToF AP mode (for debug)
- * @burst_period: future use: (currently hard coded in the LMAC)
- *               The interval between two sequential bursts.
- * @min_delta_ftm: future use: (currently hard coded in the LMAC)
- *                The minimum delay between two sequential FTM Responses
- *                in the same burst.
- * @burst_duration: future use: (currently hard coded in the LMAC)
- *                The total time for all FTMs handshake in the same burst.
- *                Affect the time events duration in the LMAC.
- * @num_of_burst_exp: future use: (currently hard coded in the LMAC)
- *                The number of bursts for the current ToF request. Affect
- *                the number of events allocations in the current iteration.
- * @get_ch_est: for xVT only, NA for driver
- * @abort_responder: when set to '1' - Responder will terminate its activity
- *                  (all other fields in the command are ignored)
- * @recv_sta_req_params: 1 - Responder will ignore the other Responder's
- *                      params and use the recomended Initiator params.
- *                      0 - otherwise
- * @channel_num: current AP Channel
- * @bandwidth: current AP Bandwidth: 0  20MHz, 1  40MHz, 2  80MHz
- * @rate: current AP rate
- * @ctrl_ch_position: coding of the control channel position relative to
- *          the center frequency.
- *          40MHz  0 below center, 1 above center
- *          80MHz  bits [0..1]: 0  the near 20MHz to the center,
- *                              1  the far  20MHz to the center
- *                 bit[2]  as above 40MHz
- * @ftm_per_burst: FTMs per Burst
- * @ftm_resp_ts_avail: '0' - we don't measure over the Initial FTM Response,
- *               '1' - we measure over the Initial FTM Response
- * @asap_mode: ASAP / Non ASAP mode for the current WLS station
- * @sta_id: index of the AP STA when in AP mode
- * @tsf_timer_offset_msecs: The dictated time offset (mSec) from the AP's TSF
- * @toa_offset: Artificial addition [0.1nsec] for the ToA - to be used for debug
- *             purposes, simulating station movement by adding various values
- *             to this field
- * @bssid: Current AP BSSID
- */
-struct iwl_tof_responder_config_cmd {
-       __le32 sub_grp_cmd_id;
-       __le16 burst_period;
-       u8 min_delta_ftm;
-       u8 burst_duration;
-       u8 num_of_burst_exp;
-       u8 get_ch_est;
-       u8 abort_responder;
-       u8 recv_sta_req_params;
-       u8 channel_num;
-       u8 bandwidth;
-       u8 rate;
-       u8 ctrl_ch_position;
-       u8 ftm_per_burst;
-       u8 ftm_resp_ts_avail;
-       u8 asap_mode;
-       u8 sta_id;
-       __le16 tsf_timer_offset_msecs;
-       __le16 toa_offset;
-       u8 bssid[ETH_ALEN];
-} __packed;
-
-/**
- * struct iwl_tof_range_request_ext_cmd - extended range req for WLS
- * @tsf_timer_offset_msec: the recommended time offset (mSec) from the AP's TSF
- * @min_delta_ftm: Minimal time between two consecutive measurements,
- *                in units of 100us. 0 means no preference by station
- * @ftm_format_and_bw20M: FTM Channel Spacing/Format for 20MHz: recommended
- *                     value be sent to the AP
- * @ftm_format_and_bw40M: FTM Channel Spacing/Format for 40MHz: recommended
- *                     value to be sent to the AP
- * @ftm_format_and_bw80M: FTM Channel Spacing/Format for 80MHz: recommended
- *                     value to be sent to the AP
- */
-struct iwl_tof_range_req_ext_cmd {
-       __le32 sub_grp_cmd_id;
-       __le16 tsf_timer_offset_msec;
-       __le16 reserved;
-       u8 min_delta_ftm;
-       u8 ftm_format_and_bw20M;
-       u8 ftm_format_and_bw40M;
-       u8 ftm_format_and_bw80M;
-} __packed;
-
-#define IWL_MVM_TOF_MAX_APS 21
-
-/**
- * struct iwl_tof_range_req_ap_entry - AP configuration parameters
- * @channel_num: Current AP Channel
- * @bandwidth: Current AP Bandwidth: 0  20MHz, 1  40MHz, 2  80MHz
- * @tsf_delta_direction: TSF relatively to the subject AP
- * @ctrl_ch_position: Coding of the control channel position relative to the
- *          center frequency.
- *          40MHz  0 below center, 1 above center
- *          80MHz  bits [0..1]: 0  the near 20MHz to the center,
- *                              1  the far  20MHz to the center
- *                 bit[2]  as above 40MHz
- * @bssid: AP's bss id
- * @measure_type: Measurement type: 0 - two sided, 1 - One sided
- * @num_of_bursts: Recommended value to be sent to the AP.  2s Exponent of the
- *                number of measurement iterations (min 2^0 = 1, max 2^14)
- * @burst_period: Recommended value to be sent to the AP. Measurement
- *               periodicity In units of 100ms. ignored if num_of_bursts = 0
- * @samples_per_burst: 2-sided: the number of FTMs pairs in single Burst (1-31)
- *                    1-sided: how many rts/cts pairs should be used per burst.
- * @retries_per_sample: Max number of retries that the LMAC should send
- *                     in case of no replies by the AP.
- * @tsf_delta: TSF Delta in units of microseconds.
- *            The difference between the AP TSF and the device local clock.
- * @location_req: Location Request Bit[0] LCI should be sent in the FTMR
- *                           Bit[1] Civic should be sent in the FTMR
- * @asap_mode: 0 - non asap mode, 1 - asap mode (not relevant for one sided)
- * @enable_dyn_ack: Enable Dynamic ACK BW.
- *         0  Initiator interact with regular AP
- *         1  Initiator interact with Responder machine: need to send the
- *         Initiator Acks with HT 40MHz / 80MHz, since the Responder should
- *         use it for its ch est measurement (this flag will be set when we
- *         configure the opposite machine to be Responder).
- * @rssi: Last received value
- *       leagal values: -128-0 (0x7f). above 0x0 indicating an invalid value.
- */
-struct iwl_tof_range_req_ap_entry {
-       u8 channel_num;
-       u8 bandwidth;
-       u8 tsf_delta_direction;
-       u8 ctrl_ch_position;
-       u8 bssid[ETH_ALEN];
-       u8 measure_type;
-       u8 num_of_bursts;
-       __le16 burst_period;
-       u8 samples_per_burst;
-       u8 retries_per_sample;
-       __le32 tsf_delta;
-       u8 location_req;
-       u8 asap_mode;
-       u8 enable_dyn_ack;
-       s8 rssi;
-} __packed;
-
-/**
- * enum iwl_tof_response_mode
- * @IWL_MVM_TOF_RESPOSE_ASAP: report each AP measurement separately as soon as
- *                           possible (not supported for this release)
- * @IWL_MVM_TOF_RESPOSE_TIMEOUT: report all AP measurements as a batch upon
- *                              timeout expiration
- * @IWL_MVM_TOF_RESPOSE_COMPLETE: report all AP measurements as a batch at the
- *                               earlier of: measurements completion / timeout
- *                               expiration.
- */
-enum iwl_tof_response_mode {
-       IWL_MVM_TOF_RESPOSE_ASAP = 1,
-       IWL_MVM_TOF_RESPOSE_TIMEOUT,
-       IWL_MVM_TOF_RESPOSE_COMPLETE,
-};
-
-/**
- * struct iwl_tof_range_req_cmd - start measurement cmd
- * @request_id: A Token incremented per request. The same Token will be
- *             sent back in the range response
- * @initiator: 0- NW initiated,  1 - Client Initiated
- * @one_sided_los_disable: '0'- run ML-Algo for both ToF/OneSided,
- *                        '1' - run ML-Algo for ToF only
- * @req_timeout: Requested timeout of the response in units of 100ms.
- *          This is equivalent to the session time configured to the
- *          LMAC in Initiator Request
- * @report_policy: Supported partially for this release: For current release -
- *                the range report will be uploaded as a batch when ready or
- *                when the session is done (successfully / partially).
- *                one of iwl_tof_response_mode.
- * @num_of_ap: Number of APs to measure (error if > IWL_MVM_TOF_MAX_APS)
- * @macaddr_random: '0' Use default source MAC address (i.e. p2_p),
- *                 '1' Use MAC Address randomization according to the below
- * @macaddr_mask: Bits set to 0 shall be copied from the MAC address template.
- *               Bits set to 1 shall be randomized by the UMAC
- */
-struct iwl_tof_range_req_cmd {
-       __le32 sub_grp_cmd_id;
-       u8 request_id;
-       u8 initiator;
-       u8 one_sided_los_disable;
-       u8 req_timeout;
-       u8 report_policy;
-       u8 los_det_disable;
-       u8 num_of_ap;
-       u8 macaddr_random;
-       u8 macaddr_template[ETH_ALEN];
-       u8 macaddr_mask[ETH_ALEN];
-       struct iwl_tof_range_req_ap_entry ap[IWL_MVM_TOF_MAX_APS];
-} __packed;
-
-/**
- * struct iwl_tof_gen_resp_cmd - generic ToF response
- */
-struct iwl_tof_gen_resp_cmd {
-       __le32 sub_grp_cmd_id;
-       u8 data[];
-} __packed;
-
-/**
- * struct iwl_tof_range_rsp_ap_entry_ntfy - AP parameters (response)
- * @measure_status: current APs measurement status
- * @measure_bw: Current AP Bandwidth: 0  20MHz, 1  40MHz, 2  80MHz
- * @rtt: The Round Trip Time that took for the last measurement for
- *      current AP [nSec]
- * @rtt_variance: The Variance of the RTT values measured for current AP
- * @rtt_spread: The Difference between the maximum and the minimum RTT
- *            values measured for current AP in the current session [nsec]
- * @rssi: RSSI as uploaded in the Channel Estimation notification
- * @rssi_spread: The Difference between the maximum and the minimum RSSI values
- *             measured for current AP in the current session
- * @range: Measured range [cm]
- * @range_variance: Measured range variance [cm]
- * @timestamp: The GP2 Clock [usec] where Channel Estimation notification was
- *            uploaded by the LMAC
- */
-struct iwl_tof_range_rsp_ap_entry_ntfy {
-       u8 bssid[ETH_ALEN];
-       u8 measure_status;
-       u8 measure_bw;
-       __le32 rtt;
-       __le32 rtt_variance;
-       __le32 rtt_spread;
-       s8 rssi;
-       u8 rssi_spread;
-       __le16 reserved;
-       __le32 range;
-       __le32 range_variance;
-       __le32 timestamp;
-} __packed;
-
-/**
- * struct iwl_tof_range_rsp_ntfy -
- * @request_id: A Token ID of the corresponding Range request
- * @request_status: status of current measurement session
- * @last_in_batch: reprot policy (when not all responses are uploaded at once)
- * @num_of_aps: Number of APs to measure (error if > IWL_MVM_TOF_MAX_APS)
- */
-struct iwl_tof_range_rsp_ntfy {
-       u8 request_id;
-       u8 request_status;
-       u8 last_in_batch;
-       u8 num_of_aps;
-       struct iwl_tof_range_rsp_ap_entry_ntfy ap[IWL_MVM_TOF_MAX_APS];
-} __packed;
-
-#define IWL_MVM_TOF_MCSI_BUF_SIZE  (245)
-/**
- * struct iwl_tof_mcsi_notif - used for debug
- * @token: token ID for the current session
- * @role: '0' - initiator, '1' - responder
- * @initiator_bssid: initiator machine
- * @responder_bssid: responder machine
- * @mcsi_buffer: debug data
- */
-struct iwl_tof_mcsi_notif {
-       u8 token;
-       u8 role;
-       __le16 reserved;
-       u8 initiator_bssid[ETH_ALEN];
-       u8 responder_bssid[ETH_ALEN];
-       u8 mcsi_buffer[IWL_MVM_TOF_MCSI_BUF_SIZE * 4];
-} __packed;
-
-/**
- * struct iwl_tof_neighbor_report_notif
- * @bssid: BSSID of the AP which sent the report
- * @request_token: same token as the corresponding request
- * @status:
- * @report_ie_len: the length of the response frame starting from the Element ID
- * @data: the IEs
- */
-struct iwl_tof_neighbor_report {
-       u8 bssid[ETH_ALEN];
-       u8 request_token;
-       u8 status;
-       __le16 report_ie_len;
-       u8 data[];
-} __packed;
-
-/**
- * struct iwl_tof_range_abort_cmd
- * @request_id: corresponds to a range request
- */
-struct iwl_tof_range_abort_cmd {
-       __le32 sub_grp_cmd_id;
-       u8 request_id;
-       u8 reserved[3];
-} __packed;
-
-#endif