1. 01 9月, 2017 1 次提交
    • R
      ath10k: add the PCI PM core suspend/resume ops · 32faa3f0
      Ryan Hsu 提交于
      The actual PCI suspend/resume in ath10k has been handled in wow.c,
      but in the case of the device doesn't support remote wakeup,
      the .hif_suspend() and .hif_resume() will never be handled.
      
        ath10k_wow_op_suspend()
        {
      	if (WARN_ON(!test_bit(ATH10K_FW_FEATURE_WOWLAN_SUPPORT,
      		    ar->running_fw->fw_file.fw_features))) {
      		ret = 1;
      		goto exit;
      	}
      
      	....
      
      	ret = ath10k_hif_suspend(ar);
        }
      
      So register the PCI PM core to support the suspend/resume if the device
      doesn't support remote wakeup.
      Signed-off-by: NRyan Hsu <ryanhsu@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      32faa3f0
  2. 31 8月, 2017 10 次提交
  3. 11 8月, 2017 2 次提交
  4. 09 8月, 2017 8 次提交
  5. 08 8月, 2017 5 次提交
    • B
      ath9k: make ath_ps_ops structures as const · 3588e111
      Bhumika Goyal 提交于
      ath_ps_ops structures are only stored as a reference in the ps_ops
      field of a ath_common structure. This field is of type const, so make
      the structures as const.
      Signed-off-by: NBhumika Goyal <bhumirks@gmail.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      3588e111
    • B
      wcn36xx: Introduce mutual exclusion of fw configuration · 39efc7cc
      Bjorn Andersson 提交于
      As the association status changes the driver needs to configure the
      hardware. This is done based on information in the "sta" acquired by
      ieee80211_find_sta(), which requires the caller to ensure that the "sta"
      is valid while its being used; generally by entering an rcu read
      section.
      
      But the operations acting on the "sta" has to communicate with the
      firmware and may therefor sleep, resulting in the following report:
      
      [   31.418190] BUG: sleeping function called from invalid context at
      kernel/locking/mutex.c:238
      [   31.425919] in_atomic(): 0, irqs_disabled(): 0, pid: 34, name:
      kworker/u8:1
      [   31.434609] CPU: 0 PID: 34 Comm: kworker/u8:1 Tainted: G        W
      4.12.0-rc4-next-20170607+ #993
      [   31.441002] Hardware name: Qualcomm Technologies, Inc. APQ 8016 SBC
      (DT)
      [   31.450380] Workqueue: phy0 ieee80211_iface_work
      [   31.457226] Call trace:
      [   31.461830] [<ffffff8008088c58>] dump_backtrace+0x0/0x260
      [   31.464004] [<ffffff8008088f7c>] show_stack+0x14/0x20
      [   31.469557] [<ffffff8008392e70>] dump_stack+0x98/0xb8
      [   31.474592] [<ffffff80080e4330>] ___might_sleep+0xf0/0x118
      [   31.479626] [<ffffff80080e43a8>] __might_sleep+0x50/0x88
      [   31.485010] [<ffffff80088ff9a4>] mutex_lock+0x24/0x60
      [   31.490479] [<ffffff8008595c38>] wcn36xx_smd_set_link_st+0x30/0x130
      [   31.495428] [<ffffff8008591ed8>] wcn36xx_bss_info_changed+0x148/0x448
      [   31.501504] [<ffffff80088ab3c4>]
      ieee80211_bss_info_change_notify+0xbc/0x118
      [   31.508102] [<ffffff80088f841c>] ieee80211_assoc_success+0x664/0x7f8
      [   31.515220] [<ffffff80088e13d4>]
      ieee80211_rx_mgmt_assoc_resp+0x144/0x2d8
      [   31.521555] [<ffffff80088e1e20>]
      ieee80211_sta_rx_queued_mgmt+0x190/0x698
      [   31.528239] [<ffffff80088bc44c>] ieee80211_iface_work+0x234/0x368
      [   31.535011] [<ffffff80080d81ac>] process_one_work+0x1cc/0x340
      [   31.541086] [<ffffff80080d8368>] worker_thread+0x48/0x430
      [   31.546814] [<ffffff80080de448>] kthread+0x108/0x138
      [   31.552195] [<ffffff8008082ec0>] ret_from_fork+0x10/0x50
      
      In order to ensure that the "sta" remains alive (and consistent) for the
      duration of bss_info_changed() mutual exclusion has to be ensured with
      sta_remove().
      
      This is done by introducing a mutex to cover firmware configuration
      changes, which is made to also ensure mutual exclusion between other
      operations changing the state or configuration of the firmware. With
      this we can drop the rcu read lock.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      39efc7cc
    • A
      ath10k: switch to use new generic UUID API · ab3f9c88
      Andy Shevchenko 提交于
      There are new types and helpers that are supposed to be used in new code.
      
      As a preparation to get rid of legacy types and API functions do
      the conversion here.
      Signed-off-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      ab3f9c88
    • R
      ath10k: fix memory leak in rx ring buffer allocation · f35a7f91
      Rakesh Pillai 提交于
      The rx ring buffers are added to a hash table if
      firmware support full rx reorder. If the full rx
      reorder support flag is not set before allocating
      the rx ring buffers, none of the buffers are added
      to the hash table.
      
      There is a race condition between rx ring refill and
      rx buffer replenish from napi poll. The interrupts are
      enabled in hif start, before the rx ring is refilled during init.
      We replenish buffers from napi poll due to the interrupts which
      get enabled after hif start. Hence before the entire rx ring is
      refilled during the init, the napi poll replenishes a few buffers
      in steps of 100 buffers per attempt. During this rx ring replenish
      from napi poll, the rx reorder flag has not been set due to which
      the replenished buffers are not added to the hash table
      
      Set the rx full reorder support flag before we allocate
      the rx ring buffer to avoid the memory leak.
      Signed-off-by: NRakesh Pillai <pillair@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      f35a7f91
    • G
      ath10k: ath10k_htt_rx_amsdu_allowed() use ath10k_dbg() · 984eb905
      Gabriel Craciunescu 提交于
      Each time we get disconnected from AP we get flooded with messages like:
      
      ...
      ath10k_pci 0000:03:00.0: no channel configured; ignoring frame(s)!
      <until ratelimit kicks in>
      ath10k_warn: 155 callbacks suppressed
      ...
      
      Use ath10k_dbg() here too.
      Signed-off-by: NGabriel Craciunescu <nix.or.die@gmail.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      984eb905
  6. 03 8月, 2017 11 次提交
    • R
      wcn36xx: check dma_mapping_error() · 4165cf7b
      Rob Clark 提交于
      Fixes splat:
      
        wcn36xx a204000.wcnss:smd-edge:wcnss:wifi: DMA-API: device driver failed to check map error[device address=0x00000000b45ba000] [size=3872 bytes] [mapped as single]
        ------------[ cut here ]------------
        WARNING: CPU: 0 PID: 0 at ../lib/dma-debug.c:1167 check_unmap+0x474/0x8d0
        Modules linked in: bnep(E) arc4(E) wcn36xx(E) mac80211(E) btqcomsmd(E) btqca(E) bluetooth(E) cfg80211(E) ecdh_generic(E) rfkill(E) vfat(E) fat(E) wcnss_ctrl qcom_wcnss_pil(E) mdt_loader(E) qcom_common(E) remoteproc(E) crc32_ce(E) virtio_ring(E) snd_soc_lpass_apq8016(E) snd_soc_lpass_cpu(E) virtio(E) snd_soc_lpass_platform(E) leds_gpio(E) snd_soc_hdmi_codec(E) snd_soc_apq8016_sbc(E) snd_soc_msm8916_digital(E) snd_soc_core(E) qcom_spmi_temp_alarm(E) ac97_bus(E) snd_pcm_dmaengine(E) snd_seq(E) snd_seq_device(E) snd_pcm(E) spi_qup(E) nvmem_qfprom(E) snd_timer(E) snd(E) soundcore(E) msm_rng(E) qcom_tsens(E) nvmem_core(E) uas(E) usb_storage(E) dm9601(E) cdc_ether(E) usbnet(E) mii(E) mmc_block(E) sdhci_msm(E) sdhci_pltfm(E) qcom_spmi_vadc(E) qcom_vadc_common(PE) clk_smd_rpm(E) industrialio(E)
         qcom_smd_regulator(E) pinctrl_spmi_mpp(E) pinctrl_spmi_gpio(E) rtc_pm8xxx(E) adv7511(E) smd_rpm(E) qcom_spmi_pmic(E) regmap_spmi(E) phy_msm_usb(E) usb3503(E) extcon_usb_gpio(E) ci_hdrc_msm(E) ci_hdrc(E) qcom_hwspinlock(E) udc_core(E) extcon_core(E) ehci_msm(E) i2c_qup(E) sdhci(E) msm(E) mmc_core(E) drm_kms_helper(E) syscopyarea(E) sysfillrect(E) sysimgblt(E) fb_sys_fops(E) spmi_pmic_arb(E) drm(E) spmi(E) qcom_smd(E) rpmsg_core smsm(E) gpio_keys(E) smp2p(E) smem(E) hwspinlock_core(E) sunrpc(E) scsi_transport_iscsi(E)
        CPU: 0 PID: 0 Comm: swapper/0 Tainted: P            E   4.12.0-rc7+ #1476
        Hardware name: qualcomm dragonboard410c/dragonboard410c, BIOS 2017.07-rc1-00234-g22fa70a-dirty 06/26/2017
        task: ffff000009049780 task.stack: ffff000009030000
        PC is at check_unmap+0x474/0x8d0
        LR is at check_unmap+0x474/0x8d0
        ...
        Mapped at:
         dma_entry_alloc+0x68/0xa8
         debug_dma_map_page+0x94/0x148
         wcn36xx_dxe_fill_skb.isra.1+0xbc/0xf8 [wcn36xx]
         wcn36xx_dxe_init+0x244/0x398 [wcn36xx]
         wcn36xx_start+0xf4/0x298 [wcn36xx]
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      4165cf7b
    • R
      ath9k: Add Dell Wireless 1802 with wowlan capability · 129e12a9
      Rosen Penev 提交于
      Add the Dell Wireless 1802 card as an AR9462 in the ath9k pci list.
      Note that the wowlan feature is supported and has been tested
      successfully.
      
      Signed-off by: Rosen Penev <rosenp@gmail.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      129e12a9
    • C
      ath9k: fix debugfs file permission · f085c105
      Christoph Fritz 提交于
      This patch fixes a trivial debugfs file permission issue. Debugfs
      file ack_to has no write function, so S_IWUSR gets purged.
      Signed-off-by: NChristoph Fritz <chf.fritz@googlemail.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      f085c105
    • P
      ath10k: explicitly request exclusive reset control · a764284f
      Philipp Zabel 提交于
      Commit a53e35db ("reset: Ensure drivers are explicit when requesting
      reset lines") started to transition the reset control request API calls
      to explicitly state whether the driver needs exclusive or shared reset
      control behavior. Convert all drivers requesting exclusive resets to the
      explicit API call so the temporary transition helpers can be removed.
      
      No functional changes.
      
      Cc: Kalle Valo <kvalo@qca.qualcomm.com>
      Cc: ath10k@lists.infradead.org
      Cc: linux-wireless@vger.kernel.org
      Cc: netdev@vger.kernel.org
      Signed-off-by: NPhilipp Zabel <p.zabel@pengutronix.de>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      a764284f
    • M
      ath10k: push peer type to target for TDLS peers · be5b4f40
      Manikanta Pubbisetty 提交于
      WMI interface for all the firmwares(except QCA6174) does not include the
      type of peer(default/bss/tdls) requested during peer creation, therefore
      target creates a default peer.
      
      TDLS implementation on 10.4 firmware requires host to configure the
      peer type(tdls) for TDLS peers. This patch adds peer type parameter to the
      existing WMI interface for peer creation to accommodate this requirement.
      
      Tested this change on QCA9888(10.4-3.5.1-00018) and QCA988x(10.2.4.70.9-2)
      with ping tests for AP/STA modes.
      Signed-off-by: NManikanta Pubbisetty <mpubbise@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      be5b4f40
    • M
      ath10k: add tdls support for 10.4 firmwares · add6cd8d
      Manikanta Pubbisetty 提交于
      This patch adds the support of TDLS feature for 10.4 firmware
      versions.
      
      A new WMI service is added to advertise the support of TDLS for
      10.4 firmwares.
      Signed-off-by: NManikanta Pubbisetty <mpubbise@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      add6cd8d
    • M
      ath10k: extend wmi service map to accommodate new services · 810fe818
      Manikanta Pubbisetty 提交于
      Though there is room to accommodate 512 services in wmi service
      ready event, target uses only first 4-bits of each 32-bit word for
      advertising wmi services thereby limiting max wmi services to 64.
      
      TDLS implementation for 10.4 firmwares introduces new wmi services by
      making use of remaining unused bits of each 32-bit word, therefore the
      wmi service mapping in host needs to be extended.
      
      This patch adds the logic to extend the wmi SVCMAP to accommodate new
      wmi services.
      Signed-off-by: NManikanta Pubbisetty <mpubbise@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      810fe818
    • E
      ath10k: sdio: fix compile warning · 433ef1b2
      Erik Stromdahl 提交于
      As suggested by Arnd Bergmann, replace
      "while (time_before_...) {}"
      with
      "do {} while (time_before_...)"
      
      This fixes the following warnings detected by gcc 4.1.2:
      
      drivers/net/wireless/ath/ath10k/sdio.c: In function
      ‘ath10k_sdio_mbox_rxmsg_pending_handler’:
      drivers/net/wireless/ath/ath10k/sdio.c:676: warning: ‘ret’ may be used uninitialized in this function
      
      ...
      
      drivers/net/wireless/ath/ath10k/sdio.c: In function
      ‘ath10k_sdio_irq_handler’:
      drivers/net/wireless/ath/ath10k/sdio.c:1331: warning: ‘ret’ may be used uninitialized in this function
      Signed-off-by: NErik Stromdahl <erik.stromdahl@gmail.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      433ef1b2
    • E
      ath10k: add initial USB support · 4db66499
      Erik Stromdahl 提交于
      Chipsets like QCA9377 have support for USB so add initial USB bus
      support to ath10k. With this patch we have the low level HIF and
      HTC protocol working and it's possible to boot the firmware,
      but it's still not possible to connect or anything like.
      
      More changes are needed for full functionality. For that reason
      we print during initialisation:
      
      WARNING: ath10k USB support is incomplete, don't expect anything to work!
      Signed-off-by: NErik Stromdahl <erik.stromdahl@gmail.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      4db66499
    • E
      ath10k: various usb related definitions · b00435e6
      Erik Stromdahl 提交于
      Definitions for USB based chipsets
      Signed-off-by: NErik Stromdahl <erik.stromdahl@gmail.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      b00435e6
    • M
      ath10k: set a-mpdu receiver reference number · 47cc0ca9
      Matthias Frei 提交于
      Set the a-mpdu reference number in ath10k to make it accessible in the
      receivers radiotap header. Implemented as in ath9k.  The reference number is
      needed for troubleshooting and research at the receivers site (e.g. to identify
      mpdu's that were aggregated in an a-mpdu)
      Signed-off-by: NMatthias Frei <mf@frei.media>
      [kvalo@qca.qualcomm.com: fix checkpatch warning, commit log cleanup]
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      47cc0ca9
  7. 28 7月, 2017 1 次提交
  8. 27 7月, 2017 2 次提交
    • C
      wl1251: add a missing spin_lock_init() · 6e9aae17
      Cong Wang 提交于
      This fixes the following kernel warning:
      
        [ 5668.771453] BUG: spinlock bad magic on CPU#0, kworker/u2:3/9745
        [ 5668.771850]  lock: 0xce63ef20, .magic: 00000000, .owner: <none>/-1,
        .owner_cpu: 0
        [ 5668.772277] CPU: 0 PID: 9745 Comm: kworker/u2:3 Tainted: G        W
        4.12.0-03002-gec979a4-dirty #40
        [ 5668.772796] Hardware name: Nokia RX-51 board
        [ 5668.773071] Workqueue: phy1 wl1251_irq_work
        [ 5668.773345] [<c010c9e4>] (unwind_backtrace) from [<c010a274>]
        (show_stack+0x10/0x14)
        [ 5668.773803] [<c010a274>] (show_stack) from [<c01545a4>]
        (do_raw_spin_lock+0x6c/0xa0)
        [ 5668.774230] [<c01545a4>] (do_raw_spin_lock) from [<c06ca578>]
        (_raw_spin_lock_irqsave+0x10/0x18)
        [ 5668.774658] [<c06ca578>] (_raw_spin_lock_irqsave) from [<c048c010>]
        (wl1251_op_tx+0x38/0x5c)
        [ 5668.775115] [<c048c010>] (wl1251_op_tx) from [<c06a12e8>]
        (ieee80211_tx_frags+0x188/0x1c0)
        [ 5668.775543] [<c06a12e8>] (ieee80211_tx_frags) from [<c06a138c>]
        (__ieee80211_tx+0x6c/0x130)
        [ 5668.775970] [<c06a138c>] (__ieee80211_tx) from [<c06a3dbc>]
        (ieee80211_tx+0xdc/0x104)
        [ 5668.776367] [<c06a3dbc>] (ieee80211_tx) from [<c06a4af0>]
        (__ieee80211_subif_start_xmit+0x454/0x8c8)
        [ 5668.776824] [<c06a4af0>] (__ieee80211_subif_start_xmit) from
        [<c06a4f94>] (ieee80211_subif_start_xmit+0x30/0x2fc)
        [ 5668.777343] [<c06a4f94>] (ieee80211_subif_start_xmit) from
        [<c0578848>] (dev_hard_start_xmit+0x80/0x118)
        ...
      
      by adding the missing spin_lock_init().
      Reported-by: NPavel Machek <pavel@ucw.cz>
      Cc: Kalle Valo <kvalo@codeaurora.org>
      Signed-off-by: NCong Wang <xiyou.wangcong@gmail.com>
      Acked-by: NPavel Machek <pavel@ucw.cz>
      Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
      6e9aae17
    • F
      bcma: gpio: Correct number of GPIOs for BCM53573 · 459c3514
      Florian Fainelli 提交于
      Broadcom BCM53573 SoCs actually have 32 GPIOs, and not 16.
      
      Fixes: 3f37ec79 ("bcma: support BCM53573 series of wireless SoCs")
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
      459c3514