| /* |
| * Broadcom Dongle Host Driver (DHD), CSI |
| * |
| * Copyright (C) 1999-2018, Broadcom. |
| * |
| * Unless you and Broadcom execute a separate written software license |
| * agreement governing use of this software, this software is licensed to you |
| * under the terms of the GNU General Public License version 2 (the "GPL"), |
| * available at http://www.broadcom.com/licenses/GPLv2.php, with the |
| * following added to such license: |
| * |
| * As a special exception, the copyright holders of this software give you |
| * permission to link this software with independent modules, and to copy and |
| * distribute the resulting executable under terms of your choice, provided that |
| * you also meet, for each linked independent module, the terms and conditions of |
| * the license of that module. An independent module is a module which is not |
| * derived from this software. The special exception does not apply to any |
| * modifications of the software. |
| * |
| * Notwithstanding the above, under no circumstances may you combine this |
| * software in any way with any other Broadcom software provided under a license |
| * other than the GPL, without Broadcom's express prior written consent. |
| * |
| * $Id: dhd_csi.h 558438 2015-05-22 06:05:11Z $ |
| */ |
| #ifndef __DHD_CSI_H__ |
| #define __DHD_CSI_H__ |
| |
| /* Maxinum csi file dump size */ |
| #define MAX_CSI_FILESZ (32 * 1024) |
| /* Maxinum subcarrier number */ |
| #define MAXINUM_CFR_DATA 256 * 4 |
| #define CSI_DUMP_PATH "/sys/bcm-dhd/csi" |
| #define MAX_EVENT_SIZE 1400 |
| /* maximun csi number stored at dhd */ |
| #define MAX_CSI_NUM 8 |
| |
| typedef struct cfr_dump_header { |
| /* 0 - successful; 1 - Failed */ |
| uint8 status; |
| /* Peer MAC address */ |
| uint8 peer_macaddr[6]; |
| /* Number of Space Time Streams */ |
| uint8 sts; |
| /* Number of RX chain */ |
| uint8 num_rx; |
| /* Number of subcarrier */ |
| uint16 num_carrier; |
| /* Length of the CSI dump */ |
| uint32 cfr_dump_length; |
| /* remain unsend CSI data length */ |
| uint32 remain_length; |
| /* RSSI */ |
| int8 rssi; |
| } __attribute__((packed)) cfr_dump_header_t; |
| |
| typedef struct cfr_dump_data { |
| cfr_dump_header_t header; |
| uint32 data[MAXINUM_CFR_DATA]; |
| } cfr_dump_data_t; |
| |
| typedef struct { |
| struct list_head list; |
| cfr_dump_data_t entry; |
| } cfr_dump_list_t; |
| |
| int dhd_csi_event_handler(dhd_pub_t *dhd, wl_event_msg_t *event, void *event_data); |
| |
| int dhd_csi_init(dhd_pub_t *dhd); |
| |
| int dhd_csi_deinit(dhd_pub_t *dhd); |
| |
| void dhd_csi_clean_list(dhd_pub_t *dhd); |
| |
| int dhd_csi_dump_list(dhd_pub_t *dhd, char *buf); |
| #endif /* __DHD_CSI_H__ */ |
| |