All of lore.kernel.org
 help / color / mirror / Atom feed
From: viktor.barna@celeno.com
To: linux-wireless@vger.kernel.org
Cc: Kalle Valo <kvalo@codeaurora.org>,
	"David S . Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>,
	Aviad Brikman <aviad.brikman@celeno.com>,
	Eliav Farber <eliav.farber@gmail.com>,
	Oleksandr Savchenko <oleksandr.savchenko@celeno.com>,
	Shay Bar <shay.bar@celeno.com>,
	Viktor Barna <viktor.barna@celeno.com>
Subject: [RFC v1 099/256] cl8k: add hw.h
Date: Thu, 17 Jun 2021 15:59:46 +0000	[thread overview]
Message-ID: <20210617160223.160998-100-viktor.barna@celeno.com> (raw)
In-Reply-To: <20210617160223.160998-1-viktor.barna@celeno.com>

From: Viktor Barna <viktor.barna@celeno.com>

(Part of the split. Please, take a look at the cover letter for more
details).

Signed-off-by: Viktor Barna <viktor.barna@celeno.com>
---
 drivers/net/wireless/celeno/cl8k/hw.h | 797 ++++++++++++++++++++++++++
 1 file changed, 797 insertions(+)
 create mode 100644 drivers/net/wireless/celeno/cl8k/hw.h

