05 Jan, 2012

1 commit

  • Ideally, hardware/firmware initialization is complete after the
    drv_start routine. In mac80211 restart code (ieee80211_reconfig),
    defer calling the driver commands i.e. setup fragmentation
    threshold, rts threshold and coverage class till drv_start
    routine is called.

    Signed-off-by: Nishant Sarmukadam
    Signed-off-by: Yogesh Ashok Powar

    v2: Removed extra blank line added.
    Signed-off-by: John W. Linville

    Yogesh Ashok Powar
     

14 Dec, 2011

1 commit


07 Dec, 2011

1 commit


03 Dec, 2011

1 commit


01 Dec, 2011

1 commit


29 Nov, 2011

1 commit


23 Nov, 2011

1 commit


22 Nov, 2011

3 commits

  • This implements ht-cap over-rides for mac80211 drivers.
    HT may be disabled, making an /a/b/g/n station act like an
    a/b/g station. HT40 may be disabled forcing the station to
    be HT20 even if the AP and local hardware support HT40.

    MAX-AMSDU may be disabled.
    AMPDU-Density may be increased.
    AMPDU-Factor may be decreased.

    This has been successfully tested with ath9k using patched
    wpa_supplicant and iw.

    Signed-off-by: Ben Greear
    Signed-off-by: John W. Linville

    Ben Greear
     
  • No other driver ever ended up using this, and
    the commit forgot to move the prototype so no
    driver could have used it. Revert it, if any
    driver shows up and needs it it can be moved
    again, but until then it's more efficient to
    have it in mac80211 where the only user is.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • We are currently linking the skbs by using skb->next
    directly. This works, but the preferred way is to use
    a struct sk_buff_head instead. That also prepares for
    passing that to drivers directly.

    While at it I noticed we calculate the duration for
    fragments twice -- remove one of them.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     

12 Nov, 2011

2 commits

  • Allow setting a probe response template for an interface operating in
    AP mode. Low level drivers are notified about changes in the probe
    response template and are able to retrieve a copy of the current probe
    response. This data can, for example, be uploaded to hardware as a
    template.

    Signed-off-by: Guy Eilam
    Signed-off-by: Arik Nemtsov
    Signed-off-by: John W. Linville

    Arik Nemtsov
     
  • Driver should be instructed to enter PS AFTER
    reconfiguring ASSOCIATED (in STA case) using ieee80211_bss_info_change_notify
    same as it's being done in ieee80211_set_associated()

    Signed-off-by: Eyal Shapira
    Signed-off-by: John W. Linville

    Eyal Shapira
     

10 Nov, 2011

3 commits


09 Nov, 2011

1 commit


01 Nov, 2011

1 commit


01 Oct, 2011

3 commits

  • The flaglock in struct sta_info has long been
    something that I wanted to get rid of, this
    finally does the conversion to atomic bitops.

    The conversion itself is straight-forward in
    most places, a few things needed to change a
    bit since we can no longer use multiple bits
    at the same time.

    On x86-64, this is a fairly significant code
    size reduction:
    text data bss dec hex
    427861 23648 1008 452517 6e7a5 before
    425383 23648 976 450007 6ddd7 after

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • Now that we no longer use the return value, we no
    longer need to maintain it either, so remove it.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • Relocate the mesh implementation of adding the (extended) supported
    rates IE to util.c, anticipating its use by other parts of mac80211.

    Signed-off-by: Arik Nemtsov
    Cc: Kalyan C Gaddam
    Signed-off-by: John W. Linville

    Arik Nemtsov
     

28 Sep, 2011

2 commits


15 Sep, 2011

1 commit


14 Sep, 2011

1 commit


13 Aug, 2011

1 commit


11 Aug, 2011

1 commit


20 Jul, 2011

1 commit


19 Jul, 2011

1 commit

  • Add tx_conf array to save the current tx queues
    configuration, and reconfig it on resume (ieee80211_reconfig).

    On resume, the driver is being reconfigured. Without
    reconfiguring the tx queues as well, the driver might
    configure the device to use wrong ac params (e.g. ps-poll
    instead of uapsd).

    Signed-off-by: Eliad Peller
    Signed-off-by: John W. Linville

    Eliad Peller
     

