Files
bes2600-dkms/bes2600/bes_nl80211_testmode_msg.h
T
test0r 8dd79199f8 bes2600: Patch G — restore SPDX identifiers + ST-Ericsson attribution
The bes2600 driver is a fork of the upstream cw1200 driver
(drivers/net/wireless/st/cw1200/, ST-Ericsson, Dmitry Tarnyagin
2010-2011).  The fork's file headers have three GPL-compliance issues:

  1. NO SPDX-License-Identifier on any of 48 source files (cw1200
     mainline has them on all 25).  kernel.org-mandated since 2017.

  2. Original "Copyright (c) 2010, ST-Ericsson" lines stripped from
     all files inherited from cw1200, replaced with
     "Copyright (c) 2010, Bestechnic" — factually impossible
     (Bestechnic did not author the 2010 work) and a GPL-2.0 §1
     attribution-preservation violation.

  3. The "GPL version 2 as published by the Free Software Foundation"
     boilerplate paragraph is redundant alongside SPDX and is the
     legacy form modern kernel sources have replaced.

This patch corrects all three for the 48 .c/.h files in bes2600/:

  - Adds `// SPDX-License-Identifier: GPL-2.0-only` (or `/* ... */`
    for headers) as line 1 of every file.
  - Restores `Copyright (c) 2010, ST-Ericsson` + `Author: Dmitry
    Tarnyagin <dmitry.tarnyagin@lockless.no>` as the FIRST copyright
    chain entry on all 22 files derived from cw1200 (bh.{c,h},
    debug.{c,h}, fwio.{c,h}, hwio.{c,h}, main.c, pm.{c,h},
    queue.{c,h}, scan.{c,h}, sta.{c,h}, txrx.{c,h}, wsm.{c,h}).
  - Keeps `Copyright (c) 2022, Bestechnic (Beijing) Co., Ltd.` as
    the SECOND chain entry where Bestechnic genuinely contributed.
  - Notes "Derived from cw1200_sdio.c" + ST-Ericsson copyright on
    bes2600_sdio.c (heavy derivation, not a literal rename).
  - Notes "Replaces hwbus.h from cw1200/" + ST-Ericsson copyright
    on sbus.h.
  - Preserves the prism54/islsm authorship chain on main.c and
    bes2600.h (Michael Wu 2006 + Jean-Baptiste Note 2004-2006).
  - Drops the GPL-2.0 boilerplate paragraph in favour of SPDX.

No code changes — only file-header comment blocks.  Module build is
unaffected (verified by header-only diff scope).

This is a prerequisite for any kernel.org submission attempt.  The
existing MODULE_LICENSE("GPL") + MODULE_AUTHOR(Tarnyagin@stericsson.com)
declarations were already present and are unchanged here; the
mismatch between MODULE_AUTHOR and the (since-corrected) per-file
copyrights is now resolved.
2026-05-08 00:03:50 +02:00

266 lines
6.3 KiB
C