diff --git a/drivers/net/wireless/celeno/cl8k/hw.h b/drivers/net/wireless/celeno/cl8k/hw.h
new file mode 100644
index 000000000000..17f8f14b9891
--- /dev/null
+++ b/drivers/net/wireless/celeno/cl8k/hw.h
@@ -0,0 +1,797 @@
+/* SPDX-License-Identifier: MIT */
+/* Copyright(c) 2019-2021, Celeno Communications Ltd. */
+
+#ifndef CL_HW_H
+#define CL_HW_H
+
+#include "wrs/wrs_db.h"
+#include "traffic.h"
+#include "edca.h"
+#include "env_det.h"
+#include "temperature.h"
+#include "dfs/dfs_db.h"
+#include "chan_info.h"
+#include "calib.h"
+#include "debugfs_defs.h"
+#include "ipc_shared.h"
+#include "fw/fw_msg.h"
+#include "dfs/radar.h"
+#include "rate_ctrl.h"
+#include "power_table.h"
+#include "cca.h"
+#include "def.h"
+#include "noise.h"
+#include "mac80211.h"
+#include "tcv_config.h"
+#include "sounding.h"
+#include "rsrc_mgmt.h"
+#include "channel.h"
+#include <linux/workqueue.h>
+#include <linux/module.h>
+
+/* Max flags for driver status description is defined as 32 * MAX_CFM_FLAGS */
+#define MAX_CFM_FLAGS 2
+
+enum cl_radio_stats {
+       CL_RADIO_FCS_ERROR = 0,
+       CL_RADIO_PHY_ERROR,
+       CL_RADIO_RX_FIFO_OVERFLOW,
+       CL_RADIO_ADDRESS_MISMATCH,
+       CL_RADIO_UNDEFINED_ERROR,
+       CL_RADIO_ERRORS_MAX
+};
+
+struct cl_rx_path_info {
+       u32 rx_desc[CL_RX_BUF_MAX];
+       u32 elem_alloc_fail;
+       u32 skb_null;
+       u32 pkt_drop_amsdu_corrupted;
+       u32 pkt_drop_sub_amsdu_corrupted;
+       u32 pkt_drop_amsdu_len_error;
+       u32 pkt_drop_sub_amsdu_len_error;
+       u32 pkt_drop_wrong_pattern;
+       u32 pkt_drop_not_success;
+       u32 pkt_drop_unencrypted;
+       u32 pkt_drop_decrypt_fail;
+       u32 pkt_drop_rxhdr_len_error;
+       u32 pkt_drop_sta_null;
+       u32 pkt_drop_host_limit;
+       u32 netif_rx;
+       u32 remote_cpu[CPU_MAX_NUM];
+       u32 exceed_pkt_budget;
+       u32 pkt_handle_bucket_rxm[IPC_RXBUF_NUM_BUCKETS_RXM];
+       u32 pkt_handle_bucket_fw[IPC_RXBUF_NUM_BUCKETS_FW];
+       u32 amsdu_cnt[RX_MAX_MSDU_IN_AMSDU];
+       u32 non_amsdu;
+       u32 buffer_process_irq;
+       u32 buffer_process_tasklet;
+};
+
+/* Structure used to store information regarding E2A msg buffers in the driver */
+struct cl_e2a_msg_elem {
+       struct cl_ipc_e2a_msg *msgbuf_ptr;
+       dma_addr_t dma_addr;
+};
+
+/* Structure used to store information regarding Debug msg buffers in the driver */
+struct cl_dbg_elem {
+       struct cl_ipc_dbg_msg *dbgbuf_ptr;
+       dma_addr_t dma_addr;
+};
+
+struct cl_tx_power_info {
+       s8 power;
+       s8 offset;
+       s8 temperature;
+};
+
+struct cl_rx_elem {
+       int passed;
+       struct sk_buff *skb;
+       dma_addr_t dma_addr;
+};
+
+struct cl_dbg_info {
+       struct mutex mutex;
+       struct dbg_info *buf;
+       dma_addr_t dma_addr;
+       int bufsz;
+       struct timespec64 trigger_tstamp;
+};
+
+struct cl_dbg_data {
+       char *str; /* Pointer to debug strings start address */
+       int size; /* Size of debug strings pool */
+};
+
+struct cl_phy_data_info {
+       struct cl_phy_data *data;
+       u32 dma_addr;
+};
+
+struct cl_sec_phy_chan {
+       u16 prim20_freq;
+       u16 center_freq1;
+       u16 center_freq2;
+       enum nl80211_band band;
+       u8 type;
+};
+
+struct cl_amsdu_rx_state {
+       u8 msdu_cnt;
+       u8 msdu_remaining_cnt;
+       /*
+        * MSDU padding - all MSDU pkt within A-MSDU are 4byte aligned (this
+        * value holds the alignment value)
+        * According to ieee80211 spec all MSDU share the same alignment
+        */
+       u8 msdu_dma_align;
+       u8 amsdu_error;
+       u8 encrypt_len;
+       u8 sta_idx;
+       u8 tid;
+       u32 packet_len;
+       struct hw_rxhdr *rxhdr;
+       struct sk_buff *first_skb;
+       struct sk_buff_head frames;
+};
+
+struct cl_tx_queue {
+       struct list_head sched_list;
+       struct list_head hdrs;
+       struct cl_sta *cl_sta;
+       bool sched;
+       u16 fw_free_space;
+       u16 fw_max_size;
+       u8 type;
+       u8 tid;
+       u8 hw_index;
+       u16 index;
+       u16 max_packets;
+       u16 num_packets;
+       u32 total_packets;
+       u32 total_fw_push_desc;
+       u32 total_fw_push_skb;
+       u32 total_fw_cfm;
+       u32 dump_queue_full;
+       u32 dump_dma_map_fail;
+       u32 stats_hw_amsdu_cnt[CL_AMSDU_TX_PAYLOAD_MAX];
+       u32 stats_sw_amsdu_cnt[MAX_TX_SW_AMSDU_PACKET];
+};
+
+struct cl_req_agg_db {
+       bool is_used;
+       u8 sta_idx;
+       u8 tid;
+};
+
+/*
+ * struct cl_tx_queues:
+ * This structure holds all driver TX queues,
+ * The queues buffer frames pushed by upper layer and push them to lower IPC layer.
+ */
+struct cl_tx_queues {
+       struct cl_tx_queue agg[IPC_MAX_BA_SESSIONS];
+       struct cl_tx_queue single[MAX_SINGLE_QUEUES];
+       struct cl_tx_queue bcmc;
+};
+
+struct cl_prot_mode {
+       u8 current_val;
+       u8 default_val;
+       u8 dynamic_val;
+};
+
+struct mac_entry {
+       struct cl_hw *cl_hw;
+       struct list_head list;
+       time64_t kt_sec;
+       u8 addr[ETH_ALEN];
+       u8 state;
+       bool assoc_flag;
+       unsigned long allow_time;
+       spinlock_t entry_lock;
+       struct cl_timer timer;
+       struct cl_timer allow_timer;
+       struct work_struct cross_allow_time_work;
+};
+
+struct mac_drv {
+       struct mac_entry mac;
+       u16 list_size;
+};
+
+struct cl_hw_asserts_info {
+
+       /* Timestamp (jiffies) of the last CL_MIN_ASSERT_CNT hw assert. */
+       unsigned long timestamp[CL_MIN_ASSERT_CNT];
+       /* Hw assert index. */
+       u8 index;
+       /* Indicate if hw_restart was schedule */
+       u8 restart_sched;
+       /* Indicate if hw_restart is needed due to unrecoverable assert. */
+       u8 restart_needed;
+};
+
+struct cl_ate_db {
+       bool active;
+       s8 tx_power;
+       s8 tx_power_offset[MAX_ANTENNAS];
+       u8 ant_mask;
+       u8 mode;
+       u8 bw;
+       u8 nss;
+       u8 mcs;
+       u8 gi;
+       u8 ltf;
+       struct ate_stats stats;
+};
+
+struct cl_agg_cfm_queue {
+       struct list_head head;
+       struct cl_tx_queue *tx_queue;
+       u16 ssn;
+};
+
+struct cl_single_cfm_queue {
+       struct list_head head;
+};
+
+struct cl_assoc_queue {
+       struct list_head list;
+       spinlock_t lock;
+};
+
+struct cl_agc_cd {
+       /* Configuration */
+       u32 period;
+       bool debug;
+       /* Internal parameters */
+       bool is_on;
+       bool use_hystersis;
+       u32 maintenance;
+};
+
+struct cl_dyn_mcast_rate {
+       u8 wrs_mode_default;
+       u8 wrs_mode_curr;
+};
+
+struct cl_dyn_bcast_rate {
+       u8 sta_min_mcs;
+       u8 bcast_mcs;
+       u8 wrs_mode;
+       u8 ltf;
+};
+
+struct cl_power_db {
+       u8 curr_percentage;
+       s8 curr_offset;
+       /* Used to validate margins of MAC power */
+       s8 bw_factor_q2[CHNL_BW_MAX];
+       s8 ant_factor_q2[MAX_ANTENNAS];
+};
+
+struct cl_bf_db {
+       bool force;
+       enum cl_dbg_level dbg_level;
+};
+
+struct cl_vns_rssi_entry {
+       struct list_head list_all;
+       struct list_head list_addr;
+       unsigned long timestamp;
+       s8 strongset_rssi;
+       u8 addr[ETH_ALEN];
+};
+
+#define STA_HASH_SIZE 256
+
+struct cl_vns_mgmt_db {
+       u32 num_entries;
+       struct list_head list_all;
+       struct list_head list_addr[STA_HASH_SIZE];
+};
+
+struct cl_vns_db {
+       bool enable;
+       bool dbg;
+       bool dbg_per_packet;
+       u16 interval_period;
+       spinlock_t lock;
+       struct cl_vns_mgmt_db mgmt_db;
+};
+
+/* Cl_dbgfile.c - offload data */
+struct cl_str_offload_env {
+       char *block1;
+       u32 size1;
+       u32 base1;
+       char *block2;
+       u32 size2;
+       u32 base2;
+       char *block3;
+       u32 size3;
+       u32 base3;
+       bool enabled;
+       char buf[512];
+};
+
+struct cl_dma_accessed {
+       void *drv_v_addr;
+       u32 size;
+       u32 fw_v_addr;
+       u32 dma_addr;
+};
+
+struct cl_radar_queue {
+       struct list_head head;
+       spinlock_t lock;
+};
+
+struct cl_recovery_db {
+       unsigned long last_restart;
+       u32 restart_cnt;
+
+       u32 ela_en;
+       u32 ela_sel_a;
+       u32 ela_sel_b;
+       u32 ela_sel_c;
+
+       bool in_recovery;
+};
+
+struct cl_noise_reg {
+       struct list_head list;
+       u32 np_prim20_per_ant;
+       u32 np_prim20_per_ant2;
+       u32 nasp_prim20_per_ant;
+       u32 nasp_prim20_per_ant2;
+       u32 np_sub20_per_chn;
+       u32 np_sub20_per_chn2;
+       u32 nasp_sub20_per_chn;
+       u32 nasp_sub20_per_chn2;
+       u32 np_sec20_dens_per_ant;
+       u32 nasp_sec20_dens_per_ant;
+};
+
+struct cl_noise_db {
+       struct list_head reg_list;
+       bool hist_record;
+       u8 active_ant;
+       u8 sample_cnt;
+};
+
+struct cl_chan_info {
+       u8 channel;
+       u8 max_bw;
+       /* Resolution of 0.25dB */
+       u8 max_power_q2; /* MIN(country_max_power_q2, hardware_max_power_q2) */
+       u8 country_max_power_q2;
+       u8 hardware_max_power_q2;
+};
+
+struct cl_channel_info {
+       bool use_channel_info;
+       struct cl_chan_info channels[CHNL_BW_MAX][MAX_CHANNELS];
+       enum cl_reg_standard standard;
+       struct ieee80211_regdomain *rd;
+};
+
+#define CL_STA_HASH_SIZE (CL_MAX_NUM_STA / 2)
+#define CL_STA_HASH_MASK (CL_STA_HASH_SIZE - 1)
+#define CL_STA_HASH_IDX(x) ((x) & CL_STA_HASH_MASK)
+
+struct cl_sta_db {
+       struct list_head head;
+       struct cl_sta *lut[CL_MAX_NUM_STA];
+       struct list_head hash[CL_STA_HASH_SIZE];
+       rwlock_t lock;
+       u32 num;
+};
+
+struct cl_tx_inject {
+       bool continuous;
+       bool is_running;
+       bool aggressive_edca;
+       u32 alloc_counter;
+       u32 current_counter;
+       u32 max_counter;
+       u32 packet_len;
+       struct cl_sta *cl_sta;
+       struct tasklet_struct tasklet;
+};
+
+#define CL_USER_PRIO_VALS 8
+#define CL_USER_DSCP_VALS 64
+
+struct cl_vid_user {
+       u16 vid;
+       u8 user_prio;
+};
+
+struct cl_vlan_dhcp_params {
+       /* DSCP to user priority mapping */
+       u8 dscp_to_up[CL_USER_DSCP_VALS];
+       /* VLAN to user priority mapping */
+       u8 vlan_to_up[CL_USER_PRIO_VALS];
+       /*
+        * Vid-pbit to user priority mapping
+        * First index is the pbit. Second index is a running index 0
+        */
+       struct cl_vid_user vlan_pbit_to_up[CL_USER_PRIO_VALS][CL_USER_PRIO_VALS];
+       /* 2 - "VLAN" VLAN based only, 3 - "DSCP" DSCP based only. Any other number - Automatic */
+       u8 up_layer_based;
+       u8 default_vlan_up;
+};
+
+struct cl_vlan_dscp {
+       struct cl_vlan_dhcp_params vlan_dhcp_params[MAX_BSS_NUM];
+       bool enable[MAX_BSS_NUM];
+       bool debug;
+};
+
+struct cl_controller_reg {
+       u32 breset;
+       u32 debug_enable;
+       u32 dreset;
+       u32 ocd_halt_on_reset;
+       u32 run_stall;
+};
+
+struct cl_busytime_stats {
+       u32 rx_mine_time_us;
+       u32 tx_mine_time_us;
+       u32 edca_cca_busy_us;
+};
+
+#define CCA_MAX_SAMPLE 21
+
+struct cl_edca_hist_db {
+       u16 air_util[CCA_MAX_SAMPLE];
+       u16 wifi_air_util[CCA_MAX_SAMPLE];
+       u16 not_mine_rx_wifi[CCA_MAX_SAMPLE];
+       u16 mine[CCA_MAX_SAMPLE];
+       u16 not_mine[CCA_MAX_SAMPLE];
+       u16 non_wifi_util[CCA_MAX_SAMPLE];
+       u16 not_mine_busy[CCA_MAX_SAMPLE];
+       u16 sample_cnt;
+};
+
+struct cl_cca_db {
+       struct cl_edca_hist_db edca_hist;
+       unsigned long time;
+       u32 edca_busy;
+       u32 edca_busy_sec20;
+       u32 edca_busy_sec40;
+       u32 edca_busy_sec80;
+       u32 cca_busy_nav;
+       u32 cca_intra_bss_nav;
+       u32 cca_inter_bss_nav;
+       u32 tx_mine;
+       u32 rx_mine;
+       u32 print_tx_mine;
+       u32 print_rx_mine;
+       enum cl_cca_opt cca_opt;
+};
+
+struct cl_cpu_cntr {
+       u32 tx_agg[CPU_MAX_NUM];
+       u32 tx_single[CPU_MAX_NUM];
+};
+
+struct cl_tx_drop_cntr {
+       u32 wd_restart;
+       u32 radio_off;
+       u32 in_recovery;
+       u32 short_length;
+       u32 pending_full;
+       u32 packet_limit;
+       u32 dev_flags;
+       u32 tx_disable;
+       u32 length_limit;
+       u32 txhdr_alloc_fail;
+       u32 queue_null;
+       u32 amsdu_alloc_fail;
+       u32 amsdu_dma_map_err;
+       u32 build_hdr_fail;
+       u32 key_disable;
+       u32 queue_flush;
+       u32 sta_null_in_agg;
+};
+
+struct cl_tx_forward_cntr {
+       u32 tx_start;
+       u32 drv_fast_agg;
+       u32 drv_fast_single;
+       u32 to_mac;
+       u32 from_mac_single;
+       u32 from_mac_agg;
+};
+
+struct cl_tx_transfer_cntr {
+       u32 single_to_agg;
+       u32 agg_to_single;
+};
+
+struct cl_tx_packet_cntr {
+       struct cl_tx_forward_cntr forward;
+       struct cl_tx_drop_cntr drop;
+       struct cl_tx_transfer_cntr transfer;
+};
+
+struct cl_power_truncate {
+       u8 he[CHNL_BW_MAX][WRS_MCS_MAX_HE][PWR_TBL_HE_BF_SIZE];
+       u8 ht_vht[CHNL_BW_MAX][WRS_MCS_MAX_VHT][PWR_TBL_VHT_BF_SIZE];
+       u8 ofdm[WRS_MCS_MAX_OFDM];
+       u8 cck[WRS_MCS_MAX_CCK];
+};
+
+#define CL_TWT_MAX_SESSIONS 8
+
+struct cl_twt_session_db {
+       struct cl_sta *cl_sta;
+       struct ieee80211_twt_individual_elem twt_setup;
+};
+
+struct cl_twt_db {
+       struct cl_twt_session_db cl_twt_sessions[CL_TWT_MAX_SESSIONS];
+       u8 num_sessions;
+       u8 dialog_token;
+};
+
+struct cl_vif_db {
+       struct list_head head;
+       u8 num_iface_bcn;
+};
+
+enum cl_rx_stats_flag {
+       RX_STATS_CCK = 0x01,
+       RX_STATS_OFDM = 0x02,
+       RX_STATS_HT = 0x04,
+       RX_STATS_VHT = 0x08,
+       RX_STATS_HE_SU = 0x10,
+       RX_STATS_HE_MU = 0x20,
+       RX_STATS_HE_EXT = 0x40,
+       RX_STATS_HE_TRIG = 0x80,
+};
+
+struct cl_rx_stats {
+       u32 he_trig[CHNL_BW_MAX_HE][WRS_SS_MAX][WRS_MCS_MAX_HE][WRS_GI_MAX_HE];
+       u32 he_ext[CHNL_BW_MAX_HE][WRS_SS_MAX][WRS_MCS_MAX_HE][WRS_GI_MAX_HE];
+       u32 he_mu[CHNL_BW_MAX_HE][WRS_SS_MAX][WRS_MCS_MAX_HE][WRS_GI_MAX_HE];
+       u32 he_su[CHNL_BW_MAX_HE][WRS_SS_MAX][WRS_MCS_MAX_HE][WRS_GI_MAX_HE];
+       u32 vht[CHNL_BW_MAX_VHT][WRS_SS_MAX][WRS_MCS_MAX_VHT][WRS_GI_MAX_VHT];
+       u32 ht[CHNL_BW_MAX_HT][WRS_SS_MAX][WRS_MCS_MAX_HT][WRS_GI_MAX_HT];
+       u32 ofdm[WRS_MCS_MAX_OFDM];
+       u32 cck[WRS_MCS_MAX_CCK];
+       u8 flag;
+};
+
+struct cl_fw_dbg {
+       char *buf;
+       int len;
+};
+
+struct cl_rx_trigger_based_stats {
+       bool enable;
+       u8 ampdu_cnt;
+       u16 data_per_agg;
+       u16 qos_null_per_agg;
+       u32 total;
+       u32 data[DBG_STATS_MAX_AGG_SIZE];
+       u32 qos_null[TID_MAX + 2];
+};
+
+enum cl_iface_conf {
+       CL_IFCONF_AP,
+       CL_IFCONF_STA,
+       CL_IFCONF_REPEATER,
+       CL_IFCONF_MESH_AP,
+       CL_IFCONF_MESH_ONLY,
+
+       CL_IFCONF_MAX
+};
+
+struct cl_vendor_msg {
+       u8 *buf;
+       u16 len;
+       u16 offset;
+       bool in_process;
+};
+
+struct cl_driver_ops {
+       int (*msg_fw_send)(struct cl_hw *cl_hw,
+                          const void *msg_params,
+                          bool background);
+       void (*pkt_fw_send)(struct cl_hw *cl_hw,
+                           struct cl_sw_txhdr *sw_txhdr,
+                           struct cl_tx_queue *tx_queue);
+};
+
+struct cl_version_db {
+       u32 dsp;
+       u32 rfic_sw;
+       u32 rfic_hw;
+       u32 agcram;
+       char fw[CL_VERSION_STR_SIZE];
+       char drv[CL_VERSION_STR_SIZE];
+       unsigned long last_update;
+};
+
+struct cl_cached_fw {
+       void *data;
+       size_t size;
+};
+
+struct cl_hw {
+       u8 idx; /* Global index (0-3) */
+       u8 tcv_idx; /* Transceiver index (0-1) */
+       struct cl_tcv_conf *conf;
+       struct cl_chip *chip;
+       struct ieee80211_hw *hw;
+       const struct cl_driver_ops *drv_ops;
+       struct cl_vif_db vif_db;
+       struct cl_fw_dbg fw_dbg;
+       enum cl_iface_conf iface_conf;
+       u32 num_ap_started;
+       u8 tx_power_version;
+       struct cl_vif *mc_vif;
+       u8 bw;
+       u32 channel;
+       u32 primary_freq;
+       u32 center_freq;
+       enum nl80211_band nl_band;
+       u8 num_antennas;
+       u8 mask_num_antennas;
+       u8 first_ant;
+       u8 last_ant;
+       u8 max_antennas;
+       u8 max_mu_cnt;
+       struct cl_sta_db cl_sta_db;
+       struct cl_ipc_e2a_irq ipc_e2a_irq;
+       struct cl_controller_reg controller_reg;
+       struct ieee80211_supported_band sband;
+       void (*ipc_host2xmac_trigger_set)(struct cl_chip *chip, u32 value);
+       unsigned long drv_flags;
+       unsigned long tx_disable_flags;
+       struct cl_ipc_host_env *ipc_env;
+       spinlock_t tx_lock_agg;
+       spinlock_t tx_lock_cfm_agg;
+       spinlock_t tx_lock_single;
+       spinlock_t tx_lock_bcmc;
+       struct mutex msg_tx_mutex;
+       wait_queue_head_t wait_queue; /* Synchronize driver<-->firmware message exchanges */
+       unsigned long cfm_flags[MAX_CFM_FLAGS];
+       void *msg_cfm_params[MM_MAX + DBG_MAX]; /* Array of pointers per received msg CFM */
+       bool msg_background;
+       wait_queue_head_t fw_sync_wq;
+       wait_queue_head_t radio_wait_queue;
+       struct cl_rx_elem *rx_elems;
+       struct cl_e2a_msg_elem *e2a_msg_elems;
+       struct cl_dbg_elem *dbg_elems;
+       struct cl_radar_elem *radar_elems;
+       struct dma_pool *txdesc_pool;
+       struct dma_pool *dbg_pool;
+       struct dma_pool *e2a_msg_pool;
+       struct dma_pool *radar_pool;
+       struct cl_dbg_info dbginfo;
+       struct cl_debugfs debugfs;
+       struct cl_hw_asserts_info assert_info;
+       char fw_prefix; /* Single character for fw prefix - l/u/s */
+       u8 fw_dst_kern_id; /* Firmware destination (LMAC/SMAC) */
+       bool fw_active;
+       bool fw_send_start; /* Did driver already send a start request message to firmware? */
+       struct cl_tx_inject tx_inject;
+       bool chandef_set;
+       struct cl_dbg_data dbg_data;
+       bool set_calib;
+       struct cl_tx_power_info tx_pow_info[MAX_CHANNELS][MAX_ANTENNAS];
+       struct cl_channel_info channel_info;
+       struct cl_phy_data_info phy_data_info;
+       u32 mask_hi;
+       u32 mask_low;
+       struct cl_timer maintenance_slow_timer;
+       struct cl_timer maintenance_fast_timer;
+       struct tasklet_struct tx_task;
+       struct list_head list_sched_q_agg;
+       struct list_head list_sched_q_single;
+       struct cl_ate_db ate_db;
+       struct cl_env_db env_db;
+       struct cl_req_agg_db req_agg_db[IPC_MAX_BA_SESSIONS];
+       u8 req_agg_queues;
+       u8 used_agg_queues;
+       u16 max_agg_tx_q_size;
+       bool wd_restart_drv;
+       bool is_stop_context;
+       struct workqueue_struct *drv_workqueue;
+       struct cl_amsdu_rx_state amsdu_rx_state;
+       struct cl_tx_queues tx_queues;
+       struct kmem_cache *sw_txhdr_cache;
+       struct kmem_cache *amsdu_txhdr_cache;
+       u32 radio_stats[CL_RADIO_ERRORS_MAX];
+       atomic_t tx_packet_count;
+       struct cl_rx_path_info rx_info;
+       struct cl_prot_mode prot_mode;
+       struct cl_agg_cfm_queue agg_cfm_queues[IPC_MAX_BA_SESSIONS];
+       struct cl_single_cfm_queue single_cfm_queues[MAX_SINGLE_QUEUES];
+       struct cl_single_cfm_queue bcmc_cfm_queue;
+       atomic_t radio_lock;
+       struct cl_assoc_queue assoc_queue;
+       struct cl_agc_cd agc_cd;
+       struct cl_wrs_db wrs_db;
+       struct cl_traffic_main traffic_db;
+       struct cl_rsrc_mgmt_db rsrc_mgmt_db;
+       struct cl_power_db power_db;
+       struct cl_bf_db bf_db;
+       struct cl_edca_db edca_db;
+       struct cl_vns_db vns_db;
+       struct cl_str_offload_env str_offload_env;
+       struct cl_dma_accessed fw_remote_rom;
+       struct cl_recovery_db recovery_db;
+       struct cl_radar_queue radar_queue;
+       struct tasklet_struct radar_tasklet;
+       struct cl_cached_fw cached_fw;
+       s8 rx_sensitivity[MAX_ANTENNAS];
+       struct cl_cca_db cca_db;
+       struct cl_noise_db noise_db;
+       struct cl_temp_comp_db temp_comp_db;
+       struct cl_sounding_db sounding;
+       struct cl_dyn_mcast_rate dyn_mcast_rate;
+       struct cl_dyn_bcast_rate dyn_bcast_rate;
+       struct cl_dfs_db dfs_db;
+       struct cl_version_db version_db;
+       bool entry_fixed_rate;
+       struct cl_vlan_dscp vlan_dscp;
+       unsigned long last_tbtt_irq;
+       u32 tbtt_cnt;
+       u8 mesh_tbtt_div;
+       struct tasklet_struct tx_mesh_bcn_task;
+       u32 fw_recovery_cntr;
+       u32 rx_filter;
+       ptrdiff_t mac_hw_regs_offset;
+       ptrdiff_t phy_regs_offset;
+       struct sk_buff_head tx_remote_queue;
+       struct sk_buff_head rx_remote_queue_mac;
+       struct sk_buff_head rx_skb_queue;
+       struct tasklet_struct rx_tasklet;
+       struct tasklet_struct rx_resched_tasklet;
+       u8 fem_system_mode;
+       u8 fem_ant;
+       struct cl_tx_packet_cntr tx_packet_cntr;
+       struct cl_cpu_cntr cpu_cntr;
+       struct cl_iq_dcoc_data_info iq_dcoc_data_info;
+       struct cl_power_table_info power_table_info;
+       struct ieee80211_sband_iftype_data iftype_data[3];
+       bool motion_sense_dbg;
+       struct cl_power_truncate pwr_trunc;
+       struct mutex set_channel_mutex;
+       u8 radio_status;
+       u8 rf_crystal_mhz;
+       bool calib_ready;
+       struct cl_twt_db twt_db;
+       struct mac_address addresses[MAX_BSS_NUM];
+       struct cl_rx_stats *rx_stats; /* RX statistics for production mode. */
+       spinlock_t lock_stats;
+       u16 n_addresses;
+       u8 txamsdu_en;
+       bool reg_dbg;
+       struct cl_rx_trigger_based_stats tb_stats;
+       bool idle_async_set;
+       struct cl_vendor_msg vendor_msg;
+       struct cl_timer vendor_timer;
+       bool msg_calib_timeout;
+       struct cl_calib_work *calib_work;
+};
+
+void cl_hw_init(struct cl_chip *chip, struct cl_hw *cl_hw, u8 tcv_idx);
+void cl_hw_deinit(struct cl_hw *cl_hw, u8 tcv_idx);
+void cl_hw_lock(struct cl_hw *cl_hw);
+void cl_hw_unlock(struct cl_hw *cl_hw);
+struct cl_hw *cl_hw_other_tcv(struct cl_hw *cl_hw);
+bool cl_hw_is_tcv0(struct cl_hw *cl_hw);
+bool cl_hw_is_tcv1(struct cl_hw *cl_hw);
+int cl_hw_set_antennas(struct cl_hw *cl_hw);
+u8 cl_hw_ant_shift(struct cl_hw *cl_hw);
+
+#endif /* CL_HW_H */
--
2.30.0

