Skip to content
Commits on Dec 18, 2012
  1. @elp

    wlcore: remove set/cancel_priority ops

    elp committed
    since we now manage the ROCs on sta state updates, we
    no longer need the explicit set/cancel_priority implementations
    (which had some bugs).
    Signed-off-by: Eliad Peller <>
  2. @elp

    wlcore: use sta_state-based ROCs for AP mode

    elp committed
    Try an opportunistic ROC when a STA is first added and stop the ROC when
    the STA is removed or successfully authenticated. This would ensure we
    don't miss auth/assoc/EAPOL packets during connection
    Signed-off-by: Eliad Peller <>
    Signed-off-by: Arik Nemtsov <>
    Signed-off-by: Luciano Coelho <>
  3. @elp

    wlcore: initiate ROC/CROC on sta state updates

    elp committed
    Use the sta_state notifications to ROC when a station
    is about to connect, and CROC respectively on
    authorization (success) / deletion (failure).
    Change the wl12xx_update_sta_state() flow to bail out
    only on error, so multiple code blocks could refer
    to the same state.
    Signed-off-by: Eliad Peller <>
    Reviewed-by: Arik Nemtsov <>
    Signed-off-by: Luciano Coelho <>
Commits on Dec 17, 2012
  1. @victorgld @ariknem

    mac80211: fix NULL dereference in ieee80211_sta_process_chanswitch

    victorgld committed with ariknem
    Dereference "ifmgd->associated" while not being associated
    will cause a kernel panic:
      Unable to handle kernel NULL pointer dereference at virtual address 00000000
      pgd = c0004000
      [00000000] *pgd=00000000
      Internal error: Oops: 5 [#1] PREEMPT SMP
      Modules linked in: wlcore_sdio fmdrv_chr(C) gps_drv wl18xx wl12xx wlcore mac80211 cfg80211 ..
      CPU: 0    Tainted: G        WC   (3.0.31 #1)
      PC is at ieee80211_sta_process_chanswitch+0x10/0x28c [mac80211]
      LR is at ieee80211_sta_rx_queued_mgmt+0x220/0x5a4 [mac80211]
    Verify that the ifmgd->associated != NULL before processing
    with ieee80211_sta_process_chanswitch().
    Signed-off-by: Victor Goldenshtein <>
  2. @ariknem

    wlcore: fix link count in single-link-PSM optimization

    ariknem committed
    commit 144614f only allowed a single active link when
    turning on the optimization, ignoring the fact that an AP has two
    additional global links.
    Use 3 links as an indication for a single active link. Use the
    FW PSM bits to verify the extra active link belongs to the AP role.
    Signed-off-by: Arik Nemtsov <>
Commits on Dec 11, 2012
  1. @igalc

    wlcore: set max num of Rx BA sessions per chip

    igalc committed with Ido Reis
    Maximum number of supported RX BA sessions depends on chip type.
    wl18xx supports 5 RX BA sessions while wl12xx supports 3.
    Signed-off-by: Igal Chernobelsky <>
Commits on Dec 10, 2012
  1. @igalc

    Revert "mac80211: use legacy mode for all ACs"

    igalc committed
    This reverts commit c0ebe79
    It fixes the issue of STA in legacy/UAPSD mixed mode to send periodically
    trigger frame to AP.
    Signed-off-by: Igal Chernobelsky <>
  2. @igalc

    wlcore: enter elp in force ps mode in 5ms

    igalc committed
    It is requiered to enter sleep mode with smaller delay in forced PS mode.
    This fixes issue of testing force PS mode during VoIP traffic where packets
    are sent every 20ms. Chip never enters ps mode with default 30 ms delay
    in such test.
    Signed-off-by: Igal Chernobelsky <>
Commits on Dec 4, 2012
  1. @elp

    mac80211: extract basic rates on start_ap

    elp committed
    On ap start, the beacon is configured while
    the basic rates were not set yet (they are
    set only later by userspace).
    Since sometimes it's important to know
    the supported rates before we start
    beaconing (e.g. 11a, p2p), parse the beacon
    and configure the bss_conf with the correct
    basic rates, according to the supported_rates
    and ext_supported_rates ies.
    Signed-off-by: Eliad Peller <>
  2. @eyalsh @igalc

    mac80211: deny ADDBA on VO AC TIDs

    eyalsh committed with igalc
    Avoid Rx BA on TID 6 and 7 to prefer lower latency
    on VO AC instead of higher throughput.
    Signed-off-by: Eyal Shapira <>
    Signed-off-by: Igal Chernobelsky <>
Commits on Dec 2, 2012
  1. @eyalsh

    wlcore: disable Tx BA on TIDs 6 and 7

    eyalsh committed
    These TIDs are used for VO and we don't want
    BA to be used in VO where we prefer lower latency
    over higher throughput.
    Signed-off-by: Eyal 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. wl18xx: update default phy configuration for HDK1.8

    Ido Reis 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 <>
Something went wrong with that request. Please try again.