aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
Commit message (Collapse)AuthorAge
* ath9k_hw: clean up hardware revision checksFelix Fietkau2011-09-19
| | | | | | | | | - AR_SREV_5416_20_OR_LATER is always true, remove it - AR_SREV_9280_20_OR_LATER is always true within eeprom_4k.c and eeprom_9287.c - (AR_SREV_9271 || AR_SREV_9285) is always true in eeprom_4k.c Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath9k: sync the dma buffer after changing the retry flagFelix Fietkau2011-09-19
| | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath9k: fix setting the IEEE80211_TX_CTL_CLEAR_PS_FILT flagFelix Fietkau2011-09-19
| | | | | | | | When the driver inserts padding between the 802.11 header and data, it needs to set the hdr variable to the new header location. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* Revert "ath9k: do not insert padding into tx buffers on AR9380+"John W. Linville2011-09-19
| | | | This reverts commit 4245d31347bdc99a608dc1d1cfe64e44aa3d1771.
* Merge branch 'for-linville' of git://github.com/lucacoelho/wl12xxJohn W. Linville2011-09-19
|\
| * wl12xx: support p2p interfacesEliad Peller2011-09-14
| | | | | | | | | | | | | | | | | | | | Declare support for p2p interfaces, and create p2p_cli/p2p_go roles when being asked for. Indicate we are using a p2p interface by setting the wl->p2p flag. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: set mac80211 flags for A-MPDU aggregation supportArik Nemtsov2011-09-14
| | | | | | | | | | | | | | | | | | | | | | We set the mac80211 flag for A-MPDU support and also indicate that Tx-agg session setup is performed in HW. This patch depends on "mac80211: add flag to indicate HW only Tx-agg setup support" Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: AP mode - clean BA and queue state in tx_resetArik Nemtsov2011-09-14
| | | | | | | | | | | | | | | | | | Reset the BA state of all connected stations and explicitly clear the Tx queues. The latter is needed for clearing dummy packets from tx_queue_count. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: AP mode - enable the BA constraint event from the FWArik Nemtsov2011-09-14
| | | | | | | | | | | | | | | | | | | | | | Unblock the RX BA constraint event from firmware in AP mode as well. This allows us to stop RX BA sessions when the FW requests it. In addition refactor the handler for this event to make the flow clearer. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: don't regulate links when a single STA is connectedArik Nemtsov2011-09-14
| | | | | | | | | | | | | | | | | | | | | | When operating as AP track the number of connected stations. When a single STA is connected don't regulate the PS status of the link. Since this is the only STA connected, there's no point holding space in FW for other links. This will speed up communications with a single connected STA in PSM. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: support up to 8 stations in AP-modeArik Nemtsov2011-09-14
| | | | | | | | | | | | | | Change the max number of AP stations to 8, up from 5. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: AP mode - don't regulate FW blocks for non-active STAsArik Nemtsov2011-09-14
| | | | | | | | | | | | | | | | | | | | Check a STA is associated before regulating its PS-status in mac80211. Should never happen, so warn as a precaution. [Small cosmetic change wrt Kalle Valo's comment. -- Luca] Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: don't indicate up PS-filtered dummy packetsArik Nemtsov2011-09-14
| | | | | | | | | | | | | | | | | | | | | | Dummy packets are currently only sent on the system_hlid link. The system_hlid link should never be filtered for PS (as it is not a STA link). Even so, for correctness, don't indicate dummy packets up. The skb does not belong to mac80211 and as such does not contain a correct skb->cb. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: ignore sched scan match sets without SSIDLuciano Coelho2011-09-14
| | | | | | | | | | | | | | | | | | | | For now, cfg80211 only support match sets with SSIDs, but in the future more parameters will be added. This patch ignores eventual matches that do not contain SSIDs in preparation for the future. This change also affects the case where broadcast SSIDs are used. Matching a broadcast SSID will match everything, so they can be ignored. Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: increase number of allowed SSIDs in sched_scanLuciano Coelho2011-09-14
| | | | | | | | | | | | | | | | | | The latest firmware supports up to 16 SSIDs in the scheduled scan lists. Increase the number we report to cfg80211 and increase the min/max dwell time to 30 and 60 TUs respectively, because otherwise we don't have the time to send the probes for all SSIDs. Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: add support for sched_scan filtersLuciano Coelho2011-09-14
| | | | | | | | | | | | | | | | | | | | | | Implement support for filtering in scheduled scans. With this commit we now use the match sets passed by cfg80211 to filter on SSIDs. Due to the nature of the wl12xx firmware API, we don't allow SSIDs to be sent in the probe requests if they are not going to match any of the filters. Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: declare support for WIPHY_FLAG_AP_UAPSDEliad Peller2011-09-14
| | | | | | | | | | | | | | | | Declare support for uapsd when working as AP, and set psd_type and sp_len whan a station is being added. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: use kstrtoul_from_userEliad Peller2011-09-14
| | | | | | | | | | | | | | | | simplify code by calling kstrtoul_from_user() (instead of copy_from_user() + kstrtoul()) Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: remove deprecated CONFIG_WL12XX_HT flagLuciano Coelho2011-09-14
| | | | | | | | | | | | | | | | The driver now support HT properly, so we can always have HT enabled. Remove the WL12XX_HT configuration. Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: don't queue a new dummy packet if one is already pendingArik Nemtsov2011-09-14
| | | | | | | | | | | | | | | | | | | | | | | | | | The firmware only asks for one dummy packet at a time, but sometimes we are unable to provide it before a FW timer expires. When this happens, the FW will re-request the dummy packet. If a packet is still queued in the driver queues, do nothing in this case. This prevents spurious dummy packets from clogging up the VO AC. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: add config_hangover commandEliad Peller2011-09-14
| | | | | | | | | | | | | | | | | | Add wl12xx_acx_config_hangover() and respective conf values. This command configures how long the chip will stay awake after it was configured to enter psm. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: check for ROC on scan_completeEliad Peller2011-09-14
| | | | | | | | | | | | | | | | | | When scan completes, and we are not associated, we should start the dev role and ROC. however, we might already be in this situation (e.g. if we got disconnected during scan). check for it. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: don't use WL1271_SCAN_OPT_PRIORITY_HIGH flagEliad Peller2011-09-14
| | | | | | | | | | | | | | | | | | When setting the WL1271_SCAN_OPT_PRIORITY_HIGH flag, the driver requests a scan *now*, and the fw doesn't enter psm before scanning, which in turn might cause packets loss. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: don't disconnect on recoveryEliad Peller2011-09-14
| | | | | | | | | | | | | | | | allow full connection recovery by dropping the beacon_loss notification. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: add beacon_filtering debugfs fileEliad Peller2011-09-14
| | | | | | | | | | | | | | | | | | | | Allow enabling/disabling beacon_filtering by debugfs, in order to reduce the log size while debugging (beacon filtering is disabled by default in AP mode, as beacons are needed for ERP configuration). Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: add module_param to trigger BUG() on recoveryEliad Peller2011-09-14
| | | | | | | | | | | | | | | | | | Crashing on recovery is useful for debugging, as a JTAG can be connected in order to investigate the current fw state. (otherwise, a reconfiguration will occur) Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: print the seq_num of rx packetEliad Peller2011-09-14
| | | | | | | | | | | | | | | | Make it easier to match the driver log against a sniffer log. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: print acx idEliad Peller2011-09-14
| | | | | | | | | | | | | | Add id param to the acx debug print (on wl1271_cmd_configure) Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* | ath9k: do not insert padding into tx buffers on AR9380+Felix Fietkau2011-09-16
| | | | | | | | | | | | | | | | | | | | With the new EDMA descriptor format, a single descriptor can contain up to four buffer pointers. By splitting the buffer into two parts, we can let the hardware add the padding internally instead of using memmove on the skb data. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | ath9k: optimize ath_tx_rc_status usageFelix Fietkau2011-09-16
| | | | | | | | | | | | | | | | | | | | | | | | The only flag that needs to be set when ath_tx_rc_status is called with rc_update == false is the IEEE80211_TX_STAT_TX_FILTERED flag. All other data is ignored in that case. This flag can be set from ath_tx_complete_buf instead, so that we can drop a few redundant calls to ath_tx_rc_status and remove the rc_update function parameter Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | ath9k: remove a redundant check in ath_tx_form_aggrFelix Fietkau2011-09-16
| | | | | | | | | | | | | | ath_lookup_legacy now checks all the tx rate flags for MCS vs legacy Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | ath9k: optimize ath9k_ps_restoreFelix Fietkau2011-09-16
| | | | | | | | | | | | | | | | | | ath_hw_cycle_counters_update only needs to be called if the power state changes. Most of the time this does not happen, even when ps_usecount goes down to 0. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | ath9k_hw: remove the old tx descriptor APIFelix Fietkau2011-09-16
| | | | | | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | ath9k: use the new API for setting tx descriptorsFelix Fietkau2011-09-16
| | | | | | | | | | | | | | | | | | | | With the new API, tx descriptors can be written in one single pass instead of having to re-read and rewrite fields from multiple places. This makes the code easier to read and also slightly improves performance on embedded MIPS hardware. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | ath9k_hw: add a new API for setting tx descriptorsFelix Fietkau2011-09-16
| | | | | | | | | | | | | | | | | | | | Instead of using lots of different functions with long argument lists, pull all the necessary information from one struct. This makes the code easier to read and eliminates the need for copying data between multiple linked descriptors. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | ath9k_hw: do not recalculate the descriptor checksum in ar9003_hw_fill_txdescFelix Fietkau2011-09-16
| | | | | | | | | | | | | | Reduces the number of accesses to uncached descriptor memory. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | ath9k: call ath9k_hw_set_desc_link for beacon descriptorsFelix Fietkau2011-09-16
| | | | | | | | | | | | | | | | This ensures that only ath9k_hw_set_desc_link needs to recalculate the tx descriptor checksum on AR9380+ Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | ath9k: move ath_buf_set_rate to remove a forward declarationFelix Fietkau2011-09-16
| | | | | | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | ath9k: reduce the number of functions that access the tx descriptorFelix Fietkau2011-09-16
| | | | | | | | | | | | | | Makes it easier to clean up the ath9k_hw descriptor API Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | ath9k: remove ATH_TX_XRETRY and BUF_XRETRY flagsFelix Fietkau2011-09-16
| | | | | | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | ath9k: ensure that rx is not enabled during a resetFelix Fietkau2011-09-16
| | | | | | | | | | | | | | | | | | During a reset, rx buffers are flushed after rx has been disabled. To avoid race conditions, rx needs to stay disabled during the reset, so avoid any calls to ath9k_hw_rxena in that case. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | ath9k: make beacon timer initialization more reliableFelix Fietkau2011-09-16
| | | | | | | | | | | | | | | | | | When starting the AP beacon timer, it assumes that the TSF has recently been cleared. Set the SC_OP_TSF_RESET flag to ensure that this is always the case. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | ath9k: fix enabling interrupts after a hardware error interruptFelix Fietkau2011-09-16
| | | | | | | | | | | | | | | | The interrupt handler increases the interrupt disable refcount, so the tasklet needs to always call ath9k_hw_enable_interrupts. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | ath9k: Fix PS wrappers and enabling LEDMohammed Shafi Shajakhan2011-09-16
| | | | | | | | | | | | | | | | in ath_pci_resume it seems we are not enabling LED properly, in addition we have a PS wrapper fix for this Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | ath9k: enable LED pin for AR946/8x chipsetsMohammed Shafi Shajakhan2011-09-16
| | | | | | | | | | | | | | | | now the LED starts working for AR946/8x chipsets Cc: "Balasubramanian, senthilkumar" <senthilb@qca.qualcomm.com> Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | ath9k_hw: Do full chip reset on 11A channels for AR9003Rajkumar Manoharan2011-09-16
| | | | | | | | | | | | | | | | | | | | AR9003 seems to have issues sometimes with fast channel change in 5GHz and this case is handled specifically for AR9280 by doing a full reset. Let's do a full reset for 5GHz channles of AR9380 & for all channels of AR9280 pci chips. Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | ath9k_hw: move register definitions to header filesSenthil Balasubramanian2011-09-16
| | | | | | | | | | | | | | | | | | Move the register macros to appropriate header files to be in sync with other register definitions and also a single place to refer everything. Signed-off-by: Senthil Balasubramanian <senthilb@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | ath9k_hw: Add support for AR946/8x chipsets.Senthil Balasubramanian2011-09-16
| | | | | | | | | | | | | | This patch adds support for AR946/8x chipets. Signed-off-by: Senthil Balasubramanian <senthilb@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | ath9k_hw: Split tx/rx gain table initval handlingSenthil Balasubramanian2011-09-16
| | | | | | | | | | | | | | | | Split tx/rx gain table initval hanlding part so readability is better and easy to manage the code. Signed-off-by: Senthil Balasubramanian <senthilb@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | ath9k_hw: Add initvals and register definitions for AR946/8x chipsets.Senthil Balasubramanian2011-09-16
| | | | | | | | | | | | | | Add initvals and register modifications required to support AR946/8x chipsets. Signed-off-by: Senthil Balasubramanian <senthilb@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>