Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Dec 2, 2012
  1. @yairs534

    wlcore: Add RX_BA_WIN_SIZE_CHANGE_EVENT event

    yairs534 committed
    This event is used by the Firmware to limit the RX BA win size
    for a specific link.
    The event handler updates the new size in the driver's link struct
    and in the mac's sta->sta struct accordingly and closes all active BA
    sessions for that link.
    Conseqent BA sessions opened for that link will use the new restricted
    win_size. This limitation remains until a new update is received or
    until the link is closed.
    This solves an IOP bug with APs that don't respect the max subframes in
    a single-frame and uses the max win_size instead. In these cases the FW
    recovers by sending this event to decrease the win_size to use the single
    frame limitation.
    Signed-off-by: Yair Shapira <>
  2. @yairs534

    wlcore: ACX_BA_SESSION_RX_SETUP win_size taken from sta

    yairs534 committed
    Now that max_rx_aggregation_subframes (BA RX win size) is stored in the
    mac per active link (and not only per chip), use the link (sta) value
    when passing the win_size to firmware through the ACX_BA_SESSION_RX_SETUP
    Signed-off-by: Yair Shapira <>
  3. @yairs534

    mac80211: RX BA support for sta max_rx_aggregation_subframes

    yairs534 committed
    Normally rx ba buff size is limited by a max limitation set by the driver
    with local->hw.max_rx_aggregation_subframes. This is the max aggregation
    'win_size' supported by the chip.
    This fix adds max_rx_aggregation_subframes field to sta->sta. This field
    is initialy set to local->hw.max_rx_aggregation_subframes and is used
    by addba_req routine. The driver/chip can choose to change this value
    causing stop of existing ba sessions and effectivly forcing new ba sessions
    (on this link) to be restricted by the new value.
    This capability is usefull in cases of IOP, i.e. cases where peer sta
    or ap doesn't respect the max subframes in a single-frame and uses the
    max win_size instead. In these cases the driver/chip may recover by
    decreasing the win_size to use the single frame limitation.
    Signed-off-by: Yair Shapira <>
Commits on Nov 22, 2012
  1. @ariknem

    wlcore: re-enable idle handling

    ariknem committed
    We need some stuff done on idle change, most notably we have to stop
    sched-scanning. Take care of this be reintroducing idle handling.
    While at it, fix a bug where we would send sched_scan_stopped() up
    before getting an event about stopping it from FW.
    Signed-off-by: Arik Nemtsov <>
  2. @ariknem

    wlcore: ROC on appropriate band when requested

    ariknem committed
    The band of the wlvif is not always the band to perform the ROC on. Pass
    the band to the ROC cmd all the way from mac80211.
    Signed-off-by: Arik Nemtsov <>
  3. @gitido @ariknem

    wlcore: Always pass DMA-able buffers to mmc functions

    gitido committed with ariknem
    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.
    Signed-off-by: Ido Yariv <>
  4. @gitido @ariknem

    wlcore: Refactor probe

    gitido committed with ariknem
    Move most of the device-specific probe functionality into setup(), a new
    op. By doing this, wlcore_probe will be the first to request a firmware
    from userspace, making it easier to load the NVS file asynchronously.
    Signed-off-by: Ido Yariv <>
  5. @eyalsh @igalc

    mac80211: reject BA action frames if sent fron non HT STA

    eyalsh committed with igalc
    The FW doesn't work well with BA sessions started from non 802.11n
    STAs. Reject these as a work around until the FW issue is fixed.
    Signed-off-by: Eyal Shapira <>
    Signed-off-by: Igal Chernobelsky <>
Commits on Nov 19, 2012
  1. @yairs534

    wl18xx: set default ht.mode to HT_MODE_WIDE (INTERNAL)

    yairs534 committed
    Now that RDL1_3 has 2 antennas defined by default we need to explicitly
    define ht.mode to HT_MODE_WIDE to have SISO40 as default.
    Signed-off-by: Yair Shapira <>
Commits on Nov 15, 2012
  1. @idor

    wl18xx: update default phy configuration for HDK1.8

    idor committed
    update phy default configuration to fit firmware
    this fw introduced with new phy that is set to work with two
    2.4 Ghz antennas by default.
    Signed-off-by: Ido Reis <>
  2. @ariknem

    wl18xx: count HW block spare based correctly on keys

    ariknem committed
    We have no idea how many VIFs there are requiring a special spare, we
    know just about the number of keys set. Rename the counter appropriately
    and toggle it whenever a special key is added/removed.
    Previously this was only changed once, since it was toggled whenever
    the actual spare was changed.
    Signed-off-by: Arik Nemtsov <>
  3. @ariknem

    wlcore: discard corrupted packets early in Rx path

    ariknem committed
    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 in 802.11-2012.
    Also fix the offset to the packet data when printing the corrupt packet.
    Signed-off-by: Arik Nemtsov <>
