aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx
Commit message (Collapse)AuthorAge
...
* | 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>
* | Merge branch 'wl12xx-next' into for-linvilleLuciano Coelho2011-09-14
|\ \
| * | wl12xx: use SCAN_SSID_TYPE_PUBLIC when using the wildcard in sched_scanLuciano Coelho2011-08-25
| | | | | | | | | | | | | | | | | | | | | | | | When we are scanning for the wildcard SSID in a scheduled scan, we should use SCAN_SSID_TYPE_PUBLIC so that we don't filter out the scan results. Signed-off-by: Luciano Coelho <coelho@ti.com>
| * | wl12xx: add support for multiple SSIDs in sched_scanLuciano Coelho2011-08-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The wl12xx firmwares support multiple SSIDs in a single sched_scan run. This patch implements support for it. We use three different types os sched_scan: FILTER_ANY (ie. not filtering, only wildcard SSID in the probe_reqs); FILTER_LIST (ie. send out probe_reqs with the specified SSIDs and only report if they are found); and FILTER_DISABLED (ie. send out probe_reqs with the specified SSIDs, but report anything found). Since we still don't have proper filter support in nl80211/cfg80211 yet, we cannot use filters when the wildcard SSID is used. Thus, we will not filter anything if the wildcard SSID is specified. Signed-off-by: Luciano Coelho <coelho@ti.com>
| * | wl12xx: enter psm only after station role was startedEliad Peller2011-08-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The station didn't get into psm after recovery, because psm was configured before sta role was started. Move wl1271_ps_set_mode() to be executed only after the role was started. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * | wl12xx: increase psm_entry_retriesEliad Peller2011-08-25
| | | | | | | | | | | | | | | | | | | | | | | | In congested env, sometimes 5 psm entry retries are not enough. Increase the retries count to 8. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * | wl12xx: initialize rate_set on band rates initializationEliad Peller2011-08-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In some corner cases, (invalid) 11g rates were used while working on 11a band. Take care of it by initializing rate_set according to the configured band. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * | wl12xx: allow 11a AP-mode for wl127x devicesArik Nemtsov2011-08-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There was a check preventing 127x devices from using the 11a band when operating as AP. Since we now support this functionality, remove the check. With this patch, a 11a AP starts ok on 127x cards. 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: use 2 spare TX blocks for GEM cipherGuy Eilam2011-08-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add tx_spare_blocks member to the wl1271 struct for more generic configuration of the amount of spare TX blocks that should be used. The default value is 1. In case GEM cipher is used by the STA, we need 2 spare TX blocks instead of just 1. Signed-off-by: Guy Eilam <guy@wizery.com> Acked-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* | | wl12xx/sdio_test.c: fix build breakage from WL127X_FW_NAME changeJohn W. Linville2011-08-29
|/ / | | | | | | | | | | | | | | Commit c302b2c959164622558474871ae942da0e484a38 ("wl12xx: Use a single fw for both STA and AP roles") changed the name of the firmware name definition, breaking the build of wl12xx/sdio_test.c. Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | wl12xx: fix tx_queue_count spurious incrementArik Nemtsov2011-08-22
| | | | | | | | | | | | | | | | | | | | | | | | | | Only increment the queue count after actually queuing the skb. This avoids a spurious increment is case of dropped packets. Also move the Tx-watermark checking code after the packet is enqueued. This makes the count more accurate - it includes the just-queued packet. 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: AP-mode - prevent Tx to stale/invalid stationsArik Nemtsov2011-08-22
| | | | | | | | | | | | | | | | | | Don't pollute the queues with Tx directed to invalid stations. This can happen during recovery. 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: set the AP-started flag only after setting keysArik Nemtsov2011-08-22
| | | | | | | | | | | | | | | | | | This fix eliminates a potential race between starting the AP role and setting encryption keys. 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: enable AP advanced functionalityArik Nemtsov2011-08-22
| | | | | | | | | | | | | | | | | | | | | | This adjusts FW TX block allocation for connected stations in PS. Firmware congestion is measured in allocated packets instead of blocks. Allow a link in PS to queue up to 2 packets to the FW. 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: don't wait for disconnection eventEliad Peller2011-08-22
| | | | | | | | | | | | | | | | Sometimes the fw doesn't send the DISCONNECT_EVENT_COMPLETE_ID on station role stop, so don't wait for it. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* | wl12xx: handle wrap-around overflow in released Tx blocks FW counterArik Nemtsov2011-08-22
| | | | | | | | | | | | | | | | | | | | When the FW Tx released blocks counter wraps around, we should correct our calculation of released blocks. Otherwise we add a large negative figure to our driver freed blocks counter 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: schedule TX packets according to FW packet occupancyArik Nemtsov2011-08-22
| | | | | | | | | | | | | | | | | | | | | | | | | | When selecting packets for transmission, prefer the ACs that are least occupied in the FW. When packets for multiple ACs are present in the FW, it decides which to transmit according to WMM QoS parameters. With these changes, lower priority ACs should not be starved when higher priority traffic is present. 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: track freed packets in FW by ACArik Nemtsov2011-08-22
| | | | | | | | | | | | | | | | | | Track the number of freed packets in each AC when receiving an interrupt from the FW. This paves the way for tracking allocated packets per 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: don't remove key if hlid was already deletedEliad Peller2011-08-22
| | | | | | | | | | | | | | | | When wep key was removed after disconnection, sta_hlid was invalid, and it resulted in a fw crash. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* | wl12xx: use ap_bcast_hlid for recorded keysEliad Peller2011-08-22
| | | | | | | | | | | | | | | | | | when the key was recorded, wl->ap_bcast_hlid was invalid (since the role wasn't started), so when configuring the key we need to use the current ap_bcast_hlid. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* | wl12xx: AP-mode - configure HT rate support to the FWArik Nemtsov2011-08-22
| | | | | | | | | | | | | | | | | | | | | | | | | | Unconditionally configure HT rate support to the FW on all ACs when starting the AP. When 11n support is disabled by usermode (hostapd), each STA joining the AP will appear as a non-HT STA. This will stop us from accidentally transmitting using MCS rates. 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: AP-mode - configure STA HT rates on joinArik Nemtsov2011-08-22
| | | | | | | | | | | | | | | | | | When a new STA joins the BSS, configure the HT rates it supports to the FW. 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: AP-mode - set STA HT capabilities when adding a STAArik Nemtsov2011-08-22
| | | | | | | | | | | | | | | | | | In addition, set global HT operation mode via ACX_HT_BSS_OPERATION when a change is detected by usermode 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: support IBSS vif typeEliad Peller2011-08-22
| | | | | | | | | | | | | | | | | | Start IBSS role when the interface type is IBSS. As with sta role, use the dev role until the role is started. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* | wl12xx: add wl12xx_cmd_role_start_ibss()Eliad Peller2011-08-22
| | | | | | | | | | | | | | | | | | | | | | Add wl12xx_cmd_role_start_ibss() implementation and defintion. This function is used in order to start the IBSS role. Stopping the IBSS is done by using the same api as stop STA, so there is no need for a separate function. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* | wl12xx: don't remove key if hlid was already deletedEliad Peller2011-08-22
| | | | | | | | | | | | | | | | If hlid was already removed, there is no need to remove its key (it might cause a fw crash, as the key is invalid). Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* | wl12xx: call wl12xx_cmd_set_peer_state() in AP modeEliad Peller2011-08-22
| | | | | | | | | | | | | | | | | | | | | | After adding a station, call wl12xx_cmd_set_peer_state(). This is required for 11n support. Change wl12xx_cmd_set_peer_state() prototype to get hlid as param. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* | wl12xx: re-enable block ack session supportArik Nemtsov2011-08-22
| | | | | | | | | | | | | | | | | | | | | | Incorporate interface changes for HT support. Add ba_bitmap field to the wl1271_link struct, to indicate activate RX BA sessions (for AP mode). 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: use dynamic hlids for AP-modeArik Nemtsov2011-08-22
| | | | | | | | | | | | | | | | | | | | | | Using hlid=0 in AP mode is a bug. Dynamically allocate HLIDs. Set the "first sta hlid" as 3. This will have to be changed when multiple vifs will be supported. 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: fix session counterArik Nemtsov2011-08-22
| | | | | | | | | | | | | | | | | | Increment the session counter on every wl12xx_cmd_role_start_sta() command. 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: update BT coex configuration paramsEliad Peller2011-08-22
| | | | | | | | | | | | | | | | The BT coex params api have been changed. Update it, and init coex for both sta and ap. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* | wl12xx: replace dummy_join with ROC/CROC commandsEliad Peller2011-08-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ROC command asks the fw stay on the channel of the given hlid. it currently has 2 primary functions: 1. Allow tx/rx from the device role. In order to tx/rx packets while the stations is not associated (e.g. auth req/resp), the device role has to be used, along with ROC on its link. Keep the logic similiar to the one used in dummy_join. However, since we can't scan while we ROC, we add CROC before starting a scan, and ROC again (if needed) on scan complete. 2. Keeping the antenna for a specific link. We ROC until the connection was completed (after EAPOLs exchange) in order to prevent BT coex operations from taking the antenna and failing the connection (after this stage, psm can be used). During association, we ROC on the station role, and then CROC the device role, thus assuring being ROC during all the connection process. Delete the WL1271_FLAG_JOINED flag, and use a roc bitmap to indicate what roles are currently ROCed. Add wl12xx_roc/croc functions in order to wrap the roc/croc commands while taking care of the roc bitmap. The current ROC/CROC state-machine is a bit complicated. In the future we'll probably want to use wpa_supplicant to control the ROC during connection. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* | wl12xx: handle dummy packet event also in ap modeArik Nemtsov2011-08-22
| | | | | | | | | | | | | | | | Allow handling of DUMMY_PACKET_EVENT_ID also in ap mode. 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 ROC/CROC commandsEliad Peller2011-08-22
| | | | | | | | | | | | | | Add structs and functions to support the ROC/CROC commands. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* | wl12xx: add system_hlidEliad Peller2011-08-22
| | | | | | | | | | | | | | | | | | | | system_hlid is a const hlid (always 0), used by the fw and driver for packets which are not bound to specific role (e.g. dynamic memory packets). indicate it as always allocated. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>