01 Jul, 2010

10 commits


30 Jun, 2010

4 commits


29 Jun, 2010

6 commits

  • Because of an ambiguity in the for_each_sta_info macro, it can
    currently only be used if the third parameter is set to 'sta'.
    Fix this by renaming the parameter to '_sta'.

    Signed-off-by: Felix Fietkau
    Signed-off-by: John W. Linville

    Felix Fietkau
     
  • The 'bf_retries' field of the ath_buf structure was used for both
    software retries (AMPDU subframes) and hardware retries (legacy
    frames). This led to a wrong retry count being reported for the A-MPDU
    rate control stats.
    This patch changes the code to no longer use bf_retries for reporting
    retry counts, but instead always using the real on-chip retry count
    from the ath_tx_status.
    Additionally, if the first subframe of an A-MPDU was not acked, the tx
    status report is submitted along with the first acked subframe, which
    may not contain the correct rates in the tx info.
    This is easily corrected by saving the tx rate info before looping over
    subframes, and then copying it back once the A-MPDU status report is
    submitted.
    In my tests this change improves throughput visibly.

    Signed-off-by: Felix Fietkau
    Reported-by: Björn Smedman
    Cc: stable@kernel.org
    Signed-off-by: John W. Linville

    Felix Fietkau
     
  • In commit 39d5b2c83ca8904b6826a0713263a4e5a9c0730a "ath5k: update
    AR5K_PHY_RESTART_DIV_GC values to match masks" i introduced a regression on PHY
    chips older than AR5K_SREV_PHY_5413, which caused signal values to be about
    10dB less that before. This patch reverts the AR5K_PHY_RESTART_DIV_GC values to
    the same values which were effectively used before (without the bitmask
    mistake). This brings signal levels back to normal on these PHY chips.

    Signed-off-by: Bruno Randolf
    Signed-off-by: John W. Linville

    Bruno Randolf
     
  • This patch enables the EW-CG1102GC SDIO card in the b43 driver.

    b43-sdio mmc0:0001:1: Chip ID 14e4:4318
    ssb: Core 0 found: ChipCommon (cc 0x800, rev 0x0D, vendor 0x4243)
    ssb: Core 1 found: IEEE 802.11 (cc 0x812, rev 0x09, vendor 0x4243)
    ssb: Core 2 found: PCI (cc 0x804, rev 0x0C, vendor 0x4243)
    ssb: Core 3 found: PCMCIA (cc 0x80D, rev 0x07, vendor 0x4243)
    b43-phy0: Broadcom 4318 WLAN found (core revision 9)
    b43-phy0 debug: Found PHY: Analog 3, Type 2, Revision 7
    b43-phy0 debug: Found Radio: Manuf 0x17F, Version 0x2050, Revision 8

    Tested with openfwwf-5.2 using a SuperH SDHI host controller.

    Signed-off-by: Magnus Damm
    Signed-off-by: John W. Linville

    Magnus Damm
     
  • This avoids the extra queueing from calling netif_rx.

    Signed-off-by: John W. Linville

    John W. Linville
     
  • This avoids the extra queueing from calling netif_rx.

    Signed-off-by: John W. Linville

    John W. Linville
     

26 Jun, 2010