16 Jul, 2011

1 commit

  • When suspending with all netdevs down, the device
    is stopped but we still call a number of driver
    callbacks that the driver might not expect. The
    same happens during resume, we might call a few
    callbacks without starting the driver. Fix this
    by checking open_count around more things and
    exiting quickly if it is 0.

    Also, while at this I noticed that the coverage
    class isn't reprogrammed after resume, so add
    that.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     

14 Jul, 2011

1 commit

  • In WoWLAN, devices may use crypto keys for TX/RX
    and could also implement GTK rekeying. If the
    driver isn't able to retrieve replay counters and
    similar information from the device upon resume,
    or if the device isn't responsive due to platform
    issues, it isn't safe to keep the connection up
    as GTK rekey messages from during the sleep time
    could be replayed against it.

    The only protection against that is disconnecting
    from the AP. Modifying mac80211 to do that while
    it is resuming would be very complex and invasive
    in the case that the driver requires a reconfig,
    so do it after it has resumed completely. In that
    case, however, packets might be replayed since it
    can then only happen after TX/RX are up again, so
    mark keys for interfaces that need to disconnect
    as "tainted" and drop all packets that are sent
    or received with those keys.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     

12 Jul, 2011

1 commit

  • mac80211 maintains a running average of the RSSI when a STA
    is associated to an AP. Report threshold events to any driver
    that has registered callbacks for getting RSSI measurements.

    Implement callbacks in mac80211 so that driver can set thresholds.
    Add callbacks in mac80211 which is invoked when an RSSI threshold
    event occurs.

    mac80211: add tracing to rssi_reports api and remove extraneous fn argument
    mac80211: scale up rssi thresholds from driver by 16 before storing

    Signed-off-by: Meenakshi Venkataraman
    Signed-off-by: Wey-Yi Guy
    Signed-off-by: John W. Linville

    Meenakshi Venkataraman
     

28 Jun, 2011

1 commit


11 Jun, 2011

1 commit

  • Function ieee80211_reconfig in net/mac80211/util.c contains label wake_up
    which is defined unconditionally, but only used with CONFIG_PM. Gcc
    warns about this when CONFIG_PM is not defined.

    This patch makes the label's definition dependent on CONFIG_PM too,
    eliminating the warning.

    The issue was apparently introduced in git commit
    eecc48000afe2ca6da22122d553b7cad294e42fc.

    Signed-off-by: Vincent Zweije
    Signed-off-by: John W. Linville

    Vincent Zweije
     

06 May, 2011

1 commit

  • This adds basic support for the new WoWLAN
    configuration in mac80211. The behaviour is
    completely offloaded to the driver though,
    with two new callbacks (suspend/resume).

    Options for the driver include a complete
    reconfiguration after wakeup, and exposing
    all the triggers it wants to support.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     

05 Apr, 2011

1 commit

  • We currently run this timer exactly once when
    a new mac80211 device is registered, but that
    is completely pointless since it will have no
    work to do at all. Therefore, remove that and
    also simplify some code using the timer.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     

19 Feb, 2011

2 commits


10 Feb, 2011

