- Jan 12, 2010
-
-
Lennert Buytenhek authored
Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
Whenever mac80211 gives us a legacy rate bitmap in the context of the 5 GHz band, we need to remember to shift the bitmap left by 5 positions before giving it to the firmware, as the firmware follows the bitmap bit assignment of the 2.4 GHz rate table even if we're on the 5 GHz band, and the 2.4 GHz rate table includes five non-OFDM rates at the start that are not valid in the 5 GHz band. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
The mwl8k firmware uses indices into the 2.4 GHz band rate table for the receive descriptor channel field even if the packet was received on a 5 GHz channel, while mac80211 expects an index into the 5 GHz band rate table when packets are received on the 5 GHz band, which presents a mismatch as the 5 GHz band rate table lacks the five non-OFDM rates that the 2.4 GHz rate table starts with. To handle this properly, we need to substract 5 from the rate index field if the packet was received on a 5 GHz channel (and was not received at an MCS rate). Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
So that we can make 2.4 GHz and 5 GHz band registration conditional on the capability bitmask returned by the firmware. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
To prepare for adding 5 GHz band/channels/rates. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
0x2a43 is a single-band (2.4GHz only) 88w8366 mini-PCIe card. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
By storing the sequence counter in << 4 format, like other drivers do. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
Add MODULE_FIRMWARE tags for the mwl8k firmware images that don't have them yet, and move them to where the firmware image names are declared. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
Like how TX reclaim is done in a tasklet, move receive processing to tasklet context as well. This can have nice benefits for CPU utilisation and throughput, especially at 3-stream rates. (Use the same CLEAR_SEL trick as the TX reclaim tasklet does, to avoid having to touch the interrupt mask registers.) Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
By making use of the CLEAR_SEL feature of the mwl8k host interface interrupt controller, we can keep the TX_DONE interrupt source masked while the transmit reclaim tasklet is running (NAPI style) without having to touch the interrupt controller's interrupt mask register when entering or exiting polling mode, and without having to do any more register reads/writes than we do now. When CLEAR_SEL is enabled on the TX_DONE interrupt source, reading the interrupt status register will clear the TX_DONE status bit if it was set, allowing it to be set again if a new TX_DONE event arrives while we are running the TX reclaim tasklet, but such a new event will then not trigger another PCI interrupt until a zero is written to the TX_DONE interrupt status register bit. I.e., if we write a zero to the TX_DONE interrupt source bit in the interrupt status register when the TX reclaim tasklet thinks it's done, a PCI interrupt will be triggered if a new TX_DONE event arrived from the hardware between us deciding that there is no more work to do and re-enabling the TX_DONE interrupt source, thereby avoiding the classic NAPI poll mode exit race that would otherwise occur. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
Add a limit argument to mwl8k_txq_reclaim(), to allow limiting the number of packets that it will reclaim, and make it return the number of packets that it reclaimed. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
Add support for creating AP interfaces, and enabling beaconing. This allows running a basic AP (11b/g mode only for now). Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
STA firmware uses UPDATE_STADB to manipulate the hardware station database, whereas AP firmware uses SET_NEW_STN -- this implements the latter, and hooks it into mwl8k_sta_notify(), to be used if we're running on AP firmware. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
As with the STA version, unicast will use auto rate adaptation, but the AP version allows setting the rates to be used for management and multicast transmissions, which can be set based on the BSS basic rate set. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
As we always use the auto rate adaptation feature and never pass in a rate table, USE_FIXED_RATE can be simplified somewhat. While we're at it, rename it to *_sta, as this is the STA version of the command. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
While it is reasonable to expect that at least one transmit ring entry will be processed per second while we are waiting for the transmit rings to drain, the firmware can end up doing batching of transmit ring status writeback, which means that the transmit rings can appear stuck for more than a second at a time. Bump the TX drain wait timeout up from 1 to 5 seconds to account for this. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
The comment and code in mwl8k_cmd_set_edca_params() suggest that the mapping between SET_EDCA_PARAMS queue numbers and transmit rings isn't actually 1:1, while tests show that the mapping is in fact 1:1. So, get rid of the transmit queue 0/1 swapping. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
- Jan 05, 2010
-
-
Lennert Buytenhek authored
This enables HT association and AMPDU in the receive direction for STA firmware images on hardware that supports it. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
AMPDU receive doesn't need any special handling, so let's enable this before tackling the transmit side. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
Pass the AP's MCS rate mask to SET_RATE when associating, and make UPDATE_STADB pass in the peer's HT caps and rates when adding a new hardware station database entry. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
Previously, mwl8k_bss_info_changed() would refuse to do anything if the 'changed' argument indicated that the association status hadn't changed. Fix this up so that it will allow changing things like the preamble type, the slot time and the CTS-to-self protection method without having to reassociate. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
When calling SET_RATE, SET_AID, or when creating a station database entry for our AP, pass in the AP's rate set instead of just blindly enabling all legacy rates, so as to end up doing the right thing when talking to 11b-only APs. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
For STA firmware, move the per-peer hardware station ID to the driver-private part of struct ieee80211_sta, where it belongs. (Since issuing a hardware station database maintenance command sleeps, we can't hold a reference to the ieee80211_sta * across the command, and since we won't know the station ID until after the command completes, we need to re-lookup the sta when the command is done to write the returned station ID back to its driver-private part.) Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
Inserting and removing a hardware station database entry for the AP when we are in managed mode is currently done in ->bss_info_changed(). To prepare for adding AP mode support, implement the ->sta_notify() driver method, and let that handle inserting and removing the hardware station database entry for our AP instead. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
Old: > phy0: timeout waiting for tx rings to drain (9 -> 5 pkts), retrying > phy0: timeout waiting for tx rings to drain (5 -> 2 pkts), retrying > phy0: tx rings drained New: > phy0: waiting for tx rings to drain (9 -> 5 pkts) > phy0: waiting for tx rings to drain (5 -> 2 pkts) > phy0: tx rings drained Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
- Jan 04, 2010
-
-
Lennert Buytenhek authored
If there was an error acquiring the firmware lock in mwl8k_configure_filter(), we would end up leaking the multicast command packet prepared by mwl8k_prepare_multicast(). Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
- Dec 28, 2009
-
-
Johannes Berg authored
All its members (vif, mac_addr, type) are now available in the vif struct directly, so we can pass that instead of the conf struct. I generated this patch (except the mac80211 and header file changes) with this semantic patch: @@ identifier conf, fn, hw; type tp; @@ tp fn(struct ieee80211_hw *hw, -struct ieee80211_if_init_conf *conf) +struct ieee80211_vif *vif) { <... ( -conf->type +vif->type | -conf->mac_addr +vif->addr | -conf->vif +vif ) ...> } Signed-off-by:
Johannes Berg <johannes@sipsolutions.net> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-
Lennert Buytenhek authored
Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
-