- 19 4月, 2011 6 次提交
-
-
由 Luciano Coelho 提交于
The firmware requires dummy packets to be sent using TID 7 (WL1271_TID_MGMT). Instead of hardcoding it in the tx_fill_hdr() function, set it when creating the packet itself. This requires Eliad's fix to set the actual TID in the TX descriptor. Cc: Ido Yariv <ido@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Eliad Peller 提交于
When passing a tx frame, the driver incorrectly set desc->tid with the ac instead of the actual tid. It has some serious implications when using 802.11n + QoS, as the fw starts a BlockAck with the wrong tid (which finally cause beacon loss and disconnection / some fw crash) Fix it by using the actual tid stored in skb->priority. Reported-by: NShahar Levi <shahar_levi@ti.com> Signed-off-by: NEliad Peller <eliad@wizery.com> Reviewed-by: NJuuso Oikarinen <juuso.oikarinen@nokia.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Luciano Coelho 提交于
All the new firmware versions (>=6.1.3.50.58 for STA and >=6.2.0.0.47 for AP) use 1 spare TX block. We still want to support older firmwares that require 2 spare blocks, so added a quirk to handle the difference. Also implemented a generic way of setting quirks that depend on the firmware revision. Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Shahar Levi 提交于
Support sending dummy packet to wl128x FW as results of dummy packet event. That is part of dynamic TX mem blocks mechanism. Only send dummy packet when not in AP mode. [Even though the DUMMY_PACKET_EVENT_ID and the STA_REMOVE_COMPLETE_EVENT_ID events are defined to the same value, we need to treat them separately in the code. Keep the check and enable STA_REMOVE_COMPLETE_EVENT_ID for AP mode and DUMMY_PACKET_EVENT_ID for STA. Moved one warning to a cleaner place. Use WL1271_TID_MGMT for dummy packets -- Luca] Signed-off-by: NShahar Levi <shahar_levi@ti.com> Reviewed-by: NLuciano Coelho <coelho@ti.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Shahar Levi 提交于
Reduced bus transactions in the Tx & Rx path. [Removed unnecessary check wl->chip.id != CHIP_ID_1283_PG20 when checking the quirk -- Luca] Signed-off-by: NShahar Levi <shahar_levi@ti.com> Reviewed-by: NLuciano Coelho <coelho@ti.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Shahar Levi 提交于
New acx command that sets: Rx fifo enable reduced bus transactions in RX path. Tx bus transactions padding to SDIO block size that improve preference in Tx and essential for working with SDIO HS (48Mhz). The max SDIO block size is 256 when working with Tx bus transactions padding to SDIO block. Add new ops to SDIO & SPI that handles the win size change in case of transactions padding (relevant only for SDIO). [Fix endianess issues; simplify sdio-specific block_size handling; minor changes in comments; use "aligned_len" in one calculation instead of "pad" to avoid confusion -- Luca] Signed-off-by: NShahar Levi <shahar_levi@ti.com> Reviewed-by: NLuciano Coelho <coelho@ti.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
- 03 3月, 2011 3 次提交
-
-
由 Ido Yariv 提交于
To achieve maximal throughput, it is very important to react to interrupts as soon as possible. Currently the interrupt handler wakes up a worker for handling interrupts in process context. A cleaner and more efficient design would be to request a threaded interrupt handler. This handler's priority is very high, and can do blocking operations such as SDIO/SPI transactions. Some work can be deferred, mostly calls to mac80211 APIs (ieee80211_rx_ni and ieee80211_tx_status). By deferring such work to a different worker, we can keep the irq handler thread more I/O responsive. In addition, on multi-core systems the two threads can be scheduled on different cores, which will improve overall performance. The use of WL1271_FLAG_IRQ_PENDING & WL1271_FLAG_IRQ_RUNNING was changed. For simplicity, always query the FW for more pending interrupts. Since there are relatively long bursts of interrupts, the extra FW status read overhead is negligible. In addition, this enables registering the IRQ handler with the ONESHOT option. Signed-off-by: NIdo Yariv <ido@wizery.com> Reviewed-by: NLuciano Coelho <coelho@ti.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Ido Yariv 提交于
On newer hardware revisions, there is no need to write the host's counter at the end of a RX transaction. The same applies to writing the number of packets at the end of a TX transaction. It is generally a good idea to avoid unnecessary SDIO/SPI transfers. Throughput and CPU usage are improved when avoiding these. Send the host's RX counter and the TX packet count only if needed, based on the hardware revision. [Changed WL12XX_QUIRK_END_OF_TRANSACTION to use BIT(0) -- Luca] Signed-off-by: NIdo Yariv <ido@wizery.com> Signed-off-by: NOhad Ben-Cohen <ohad@wizery.com> Reviewed-by: NLuciano Coelho <coelho@ti.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Ido Yariv 提交于
Frames in the tx_frames array include extra private headers, which must be removed before passing the skbs to ieee80211_tx_status. Fix this by removing any private headers in wl1271_tx_reset, similar to how this is done in wl1271_tx_complete_packet. Signed-off-by: NIdo Yariv <ido@wizery.com> Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
- 23 2月, 2011 6 次提交
-
-
由 Arik Nemtsov 提交于
Update the PS mode of each link according to a bitmap polled from fw_status. Manually notify mac80211 about PS mode changes in connected stations. mac80211 will only be notified about PS start when the station is in PS and there is a small number of TX blocks from this link ready in HW. This is required for waking up the remote station since the TIM is updated entirely by FW. When a station enters mac80211-PS-mode, we drop all the skbs in the low-level TX queues belonging to this sta with STAT_TX_FILTERED to keep our queues clean. Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Arik Nemtsov 提交于
Count the number of FW TX blocks allocated per link. We add blocks to a link counter when allocated for a TX descriptor. We remove blocks according to counters in fw_status indicating the number of freed blocks in FW. These counters are polled after each IRQ. Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Arik Nemtsov 提交于
Report a TX rate idx of -1 and count 0 when returning untransmitted skbs to mac80211 using ieee80211_tx_status(). Otherwise mac80211 tries to use the returned (essentially garbage) status. Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Arik Nemtsov 提交于
When operating in AP-mode we require a per link tx-queue. This allows us to implement HW assisted PS mode for links, as well as regulate per-link FW TX blocks consumption. Split each link into ACs to support future QoS for AP-mode. AC queues are emptied in priority and per-link queues are scheduled in a simple round-robin fashion. Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Arik Nemtsov 提交于
If a sta starts transmitting immediately after authentication, sometimes the FW deauthenticates it. Fix this by marking the sta "in-connection" in FW before sending the autentication response. The "in-connection" entry is automatically removed when connection succeeds or after a timeout. Signed-off-by: NArik Nemtsov <arik@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Eliad Peller 提交于
Use the standard ALIGN() macro instead of redefining similar macros. Signed-off-by: NEliad Peller <eliad@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
- 09 2月, 2011 1 次提交
-
-
由 Eliad Peller 提交于
Instead of looking for supported_rates change on every tx packet, just extract the supported_rates after association completes (station only). Remove wl1271.sta_rate_set and WL1271_FLAG_STA_RATES_CHANGED which are not used anymore. Signed-off-by: NEliad Peller <eliad@wizery.com> Reviewed-by: NJuuso Oikarinen <juuso.oikarinen@nokia.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
- 25 1月, 2011 6 次提交
-
-
由 Eliad Peller 提交于
pointed out by sparse warnings: CHECK drivers/net/wireless/wl12xx/cmd.c drivers/net/wireless/wl12xx/cmd.c:987:20: warning: incorrect type in assignment (different base types) drivers/net/wireless/wl12xx/cmd.c:987:20: expected restricted __le16 [usertype] aging_period drivers/net/wireless/wl12xx/cmd.c:987:20: got int CHECK drivers/net/wireless/wl12xx/tx.c drivers/net/wireless/wl12xx/tx.c:197:2: warning: cast from restricted __le16 drivers/net/wireless/wl12xx/tx.c:197:2: warning: cast from restricted __le16 drivers/net/wireless/wl12xx/tx.c:197:2: warning: cast from restricted __le16 CHECK drivers/net/wireless/wl12xx/acx.c drivers/net/wireless/wl12xx/acx.c:816:23: warning: incorrect type in assignment (different base types) drivers/net/wireless/wl12xx/acx.c:816:23: expected restricted __le32 [usertype] rate_policy_idx drivers/net/wireless/wl12xx/acx.c:816:23: got unsigned char [unsigned] [usertype] idx Signed-off-by: NEliad Peller <eliad@wizery.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Arik Nemtsov 提交于
Encryption key configuration is different for AP/STA modes. AP encryption keys are recorded when the BSS is not started. On BSS start they are propagated to the AP (in wl1271_ap_init_hwenc). Signed-off-by: NArik Nemtsov <arik@wizery.com> Reviewed-by: NLuciano Coelho <coelho@ti.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Arik Nemtsov 提交于
When in AP mode set appropriate HLID and rate policy for each skb. Respond to supported-rates related changes in op_tx only when acting as STA. Signed-off-by: NArik Nemtsov <arik@wizery.com> Reviewed-by: NLuciano Coelho <coelho@ti.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Arik Nemtsov 提交于
Split HW init sequence into AP/STA specific parts The AP specific init sequence includes configuration of templates, rate classes, power mode, etc. Also unmask AP specific events in the event mbox. Separate the differences between AP and STA init into mode specific functions called from wl1271_hw_init. The first is called after radio configuration and the second after memory configuration. Signed-off-by: NArik Nemtsov <arik@wizery.com> Reviewed-by: NLuciano Coelho <coelho@ti.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Arik Nemtsov 提交于
Add commands to start/stop BSS, add/remove STA and configure encryption keys. Split the encryption commands "set key" and "set default key" into AP and STA specific versions. Signed-off-by: NArik Nemtsov <arik@wizery.com> Reviewed-by: NLuciano Coelho <coelho@ti.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
由 Arik Nemtsov 提交于
Add AP max retries and rate policy configuration. Rename STA rate policy configuration function. Signed-off-by: NArik Nemtsov <arik@wizery.com> Reviewed-by: NLuciano Coelho <coelho@ti.com> Signed-off-by: NLuciano Coelho <coelho@ti.com>
-
- 15 12月, 2010 1 次提交
-
-
由 Juuso Oikarinen 提交于
With the current single-queue implementation traffic priorization is not working correctly - when using multiple BE streams and one, say VI stream, the VI stream will share bandwidth almost equally with the BE streams. To fix the issue, implement per AC queues, which are emptied in priority order to the firmware. To keep it relatively simple, maintain a global buffer count and global queue stop/wake instead of per-AC. With these changes, priorization appears to work just fine. Signed-off-by: NJuuso Oikarinen <juuso.oikarinen@nokia.com> Signed-off-by: NLuciano Coelho <luciano.coelho@nokia.com>
-
- 22 11月, 2010 1 次提交
-
-
由 Shahar Levi 提交于
All files name prefix removed due to the fact that wl12xx driver supports wl1271 and wl1273. Also the definition in Kconfig and header files changed respectively. Signed-off-by: NShahar Levi <shahar_levi@ti.com> Signed-off-by: NLuciano Coelho <luciano.coelho@nokia.com>
-
- 16 11月, 2010 7 次提交
-
-
由 Luciano Coelho 提交于
This bug was being triggered by a call to acx_rate_policies in tx_work without calling ps_elp_wakeup first. If we have full PSM enabled, this happens rather often, immediately after association. Reported-by: NTuomas Katila <ext-tuomas.2.katila@nokia.com> Signed-off-by: NLuciano Coelho <luciano.coelho@nokia.com> Tested-by: NTuomas Katila <ext-tuomas.2.katila@nokia.com>
-
由 Teemu Paasikivi 提交于
While scanning, it is possible that beacon and probe response frames are received on other band than configured to the driver. In rx status handling this has caused "Unsupported RX rate from HW" warnings. This patch changes the wl1271_rate_to_index function to take the band of the received frame as a parameter instead of using value configuret to wl->band. Signed-off-by: NTeemu Paasikivi <ext-teemu.3.paasikivi@nokia.com> Reviewed-by: NJuuso Oikarinen <juuso.oikarinen@nokia.com> Signed-off-by: NLuciano Coelho <luciano.coelho@nokia.com>
-
由 Shahar Levi 提交于
Add 11n ability in scan, connection and using MCS rates. The configuration is temporary due to the code incomplete and still in testing process. That plans to be remove in the future. Signed-off-by: NShahar Levi <shahar_levi@ti.com> Reviewed-by: NLuciano Coelho <luciano.coelho@nokia.com> Signed-off-by: NLuciano Coelho <luciano.coelho@nokia.com>
-
由 Ido Yariv 提交于
The number of entries in the TX queue is compared to the low watermark value each time TX completion interrupts are handled. However, the fact that a TX completion arrived does not necessarily mean there are any less skbs in the TX queue. In addition, a TX completion interrupt does not necessarily mean that there are any new available TX blocks. Thus, queuing TX work when the low watermark is reached might not be needed. Fix this by moving the low watermark handling to the TX work function, and avoid queuing TX work in this case. Signed-off-by: NIdo Yariv <ido@wizery.com> Reviewed-by: NJuuso Oikarinen <juuso.oikarinen@nokia.com> Signed-off-by: NLuciano Coelho <luciano.coelho@nokia.com>
-
由 Ido Yariv 提交于
On each TX descriptor allocation, a free entry is found by traversing the TX descriptors array. Improve this by holding a bitmap of all TX descriptors, and using efficient bit operations to search for free entries. Signed-off-by: NIdo Yariv <ido@wizery.com> Reviewed-by: NJuuso Oikarinen <juuso.oikarinen@nokia.com> Signed-off-by: NLuciano Coelho <luciano.coelho@nokia.com>
-
由 Ido Yariv 提交于
While wl1271_irq_work handles RX directly (by calling wl1271_rx), a different work is scheduled for transmitting packets. The IRQ work might handle more than one interrupt during a single call, including multiple TX completion interrupts. This might starve TX, since no packets are transmitted until all interrupts are handled. Fix this by calling the TX work function directly, instead of deferring it. Signed-off-by: NIdo Yariv <ido@wizery.com> Reviewed-by: NJuuso Oikarinen <juuso.oikarinen@nokia.com> Signed-off-by: NLuciano Coelho <luciano.coelho@nokia.com>
-
由 Ido Yariv 提交于
In case the aggregation buffer is too small to hold all available packets, the buffer is transferred to the FW and no more packets are aggregated. Although there may be enough available TX blocks, no additional packets will be handled by the current TX work. Fix this by flushing the aggregation buffer when it's full, and continue transferring packets as long as there are enough available TX blocks. Signed-off-by: NIdo Yariv <ido@wizery.com> Reviewed-by: NJuuso Oikarinen <juuso.oikarinen@nokia.com> Signed-off-by: NLuciano Coelho <luciano.coelho@nokia.com>
-
- 05 10月, 2010 1 次提交
-
-
由 Ido Yariv 提交于
Instead of sending one packet at a time to the firmware, try to send all available packets at once. This optimization decreases the number of transactions, which saves CPU cycles and increases network throughput. Signed-off-by: NIdo Yariv <ido@wizery.com> Tested-by: NJuuso Oikarinen <juuso.oikarinen@nokia.com> Signed-off-by: NLuciano Coelho <luciano.coelho@nokia.com>
-
- 28 9月, 2010 2 次提交
-
-
由 Juuso Oikarinen 提交于
Incorrect TID was configured for TX frames. This resulted in incorrect queues to be used for classes in transmission. Signed-off-by: NJuuso Oikarinen <juuso.oikarinen@nokia.com> Reviewed-by: NLuciano Coelho <luciano.coelho@nokia.com> Signed-off-by: NLuciano Coelho <luciano.coelho@nokia.com>
-
由 Juuso Oikarinen 提交于
Remove outdated FIXME's from the code. Signed-off-by: NJuuso Oikarinen <juuso.oikarinen@nokia.com> Reviewed-by: NLuciano Coelho <luciano.coelho@nokia.com> Signed-off-by: NLuciano Coelho <luciano.coelho@nokia.com>
-
- 17 8月, 2010 1 次提交
-
-
由 Johannes Berg 提交于
Currently, mac80211 translates the cfg80211 cipher suite selectors into ALG_* values. That isn't all too useful, and some drivers benefit from the distinction between WEP40 and WEP104 as well. Therefore, convert it all to use the cipher suite selectors. Signed-off-by: NJohannes Berg <johannes.berg@intel.com> Acked-by: NGertjan van Wingerde <gwingerde@gmail.com> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
- 03 6月, 2010 1 次提交
-
-
由 Juuso Oikarinen 提交于
The mac80211 changes to idle almost immediately after transmitting some frames, such as deauth etc. When going to idle, the wl1271 is disconnected, which causes TX frames already on buffers, but not yet transmitted, to be deleted. To make sure deauth frames reach the air, allow the TX buffers to flush before proceeding to idle. Signed-off-by: NJuuso Oikarinen <juuso.oikarinen@nokia.com> Reviewed-by: NTeemu Paasikivi <ext-teemu.3.paasikivi@nokia.com> Signed-off-by: NLuciano Coelho <luciano.coelho@nokia.com> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
- 07 4月, 2010 2 次提交
-
-
由 Juuso Oikarinen 提交于
This patch modifies tx-queue flushing to correspond with tx-path - i.e. also frames for which no ack was requested are forwarded to the mac80211 for disposal. Signed-off-by: NJuuso Oikarinen <juuso.oikarinen@nokia.com> Reviewed-by: NLuciano Coelho <luciano.coelho@nokia.com> Signed-off-by: NLuciano Coelho <luciano.coelho@nokia.com> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
由 Juuso Oikarinen 提交于
Currently the mac80211 is not telling a hardware rate controlled driver a rate to use for association frames etc. So to be safe, use the lowest rate of each band for communication. Signed-off-by: NJuuso Oikarinen <juuso.oikarinen@nokia.com> Reviewed-by: NTeemu Paasikivi <ext-teemu.3.paasikivi@nokia.com> Signed-off-by: NLuciano Coelho <luciano.coelho@nokia.com> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
- 01 4月, 2010 2 次提交
-
-
由 Juuso Oikarinen 提交于
The driver tx-queue flush operation leaks broadcast-frames. This leak occurs if the driver is shut down while there are frames in TX buffers (such as in a firmware crash scenario.) Fix the leak. Signed-off-by: NJuuso Oikarinen <juuso.oikarinen@nokia.com> Reviewed-by: NTeemu Paasikivi <ext-teemu.3.paasikivi@nokia.com> Signed-off-by: NLuciano Coelho <luciano.coelho@nokia.com> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-
由 Juuso Oikarinen 提交于
Add reporting of the used TX rate to mac80211 in the tx_status. Signed-off-by: NJuuso Oikarinen <juuso.oikarinen@nokia.com> Reviewed-by: NKalle Valo <kalle.valo@nokia.com> Signed-off-by: NLuciano Coelho <luciano.coelho@nokia.com> Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
-