01 Jul, 2010
10 commits
-
Signed-off-by: Gertjan van Wingerde
Signed-off-by: Ivo van Doorn
Signed-off-by: John W. Linville -
Align with the way PCI devices are handled, even though it is not
strictly necessary.Signed-off-by: Gertjan van Wingerde
Signed-off-by: Ivo van Doorn
Signed-off-by: John W. Linville -
Now that the {usb,pci} specific write_tx_data functions are no longer
present we can rename the write_tx_datadesc callback function back to
its old name.Signed-off-by: Gertjan van Wingerde
Signed-off-by: Ivo van Doorn
Signed-off-by: John W. Linville -
Now that the write_tx_data functions are merged, also merge the relevant
parts of the txdone handling into common code, rather than {usb,pci}
specific code.Signed-off-by: Gertjan van Wingerde
Signed-off-by: Ivo van Doorn
Signed-off-by: John W. Linville -
Now that rt2x00pci_write_tx_data and rt2x00usb_write_tx_data are similar
we can merge them in a single function in rt2x00queue.c.Signed-off-by: Gertjan van Wingerde
Signed-off-by: Ivo van Doorn
Signed-off-by: John W. Linville -
There is no need to fill the TX URB this early, and moving it to the
rt2x00usb_kick_tx_entry function allows us to merge the PCI and USB
variants of the write_tx_data function.Signed-off-by: Gertjan van Wingerde
Signed-off-by: Ivo van Doorn
Signed-off-by: John W. Linville -
We forgot to clear the SKBDESC_DESC_IN_SKB when the descriptor was removed
from the front of the skb.Signed-off-by: Gertjan van Wingerde
Signed-off-by: Ivo van Doorn
Signed-off-by: John W. Linville -
The update_bssid is set only when BSS_CHANGED_BSSID is used,
but the check if that field is true is done later in the function
but also only when BSS_CHANGED_BSSID is set. This makes the
variable useless, as it can never result in a negative check.Signed-off-by: Ivo van Doorn
Acked-by: Helmut Schaa
Acked-by: Gertjan van Wingerde
Signed-off-by: John W. Linville -
For the Master mode case, we initialized the BSSID as the MAC
address, but never wrote it into the registers. This causes
Hardware crypto to break in Master mode when receiving frames
which require the BSSID to be filled in.This is safe for STA mode since the BSSID will be initialized
to 00:00:00:00:00 at this point, but will be set to the correct
value later when the device associates.Signed-off-by: Helmut Schaa
Signed-off-by: Ivo van Doorn
Acked-by: Gertjan van Wingerde
Signed-off-by: John W. Linville -
In order to implement tx mpdu aggregation we only have to implement
the ampdu_action callback such that mac80211 allows negotiation of
blockack sessions.The hardware will handle everything on its own as long as the ampdu
flag in the TXWI struct is set up correctly and we translate the tx
status correctly.For now, refuse requests to start rx aggregation.
Signed-off-by: Helmut Schaa
Signed-off-by: Ivo van Doorn
Signed-off-by: John W. Linville
30 Jun, 2010
4 commits
-
Reported-by: Johannes Berg
Signed-off-by: John W. Linville -
Reported-by: Johannes Berg
Signed-off-by: John W. Linville -
Reported-by: Johannes Berg
Signed-off-by: John W. Linville -
This check is duplicated in drv_get_survey.
Reported-by: Johannes Berg
Signed-off-by: John W. Linville
29 Jun, 2010
6 commits
-
Because of an ambiguity in the for_each_sta_info macro, it can
currently only be used if the third parameter is set to 'sta'.
Fix this by renaming the parameter to '_sta'.Signed-off-by: Felix Fietkau
Signed-off-by: John W. Linville -
The 'bf_retries' field of the ath_buf structure was used for both
software retries (AMPDU subframes) and hardware retries (legacy
frames). This led to a wrong retry count being reported for the A-MPDU
rate control stats.
This patch changes the code to no longer use bf_retries for reporting
retry counts, but instead always using the real on-chip retry count
from the ath_tx_status.
Additionally, if the first subframe of an A-MPDU was not acked, the tx
status report is submitted along with the first acked subframe, which
may not contain the correct rates in the tx info.
This is easily corrected by saving the tx rate info before looping over
subframes, and then copying it back once the A-MPDU status report is
submitted.
In my tests this change improves throughput visibly.Signed-off-by: Felix Fietkau
Reported-by: Björn Smedman
Cc: stable@kernel.org
Signed-off-by: John W. Linville -
In commit 39d5b2c83ca8904b6826a0713263a4e5a9c0730a "ath5k: update
AR5K_PHY_RESTART_DIV_GC values to match masks" i introduced a regression on PHY
chips older than AR5K_SREV_PHY_5413, which caused signal values to be about
10dB less that before. This patch reverts the AR5K_PHY_RESTART_DIV_GC values to
the same values which were effectively used before (without the bitmask
mistake). This brings signal levels back to normal on these PHY chips.Signed-off-by: Bruno Randolf
Signed-off-by: John W. Linville -
This patch enables the EW-CG1102GC SDIO card in the b43 driver.
b43-sdio mmc0:0001:1: Chip ID 14e4:4318
ssb: Core 0 found: ChipCommon (cc 0x800, rev 0x0D, vendor 0x4243)
ssb: Core 1 found: IEEE 802.11 (cc 0x812, rev 0x09, vendor 0x4243)
ssb: Core 2 found: PCI (cc 0x804, rev 0x0C, vendor 0x4243)
ssb: Core 3 found: PCMCIA (cc 0x80D, rev 0x07, vendor 0x4243)
b43-phy0: Broadcom 4318 WLAN found (core revision 9)
b43-phy0 debug: Found PHY: Analog 3, Type 2, Revision 7
b43-phy0 debug: Found Radio: Manuf 0x17F, Version 0x2050, Revision 8Tested with openfwwf-5.2 using a SuperH SDHI host controller.
Signed-off-by: Magnus Damm
Signed-off-by: John W. Linville -
This avoids the extra queueing from calling netif_rx.
Signed-off-by: John W. Linville
-
This avoids the extra queueing from calling netif_rx.
Signed-off-by: John W. Linville
26 Jun, 2010
11 commits
-
Radio calibration (chain noise and sensitivity) should be allowed to
be disabled from debugfs if compiled with CONFIG_IWLWIFI_DEBUGFS. For both
6000g2a and 6000g2b, the parameters are missing in "cfg", which cause
user can not disable the radio calibration manually; add the support to
allow the operation.Signed-off-by: Wey-Yi Guy
Signed-off-by: Reinette Chatre -
This message is encountered regularly and we need to take a closer look at
the circumstances under which it is printed before presenting errors to
users.Signed-off-by: Reinette Chatre
-
If RTS/CTS protection is needed for HT, wait until get operational
notification from mac80211, then inform uCode to switch to RTS/CTS
through RXON command.Signed-off-by: Wey-Yi Guy
Signed-off-by: Reinette Chatre -
When resuming from hibernate or suspend,
the status of the rfkill switch isn't
known since it might have been toggled
while the system was asleep. Therefore,
we need to read out the status at resume
time to make sure the system knows about
an up-to-date status.Reported-by: Mark Tung
Tested-by: Mark Tung
Signed-off-by: Johannes Berg
Signed-off-by: Reinette Chatre -
The rate table in the bcast LQ is computed only when the station is
allocated, and chooses the lowest rate for the band. Because of when this
occurs, this is the 2.4 GHz band and uses the 0x420a (CCK, 1 Mbps) rate. In 5 GHz
beaconing mode, this rate will prevent beacons from being sent and any other
packets from being received.We can fix this by re-initializing the bcast station's LQ command when the
channel is changed.Signed-off-by: Daniel Halperin
Signed-off-by: Reinette Chatre -
For some devices, especially the upcoming new devices, the plcp error
rate is different. Before the correct error rate can be determine, also
for the debugging purpose; add the mechanism to disable plcp error checking
which cause radio reset happen.Signed-off-by: Wey-Yi Guy
Signed-off-by: Reinette Chatre -
Different devices have different calibration requirement,
some need DC calibration and some don't; make it a cfg parameter
for easy management.Signed-off-by: Wey-Yi Guy
Signed-off-by: Reinette Chatre -
This bit need to be set for both RTS/CTS or CTS-to-self protection, if
CTS-to-self is used, then uCode will check the RXON_FLG_SELF_CTS_EN
status. Change the name from TX_CMD_FLG_RTS_CTS_MSK to TX_CMD_FLAG_PROT_REQUIRE_MSK
to match the behavior of the bit setting.Also update comments to reflect which hardware uses which of the TX command
flags.Signed-off-by: Wey-Yi Guy
Signed-off-by: Reinette Chatre -
When building tx command, always set TX_CMD_FLAG_PROT_REQUIRE_MSK
for 5000 series and up.Without setting this bit the firmware will not examine the RTS/CTS setting
and thus not send traffic with the appropriate protection. RTS/CTS is is
required for HT traffic in a noisy environment where, without this setting,
connections will stall on some hardware as documented in the patch that
initially attempted to address this:commit 1152dcc28c66a74b5b3f1a3ede0aa6729bfd48e4
Author: Wey-Yi Guy
Date: Fri Jan 15 13:42:58 2010 -0800iwlwifi: Fix throughput stall issue in HT mode for 5000
Similar to 6000 and 1000 series, RTS/CTS is the recommended
protection mechanism for 5000 series in HT mode based on the HW design.
Using RTS/CTS will better protect the inner exchange from interference,
especially in highly-congested environment, it also prevent uCode encounter
TX FIFO underrun and other HT mode related performance issues.For 3945 and 4965, different flags are used for RTS/CTS or CTS-to-Self
protection.Signed-off-by: Wey-Yi Guy
Signed-off-by: Reinette Chatre -
commit 3474ad635db371b0d8d0ee40086f15d223d5b6a4
Author: Johannes Berg
Date: Thu Apr 29 04:43:05 2010 -0700iwlwifi: apply filter flags directly
broke multicast. The reason, it turns out, is that
the code previously checked if ALLMULTI _changed_,
which the new code no longer did, and normally it
_never_ changes. Had somebody changed it manually,
the code prior to my patch there would have been
broken already.The reason is that we always, unconditionally, ask
the device to pass up all multicast frames, but the
new code made it depend on ALLMULTI which broke it
since now we'd pass up multicast frames depending
on the default filter in the device, which isn't
necessarily what we want (since we don't program it
right now).Fix this by simply not checking allmulti as we have
allmulti behaviour enabled already anyway.Reported-by: Maxim Levitsky
Tested-by: Maxim Levitsky
Signed-off-by: Johannes Berg
25 Jun, 2010
9 commits
-
Move ath9k_ps_wakeup() down just before accessing hw registers.
Signed-off-by: Vasanthakumar Thiagarajan
Signed-off-by: John W. Linville -
Signed-off-by: Vasanthakumar Thiagarajan
Signed-off-by: John W. Linville -
It is possbile that the transmission of paprd test frame
might not get completed in 100ms if tx is stuck. Freeing
this skb upon timeout in ath_paprd_calibrate() will result
in accessing already freed memory when the associated pending
buffer is drained in txq. This patch fixes this issue.Signed-off-by: Vasanthakumar Thiagarajan
Signed-off-by: John W. Linville -
HW crypto in rt2500usb does not seem to support keys with different ciphers,
which breaks TKIP+AES mode. Fall back to software encryption to fix it.This should fix long-standing problems with rt2500usb and WPA, such as:
http://rt2x00.serialmonkey.com/phpBB/viewtopic.php?f=4&t=4834
https://bugzilla.redhat.com/show_bug.cgi?id=484888Also tested that it does not break WEP, TKIP-only and AES-only modes.
Signed-off-by: Ondrej Zary
Acked-by: Gertjan van Wingerde
Signed-off-by: John W. Linville -
This patch adds transmit power setting type and transmit power level attributes
to NL80211_CMD_SET_WIPHY in order to facilitate adjusting of the transmit power
level of the device.The added attributes allow selection of automatic, limited or fixed transmit
power level, with the level definable in signed mBm format.Signed-off-by: Juuso Oikarinen
Signed-off-by: John W. Linville -
In preparation for a TX power setting interface in the nl80211, change the
.set_tx_power function to use mBm units instead of dBm for greater accuracy and
smaller power levels.Also, already in advance move the tx_power_setting enumeration to nl80211.
This change affects the .tx_set_power function prototype. As a result, the
corresponding changes are needed to modules using it. These are mac80211,
iwmc3200wifi and rndis_wlan.Cc: Samuel Ortiz
Cc: Jussi Kivilinna
Signed-off-by: Juuso Oikarinen
Acked-by: Samuel Ortiz
Acked-by: Jussi Kivilinna
Signed-off-by: John W. Linville -
The driver at76c50x-usb is unable to authenticate with an AP since
kernel 2.6.31 for the following reason: The join command of the firmware
needs to be sent with the right bssid before any transmission can start.
Before kernel 2.6.31 mac80211 informed its drivers about the changing
bssid early enough for at76c50x-usb but during the development of 2.6.31
mac80211's behaviour changed. Now a new bssid is set after the
association.This patch changes the tx routine of the driver at76c50x-usb in such a
way that a new bssid is extracted from an authentication frame and the
join command with that bssid is processed.Signed-off-by: Sebastian Smolorz
Signed-off-by: John W. Linville -
This patch does a simple code move of at76_join() so that
at76_mac80211_tx() follows at76_join() in the driver's source file.This is a preparatory patch for the following patch where we need
to call at76_join() from at76_mac80211_tx() in order to
authenticate successfully with a bssid.Signed-off-by: Sebastian Smolorz
Signed-off-by: John W. Linville -
While mesh_rx_plink_frame holds sta->lock...
mesh_rx_plink_frame ->
mesh_plink_inc_estab_count ->
ieee80211_bss_info_change_notify...but ieee80211_bss_info_change_notify is allowed to sleep. A driver
taking advantage of that allowance can cause a scheduling while
atomic bug. Similar paths exist for mesh_plink_dec_estab_count,
so work around those as well.http://bugzilla.kernel.org/show_bug.cgi?id=16099
Also, correct a minor kerneldoc comment error (mismatched function names).
Signed-off-by: John W. Linville
Cc: stable@kernel.org