avos
9fd2b2061c
rtwn_pci(4): sync r88ee_power_on() with OpenBSD
...
Tested with RTL8188EE, STA mode
Submitted by: Farhan Khan <khanzf@gmail.com>
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D18727
2019-01-04 04:26:39 +00:00
avos
aacd49bce6
rtwn_usb(4): add USB id for TP-LINK TL-WN821N v5.
...
It is already mentioned in manpage, but was missing from the driver.
MFC after: 4 days
2019-01-02 18:35:40 +00:00
avos
1a2f121169
rtwn_pci(4): fix panic with INVARIANTS (due to inverted assertion logic)
...
MFC after: 4 days
2019-01-02 17:13:55 +00:00
avos
b65ae50c2b
rtwn_pci(4): add support for RTL8188EE chipset.
...
Initially based on https://reviews.freebsd.org/D15692 ;
later deduplicated and improved a bit (Tx reports, IQ calibration support).
Submitted by: Farhan Khan <khanzf@gmail.com>
MFC after: 4 days
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D15692
2019-01-02 06:48:53 +00:00
avos
edcafce33d
rtwn(4): rename set_name -> set_rom_opts method and reuse it for RTL8188E*
...
MFC after: 4 days
2019-01-02 06:03:19 +00:00
avos
b369cb3cc1
rtwn(4): rename common RTL8188E* structures.
...
No functional change intended.
MFC after: 4 days
2019-01-02 05:43:33 +00:00
avos
9766171a7e
rtwn(4): do not try to start RTL8188E* MCU during device shutdown.
...
MFC after: 4 days
2019-01-02 05:37:30 +00:00
avos
6dd389770b
Move USB-specific parts from rtwn(4) to rtwn_usb(4)
...
MFC after: 4 days
2019-01-02 05:30:41 +00:00
avos
ba5fcdb21b
rtwn_pci(4): add support for event-based Tx reports.
...
It will be used for RTL8188EE (and, probably, others).
MFC after: 4 days
2019-01-02 05:21:06 +00:00
avos
7d6cf372dd
rtwn_pci(4): use proper bus_dmamap_sync flags after Tx (sync with r342672)
...
MFC after: 4 days
2019-01-02 04:56:36 +00:00
avos
7e035e65e0
rtwn(4): drop obsolete comment + use 'nop' function for 92eu calibration
...
RTL8192EU was not tested with previously added code.
MFC after: 4 days
2019-01-02 04:27:39 +00:00
avos
094405b1e2
rtwn(4): add IQ calibration support for RTL8188E*
...
Tested with:
* RTL8188EE, STA mode.
* RTL8188EU, STA mode.
MFC after: 4 days
2019-01-02 04:19:28 +00:00
avos
72bb9eeefe
rtwn(4): provide register definitions for RTL8188CE calibration routines.
...
No functional change intended.
MFC after: 4 days
2019-01-02 04:08:37 +00:00
avos
0cf42a4df3
rtwn_pci: fix excessive packet loss on Tx with RTL8188EE.
...
Use proper flags for bus_dmamap_sync() in Tx path.
Tested with: RTL8188EE, STA mode
MFC after: 4 days
2019-01-01 23:41:16 +00:00
avos
521cb263a8
Add revision number for TP-Link TL-WN722N to prevent ambiguity between
...
different chipsets.
MFC after: 3 days
X-MFC with: 341786
2018-12-17 05:07:57 +00:00
avos
1df4530744
Add new USB id in rtwn_usb(4) (RTL8812AU)
...
PR: 234029
Submitted by: <hakotani000@gmail.com>
MFC after: 4 days
2018-12-15 14:58:45 +00:00
avos
2d987ba385
rtwn, rsu: add more USB ids.
...
PR: 233638
Submitted by: cezary.sliwa@gmail.com
MFC after: 3 days
2018-12-10 09:45:57 +00:00
avos
3febcaf55e
rtwn(4): decode some bit fields + merge duplicate code.
...
Add macros for R12A_RXDMA_PRO register (descriptions were seen in the
RTL8822B vendor driver) and merge 2 r21au_init_burstlen() copies.
No functional change intended.
2018-06-19 00:38:28 +00:00
mmacy
7aeac9ef18
ifnet: Replace if_addr_lock rwlock with epoch + mutex
...
Run on LLNW canaries and tested by pho@
gallatin:
Using a 14-core, 28-HTT single socket E5-2697 v3 with a 40GbE MLX5
based ConnectX 4-LX NIC, I see an almost 12% improvement in received
packet rate, and a larger improvement in bytes delivered all the way
to userspace.
When the host receiving 64 streams of netperf -H $DUT -t UDP_STREAM -- -m 1,
I see, using nstat -I mce0 1 before the patch:
InMpps OMpps InGbs OGbs err TCP Est %CPU syscalls csw irq GBfree
4.98 0.00 4.42 0.00 4235592 33 83.80 4720653 2149771 1235 247.32
4.73 0.00 4.20 0.00 4025260 33 82.99 4724900 2139833 1204 247.32
4.72 0.00 4.20 0.00 4035252 33 82.14 4719162 2132023 1264 247.32
4.71 0.00 4.21 0.00 4073206 33 83.68 4744973 2123317 1347 247.32
4.72 0.00 4.21 0.00 4061118 33 80.82 4713615 2188091 1490 247.32
4.72 0.00 4.21 0.00 4051675 33 85.29 4727399 2109011 1205 247.32
4.73 0.00 4.21 0.00 4039056 33 84.65 4724735 2102603 1053 247.32
After the patch
InMpps OMpps InGbs OGbs err TCP Est %CPU syscalls csw irq GBfree
5.43 0.00 4.20 0.00 3313143 33 84.96 5434214 1900162 2656 245.51
5.43 0.00 4.20 0.00 3308527 33 85.24 5439695 1809382 2521 245.51
5.42 0.00 4.19 0.00 3316778 33 87.54 5416028 1805835 2256 245.51
5.42 0.00 4.19 0.00 3317673 33 90.44 5426044 1763056 2332 245.51
5.42 0.00 4.19 0.00 3314839 33 88.11 5435732 1792218 2499 245.52
5.44 0.00 4.19 0.00 3293228 33 91.84 5426301 1668597 2121 245.52
Similarly, netperf reports 230Mb/s before the patch, and 270Mb/s after the patch
Reviewed by: gallatin
Sponsored by: Limelight Networks
Differential Revision: https://reviews.freebsd.org/D15366
2018-05-18 20:13:34 +00:00
avos
5366d448e4
rtwn(4): de-hardcode ('h/w rate index' - 'corresponding MCS index') constant
2018-03-16 01:03:10 +00:00
avos
018ee508e6
rtwn(4): reset Tx power values before calling get_txpower()
...
for RTL8192C / RTL8188E (like it is done for other chipsets).
2018-03-10 23:47:03 +00:00
adrian
37d68cafec
[net80211] convert all of the WME use over to a temporary copy of WME info.
...
This removes the direct WME info access in the ieee80211com struct and instead
provides a method of fetching the data. Right now it's a no-op but eventually
it'll turn into a per-VAP method for drivers that support it (eg iwn, iwm,
upcoming ath10k work) as things like p2p support require this kind of behaviour.
Tested:
* ath(4), STA and AP mode
TODO:
* yes, this is slightly stack size-y, but it is an important first step
to get drivers migrated over to a sensible WME API. A lot of per-phy things
need to be converted to per-VAP before P2P, 11ac firmware, etc stuff shows up.
2018-01-02 00:07:28 +00:00
gnn
9a16464777
Add support for RealTek 8812 over USB
...
Tested with ALFA AWUS036ACH
MFC after: 1 week
2017-12-03 22:02:30 +00:00
avos
6b23b8248c
rtwn_usb(4): add few USB IDs.
...
Submitted by: wfpower@yandex.ru (via github).
2017-10-30 08:57:08 +00:00
avos
ebb33d2789
rtwn(4): some initial preparations for (basic) VHT support.
...
Rename RTWN_RIDX_MCS to RTWN_RIDX_HT_MCS before adding 802.11ac
MCS rate indexes (they have different offset).
No functional change intended.
2017-08-28 22:14:16 +00:00
avos
e1b4620f66
rtwn(4): deduplicate r92c_write_txpower().
2017-08-27 13:02:51 +00:00
avos
139b7f149e
rtwn(4): change type for Tx power values (RTL8192C / RTL8188EU).
...
Tx power values can easily fit into uint8_t + only 8 bits are written
to registers; values may overflow only in case if ROM contains
malformed data (but limit is checked anyway).
Tested with RTL8188CUS, dev.rtwn.1.debug=0x2000 (no changes).
2017-08-27 12:44:56 +00:00
avos
48003447fd
rtwn_usb: add support for fragmented Rx.
...
Since device can pass multiple frames in a single payload temporary
Rx buffer was big enough to hold all of them; now the driver can
concatenate a single frame from multiple payloads.
The Rx buffer size may be configured via tunable (dev.rtwn.%d.rx_buf_size).
Tested with:
- rtl8188cus, rtl8188eu and rtl8821au (STA mode).
- (by kevlo) rtl8192cu and rtl8188eu.
PR: 218527
Reviewed by: kevlo
Differential Revision: https://reviews.freebsd.org/D11705
2017-07-30 23:35:21 +00:00
avos
43d8fccf7c
rtwn: drop unnecessary / wrong conversion.
...
The 'chan' field occupies only one byte.
2017-07-30 21:50:45 +00:00
avos
960c0f3d88
rtwn: add Rx descriptor structures for common code.
...
Remove any chipset specific usage of Rx descriptor structure / bits
from common code to prevent misuse of fields that may differ
between various chipsets.
Checked with: RTL8821AU in STA mode.
2017-07-06 07:37:33 +00:00
avos
9219d5714b
rtwn_usb: reject too long (>16K) mbufs.
...
While here move RTWN_TXBUFSZ constant from common to USB specific code
(it's not used anywhere else).
2017-07-04 07:07:08 +00:00
kevlo
8fb682e873
- Fix incorrect values in the computation of CCK and OFDM transmit power
...
for the rtl8188eu chipset
- Rename struct r92c_rom member names: s/channel_plan/reserved5/,
s/xtal_calib/channel_plan to be compliant with definitions of the efuse
in vendor hal_pg.h
2017-06-17 14:39:25 +00:00
kevlo
3e258b43f5
Change R88E_EFUSE_MAX_LEN to use the same value as the vendor's driver
...
that contains the length of the efuse content.
Reviewed by: avos
2017-06-07 09:10:24 +00:00
avos
a68dc7b77f
rtwn: drop obsolete (since r319460) code.
...
Tested with RTL8188EU, STA mode.
2017-06-01 21:20:44 +00:00
avos
083d1a6aa1
rtwn: fix connection problems with 'options RTWN_WITHOUT_UCODE'
...
sc_set_media_status() callback may involve some generic code in addition to
firmware-specific part (e.g., link status register setup for RTL8188E);
so, remove 'RTWN_WITHOUT_UCODE' ifdefs around it.
Tested with RTL8188CUS, RTL8188EU and RTL8821AU, STA mode.
2017-05-28 22:51:06 +00:00
avos
c478fca23f
rtwn_usb: fix build with 'options RTWN_WITHOUT_UCODE'
2017-05-28 22:38:19 +00:00
avos
b14b54982c
rtwn: remove out-of-bounds access + fix debug output.
...
Omit unused rates while initializing / dumping Tx power values.
They were not accessed anywhere (except for debugging), so this is
(mostly) no-op.
Tested with
* RTL8188EU, STA mode.
* RTL8812AU, STA mode.
Found by: PVS-Studio
2017-04-12 07:21:54 +00:00
avos
3c8124b0c5
rtwn: fix node id assignment.
...
Do not assign new id if node is reused.
Tested with RTL8821AU, HOSTAP mode + RTL8188EU, STA mode
(with inactivity timeout == 90)
2017-03-20 08:10:35 +00:00
avos
eca611ca7c
rtwn: drop unneeded (after r315583) code.
...
Tested with RTL8188EU, HOSTAP mode + RTL8821AU, STA mode
(fast-frames / A-MSDU).
2017-03-19 20:51:28 +00:00
avos
1a97c780f0
net80211 drivers: fix rate setup for EAPOL frames, obtain Tx parameters
...
directly from the node.
- Use ni_txparms directly instead of calculating them manually every time
- Move M_EAPOL flag check upper; otherwise it may be skipped due to
'ucastrate' / 'mcastrate' check
- Use 'mgtrate' for control frames too (see ifconfig(8), mgtrate parameter)
- Add few more M_EAPOL checks where it was missing (zyd(4), ural(4),
urtw(4))
- Few unrelated cleanups
Tested with:
- Intel 6205 (iwn(4)), STA mode;
- WUSB54GC (rum(4)), HOSTAP mode + RTL8188EU (rtwn(4)), STA mode.
Reviewed by: adrian
Differential Revision: https://reviews.freebsd.org/D9811
2017-02-26 20:49:35 +00:00
kevlo
dcf37ffff3
Sort REALTEK section and remove duplicate entry for RTL8192CU.
2017-01-24 03:00:22 +00:00
kevlo
3dfa47ebb8
Add support for the Realtek RTL8192EU chipset.
...
Committed over the D-Link DWA-131 rev E1 on amd64 with WPA.
Reviewed by: avos
2017-01-24 02:35:38 +00:00
avos
9561ba5adb
rtwn: enable LDPC support where possible
...
Tested with RTL8821AU, STA mode.
2017-01-21 15:03:58 +00:00
avos
46e35adb66
rtwn: export more stats to net80211
...
Setup more ieee80211_rx_stats fields for received frames:
- pktflags:
* IEEE80211_RX_F_FAIL_FCSCRC;
* IEEE80211_RX_F_AMPDU;
* IEEE80211_RX_F_AMPDU_MORE;
* IEEE80211_RX_F_SHORTGI;
- rate flags (CCK, OFDM, HT);
- width;
- phytype;
- rate;
- rx_tsf;
- rssi;
- nf;
- ieee, freq (RTL8188EU only, when ht40 support is disabled).
Tested with:
- RTL8188CE, RTL8188EU, RTL8821AU (STA / AP modes, i386)
- (by kevlo) RTL8188EU and RTL8812AU (amd64)
Reviewed by: adrian (previous version), kevlo
Differential Revision: https://reviews.freebsd.org/D9021
2017-01-17 00:35:23 +00:00
kevlo
9f28d014c0
Increase retry count to 100 in r88e_fw_cmd() and r92c_fw_cmd().
2017-01-13 02:11:16 +00:00
avos
8eff25dda5
rtwn: fix R92C_TXDW4_RTSRATE_M definition (0x3f -> 0x1f)
...
Submitted by: kevlo
2017-01-11 23:32:40 +00:00
avos
c54d3d8756
rtwn_pci(4): fix possible race while accessing 'matched_chip' variable.
2017-01-10 01:09:39 +00:00
avos
77348cbf75
rtwn_usb(4): do not try to modify global static structure.
...
Use a local copy for modifications instead.
Tested with RTL8821AU (AP) + RTL8188EU (STA).
Reported by: hselasky
2017-01-09 23:42:02 +00:00
avos
4f777cb783
rtwn_usb(4): fix Rx buffer size calculation.
...
Use device-specific Rx buffer size to ensure that data will not be
truncated + add a warning if truncation was detected (the driver
cannot handle this case correctly yet).
Tested with:
- RTL8188CUS, RTL8188EU and RTL8821AU, STA / AP modes.
2017-01-08 23:41:17 +00:00
kevlo
0000b2ecb7
Add new USB device ID.
2017-01-06 14:05:31 +00:00