Skip to content
  1. Sep 01, 2020
    • Rakesh Pillai's avatar
      ath10k: Add interrupt summary based CE processing · b92aba35
      Rakesh Pillai authored
      
      
      Currently the NAPI processing loops through all
      the copy engines and processes a particular copy
      engine is the copy completion is set for that copy
      engine. The host driver is not supposed to access
      any copy engine register after clearing the interrupt
      status register.
      
      This might result in kernel crash like the one below
      [ 1159.220143] Call trace:
      [ 1159.220170]  ath10k_snoc_read32+0x20/0x40 [ath10k_snoc]
      [ 1159.220193]  ath10k_ce_per_engine_service_any+0x78/0x130 [ath10k_core]
      [ 1159.220203]  ath10k_snoc_napi_poll+0x38/0x8c [ath10k_snoc]
      [ 1159.220270]  net_rx_action+0x100/0x3b0
      [ 1159.220312]  __do_softirq+0x164/0x30c
      [ 1159.220345]  run_ksoftirqd+0x2c/0x64
      [ 1159.220380]  smpboot_thread_fn+0x1b0/0x288
      [ 1159.220405]  kthread+0x11c/0x12c
      [ 1159.220423]  ret_from_fork+0x10/0x18
      
      To avoid such a scenario, we generate an interrupt
      summary by reading the copy completion for all the
      copy engine before actually processing any of them.
      This will avoid reading the interrupt status register
      for any CE after the interrupt status is cleared.
      
      Tested-on: WCN3990 hw1.0 SNOC WLAN.HL.3.1-01040-QCAHLSWMTPLZ-1
      
      Signed-off-by: default avatarRakesh Pillai <pillair@codeaurora.org>
      Reviewed-by: default avatarDouglas Anderson <dianders@chromium.org>
      Tested-by: default avatarDouglas Anderson <dianders@chromium.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/1593193967-29897-1-git-send-email-pillair@codeaurora.org
      b92aba35
  2. Aug 31, 2020
    • Gustavo A. R. Silva's avatar
      ath10k: wmi: Use struct_size() helper in ath10k_wmi_alloc_skb() · e96eecdb
      Gustavo A. R. Silva authored
      
      
      Make use of the struct_size() helper instead of an open-coded version
      in order to avoid any potential type mistakes. Also, remove unnecessary
      variable _len_.
      
      This code was detected with the help of Coccinelle and, audited and
      fixed manually.
      
      Signed-off-by: default avatarGustavo A. R. Silva <gustavoars@kernel.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/20200616225132.GA19873@embeddedor
      e96eecdb
    • Lee Jones's avatar
      carl9170: Convert 'ar9170_qmap' to inline function · 859228a3
      Lee Jones authored
      
      
      'ar9170_qmap' is used in some source files which include carl9170.h,
      but not all of them.  A 'defined but not used' warning is thrown when
      compiling the ones which do not use it.
      
      Fixes the following W=1 kernel build warning(s)
      
       from drivers/net/wireless/ath/carl9170/carl9170.h:57,
       In file included from drivers/net/wireless/ath/carl9170/carl9170.h:57,
       drivers/net/wireless/ath/carl9170/carl9170.h:71:17: warning: ‘ar9170_qmap’ defined but not used [-Wunused-const-variable=]
      
       NB: Snipped - lots of these repeat
      
      Cc: Christian Lamparter <chunkeey@googlemail.com>
      Cc: Kalle Valo <kvalo@codeaurora.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Cc: Johannes Berg <johannes@sipsolutions.net>
      Cc: linux-wireless@vger.kernel.org
      Cc: netdev@vger.kernel.org
      Suggested-by: default avatarRasmus Villemoes <linux@rasmusvillemoes.dk>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Acked-by: default avatarChristian Lamparter <chunkeey@gmail.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/20200827093351.GA1627017@dell
      859228a3
    • Lee Jones's avatar
      wil6210: wil_platform: Demote kernel-doc header to standard comment block · ea2e3df7
      Lee Jones authored
      
      
      There has been no attempt to document any of the function parameters here.
      
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/wireless/ath/wil6210/wil_platform.c:27: warning: Function parameter or member 'dev' not described in 'wil_platform_init'
       drivers/net/wireless/ath/wil6210/wil_platform.c:27: warning: Function parameter or member 'ops' not described in 'wil_platform_init'
       drivers/net/wireless/ath/wil6210/wil_platform.c:27: warning: Function parameter or member 'rops' not described in 'wil_platform_init'
       drivers/net/wireless/ath/wil6210/wil_platform.c:27: warning: Function parameter or member 'wil_handle' not described in 'wil_platform_init'
      
      Cc: Maya Erez <merez@codeaurora.org>
      Cc: Kalle Valo <kvalo@codeaurora.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Cc: linux-wireless@vger.kernel.org
      Cc: wil6210@qti.qualcomm.com
      Cc: netdev@vger.kernel.org
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/20200827073832.GW3248864@dell
      ea2e3df7
    • Lee Jones's avatar
      wil6210: pmc: Demote a few nonconformant kernel-doc function headers · c7b1a9b3
      Lee Jones authored
      
      
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/wireless/ath/wil6210/pmc.c:43: warning: Function parameter or member 'wil' not described in 'wil_pmc_alloc'
       drivers/net/wireless/ath/wil6210/pmc.c:43: warning: Function parameter or member 'num_descriptors' not described in 'wil_pmc_alloc'
       drivers/net/wireless/ath/wil6210/pmc.c:43: warning: Function parameter or member 'descriptor_size' not described in 'wil_pmc_alloc'
       drivers/net/wireless/ath/wil6210/pmc.c:229: warning: Function parameter or member 'wil' not described in 'wil_pmc_free'
       drivers/net/wireless/ath/wil6210/pmc.c:229: warning: Function parameter or member 'send_pmc_cmd' not described in 'wil_pmc_free'
       drivers/net/wireless/ath/wil6210/pmc.c:307: warning: Function parameter or member 'wil' not described in 'wil_pmc_last_cmd_status'
       drivers/net/wireless/ath/wil6210/pmc.c:320: warning: Function parameter or member 'filp' not described in 'wil_pmc_read'
       drivers/net/wireless/ath/wil6210/pmc.c:320: warning: Function parameter or member 'buf' not described in 'wil_pmc_read'
       drivers/net/wireless/ath/wil6210/pmc.c:320: warning: Function parameter or member 'count' not described in 'wil_pmc_read'
       drivers/net/wireless/ath/wil6210/pmc.c:320: warning: Function parameter or member 'f_pos' not described in 'wil_pmc_read'
      
      Cc: Maya Erez <merez@codeaurora.org>
      Cc: Kalle Valo <kvalo@codeaurora.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Cc: linux-wireless@vger.kernel.org
      Cc: wil6210@qti.qualcomm.com
      Cc: netdev@vger.kernel.org
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/20200827073718.GV3248864@dell
      c7b1a9b3
    • Lee Jones's avatar
      wil6210: txrx_edma: Demote comments which are clearly not kernel-doc · e2d651b9
      Lee Jones authored
      
      
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/wireless/ath/wil6210/txrx_edma.c:155: warning: Function parameter or member 'wil' not described in 'wil_ring_alloc_skb_edma'
       drivers/net/wireless/ath/wil6210/txrx_edma.c:155: warning: Function parameter or member 'ring' not described in 'wil_ring_alloc_skb_edma'
       drivers/net/wireless/ath/wil6210/txrx_edma.c:155: warning: Function parameter or member 'i' not described in 'wil_ring_alloc_skb_edma'
       drivers/net/wireless/ath/wil6210/txrx_edma.c:1161: warning: Function parameter or member 'wil' not described in 'wil_tx_sring_handler'
       drivers/net/wireless/ath/wil6210/txrx_edma.c:1161: warning: Function parameter or member 'sring' not described in 'wil_tx_sring_handler'
       drivers/net/wireless/ath/wil6210/txrx_edma.c:1328: warning: Function parameter or member 'd' not described in 'wil_tx_desc_offload_setup_tso_edma'
       drivers/net/wireless/ath/wil6210/txrx_edma.c:1328: warning: Function parameter or member 'tso_desc_type' not described in 'wil_tx_desc_offload_setup_tso_edma'
       drivers/net/wireless/ath/wil6210/txrx_edma.c:1328: warning: Function parameter or member 'is_ipv4' not described in 'wil_tx_desc_offload_setup_tso_edma'
       drivers/net/wireless/ath/wil6210/txrx_edma.c:1328: warning: Function parameter or member 'tcp_hdr_len' not described in 'wil_tx_desc_offload_setup_tso_edma'
       drivers/net/wireless/ath/wil6210/txrx_edma.c:1328: warning: Function parameter or member 'skb_net_hdr_len' not described in 'wil_tx_desc_offload_setup_tso_edma'
       drivers/net/wireless/ath/wil6210/txrx_edma.c:1328: warning: Function parameter or member 'mss' not described in 'wil_tx_desc_offload_setup_tso_edma'
      
      Cc: Maya Erez <merez@codeaurora.org>
      Cc: Kalle Valo <kvalo@codeaurora.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Cc: linux-wireless@vger.kernel.org
      Cc: wil6210@qti.qualcomm.com
      Cc: netdev@vger.kernel.org
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/20200827073545.GU3248864@dell
      e2d651b9
    • Lee Jones's avatar
      wil6210: txrx: Demote obvious abuse of kernel-doc · e6636d64
      Lee Jones authored
      
      
      None of these headers provide any parameter documentation.
      
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/wireless/ath/wil6210/txrx.c:259: warning: Function parameter or member 'wil' not described in 'wil_vring_alloc_skb'
       drivers/net/wireless/ath/wil6210/txrx.c:259: warning: Function parameter or member 'vring' not described in 'wil_vring_alloc_skb'
       drivers/net/wireless/ath/wil6210/txrx.c:259: warning: Function parameter or member 'i' not described in 'wil_vring_alloc_skb'
       drivers/net/wireless/ath/wil6210/txrx.c:259: warning: Function parameter or member 'headroom' not described in 'wil_vring_alloc_skb'
       drivers/net/wireless/ath/wil6210/txrx.c:309: warning: Function parameter or member 'wil' not described in 'wil_rx_add_radiotap_header'
       drivers/net/wireless/ath/wil6210/txrx.c:309: warning: Function parameter or member 'skb' not described in 'wil_rx_add_radiotap_header'
       drivers/net/wireless/ath/wil6210/txrx.c:444: warning: Function parameter or member 'wil' not described in 'wil_vring_reap_rx'
       drivers/net/wireless/ath/wil6210/txrx.c:444: warning: Function parameter or member 'vring' not described in 'wil_vring_reap_rx'
       drivers/net/wireless/ath/wil6210/txrx.c:610: warning: Function parameter or member 'wil' not described in 'wil_rx_refill'
       drivers/net/wireless/ath/wil6210/txrx.c:610: warning: Function parameter or member 'count' not described in 'wil_rx_refill'
       drivers/net/wireless/ath/wil6210/txrx.c:1011: warning: Function parameter or member 'wil' not described in 'wil_rx_handle'
       drivers/net/wireless/ath/wil6210/txrx.c:1011: warning: Function parameter or member 'quota' not described in 'wil_rx_handle'
       drivers/net/wireless/ath/wil6210/txrx.c:1643: warning: Function parameter or member 'd' not described in 'wil_tx_desc_offload_setup_tso'
       drivers/net/wireless/ath/wil6210/txrx.c:1643: warning: Function parameter or member 'skb' not described in 'wil_tx_desc_offload_setup_tso'
       drivers/net/wireless/ath/wil6210/txrx.c:1643: warning: Function parameter or member 'tso_desc_type' not described in 'wil_tx_desc_offload_setup_tso'
       drivers/net/wireless/ath/wil6210/txrx.c:1643: warning: Function parameter or member 'is_ipv4' not described in 'wil_tx_desc_offload_setup_tso'
       drivers/net/wireless/ath/wil6210/txrx.c:1643: warning: Function parameter or member 'tcp_hdr_len' not described in 'wil_tx_desc_offload_setup_tso'
       drivers/net/wireless/ath/wil6210/txrx.c:1643: warning: Function parameter or member 'skb_net_hdr_len' not described in 'wil_tx_desc_offload_setup_tso'
       drivers/net/wireless/ath/wil6210/txrx.c:1674: warning: Function parameter or member 'd' not described in 'wil_tx_desc_offload_setup'
       drivers/net/wireless/ath/wil6210/txrx.c:1674: warning: Function parameter or member 'skb' not described in 'wil_tx_desc_offload_setup'
       drivers/net/wireless/ath/wil6210/txrx.c:2240: warning: Function parameter or member 'wil' not described in '__wil_update_net_queues'
       drivers/net/wireless/ath/wil6210/txrx.c:2240: warning: Function parameter or member 'vif' not described in '__wil_update_net_queues'
       drivers/net/wireless/ath/wil6210/txrx.c:2240: warning: Function parameter or member 'ring' not described in '__wil_update_net_queues'
       drivers/net/wireless/ath/wil6210/txrx.c:2240: warning: Function parameter or member 'check_stop' not described in '__wil_update_net_queues'
       drivers/net/wireless/ath/wil6210/txrx.c:2430: warning: Function parameter or member 'vif' not described in 'wil_tx_complete'
       drivers/net/wireless/ath/wil6210/txrx.c:2430: warning: Function parameter or member 'ringid' not described in 'wil_tx_complete'
      
      Cc: Maya Erez <merez@codeaurora.org>
      Cc: Kalle Valo <kvalo@codeaurora.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Cc: linux-wireless@vger.kernel.org
      Cc: wil6210@qti.qualcomm.com
      Cc: netdev@vger.kernel.org
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/20200827073442.GT3248864@dell
      e6636d64
    • Lee Jones's avatar
      wil6210: interrupt: Demote comment header which is clearly not kernel-doc · 299ff6c6
      Lee Jones authored
      
      
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/wireless/ath/wil6210/interrupt.c:652: warning: Function parameter or member 'irq' not described in 'wil6210_thread_irq'
       drivers/net/wireless/ath/wil6210/interrupt.c:652: warning: Function parameter or member 'cookie' not described in 'wil6210_thread_irq'
      
      Cc: Maya Erez <merez@codeaurora.org>
      Cc: Kalle Valo <kvalo@codeaurora.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Cc: linux-wireless@vger.kernel.org
      Cc: wil6210@qti.qualcomm.com
      Cc: netdev@vger.kernel.org
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/20200827073338.GS3248864@dell
      299ff6c6
    • Lee Jones's avatar
      wil6210: wmi: Fix formatting and demote non-conforming function headers · 6b9739c8
      Lee Jones authored
      
      
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/wireless/ath/wil6210/wmi.c:52: warning: Incorrect use of kernel-doc format:  * Addressing - theory of operations
       drivers/net/wireless/ath/wil6210/wmi.c:70: warning: Incorrect use of kernel-doc format:  * @sparrow_fw_mapping provides memory remapping table for sparrow
       drivers/net/wireless/ath/wil6210/wmi.c:80: warning: cannot understand function prototype: 'const struct fw_map sparrow_fw_mapping[] = '
       drivers/net/wireless/ath/wil6210/wmi.c:107: warning: Cannot understand  * @sparrow_d0_mac_rgf_ext - mac_rgf_ext section for Sparrow D0
       drivers/net/wireless/ath/wil6210/wmi.c:115: warning: Cannot understand  * @talyn_fw_mapping provides memory remapping table for Talyn
       drivers/net/wireless/ath/wil6210/wmi.c:158: warning: Cannot understand  * @talyn_mb_fw_mapping provides memory remapping table for Talyn-MB
       drivers/net/wireless/ath/wil6210/wmi.c:236: warning: Function parameter or member 'x' not described in 'wmi_addr_remap'
       drivers/net/wireless/ath/wil6210/wmi.c:255: warning: Function parameter or member 'section' not described in 'wil_find_fw_mapping'
       drivers/net/wireless/ath/wil6210/wmi.c:278: warning: Function parameter or member 'wil' not described in 'wmi_buffer_block'
       drivers/net/wireless/ath/wil6210/wmi.c:278: warning: Function parameter or member 'ptr_' not described in 'wmi_buffer_block'
       drivers/net/wireless/ath/wil6210/wmi.c:278: warning: Function parameter or member 'size' not described in 'wmi_buffer_block'
       drivers/net/wireless/ath/wil6210/wmi.c:307: warning: Function parameter or member 'wil' not described in 'wmi_addr'
       drivers/net/wireless/ath/wil6210/wmi.c:307: warning: Function parameter or member 'ptr' not described in 'wmi_addr'
       drivers/net/wireless/ath/wil6210/wmi.c:1589: warning: Function parameter or member 'wil' not described in 'wil_find_cid_ringid_sta'
       drivers/net/wireless/ath/wil6210/wmi.c:1589: warning: Function parameter or member 'vif' not described in 'wil_find_cid_ringid_sta'
       drivers/net/wireless/ath/wil6210/wmi.c:1589: warning: Function parameter or member 'cid' not described in 'wil_find_cid_ringid_sta'
       drivers/net/wireless/ath/wil6210/wmi.c:1589: warning: Function parameter or member 'ringid' not described in 'wil_find_cid_ringid_sta'
       drivers/net/wireless/ath/wil6210/wmi.c:1876: warning: Function parameter or member 'vif' not described in 'wmi_evt_ignore'
       drivers/net/wireless/ath/wil6210/wmi.c:1876: warning: Function parameter or member 'id' not described in 'wmi_evt_ignore'
       drivers/net/wireless/ath/wil6210/wmi.c:1876: warning: Function parameter or member 'd' not described in 'wmi_evt_ignore'
       drivers/net/wireless/ath/wil6210/wmi.c:1876: warning: Function parameter or member 'len' not described in 'wmi_evt_ignore'
       drivers/net/wireless/ath/wil6210/wmi.c:2588: warning: Function parameter or member 'wil' not described in 'wmi_rxon'
      
      Cc: Maya Erez <merez@codeaurora.org>
      Cc: Kalle Valo <kvalo@codeaurora.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Cc: linux-wireless@vger.kernel.org
      Cc: wil6210@qti.qualcomm.com
      Cc: netdev@vger.kernel.org
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/20200827073201.GR3248864@dell
      6b9739c8
    • Colin Ian King's avatar
      ath11k: fix missing error check on call to ath11k_pci_get_user_msi_assignment · b2c09458
      Colin Ian King authored
      The return error check on the call to ath11k_pci_get_user_msi_assignment is
      missing.  If an error does occur, num_vectors is still set to zero and
      later on a division by zero can occur when variable vector is being
      calculated.  Fix this by adding an error check after the call.
      
      Addresses-Coverity: ("Division or modulo by zero")
      Fixes: d4ecb90b
      
       ("ath11k: enable DP interrupt setup for QCA6390")
      Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/20200819111452.52419-1-colin.king@canonical.com
      b2c09458
    • Colin Ian King's avatar
      ath11k: fix spelling mistake "moniter" -> "monitor" · bd5dd7aa
      Colin Ian King authored
      
      
      There is a spelling mistake in an ath11k_warn warning message. Fix it.
      
      Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/20200819074729.48591-1-colin.king@canonical.com
      bd5dd7aa
    • Allen Pais's avatar
      ath11k: convert tasklets to use new tasklet_setup() API · c08279a9
      Allen Pais authored
      
      
      In preparation for unconditionally passing the
      struct tasklet_struct pointer to all tasklet
      callbacks, switch to using the new tasklet_setup()
      and from_tasklet() to pass the tasklet pointer explicitly.
      
      Signed-off-by: default avatarAllen Pais <allen.lkml@gmail.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/20200817090637.26887-5-allen.cryptic@gmail.com
      c08279a9
  3. Aug 27, 2020
  4. Aug 26, 2020
  5. Aug 20, 2020
    • Wen Gong's avatar
      ath10k: sdio: add firmware coredump support · 3c45f21a
      Wen Gong authored
      
      
      When firmware crashes it's possible to create a coredump for later analysis,
      add support to collect the register and memory info from SDIO devices.
      
      The coredump configuration is different between QCA6174 PCI and QCA6174 SDIO,
      so add specific registers and memory regions for the latter.
      
      QCA6174 SDIO has two methods to dump the firmware: fastdump and slowdump.
      Fastdump is not supported in olded versions of firmware, and for these ath10k
      will automatically select slowdump. If firmware supports fastdump, ath10k will
      automatically select it. QCA6174 SDIO firmware version
      WLAN.RMH.4.4.1-00017-QCARMSWPZ-2 is the first version supporting fastdump.
      
      For slowdump, ath10k_sdio_hif_diag_read() can not be used as the diag
      window has a limit value, it is 4 bytes and the dump's buffer length is larger
      than it, it will trigger error. So this patch adds ath10k_sdio_read_mem() to
      read 4 bytes for each time.
      
      Example output of a firmware crash:
      
      ath10k_sdio mmc1:0001:1: simulating soft firmware crash
      ath10k_sdio mmc1:0001:1: firmware crashed! (guid 413d98b1-84c0-4298-b605-2b10ec0c54a5)
      ath10k_sdio mmc1:0001:1: qca6174 hw3.2 sdio target 0x05030000 chip_id 0x00000000 sub 0000:0000
      ath10k_sdio mmc1:0001:1: kconfig debug 1 debugfs 1 tracing 1 dfs 0 testmode 1
      ath10k_sdio mmc1:0001:1: firmware ver WLAN.RMH4.4.1-00126-QCARMSWP-1 api 6 features wowlan,ignore-otp,raw-mode crc32 b84317cf
      ath10k_sdio mmc1:0001:1: board_file api 2 bmi_id 0:4 crc32 6364cfcc
      ath10k_sdio mmc1:0001:1: htt-ver 3.69 wmi-op 4 htt-op 3 cal otp max-sta 32 raw 0 hwcrypto 1
      ath10k_sdio mmc1:0001:1: firmware register dump:
      ath10k_sdio mmc1:0001:1: [00]: 0x05030000 0x000015B3 0x0099908D 0x00955B31
      ath10k_sdio mmc1:0001:1: [04]: 0x0099908D 0x00060730 0x00000018 0x004641A0
      ath10k_sdio mmc1:0001:1: [08]: 0x0041FAA4 0x0041FA9C 0x00999070 0x00404490
      ath10k_sdio mmc1:0001:1: [12]: 0x00000009 0xFFFFFFFF 0x00952CD0 0x00952CE6
      ath10k_sdio mmc1:0001:1: [16]: 0x00952CC4 0x00910712 0x00000000 0x00000000
      ath10k_sdio mmc1:0001:1: [20]: 0x4099908D 0x0040E9E8 0x00000001 0x00423AC0
      ath10k_sdio mmc1:0001:1: [24]: 0x809F3189 0x0040EA48 0x00426240 0xC099908D
      ath10k_sdio mmc1:0001:1: [28]: 0x809143A7 0x0040EA68 0x0041FAA4 0x00423A80
      ath10k_sdio mmc1:0001:1: [32]: 0x809F1193 0x0040EA88 0x00411770 0x004117E0
      ath10k_sdio mmc1:0001:1: [36]: 0x809F0EEE 0x0040EAA8 0x00000000 0x00000000
      ath10k_sdio mmc1:0001:1: [40]: 0x80911210 0x0040EAC8 0x00000008 0x00404130
      ath10k_sdio mmc1:0001:1: [44]: 0x80911154 0x0040EB28 0x00400000 0x00000000
      ath10k_sdio mmc1:0001:1: [48]: 0x8091122D 0x0040EB48 0x00000000 0x00400600
      ath10k_sdio mmc1:0001:1: [52]: 0x40910024 0x0040EB78 0x0040AB98 0x0040AB98
      ath10k_sdio mmc1:0001:1: [56]: 0x00000000 0x0040EB98 0x009BB001 0x00040020
      
      Tested-on: QCA6174 SDIO WLAN.RMH.4.4.1-00018-QCARMSWP-1
      
      Signed-off-by: default avatarWen Gong <wgong@codeaurora.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/1569310030-834-3-git-send-email-wgong@codeaurora.org
      3c45f21a
    • Wen Gong's avatar
      ath10k: add bus type for each layout of coredump · c796d513
      Wen Gong authored
      
      
      For some hw version, it has more than one bus type, it need to add bus
      type to distinguish different chip.
      
      Tested-on: QCA6174 SDIO WLAN.RMH.4.4.1-00018-QCARMSWP-1
      
      Signed-off-by: default avatarWen Gong <wgong@codeaurora.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/1569310030-834-2-git-send-email-wgong@codeaurora.org
      c796d513
  6. Aug 18, 2020
    • Kalle Valo's avatar
      Merge ath-next from git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git · eb77802e
      Kalle Valo authored
      ath.git patches for v5.10. Major changes:
      
      ath11k
      
      * add support for QCA6390 PCI devices
      
      wcn36xx
      
      * add support for TX ack
      
      ath9k
      
      * add support for NL80211_EXT_FEATURE_CAN_REPLACE_PTK0 to improve PTK0
        rekeying
      eb77802e
    • Tom Rix's avatar
      rndis_wlan: tighten check of rndis_query_oid return · 094dd0d7
      Tom Rix authored
      
      
      clang static analysis reports this problem
      
      rndis_wlan.c:3147:25: warning: Assigned value is garbage or undefined
                      wiphy->max_num_pmkids = le32_to_cpu(caps.num_pmkids);
                                            ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      
      The setting of caps happens here, with a call to rndis_query_oid()
      
      	retval = rndis_query_oid(usbdev,
      	if (retval >= 0) {
      
      Reviewing rndis_query_oid() shows that on success 0 is returned,
      failure is otherwise.  So the retval check is not tight enough.
      So tighten the retval check.  Similar problem in
      rndis_wlan_get_caps().
      
      Signed-off-by: default avatarTom Rix <trix@redhat.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/20200811140219.8412-1-trix@redhat.com
      094dd0d7
    • Christophe JAILLET's avatar
      mwifiex: Do not use GFP_KERNEL in atomic context · d2ab7f00
      Christophe JAILLET authored
      A possible call chain is as follow:
        mwifiex_sdio_interrupt                            (sdio.c)
          --> mwifiex_main_process                        (main.c)
            --> mwifiex_process_cmdresp                   (cmdevt.c)
              --> mwifiex_process_sta_cmdresp             (sta_cmdresp.c)
                --> mwifiex_ret_802_11_scan               (scan.c)
                  --> mwifiex_parse_single_response_buf   (scan.c)
      
      'mwifiex_sdio_interrupt()' is an interrupt function.
      
      Also note that 'mwifiex_ret_802_11_scan()' already uses GFP_ATOMIC.
      
      So use GFP_ATOMIC instead of GFP_KERNEL when memory is allocated in
      'mwifiex_parse_single_response_buf()'.
      
      Fixes: 7c6fa2a8 ("mwifiex: use cfg80211 dynamic scan table and cfg80211_get_bss API")
      or
      Fixes: 601216e1
      
       ("mwifiex: process RX packets in SDIO IRQ thread directly")
      Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/20200809092906.744621-1-christophe.jaillet@wanadoo.fr
      d2ab7f00
    • Christophe JAILLET's avatar
      adm8211: switch from 'pci_' to 'dma_' API · 2c762ee5
      Christophe JAILLET authored
      
      
      The wrappers in include/linux/pci-dma-compat.h should go away.
      
      The patch has been generated with the coccinelle script below and has been
      hand modified to replace GFP_ with a correct flag.
      It has been compile tested.
      
      When memory is allocated in 'adm8211_alloc_rings()', GFP_KERNEL can be used
      because it is called only from the probe function and no lock is acquired.
      Moreover, GFP_KERNEL is already used just a few lines above in a kmalloc.
      
      @@
      @@
      -    PCI_DMA_BIDIRECTIONAL
      +    DMA_BIDIRECTIONAL
      
      @@
      @@
      -    PCI_DMA_TODEVICE
      +    DMA_TO_DEVICE
      
      @@
      @@
      -    PCI_DMA_FROMDEVICE
      +    DMA_FROM_DEVICE
      
      @@
      @@
      -    PCI_DMA_NONE
      +    DMA_NONE
      
      @@
      expression e1, e2, e3;
      @@
      -    pci_alloc_consistent(e1, e2, e3)
      +    dma_alloc_coherent(&e1->dev, e2, e3, GFP_)
      
      @@
      expression e1, e2, e3;
      @@
      -    pci_zalloc_consistent(e1, e2, e3)
      +    dma_alloc_coherent(&e1->dev, e2, e3, GFP_)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_free_consistent(e1, e2, e3, e4)
      +    dma_free_coherent(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_map_single(e1, e2, e3, e4)
      +    dma_map_single(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_unmap_single(e1, e2, e3, e4)
      +    dma_unmap_single(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4, e5;
      @@
      -    pci_map_page(e1, e2, e3, e4, e5)
      +    dma_map_page(&e1->dev, e2, e3, e4, e5)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_unmap_page(e1, e2, e3, e4)
      +    dma_unmap_page(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_map_sg(e1, e2, e3, e4)
      +    dma_map_sg(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_unmap_sg(e1, e2, e3, e4)
      +    dma_unmap_sg(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_dma_sync_single_for_cpu(e1, e2, e3, e4)
      +    dma_sync_single_for_cpu(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_dma_sync_single_for_device(e1, e2, e3, e4)
      +    dma_sync_single_for_device(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_dma_sync_sg_for_cpu(e1, e2, e3, e4)
      +    dma_sync_sg_for_cpu(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_dma_sync_sg_for_device(e1, e2, e3, e4)
      +    dma_sync_sg_for_device(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2;
      @@
      -    pci_dma_mapping_error(e1, e2)
      +    dma_mapping_error(&e1->dev, e2)
      
      @@
      expression e1, e2;
      @@
      -    pci_set_dma_mask(e1, e2)
      +    dma_set_mask(&e1->dev, e2)
      
      @@
      expression e1, e2;
      @@
      -    pci_set_consistent_dma_mask(e1, e2)
      +    dma_set_coherent_mask(&e1->dev, e2)
      
      Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/20200806210431.736050-1-christophe.jaillet@wanadoo.fr
      2c762ee5
    • Colin Ian King's avatar
      rtw88: fix spelling mistake: "unsupport" -> "unsupported" · 86c96422
      Colin Ian King authored
      
      
      There are some spelling mistakes in rtw_info messages. Fix these.
      
      Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/20200806120803.60113-1-colin.king@canonical.com
      86c96422