Switch branches/tags
wl18xx-r5-20120103 wl18xx-internal-2012-05-21 wl18xx-20120203 wl18xx-20120202 wl18xx-2012-07-08 wl18xx-2012-07-08-2 wl18xx-2012-04-04 wl18xx-2012-03-23 wl18xx-2012-03-22 wl18xx-2012-03-21 wl18xx-2012-03-20 wl18xx-2012-03-02 wl18xx-2012-02-28 wl18xx-2012-02-27 wl18xx-2012-02-22 wl18xx-2012-02-21 wl18xx-2012-02-15 wl18xx-2012-02-14 wl18xx-2012-02-09 wl18xx-2012-02-08 wl18xx-2012-02-07 wl18xx-2011-12-16 wl18xx-2011-12-15 wl18xx-2011-12-15-2 wl18xx-2011-12-14 wl18xx-2011-12-13 wl18xx-2011-12-08-pre-rebase wl18xx-2011-12-02 wl18xx-2011-12-02-3 wl18xx-2011-12-02-2 wl18xx-2011-12-01 wl18xx-2011-11-30 wl18xx-2011-11-29 wl18xx-2011-11-29-2 wl18xx-2011-11-22 wl18xx-2011-11-21 wl18xx-2011-11-19-blaze wl18xx-2011-11-17-blaze wl18xx-2011-11-14-blaze wl18xx-2011-11-14-2-blaze wl18xx-2011-11-04-blaze wl18xx-2011-10-11 wl18xx-02-20 upstreaming-2013-03-25 upstreaming-2013-03-07 upstreaming-2013-03-05 upstream-3.4 testing-2011-12-12 r8.a6.06_38 r8.a3.09-build_51 r8.a3.09-build_50 r8.a3.09-build_49 r8.a3.09-build_48 r8.a3.09-build_47 r8.a3.09-build_45 r8.a3.09-build_44 r8.a3.09-build_43 r8.a3.09-build_42 r8.a3.09-build_41 r8.a3.09-build_39 r8.a3.09-build_38 r8.a3.09-build_37 r8.a3.09-build_36 r8.a3.09-build_35 r8.a3.09-build_30 r8.a3.09-build_29 r8.a3.09-build_28 r8.a3.09-build_27 r8.a3.09-build_25 r8.a3.09-build_24 r8.a3.09-build_23 r8.a3.09-build_22 r8.a3.09-build_21 r8.a3.09-build_20 r8.a3.09-build_19 r8.a3.08-build_18 r8.a3.08-build_16 r8.a3.08-build_14 r8.a3.08-build_13 r8.a3.08-build_12 r8.a3.08-build_11 r8.a3.08-build_10 r8.a3.05-build_7 r8.a3.05-build_6 r8.a3.05-build_5 r8.a3.05-build_4 r8.a3.05-build_3 r8.a3.05-build_1 r8.a2.09 r8.a2.08 r8.a2.08-candidate r8.a2.07 r8.a2.07-build_146 r8.a2.07-build_141 r8.a2.07-build_140 r8.a2.07-build_139 r8.a2.07-build_136 r8.a2.06 r8.a2.05 r8.a2.04
Nothing to show
Commits on Oct 10, 2012
  1. wl18xx: use different fw name

    The fw api was changed significantly in order to give
    some backward-compatibility with the 12xx fw.
    Use a new fw filename (wl18xx-fw-2.bin) to indicate it,
    and update the min 18xx fw version.
    TODO: update the min 12xx fw version as well.
    Signed-off-by: Eliad Peller <>
    elp committed Sep 20, 2012
  2. wlcore: add ACX_PEER_CAP command

    ACX_PEER_CAP command is just ACX_PEER_HT_CAP, but allows
    configuring the peer's support rates as well.
    this is needed because we start the station role when
    the remote rates are not known yet.
    the two commands should be unified in future fw versions,
    but for now add a new set_peer_cap per-hw op, that will
    use ACX_PEER_CAP for 18xx, and ACX_PEER_HT_CAP for 12xx.
    Signed-off-by: Eliad Peller <>
    elp committed Sep 23, 2012
  3. wlcore: make beacon_loss work per-vif

    The latest fw api change added the beacon-loss
    indication per-role, so make the appropriate
    changes in the driver to indicate beacon loss
    only for the relevant station.
    Signed-off-by: Eliad Peller <>
    elp committed Oct 9, 2012
  4. wlcore: update event mailbox to new fw api

    The event mailbox now has different structure
    for 12xx and 18xx.
    For now, handle only 18xx.
    TODO: handle 12xx as well
    Signed-off-by: Eliad Peller <>
    elp committed Sep 12, 2012
  5. wlcore: update events enum to new fw api

    some events were removed in the latest fw api.
    remove their handling from the driver as well.
    Signed-off-by: Eliad Peller <>
    elp committed Sep 12, 2012
  6. wlcore: update channel_switch/stop_channel_switch commands

    Some fields were added to the channel_switch and
    stop_channel_switch commands. Update the driver
    Signed-off-by: Eliad Peller <>
    elp committed Sep 12, 2012
  7. wlcore: increase MAX_CHANNELS_5GHZ

    24 channels were not enough for some regdomains (e.g. JP).
    so it was increased it to 32.
    Signed-off-by: Eliad Peller <>
    elp committed Sep 12, 2012
  8. wlcore: update acx enum

    update the acx enum to the new fw api.
    Signed-off-by: Eliad Peller <>
    elp committed Sep 10, 2012
  9. wlcore: save session_id per-link

    A new session_id is generated on link allocation.
    it is saved in a global array and used later, on tx.
    The new fw api adds new bcast/global_session_id
    fields to start_role(ap) command, and a new session_id
    field to add_peer command. align the driver with it.
    Signed-off-by: Eliad Peller <>
    elp committed Sep 10, 2012