11 commits

  • Radio calibration (chain noise and sensitivity) should be allowed to
    be disabled from debugfs if compiled with CONFIG_IWLWIFI_DEBUGFS. For both
    6000g2a and 6000g2b, the parameters are missing in "cfg", which cause
    user can not disable the radio calibration manually; add the support to
    allow the operation.

    Signed-off-by: Wey-Yi Guy
    Signed-off-by: Reinette Chatre

    Wey-Yi Guy
     
  • This message is encountered regularly and we need to take a closer look at
    the circumstances under which it is printed before presenting errors to
    users.

    Signed-off-by: Reinette Chatre

    Reinette Chatre
     
  • If RTS/CTS protection is needed for HT, wait until get operational
    notification from mac80211, then inform uCode to switch to RTS/CTS
    through RXON command.

    Signed-off-by: Wey-Yi Guy
    Signed-off-by: Reinette Chatre

    Wey-Yi Guy
     
  • When resuming from hibernate or suspend,
    the status of the rfkill switch isn't
    known since it might have been toggled
    while the system was asleep. Therefore,
    we need to read out the status at resume
    time to make sure the system knows about
    an up-to-date status.

    Reported-by: Mark Tung
    Tested-by: Mark Tung
    Signed-off-by: Johannes Berg
    Signed-off-by: Reinette Chatre

    Johannes Berg
     
  • The rate table in the bcast LQ is computed only when the station is
    allocated, and chooses the lowest rate for the band. Because of when this
    occurs, this is the 2.4 GHz band and uses the 0x420a (CCK, 1 Mbps) rate. In 5 GHz
    beaconing mode, this rate will prevent beacons from being sent and any other
    packets from being received.

    We can fix this by re-initializing the bcast station's LQ command when the
    channel is changed.

    Signed-off-by: Daniel Halperin
    Signed-off-by: Reinette Chatre

    Daniel Halperin
     
  • For some devices, especially the upcoming new devices, the plcp error
    rate is different. Before the correct error rate can be determine, also
    for the debugging purpose; add the mechanism to disable plcp error checking
    which cause radio reset happen.

    Signed-off-by: Wey-Yi Guy
    Signed-off-by: Reinette Chatre

    Wey-Yi Guy
     
  • Different devices have different calibration requirement,
    some need DC calibration and some don't; make it a cfg parameter
    for easy management.

    Signed-off-by: Wey-Yi Guy
    Signed-off-by: Reinette Chatre

    Wey-Yi Guy
     
  • This bit need to be set for both RTS/CTS or CTS-to-self protection, if
    CTS-to-self is used, then uCode will check the RXON_FLG_SELF_CTS_EN
    status. Change the name from TX_CMD_FLG_RTS_CTS_MSK to TX_CMD_FLAG_PROT_REQUIRE_MSK
    to match the behavior of the bit setting.

    Also update comments to reflect which hardware uses which of the TX command
    flags.

    Signed-off-by: Wey-Yi Guy
    Signed-off-by: Reinette Chatre

    Wey-Yi Guy
     
  • Reinette Chatre
     
  • When building tx command, always set TX_CMD_FLAG_PROT_REQUIRE_MSK
    for 5000 series and up.

    Without setting this bit the firmware will not examine the RTS/CTS setting
    and thus not send traffic with the appropriate protection. RTS/CTS is is
    required for HT traffic in a noisy environment where, without this setting,
    connections will stall on some hardware as documented in the patch that
    initially attempted to address this:

    commit 1152dcc28c66a74b5b3f1a3ede0aa6729bfd48e4
    Author: Wey-Yi Guy
    Date: Fri Jan 15 13:42:58 2010 -0800

    iwlwifi: Fix throughput stall issue in HT mode for 5000

    Similar to 6000 and 1000 series, RTS/CTS is the recommended
    protection mechanism for 5000 series in HT mode based on the HW design.
    Using RTS/CTS will better protect the inner exchange from interference,
    especially in highly-congested environment, it also prevent uCode encounter
    TX FIFO underrun and other HT mode related performance issues.

    For 3945 and 4965, different flags are used for RTS/CTS or CTS-to-Self
    protection.

    Signed-off-by: Wey-Yi Guy
    Signed-off-by: Reinette Chatre

    Wey-Yi Guy
     
  • commit 3474ad635db371b0d8d0ee40086f15d223d5b6a4
    Author: Johannes Berg
    Date: Thu Apr 29 04:43:05 2010 -0700

    iwlwifi: apply filter flags directly

    broke multicast. The reason, it turns out, is that
    the code previously checked if ALLMULTI _changed_,
    which the new code no longer did, and normally it
    _never_ changes. Had somebody changed it manually,
    the code prior to my patch there would have been
    broken already.

    The reason is that we always, unconditionally, ask
    the device to pass up all multicast frames, but the
    new code made it depend on ALLMULTI which broke it
    since now we'd pass up multicast frames depending
    on the default filter in the device, which isn't
    necessarily what we want (since we don't program it
    right now).

    Fix this by simply not checking allmulti as we have
    allmulti behaviour enabled already anyway.

    Reported-by: Maxim Levitsky
    Tested-by: Maxim Levitsky
    Signed-off-by: Johannes Berg

    Johannes Berg
     

25 Jun, 2010

