- 08 2月, 2013 6 次提交
-
-
由 Luciano Coelho 提交于
The platform data is used not only by wlcore-based drivers, but also by wl1251. Move it up in the directory hierarchy to reflect this. Additionally, make it truly optional. At the moment, disabling platform data while wl1251_sdio or wlcore_sdio are enabled doesn't work, but it will be necessary when device tree support is implemented. Signed-off-by: NLuciano Coelho <coelho@ti.com> Reviewed-by: NFelipe Balbi <balbi@ti.com>
-
由 Luciano Coelho 提交于
The platform devices can be created by both wlcore_sdio and wlcore_spi. Theoretically, if both are connected to the same board, there will be a conflict. Reported-by: NFelipe Balbi <balbi@ti.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Luciano Coelho 提交于
Just a small cleanup to use the pointer provided by wlcore_pdev_data instead of using a separate pointer then copying. Reviewed-by: NFelipe Balbi <balbi@ti.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Luciano Coelho 提交于
We can't pass pointers from the platform data to the modules, because with DT it cannot be done. Those pointers are not set by the board files anyway. It's the bus modules that set them, so they can be safely removed from the platform data without changing any board files. Create a new structure that the bus modules pass to wlcore. This structure contains the if_ops pointers and a pointer to the actual platform data. Signed-off-by: NLuciano Coelho <coelho@ti.com> Reviewed-by: NFelipe Balbi <balbi@ti.com>
-
由 Luciano Coelho 提交于
There is no platform-specific set_power method anymore. Power setting is done in the bus modules (wlcore_sdio and wlcore_spi). Signed-off-by: NLuciano Coelho <coelho@ti.com> Reviewed-by: NFelipe Balbi <balbi@ti.com>
-
由 Luciano Coelho 提交于
The PLT firmware used by wl12xx for calibration always has the same version number as the single-role firmware. Currntly the driver rejects the PLT firmware since anything that is not single-role uses the multi-role version. Fix this by using the single-role version for everything except multi-role. Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
- 19 1月, 2013 1 次提交
-
-
由 Johannes Berg 提交于
Depending on the driver, having ARP filtering for some addresses may be possible. Remove the logic that tracks whether ARP filter is enabled or not and give the driver the total number of addresses instead of the length of the list so it can make its own decision. Reviewed-by: NLuciano Coelho <coelho@ti.com> Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
- 14 1月, 2013 1 次提交
-
-
由 Luis R. Rodriguez 提交于
The reg_notifier()'s return value need not be checked as it is only supposed to do post regulatory work and that should never fail. Any behaviour to regulatory that needs to be considered before cfg80211 does work to a driver should be specified by using the already existing flags, the reg_notifier() just does post processing should it find it needs to. Also make lbs_reg_notifier static. Signed-off-by: NLuis R. Rodriguez <mcgrof@do-not-panic.com> [move lbs_reg_notifier to not break compile] Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
- 03 1月, 2013 1 次提交
-
-
由 Johannes Berg 提交于
When TX aggregation is stopped, there are a few different cases: - connection with the peer was dropped - session stop was requested locally - session stop was requested by the peer - connection was dropped while a session is stopping The behaviour in these cases should be different, if the connection is dropped then the driver should drop all frames, otherwise the frames may continue to be transmitted, aggregated in the case of a locally requested session stop or unaggregated in the case of the peer requesting session stop. Split these different cases so that the driver can act accordingly; however, treat local and remote stop the same way and ask the driver to not send frames as aggregated packets any more. In the case of connection drop, the stop callback the driver is otherwise supposed to call is no longer required. Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
- 11 12月, 2012 11 次提交
-
-
由 Ido Yariv 提交于
Some of the mmc drivers initiate DMA transfers with buffers passed from higher layers. This means that the driver shouldn't ever pass non DMA-able buffers, such as ones that are unaligned, allocated on the stack or static. Fix a couple of calls to the mmc layer in which buffers which weren't necessarily DMA-able were passed. [Use sizeof(*wl->buffer_32) instead of sizeof(u32) -- Luca] Signed-off-by: NIdo Yariv <ido@wizery.com> Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Eyal Shapira 提交于
FW API changed and now PERIODIC_SCAN_REPORT_EVENT is sent in case results were found at the end of each sched scan cycle. Previous FW was missing that and broke sched scan. This API change is available from 18xx FW 8.5.0.0.27 [Arik - move changes to 18xx specific files, align FW structures to latest for scan command] Signed-off-by: NEyal Shapira <eyal@wizery.com> Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Arik Nemtsov 提交于
Remove the STA specific ba_rx_bitmap field and use the common links structure. This simplifies code setting/checking the BA bitmap. Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Arik Nemtsov 提交于
Protect all functions touching queue_stop_reasons by spin-lock, since they are accessed by op_tx. Now there's no need to take the mutex before caling wlcore_queue_xxx functions. Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Arik Nemtsov 提交于
Start using the new hw_queue mechanism in mac80211 and give each AC in each vif its own hw_queue number. This allows us to stop an AC in a vif independently from other vifs. Change the Tx watermark handling functions to count packets per AC in vif. From now on fast links should not be able to hurt the throughput of slow links on the same AC but on different vifs. Change internal queue mgmt functions to operate per vif, to support the new Tx watermark granularity. Make the global versions of the queue stop/start functions to use the global mac80211 API for queue mgmt. This helps in situations where the driver currently doesn't know all the vifs that reside in mac80211. Recovery is a good example for such a case. [Moved hw_base_queue addition into the wlcore_tx_get_mac80211_queue() function; changed WARN_ONs to WARN_ON_ONCEs; simplified for loops; fixed new checkpatch warnings. -- Luca] Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Arik Nemtsov 提交于
Only allow a PSM STA to congest FW memory when it is the single active link. Being a single STA doesn't imply a single link - there might be other links on other roles. [Changed WARN_ON to WARN_ON_ONCE -- Luca] Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Arik Nemtsov 提交于
Update the 18xx FW status private part to include Tx related link priorities. Introduce new HW ops to determine link priority per chip family. For 18xx the changes are: - Suspended links are at most low priority and Tx for them is stopped beyond the suspend threshold. - Active links now get their thresholds directly from FW - There's a new "stop" threshold for active links, at which point a link stops receiving new packets. Update the min 18xx FW version required to make sure suspended links bitmap is advertised by the FW. Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Arik Nemtsov 提交于
Treat Rx error code as a bitmask. This allows sending MIC failures when other error bit are on. Align Rx descriptor status mask to the FW definition. Ease debugging in case FW reports failure to decrypt on packets. Discard corrupted packets early in Rx path to avoid reporting other abnormalities with corrupted packets that also have other failure bytes on. Namely - we don't want to get a MIC failure on a corrupted packet. This is mandated by the WiFi specification - see section 11.4.2.4.1 in 802.11-2012. Signed-off-by: NEyal Shapira <eyal@wizery.com> Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Eyal Shapira 提交于
There's a limit on scan dwell times of max 30ms in order to avoid degrading voip traffic which could be going on while scanning. However these dwell times increase the chance of missing out on nearby APs leading to partial scan results. Allow configuration of longer dwell times in case there no active interface (i.e. no STA associated or AP up). [Arik - count started vifs using an in-driver function] [Fixed some new checkpatch warnings regarding comments in the networking subsystem. -- Luca] Signed-off-by: NEyal Shapira <eyal@wizery.com> Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Arik Nemtsov 提交于
Require each incoming packet to have a valid vif. The injected Tx code path was buggy (and unused), so disallow it altogether. Cleanup a few places and add a warning so we can better discover anomalies (corrupted skbs?) masquerading as injected Tx. Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Eliad Peller 提交于
ACX_PEER_CAP command is just ACX_PEER_HT_CAP, but allows configuring the peer's support rates as well. this is needed because we start the station role when the remote rates are not known yet. the two commands should be unified in future fw versions, but for now add a new set_peer_cap per-hw op, that will use ACX_PEER_CAP for 18xx, and ACX_PEER_HT_CAP for 12xx. Signed-off-by: NEliad Peller <eliad@wizery.com> Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
- 07 12月, 2012 1 次提交
-
-
由 Bill Pemberton 提交于
CONFIG_HOTPLUG is going away as an option. As result the __dev* markings will be going away. Remove use of __devinit, __devexit_p, __devinitdata, __devinitconst, and __devexit. Signed-off-by: NBill Pemberton <wfp5p@virginia.edu> Cc: Luciano Coelho <coelho@ti.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
- 05 12月, 2012 10 次提交
-
-
由 Arik Nemtsov 提交于
Obtain the last Tx rate from the FW status and translate it to the mac80211 rate+flag format before sending it up via the Tx status. Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Arik Nemtsov 提交于
Prioritize EDCA by choosing the AC before anything else. Use the fast/slow link bitmap in FW to improve the scheduling algorithm for the multi-link scenario. Set packet thresholds to determine if a given link is high or low priority according to its speed. A slow link will be given high priority if the amount of packets queued for it in the FW is lower than the slow-threshold. Similarly, a fast link will be given high priority if the number of its packets queued in FW is smaller than the high-threshold. The improved algorithm: 1. Choose optimal AC according to FW utilization 2. Traversing the VIFs in a round-robin fashion, try to choose a high priority link. Links are traversed in a round-robin fashion inside a VIF. 3. If no high priority links are found, choose the first non-empty (low priority) link found in the round robin. Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Arik Nemtsov 提交于
Move FW-allocation tracking code to the fw_status function and track allocations made by all links. These will be incorporated in the improved Tx scheduling algorithm. Manually zero the system link counters on op_stop, as this link is not allocated the normal way. Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Arik Nemtsov 提交于
This accounting will help find a vif that has data in a specific AC. Otherwise we have to traverse all the links, which can be lengthy for the AP case. Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Arik Nemtsov 提交于
This allows us to pass only the link as a parameter to various functions and deduce the wlvif. Note that this member will be NULL for global links. Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Arik Nemtsov 提交于
When a link is allocated, sometimes the "freed packets" counter in FW is non zero, but we always assumed it is. This caused us to incorrectly account FW allocated blocks in some cases. When operating in AP mode, this bug caused some stations to never come back from PSM. Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Victor Goldenshtein 提交于
wlcore allocates two static structs wl1271_band_2ghz & wl1271_band_5ghz which are used/modified by Reg-Domain e.g. some channel might be marked as passive at some point. Make sure we don't keep stale settings around if the HW is unregistered/registered during operation. [Arik - use Tx-power constant and tweak commit message] Signed-off-by: NVictor Goldenshtein <victorg@ti.com> Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Arik Nemtsov 提交于
Make sure free_link is always called when removing an interface. This ensures all skbs belonging to this interface are returned to mac80211. Otherwise these dangling skbs might crash the system on the next call to wl1271_tx_reset_link_queues(). This happens on recovery/stop or an unsuccessful Tx flush. Signed-off-by: NIdo Yariv <ido@wizery.com> Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Arik Nemtsov 提交于
Otherwise we risk contention for private members of our global structure while op_stop_locked is running. Reported-by: NIdo Yariv <ido@wizery.com> Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Victor Goldenshtein 提交于
Sometimes the driver can perform a recovery while Tx is active, this will trigger unnecessary warning which might delay the recovery for more than 100 mS. Signed-off-by: NVictor Goldenshtein <victorg@ti.com> Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
- 04 12月, 2012 9 次提交
-
-
由 Arik Nemtsov 提交于
When removing an interface currently performing a ROC operation, clear the current ROC state. This is useful especially during recovery and keeps mac80211 in sync to our state. Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Eliad Peller 提交于
all the current firmwares support elp, so we can safely remove WLCORE_QUIRK_NO_ELP. Signed-off-by: NEliad Peller <eliad@wizery.com> Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Eliad Peller 提交于
Under some circumstances, that fw might be asked to remove a rx ba sessions it doesn't know about. In this case, instead of triggering a recovery, accept the error code (CMD_STATUS_NO_RX_BA_SESSION) and ignore it. [Arik - indicate failure up when the BA session cannot be setup] Signed-off-by: NEliad Peller <eliad@wizery.com> Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Eliad Peller 提交于
Currently, each fw command/acx that return a status code different than CMD_STATUS_SUCCESS will trigger a recovery in the driver. However, it is a valid for some fw commands to fail (e.g. due to temporary lack of resources), so add new functions that allow passing bitmap of valid error return values. (make the current wl1271_cmd_send/wl1271_cmd_configure wrappers around the new functions, in order to avoid changing the whole driver) Signed-off-by: NEliad Peller <eliad@wizery.com> Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Arik Nemtsov 提交于
The 12xx FW doesn't support non-zero session ids for AP-mode. Introduce an appropriate quirk to make sure the session id is always zero when needed. Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Luciano Coelho 提交于
Previously we were only checking the single-role firmware version. Now add code to check for the firmware versions separately for each firmware type. Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Luciano Coelho 提交于
The firmwares version string contain 5 integers. We used to consider all the digits (except for the first one, which indicates the chip) as linearly increasing version numbers. This is not correct, because some of the integers indicate type of firmware (eg. single-role vs. multi-role) or the internal project it was created for. Besides, this varies a bit from chip to chip, so we need to make the firmware version checks more flexible (eg. allow the lower driver to ignore some of the integers). Additionally, we need to change the code so that we only check for a linearly increasing number on the fields where this actually makes sense. Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Luciano Coelho 提交于
We don't distinguish between STA and AP firmwares anymore, so the firmware version checking and quirks setting in wl12xx isn't needed anymore. Remove implementation of .identify_fw in wl12xx and deprecated definitions. Don't remove the op entirely from wlcore, because it may be needed for more fine-grained checking later. Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Luciano Coelho 提交于
Move wl12xx-specific chip ID macros to the wl12xx driver and rename them to 127X and 128X for clarity since both the "1" (2.4GHz) and the "3" (2.4GHz and 5GHz) variants use the same chip ID. Signed-off-by: NLuciano Coelho <coelho@ti.com>
-