Commits on Nov 14, 2012
  1. @eyalsh

    wlcore: support scan reports during periodic scan

    eyalsh committed
    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
    Signed-off-by: Eyal Shapira <>
Commits on Nov 13, 2012
  1. @ariknem

    wlcore: don't take spinlock twice (SQUASH)

    ariknem committed
    spinlock was taken twice in op_tx because of the wlcore_is_stopped
    fix. Expose a locked and unlocked versions of the is_stopped function
    for use in different places and verify locks.
    Squash with:
    wlcore: don't take mutex before stopping queues
    Reported-by: Eyal Shapira <>
    Signed-off-by: Arik Nemtsov <>
  2. @ariknem

    wlcore: iterate interfaces atomically during add_interface (SQUASH)

    ariknem committed
    Since we iterate the interfaces while taking wl->mutex, using the
    non-atomic version creates a lock inversion.
    Should be squashed with the original HW queue patch.
    Signed-off-by: Arik Nemtsov <>
  3. @ariknem

    wl18xx: support MIMO only if HT mode is not forced to SISO

    ariknem committed
    Don't use MIMO rates when HT mode is forced to SISO, even if we have
    multiple antennas.
    Signed-off-by: Arik Nemtsov <>
Commits on Nov 12, 2012
  1. @ariknem

    wlcore: consolidate Rx BA bitmap management to links struct

    ariknem committed
    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: Arik Nemtsov <>
  2. @ariknem

    wlcore: don't take mutex before stopping queues

    ariknem committed
    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: Arik Nemtsov <>
Commits on Nov 8, 2012
  1. @ariknem

    wlcore: use separate HW queue for each AC in each vif

    ariknem committed
    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.
    Signed-off-by: Arik Nemtsov <>
