aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/wireless
AgeCommit message (Collapse)AuthorFilesLines
2011-01-28ath9k: use common API to avoid code duplicationRajkumar Manoharan2-71/+3
Signed-off-by: Rajkumar Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-28ath9k_hw: Update PMU setting to improve ripple issue for AR9485.Vivek Natarajan1-1/+1
Change from the systems team to update PMU setting for AR9485 version of chipsets. Signed-off-by: Vivek Natarajan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-28ath9k: Fix a locking related issue.Vivek Natarajan1-1/+4
Spin_lock has been tried to be acquired twice from ath9k_tasklet to ath_reset which resulted in a machine freeze. Signed-off-by: Vivek Natarajan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-28ath9k_hw: DDR_PLL and BB_PLL need correct setting.Vivek Natarajan2-1/+36
Updates from the analog team for AR9485 chipsets to set DDR_PLL2 and DDR_PLL3. Also program the BB_PLL ki and kd value. Signed-off-by: Vivek Natarajan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-28ath9k: Fix a PLL hang issue observed with AR9485.Vivek Natarajan3-0/+27
When this PLL hang issue is seen, both Rx and Tx fail to work. The sqsum_dvc needs to be below 2000 for a good chip. During this issue the sqsum_dvc value is beyond 80000 and only a full reset can solve this problem. Signed-off-by: Vivek Natarajan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-28ath9k_hw: Add a function to read sqsum_dvc.Vivek Natarajan3-0/+20
Add a function to observe the delta VC of BB_PLL. For a good chip, the sqsum_dvc is below 2000. Signed-off-by: Vivek Natarajan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-28ath9k_hw: Add RX filtersSujith Manoharan1-0/+2
The HW has separate filter masks for compressed/uncompressed BlockAcks and BlockAckRequests. Add them. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-28ath9k: use split rx buffers to get rid of order-1 skb allocationsFelix Fietkau3-24/+71
With this change, less CPU time is spent trying to look for consecutive pages for rx skbs. This also reduces the socket memory required for IP/UDP reassembly. Only two buffers per frame are supported. Frames spanning more buffers will be dropped, but the buffer size is enough to handle the required AMSDU size. Signed-off-by: Jouni Malinen <[email protected]> Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-28ath9k_hw: Fix INI fixupSujith Manoharan1-3/+3
Commit "ath9k_hw: move AR9280 PCI EEPROM fix to eeprom_def.c" changed the behavior of INI overriding which is needed only for PCI cards. Revert to the original check. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-28ath9k_hw: Fix opmode initializationSujith Manoharan1-2/+2
Commit "ath9k_hw: Relocate Opmode initialization" moved the opmode initialization before the STA_ID1 register was programmed with defaults. This changed the original behaviour because the re-programming code doesn't take into account the existing value in the register. Both ath9k and ath9k_htc were not affected by this change because the opmode is re-initialized after every reset, when RX is started. Revert to the original behavior, except keep it outside the REGWRITE block. This would help remove extraneous opmode calls in the driver core. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-28ath5k: remove debug_dump_skb() functionsBob Copeland2-30/+0
Now that rx and tx dumps go through the tracing infrastructure, we no longer need to keep these routines around. Signed-off-by: Bob Copeland <[email protected]> Acked-by: Bruno Randolf <[email protected]> Acked-by: Nick Kossifidis <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-28ath5k: use tracing for packet tx/rx dumpBob Copeland3-6/+128
This adds a few tracepoints to ath5k driver transmit and receive callbacks in order to record packet traffic. We record the entire packet in the trace buffer so that the data can be extracted with trace-cmd and external plugins. Compared to the previous debugging calls, this approach removes an out-of-line function call from the tx and rx paths in the compiled-in-but-disabled case, while improving the ability to process the logged data. A new option, CONFIG_ATH5K_TRACER, is added so that one may disable the tracepoints completely. Signed-off-by: Bob Copeland <[email protected]> Acked-by: Bruno Randolf <[email protected]> Acked-by: Nick Kossifidis <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-28ath9k: Remove unused IEEE80211_WEP_NKIDBruno Randolf2-3/+0
IEEE80211_WEP_NKID is not used in ath9k any more since the key handling code has been moved to ath/. Signed-off-by: Bruno Randolf <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-28ath5k: Enable 802.11j 4.9GHz frequenciesBruno Randolf1-5/+6
This enables 4.9GHz frequencies in ath5k if they are allowed as indicated by the regulatory domain code. Currently this is MKK9_MKKC (0xfe). Signed-off-by: Bruno Randolf <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-28ath: Add function to check if 4.9GHz channels are allowedBruno Randolf2-0/+8
This adds a helper function to ath/regd.c which can be asked if 4.9GHz channels are allowed for a given regulatory domain code. This keeps the knowledge of regdomains and defines like MKK9_MKKC in one place. I'm passing the regdomain code instead of the ath_regulatory structure because this needs to be called quite early in the driver inititalization where ath_regulatory is not available yet in ath5k. I'm using MKK9_MKKC only because this is the regdomain in the 802.11j enabled sample cards we got from our vendor. I found some hints in HAL code that this is used by Atheros to indicate 4.9GHz channels support and that there might be other domain codes as well, but as I don't have any documentation I'm just putting in what I need right now. It can be extended later. Signed-off-by: Bruno Randolf <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-28ath5k: Use local variable for capabilitiesBruno Randolf1-21/+18
Shorten some lines and make code more readable. Signed-off-by: Bruno Randolf <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-28ath9k: fix tx queue index confusion in debugfs codeFelix Fietkau3-20/+21
Various places printing tx queue information used various different ways to get a tx queue index for printing statistics. Most of these ways were wrong. ATH_TXQ_AC_* cannot be used as an index for sc->tx.txq, because it is only used internally for queue assignment. One place used WME_AC_* as a queue index for sc->debug.stats.txstats, however this array uses the ath9k_hw queue number as well. Fix all of this by always using the ath9k_hw queue number as an index, and always looking it up by going through sc->tx.txq_map. Signed-off-by: Felix Fietkau <[email protected]> Cc: Ben Greear <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-28ath9k: fold struct ath_wiphy into struct ath_softcFelix Fietkau10-105/+52
Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-28ath9k: remove the bf->aphy fieldFelix Fietkau2-24/+17
Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-28ath9k: remove support for virtual wiphysFelix Fietkau10-951/+23
Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-28ath9k: remove the virtual wiphy debugfs interfaceFelix Fietkau1-133/+4
It does not make much sense to keep the current virtual wiphy implementation any longer - it adds significant complexity, has very few users and is still very experimental. At some point in time, it will be replaced by a proper implementation in mac80211. By making the code easier to read and maintain, removing virtual wiphy support helps with fixing the remaining driver issues and adding further improvements. Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-28ath9k: clean up the code that wakes the mac80211 queuesFelix Fietkau2-23/+18
Instead of spreading ath_wake_mac80211_queue() calls over multiple places in the tx path that process the tx queue for completion, call it only where the pending frames counter gets decremented, eliminating some redundant checks. To prevent queue draining from waking the queues prematurely (e.g. during a hardware reset), reset the queue stop state when draining all queues, as the caller in main.c will run ieee80211_wake_queues(hw) anyway. Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-28Merge branch 'for-linville' of ↵John W. Linville20-456/+2172
git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx
2011-01-28ath9k: Fix power save usage count imbalance on deinitRajkumar Manoharan2-2/+2
While unloading the driver, the ps_usecount is incremented before configuring gpio registers in deinit_device. But it is failed to restore the ps_usecount after that. The problem is that the chip is forcibly moved to FULL SLEEP by radio_disable when mac80211 is reporting as idle though ps_usecount is not zero. This patch retores ps_usecount properly and ensures that the chip is always moved to full sleep only if ps usage count is zero which also helps in debugging deadbeef on multivif case. And also fixes the following warning. ath: DMA failed to stop in 10 ms AR_CR=0xdeadbeef AR_DIAG_SW=0xdeadbeef ath: Could not stop RX, we could be confusing the DMA engine when we start RX up ------------[ cut here ]------------ WARNING: at drivers/net/wireless/ath/ath9k/recv.c:536 ath_stoprecv+0xf4/0x100 [ath9k]() Cc: [email protected] Cc: Paul Stewart <[email protected]> Signed-off-by: Rajkumar Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-28ath9k_hw: Fix system hang when resuming from S3/S4Rajkumar Manoharan1-2/+1
The bit 6 & 7 of AR_WA (0x4004) should be enabled only for the chips that are supporting L0s functionality while resuming back from S3/S4. Enabling these bits for AR9280 is causing system hang within a few S3/S4-resume cycles. Cc: [email protected] Cc: Jack Lee <[email protected]> Signed-off-by: Rajkumar Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-27ath9k_htc: fix race conditions when stop deviceStanislaw Gruszka2-9/+15
We do not kill any scheduled tasklets when stopping device, that may cause usage of resources after free. Disable interrupts, kill tasklets and then works in correct order. Cc: [email protected] Tested-by: Sujith <[email protected]> Signed-off-by: Stanislaw Gruszka <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-27ath9k: fix race conditions when stop deviceStanislaw Gruszka2-5/+9
We do not kill any scheduled tasklets when stopping device, that may cause usage of resources after free. Moreover we enable interrupts in tasklet function, so we could potentially end with interrupts enabled when driver is not ready to receive them. I think patch should fix Ben's kernel crash from: http://marc.info/?l=linux-wireless&m=129438358921501&w=2 Cc: [email protected] Signed-off-by: Stanislaw Gruszka <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-27ath5k: correct endianness of frame durationBob Copeland1-3/+1
The ath5k version of ieee80211_generic_frame_duration() returns an __le16 for standard modes but a cpu-endian int for turbo/half/ quarter rates. Make it always return cpu-endian values. Signed-off-by: Bob Copeland <[email protected]> Acked-by: Bruno Randolf <[email protected]> Acked-by: Nick Kossifidis <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-27ath5k: fix error handling in ath5k_hw_dma_stopBob Copeland1-2/+2
Review spotted a problem with the error handling in ath5k_hw_dma_stop: a successful return from ath5k_hw_stop_tx_dma will be treated as an error, so we always bail out of the loop after processing a single active queue. As a result, we may not actually stop some queues during reset. Signed-off-by: Bob Copeland <[email protected]> Acked-by: Bruno Randolf <[email protected]> Acked-by: Nick Kossifidis <[email protected]> Reviewed-by: Stanislaw Gruszka <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-27rtlwifi: Fix firmware upload errorsChaoming Li1-20/+20
When the source code from Realtek was prepared for kernel inclusion, some routines were refactored to reduce the level of indentation. This patch repairs errors introduced in that process. Signed-off-by: Chaoming Li <[email protected]> Signed-off-by: Larry Finger <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-27ath9k: fix misplaced debug codeFelix Fietkau2-8/+3
The commit 'ath9k: Add more information to debugfs xmit file.' added more debug counters to ath9k and also added some lines of code to ath9k_hw. Since ath9k_hw is also used by ath9k_htc, its code must not depend on ath9k data structures. In this case it was not fatal, but it's still wrong, so the code needs to be moved back to ath9k. Signed-off-by: Felix Fietkau <[email protected]> Cc: Ben Greear <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-27carl9170: utilize fw seq counter for mgmt/non-QoS data framesChristian Lamparter4-0/+23
"mac80211 will properly assign sequence numbers to QoS-data frames but cannot do so correctly for non-QoS-data and management frames because beacons need them from that counter as well and mac80211 cannot guarantee proper sequencing." Signed-off-by: Christian Lamparter <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-27carl9170: enable wake-on-lan feature testingChristian Lamparter1-0/+3
Signed-off-by: Christian Lamparter <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-27carl9170: update fw/hw headersChristian Lamparter5-11/+71
This patch syncs up the header files with the project's main firmware carl9170fw.git. Signed-off-by: Christian Lamparter <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-26ath9k: clean up enums and unused macrosMohammed Shafi Shajakhan2-6/+3
Remove unused macros and cleanup buffer_type enumeration Signed-off-by: Mohammed Shafi Shajakhan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-26Merge branch 'wireless-next-2.6' of ↵John W. Linville24-313/+998
git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-2.6
2011-01-26Merge branch 'master' of ↵David S. Miller8-12/+29
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
2011-01-26wireless/ipw2x00: use system_wq instead of dedicated workqueuesTejun Heo4-151/+118
With cmwq, there's no reason to use separate workqueues in ipw2x00 drivers. Drop them and use system_wq instead. All used work items are sync canceled on driver detach. Signed-off-by: Tejun Heo <[email protected]> Acked-by: "John W. Linville" <[email protected]> Cc: [email protected]
2011-01-25ath5k: ath5k_setup_channels cleanup and whitespaceBruno Randolf1-8/+3
Remove useless test_bit - it's not going to happen because of the way this function is called only when that bit is set. And fix some whitespace. Signed-off-by: Bruno Randolf <[email protected]> Acked-by: Bob Copeland <[email protected]> Acked-by: Nick Kossifidis <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-25ath9k_hw: read and backup AR_WA register value even before chip reset on.Senthil Balasubramanian1-8/+9
We need to read and backup AR_WA register value permanently and reading this after the chip is awakened results in this register being zeroed out. This seems to fix the ASPM with L1 enabled issue that we have observed. The laptop becomes very slow and hangs mostly with ASPM L1 enabled without this fix. Cc: Stable Kernel <[email protected]> Signed-off-by: Senthil Balasubramanian <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-25ath9k_hw: Fix incorrect macversion and macrev checksSenthil Balasubramanian1-2/+2
There are few places where we are checking for macversion and revsions before RTC is powered ON. However we are reading the macversion and revisions only after RTC is powered ON and so both macversion and revisions are actully zero and this leads to incorrect srev checks Incorrect srev checks can cause registers to be configured wrongly and can cause unexpected behavior. Fixing this seems to address the ASPM issue that we have observed. The laptop becomes very slow and hangs mostly with ASPM L1 enabled without this fix. fix this by reading the macversion and revisisons even before we start using them. There is no reason why should we delay reading this info until RTC is powered on as this is just a register information. Cc: Stable Kernel <[email protected]> Signed-off-by: Senthil Balasubramanian <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-25rt2x00: add device id for windy31 usb deviceGreg Kroah-Hartman1-0/+1
This patch adds the device id for the windy31 USB device to the rt73usb driver. Thanks to Ralf Flaxa for reporting this and providing testing and a sample device. Reported-by: Ralf Flaxa <[email protected]> Tested-by: Ralf Flaxa <[email protected]> Cc: stable <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]> Acked-by: Ivo van Doorn <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-24wl12xx: disable auto-arpEliad Peller1-2/+1
The auto-arp feature sometimes has unexpected side effects (e.g. firmware crashes, no ARP replies, etc.) disable it until it will be solved. Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2011-01-24wl12xx: Increase scan channel dwell time for passive scansJuuso Oikarinen2-11/+11
The passive scan channel dwell time currently used is 30-60TU. A typical beacon interval for AP's is 100TU. This leads to a ~30% worst-case probability of finding an AP via passive scanning. For 5GHz bands for DFS frequencies passive scanning is the only scanning option. Hence for these, the probability of finding an AP is very low. To fix this, increase the passive channel scan dwell times (also the early leave value, as 5GHz channels are still typically very silent.) Use a value of 100TU, because that covers most typical AP configurations. Based on testing the probability of finding an AP (100TU beacon interval) on a single scan round are as follows (based on 100 iterations): dwell min/max (TU) | probability ---------------------+------------ 30/60 | 35% 60/60 | 56% 80/80 | 77% 100/100 | 100% Total scan times now and after the change: Region | Before (s) | After (s) -------+------------+---------- 00 | 0.77 | 1.48 FI | 0.95 | 2.01 US | 0.91 | 1.76 Signed-off-by: Juuso Oikarinen <[email protected]> Reviewed-by: Luciano Coelho <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2011-01-24wl12xx: wrong values are returned in gpio_power_write()Eliad Peller1-6/+4
Return values were assigned to incorrect var / weren't assigned. fix it, and defer mutex_lock after the sanity checks. Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2011-01-24wl12xx: BA receiver supportLevi, Shahar5-4/+117
Add new ampdu_action ops to support receiver BA. The BA initiator session management in FW independently. Signed-off-by: Shahar Levi <[email protected]> Reviewed-by: Luciano Coelho <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2011-01-24wl12xx: BA initiator supportLevi, Shahar7-10/+183
Add 80211n BA initiator session support wl1271 driver. Include BA supported FW version auto detection mechanism. BA initiator session management included in FW independently. Signed-off-by: Shahar Levi <[email protected]> Reviewed-by: Luciano Coelho <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2011-01-24wl12xx: Add channel 14 to list of supported 2ghz channelsArik Nemtsov1-0/+1
Channel 14 is only supported in Japan (JP country code in regdb). The FW limits tranmissions to CCK only on this channel. Tested in both STA and AP modes to work correctly. Signed-off-by: Arik Nemtsov <[email protected]> Reviewed-by: Luciano Coelho <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2011-01-24wl12xx: add missing MODULE_FIRMWARE statment for AP-mode FWArik Nemtsov2-0/+2
In wl12xx cards AP-mode requires a separate FW file. Add this file to the module info. Signed-off-by: Arik Nemtsov <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2011-01-24wl12xx: Cleanup PLT mode when module is removedJuuso Oikarinen1-5/+15
PLT mode start/stop is controlled from userspace. When removing module, the PLT mode state is however not checked, and not cleared. There is the possibility of some unwanted state to left linger and there is even the possiblity of a kernel crash if for instance IRQ work is running when the module is removed. Fix this by stopping PLT mode on module removal, if still running. Signed-off-by: Juuso Oikarinen <[email protected]> Reviewed-by: Luciano Coelho <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>