1*4882a593Smuzhiyun /* SPDX-License-Identifier: ISC */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Copyright (c) 2014,2017 Qualcomm Atheros, Inc. 4*4882a593Smuzhiyun */ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun /* "API" level of the ath10k testmode interface. Bump it after every 7*4882a593Smuzhiyun * incompatible interface change. 8*4882a593Smuzhiyun */ 9*4882a593Smuzhiyun #define ATH10K_TESTMODE_VERSION_MAJOR 1 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun /* Bump this after every _compatible_ interface change, for example 12*4882a593Smuzhiyun * addition of a new command or an attribute. 13*4882a593Smuzhiyun */ 14*4882a593Smuzhiyun #define ATH10K_TESTMODE_VERSION_MINOR 0 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun #define ATH10K_TM_DATA_MAX_LEN 5000 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun enum ath10k_tm_attr { 19*4882a593Smuzhiyun __ATH10K_TM_ATTR_INVALID = 0, 20*4882a593Smuzhiyun ATH10K_TM_ATTR_CMD = 1, 21*4882a593Smuzhiyun ATH10K_TM_ATTR_DATA = 2, 22*4882a593Smuzhiyun ATH10K_TM_ATTR_WMI_CMDID = 3, 23*4882a593Smuzhiyun ATH10K_TM_ATTR_VERSION_MAJOR = 4, 24*4882a593Smuzhiyun ATH10K_TM_ATTR_VERSION_MINOR = 5, 25*4882a593Smuzhiyun ATH10K_TM_ATTR_WMI_OP_VERSION = 6, 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun /* keep last */ 28*4882a593Smuzhiyun __ATH10K_TM_ATTR_AFTER_LAST, 29*4882a593Smuzhiyun ATH10K_TM_ATTR_MAX = __ATH10K_TM_ATTR_AFTER_LAST - 1, 30*4882a593Smuzhiyun }; 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun /* All ath10k testmode interface commands specified in 33*4882a593Smuzhiyun * ATH10K_TM_ATTR_CMD 34*4882a593Smuzhiyun */ 35*4882a593Smuzhiyun enum ath10k_tm_cmd { 36*4882a593Smuzhiyun /* Returns the supported ath10k testmode interface version in 37*4882a593Smuzhiyun * ATH10K_TM_ATTR_VERSION. Always guaranteed to work. User space 38*4882a593Smuzhiyun * uses this to verify it's using the correct version of the 39*4882a593Smuzhiyun * testmode interface 40*4882a593Smuzhiyun */ 41*4882a593Smuzhiyun ATH10K_TM_CMD_GET_VERSION = 0, 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun /* Boots the UTF firmware, the netdev interface must be down at the 44*4882a593Smuzhiyun * time. 45*4882a593Smuzhiyun */ 46*4882a593Smuzhiyun ATH10K_TM_CMD_UTF_START = 1, 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun /* Shuts down the UTF firmware and puts the driver back into OFF 49*4882a593Smuzhiyun * state. 50*4882a593Smuzhiyun */ 51*4882a593Smuzhiyun ATH10K_TM_CMD_UTF_STOP = 2, 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun /* The command used to transmit a WMI command to the firmware and 54*4882a593Smuzhiyun * the event to receive WMI events from the firmware. Without 55*4882a593Smuzhiyun * struct wmi_cmd_hdr header, only the WMI payload. Command id is 56*4882a593Smuzhiyun * provided with ATH10K_TM_ATTR_WMI_CMDID and payload in 57*4882a593Smuzhiyun * ATH10K_TM_ATTR_DATA. 58*4882a593Smuzhiyun */ 59*4882a593Smuzhiyun ATH10K_TM_CMD_WMI = 3, 60*4882a593Smuzhiyun }; 61