9 commits

  • Move ath9k_ps_wakeup() down just before accessing hw registers.

    Signed-off-by: Vasanthakumar Thiagarajan
    Signed-off-by: John W. Linville

    Vasanthakumar Thiagarajan
     
  • Signed-off-by: Vasanthakumar Thiagarajan
    Signed-off-by: John W. Linville

    Vasanthakumar Thiagarajan
     
  • It is possbile that the transmission of paprd test frame
    might not get completed in 100ms if tx is stuck. Freeing
    this skb upon timeout in ath_paprd_calibrate() will result
    in accessing already freed memory when the associated pending
    buffer is drained in txq. This patch fixes this issue.

    Signed-off-by: Vasanthakumar Thiagarajan
    Signed-off-by: John W. Linville

    Vasanthakumar Thiagarajan
     
  • HW crypto in rt2500usb does not seem to support keys with different ciphers,
    which breaks TKIP+AES mode. Fall back to software encryption to fix it.

    This should fix long-standing problems with rt2500usb and WPA, such as:
    http://rt2x00.serialmonkey.com/phpBB/viewtopic.php?f=4&t=4834
    https://bugzilla.redhat.com/show_bug.cgi?id=484888

    Also tested that it does not break WEP, TKIP-only and AES-only modes.

    Signed-off-by: Ondrej Zary
    Acked-by: Gertjan van Wingerde
    Signed-off-by: John W. Linville

    Ondrej Zary
     
  • This patch adds transmit power setting type and transmit power level attributes
    to NL80211_CMD_SET_WIPHY in order to facilitate adjusting of the transmit power
    level of the device.

    The added attributes allow selection of automatic, limited or fixed transmit
    power level, with the level definable in signed mBm format.

    Signed-off-by: Juuso Oikarinen
    Signed-off-by: John W. Linville

    Juuso Oikarinen
     
  • In preparation for a TX power setting interface in the nl80211, change the
    .set_tx_power function to use mBm units instead of dBm for greater accuracy and
    smaller power levels.

    Also, already in advance move the tx_power_setting enumeration to nl80211.

    This change affects the .tx_set_power function prototype. As a result, the
    corresponding changes are needed to modules using it. These are mac80211,
    iwmc3200wifi and rndis_wlan.

    Cc: Samuel Ortiz
    Cc: Jussi Kivilinna
    Signed-off-by: Juuso Oikarinen
    Acked-by: Samuel Ortiz
    Acked-by: Jussi Kivilinna
    Signed-off-by: John W. Linville

    Juuso Oikarinen
     
  • The driver at76c50x-usb is unable to authenticate with an AP since
    kernel 2.6.31 for the following reason: The join command of the firmware
    needs to be sent with the right bssid before any transmission can start.
    Before kernel 2.6.31 mac80211 informed its drivers about the changing
    bssid early enough for at76c50x-usb but during the development of 2.6.31
    mac80211's behaviour changed. Now a new bssid is set after the
    association.

    This patch changes the tx routine of the driver at76c50x-usb in such a
    way that a new bssid is extracted from an authentication frame and the
    join command with that bssid is processed.

    Signed-off-by: Sebastian Smolorz
    Signed-off-by: John W. Linville

    Sebastian Smolorz
     
  • This patch does a simple code move of at76_join() so that
    at76_mac80211_tx() follows at76_join() in the driver's source file.

    This is a preparatory patch for the following patch where we need
    to call at76_join() from at76_mac80211_tx() in order to
    authenticate successfully with a bssid.

    Signed-off-by: Sebastian Smolorz
    Signed-off-by: John W. Linville

    Sebastian Smolorz
     
  • While mesh_rx_plink_frame holds sta->lock...

    mesh_rx_plink_frame ->
    mesh_plink_inc_estab_count ->
    ieee80211_bss_info_change_notify

    ...but ieee80211_bss_info_change_notify is allowed to sleep. A driver
    taking advantage of that allowance can cause a scheduling while
    atomic bug. Similar paths exist for mesh_plink_dec_estab_count,
    so work around those as well.

    http://bugzilla.kernel.org/show_bug.cgi?id=16099

    Also, correct a minor kerneldoc comment error (mismatched function names).

    Signed-off-by: John W. Linville
    Cc: stable@kernel.org

    John W. Linville