mirror of
https://github.com/open-sdr/openwifi.git
synced 2025-04-07 19:04:15 +00:00
Add/Set the default fft_win_shift of new openofdm_rx to 1, which gives better throughput while receiving udp traffic
This commit is contained in:
parent
75d924e0e8
commit
e273351b99
@ -205,6 +205,7 @@ const char *openofdm_rx_compatible_str = "sdr,openofdm_rx";
|
||||
#define OPENOFDM_RX_REG_POWER_THRES_ADDR (2*4)
|
||||
#define OPENOFDM_RX_REG_MIN_PLATEAU_ADDR (3*4)
|
||||
#define OPENOFDM_RX_REG_SOFT_DECODING_ADDR (4*4)
|
||||
#define OPENOFDM_RX_REG_FFT_WIN_SHIFT_ADDR (5*4)
|
||||
#define OPENOFDM_RX_REG_STATE_HISTORY_ADDR (20*4)
|
||||
|
||||
enum openofdm_rx_mode {
|
||||
@ -239,6 +240,7 @@ enum openofdm_rx_mode {
|
||||
#define OPENOFDM_RX_RSSI_DBM_TH_DEFAULT (-95) //the best openwifi reported sensitivity is like -90/-92
|
||||
#define OPENOFDM_RX_DC_RUNNING_SUM_TH_INIT 64
|
||||
#define OPENOFDM_RX_MIN_PLATEAU_INIT 100
|
||||
#define OPENOFDM_RX_FFT_WIN_SHIFT_INIT 1
|
||||
|
||||
#define OPENWIFI_MAX_SIGNAL_LEN_TH 1700 //Packet longer than this threshold will result in receiver early termination. It goes to openofdm_rx/xpu/rx_intf
|
||||
|
||||
@ -258,6 +260,7 @@ struct openofdm_rx_driver_api {
|
||||
void (*OPENOFDM_RX_REG_POWER_THRES_write)(u32 value);
|
||||
void (*OPENOFDM_RX_REG_MIN_PLATEAU_write)(u32 value);
|
||||
void (*OPENOFDM_RX_REG_SOFT_DECODING_write)(u32 value);
|
||||
void (*OPENOFDM_RX_REG_FFT_WIN_SHIFT_write)(u32 value);
|
||||
};
|
||||
|
||||
// ---------------------------------------openofdm tx-------------------------------
|
||||
|
@ -55,6 +55,9 @@ static inline void OPENOFDM_RX_REG_MIN_PLATEAU_write(u32 Data) {
|
||||
static inline void OPENOFDM_RX_REG_SOFT_DECODING_write(u32 Data) {
|
||||
reg_write(OPENOFDM_RX_REG_SOFT_DECODING_ADDR, Data);
|
||||
}
|
||||
static inline void OPENOFDM_RX_REG_FFT_WIN_SHIFT_write(u32 Data) {
|
||||
reg_write(OPENOFDM_RX_REG_FFT_WIN_SHIFT_ADDR, Data);
|
||||
}
|
||||
static const struct of_device_id dev_of_ids[] = {
|
||||
{ .compatible = "sdr,openofdm_rx", },
|
||||
{}
|
||||
@ -94,6 +97,7 @@ static inline u32 hw_init(enum openofdm_rx_mode mode){
|
||||
openofdm_rx_api->OPENOFDM_RX_REG_POWER_THRES_write((OPENOFDM_RX_DC_RUNNING_SUM_TH_INIT<<16)|OPENOFDM_RX_POWER_THRES_INIT); // turn on signal watchdog by default
|
||||
openofdm_rx_api->OPENOFDM_RX_REG_MIN_PLATEAU_write(OPENOFDM_RX_MIN_PLATEAU_INIT);
|
||||
openofdm_rx_api->OPENOFDM_RX_REG_SOFT_DECODING_write((OPENWIFI_MAX_SIGNAL_LEN_TH<<16)|(OPENWIFI_MIN_SIGNAL_LEN_TH<<12)|1); //bit1 enable soft decoding; bit15~12 min pkt length threshold; bit31~16 max pkt length threshold
|
||||
openofdm_rx_api->OPENOFDM_RX_REG_FFT_WIN_SHIFT_write(OPENOFDM_RX_FFT_WIN_SHIFT_INIT);
|
||||
|
||||
//rst
|
||||
for (i=0;i<8;i++)
|
||||
@ -139,6 +143,7 @@ static int dev_probe(struct platform_device *pdev)
|
||||
openofdm_rx_api->OPENOFDM_RX_REG_POWER_THRES_write=OPENOFDM_RX_REG_POWER_THRES_write;
|
||||
openofdm_rx_api->OPENOFDM_RX_REG_MIN_PLATEAU_write=OPENOFDM_RX_REG_MIN_PLATEAU_write;
|
||||
openofdm_rx_api->OPENOFDM_RX_REG_SOFT_DECODING_write=OPENOFDM_RX_REG_SOFT_DECODING_write;
|
||||
openofdm_rx_api->OPENOFDM_RX_REG_FFT_WIN_SHIFT_write=OPENOFDM_RX_REG_FFT_WIN_SHIFT_write;
|
||||
|
||||
/* Request and map I/O memory */
|
||||
io = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
|
Loading…
x
Reference in New Issue
Block a user