mirror of
https://github.com/Mange/rtl8192eu-linux-driver
synced 2025-12-10 00:04:17 +00:00
The official RTL8192EU linux driver from D-Link Australia
Version information: 20140812_rtl8192EU_linux_v4.3.1.1_11320 2014-08-12 version 4.3.1.1_11320 Source: ftp://files.dlink.com.au/products/DWA-131/REV_E/Drivers/DWA-131_Linux_driver_v4.3.1.1.zip This version does not currently work on newer kernels, but it does contain USB ID 2001:3319, which a lot of other repos in GitHub does not.
This commit is contained in:
142
include/rtw_beamforming.h
Normal file
142
include/rtw_beamforming.h
Normal file
@@ -0,0 +1,142 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of version 2 of the GNU General Public License as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
|
||||
*
|
||||
*
|
||||
******************************************************************************/
|
||||
#ifndef __RTW_BEAMFORMING_H_
|
||||
#define __RTW_BEAMFORMING_H_
|
||||
|
||||
#define BEAMFORMING_ENTRY_NUM 2
|
||||
#define GET_BEAMFORM_INFO(_pmlmepriv) ((struct beamforming_info *)(&(_pmlmepriv)->beamforming_info))
|
||||
|
||||
typedef enum _BEAMFORMING_ENTRY_STATE
|
||||
{
|
||||
BEAMFORMING_ENTRY_STATE_UNINITIALIZE,
|
||||
BEAMFORMING_ENTRY_STATE_INITIALIZEING,
|
||||
BEAMFORMING_ENTRY_STATE_INITIALIZED,
|
||||
BEAMFORMING_ENTRY_STATE_PROGRESSING,
|
||||
BEAMFORMING_ENTRY_STATE_PROGRESSED,
|
||||
}BEAMFORMING_ENTRY_STATE, *PBEAMFORMING_ENTRY_STATE;
|
||||
|
||||
|
||||
typedef enum _BEAMFORMING_STATE
|
||||
{
|
||||
BEAMFORMING_STATE_IDLE,
|
||||
BEAMFORMING_STATE_START,
|
||||
BEAMFORMING_STATE_END,
|
||||
}BEAMFORMING_STATE, *PBEAMFORMING_STATE;
|
||||
|
||||
|
||||
typedef enum _BEAMFORMING_CAP
|
||||
{
|
||||
BEAMFORMING_CAP_NONE = 0x0,
|
||||
BEAMFORMER_CAP_HT_EXPLICIT = 0x1,
|
||||
BEAMFORMEE_CAP_HT_EXPLICIT = 0x2,
|
||||
BEAMFORMER_CAP_VHT_SU = 0x4, // Self has er Cap, because Reg er & peer ee
|
||||
BEAMFORMEE_CAP_VHT_SU = 0x8, // Self has ee Cap, because Reg ee & peer er
|
||||
BEAMFORMER_CAP = 0x10,
|
||||
BEAMFORMEE_CAP = 0x20,
|
||||
}BEAMFORMING_CAP, *PBEAMFORMING_CAP;
|
||||
|
||||
|
||||
typedef enum _SOUNDING_MODE
|
||||
{
|
||||
SOUNDING_SW_VHT_TIMER = 0x0,
|
||||
SOUNDING_SW_HT_TIMER = 0x1,
|
||||
SOUNDING_STOP_All_TIMER = 0x2,
|
||||
SOUNDING_HW_VHT_TIMER = 0x3,
|
||||
SOUNDING_HW_HT_TIMER = 0x4,
|
||||
SOUNDING_STOP_OID_TIMER = 0x5,
|
||||
SOUNDING_AUTO_VHT_TIMER = 0x6,
|
||||
SOUNDING_AUTO_HT_TIMER = 0x7,
|
||||
SOUNDING_FW_VHT_TIMER = 0x8,
|
||||
SOUNDING_FW_HT_TIMER = 0x9,
|
||||
}SOUNDING_MODE, *PSOUNDING_MODE;
|
||||
|
||||
|
||||
enum BEAMFORMING_CTRL_TYPE
|
||||
{
|
||||
BEAMFORMING_CTRL_ENTER = 0,
|
||||
BEAMFORMING_CTRL_LEAVE = 1,
|
||||
BEAMFORMING_CTRL_START_PERIOD = 2,
|
||||
BEAMFORMING_CTRL_END_PERIOD = 3,
|
||||
BEAMFORMING_CTRL_SOUNDING_FAIL=4,
|
||||
BEAMFORMING_CTRL_SOUNDING_CLK=5,
|
||||
};
|
||||
|
||||
struct beamforming_entry {
|
||||
BOOLEAN bUsed;
|
||||
BOOLEAN bSound;
|
||||
u16 aid; // Used to construct AID field of NDPA packet.
|
||||
u16 mac_id; // Used to Set Reg42C in IBSS mode.
|
||||
u16 p_aid; // Used to fill Reg42C & Reg714 to compare with P_AID of Tx DESC.
|
||||
u8 mac_addr[6];// Used to fill Reg6E4 to fill Mac address of CSI report frame.
|
||||
CHANNEL_WIDTH sound_bw; // Sounding BandWidth
|
||||
u16 sound_period;
|
||||
BEAMFORMING_CAP beamforming_entry_cap;
|
||||
BEAMFORMING_ENTRY_STATE beamforming_entry_state;
|
||||
u8 LogSeq;
|
||||
u8 LogRetryCnt;
|
||||
u8 LogSuccessCnt;
|
||||
u8 LogStatusFailCnt;
|
||||
u8 PreCsiReport[327];
|
||||
u8 DefaultCsiCnt;
|
||||
BOOLEAN bDefaultCSI;
|
||||
};
|
||||
|
||||
struct sounding_info {
|
||||
u8 sound_idx;
|
||||
CHANNEL_WIDTH sound_bw;
|
||||
SOUNDING_MODE sound_mode;
|
||||
u16 sound_period;
|
||||
};
|
||||
|
||||
struct beamforming_info {
|
||||
BEAMFORMING_CAP beamforming_cap;
|
||||
BEAMFORMING_STATE beamforming_state;
|
||||
struct beamforming_entry beamforming_entry[BEAMFORMING_ENTRY_NUM];
|
||||
u8 beamforming_cur_idx;
|
||||
u8 beamforming_in_progress;
|
||||
u8 sounding_sequence;
|
||||
struct sounding_info sounding_info;
|
||||
};
|
||||
|
||||
struct rtw_ndpa_sta_info {
|
||||
u16 aid:12;
|
||||
u16 feedback_type:1;
|
||||
u16 nc_index:3;
|
||||
};
|
||||
|
||||
BEAMFORMING_CAP beamforming_get_entry_beam_cap_by_mac_id(PVOID pmlmepriv ,u8 mac_id);
|
||||
void beamforming_notify(PADAPTER adapter);
|
||||
BEAMFORMING_CAP beamforming_get_beamform_cap(struct beamforming_info *pBeamInfo);
|
||||
|
||||
u32 beamforming_get_report_frame(PADAPTER Adapter, union recv_frame *precv_frame);
|
||||
void beamforming_get_ndpa_frame(PADAPTER Adapter, union recv_frame *precv_frame);
|
||||
|
||||
BOOLEAN beamforming_send_ht_ndpa_packet(PADAPTER Adapter, u8 *ra, CHANNEL_WIDTH bw, u8 qidx);
|
||||
BOOLEAN beamforming_send_vht_ndpa_packet(PADAPTER Adapter, u8 *ra, u16 aid, CHANNEL_WIDTH bw, u8 qidx);
|
||||
|
||||
void beamforming_check_sounding_success(PADAPTER Adapter,BOOLEAN status);
|
||||
|
||||
void beamforming_watchdog(PADAPTER Adapter);
|
||||
|
||||
void beamforming_wk_hdl(_adapter *padapter, u8 type, u8 *pbuf);
|
||||
u8 beamforming_wk_cmd(_adapter*padapter, s32 type, u8 *pbuf, s32 size, u8 enqueue);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user