Commits on Nov 6, 2012
  1. @ariknem

    wlcore: use link count for single-STA-PSM optimization

    ariknem committed
    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.
    Signed-off-by: Arik Nemtsov <>
  2. @ariknem

    wl18xx: limit Tx for the AP single-STA-in-PSM case

    ariknem committed
    Treat a single connected STA in PSM as a slow link and regulate Tx speed
    according to slow link priority/stop thresholds.
    This allows us to avoid flooding the FW, while delivering decent
    throughput to a peer in forced-PSM.
    Signed-off-by: Arik Nemtsov <>
  3. @ariknem

    wlcore/wl18xx: change priority calculations for links

    ariknem committed
    Update the 18xx FW status private part to include Tx related link
    priorities. Introduce new HW ops to determine link priority per chip
    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: Arik Nemtsov <>
  4. @victorgld @ariknem

    wlcore: add new reg-domain configuration command

    victorgld committed with ariknem
    In 18xx the calibration process of the PHY Cortex domain
    requires to perform an active calibration of the channel
    before it can be used for transmission. To fulfill world
    wide regulatory restrictions, fw should be always
    synchronized/updated with current CRDA configuration.
    Add a new "CMD_DFS_CHANNEL_CONFIG" command to update the
    fw with current reg-domain, this command passes a bit map
    of channels that are allowed to be used for transmission.
    The driver shall update the fw during initialization and
    after each change in the current reg-domain
    configuration. The driver will save the channel number of
    incoming beacons during the scan process, as they might
    be a result of the passive scan on
    "IEEE80211_CHAN_PASSIVE_SCAN" channel and will update the
    fw accordingly once the scan is finished, the purpose of
    this is to be ready in case of the authentication request
    on one of these disabled (uncalibrated) channels.
    The new command requires to wait for the fw completion
    No scan commands (including the sched scan) can be
    executed concurrently with the "CMD_DFS_CHANNEL_CONFIG",
    wl->mutex ensures that.
    [Arik - move reset of reg_ch_conf_last to safe place inside
    Signed-off-by: Victor Goldenshtein <>
    Signed-off-by: Arik Nemtsov <>
Commits on Nov 5, 2012
  1. @ariknem

    mac80211: sync acccess to tx_filtered/ps_tx_buf queues

    ariknem committed
    These are accessed without a lock when ending STA PSM. If the
    sta_cleanup timer accesses these lists at the same time, we might crash.
    This may fix some mysterious crashes we had during
    Signed-off-by: Arik Nemtsov <>
    Signed-off-by: Ido Yariv <>
Commits on Nov 4, 2012
  1. @ariknem

    wlcore: indicate failure on Rx BA session setup failure

    ariknem committed
    When the FW can't setup a Rx BA session, indicate this to mac80211 so it
    would reject the ADDBA request.
    Signed-off-by: Arik Nemtsov <>
Commits on Oct 30, 2012
  1. @yairs534

    wl18xx: change default phy/mac conf values

    yairs534 committed
    Default phy/mac conf values were modified based on changes in latest
    official INI files. The changes are in TX power level values:
    TxPower_level_MaxPower      = 18
    TxPower_level_MedPower      = 12
    TxPower_level_LowPower      = 08
    TxPower_level_MaxPower_2nd  = 14
    TxPower_level_MedPower_2nd  = 0A
    TxPower_level_LowPower_2nd  = 05
    Signed-off-by: Yair Shapira <>
Commits on Oct 29, 2012
  1. @yairs534

    wl18xx: fix a bug in wl->num_rx_desc initialization

    yairs534 committed
    wl->num_rx_desc was mistakenly initialized with WL18XX_NUM_TX_DESCRIPTORS
    but it should use WL18XX_NUM_RX_DESCRIPTORS instead.
    This bug was passed unnoticed because currently both RX and TX descriptors
    are initialized to the same value (32).
    Signed-off-by: Yair Shapira <>
  2. @yairs534

    wlcore: disable elp sleep while in plt mode

    yairs534 committed
    We now disable elp sleep during plt mode to allow normal operation of
    plt tools such as calibrator.
    Having elp_sleep enabled during plt mode is actually not required and
    in fact it disrupt plt operations such as rx statistics etc...
    This is based on wl12xx (R5) commit 5cf0fe31ab
    Signed-off-by: Yair Shapira <>
Commits on Oct 28, 2012
  1. @ariknem

    wlcore: configure correct template for regular scan

    ariknem committed
    This patch broke regular scan:
    commit be37627
    Author: Arik Nemtsov <>
    Date:   Thu Oct 25 13:05:24 2012 +0200
        wlcore: configure correct SSID for DFS chan scan
    By configuring sched-scan templates. Fix this.
    (Should be squashed with all DFS patches on upstream)
    Signed-off-by: Arik Nemtsov <>
Commits on Oct 26, 2012
  1. @ariknem

    wlcore: configure correct SSID for DFS chan scan

    ariknem committed
    Don't neglect the SSID in case we are scanning DFS channels. Also add a
    check for the existence of the SSID for normal scan scenarios.
    Should be squashed with:
    478a943 wlcore: set 5Ghz probe-req template for DFS in sched-scan
    87e73a7 wlcore: set 5Ghz probe-req template for DFS channels
    Reported-by: Victor Goldenshtein <>
    Signed-off-by: Arik Nemtsov <>
Commits on Oct 24, 2012
  1. @yairs534

    wlcore: add new plt power-mode: CHIP_AWAKE

    yairs534 committed
    Under this mode the chip is powered on including sdio
    but no FW is downloaded and run, interrupts are not enabled, etc...
    This mode is intended to allow RTTT to bridge sdio as a transport
    to the chip.
    Driver only provides sdio access using the dev_mem debugfs file.
    Some fixes done to the code that ensures that PLT mode and normal
    driver power mode (ifconfig/add_interface) are mutually excluded.
    Signed-off-by: Yair Shapira <>
Commits on Oct 23, 2012
  1. @eyalsh

    wlcore: dump corrupted rx packets

    eyalsh committed
    Ease debugging in case FW reports failure to decrypt
    on packets.
    Signed-off-by: Eyal Shapira <>
  2. @eyalsh

    wclore: fix wrong rx descriptor status mask

    eyalsh committed
    The Rx descriptor status reported by the FW is 3 bits and not 2.
    Signed-off-by: Eyal Shapira <>
  3. @ariknem

    wlcore: set 5Ghz probe-req template for DFS in sched-scan

    ariknem committed
    Even passive scans on DFS channels require us to send probe requests, so
    configure the probe-req in this case.
    We forgot to fix sched-scan in our previous patch.
    Reported-by: Ido Reis <>
    Signed-off-by: Arik Nemtsov <>
Commits on Oct 22, 2012
  1. @ariknem

    wlcore: set 5Ghz probe-req template for DFS channels

    ariknem committed
    Even passive scans on DFS channels require us to send probe requests, so
    configure the probe-req in this case.
    Signed-off-by: Arik Nemtsov <>
Something went wrong with that request. Please try again.