1 /* SPDX-License-Identifier: BSD-3-Clause-Clear */ 2 /* 3 * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved. 4 * Copyright (c) 2023-2025 Qualcomm Innovation Center, Inc. All rights reserved. 5 */ 6 7 /* "API" level of the ath testmode interface. Bump it after every 8 * incompatible interface change. 9 */ 10 #define ATH_TESTMODE_VERSION_MAJOR 1 11 12 /* Bump this after every _compatible_ interface change, for example 13 * addition of a new command or an attribute. 14 */ 15 #define ATH_TESTMODE_VERSION_MINOR 1 16 17 #define ATH_TM_DATA_MAX_LEN 5000 18 #define ATH_FTM_EVENT_MAX_BUF_LENGTH 2048 19 20 enum ath_tm_attr { 21 __ATH_TM_ATTR_INVALID = 0, 22 ATH_TM_ATTR_CMD = 1, 23 ATH_TM_ATTR_DATA = 2, 24 ATH_TM_ATTR_WMI_CMDID = 3, 25 ATH_TM_ATTR_VERSION_MAJOR = 4, 26 ATH_TM_ATTR_VERSION_MINOR = 5, 27 ATH_TM_ATTR_WMI_OP_VERSION = 6, 28 29 /* keep last */ 30 __ATH_TM_ATTR_AFTER_LAST, 31 ATH_TM_ATTR_MAX = __ATH_TM_ATTR_AFTER_LAST - 1, 32 }; 33 34 /* All ath testmode interface commands specified in 35 * ATH_TM_ATTR_CMD 36 */ 37 enum ath_tm_cmd { 38 /* Returns the supported ath testmode interface version in 39 * ATH_TM_ATTR_VERSION. Always guaranteed to work. User space 40 * uses this to verify it's using the correct version of the 41 * testmode interface 42 */ 43 ATH_TM_CMD_GET_VERSION = 0, 44 45 /* The command used to transmit a WMI command to the firmware and 46 * the event to receive WMI events from the firmware. Without 47 * struct wmi_cmd_hdr header, only the WMI payload. Command id is 48 * provided with ATH_TM_ATTR_WMI_CMDID and payload in 49 * ATH_TM_ATTR_DATA. 50 */ 51 ATH_TM_CMD_WMI = 1, 52 53 /* Boots the UTF firmware, the netdev interface must be down at the 54 * time. 55 */ 56 ATH_TM_CMD_TESTMODE_START = 2, 57 58 /* The command used to transmit a FTM WMI command to the firmware 59 * and the event to receive WMI events from the firmware. The data 60 * received only contain the payload, need to add the tlv header 61 * and send the cmd to firmware with command id WMI_PDEV_UTF_CMDID. 62 * The data payload size could be large and the driver needs to 63 * send segmented data to firmware. 64 */ 65 ATH_TM_CMD_WMI_FTM = 3, 66 }; 67