#
93d249f7 |
| 18-May-2016 |
Matthew Dillon <dillon@apollo.backplane.com> |
wlan - Sync dev/netif/ral from FreeBSD (2)
* Last commit FreeBSD -> DragonFly port (this commit).
* Add back to build.
|
#
91b30d50 |
| 18-May-2016 |
Matthew Dillon <dillon@apollo.backplane.com> |
wlan - Sync dev/netif/ral from FreeBSD
* Sync dev/netif/ral from FreeBSD, fbsd git dd885b9a0a0e, May 11 2016.
* This is a direct copy (next commit ports it to DFly)
|
#
26595b18 |
| 28-Nov-2014 |
Sascha Wildner <saw@online.de> |
kernel: Use the new auto-created sysctl ctx/tree in various drivers.
Everywhere where we formerly rolled a hw.fooX.* per-device ctx/tree ourselves.
This commit switches it to dev.foo.X.*
|
#
d8235d53 |
| 09-Sep-2010 |
Joe Talbott <josepht@dragonflybsd.org> |
wlan - Bring ral back into the fold.
*** NB *** This has not been tested other than that it compiles (due to lack of hardware) but will be tested within the week.
|
#
0d59ee76 |
| 05-Sep-2010 |
Joe Talbott <josepht@dragonflybsd.org> |
ral - Convert to use wlan_token.
Tested-by: Johannes Hofmann <Johannes.Hofmann@gmx.de>
|
#
feb94d24 |
| 08-Apr-2010 |
Rui Paulo <rpaulo@FreeBSD.org> |
Sync with FreeBSD.
|
#
cb3c6fae |
| 08-Feb-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
Use per softc debug level instead of a global one.
|
#
2f3b7321 |
| 17-Jan-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
Add TX power compensation support in TX power calibration. EEPROM layout for TSSI is obtained from Ralink RT61
|
#
99fda2c4 |
| 17-Jan-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
- Add auto TX power and RX sensitivity calibration support. Add two sysctl nodes to enable/disable them. Calibration is only done when NIC operates as STA, since it does not make sense when the
- Add auto TX power and RX sensitivity calibration support. Add two sysctl nodes to enable/disable them. Calibration is only done when NIC operates as STA, since it does not make sense when the NIC operates in other mode. By default, they are all disabled. - Add sysctl node for TX power correction. TX power correction is disabled by default. This could be used when TX power calibration should not be performed, e.g. when NIC operates as AP
Enable TX power and RX sensitivity calibration and set TX power correction to 8 (-4db) makes my EW-7608PG work well @48Mb and @54Mb when it is near AP (-44dbm ~ -58dbm), @54Mb ~50 retries for ~1080 packets. Originally the NIC requires at least one retry for every packets @48Mb.
TX power calibration needs further investigation. Calibrating TX power based on RSSI may not work weel; integrate it into TX rate control may work better.
Various limits and correction values are obtained from Ralink RT61 driver.
# TX power stepping for Auto-AGC capable NICs is not in place yet. # RX sensitivity calibration for long distance is not in place yet.
show more ...
|
#
110dc487 |
| 16-Jan-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
- Save two sets of average RSSI for 2529RF - Extract secondary RSSI connection value from EEPROM
|
#
21028056 |
| 15-Jan-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
- Store tx rate control parameters in drivers, so switching between tx rate control algorithms will not loose configured values. - Move tx rate control private structures into its implementation fi
- Store tx rate control parameters in drivers, so switching between tx rate control algorithms will not loose configured values. - Move tx rate control private structures into its implementation file.
show more ...
|
#
5717dc1a |
| 07-May-2007 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
Add hardware crypto support for 2x61 part of ral(4). This kind of hardware can do hardware TKIP, TKIP MIC, WEP40/104 and CCMP.
Registers and global/pairwise key table layout are obtained from Ralin
Add hardware crypto support for 2x61 part of ral(4). This kind of hardware can do hardware TKIP, TKIP MIC, WEP40/104 and CCMP.
Registers and global/pairwise key table layout are obtained from Ralink RT61 linux driver. Their driver does not use pairwise key table, but how to setup pairwise key table and how to enable pairwise key slot are shown. BUT That's still NOT enough to use pairwise key --- driver has to write 1 to SEC_CSR4 to make the wheel whirl. It is mentioned in no place, and I had to figure it out myself ;)
2x61 part has 64 pairwise key slots, only last 60 slots will be used currently. It is mainly because the RX descriptor does not contain a field to indicate in which key table the decryption key belongs.
show more ...
|
#
ce42f143 |
| 22-Apr-2007 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
- Define macro for the number of channels. Use it instead of the magic number. - Define maximum and default channel TX power. - The EEPROM regions, which contain 5GHz and 2GHz channels' TX power,
- Define macro for the number of channels. Use it instead of the magic number. - Define maximum and default channel TX power. - The EEPROM regions, which contain 5GHz and 2GHz channels' TX power, are not contiguous. Add rt2661_read_txpower_config() to read them seperately. - Lower channel's TX power is in the lower byte of the 16bits EEPROM value, while upper channel's TX power is in the upper byte of the 16bits EEPROM value. - Channel's TX power should never exceed maximum channel TX power, if it is set it to default channel TX power. - Rename rt2661_read_eeprom() to rt2661_read_config(), since we already have rt2661_eeprom_read().
EEPROM layout, EEPROM values' layout and various limit values are obtained from Ralink RT61 Linux driver.
show more ...
|
#
e3ab8063 |
| 02-Apr-2007 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
Add Sample and Onoe TX rate control algorithm support in 2661/2561 part of ral(4), and use Sample as default TX rate control algorithm, which leads to same dramatic TX performance boosts as it does f
Add Sample and Onoe TX rate control algorithm support in 2661/2561 part of ral(4), and use Sample as default TX rate control algorithm, which leads to same dramatic TX performance boosts as it does for 2560 part.
show more ...
|
#
322b19a8 |
| 30-Mar-2007 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
- Add a definition for the length of 802.11 MAC frame's FCS. Use it instead of the magic number '4' in ral(4), rum(4) and ural(4). - In ral(4), rum(4) and ural(4), use sizeof(struct ieee80211_fram
- Add a definition for the length of 802.11 MAC frame's FCS. Use it instead of the magic number '4' in ral(4), rum(4) and ural(4). - In ral(4), rum(4) and ural(4), use sizeof(struct ieee80211_frame_{ack,cts}) to calculate ACK and CTS size, instead of using the magic number '10'. - In rum(4) and ural(4), nuke unused macro RAL_CTS_SIZE. - Correct SIFS setting in ral(4), rum(4) and ural(4). - Implement ieee80211_txtime(), according to 802.11 standards' TXTIME calculation. - Nuke {ral,rum,ural}_txtime(), use ieee80211_txtime() instead.
# We are one step closer to the generic Sample TX rate control algorithm.
show more ...
|
#
9dd87f8a |
| 20-Nov-2006 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
Rework rt2661 TX interrupts processing
The Clues: [1] "TX DMA Done Interrupt": A frame has been DMAed to ASIC, probably stored in an ASIC internal TX FIFO. The TX descriptor and the resource in hos
Rework rt2661 TX interrupts processing
The Clues: [1] "TX DMA Done Interrupt": A frame has been DMAed to ASIC, probably stored in an ASIC internal TX FIFO. The TX descriptor and the resource in host memory are useless to ASIC
"TX Done Interrupt": The transfering of a frame, which probably is from ASIC internal TX FIFO, is done by ASIC, and the information concerning this transfering is available
The Problems: - The original driver reduces TX ring occupation counter on "TX Done Interrupt", though TX descriptors and related resources are already reaped on "TX DMA Done Interrupt" - For some (maybe all ;-) ASIC, "TX Done Interrupt" comes less frequent than "TX DMA Done Interrupt", probably due to the "ASIC internal TX FIFO", or just because it is not intended to be used in the original driver's way ;-)
So useless TX descriptors slowly occupy TX ring and result in an almost full TX ring at the most of the time if new frames keep coming at high rate (e.g. during a long time scp(1))
The Fixes: - Move rate control context out of rt2661_tx_data, so it is not 1:1 mapping with TX descriptor. This degenerates rt2661_tx_data to rt2661_rx_data, so merge them and rename the new structure rt2661_data - Add a rate control context queue, which temporarily holds rate control contexts for each data transfering - Allocate the rate control context on fly during rt2661_tx_data(). Since this context is allocated using M_NOWAIT, it is possible that the alloctation fails. if this happens, later rate control information will not be gathered (I think this is acceptable :-) and the reference to the ieee80211_node is freed immediately at the end of rt2661_tx_data().
After above three changes reaping of TX descriptors and related resources no longer needs to be synchronized with rate control information gathering.
- Change the meaning of rt2661_tx_desc.qid, it now indicates whether rate control information needs to be gathered (it is not necessary at all for control/management frames) - On "TX DMA Done Interrupt" instead of on "TX Done Interrupt", if some TX descriptors and related resources are reaped, reduce TX ring occupation counter, and kick ifnet.if_start
As of this commit, my Edimax EW-7608PG can tranfer data stably [2] without being choked half way.
# # [1] These clues are infered from a comment concering TX descriptor # structure in Linux RT61 driver # [2] Though data tranfering is quite stable, its performance is still # far from expectation. In infrastructured mode, 3 meters away from # the AP, I only got 6Mbits/s - 7Mbits/s, but under the same conditions # receiving performance is quite OK (~20Mbits/s) #
show more ...
|
#
6c40999e |
| 18-Nov-2006 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
Properly setup Link/Act LED for rt2x61 chips.
LED EEPROM configures and LED MCU data/command layout are obtained from Linux RT61 driver (the reference driver?).
# This makes my Edimax EW-7608PG(rt2
Properly setup Link/Act LED for rt2x61 chips.
LED EEPROM configures and LED MCU data/command layout are obtained from Linux RT61 driver (the reference driver?).
# This makes my Edimax EW-7608PG(rt2661d) LED shining as expected.
show more ...
|
#
5fdff524 |
| 20-May-2006 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
- Add ral(4) for Ralink RT2500/RT2501/RT2600 chip based wireless NIC - Add ral(4) to GENERIC and LINT - Add man page for ral(4) Reviewed-by: swildner
Thank Damien Bergamini for his work on this dr
- Add ral(4) for Ralink RT2500/RT2501/RT2600 chip based wireless NIC - Add ral(4) to GENERIC and LINT - Add man page for ral(4) Reviewed-by: swildner
Thank Damien Bergamini for his work on this driver
For RT2500: - Fix a ieee80211_node leakage - Due to the inter-dependency nature of DONE/(ENCRYPT|DECRYPT) intr, reap desc rings twice if one of them comes. This change gives me ~17.6% TX performance boost on my ASUS WL-107G (WPA is used here): Original way of TX/RX intr processing ------------------------------------------------------------ Client connecting to sephe-test, TCP port 5001 TCP window size: 32.5 KByte (default) ------------------------------------------------------------ [ 3] local 192.168.2.14 port 1063 connected with 192.168.2.254 port 5001 [ 3] 0.0- 5.0 sec 10.2 MBytes 17.1 Mbits/sec [ 3] 5.0-10.0 sec 9.95 MBytes 16.7 Mbits/sec [ 3] 10.0-15.0 sec 9.67 MBytes 16.2 Mbits/sec [ 3] 15.0-20.0 sec 10.1 MBytes 17.0 Mbits/sec [ 3] 20.0-25.0 sec 10.2 MBytes 17.1 Mbits/sec [ 3] 25.0-30.0 sec 10.0 MBytes 16.8 Mbits/sec [ 3] 30.0-35.0 sec 9.91 MBytes 16.6 Mbits/sec [ 3] 35.0-40.0 sec 10.3 MBytes 17.2 Mbits/sec [ 3] 40.0-45.0 sec 9.87 MBytes 16.6 Mbits/sec [ 3] 45.0-50.0 sec 9.94 MBytes 16.7 Mbits/sec [ 3] 50.0-55.0 sec 10.2 MBytes 17.2 Mbits/sec [ 3] 55.0-60.0 sec 9.73 MBytes 16.3 Mbits/sec [ 3] 0.0-60.0 sec 120 MBytes 16.8 Mbits/sec
Adapted way of TX/RX intr processing ------------------------------------------------------------ Client connecting to sephe-test, TCP port 5001 TCP window size: 32.5 KByte (default) ------------------------------------------------------------ [ 3] local 192.168.2.14 port 1062 connected with 192.168.2.254 port 5001 [ 3] 0.0- 5.0 sec 11.8 MBytes 19.8 Mbits/sec [ 3] 5.0-10.0 sec 11.5 MBytes 19.4 Mbits/sec [ 3] 10.0-15.0 sec 11.1 MBytes 18.7 Mbits/sec [ 3] 15.0-20.0 sec 12.0 MBytes 20.1 Mbits/sec [ 3] 20.0-25.0 sec 12.6 MBytes 21.2 Mbits/sec [ 3] 25.0-30.0 sec 11.7 MBytes 19.6 Mbits/sec [ 3] 30.0-35.0 sec 12.3 MBytes 20.7 Mbits/sec [ 3] 35.0-40.0 sec 11.9 MBytes 19.9 Mbits/sec [ 3] 40.0-45.0 sec 11.9 MBytes 19.9 Mbits/sec [ 3] 45.0-50.0 sec 12.2 MBytes 20.4 Mbits/sec [ 3] 50.0-55.0 sec 12.1 MBytes 20.2 Mbits/sec [ 3] 55.0-60.0 sec 12.3 MBytes 20.7 Mbits/sec [ 3] 0.0-60.0 sec 143 MBytes 20.0 Mbits/sec
Obtained-from: FreeBSD
show more ...
|