1 commit

  • When suspending an associated system, and then resuming,
    the station vif is being reconfigured without taking the
    sdata->u.mgd.mtx lock, which results in the following warning:

    WARNING: at net/mac80211/mlme.c:101 ieee80211_ap_probereq_get+0x58/0xb8 [mac80211]()
    Modules linked in: wl12xx_sdio wl12xx firmware_class crc7 mac80211 cfg80211 [last unloaded: crc7]
    Backtrace:
    [] (dump_backtrace+0x0/0x118) from [] (dump_stack+0x20/0x24)
    r7:00000000 r6:bf12d6ec r5:bf154aac r4:00000065
    [] (dump_stack+0x0/0x24) from [] (warn_slowpath_common+0x5c/0x74)
    [] (warn_slowpath_common+0x0/0x74) from [] (warn_slowpath_null+0x2c/0x34)
    r9:000024ff r8:cd006460 r7:00000001 r6:00000000 r5:00000000
    r4:cf1394a0
    [] (warn_slowpath_null+0x0/0x34) from [] (ieee80211_ap_probereq_get+0x58/0xb8 [mac80211])
    [] (ieee80211_ap_probereq_get+0x0/0xb8 [mac80211]) from [] (wl1271_cmd_build_ap_probe_req+0x30/0xf8 [wl12xx])
    r4:cd007440
    [] (wl1271_cmd_build_ap_probe_req+0x0/0xf8 [wl12xx]) from [] (wl1271_op_bss_info_changed+0x4c4/0x808 [wl12xx])
    r5:cd007440 r4:000003b4
    [] (wl1271_op_bss_info_changed+0x0/0x808 [wl12xx]) from [] (ieee80211_bss_info_change_notify+0x1a4/0x1f8 [mac80211])
    [] (ieee80211_bss_info_change_notify+0x0/0x1f8 [mac80211]) from [] (ieee80211_reconfig+0x4d0/0x668 [mac80211])
    r8:cf0eeea4 r7:cd00671c r6:00000000 r5:cd006460 r4:cf1394a0
    [] (ieee80211_reconfig+0x0/0x668 [mac80211]) from [] (ieee80211_resume+0x60/0x70 [mac80211])
    [] (ieee80211_resume+0x0/0x70 [mac80211]) from [] (wiphy_resume+0x6c/0x7c [cfg80211])
    r5:cd006248 r4:cd006110
    [] (wiphy_resume+0x0/0x7c [cfg80211]) from [] (legacy_resume+0x38/0x70)
    r7:00000000 r6:00000000 r5:cd006248 r4:cd0062fc
    [] (legacy_resume+0x0/0x70) from [] (device_resume+0x168/0x1a0)
    r8:c04ca8d8 r7:cd00627c r6:00000010 r5:cd006248 r4:cd0062fc
    [] (device_resume+0x0/0x1a0) from [] (dpm_resume_end+0xf8/0x3bc)
    r7:00000000 r6:00000005 r5:cd006248 r4:cd0062fc
    [] (dpm_resume_end+0x0/0x3bc) from [] (suspend_devices_and_enter+0x1b0/0x204)
    [] (suspend_devices_and_enter+0x0/0x204) from [] (enter_state+0xf0/0x148)
    r7:c037e978 r6:00000003 r5:c043d807 r4:00000000
    [] (enter_state+0x0/0x148) from [] (state_store+0xa4/0xcc)
    r7:c037e978 r6:00000003 r5:00000003 r4:c043d807
    [] (state_store+0x0/0xcc) from [] (kobj_attr_store+0x20/0x24)
    [] (kobj_attr_store+0x0/0x24) from [] (sysfs_write_file+0x11c/0x150)
    [] (sysfs_write_file+0x0/0x150) from [] (vfs_write+0xc0/0x14c)
    [] (vfs_write+0x0/0x14c) from [] (sys_write+0x4c/0x78)
    r8:40126000 r7:00000004 r6:cf1a7c80 r5:00000000 r4:00000000
    [] (sys_write+0x0/0x78) from [] (ret_fast_syscall+0x0/0x30)
    r8:c00502c8 r7:00000004 r6:403525e8 r5:40126000 r4:00000004

    Signed-off-by: Eliad Peller
    Signed-off-by: John W. Linville

    Eliad Peller
     

23 Dec, 2010

2 commits

  • The throughput LED trigger was always active when
    the radio was enabled. In most cases that's likely
    the desired behaviour, but iwlwifi requires it to
    be only active when one of the virtual interfaces
    is actually "connected" in some way.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • iwlwifi and other drivers like to blink their LED
    based on throughput. Implement this generically in
    mac80211, based on a throughput table the driver
    specifies. That way, drivers can set the blink
    frequencies depending on their desired behaviour
    and max throughput.

    All the drivers need to do is provide an LED class
    device, best with blink hardware offload.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg