Commit Graph

93 Commits

Author SHA1 Message Date
dbf47e17aa Add more print into openwifi_bss_info_changed() when vif_priv->enable_beacon 2022-03-28 16:06:24 +02:00
16494306ff Add more info printing into openwifi_ampdu_action 2022-03-28 16:00:01 +02:00
20936d67e1 Remove unused variable from openwifi_dev_probe() 2022-03-28 15:27:50 +02:00
f73b4f429f Tell mac80211 we need extra_tx_headroom = LEN_MPDU_DELIM 2022-03-28 15:27:07 +02:00
72d992a6ec More correct hw flag set via ieee80211_hw_set to prevent:
Some client, like iPhone, always has frequent PS (Power Saving) state change like this:
sdr0: STA e2:72:49:82:a6:a0 aid 1 enters power save mode
sdr0: STA e2:72:49:82:a6:a0 aid 1 exits power save mode
sdr0: STA e2:72:49:82:a6:a0 aid 1 sending 0 filtered/0 PS frames since STA woke up
Now with these correct hw flag setting, the link is more stable
2022-03-28 15:26:35 +02:00
921f612e86 Only support 40MHz sps and non offset tuning now 2022-03-28 15:25:20 +02:00
9f07176e80 Remove the unused code in openwifi_dev_probe() 2022-03-28 15:24:49 +02:00
cb81054882 Add helper functions for rssi_half_db rssi_dbm conversion and rssi_correction lookup table:
and use them for priv->rssi_correction/priv->last_auto_fpga_lbt_th initialization in openwifi_dev_probe()
2022-03-28 15:23:53 +02:00
7b2f8bdfff Align the inital actual_tx_lo/actual_rx_lo to rf_init_11n.sh:
Make it far from our usual 2.4/5GHz to force ad9361 to calibration while up in 2.4/5GHz due to large tuning offset from the original frequency (1GHz)
2022-03-28 15:20:03 +02:00
ffd377ca42 Adjust the err code and print in openwifi_dev_probe() 2022-03-28 15:17:12 +02:00
7b3805608b Remove the short GI capability report from driver for:
stability with minor throughput loss
2022-03-28 15:14:55 +02:00
8e13e72bca Add set_antenna and get_antenna implementations to ieee80211_ops 2022-03-28 15:12:50 +02:00
76b1a6a12c Adjust the driver arguments while loading/insert:
1. test_mode 0 -- normal, no aggregation (AMPDU); test_mode 1 -- experimental, has AMPDU support
2. init_tx_att -- initial tx attenuation in dB*1000 format. example: put 20000 for 20dB
2022-03-28 15:08:01 +02:00
91a6d83146 Improve the openwifi_is_radio_enabled() according to the new design 2022-03-28 14:58:46 +02:00
68314a4614 Add the missing rf_reg_val in priv 2022-03-28 14:57:49 +02:00
e21492d767 Driver register initialization optimization:
keep software registers persistent between NIC down and up for multiple times
2022-03-28 14:55:57 +02:00
56203843f5 Add runtime tx/rx antenna switch support to driver 2022-03-28 14:49:15 +02:00
11d048d944 Re-structure/define drv reg idx. Add (drv) RF reg 2022-03-28 14:18:35 +02:00
d3ce582a3d Add the missing sdrctl reg category 2022-03-28 14:16:57 +02:00
b196f496df Add priv->actual_tx_lo preparing for further tx/rx related setting 2022-03-28 14:14:49 +02:00
2ae501ca2e Disable TID in sdr.c:
By default the TID is disabled in FPGA, because we currently try to TX and RX traffic for all TIDs. So, the TID related operations in sdr.c are removed.
2022-03-28 14:02:23 +02:00
0b4b8cc75d Add all Europe 5GHz channel support into driver 2022-03-28 13:58:05 +02:00
6a9949ee81 Replace some constants of number of NIC by MAX_NUM_VIF 2022-03-28 13:56:19 +02:00
61a639784b Add sysfs file based driver/FPGA access interface 2022-03-28 12:46:49 +02:00
7d0af6df9e Move sdrctl testmode cmd out to sdrctl_intf.c 2022-03-28 12:46:18 +02:00
8dc97f7f08 Avoid the git_rev.h issue:
When user download the repo instead of clone it.
2022-03-26 20:47:02 +01:00
ce40e055d2 Add modified ad9361_conv.c of our own:
Sometimes the unstable hardware can not pass the 61.44Msps self-test/calibration. Override it to 40Msps
2022-03-26 20:34:55 +01:00
9cd584f8de Missing aggregation rules 2022-01-06 15:12:03 +01:00
385339ab4b tx_interrupt if/else optimization 2022-01-06 15:11:05 +01:00
0c0d5d827e use FPGA fifo count registers instead of software queue_cnt 2022-01-06 15:07:50 +01:00
c098112487 bug fixes:
1) update start_idx and blk_ack_ssn variables,
2) revert printing switch
3) update use_short_gi type (bool -> u8),
4) advance skb->tail by num_byte_pad for non aggregation flow
2022-01-06 14:53:39 +01:00
2d12c07d4d tx_intf update: PKT_INFO*_[read/write] handlers and openwifi_fpga_type 2022-01-06 14:43:32 +01:00
f738aefa50 A-MPDU tx aggregation support 2022-01-06 14:42:01 +01:00
261bb9eef7 A-MPDU rx aggregation support 2022-01-06 14:13:24 +01:00
abdb610f56 Scripts are adapted for SW HW decouple
To avoid openwifi-hw github submodule in openwifi. More flexible now.
2021-10-20 22:50:30 +02:00
72c90e5e32 Merge pull request #104 from open-sdr/fix_large_ping_delay_igent
Fix the issue of iGent env related big ping delay:
2021-10-13 09:32:21 +02:00
b60e485eb5 Fix the possible wrong last_auto_fpga_lbt_th saving:
1. Remove the last_auto_fpga_lbt_th saving from sdrctl set reg command. Otherwise, repeated sdrctl set reg will save wrong value into last_auto_fpga_lbt_th
2. The last_auto_fpga_lbt_th is only set in ad9361_rf_set_channel, which is called at least once by Linux after NIC is up
2021-10-04 09:59:43 +02:00
109b1cfd3a Fix the issue of iGent env related big ping delay:
1. The issue only happens at zcu102 side, when it is tested as AP together with zedboard
2. The issue does not happen when zcu102 is client and zedboard is AP
3. The issue (most likely) does not happen in places other than iGent (like Pablo home)
4. Sometimes it does happen at my home when I test zcu102 as AP together with COTS WiFi
5. Indeed seems like the environment related. Guess some quick small packets in the environment quickly flush/round-up/mess-up the rx dma cyclic buffer, and the rx interrupt internal static variable target_buf_idx_old loses track of the background automatic rx dma cyclic buffer
6. The fix is for all board types (zcu102, zedboard, 7035, etc)
7. The driver compiling make_all.sh script generates USE_NEW_RX_INTERRUPT macro to pre_def.h to enable the new code (while keeping the old code). You can use the script as before.
8. The logic of the fix is that exhaustive search all the rx dma cyclic buffer in rx interrupt to get packet to Linux in the first place.
2021-09-29 16:52:45 +02:00
8598d2949d Use drv_xpu register 0 for LBT threshold setting. 0 will enable FPGA threshold auto setting by ad9361_rf_set_channel() in sdr.c. Other value will set static threshold (that value) to FPGA 2021-09-28 21:52:31 +02:00
d14d06e508 CSI fuzzer feature -- document to be finished 2021-05-13 17:45:39 +02:00
7cf9ba6e31 Add dmesg printing option for broadcasting packet 2021-05-10 14:04:34 +02:00
c24e0a046d sdr.c: change the legacy tx_itrpt1 to tx_itrpt 2021-05-05 16:53:15 +02:00
c687b19dde minor update on xilinx dma driver related stuffs 2021-05-05 16:46:28 +02:00
56fcab2044 udpate ad9361 driver related stuffs:
we do not maintain our own (modified) ad9361 driver anymore! The original ad9361 driver in the Linux kernel tree can be used with some extra EXPORT_SYMBOL.
2021-05-05 16:44:39 +02:00
fc47ee1d62 fix the bug when retry_limit_raw==0 in sdr.c (0 is the abnormal number encountered in the monitor mode. normally it should >= 1). the bug causes 15 times transmissions for a packet if no ack is received 2021-04-05 21:53:29 +02:00
913a9e947c add ack disable register in xpu in case ack needs to be disabled in monitor mode 2021-04-05 21:51:47 +02:00
aed16d0502 add missing soft decoding api in hw_def.h 2021-04-05 21:50:40 +02:00
bb0a2c5897 in xpu.v slv_reg19 and slv_reg8 are not twistted anymore. slv_reg6 is added to assist the register map in xpu more clear. separate registers for different purpose. separate registers for dynamic and static configurations in driver (sdr.c). 2021-04-05 21:49:59 +02:00
1196ed1fef remove our customized xilinx_dma.c. the original xilinx_dma.c in kernel can be used now 2021-04-05 21:45:27 +02:00
95d3c7c5f3 remove all the compiling warnings when build 32bit driver 2021-04-05 21:42:46 +02:00