162306a36Sopenharmony_ci/* 262306a36Sopenharmony_ci * Copyright (c) 2018, The Linux Foundation. All rights reserved. 362306a36Sopenharmony_ci * 462306a36Sopenharmony_ci * Permission to use, copy, modify, and/or distribute this software for any 562306a36Sopenharmony_ci * purpose with or without fee is hereby granted, provided that the above 662306a36Sopenharmony_ci * copyright notice and this permission notice appear in all copies. 762306a36Sopenharmony_ci * 862306a36Sopenharmony_ci * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 962306a36Sopenharmony_ci * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 1062306a36Sopenharmony_ci * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 1162306a36Sopenharmony_ci * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 1262306a36Sopenharmony_ci * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 1362306a36Sopenharmony_ci * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 1462306a36Sopenharmony_ci * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 1562306a36Sopenharmony_ci */ 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci#include "wcn36xx.h" 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_cistruct ftm_rsp_msg { 2062306a36Sopenharmony_ci u16 msg_id; 2162306a36Sopenharmony_ci u16 msg_body_length; 2262306a36Sopenharmony_ci u32 resp_status; 2362306a36Sopenharmony_ci u8 msg_response[]; 2462306a36Sopenharmony_ci} __packed; 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci/* The request buffer of FTM which contains a byte of command and the request */ 2762306a36Sopenharmony_cistruct ftm_payload { 2862306a36Sopenharmony_ci u16 ftm_cmd_type; 2962306a36Sopenharmony_ci struct ftm_rsp_msg ftm_cmd_msg; 3062306a36Sopenharmony_ci} __packed; 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci#define MSG_GET_BUILD_RELEASE_NUMBER 0x32A2 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci#ifdef CONFIG_NL80211_TESTMODE 3562306a36Sopenharmony_ciint wcn36xx_tm_cmd(struct ieee80211_hw *hw, struct ieee80211_vif *vif, 3662306a36Sopenharmony_ci void *data, int len); 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci#else 3962306a36Sopenharmony_cistatic inline int wcn36xx_tm_cmd(struct ieee80211_hw *hw, 4062306a36Sopenharmony_ci struct ieee80211_vif *vif, 4162306a36Sopenharmony_ci void *data, int len) 4262306a36Sopenharmony_ci{ 4362306a36Sopenharmony_ci return 0; 4462306a36Sopenharmony_ci} 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci#endif 47