/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Vendor testmode messages for BES2600
*
* Copyright (c) 2022, Bestechnic (Beijing) Co., Ltd.
*
*/
#ifndef BES_NL80211_TESTMODE_MSG_H
#define BES_NL80211_TESTMODE_MSG_H
/* example command structure for test purposes */
struct bes_msg_test_t {
int dummy;
};
/* example reply structure for test purposes */
struct bes_reply_test_t {
int dummy;
};
/* example event structure for test purposes */
struct bes_event_test_t {
int dummy;
};
#ifdef STANDARD_FACTORY_EFUSE_FLAG
/*example command structure for set select efuse*/
struct bes_select_calib_t {
uint16_t select_efuse_flag;
};
#endif
/* vendor to mcu cmd msg reply structure */
struct vendor_rf_cmd_msg_reply {
u32 id;
u32 msg_len;
char ret_msg[1028];
};
/* rf cmd msg reply assembly */
void bes2600_rf_cmd_msg_assembly(u32 cmd_type, void *data, u32 msg_len);
/* do rf cmd msg */
int bes2600_vendor_rf_cmd(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u8 *data, int len);
enum bes_msg_id {
BES_MSG_TEST = 0, /* for test purposes */
BES_MSG_EVENT_TEST, /* for test purposes */
BES_MSG_SET_SNAP_FRAME,
BES_MSG_EVENT_FRAME_DATA,
#ifdef CONFIG_BES2600_TESTMODE
BES_MSG_GET_TX_POWER_LEVEL,
BES_MSG_GET_TX_POWER_RANGE,
BES_MSG_SET_ADVANCE_SCAN_ELEMS,
BES_MSG_SET_TX_QUEUE_PARAMS,
BES_MSG_START_STOP_TSM,
BES_MSG_GET_TSM_PARAMS,
BES_MSG_GET_ROAM_DELAY,
#endif /*CONFIG_BES2600_TESTMODE*/
BES_MSG_SET_POWER_SAVE,
#ifdef ROAM_OFFLOAD
BES_MSG_NEW_SCAN_RESULTS,
#endif /* ROAM_OFFLOAD */
BES_MSG_ADD_IP_OFFLOAD,
BES_MSG_DEL_IP_OFFLOAD,
BES_MSG_SET_IP_OFFLOAD_PERIOD,
BES_MSG_VENDOR_RF_CMD,
BES_MSG_SAVE_CALI_TXT_TO_FLASH,
BES_MSG_EPTA_PARM_CONFIG,
BES_MSG_GET_KEEP_ALIVE_STREAM,
BES_MSG_MCU_CPUUSAGE,
BES_MSG_SAVE_CALI_TXT_TO_EFUSE,
BES_MSG_SET_SELECT_EFUSE_FLAG,
/* Add new IDs here */
BES_MSG_ID_MAX,
};
enum vendor_rf_cmd_type {
VENDOR_RF_SIGNALING_CMD = 0,
VENDOR_RF_NOSIGNALING_CMD,
VENDOR_RF_GET_SAVE_FREQOFFSET_CMD,
VENDOR_RF_GET_SAVE_POWERLEVEL_CMD,
VENDOR_RF_SAVE_FREQOFFSET_CMD,
VENDOR_RF_SAVE_POWERLEVEL_CMD,
VENDOR_RF_POWER_CALIB_FINISH,
VENDOR_RF_GET_CALI_FROM_EFUSE,
/* add new here */
VENDOR_RF_CMD_MAX,
VENDOR_RF_SIG_NOSIG_MIX = 0xFFFFFFFF,
};
enum bes_nl80211_testmode_data_attributes {
BES_TM_MSG_ID = 0x0001, /* u32 type containing the BES message ID */
BES_TM_MSG_DATA, /* message payload */
/* Max indicator so module test may add its own attributes */
BES_TM_MSG_ATTR_MAX,
};
/**
* bes_msg_set_snap_frame - set SNAP frame format
* @len: length of SNAP frame, if 0 SNAP frame disabled
* @frame: SNAP frame format
*
* In this structure is difference between user space because
* format and length have to be hidden
*
*/
struct bes_msg_set_snap_frame {
u8 len;
u8 frame[0];
};
struct vendor_epta_parm {
int wlan_duration;
int bt_duration;
int hw_epta_enable;
};
#ifdef CONFIG_BES2600_TESTMODE
/**
* bes_msg_set_txqueue_params - store Tx queue params
* @user_priority: User priority for which TSPEC negotiated
* @medium_time: Allowed medium time
* @expiry_time: The expiry time of MSDU
*
*/
struct bes_msg_set_txqueue_params {
u8 user_priority;
u16 medium_time;
u16 expiry_time;
};
/**
* bes_tsm_stats - To retrieve the Transmit Stream Measurement stats
* @actual_msrmt_start_time: The TSF at the time at which the measurement
* started
* @msrmt_duration: Duration for measurement
* @peer_sta_addr: Peer STA address
* @tid: TID for which measurements were made
* @reporting_reason: Reason for report sent
* @txed_msdu_count: The number of MSDUs transmitted for the specified TID
* @msdu_discarded_count: The number of discarded MSDUs for the specified TID
* @msdu_failed_count: The number of failed MSDUs for the specified TID
* @multi_retry_count: The number of MSDUs which were retried
* @qos_cfpolls_lost_count: The number of QOS CF polls frames lost
* @avg_q_delay: Average queue delay
* @avg_transmit_delay: Average transmit delay
* @bin0_range: Delay range of the first bin (Bin 0)
* @bin0: bin0 transmit delay histogram
* @bin1: bin1 transmit delay histogram
* @bin2: bin2 transmit delay histogram
* @bin3: bin3 transmit delay histogram
* @bin4: bin4 transmit delay histogram
* @bin5: bin5 transmit delay histogram
*
*/
struct bes_tsm_stats {
u64 actual_msrmt_start_time;
u16 msrmt_duration;
u8 peer_sta_addr[6];
u8 tid;
u8 reporting_reason;
u32 txed_msdu_count;
u32 msdu_discarded_count;
u32 msdu_failed_count;
u32 multi_retry_count;
u32 qos_cfpolls_lost_count;
u32 avg_q_delay;
u32 avg_transmit_delay;
u8 bin0_range;
u32 bin0;
u32 bin1;
u32 bin2;
u32 bin3;
u32 bin4;
u32 bin5;
} __packed;
/**
* bes_msg_set_start_stop_tsm - To start or stop collecting TSM metrics in
* bes2600 driver
* @start: To start or stop collecting TSM metrics
* @up: up for which metrics to be collected
* @packetization_delay: Packetization period for this TID
*
*/
struct bes_msg_start_stop_tsm {
u8 start; /*1: To start, 0: To stop*/
u8 up;
u16 packetization_delay;
};
/**
* power_save_elems - To enable/disable legacy power Save
*/
struct power_save_elems {
int powerSave;
};
#ifdef CONFIG_BES2600_KEEP_ALIVE
/*
* ip keep alive feature's parameters
* @idx add(idx=15) a tcp/udp keep alive stream, or the idx number(idx= 0-7) when reconfig one;
* set payload_len to 0 and payload to NULL when deleting one stream.
* @klv_vendor different number stands for different vendor's keepalive configuration
* @period: alive period
* @proto 0 for udp and 1 for tcp
* @src_port local port
* @dst_port tcp server's listen port
* @src_ip local ip address
* @dst_ip tcp server's ip address
* @key: key
* @iv: iv
* @payload payload of the keep alive packet
* @payload_len length of the payload
*/
struct ip_alive_paras {
uint16_t idx;
uint8_t klv_vendor;
uint8_t period;
uint8_t proto;
uint16_t src_port;
uint16_t dst_port;
uint32_t src_ip;
uint32_t dst_ip;
uint8_t key[16];
uint8_t iv[16];
uint16_t payload_len;
uint8_t payload[0];
};
/**
* ip_alive_tac_idx - idx of tcp & udp alive stream
*/
struct ip_alive_iac_idx {
int idx;
};
/**
* ip_alive_period - tcp & udp alive period
*/
struct ip_alive_period {
int period;
};
/*
* err_code, 0: success, -1: cmd with idx err,
* -2: get stream fail, -3: playload err
*/
struct ip_stream_cfg {
int err_code;
int idx;
};
#endif /* CONFIG_BES2600_KEEP_ALIVE */
#endif /* CONFIG_BES2600_TESTMODE */
#define BES_TM_MAX_ATTRIB_SIZE 1024
#endif /* BES_NL80211_TESTMODE_MSG_H*/