30 Jan, 2009
40 commits
-
Add mechanism for managing BIP keys (IGTK) and integrate BIP into the
TX/RX paths.Signed-off-by: Jouni Malinen
Acked-by: Johannes Berg
Signed-off-by: John W. Linville -
This modifies hardware flags for powersave to support three different
flags:
* IEEE80211_HW_SUPPORTS_PS - indicates general PS support
* IEEE80211_HW_PS_NULLFUNC_STACK - indicates nullfunc sending in software
* IEEE80211_HW_SUPPORTS_DYNAMIC_PS - indicates dynamic PS on the deviceIt also adds documentation for all this which explains how to set the
various flags.Additionally, it fixes a few things:
* a spot where && was used to test flags
* enable CONF_PS only when associated againSigned-off-by: Johannes Berg
Signed-off-by: John W. Linville -
This patch addresses all recent comments from Johannes Berg:
1st: (reference http://marc.info/?l=linux-wireless&m=123124685019631 )
>First off: all those should return NETDEV_TX_OK/BUSY.
>iwl-agn: returns 0 (== NETDEV_TX_OK, but still should be changed)
>[...]
>p54: same (some paths)2nd:
> due to your PS patch ("p54: power save management"), please run sparse:
> make C=2 CF=-D__CHECK_ENDIAN__ M=...
> +drivers/net/wireless/p54/p54common.c:1753:8: warning: incorrect type in assignment (different base types)
> +drivers/net/wireless/p54/p54common.c:1769:29: warning: incorrect type in assignment (different base types)
The cpu_to_le16 ended up in the wrong line... Sorry!Signed-off-by: Christian Lamparter
Signed-off-by: John W. Linville -
rt2x00 should only register the RFKILL input device when the hardware indicated
the key was present.Signed-off-by: Ivo van Doorn
Signed-off-by: John W. Linville -
The channel_type really doesn't need to be the only member in
a new structure, so remove the struct. Additionally, remove
the _CONF_CHANGE_HT flag and use _CONF_CHANGE_CHANNEL when the
channel type changes, since that's enough of a change to require
reprogramming the hardware anyway.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
Probably something leftover from experimentation with tasklets. Now the
structure declaration orinoco_rx_data can be relocated to orinoco.cSigned-off-by: David Kilroy
Signed-off-by: John W. Linville -
* Sync qcu.c with legacy-hal
* Add some more comments
* Set QCU mask to save power (QCU mask controls which QCUs are attached
to each DCU, we do a 1:1 mapping)TODO: Use max QCU from EEPROM, further sync with legacy-hal and sam's
hal and a few more minor fixes.I think after this we are ready to implement WME on the driver
part. Anyone interested ?Signed-Off-by: Nick Kossifidis
Signed-off-by: John W. Linville -
As discussed on linux-wireless rt2x00 does not offer a true RFKILL key,
for that reason RFKILL support should be entirely removed.The key which is attached to the hardware should be treated as normal
input device instead. Implement input_poll_dev support to poll the device
frequently. When the key status has changed report it as a SW event.Signed-off-by: Ivo van Doorn
Signed-off-by: John W. Linville -
Signed-off-by: Vasanthakumar Thiagarajan
Signed-off-by: John W. Linville -
Sanity checks against AR5K_NUM_GPIO were all broken. This doesn't
currently cause any problems since we only use the first four gpios.Changes-licensed-under: ISC
Reported-by: Andreas Mohr
Signed-off-by: Bob Copeland
Signed-off-by: John W. Linville -
Add vendor ID for Foxconn and use it to set the ath5k LED gpio and
polarity for Acer branded laptops.base.c:
Changes-licensed-under: 3-Clause-BSDReported-by: Maxim Levitsky
Tested-by: Maxim Levitsky
Tested-by: Andreas Mohr
Signed-off-by: Bob Copeland
Signed-off-by: John W. Linville -
This patch implements dynamic power save feature for p54.
Signed-off-by: Christian Lamparter
Signed-off-by: John W. Linville -
According to STMicroelectronics' LMAC documentation, the P54_FILTER_TYPE_TRANSPARENT flag
"configures the receive frame filter to pass all frames without regard to type and address matching."Signed-off-by: Christian Lamparter
Signed-off-by: John W. Linville -
Respect all documented bits in the eeprom about the device diversity features.
Signed-off-by: Christian Lamparter
Signed-off-by: John W. Linville -
Signed-off-by: Gabor Juhos
Signed-off-by: John W. Linville -
The set_key callback now seems rather odd, passing a MAC address
instead of a station struct, and a local address instead of a
vif struct. Change that.Signed-off-by: Johannes Berg
Acked-by: Bob Copeland [ath5k]
Acked-by: Ivo van Doorn [rt2x00]
Acked-by: Christian Lamparter [p54]
Tested-by: Kalle Valo [iwl3945]
Tested-by: Samuel Ortiz [iwl3945]
Signed-off-by: John W. Linville -
The scheduled date for the removal of old fw support was in July 2008.
However, we're not going to remove the support unless it causes a major
headache. So change the schedule from "July 2008" to "when it causes headaches".Signed-off-by: Michael Buesch
Signed-off-by: John W. Linville -
This patch adds a sub-routine that parses the default country eeprom entry
and forwards the obtained Alpha2 identifier to the regulatory sub-system.Note: I dropped the p54 specific regdomainalpha2 conversion code for now.
But it will be added as soon as there's the common library function is ready.Signed-off-by: Christian Lamparter
Signed-off-by: John W. Linville -
This patch will prevent anyone to upload a firmware which was not designed for his device.
There's still a catch:
There is no easy way to detect if a firmware is for PCI or for USB (1st Gen),
because they all share the same LM86 identifier.Signed-off-by: Christian Lamparter
Signed-off-by: John W. Linville -
Sometimes on unload or reboot the 3887 USB devices become stuck.
kernel: usbcore: registered new interface driver p54usb
kernel: usb 2-10: (p54usb) reset failed! (-110)
kernel: p54usb: probe of 2-10:1.0 failed with error -110
[...]and a physical unplug and replug was necessary.
However we should be able to do this in software as well,
without any user interaction.Signed-off-by: Christian Lamparter
Signed-off-by: John W. Linville -
This adds detection code for the LP-PHY and SPROM
extraction code for version 8, which is needed by the LP-PHY and
newer N-PHY.Signed-off-by: Michael Buesch
Signed-off-by: John W. Linville -
Does nothing unless you enable the hidden N PHY config.
Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
Signed-off-by: Senthil Balasubramanian
Signed-off-by: John W. Linville -
This is used on my macbook. N PHY, obviously nothing works
yet, but we can detect the chip with this patch.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
Fix sparse warnings:
drivers/net/wireless/ath9k/hw.c:1850:17: warning: symbol 'tmp' shadows an earlier one
drivers/net/wireless/ath9k/hw.c:1713:6: originally declared here
drivers/net/wireless/ath9k/hw.c:2051:17: warning: symbol 'tmp' shadows an earlier one
drivers/net/wireless/ath9k/hw.c:1961:6: originally declared heredrivers/net/wireless/ath9k/eeprom.c:195:6: warning: symbol 'ath9k_fill_eeprom' was not declared. Should it be static?
drivers/net/wireless/ath9k/eeprom.c:463:5: warning: symbol 'ath9k_check_eeprom' was not declared. Should it be static?
drivers/net/wireless/ath9k/eeprom.c:1219:6: warning: symbol 'ath9k_hw_set_def_power_per_rate_table' was not declared. Should it be static?
drivers/net/wireless/ath9k/eeprom.c:1510:6: warning: symbol 'ath9k_hw_set_4k_power_per_rate_table' was not declared. Should it be static?
drivers/net/wireless/ath9k/eeprom.c:2007:5: warning: symbol 'ath9k_set_txpower' was not declared. Should it be static?
drivers/net/wireless/ath9k/eeprom.c:2106:6: warning: symbol 'ath9k_set_addac' was not declared. Should it be static?
drivers/net/wireless/ath9k/eeprom.c:2543:6: warning: symbol 'ath9k_eeprom_set_board_values' was not declared. Should it be static?
drivers/net/wireless/ath9k/eeprom.c:2606:5: warning: symbol 'ath9k_get_eeprom_antenna_cfg' was not declared. Should it be static?
drivers/net/wireless/ath9k/eeprom.c:2622:4: warning: symbol 'ath9k_hw_get_4k_num_ant_config' was not declared. Should it be static?
drivers/net/wireless/ath9k/eeprom.c:2628:4: warning: symbol 'ath9k_hw_get_def_num_ant_config' was not declared. Should it be static?
drivers/net/wireless/ath9k/eeprom.c:2647:4: warning: symbol 'ath9k_get_num_ant_config' was not declared. Should it be static?
drivers/net/wireless/ath9k/eeprom.c:2790:5: warning: symbol 'ath9k_get_eeprom' was not declared. Should it be static?drivers/net/wireless/ath9k/calib.c:962:30: warning: symbol 'iq_cal_multi_sample' was not declared. Should it be static?
drivers/net/wireless/ath9k/calib.c:969:30: warning: symbol 'iq_cal_single_sample' was not declared. Should it be static?
drivers/net/wireless/ath9k/calib.c:976:30: warning: symbol 'adc_gain_cal_multi_sample' was not declared. Should it be static?
drivers/net/wireless/ath9k/calib.c:983:30: warning: symbol 'adc_gain_cal_single_sample' was not declared. Should it be static?
drivers/net/wireless/ath9k/calib.c:990:30: warning: symbol 'adc_dc_cal_multi_sample' was not declared. Should it be static?
drivers/net/wireless/ath9k/calib.c:997:30: warning: symbol 'adc_dc_cal_single_sample' was not declared. Should it be static?
drivers/net/wireless/ath9k/calib.c:1004:30: warning: symbol 'adc_init_dc_cal' was not declared. Should it be static?Signed-off-by: Luis R. Rodriguez
Signed-off-by: John W. Linville -
When we try to change the channel in ath9k its because
either the configuration indicates we *have* changed
channels or HT configuration has changed. In both cases
we want to do a reset. Either way mac80211 will inform us
when we want to actually change the channel so trust those
calls.Although in the patch it may seem as I am doing more code
changes I am not, all I am doing is removing the initial
branch conditional and shifting the code to the left.Signed-off-by: Luis R. Rodriguez
Signed-off-by: John W. Linville -
The only check we care about in ath9k_hw_check_chan() is
the internal regulatory check so use that.Signed-off-by: Luis R. Rodriguez
Signed-off-by: John W. Linville -
The only left users are for timing for ACK timeout, slotime and
CTS timeout. We currently use an array CLOCK_RATE to keep
these values per mode and since as only will use A and G
we can depend on the band to get the appropriate values.We note that we should be using a different clock rate value
for CCK, we can do this in separate patch, currently this is
being disregarded and should only affect when we want to
change the default ACK/CTS timeout or slot time and stuck
with using using 802.11b.Signed-off-by: Luis R. Rodriguez
Signed-off-by: John W. Linville -
The NOISE_FLOOR array we have is mode specific, and the only
possible indexed values are A, B and G. The mode routine only
can return G or A, so this is band specific. Then since the
values for A and G (5ghz or 2ghz) are the same (-96) we simply
remove the array and use a static value.If we later determine we want to use special values for
HT configurations we can use the new mac80211 conf_is_ht*()
helpers.Signed-off-by: Luis R. Rodriguez
Signed-off-by: John W. Linville -
The CCK and OFDM ANI error triggers are not mode specific but rather
band specific so just make use of the already available band from
ieee80211_conf.Signed-off-by: Luis R. Rodriguez
Signed-off-by: John W. Linville -
Signed-off-by: Luis R. Rodriguez
Acked-by: Johannes Berg
Signed-off-by: John W. Linville -
Use shiny new conf_is_ht*() helpers, we can later remove ht.enabled if
desired.Signed-off-by: Luis R. Rodriguez
Signed-off-by: John W. Linville -
ath9k_hw_iscal_supported() just needs to be aware of your band
and if HT20 is being used so lets abandon our internal channel,
HT appended values and internal mode values and use ieee80211_conf
which already carries this information. This works as calibration
is being done for the currently configured channel.Signed-off-by: Luis R. Rodriguez
Signed-off-by: John W. Linville -
Lets make the request to get the current noise floor threshold
from the EEPROM band specific as it is band specific, not mode
specific.This also adds a backpointer on the private channel structure
back to the ieee80211_channel structure as this is now needed during
ath9k_hw_getnf().Signed-off-by: Luis R. Rodriguez
Signed-off-by: John W. Linville -
HW reset calls pass the same variables or structs
which we can obtain easily from ah. Although this also applies
during channel changes as we will keep around the ath9k_channel
passed as an argument for now.We now also now propagate the hw reset errors down.
Signed-off-by: Luis R. Rodriguez
Signed-off-by: John W. Linville -
ath_setcurmode() is a bit misleading, all we are doing is
caching the rate for the corresponding configuration we
are using.Signed-off-by: Luis R. Rodriguez
Signed-off-by: John W. Linville -
No need to cache when we want to use 2Mbit/s for all protection
frames for 802.11g as we can determine that dynamically on
ath_buf_set_rate() itself.Signed-off-by: Luis R. Rodriguez
Signed-off-by: John W. Linville -
We don't need to use our own mode for setting the
the routine tries to do, in fact lets remove ath_chan2mode() now as
we can simply use the currently set band and the HT configuration
provided by mac80211 through the ieee80211_conf. This works on
changing channels as well as the internal ath9k_channel we use is
based on the ieee80211_channel in the config.Signed-off-by: Luis R. Rodriguez
Signed-off-by: John W. Linville -
This patch uses rx queue alloc free and reset function from iwlcore.
This should fix the regression reported by Kalle Valo.Signed-off-by: Tomas Winkler
Signed-off-by: Zhu Yi
Signed-off-by: John W. Linville -
The patch replaces iwl_tx_cmd with iwl3945_tx_cmd to complete
transitions introduced by "iwlwifi: use iwl_cmd instead
of iwl3945_cmd"Signed-off-by: Tomas Winkler
Signed-off-by: Zhu Yi
Signed-off-by: John W. Linville