From 297b60346df8beafee954a0fd7c2d64f33f3b9bc Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Sat, 11 May 2024 01:44:05 +0000
Subject: [PATCH] rtl8211F_led_control
---
kernel/drivers/net/wireless/rockchip_wlan/cywdhd/bcmdhd/include/dhdioctl.h | 178 ++++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 140 insertions(+), 38 deletions(-)
diff --git a/kernel/drivers/net/wireless/rockchip_wlan/cywdhd/bcmdhd/include/dhdioctl.h b/kernel/drivers/net/wireless/rockchip_wlan/cywdhd/bcmdhd/include/dhdioctl.h
index be1d1377..27d3118 100644
--- a/kernel/drivers/net/wireless/rockchip_wlan/cywdhd/bcmdhd/include/dhdioctl.h
+++ b/kernel/drivers/net/wireless/rockchip_wlan/cywdhd/bcmdhd/include/dhdioctl.h
@@ -1,4 +1,3 @@
-/* SPDX-License-Identifier: GPL-2.0 */
/*
* Definitions for ioctls to access DHD iovars.
* Based on wlioctl.h (for Broadcom 802.11abg driver).
@@ -6,14 +5,16 @@
*
* Definitions subject to change without notice.
*
- * Copyright (C) 1999-2019, Broadcom Corporation
- *
+ * Portions of this code are copyright (c) 2022 Cypress Semiconductor Corporation
+ *
+ * Copyright (C) 1999-2017, Broadcom Corporation
+ *
* 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
@@ -21,7 +22,7 @@
* 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.
@@ -29,7 +30,7 @@
*
* <<Broadcom-WL-IPTag/Open:>>
*
- * $Id: dhdioctl.h 603083 2015-11-30 23:40:43Z $
+ * $Id: dhdioctl.h 697634 2017-05-04 11:02:38Z $
*/
#ifndef _dhdioctl_h_
@@ -37,21 +38,15 @@
#include <typedefs.h>
-
-/* require default structure packing */
-#define BWL_DEFAULT_PACKING
-#include <packed_section_start.h>
-
-
/* Linux network driver ioctl encoding */
typedef struct dhd_ioctl {
- uint cmd; /* common ioctl definition */
+ uint32 cmd; /* common ioctl definition */
void *buf; /* pointer to user buffer */
- uint len; /* length of user buffer */
- bool set; /* get or set request (optional) */
- uint used; /* bytes read or written (optional) */
- uint needed; /* bytes needed (optional) */
- uint driver; /* to identify target driver */
+ uint32 len; /* length of user buffer */
+ uint32 set; /* get or set request boolean (optional) */
+ uint32 used; /* bytes read or written (optional) */
+ uint32 needed; /* bytes needed (optional) */
+ uint32 driver; /* to identify target driver */
} dhd_ioctl_t;
/* Underlying BUS definition */
@@ -61,13 +56,86 @@
BUS_TYPE_PCIE /* for PCIE dongles */
};
+typedef enum {
+ DMA_XFER_SUCCESS = 0,
+ DMA_XFER_IN_PROGRESS,
+ DMA_XFER_FAILED
+} dma_xfer_status_t;
+
+typedef enum d11_lpbk_type {
+ M2M_DMA_LPBK = 0,
+ D11_LPBK = 1,
+ BMC_LPBK = 2,
+ M2M_NON_DMA_LPBK = 3,
+ D11_HOST_MEM_LPBK = 4,
+ BMC_HOST_MEM_LPBK = 5,
+ MAX_LPBK = 6
+} dma_xfer_type_t;
+
+typedef struct dmaxfer_info {
+ uint16 version;
+ uint16 length;
+ dma_xfer_status_t status;
+ dma_xfer_type_t type;
+ uint src_delay;
+ uint dest_delay;
+ uint should_wait;
+ uint core_num;
+ int error_code;
+ uint32 num_bytes;
+ uint64 time_taken;
+ uint64 tput;
+} dma_xfer_info_t;
+
+#define DHD_DMAXFER_VERSION 0x1
+
+typedef struct tput_test {
+ uint16 version;
+ uint16 length;
+ uint8 direction;
+ uint8 tput_test_running;
+ uint8 mac_sta[6];
+ uint8 mac_ap[6];
+ uint8 PAD[2];
+ uint32 payload_size;
+ uint32 num_pkts;
+ uint32 timeout_ms;
+ uint32 flags;
+
+ uint32 pkts_good;
+ uint32 pkts_bad;
+ uint32 pkts_cmpl;
+ uint64 time_ms;
+ uint64 tput_bps;
+} tput_test_t;
+
+typedef enum {
+ TPUT_DIR_TX = 0,
+ TPUT_DIR_RX
+} tput_dir_t;
+
+#define TPUT_TEST_T_VER 1
+#define TPUT_TEST_T_LEN 68
+#define TPUT_TEST_MIN_PAYLOAD_SIZE 16
+#define TPUT_TEST_USE_ETHERNET_HDR 0x1
+#define TPUT_TEST_USE_802_11_HDR 0x2
+
/* per-driver magic numbers */
#define DHD_IOCTL_MAGIC 0x00444944
/* bump this number if you change the ioctl interface */
#define DHD_IOCTL_VERSION 1
-#define DHD_IOCTL_MAXLEN 8192 /* max length ioctl buffer required */
+/*
+ * Increase the DHD_IOCTL_MAXLEN to 16K for supporting download of NVRAM files of size
+ * > 8K. In the existing implementation when NVRAM is to be downloaded via the "vars"
+ * DHD IOVAR, the NVRAM is copied to the DHD Driver memory. Later on when "dwnldstate" is
+ * invoked with FALSE option, the NVRAM gets copied from the DHD driver to the Dongle
+ * memory. The simple way to support this feature without modifying the DHD application,
+ * driver logic is to increase the DHD_IOCTL_MAXLEN size. This macro defines the "size"
+ * of the buffer in which data is exchanged between the DHD App and DHD driver.
+ */
+#define DHD_IOCTL_MAXLEN (16384) /* max length ioctl buffer required */
#define DHD_IOCTL_SMLEN 256 /* "small" length ioctl buffer required */
/* common ioctl definitions */
@@ -97,27 +165,36 @@
#define DHD_NOCHECKDIED_VAL 0x20000 /* UTF WAR */
#define DHD_WL_VAL2 0x40000
#define DHD_PNO_VAL 0x80000
-#define DHD_MSGTRACE_VAL 0x100000
+#define DHD_RTT_VAL 0x100000
+#define DHD_MSGTRACE_VAL 0x200000
#define DHD_FWLOG_VAL 0x400000
-#define DHD_RTT_VAL 0x200000
#define DHD_DBGIF_VAL 0x800000
-#define DHD_DBG_BCNRX_VAL 0x1000000
+#ifdef DHD_PCIE_NATIVE_RUNTIMEPM
+#define DHD_RPM_VAL 0x1000000
+#endif /* DHD_PCIE_NATIVE_RUNTIMEPM */
+#define DHD_PKT_MON_VAL 0x2000000
+#define DHD_PKT_MON_DUMP_VAL 0x4000000
+#define DHD_ERROR_MEM_VAL 0x8000000
+#define DHD_DNGL_IOVAR_SET_VAL 0x10000000 /**< logs the setting of dongle iovars */
+#define DHD_LPBKDTDUMP_VAL 0x20000000
+#define DHD_PRSRV_MEM_VAL 0x40000000
+#define DHD_IOVAR_MEM_VAL 0x80000000
#ifdef SDTEST
/* For pktgen iovar */
typedef struct dhd_pktgen {
- uint version; /* To allow structure change tracking */
- uint freq; /* Max ticks between tx/rx attempts */
- uint count; /* Test packets to send/rcv each attempt */
- uint print; /* Print counts every <print> attempts */
- uint total; /* Total packets (or bursts) */
- uint minlen; /* Minimum length of packets to send */
- uint maxlen; /* Maximum length of packets to send */
- uint numsent; /* Count of test packets sent */
- uint numrcvd; /* Count of test packets received */
- uint numfail; /* Count of test send failures */
- uint mode; /* Test mode (type of test packets) */
- uint stop; /* Stop after this many tx failures */
+ uint32 version; /* To allow structure change tracking */
+ uint32 freq; /* Max ticks between tx/rx attempts */
+ uint32 count; /* Test packets to send/rcv each attempt */
+ uint32 print; /* Print counts every <print> attempts */
+ uint32 total; /* Total packets (or bursts) */
+ uint32 minlen; /* Minimum length of packets to send */
+ uint32 maxlen; /* Maximum length of packets to send */
+ uint32 numsent; /* Count of test packets sent */
+ uint32 numrcvd; /* Count of test packets received */
+ uint32 numfail; /* Count of test send failures */
+ uint32 mode; /* Test mode (type of test packets) */
+ uint32 stop; /* Stop after this many tx failures */
} dhd_pktgen_t;
/* Version in case structure changes */
@@ -137,10 +214,10 @@
#define DHD_IDLE_ACTIVE 0 /* Do not request any SD clock change when idle */
#define DHD_IDLE_STOP (-1) /* Request SD clock be stopped (and use SD1 mode) */
-
enum dhd_maclist_xtlv_type {
DHD_MACLIST_XTLV_R = 0x1,
- DHD_MACLIST_XTLV_X = 0x2
+ DHD_MACLIST_XTLV_X = 0x2,
+ DHD_SVMPLIST_XTLV = 0x3
};
typedef struct _dhd_maclist_t {
@@ -162,7 +239,32 @@
uint8 pbuf[1];
} dhd_pd11regs_buf;
-/* require default structure packing */
-#include <packed_section_end.h>
+/* BT logging and memory dump */
+
+#define BT_LOG_BUF_MAX_SIZE (DHD_IOCTL_MAXLEN - (2 * sizeof(int)))
+#define BT_LOG_BUF_NOT_AVAILABLE 0
+#define BT_LOG_NEXT_BUF_NOT_AVAIL 1
+#define BT_LOG_NEXT_BUF_AVAIL 2
+#define BT_LOG_NOT_READY 3
+
+typedef struct bt_log_buf_info {
+ int availability;
+ int size;
+ char buf[BT_LOG_BUF_MAX_SIZE];
+} bt_log_buf_info_t;
+
+/* request BT memory in chunks */
+typedef struct bt_mem_req {
+ int offset; /* offset from BT memory start */
+ int buf_size; /* buffer size per chunk */
+} bt_mem_req_t;
+
+/* max dest supported */
+#define DEBUG_BUF_DEST_MAX 4
+
+/* debug buf dest stat */
+typedef struct debug_buf_dest_stat {
+ uint32 stat[DEBUG_BUF_DEST_MAX];
+} debug_buf_dest_stat_t;
#endif /* _dhdioctl_h_ */
--
Gitblit v1.6.2