Commits on Oct 9, 2012
  1. wlcore: update commands enum to new fw api

    Align the commands enum with the new fw api (
    Add some code to fail any boot attempt during
    the fw api alignment patches. This code will
    be removed by the last patch.
    Signed-off-by: Eliad Peller <>
    elp committed Sep 10, 2012
Commits on Sep 30, 2012
  1. wl18xx: set last Tx rate from FW status

    Obtain the last Tx rate from the FW status and translate it to
    the mac80211 rate+flag format before sending it up via the Tx status.
    Bump up the min FW version to the first FW that supports the rate byte.
    Signed-off-by: Arik Nemtsov <>
    ariknem committed Sep 30, 2012
Commits on Sep 27, 2012
  1. wlcore: improved Tx scheduling algorithm

    Prioritize EDCA by choosing the AC before anything else. Use the
    fast/slow link bitmap in FW to improve the scheduling algorithm for
    the multi-link scenario.
    Set packet thresholds to determine if a given link is high or low
    priority according to its speed. A slow link will be given high priority
    if the amount of packets queued for it in the FW is lower than the
    slow-threshold. Similarly, a fast link will be given high priority if
    the number of its packets queued in FW is smaller than the high-threshold.
    The improved algorithm:
    1. Choose optimal AC according to FW utilization
    2. Traversing the VIFs in a round-robin fashion, try to choose a high
       priority link. Links are traversed in a round-robin fashion inside a
    3. If no high priority links are found, choose the first non-empty
       (low priority) link found in the round robin.
    Signed-off-by: Arik Nemtsov <>
    ariknem committed Sep 23, 2012
  2. wlcore: track FW-allocated packets per link

    Move FW-allocation tracking code to the fw_status function and track
    allocations made by all links. These will be incorporated in the
    improved Tx scheduling algorithm.
    Manually zero the system link counters on op_stop, as this link is not
    allocated the normal way.
    Signed-off-by: Arik Nemtsov <>
    ariknem committed Sep 25, 2012
  3. wlcore: count packets held per AC in each vif

    This accounting will help find a vif that has data in a specific AC.
    Otherwise we have to traverse all the links, which can be lengthy for
    the AP case.
    Signed-off-by: Arik Nemtsov <>
    ariknem committed Sep 23, 2012
  4. wlcore: track wlvif inside per-link structure

    This allows us to pass only the link as a parameter to various functions
    and deduce the wlvif. Note that this member will be NULL for global
    Signed-off-by: Arik Nemtsov <>
    ariknem committed Sep 23, 2012
  5. wlcore: initialize per-link FW freed blocks correctly

    When a link is allocated, sometimes the "freed packets" counter in FW
    is non zero, but we always assumed it is. This caused us to incorrectly
    account FW allocated blocks in some cases.
    When operating in AP mode, this bug caused some stations to never
    come back from PSM.
    Signed-off-by: Arik Nemtsov <>
    ariknem committed Sep 25, 2012
  6. wlcore: restore default channel configuration

    wlcore allocates two static structs wl1271_band_2ghz & wl1271_band_5ghz
    which are used/modified by Reg-Domain e.g. some channel might be marked
    as passive at some point. Make sure we don't keep stale settings around
    if the HW is unregistered/registered during operation.
    [Arik - use Tx-power constant and tweak commit message]
    Signed-off-by: Victor Goldenshtein <>
    Signed-off-by: Assaf Azulay <>
    Signed-off-by: Arik Nemtsov <>
    assafazulay committed with ariknem Sep 26, 2012
Commits on Sep 25, 2012
  1. wlcore: consolidate free_link and always call it

    Make sure free_link is always called when removing an interface. This
    ensures all skbs belonging to this interface are returned to mac80211.
    Otherwise these dangling skbs might crash the system on the next
    call to wl1271_tx_reset_link_queues(). This happens on recovery/stop or
    an unsuccessful Tx flush.
    Signed-off-by: Ido Yariv <>
    Signed-off-by: Arik Nemtsov <>
    ariknem committed Sep 24, 2012
  2. wlcore: take the mutex before resetting Tx queues

    Otherwise we risk contention for private members of our global structure
    while op_stop_locked is running.
    Reported-by: Ido Yariv <>
    Signed-off-by: Arik Nemtsov <>
    ariknem committed Sep 24, 2012
  3. wlcore: remove unnecessary WARN_ON in wl12xx_tx_reset

    Sometimes the driver can perform a recovery while Tx is
    active, this will trigger unnecessary warning which might
    delay the recovery for more than 100 mS.
    Signed-off-by: Victor Goldenshtein <>
    victorgld committed with ariknem Sep 23, 2012
Commits on Sep 24, 2012
  1. wl18xx: FDSP Clock (FDSP Code RAM Corruption fix)

    In PG2.0 there is an issue where PHY's FDSP Code RAM sometimes gets
    corrupted when exiting from ELP mode. This issue is related to FDSP
    Code RAM clock implementation.
    PG2.1 introduces a HW fix for this issue that requires the driver to
    change the FDSP Code Ram clock settings (mux it to ATGP clock instead
    of its own clock).
    This workaround uses PHY_FPGA_SPARE_1 register and is relevant to WL8
    PG2.1 devices.
    The fix is also backward compatible with older PG2.0 devices where the
    register PHY_FPGA_SPARE_1 is not used and not connected.
    The fix is done in the wl18xx_pre_upload function (must be performed
    before uploading the FW code) and includes the following steps:
    1. Disable FDSP clock
    2. Set ATPG clock toward FDSP Code RAM rather than its own clock.
    3. Re-enable FDSP clock
    Signed-off-by: Yair Shapira <>
    Signed-off-by: Ido Reis <>
    Ido Reis committed Sep 24, 2012
  2. wlcore: fwlog dynamic mem_block control

    number of fwlog mem_blocks can be configured using module param.
    this is a fw debug feature: in case a large fw log data is busrted during
    a short period of time, the memory get filled and data is lost.
    this allows us to dynamicly set the fw log mem_block usage, although
    configuring more mem_block for logger comes at the expense of TP.
    Signed-off-by: Yair Shapira <>
    Signed-off-by: Ido Reis <>
    Ido Reis committed Sep 24, 2012
Commits on Sep 20, 2012
  1. mac80211: ignore global channel type when starting AP

    A bogus check was left in the code that failed the creation of an AP
    with a channel different from that configured to an already operating
    Signed-off-by: Arik Nemtsov <>
    ariknem committed Sep 20, 2012
Commits on Sep 13, 2012
  1. nl80211: update definitions from newest wpa_s

    added channel switch related commands
    Signed-off-by: Arik Nemtsov <>
    ariknem committed Sep 13, 2012
Commits on Sep 9, 2012
  1. 18xx: declare support for greenfield ht_cap

    The 18xx fw supports greenfield so add the
    IEEE80211_HT_CAP_GRN_FLD flag to the supported
    ht capabilities flags.
    Signed-off-by: Eliad Peller <>
    Signed-off-by: Ido Reis <>
    elp committed with Ido Reis Aug 28, 2012
  2. mac80211: use call_rcu() on sta deletion

    mac80211 calls synchronize_rcu() on sta deletion,
    which increase the roaming time significantly.
    Convert it into a call_rcu() mechanism, in order
    to avoid blocking. Since some of the cleanup
    functions might sleep, schedule from the call_rcu
    callback a new work that will do the actual cleanup.
    In order to make sure the cleanup occurs before
    the interface went down, flush local->workqueue
    on ieee80211_do_stop().
    Signed-off-by: Yoni Divinsky <>
    Signed-off-by: Eliad Peller <>
    elp committed Sep 3, 2012
  3. mac80211: use synchronize_net() on key destroying

    __ieee80211_key_destroy() calls synchronize_rcu() in
    order to sync the tx path before destroying the key.
    However, synching the tx path can be done with
    synchronize_net() as well, which is usually faster
    (the timing might be important for roaming scenarios).
    Signed-off-by: Eliad Peller <>
    elp committed Sep 3, 2012
  4. mac80211: clear bssid on auth/assoc failure

    ifmgd->bssid wasn't cleared properly in some
    auth/assoc failure cases, causing mac80211 and
    the low-level driver to go out of sync.
    Clear ifmgd->bssid on failure, and notify the driver.
    Cc: # 3.4+
    Signed-off-by: Eliad Peller <>
    elp committed Sep 3, 2012
  5. wlcore: check wl->state before setting default key

    wl1271_op_set_default_key_idx() lacks a check
    of wl->state, causing the driver to try writing
    to a powered-off device in some cases (e.g.
    during recovery)
    Signed-off-by: Eliad Peller <>
    elp committed Sep 3, 2012
Commits on Sep 6, 2012
  1. wlcore: update AP rates after band change

    The channel and band are updated after the basic rates have already
    been set. This causes us to choose wrong HW rate indices that are passed
    to FW. Fix this by updating basic rates when the channel is updated.
    Signed-off-by: Arik Nemtsov <>
    ariknem committed with Ido Reis Sep 6, 2012
Commits on Sep 5, 2012
  1. Revert "mac80211: use legacy mode for all ACs"

    This reverts commit a5e6e2a.
    There are problems with BT voice if we don't use UAPSD mode for VO.
    ariknem committed Sep 5, 2012
  2. wlcore: clear roc_vif on iface removal

    When removing an interface currently performing a ROC operation, clear
    the current ROC state. This is useful especially during recovery and
    keeps mac80211 in sync to our state.
    Signed-off-by: Arik Nemtsov <>
    ariknem committed Sep 5, 2012
Commits on Sep 4, 2012
  1. mac80211: Delay sta deletion to make roaming faster (INTERNAL)

    In mac80211 STA all peers are deleted before auth
    to a new AP. Due to the rcu synchornization this
    process can take a long period.
    Move the sta object freeing of the old AP and
    the rcu synchronization to a later time after
    the roaming is completed.
    Signed-off-by: Yoni Divinsky <>
    Signed-off-by: Eliad Peller <>
    yonid committed with ariknem Sep 3, 2012
  2. wlcore: protect wlcore_op_set_key with mutex

    wlcore_op_set_key() calls wl18xx_set_key(),
    which in turn executes some of his function
    calls without acquiring wl->mutex and making
    sure the fw is awake.
    Adding mutex_lock()/ps_elp_wakeup() calls is
    not enough, as wl18xx_set_key() calls
    wl1271_tx_flush() which can't be called while
    the mutex is taken.
    Add the required calls to wlcore_op_set_key,
    but limit the queues_stop and flushing
    to the only encryption types in which
    a spare block might be needed (GEM and TKIP).
    [Arik - move state != ON check]
    Signed-off-by: Eliad Peller <>
    Signed-off-by: Arik Nemtsov <>
    elp committed with ariknem Sep 3, 2012