Xianjun Jiao
106a5e441f
Align rx ring init to the new pkt existing flag inserted by FPGA
2022-03-29 14:14:30 +02:00
Xianjun Jiao
d4661bbd1c
Update the RX_BD_BUF_SIZE and NUM_RX_BD in sdr.h
2022-03-29 12:42:17 +02:00
Xianjun Jiao
088d2d18c4
Add dmesg printk flag in sdr.h and use it in openwifi_rx-interrupt() accordingly
2022-03-29 12:39:33 +02:00
Xianjun Jiao
ca865e3837
Move the location of hdr/addr1/addr2 in openwifi_rx_interrupt() preparing for statistics usage
2022-03-29 12:36:53 +02:00
Xianjun Jiao
d267a5f4fb
Add more info when the rx pkt content is abnormal in openwifi_rx_interrupt()
2022-03-29 12:34:51 +02:00
Xianjun Jiao
9c7deabd59
Make the freq/band report in openwifi_rx_interrupt from our driver internal variable instead of Linux setting. The latter might be asynchronous and cause issue: if the received management frame has wrong freq/band info, the Linux mac80211 might reject some state or have issue according to Linux kernel doc somewhere
2022-03-29 12:21:25 +02:00
Xianjun Jiao
0dc3d33d6e
Rename the rssi_val to more meaningful rssi_half_db in openwifi_rx_interrupt, and use the helper function rssi_half_db_to_rssi_dbm to do calculation
2022-03-29 12:17:54 +02:00
Xianjun Jiao
1bbdabf023
Remove unnecessary variable initialization and other minor adaptation
2022-03-29 12:16:04 +02:00
Xianjun Jiao
b62a370457
Change the sc to seqno in openwifi_rx_interrupt() and align the operation logic to openwifi_tx()
2022-03-29 12:14:29 +02:00
Xianjun Jiao
bca13d88e4
Shorten the openwifi_rx_interrupt message header to openwifi_rx
2022-03-29 12:13:05 +02:00
thavinga
641a980a9b
Disable AD9361 auto calibration and enable openwifi FPGA SPI control in openwifi_start()
2022-03-29 11:34:57 +02:00
Xianjun Jiao
3ac0023386
Try to allocate more room while skb head/tail room is not enough to adopt header/padding in openwifi_tx()
2022-03-29 11:24:42 +02:00
Xianjun Jiao
e7312859f8
Move the normal print location in openwifi_tx()
2022-03-29 11:23:10 +02:00
Xianjun Jiao
09350b04b6
Optimize the type of prio and queue_idx in openwifi_tx()
2022-03-29 11:21:46 +02:00
Xianjun Jiao
f11dfbd0cf
Try to wait a bit instead of quit immediately while status!=DMA_COMPLETE in openwifi_tx()
2022-03-29 11:18:51 +02:00
Xianjun Jiao
f70dfc6b7b
Optimize seq_no in openwifi_tx()
2022-03-29 11:16:49 +02:00
Xianjun Jiao
5c65530f0b
Calculate the duration/id field in driver:
...
Linux only sets that field for non-ht, and leaves the field blank for ht. Linux expects lower level set it. This is realized after checking the mac80211 source code. After studying the duration/id field of COTS WiFi chip by wireshark, we calculate it in driver sdr.c gen_ht_duration_id(). The concrete logic/method of the calculation is in the comments of the function gen_ht_duration_id().
2022-03-29 11:04:35 +02:00
Xianjun Jiao
86032d0bc7
sifs and n_dbps optimization in openwfii_tx()
2022-03-29 11:03:31 +02:00
Xianjun Jiao
d8b2967699
date type optimization
2022-03-29 11:01:13 +02:00
Xianjun Jiao
db25dabc2b
Optimize the pkt_need_ack flag check and rate_hw_value override
2022-03-29 10:56:47 +02:00
Xianjun Jiao
6e0ffbea06
Add abnormal detection prio >= MAX_NUM_HW_QUEUE in openwifi_tx()
2022-03-29 10:48:12 +02:00
Xianjun Jiao
5e4bffc1ef
Optimize some variable type
2022-03-29 10:47:32 +02:00
Xianjun Jiao
56d25ef86c
We try to handle all tid, so qos_hdr can be optimized
2022-03-29 10:45:49 +02:00
aslaamshaafi
9f3a7b7fcf
Merge branch 'pre-release' of github.com:open-sdr/openwifi into pre-release
2022-03-29 10:21:17 +02:00
aslaamshaafi
616c431c9e
replace len_mpdu+LEN_PHY_CRC with num_dma_symbol in sdr.c because axis interface in tx_intf IP use it as num_dma_symbol.
2022-03-29 10:21:04 +02:00
Xianjun Jiao
4bdc210e86
Open the 4 queue gates all the time during xpu initialization
2022-03-29 10:13:16 +02:00
Xianjun Jiao
b597510ce3
Relax the ACK waiting condition for non block ACK case:
...
If the packet type/sub-type is ACK and the length field is 14, we believe it is ACK. No matter the fcs is valid or not
2022-03-29 10:11:14 +02:00
Xianjun Jiao
066dd1bba2
fine tuning of ack tx wait time for new design
2022-03-29 10:06:27 +02:00
Xianjun Jiao
e3fb22a4b3
gpio gain delay and rssi:
...
Fine tune the rssi calculation sync with gpio gain (add the same gpio gain smoothing like iq_rssi in FPGA)
2022-03-29 10:05:33 +02:00
Xianjun Jiao
b96c234d09
Remove unnecessary ht aggr related flag reset:
...
Don't need to reset _prev variables every time when it is not ht aggr qos data. Reason:
1. In 99.9999% cases, the ht always use qos data and goes to prio/queue_idx 2. By not resetting the variable to -1, we can have continuous aggregation packet operation in FPGA queue 2.
2. In other words, the aggregation operation for queue 2 in FPGA won't be interrupted by other non aggregation packets (control/management/beacon/etc.) that go to queue 0 (or other queues than 2).
3. From wired domain and upper level ( DSCP, AC (0~3), WMM management, 802.11D service classes and user priority (UP) ) to chip/FPGA queue index, thre should be some (complicated) mapping relationship.
4. More decent design is setting these aggregation flags (ht_aggr_start) per queue/prio here in driver. But since now only queue 2 and 0 are used (data goes to queue 2, others go to queue 0) in normal (most) cases, let's not go to the decent (complicated) solution immediately.
2022-03-29 10:04:25 +02:00
thavinga
bc98f5bb6c
Driver changes for FPGA SPI Tx LO control
...
- Manually issue Tx Quadrature calibration if frequency change is more than 100MHz
- Disable FPGA SPI module before calibration
- Add xpu reg 13 to disable control manually
2022-03-29 09:56:20 +02:00
Xianjun Jiao
f6ba34deac
Add/adjust missing register modification in tx_intf
2022-03-28 20:49:37 +02:00
Xianjun Jiao
585a56016e
openofdm_rx initialization with the help of macro definition in hw_def.h:
...
Now changing the macro in hw_def.h will change the related initialization part in all related drivers (rx_intf/xpu/openofdm_rx)
2022-03-28 20:48:36 +02:00
Xianjun Jiao
12b235cd18
Remove the unnecessary variable and code from openofdm_rx interface
2022-03-28 20:44:42 +02:00
Xianjun Jiao
54c67c7a2f
No need to consider 4 last pkt from 4 queue in master branch:
...
Always assume Linux schedule 4 priority queue to 4 FPGA queue via 1 on 1 mapping
2022-03-28 20:41:00 +02:00
Xianjun Jiao
0cbb687387
Change the default bb_gain from 290 to 250 in tx_intf:
...
- 2022-03-04 detailed test result:
- - bb_gain 290 work for 11a/g all mcs
- - bb_gain 290 work for 11n mcs 1~7 (aggr and non aggr)
- - bb_gain 290 destroy 11n mcs 0 long (MTU 1500) tx pkt due to high PAPR (Peak to Average Power Ratio)
- - bb_gain 250 work for 11n mcs 0
So, a conservative bb_gain 250 should be used
2022-03-28 20:38:25 +02:00
Xianjun Jiao
469b96d342
Remove/modify the tx_intf register API according to the new FPGA:
...
1. mixer/duc is not needed because we will not use offset tuning after the ad9361 tx lo control via FPGA is supported.
2. source selection register is not needed as well.
3. arbitrary IQ register is added.
2022-03-28 20:35:17 +02:00
Xianjun Jiao
4d39160b06
Add the missing TX_INTF_BW_20MHZ_AT_0MHZ_ANT_BOTH into tx_intf_mode
2022-03-28 20:29:26 +02:00
Xianjun Jiao
a7396dd938
Some minor unused comments
2022-03-28 20:27:36 +02:00
thavinga
9fde3bff20
Displaying side channel plots with interactive mode to avoid jumping to foreground on update
...
Plus small fix for file closing
2022-03-28 16:53:07 +02:00
Xianjun Jiao
a7d34401ff
Update ad9361_rf_set_channel() for easier rssi_half_db rssi_dbm rssi_correction stuffs:
...
by using the helper functions: rssi_correction_lookup_table(), rssi_dbm_to_rssi_half_db(), rssi_half_db_to_rssi_dbm()
2022-03-28 16:44:52 +02:00
Xianjun Jiao
dbf0324b60
Restructure a bit ad9361_rf_set_channel() for actual lo tuning and priv lo variable update
2022-03-28 16:39:32 +02:00
Xianjun Jiao
534627041e
Remove unused code in ad9361_rf_set_channel()
2022-03-28 16:35:25 +02:00
Xianjun Jiao
d2bd08e02e
Add useful function definition at the beginning of sdr.c
2022-03-28 16:14:33 +02:00
Xianjun Jiao
df53600a86
Remove the unused code
2022-03-28 16:13:42 +02:00
Xianjun Jiao
747a245fd7
Add a printing via comment in openwifi_beacon_work() in case debug
2022-03-28 16:08:23 +02:00
Xianjun Jiao
dc35c00409
Add MAC addr setting support into driver via openwifi_add_interface()
2022-03-28 16:07:37 +02:00
Xianjun Jiao
dbf47e17aa
Add more print into openwifi_bss_info_changed() when vif_priv->enable_beacon
2022-03-28 16:06:24 +02:00
Xianjun Jiao
16494306ff
Add more info printing into openwifi_ampdu_action
2022-03-28 16:00:01 +02:00
Xianjun Jiao
20936d67e1
Remove unused variable from openwifi_dev_probe()
2022-03-28 15:27:50 +02:00