1. 03 8月, 2017 2 次提交
  2. 06 7月, 2017 1 次提交
  3. 21 6月, 2017 1 次提交
    • B
      ath10k: configure rxnss_override for QCA9984 · cc914a55
      Ben Greear 提交于
      QCA9984 hardware can do 4x4 at 80Mhz, but only 2x2 at 160Mhz.
      
      First, report this to user-space by setting the max-tx-speed
      and max-rx-speed vht capabilities.
      
      Second, if the peer rx-speed is configured, and if we
      are in 160 or 80+80 mode, and the peer rx-speed matches
      the max speed for 2x2 or 1x1 at 160Mhz (long guard interval),
      then use that info to set the peer_bw_rxnss_override appropriately.
      
      Without this, a 9984 firmware will not use 2x2 ratesets when
      transmitting to peer (it will be stuck at 1x1), because
      the firmware would not have configured the rxnss_override.
      Signed-off-by: NBen Greear <greearb@candelatech.com>
      [sven.eckelmann@openmesh.com: rebase, cleanup, drop 160Mhz workaround cleanup]
      Signed-off-by: NSven Eckelmann <sven.eckelmann@openmesh.com>
      [kvalo@qca.qualcomm.com: use hw_params, rename the title]
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      cc914a55
  4. 16 6月, 2017 1 次提交
    • J
      networking: introduce and use skb_put_data() · 59ae1d12
      Johannes Berg 提交于
      A common pattern with skb_put() is to just want to memcpy()
      some data into the new space, introduce skb_put_data() for
      this.
      
      An spatch similar to the one for skb_put_zero() converts many
      of the places using it:
      
          @@
          identifier p, p2;
          expression len, skb, data;
          type t, t2;
          @@
          (
          -p = skb_put(skb, len);
          +p = skb_put_data(skb, data, len);
          |
          -p = (t)skb_put(skb, len);
          +p = skb_put_data(skb, data, len);
          )
          (
          p2 = (t2)p;
          -memcpy(p2, data, len);
          |
          -memcpy(p, data, len);
          )
      
          @@
          type t, t2;
          identifier p, p2;
          expression skb, data;
          @@
          t *p;
          ...
          (
          -p = skb_put(skb, sizeof(t));
          +p = skb_put_data(skb, data, sizeof(t));
          |
          -p = (t *)skb_put(skb, sizeof(t));
          +p = skb_put_data(skb, data, sizeof(t));
          )
          (
          p2 = (t2)p;
          -memcpy(p2, data, sizeof(*p));
          |
          -memcpy(p, data, sizeof(*p));
          )
      
          @@
          expression skb, len, data;
          @@
          -memcpy(skb_put(skb, len), data, len);
          +skb_put_data(skb, data, len);
      
      (again, manually post-processed to retain some comments)
      Reviewed-by: NStephen Hemminger <stephen@networkplumber.org>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      59ae1d12
  5. 31 5月, 2017 1 次提交
    • A
      ath10k: go back to using dma_alloc_coherent() for firmware scratch memory · 79e68821
      Adrian Chadd 提交于
      This reverts commit b0578865 ("ath10k: do not use coherent memory for
      allocated device memory chunks") in 2015 which converted this allocation from
      dma_map_coherent() to kzalloc() / dma_map_single().
      
      The current problem manifests when using later model NICs with larger
      (>700KiB) scratch spaces in memory.  Although the kzalloc call
      succeeds, the software IOMMU TLB code (via dma_map_single()) panics
      because it can't find 700KiB of linear physmem bounce buffers for DMA.
      Now, this is a bit of a silly failure mode for the dma map API,
      but it's what we currently have to play with.
      
      In these cases, doing kzalloc() works fine, but the dma_map_single()
      call fails.
      
      After chatting with Linus briefly about this, it indeed should be
      using dma_alloc_coherent() for doing larger device memory allocation
      that requires some kind of physical address mapping.
      
      You're not supposed to be using kzalloc and dma_map_* calls for
      large memory regions, and I'm guessing not for long-held mappings
      either.  Typically dma mappings should be temporary for DMA,
      not long held like these.
      
      Now, since hopefully the major annoying underlying problem has also been
      addressed (ie, ath10k is no longer tears down all of these allocations
      and reallocates them every time the vdevs are brought down) fragmentation
      should stop being such a touchy issue.  If it is though, using
      dma_alloc_coherent() use gets us access to the CMB APIs too relatively
      easily and ideally we would be allocating memory early in boot for
      exactly these reasons.
      Signed-off-by: NAdrian Chadd <adrian@FreeBSD.org>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      79e68821
  6. 23 5月, 2017 1 次提交
  7. 05 4月, 2017 1 次提交
  8. 16 3月, 2017 2 次提交
    • M
      ath10k: fix fetching channel during potential radar detection · a28f6f27
      Mohammed Shafi Shajakhan 提交于
      Fetch target operating channel during potential radar detection when
      the interface is just brought up, but no channel is assigned from
      userspace. In this scenario rx_channel may not be having a valid pointer
      hence fetch the target operating channel to avoid warnings as below
      which can be triggered by the commands with DFS testing over longer run
      
      comamnds:
      iw wlan1 set type mesh
      ifconfig wlan1 up (valid tgt_oper_chan only)
      iw wlan1 cac trigger freq 5260 HT20 (valid rx_channel, tgt_oper_chan)
      iw wlan1 cac trigger freq 5280 HT20
      iw wlan1 cac trigger freq 5300 HT20
      
      Once the CAC expires, current channel context will be removed and
      we are only left with the fallback option of using 'target operating
      channel'
      
      Firmware and driver log:
      ath: phy1: DFS: radar found on freq=5300: id=1, pri=1125, count=5,
      count_false=4
      ath: phy1: DFS: radar found on freq=5260: id=5, pri=3151, count=6,
      count_false=11
      ath: phy1: DFS: radar found on freq=5280: id=1, pri=1351, count=6,
      count_false=4
      ath: phy1: DFS: radar found on freq=5300: id=1, pri=1125, count=5,
      count_false=4
      ath10k_pci 0001:01:00.0: failed to derive channel for radar pulse,
      treating as radar
      ath10k_pci 0001:01:00.0: failed to derive channel for radar pulse,
      treating as radar
      
      Call trace:
      
      WARNING: CPU: 1 PID: 2145 at
      backports-20161201-3.14.77-9ab3068/net/wireless/chan.c:265
      cfg80211_set_dfs_state+0x3c/0x88 [cfg80211]()
      
       Workqueue: phy1 ieee80211_dfs_radar_detected_work
      [mac80211]
      [<c0320770>] (warn_slowpath_null) from [<bf79b90c>]
      (cfg80211_set_dfs_state+0x3c/0x88 [cfg80211])
      [<bf79b90c>] (cfg80211_set_dfs_state [cfg80211]) from
      [<bf79697c>] (cfg80211_radar_event+0xc4/0x140 [cfg80211])
      [<bf79697c>] (cfg80211_radar_event [cfg80211]) from
      [<bf83c058>] (ieee80211_dfs_radar_detected_work+0xa8/0xb4 [mac80211])
      [<bf83c058>] (ieee80211_dfs_radar_detected_work
      [mac80211]) from [<c0339518>] (process_one_work+0x298/0x4a4)
      Signed-off-by: NMohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      a28f6f27
    • T
      ath10k: update available channel list for 5G radio · 523f6701
      Tamizh chelvam 提交于
      If a 5 GHz radio is calibrated for operation in both
      the low band (channels 36 to 64) and high band(channels 100 to 169),
      hardware allows operations in all the listed channels. However,
      if the chip has been calibrated only for the low/high band and
      a high/low band channel is configured, due to lack of calibration
      there will be potentially invalid signal on those non calibrated channels.
      To avoid this problem this patch sets IEEE80211_CHAN_DISABLED flag for
      those non calibrated channels by using low_5ghz_chan and high_5ghz_chan
      values which we get from target through wmi service ready event.
      
      Driver initialized flags are getting re initialized in handle_channel
      in cfg80211. So calling the function to disable the non supported channel
      from reg_notifier().
      Signed-off-by: NTamizh chelvam <c_traja@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      523f6701
  9. 15 2月, 2017 1 次提交
  10. 13 1月, 2017 2 次提交
    • M
      ath10k: fix wifi connectivity and warning in rx with channel 169 · c486dc57
      Mohammed Shafi Shajakhan 提交于
      In countries where basic operation of channel 169 is allowed,
      this fixes the below WARN_ON_ONCE in Rx and fixes the station
      connectivity failure in channel 169 as the packet is dropped
      in the driver as the current check limits to channel 165. As of
      now all the packets beyond channel 165 is dropped, fix this
      by extending the range to channel 169.
      
      Call trace:
      
      drivers/net/wireless/ath/ath10k/wmi.c:1505
      ath10k_wmi_event_mgmt_rx+0x278/0x440 [ath10k_core]()
      Call Trace:
       [<c158f812>] ? printk+0x2d/0x2f
       [<c105a182>] warn_slowpath_common+0x72/0xa0
       [<f8b67b58>] ? ath10k_wmi_event_mgmt_rx+0x278/0x440
      
       [<f8b67b58>] ? ath10k_wmi_event_mgmt_rx+0x278/0x440
      
       [<c105a1d2>] warn_slowpath_null+0x22/0x30
       [<f8b67b58>] ath10k_wmi_event_mgmt_rx+0x278/0x440
      
       [<f8b0e72b>] ? ath10k_pci_sleep+0x8b/0xb0 [ath10k_pci]
       [<f8b6ac63>] ath10k_wmi_10_2_op_rx+0xf3/0x3b0
      
       [<f8b6495e>] ath10k_wmi_process_rx+0x1e/0x60
      
       [<f8b5f077>] ath10k_htc_rx_completion_handler+0x347/0x4d0 [ath10k_core]
       [<f8b11dc3>] ? ath10k_ce_completed_recv_next+0x53/0x70 [ath10k_pci]
       [<f8b0f921>] ath10k_pci_ce_recv_data+0x171/0x1d0 [ath10k_pci]
       [<f8b0ec69>] ? ath10k_pci_write32+0x39/0x80 [ath10k_pci]
       [<f8b120bc>] ath10k_ce_per_engine_service+0x5c/0xa0 [ath10k_pci]
       [<f8b1215f>] ath10k_ce_per_engine_service_any+0x5f/0x70 [ath10k_pci]
       [<c1060dc0>] ? local_bh_enable_ip+0x90/0x90
       [<f8b1048b>] ath10k_pci_tasklet+0x1b/0x50 [ath10k_pci]
      
      Fixes: 34c30b0a ("ath10k: enable advertising support for channel 169, 5Ghz")
      Signed-off-by: NMohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      c486dc57
    • S
      ath10k: add VHT160 support · bc1efd73
      Sebastian Gottschall 提交于
      This patch adds full VHT160 support for QCA9984 chipsets Tested on Netgear
      R7800. 80+80 is possible, but disabled so far since it seems to contain
      glitches like missing vht station flags (this may be firmware or mac80211
      related).
      Signed-off-by: NSebastian Gottschall <s.gottschall@dd-wrt.com>
      [kvalo@qca.qualcomm.com: refactoring and fix few warnings]
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      bc1efd73
  11. 20 12月, 2016 1 次提交
    • B
      ath10k: free host-mem with DMA_BIRECTIONAL flag · d4166b8b
      Ben Greear 提交于
      Hopefully this fixes the problem reported by Kalle:
      
      Noticed this in my log, but I don't have time to investigate this in
      detail right now:
      
      [  413.795346] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
      [  414.158755] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
      [  477.439659] ath10k_pci 0000:02:00.0: could not get mac80211 beacon
      [  481.666630] ------------[ cut here ]------------
      [  481.666669] WARNING: CPU: 0 PID: 1978 at lib/dma-debug.c:1155 check_unmap+0x320/0x8e0
      [  481.666688] ath10k_pci 0000:02:00.0: DMA-API: device driver frees DMA memory with different direction [device address=0x000000002d130000] [size=63800 bytes] [mapped with DMA_BIDIRECTIONAL] [unmapped with DMA_TO_DEVICE]
      [  481.666703] Modules linked in: ctr ccm ath10k_pci(E-) ath10k_core(E) ath(E) mac80211(E) cfg80211(E) snd_hda_codec_hdmi snd_hda_codec_idt snd_hda_codec_generic snd_hda_intel snd_hda_codec snd_hda_core snd_hwdep snd_pcm snd_seq_midi arc4 snd_rawmidi snd_seq_midi_event snd_seq btusb btintel snd_seq_device joydev coret
      [  481.671468] CPU: 0 PID: 1978 Comm: rmmod Tainted: G            E   4.9.0-rc7-wt+ #54
      [  481.671478] Hardware name: Hewlett-Packard HP ProBook 6540b/1722, BIOS 68CDD Ver. F.04 01/27/2010
      [  481.671489]  ef49dcec c842ee92 c8b5830e ef49dd34 ef49dd20 c80850f5 c8b5a13c ef49dd50
      [  481.671560]  000007ba c8b5830e 00000483 c8461830 c8461830 00000483 ef49ddcc f34e64b8
      [  481.671641]  c8b58360 ef49dd3c c80851bb 00000009 00000000 ef49dd34 c8b5a13c ef49dd50
      [  481.671716] Call Trace:
      [  481.671731]  [<c842ee92>] dump_stack+0x76/0xb4
      [  481.671745]  [<c80850f5>] __warn+0xe5/0x100
      [  481.671757]  [<c8461830>] ? check_unmap+0x320/0x8e0
      [  481.671769]  [<c8461830>] ? check_unmap+0x320/0x8e0
      [  481.671780]  [<c80851bb>] warn_slowpath_fmt+0x3b/0x40
      [  481.671791]  [<c8461830>] check_unmap+0x320/0x8e0
      [  481.671804]  [<c8462054>] debug_dma_unmap_page+0x84/0xa0
      [  481.671835]  [<f937cd7a>] ath10k_wmi_free_host_mem+0x9a/0xe0 [ath10k_core]
      [  481.671861]  [<f9363400>] ath10k_core_destroy+0x50/0x60 [ath10k_core]
      [  481.671875]  [<f8e13969>] ath10k_pci_remove+0x79/0xa0 [ath10k_pci]
      [  481.671889]  [<c848d8d8>] pci_device_remove+0x38/0xb0
      [  481.671901]  [<c859fe4b>] __device_release_driver+0x7b/0x110
      [  481.671913]  [<c85a00e7>] driver_detach+0x97/0xa0
      [  481.671923]  [<c859ef8b>] bus_remove_driver+0x4b/0xb0
      [  481.671934]  [<c85a0cda>] driver_unregister+0x2a/0x60
      [  481.671949]  [<c848c888>] pci_unregister_driver+0x18/0x70
      [  481.671965]  [<f8e14dae>] ath10k_pci_exit+0xd/0x25f [ath10k_pci]
      [  481.671979]  [<c812bb84>] SyS_delete_module+0xf4/0x180
      [  481.671995]  [<c81f801b>] ? __might_fault+0x8b/0xa0
      [  481.672009]  [<c80037d0>] do_fast_syscall_32+0xa0/0x1e0
      [  481.672025]  [<c88d4c88>] sysenter_past_esp+0x45/0x74
      [  481.672037] ---[ end trace 3fd23759e17e1622 ]---
      [  481.672049] Mapped at:
      [  481.672060]  [  481.672072] [<c846062c>] debug_dma_map_page.part.25+0x1c/0xf0
      [  481.672083]  [  481.672095] [<c8460799>] debug_dma_map_page+0x99/0xc0
      [  481.672106]  [  481.672132] [<f93745ec>] ath10k_wmi_alloc_chunk+0x12c/0x1f0 [ath10k_core]
      [  481.672142]  [  481.672168] [<f937d0c4>] ath10k_wmi_event_service_ready_work+0x304/0x540 [ath10k_core]
      [  481.672178]  [  481.672190] [<c80a3643>] process_one_work+0x1c3/0x670
      [  482.137134] ath10k_pci 0000:02:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
      [  482.313144] ath10k_pci 0000:02:00.0: Direct firmware load for ath10k/pre-cal-pci-0000:02:00.0.bin failed with error -2
      [  482.313274] ath10k_pci 0000:02:00.0: Direct firmware load for ath10k/cal-pci-0000:02:00.0.bin failed with error -2
      [  482.313768] ath10k_pci 0000:02:00.0: qca988x hw2.0 target 0x4100016c chip_id 0x043202ff sub 0000:0000
      [  482.313777] ath10k_pci 0000:02:00.0: kconfig debug 1 debugfs 1 tracing 1 dfs 0 testmode 1
      [  482.313974] ath10k_pci 0000:02:00.0: firmware ver 10.2.4.70.59-2 api 5 features no-p2p,raw-mode,mfp,allows-mesh-bcast crc32 4159f498
      [  482.369858] ath10k_pci 0000:02:00.0: Direct firmware load for ath10k/QCA988X/hw2.0/board-2.bin failed with error -2
      [  482.370011] ath10k_pci 0000:02:00.0: board_file api 1 bmi_id N/A crc32 bebc7c08
      [  483.596770] ath10k_pci 0000:02:00.0: htt-ver 2.1 wmi-op 5 htt-op 2 cal otp max-sta 128 raw 0 hwcrypto 1
      [  483.701686] ath: EEPROM regdomain: 0x0
      [  483.701706] ath: EEPROM indicates default country code should be used
      [  483.701713] ath: doing EEPROM country->regdmn map search
      [  483.701721] ath: country maps to regdmn code: 0x3a
      [  483.701730] ath: Country alpha2 being used: US
      [  483.701737] ath: Regpair used: 0x3a
      Reported-by: NKalle Valo <kvalo@qca.qualcomm.com>
      Signed-off-by: NBen Greear <greearb@candelatech.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      d4166b8b
  12. 01 12月, 2016 1 次提交
  13. 23 11月, 2016 2 次提交
    • P
      ath10k: remove set/get_tsf ieee80211_ops · f6f64cfb
      Pedersen, Thomas 提交于
      Neither of these did the right thing:
      
      - get_tsf just returned 0
      - set_tsf assumed a simple offset was applied against
        get_tsf(), which works, except in the case of
        calculating TSF from rx_mactime (actual TSF).
      
      Just remove them for now. We can reimplement set_tsf in
      terms of TSF increment/decrement in the future if get_tsf
      is ever supported by FW.
      Signed-off-by: NThomas Pedersen <twp@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      f6f64cfb
    • P
      ath10k: implement offset_tsf ieee80211_op · 973324ff
      Pedersen, Thomas 提交于
      Current set_tsf is implemented in terms of TSF_INCREMENT
      only. Instead support new WMI command TSF_DECREMENT and
      export these through offset_tsf. Advantage is we get
      more accurate TSF adjustments, and don't calculate wrong
      offset in case absolute TSF was calculated from rx_mactime
      (actual TSF).
      
      The new WMI command is available in firmware
      10.4-3.2.1-00033 for QCA4019 chips. Old drivers on new
      firmware or vice versa shouldn't  be a problem since
      get/set tsf logic was already broken.
      Signed-off-by: NThomas Pedersen <twp@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      973324ff
  14. 04 10月, 2016 3 次提交
  15. 28 9月, 2016 1 次提交
  16. 09 9月, 2016 1 次提交
  17. 02 9月, 2016 4 次提交
  18. 31 8月, 2016 4 次提交
  19. 04 8月, 2016 1 次提交
    • M
      tree-wide: replace config_enabled() with IS_ENABLED() · 97f2645f
      Masahiro Yamada 提交于
      The use of config_enabled() against config options is ambiguous.  In
      practical terms, config_enabled() is equivalent to IS_BUILTIN(), but the
      author might have used it for the meaning of IS_ENABLED().  Using
      IS_ENABLED(), IS_BUILTIN(), IS_MODULE() etc.  makes the intention
      clearer.
      
      This commit replaces config_enabled() with IS_ENABLED() where possible.
      This commit is only touching bool config options.
      
      I noticed two cases where config_enabled() is used against a tristate
      option:
      
       - config_enabled(CONFIG_HWMON)
        [ drivers/net/wireless/ath/ath10k/thermal.c ]
      
       - config_enabled(CONFIG_BACKLIGHT_CLASS_DEVICE)
        [ drivers/gpu/drm/gma500/opregion.c ]
      
      I did not touch them because they should be converted to IS_BUILTIN()
      in order to keep the logic, but I was not sure it was the authors'
      intention.
      
      Link: http://lkml.kernel.org/r/1465215656-20569-1-git-send-email-yamada.masahiro@socionext.comSigned-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com>
      Acked-by: NKees Cook <keescook@chromium.org>
      Cc: Stas Sergeev <stsp@list.ru>
      Cc: Matt Redfearn <matt.redfearn@imgtec.com>
      Cc: Joshua Kinard <kumba@gentoo.org>
      Cc: Jiri Slaby <jslaby@suse.com>
      Cc: Bjorn Helgaas <bhelgaas@google.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: Markos Chandras <markos.chandras@imgtec.com>
      Cc: "Dmitry V. Levin" <ldv@altlinux.org>
      Cc: yu-cheng yu <yu-cheng.yu@intel.com>
      Cc: James Hogan <james.hogan@imgtec.com>
      Cc: Brian Gerst <brgerst@gmail.com>
      Cc: Johannes Berg <johannes@sipsolutions.net>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Will Drewry <wad@chromium.org>
      Cc: Nikolay Martynov <mar.kolya@gmail.com>
      Cc: Huacai Chen <chenhc@lemote.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Daniel Borkmann <daniel@iogearbox.net>
      Cc: Leonid Yegoshin <Leonid.Yegoshin@imgtec.com>
      Cc: Rafal Milecki <zajec5@gmail.com>
      Cc: James Cowgill <James.Cowgill@imgtec.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Alex Smith <alex.smith@imgtec.com>
      Cc: Adam Buchbinder <adam.buchbinder@gmail.com>
      Cc: Qais Yousef <qais.yousef@imgtec.com>
      Cc: Jiang Liu <jiang.liu@linux.intel.com>
      Cc: Mikko Rapeli <mikko.rapeli@iki.fi>
      Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
      Cc: Denys Vlasenko <dvlasenk@redhat.com>
      Cc: Brian Norris <computersforpeace@gmail.com>
      Cc: Hidehiro Kawai <hidehiro.kawai.ez@hitachi.com>
      Cc: "Luis R. Rodriguez" <mcgrof@do-not-panic.com>
      Cc: Andy Lutomirski <luto@amacapital.net>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
      Cc: Roland McGrath <roland@hack.frob.com>
      Cc: Paul Burton <paul.burton@imgtec.com>
      Cc: Kalle Valo <kvalo@qca.qualcomm.com>
      Cc: Viresh Kumar <viresh.kumar@linaro.org>
      Cc: Tony Wu <tung7970@gmail.com>
      Cc: Huaitong Han <huaitong.han@intel.com>
      Cc: Sumit Semwal <sumit.semwal@linaro.org>
      Cc: Alexei Starovoitov <ast@kernel.org>
      Cc: Juergen Gross <jgross@suse.com>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: Andrea Gelmini <andrea.gelmini@gelma.net>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: Marc Zyngier <marc.zyngier@arm.com>
      Cc: Rabin Vincent <rabin@rab.in>
      Cc: "Maciej W. Rozycki" <macro@imgtec.com>
      Cc: David Daney <david.daney@cavium.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      97f2645f
  20. 08 7月, 2016 1 次提交
    • M
      ath10k: fix 10.4 extended peer stats update · 4a49ae94
      Mohammed Shafi Shajakhan 提交于
      10.4 'extended peer stats' will be not be appended with normal peer stats
      data and they shall be coming in separate chunks. Fix this by maintaining
      a separate linked list 'extender peer stats' for 10.4 and update
      rx_duration for per station statistics. Also parse through beacon filter
      (if enabled), to make sure we parse the extended peer stats properly.
      This issue was exposed when more than one client is connected and
      extended peer stats for 10.4 is enabled
      
      The order for the stats is as below
      S - standard peer stats, E- extended peer stats, B - beacon filter stats
      
      {S1, S2, S3..} -> {B1, B2, B3..}(if available) -> {E1, E2, E3..}
      
      Fixes: f9575793 ("ath10k: enable parsing per station rx duration for 10.4")
      Signed-off-by: NMohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      4a49ae94
  21. 30 6月, 2016 2 次提交
    • M
      ath10k: enable beacon loss detection support for 10.4 · 343bf960
      Mohammed Shafi Shajakhan 提交于
      Enable beacon loss detection support for 10.4 by handling
      roam event. With this change QCA99X0 station is able to
      detect beacon loss when the AP is powered off
      Signed-off-by: NMohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      343bf960
    • B
      ath10k: fix potential null dereference bugs · a66cd733
      Bob Copeland 提交于
      Smatch warns about a number of cases in ath10k where a pointer is
      null-checked after it has already been dereferenced, in code involving
      ath10k private virtual interface pointers.
      
      Fix these by making the dereference happen later.
      
      Addresses the following smatch warnings:
      
      drivers/net/wireless/ath/ath10k/mac.c:3651 ath10k_mac_txq_init() warn: variable dereferenced before check 'txq' (see line 3649)
      drivers/net/wireless/ath/ath10k/mac.c:3664 ath10k_mac_txq_unref() warn: variable dereferenced before check 'txq' (see line 3659)
      drivers/net/wireless/ath/ath10k/htt_tx.c:70 __ath10k_htt_tx_txq_recalc() warn: variable dereferenced before check 'txq->sta' (see line 52)
      drivers/net/wireless/ath/ath10k/htt_tx.c:740 ath10k_htt_tx_get_vdev_id() warn: variable dereferenced before check 'cb->vif' (see line 736)
      drivers/net/wireless/ath/ath10k/txrx.c:86 ath10k_txrx_tx_unref() warn: variable dereferenced before check 'txq' (see line 84)
      drivers/net/wireless/ath/ath10k/wmi.c:1837 ath10k_wmi_op_gen_mgmt_tx() warn: variable dereferenced before check 'cb->vif' (see line 1825)
      Signed-off-by: NBob Copeland <me@bobcopeland.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      a66cd733
  22. 02 6月, 2016 1 次提交
  23. 12 5月, 2016 1 次提交
  24. 06 5月, 2016 3 次提交
  25. 26 4月, 2016 1 次提交