1. 12 4月, 2012 1 次提交
  2. 15 2月, 2012 1 次提交
  3. 15 12月, 2011 1 次提交
    • L
      wl12xx: don't write out of bounds when hlid > WL12XX_MAX_LINKS · f414218e
      Luciano Coelho 提交于
      We should not get an hlid value bigger than WL12XX_MAX_LINKS from
      wl1271_rx_handle_data().  We have a WARN_ON in case it happens.  But
      despite the warning, we would still go ahead and write the hlid bit
      into active_hlids (a stack variable).  This would cause us to
      overwrite other data in the stack.
      
      To avoid this problem, we now skip the write when issuing the warning,
      so at least we don't corrupt data.
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      f414218e
  4. 11 10月, 2011 2 次提交
  5. 07 10月, 2011 1 次提交
  6. 14 9月, 2011 2 次提交
  7. 22 8月, 2011 2 次提交
  8. 12 8月, 2011 1 次提交
  9. 27 6月, 2011 3 次提交
    • I
      wl12xx: Support routing FW logs to the host · 95dac04f
      Ido Yariv 提交于
      A recently added feature to the firmware enables the driver to retrieve
      firmware logs via the host bus (SDIO or SPI).
      
      There are two modes of operation:
      1. On-demand: The FW collects its log in an internal ring buffer. This
         buffer can later be read, for example, upon recovery.
      2. Continuous: The FW pushes the FW logs as special packets in the RX
         path.
      
      Reading the internal ring buffer does not involve the FW. Thus, as long
      as the HW is not in ELP, it should be possible to read the logs, even if
      the FW crashes.
      
      A sysfs binary file named "fwlog" was added to support this feature,
      letting a monitor process read the FW messages. The log is transferred
      from the FW only when available, so the reading process might block.
      Signed-off-by: NIdo Yariv <ido@wizery.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      95dac04f
    • E
      wl12xx: use freezable workqueue for netstack_work · 92ef8960
      Eliad Peller 提交于
      When resuming (after wowlan), we want the rx packets (which is
      usually the wake-up packet itself) to be passed to mac80211 only
      after the resume notifier was completed, and mac80211 is up and
      running (otherwise, the packets will be dropped).
      
      By enqueueing the netstack_work to a freezable workqueue, we can
      guarantee the rx processing to occur only after mac80211 was resumed.
      Signed-off-by: NEliad Peller <eliad@wizery.com>
      Signed-off-by: NIdo Yariv <ido@wizery.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      92ef8960
    • E
      wl12xx: add automatic rx streaming triggers · 77ddaa10
      Eliad Peller 提交于
      When rx_streaming.interval is non-zero, use automatic rx streaming.
      Enable rx streaming on the each rx/tx packet, and disable it
      rx_streaming.duration msecs later.
      
      When rx_streaming.always=0 (default), rx streaming is enabled only
      when there is a coex operation.
      Signed-off-by: NEliad Peller <eliad@wizery.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      77ddaa10
  10. 02 5月, 2011 2 次提交
  11. 19 4月, 2011 2 次提交
  12. 03 3月, 2011 2 次提交
    • I
      wl12xx: Switch to a threaded interrupt handler · a620865e
      Ido Yariv 提交于
      To achieve maximal throughput, it is very important to react to
      interrupts as soon as possible. Currently the interrupt handler wakes up
      a worker for handling interrupts in process context. A cleaner and more
      efficient design would be to request a threaded interrupt handler.  This
      handler's priority is very high, and can do blocking operations such as
      SDIO/SPI transactions.
      
      Some work can be deferred, mostly calls to mac80211 APIs
      (ieee80211_rx_ni and ieee80211_tx_status). By deferring such work to a
      different worker, we can keep the irq handler thread more I/O
      responsive. In addition, on multi-core systems the two threads can be
      scheduled on different cores, which will improve overall performance.
      
      The use of WL1271_FLAG_IRQ_PENDING & WL1271_FLAG_IRQ_RUNNING was
      changed. For simplicity, always query the FW for more pending
      interrupts. Since there are relatively long bursts of interrupts, the
      extra FW status read overhead is negligible. In addition, this enables
      registering the IRQ handler with the ONESHOT option.
      Signed-off-by: NIdo Yariv <ido@wizery.com>
      Reviewed-by: NLuciano Coelho <coelho@ti.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      a620865e
    • I
      wl12xx: Do end-of-transactions transfers only if needed · 606ea9fa
      Ido Yariv 提交于
      On newer hardware revisions, there is no need to write the host's
      counter at the end of a RX transaction. The same applies to writing the
      number of packets at the end of a TX transaction.
      
      It is generally a good idea to avoid unnecessary SDIO/SPI transfers.
      Throughput and CPU usage are improved when avoiding these.
      
      Send the host's RX counter and the TX packet count only if needed, based
      on the hardware revision.
      
      [Changed WL12XX_QUIRK_END_OF_TRANSACTION to use BIT(0) -- Luca]
      Signed-off-by: NIdo Yariv <ido@wizery.com>
      Signed-off-by: NOhad Ben-Cohen <ohad@wizery.com>
      Reviewed-by: NLuciano Coelho <coelho@ti.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      606ea9fa
  13. 23 2月, 2011 1 次提交
  14. 09 2月, 2011 1 次提交
  15. 25 1月, 2011 2 次提交
    • A
      wl12xx: AP specific RX filter configuration · ae113b57
      Arik Nemtsov 提交于
      Set filters according to the mode of operation.
      Signed-off-by: NArik Nemtsov <arik@wizery.com>
      Reviewed-by: NLuciano Coelho <coelho@ti.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      ae113b57
    • E
      wl12xx: fix some sparse warnings · 6177eaea
      Eliad Peller 提交于
      Note that wl1271_write32() calls cpu_to_le32() by itself, so calling
      wl1271_write32(addr, cpu_to_le32(val)) is in fact a bug on BE systems.
      
      Fix the following sparse warnings:
      
      drivers/net/wireless/wl12xx/cmd.c:662:16: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/wl12xx/cmd.c:662:16:    expected unsigned short [unsigned] [addressable] [usertype] llc_type
      drivers/net/wireless/wl12xx/cmd.c:662:16:    got restricted __be16 [usertype] <noident>
      drivers/net/wireless/wl12xx/cmd.c:674:17: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/wl12xx/cmd.c:674:17:    expected unsigned int [unsigned] [addressable] [usertype] sender_ip
      drivers/net/wireless/wl12xx/cmd.c:674:17:    got restricted __be32 [usertype] ip_addr
      drivers/net/wireless/wl12xx/rx.c:202:4: warning: incorrect type in argument 3 (different base types)
      drivers/net/wireless/wl12xx/rx.c:202:4:    expected unsigned int [unsigned] [usertype] val
      drivers/net/wireless/wl12xx/rx.c:202:4:    got restricted __le32 [usertype] <noident>
      drivers/net/wireless/wl12xx/acx.c:1247:23: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/wl12xx/acx.c:1247:23:    expected restricted __le32 [usertype] ht_capabilites
      drivers/net/wireless/wl12xx/acx.c:1247:23:    got unsigned long
      drivers/net/wireless/wl12xx/acx.c:1250:24: warning: invalid assignment: |=
      drivers/net/wireless/wl12xx/acx.c:1250:24:    left side has type restricted __le32
      drivers/net/wireless/wl12xx/acx.c:1250:24:    right side has type unsigned long
      drivers/net/wireless/wl12xx/acx.c:1253:24: warning: invalid assignment: |=
      drivers/net/wireless/wl12xx/acx.c:1253:24:    left side has type restricted __le32
      drivers/net/wireless/wl12xx/acx.c:1253:24:    right side has type unsigned long
      drivers/net/wireless/wl12xx/acx.c:1256:24: warning: invalid assignment: |=
      drivers/net/wireless/wl12xx/acx.c:1256:24:    left side has type restricted __le32
      drivers/net/wireless/wl12xx/acx.c:1256:24:    right side has type unsigned long
      Signed-off-by: NEliad Peller <eliad@wizery.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      6177eaea
  16. 22 1月, 2011 1 次提交
    • B
      cfg80211: Extend channel to frequency mapping for 802.11j · 59eb21a6
      Bruno Randolf 提交于
      Extend channel to frequency mapping for 802.11j Japan 4.9GHz band, according to
      IEEE802.11 section 17.3.8.3.2 and Annex J. Because there are now overlapping
      channel numbers in the 2GHz and 5GHz band we can't map from channel to
      frequency without knowing the band. This is no problem as in most contexts we
      know the band. In places where we don't know the band (and WEXT compatibility)
      we assume the 2GHz band for channels below 14.
      
      This patch does not implement all channel to frequency mappings defined in
      802.11, it's just an extension for 802.11j 20MHz channels. 5MHz and 10MHz
      channels as well as 802.11y channels have been omitted.
      
      The following drivers have been updated to reflect the API changes:
      iwl-3945, iwl-agn, iwmc3200wifi, libertas, mwl8k, rt2x00, wl1251, wl12xx.
      The drivers have been compile-tested only.
      Signed-off-by: NBruno Randolf <br1@einfach.org>
      Signed-off-by: NBrian Prodoehl <bprodoehl@gmail.com>
      Acked-by: NLuciano Coelho <coelho@ti.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      59eb21a6
  17. 22 11月, 2010 1 次提交
  18. 16 11月, 2010 3 次提交
  19. 05 10月, 2010 1 次提交
  20. 21 9月, 2010 1 次提交
  21. 30 7月, 2010 1 次提交
  22. 09 7月, 2010 1 次提交
  23. 22 5月, 2010 1 次提交
  24. 01 4月, 2010 2 次提交
  25. 30 3月, 2010 1 次提交
    • T
      include cleanup: Update gfp.h and slab.h includes to prepare for breaking... · 5a0e3ad6
      Tejun Heo 提交于
      include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
      
      percpu.h is included by sched.h and module.h and thus ends up being
      included when building most .c files.  percpu.h includes slab.h which
      in turn includes gfp.h making everything defined by the two files
      universally available and complicating inclusion dependencies.
      
      percpu.h -> slab.h dependency is about to be removed.  Prepare for
      this change by updating users of gfp and slab facilities include those
      headers directly instead of assuming availability.  As this conversion
      needs to touch large number of source files, the following script is
      used as the basis of conversion.
      
        http://userweb.kernel.org/~tj/misc/slabh-sweep.py
      
      The script does the followings.
      
      * Scan files for gfp and slab usages and update includes such that
        only the necessary includes are there.  ie. if only gfp is used,
        gfp.h, if slab is used, slab.h.
      
      * When the script inserts a new include, it looks at the include
        blocks and try to put the new include such that its order conforms
        to its surrounding.  It's put in the include block which contains
        core kernel includes, in the same order that the rest are ordered -
        alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
        doesn't seem to be any matching order.
      
      * If the script can't find a place to put a new include (mostly
        because the file doesn't have fitting include block), it prints out
        an error message indicating which .h file needs to be added to the
        file.
      
      The conversion was done in the following steps.
      
      1. The initial automatic conversion of all .c files updated slightly
         over 4000 files, deleting around 700 includes and adding ~480 gfp.h
         and ~3000 slab.h inclusions.  The script emitted errors for ~400
         files.
      
      2. Each error was manually checked.  Some didn't need the inclusion,
         some needed manual addition while adding it to implementation .h or
         embedding .c file was more appropriate for others.  This step added
         inclusions to around 150 files.
      
      3. The script was run again and the output was compared to the edits
         from #2 to make sure no file was left behind.
      
      4. Several build tests were done and a couple of problems were fixed.
         e.g. lib/decompress_*.c used malloc/free() wrappers around slab
         APIs requiring slab.h to be added manually.
      
      5. The script was run on all .h files but without automatically
         editing them as sprinkling gfp.h and slab.h inclusions around .h
         files could easily lead to inclusion dependency hell.  Most gfp.h
         inclusion directives were ignored as stuff from gfp.h was usually
         wildly available and often used in preprocessor macros.  Each
         slab.h inclusion directive was examined and added manually as
         necessary.
      
      6. percpu.h was updated not to include slab.h.
      
      7. Build test were done on the following configurations and failures
         were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my
         distributed build env didn't work with gcov compiles) and a few
         more options had to be turned off depending on archs to make things
         build (like ipr on powerpc/64 which failed due to missing writeq).
      
         * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
         * powerpc and powerpc64 SMP allmodconfig
         * sparc and sparc64 SMP allmodconfig
         * ia64 SMP allmodconfig
         * s390 SMP allmodconfig
         * alpha SMP allmodconfig
         * um on x86_64 SMP allmodconfig
      
      8. percpu.h modifications were reverted so that it could be applied as
         a separate patch and serve as bisection point.
      
      Given the fact that I had only a couple of failures from tests on step
      6, I'm fairly confident about the coverage of this conversion patch.
      If there is a breakage, it's likely to be something in one of the arch
      headers which should be easily discoverable easily on most builds of
      the specific arch.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Guess-its-ok-by: NChristoph Lameter <cl@linux-foundation.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
      5a0e3ad6
  26. 10 3月, 2010 3 次提交