________________________________
The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any retransmission, dissemination, copying or other use of, or taking of any action in reliance upon this information is prohibited. If you received this in error, please contact the sender and delete the material from any computer. Nothing contained herein shall be deemed as a representation, warranty or a commitment by Celeno. No warranties are expressed or implied, including, but not limited to, any implied warranties of non-infringement, merchantability and fitness for a particular purpose.
________________________________


  parent reply	other threads:[~2021-06-17 16:06 UTC|newest]

Thread overview: 262+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-17 15:58 [RFC v1 000/256] wireless: cl8k driver for Celeno IEEE 802.11ax devices viktor.barna
2021-06-17 15:58 ` [RFC v1 001/256] celeno: add Kconfig viktor.barna
2021-06-17 15:58 ` [RFC v1 002/256] celeno: add Makefile viktor.barna
2021-06-17 15:58 ` [RFC v1 003/256] cl8k: add Kconfig viktor.barna
2021-06-17 15:58 ` [RFC v1 004/256] cl8k: add Makefile viktor.barna
2021-06-17 15:58 ` [RFC v1 005/256] cl8k: add afe.c viktor.barna
2021-06-17 15:58 ` [RFC v1 006/256] cl8k: add afe.h viktor.barna
2021-06-17 15:58 ` [RFC v1 007/256] cl8k: add agc_params.c viktor.barna
2021-06-17 15:58 ` [RFC v1 008/256] cl8k: add agc_params.h viktor.barna
2021-06-17 15:58 ` [RFC v1 009/256] cl8k: add ampdu.c viktor.barna
2021-06-17 15:58 ` [RFC v1 010/256] cl8k: add ampdu.h viktor.barna
2021-06-17 15:58 ` [RFC v1 011/256] cl8k: add ate.c viktor.barna
2021-06-17 15:58 ` [RFC v1 012/256] cl8k: add ate.h viktor.barna
2021-06-17 15:58 ` [RFC v1 013/256] cl8k: add band.c viktor.barna
2021-06-17 15:58 ` [RFC v1 014/256] cl8k: add band.h viktor.barna
2021-06-17 15:58 ` [RFC v1 015/256] cl8k: add bf.c viktor.barna
2021-06-17 15:58 ` [RFC v1 016/256] cl8k: add bf.h viktor.barna
2021-06-17 15:58 ` [RFC v1 017/256] cl8k: add bus/pci/ipc.c viktor.barna
2021-06-17 15:58 ` [RFC v1 018/256] cl8k: add bus/pci/ipc.h viktor.barna
2021-06-17 15:58 ` [RFC v1 019/256] cl8k: add bus/pci/irq.c viktor.barna
2021-06-17 15:58 ` [RFC v1 020/256] cl8k: add bus/pci/irq.h viktor.barna
2021-06-17 15:58 ` [RFC v1 021/256] cl8k: add bus/pci/msg_pci.c viktor.barna
2021-06-17 15:58 ` [RFC v1 022/256] cl8k: add bus/pci/msg_pci.h viktor.barna
2021-06-17 15:58 ` [RFC v1 023/256] cl8k: add bus/pci/pci.c viktor.barna
2021-06-17 15:58 ` [RFC v1 024/256] cl8k: add bus/pci/rx_pci.c viktor.barna
2021-06-17 15:58 ` [RFC v1 025/256] cl8k: add bus/pci/rx_pci.h viktor.barna
2021-06-17 15:58 ` [RFC v1 026/256] cl8k: add bus/pci/tx_pci.c viktor.barna
2021-06-17 15:58 ` [RFC v1 027/256] cl8k: add bus/pci/tx_pci.h viktor.barna
2021-06-17 15:58 ` [RFC v1 028/256] cl8k: add calib.c viktor.barna
2021-06-17 15:58 ` [RFC v1 029/256] cl8k: add calib.h viktor.barna
2021-06-17 15:58 ` [RFC v1 030/256] cl8k: add cap.c viktor.barna
2021-06-17 15:58 ` [RFC v1 031/256] cl8k: add cap.h viktor.barna
2021-06-17 15:58 ` [RFC v1 032/256] cl8k: add cca.c viktor.barna
2021-06-17 15:58 ` [RFC v1 033/256] cl8k: add cca.h viktor.barna
2021-06-17 15:58 ` [RFC v1 034/256] cl8k: add cecli.c viktor.barna
2021-06-17 15:58 ` [RFC v1 035/256] cl8k: add cecli.h viktor.barna
2021-06-17 15:58 ` [RFC v1 036/256] cl8k: add chandef.c viktor.barna
2021-06-17 15:58 ` [RFC v1 037/256] cl8k: add chandef.h viktor.barna
2021-06-17 15:58 ` [RFC v1 038/256] cl8k: add channel.c viktor.barna
2021-06-17 15:58 ` [RFC v1 039/256] cl8k: add channel.h viktor.barna
2021-06-17 15:58 ` [RFC v1 040/256] cl8k: add chan_info.c viktor.barna
2021-06-17 15:58 ` [RFC v1 041/256] cl8k: add chan_info.h viktor.barna
2021-06-17 15:58 ` [RFC v1 042/256] cl8k: add chip.c viktor.barna
2021-06-17 15:58 ` [RFC v1 043/256] cl8k: add chip.h viktor.barna
2021-06-17 15:58 ` [RFC v1 044/256] cl8k: add chip_config.c viktor.barna
2021-06-17 15:58 ` [RFC v1 045/256] cl8k: add chip_config.h viktor.barna
2021-06-17 15:58 ` [RFC v1 046/256] cl8k: add config.c viktor.barna
2021-06-17 15:58 ` [RFC v1 047/256] cl8k: add config.h viktor.barna
2021-06-17 15:58 ` [RFC v1 048/256] cl8k: add coredump.c viktor.barna
2021-06-17 15:58 ` [RFC v1 049/256] cl8k: add coredump.h viktor.barna
2021-06-17 15:58 ` [RFC v1 050/256] cl8k: add data_rates.c viktor.barna
2021-06-17 15:58 ` [RFC v1 051/256] cl8k: add data_rates.h viktor.barna
2021-06-17 15:58 ` [RFC v1 052/256] cl8k: add dbgfile.c viktor.barna
2021-06-17 15:59 ` [RFC v1 053/256] cl8k: add dbgfile.h viktor.barna
2021-06-17 15:59 ` [RFC v1 054/256] cl8k: add debug.h viktor.barna
2021-06-17 15:59 ` [RFC v1 055/256] cl8k: add debugfs.c viktor.barna
2021-06-17 15:59 ` [RFC v1 056/256] cl8k: add debugfs.h viktor.barna
2021-06-17 15:59 ` [RFC v1 057/256] cl8k: add debugfs_defs.h viktor.barna
2021-06-17 15:59 ` [RFC v1 058/256] cl8k: add def.h viktor.barna
2021-06-17 15:59 ` [RFC v1 059/256] cl8k: add dfs/dfs.c viktor.barna
2021-06-17 15:59 ` [RFC v1 060/256] cl8k: add dfs/dfs.h viktor.barna
2021-06-17 15:59 ` [RFC v1 061/256] cl8k: add dfs/dfs_db.h viktor.barna
2021-06-17 15:59 ` [RFC v1 062/256] cl8k: add dfs/radar.c viktor.barna
2021-06-17 15:59 ` [RFC v1 063/256] cl8k: add dfs/radar.h viktor.barna
2021-06-17 15:59 ` [RFC v1 064/256] cl8k: add drv_ops.h viktor.barna
2021-06-17 15:59 ` [RFC v1 065/256] cl8k: add dsp.c viktor.barna
2021-06-17 15:59 ` [RFC v1 066/256] cl8k: add dsp.h viktor.barna
2021-06-17 15:59 ` [RFC v1 067/256] cl8k: add e2p.c viktor.barna
2021-06-17 15:59 ` [RFC v1 068/256] cl8k: add e2p.h viktor.barna
2021-06-17 15:59 ` [RFC v1 069/256] cl8k: add edca.c viktor.barna
2021-06-17 15:59 ` [RFC v1 070/256] cl8k: add edca.h viktor.barna
2021-06-17 15:59 ` [RFC v1 071/256] cl8k: add ela.c viktor.barna
2021-06-17 15:59 ` [RFC v1 072/256] cl8k: add ela.h viktor.barna
2021-06-17 15:59 ` [RFC v1 073/256] cl8k: add enhanced_tim.c viktor.barna
2021-06-17 15:59 ` [RFC v1 074/256] cl8k: add enhanced_tim.h viktor.barna
2021-06-17 15:59 ` [RFC v1 075/256] cl8k: add env_det.c viktor.barna
2021-06-17 15:59 ` [RFC v1 076/256] cl8k: add env_det.h viktor.barna
2021-06-17 15:59 ` [RFC v1 077/256] cl8k: add ext/dyn_bcast_rate.c viktor.barna
2021-06-17 15:59 ` [RFC v1 078/256] cl8k: add ext/dyn_bcast_rate.h viktor.barna
2021-06-17 15:59 ` [RFC v1 079/256] cl8k: add ext/dyn_mcast_rate.c viktor.barna
2021-06-17 15:59 ` [RFC v1 080/256] cl8k: add ext/dyn_mcast_rate.h viktor.barna
2021-06-17 15:59 ` [RFC v1 081/256] cl8k: add ext/vlan_dscp.c viktor.barna
2021-06-17 15:59 ` [RFC v1 082/256] cl8k: add ext/vlan_dscp.h viktor.barna
2021-06-17 15:59 ` [RFC v1 083/256] cl8k: add fem.c viktor.barna
2021-06-17 15:59 ` [RFC v1 084/256] cl8k: add fem.h viktor.barna
2021-06-17 15:59 ` [RFC v1 085/256] cl8k: add fem_common.h viktor.barna
2021-06-17 15:59 ` [RFC v1 086/256] cl8k: add fw/fw_dbg.c viktor.barna
2021-06-17 15:59 ` [RFC v1 087/256] cl8k: add fw/fw_dbg.h viktor.barna
2021-06-17 15:59 ` [RFC v1 088/256] cl8k: add fw/fw_file.c viktor.barna
2021-06-17 15:59 ` [RFC v1 089/256] cl8k: add fw/fw_file.h viktor.barna
2021-06-17 15:59 ` [RFC v1 090/256] cl8k: add fw/fw_msg.c viktor.barna
2021-06-17 15:59 ` [RFC v1 091/256] cl8k: add fw/fw_msg.h viktor.barna
2021-06-17 15:59 ` [RFC v1 092/256] cl8k: add fw/msg_cfm.c viktor.barna
2021-06-17 15:59 ` [RFC v1 093/256] cl8k: add fw/msg_cfm.h viktor.barna
2021-06-17 15:59 ` [RFC v1 094/256] cl8k: add fw/msg_rx.c viktor.barna
2021-06-17 15:59 ` [RFC v1 095/256] cl8k: add fw/msg_rx.h viktor.barna
2021-06-17 15:59 ` [RFC v1 096/256] cl8k: add fw/msg_tx.c viktor.barna
2021-06-17 15:59 ` [RFC v1 097/256] cl8k: add fw/msg_tx.h viktor.barna
2021-06-17 15:59 ` [RFC v1 098/256] cl8k: add hw.c viktor.barna
2021-06-17 15:59 ` viktor.barna [this message]
2021-06-17 15:59 ` [RFC v1 100/256] cl8k: add hw_assert.c viktor.barna
2021-06-17 15:59 ` [RFC v1 101/256] cl8k: add hw_assert.h viktor.barna
2021-06-17 15:59 ` [RFC v1 102/256] cl8k: add ipc_shared.h viktor.barna
2021-06-17 15:59 ` [RFC v1 103/256] cl8k: add key.c viktor.barna
2021-06-17 15:59 ` [RFC v1 104/256] cl8k: add key.h viktor.barna
2021-06-17 15:59 ` [RFC v1 105/256] cl8k: add mac80211.c viktor.barna
2021-06-17 15:59 ` [RFC v1 106/256] cl8k: add mac80211.h viktor.barna
2021-06-17 15:59 ` [RFC v1 107/256] cl8k: add mac_addr.c viktor.barna
2021-06-17 15:59 ` [RFC v1 108/256] cl8k: add mac_addr.h viktor.barna
2021-06-17 15:59 ` [RFC v1 109/256] cl8k: add main.c viktor.barna
2021-06-17 15:59 ` [RFC v1 110/256] cl8k: add main.h viktor.barna
2021-06-17 15:59 ` [RFC v1 111/256] cl8k: add maintenance.c viktor.barna
2021-06-17 15:59 ` [RFC v1 112/256] cl8k: add maintenance.h viktor.barna
2021-06-17 16:00 ` [RFC v1 113/256] cl8k: add mib.c viktor.barna
2021-06-17 16:00 ` [RFC v1 114/256] cl8k: add mib.h viktor.barna
2021-06-17 16:00 ` [RFC v1 115/256] cl8k: add motion_sense.c viktor.barna
2021-06-17 16:00 ` [RFC v1 116/256] cl8k: add motion_sense.h viktor.barna
2021-06-17 16:00 ` [RFC v1 117/256] cl8k: add netlink.c viktor.barna
2021-06-17 16:00 ` [RFC v1 118/256] cl8k: add netlink.h viktor.barna
2021-06-17 16:00 ` [RFC v1 119/256] cl8k: add noise.c viktor.barna
2021-06-17 16:00 ` [RFC v1 120/256] cl8k: add noise.h viktor.barna
2021-06-17 16:00 ` [RFC v1 121/256] cl8k: add omi.c viktor.barna
2021-06-17 16:00 ` [RFC v1 122/256] cl8k: add omi.h viktor.barna
2021-06-17 16:00 ` [RFC v1 123/256] cl8k: add ops.c viktor.barna
2021-06-17 16:00 ` [RFC v1 124/256] cl8k: add ops.h viktor.barna
2021-06-17 16:00 ` [RFC v1 125/256] cl8k: add phy/phy.c viktor.barna
2021-06-17 16:00 ` [RFC v1 126/256] cl8k: add phy/phy.h viktor.barna
2021-06-17 16:00 ` [RFC v1 127/256] cl8k: add phy/phy_athos_lut.c viktor.barna
2021-06-17 16:00 ` [RFC v1 128/256] cl8k: add phy/phy_athos_lut.h viktor.barna
2021-06-17 16:00 ` [RFC v1 129/256] cl8k: add phy/phy_common_lut.c viktor.barna
2021-06-17 16:00 ` [RFC v1 130/256] cl8k: add phy/phy_common_lut.h viktor.barna
2021-06-17 16:00 ` [RFC v1 131/256] cl8k: add phy/phy_olympus_lut.c viktor.barna
2021-06-17 16:00 ` [RFC v1 132/256] cl8k: add phy/phy_olympus_lut.h viktor.barna
2021-06-17 16:00 ` [RFC v1 133/256] cl8k: add power.c viktor.barna
2021-06-17 16:00 ` [RFC v1 134/256] cl8k: add power.h viktor.barna
2021-06-17 16:00 ` [RFC v1 135/256] cl8k: add power_cli.c viktor.barna
2021-06-17 16:00 ` [RFC v1 136/256] cl8k: add power_cli.h viktor.barna
2021-06-17 16:00 ` [RFC v1 137/256] cl8k: add power_table.c viktor.barna
2021-06-17 16:00 ` [RFC v1 138/256] cl8k: add power_table.h viktor.barna
2021-06-17 16:00 ` [RFC v1 139/256] cl8k: add prot_mode.c viktor.barna
2021-06-17 16:00 ` [RFC v1 140/256] cl8k: add prot_mode.h viktor.barna
2021-06-17 16:00 ` [RFC v1 141/256] cl8k: add radio.c viktor.barna
2021-06-17 16:00 ` [RFC v1 142/256] cl8k: add radio.h viktor.barna
2021-06-17 16:00 ` [RFC v1 143/256] cl8k: add rate_ctrl.c viktor.barna
2021-06-17 16:00 ` [RFC v1 144/256] cl8k: add rate_ctrl.h viktor.barna
2021-06-17 16:00 ` [RFC v1 145/256] cl8k: add recovery.c viktor.barna
2021-06-17 16:00 ` [RFC v1 146/256] cl8k: add recovery.h viktor.barna
2021-06-17 16:00 ` [RFC v1 147/256] cl8k: add reg/ceva.h viktor.barna
2021-06-17 16:00 ` [RFC v1 148/256] cl8k: add reg/reg_access.h viktor.barna
2021-06-17 16:00 ` [RFC v1 149/256] cl8k: add reg/reg_cli.c viktor.barna
2021-06-17 16:00 ` [RFC v1 150/256] cl8k: add reg/reg_cli.h viktor.barna
2021-06-17 16:00 ` [RFC v1 151/256] cl8k: add reg/reg_cmu.h viktor.barna
2021-06-17 16:00 ` [RFC v1 152/256] cl8k: add reg/reg_fem.h viktor.barna
2021-06-17 16:00 ` [RFC v1 153/256] cl8k: add reg/reg_io_ctrl.h viktor.barna
2021-06-17 16:00 ` [RFC v1 154/256] cl8k: add reg/reg_ipc.h viktor.barna
2021-06-17 16:00 ` [RFC v1 155/256] cl8k: add reg/reg_lcu_common.h viktor.barna
2021-06-17 16:00 ` [RFC v1 156/256] cl8k: add reg/reg_lcu_phy.h viktor.barna
2021-06-17 16:00 ` [RFC v1 157/256] cl8k: add reg/reg_macdsp_api.h viktor.barna
2021-06-17 16:00 ` [RFC v1 158/256] cl8k: add reg/reg_macsys_gcu.h viktor.barna
2021-06-17 16:00 ` [RFC v1 159/256] cl8k: add reg/reg_mac_hw.h viktor.barna
2021-06-17 16:00 ` [RFC v1 160/256] cl8k: add reg/reg_mac_hw_mu.h viktor.barna
2021-06-17 16:00 ` [RFC v1 161/256] cl8k: add reg/reg_modem_gcu.h viktor.barna
2021-06-17 16:00 ` [RFC v1 162/256] cl8k: add reg/reg_otp_pvt.h viktor.barna
2021-06-17 16:00 ` [RFC v1 163/256] cl8k: add reg/reg_ricu.h viktor.barna
2021-06-17 16:00 ` [RFC v1 164/256] cl8k: add reg/reg_riu.h viktor.barna
2021-06-17 16:00 ` [RFC v1 165/256] cl8k: add reg/reg_riu_rc.h viktor.barna
2021-06-17 16:00 ` [RFC v1 166/256] cl8k: add rf_boot.c viktor.barna
2021-06-17 16:00 ` [RFC v1 167/256] cl8k: add rf_boot.h viktor.barna
2021-06-17 16:00 ` [RFC v1 168/256] cl8k: add rsrc_mgmt.c viktor.barna
2021-06-17 16:00 ` [RFC v1 169/256] cl8k: add rsrc_mgmt.h viktor.barna
2021-06-17 16:00 ` [RFC v1 170/256] cl8k: add rssi.c viktor.barna
2021-06-17 16:00 ` [RFC v1 171/256] cl8k: add rssi.h viktor.barna
2021-06-17 16:00 ` [RFC v1 172/256] cl8k: add rx/rx.c viktor.barna
2021-06-17 16:01 ` [RFC v1 173/256] cl8k: add rx/rx.h viktor.barna
2021-06-17 16:01 ` [RFC v1 174/256] cl8k: add rx/rx_amsdu.c viktor.barna
2021-06-17 16:01 ` [RFC v1 175/256] cl8k: add rx/rx_amsdu.h viktor.barna
2021-06-17 16:01 ` [RFC v1 176/256] cl8k: add rx/rx_filter.c viktor.barna
2021-06-17 16:01 ` [RFC v1 177/256] cl8k: add rx/rx_filter.h viktor.barna
2021-06-17 16:01 ` [RFC v1 178/256] cl8k: add rx/rx_reorder.c viktor.barna
2021-06-17 16:01 ` [RFC v1 179/256] cl8k: add rx/rx_reorder.h viktor.barna
2021-06-17 16:01 ` [RFC v1 180/256] cl8k: add sounding.c viktor.barna
2021-06-17 16:01 ` [RFC v1 181/256] cl8k: add sounding.h viktor.barna
2021-06-17 16:01 ` [RFC v1 182/256] cl8k: add sta.c viktor.barna
2021-06-17 16:01 ` [RFC v1 183/256] cl8k: add sta.h viktor.barna
2021-06-17 16:01 ` [RFC v1 184/256] cl8k: add stats.c viktor.barna
2021-06-17 16:01 ` [RFC v1 185/256] cl8k: add stats.h viktor.barna
2021-06-17 16:01 ` [RFC v1 186/256] cl8k: add tcv_config.c viktor.barna
2021-06-17 16:01 ` [RFC v1 187/256] cl8k: add tcv_config.h viktor.barna
2021-06-17 16:01 ` [RFC v1 188/256] cl8k: add temperature.c viktor.barna
2021-06-17 16:01 ` [RFC v1 189/256] cl8k: add temperature.h viktor.barna
2021-06-17 16:01 ` [RFC v1 190/256] cl8k: add trace.c viktor.barna
2021-06-17 16:01 ` [RFC v1 191/256] cl8k: add trace.h viktor.barna
2021-06-17 16:01 ` [RFC v1 192/256] cl8k: add traffic.c viktor.barna
2021-06-17 16:01 ` [RFC v1 193/256] cl8k: add traffic.h viktor.barna
2021-06-17 16:01 ` [RFC v1 194/256] cl8k: add twt.c viktor.barna
2021-06-17 16:01 ` [RFC v1 195/256] cl8k: add twt.h viktor.barna
2021-06-17 16:01 ` [RFC v1 196/256] cl8k: add twt_cli.c viktor.barna
2021-06-17 16:01 ` [RFC v1 197/256] cl8k: add twt_cli.h viktor.barna
2021-06-17 16:01 ` [RFC v1 198/256] cl8k: add twt_frame.c viktor.barna
2021-06-17 16:01 ` [RFC v1 199/256] cl8k: add twt_frame.h viktor.barna
2021-06-17 16:01 ` [RFC v1 200/256] cl8k: add tx/agg_cfm.c viktor.barna
2021-06-17 16:01 ` [RFC v1 201/256] cl8k: add tx/agg_cfm.h viktor.barna
2021-06-17 16:01 ` [RFC v1 202/256] cl8k: add tx/agg_tx_report.c viktor.barna
2021-06-17 16:01 ` [RFC v1 203/256] cl8k: add tx/agg_tx_report.h viktor.barna
2021-06-17 16:01 ` [RFC v1 204/256] cl8k: add tx/baw.c viktor.barna
2021-06-17 16:01 ` [RFC v1 205/256] cl8k: add tx/baw.h viktor.barna
2021-06-17 16:01 ` [RFC v1 206/256] cl8k: add tx/bcmc_cfm.c viktor.barna
2021-06-17 16:01 ` [RFC v1 207/256] cl8k: add tx/bcmc_cfm.h viktor.barna
2021-06-17 16:01 ` [RFC v1 208/256] cl8k: add tx/single_cfm.c viktor.barna
2021-06-17 16:01 ` [RFC v1 209/256] cl8k: add tx/single_cfm.h viktor.barna
2021-06-17 16:01 ` [RFC v1 210/256] cl8k: add tx/sw_txhdr.c viktor.barna
2021-06-17 16:01 ` [RFC v1 211/256] cl8k: add tx/sw_txhdr.h viktor.barna
2021-06-17 16:01 ` [RFC v1 212/256] cl8k: add tx/tx.c viktor.barna
2021-06-17 16:01 ` [RFC v1 213/256] cl8k: add tx/tx.h viktor.barna
2021-06-17 16:01 ` [RFC v1 214/256] cl8k: add tx/tx_amsdu.c viktor.barna
2021-06-17 16:01 ` [RFC v1 215/256] cl8k: add tx/tx_amsdu.h viktor.barna
2021-06-17 16:01 ` [RFC v1 216/256] cl8k: add tx/tx_inject.c viktor.barna
2021-06-17 16:01 ` [RFC v1 217/256] cl8k: add tx/tx_inject.h viktor.barna
2021-06-17 16:01 ` [RFC v1 218/256] cl8k: add tx/tx_queue.c viktor.barna
2021-06-17 16:01 ` [RFC v1 219/256] cl8k: add tx/tx_queue.h viktor.barna
2021-06-17 16:01 ` [RFC v1 220/256] cl8k: add utils/file.c viktor.barna
2021-06-17 16:01 ` [RFC v1 221/256] cl8k: add utils/file.h viktor.barna
2021-06-17 16:01 ` [RFC v1 222/256] cl8k: add utils/ip.c viktor.barna
2021-06-17 16:01 ` [RFC v1 223/256] cl8k: add utils/ip.h viktor.barna
2021-06-17 16:01 ` [RFC v1 224/256] cl8k: add utils/math.h viktor.barna
2021-06-17 16:01 ` [RFC v1 225/256] cl8k: add utils/string.c viktor.barna
2021-06-17 16:01 ` [RFC v1 226/256] cl8k: add utils/string.h viktor.barna
2021-06-17 16:01 ` [RFC v1 227/256] cl8k: add utils/timer.c viktor.barna
2021-06-17 16:01 ` [RFC v1 228/256] cl8k: add utils/timer.h viktor.barna
2021-06-17 16:01 ` [RFC v1 229/256] cl8k: add utils/utils.c viktor.barna
2021-06-17 16:01 ` [RFC v1 230/256] cl8k: add utils/utils.h viktor.barna
2021-06-17 16:01 ` [RFC v1 231/256] cl8k: add vendor_cmd.c viktor.barna
2021-06-17 16:01 ` [RFC v1 232/256] cl8k: add vendor_cmd.h viktor.barna
2021-06-17 16:02 ` [RFC v1 233/256] cl8k: add version.c viktor.barna
2021-06-17 16:02 ` [RFC v1 234/256] cl8k: add version.h viktor.barna
2021-06-17 16:02 ` [RFC v1 235/256] cl8k: add vif.c viktor.barna
2021-06-17 16:02 ` [RFC v1 236/256] cl8k: add vif.h viktor.barna
2021-06-17 16:02 ` [RFC v1 237/256] cl8k: add vns.c viktor.barna
2021-06-17 16:02 ` [RFC v1 238/256] cl8k: add vns.h viktor.barna
2021-06-17 16:02 ` [RFC v1 239/256] cl8k: add wrs/wrs.c viktor.barna
2021-06-17 16:02 ` [RFC v1 240/256] cl8k: add wrs/wrs.h viktor.barna
2021-06-17 16:02 ` [RFC v1 241/256] cl8k: add wrs/wrs_ap.c viktor.barna
2021-06-17 16:02 ` [RFC v1 242/256] cl8k: add wrs/wrs_ap.h viktor.barna
2021-06-17 16:02 ` [RFC v1 243/256] cl8k: add wrs/wrs_api.c viktor.barna
2021-06-17 16:02 ` [RFC v1 244/256] cl8k: add wrs/wrs_api.h viktor.barna
2021-06-17 16:02 ` [RFC v1 245/256] cl8k: add wrs/wrs_cli.c viktor.barna
2021-06-17 16:02 ` [RFC v1 246/256] cl8k: add wrs/wrs_cli.h viktor.barna
2021-06-17 16:02 ` [RFC v1 247/256] cl8k: add wrs/wrs_db.h viktor.barna
2021-06-17 16:02 ` [RFC v1 248/256] cl8k: add wrs/wrs_rssi.c viktor.barna
2021-06-17 16:02 ` [RFC v1 249/256] cl8k: add wrs/wrs_rssi.h viktor.barna
2021-06-17 16:02 ` [RFC v1 250/256] cl8k: add wrs/wrs_sta.c viktor.barna
2021-06-17 16:02 ` [RFC v1 251/256] cl8k: add wrs/wrs_sta.h viktor.barna
2021-06-17 16:02 ` [RFC v1 252/256] cl8k: add wrs/wrs_stats.c viktor.barna
2021-06-17 16:02 ` [RFC v1 253/256] cl8k: add wrs/wrs_stats.h viktor.barna
2021-06-17 16:02 ` [RFC v1 254/256] cl8k: add wrs/wrs_tables.c viktor.barna
2021-06-17 16:02 ` [RFC v1 255/256] cl8k: add wrs/wrs_tables.h viktor.barna
2021-06-17 16:02 ` [RFC v1 256/256] wireless: add Celeno vendor viktor.barna
2021-06-17 17:23 ` [RFC v1 000/256] wireless: cl8k driver for Celeno IEEE 802.11ax devices Johannes Berg
2022-05-22 17:51   ` viktor.barna
2021-06-19  6:39 ` Kalle Valo
2022-05-13 21:11   ` viktor.barna
2022-05-14  4:25     ` Kalle Valo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210617160223.160998-100-viktor.barna@celeno.com \
    --to=viktor.barna@celeno.com \
    --cc=aviad.brikman@celeno.com \
    --cc=davem@davemloft.net \
    --cc=eliav.farber@gmail.com \
    --cc=kuba@kernel.org \
    --cc=kvalo@codeaurora.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=oleksandr.savchenko@celeno.com \
    --cc=shay.bar@celeno.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.