1. 21 12月, 2021 3 次提交
    • W
      ath11k: add regdb.bin download for regdb offload · 01417e57
      Wen Gong 提交于
      The regdomain is self-managed type for ath11k, the regdomain info is
      reported from firmware, it is not from wireless regdb. Firmware fetch
      the regdomain info from board data file before. Currently most of the
      regdomain info has moved to another file regdb.bin from board data
      file for some chips such as QCA6390 and WCN6855, so the regdomain info
      left in board data file is not enough to support the feature which need
      more regdomain info.
      
      After download regdb.bin, firmware will fetch the regdomain info from
      regdb.bin instead of board data file and report to ath11k. If it does
      not have the file regdb.bin, it also can initialize wlan success and
      firmware then fetch regdomain info from board data file.
      
      Add download the regdb.bin before download board data for some specific
      chip which support supports_regdb in hardware parameters.
      
      download regdb.bin log:
      [430082.334162] ath11k_pci 0000:05:00.0: chip_id 0x2 chip_family 0xb board_id 0x106 soc_id 0x400c0200
      [430082.334169] ath11k_pci 0000:05:00.0: fw_version 0x110c8b4c fw_build_timestamp 2021-10-25 07:41 fw_build_id QC_IMAGE_VERSION_STRING=WLAN.HSP.1.1-02892-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3
      [430082.334414] ath11k_pci 0000:05:00.0: boot firmware request ath11k/WCN6855/hw2.0/regdb.bin size 24310
      
      output of "iw reg get"
      global
      country US: DFS-FCC
              (2402 - 2472 @ 40), (N/A, 30), (N/A)
              (5170 - 5250 @ 80), (N/A, 23), (N/A), AUTO-BW
              (5250 - 5330 @ 80), (N/A, 23), (0 ms), DFS, AUTO-BW
              (5490 - 5730 @ 160), (N/A, 23), (0 ms), DFS
              (5735 - 5835 @ 80), (N/A, 30), (N/A)
              (57240 - 63720 @ 2160), (N/A, 40), (N/A)
      
      phy#0 (self-managed)
      country US: DFS-FCC
              (2402 - 2472 @ 40), (6, 30), (N/A)
              (5170 - 5250 @ 80), (N/A, 24), (N/A), AUTO-BW
              (5250 - 5330 @ 80), (N/A, 24), (0 ms), DFS, AUTO-BW
              (5490 - 5730 @ 160), (N/A, 24), (0 ms), DFS, AUTO-BW
              (5735 - 5895 @ 160), (N/A, 30), (N/A), AUTO-BW
              (5945 - 7125 @ 160), (N/A, 24), (N/A), NO-OUTDOOR, AUTO-BW
      
      Tested-on: QCA6390 hw2.0 PCI WLAN.HST.1.0.1-01740-QCAHSTSWPLZ_V2_TO_X86-1
      Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-01720.1-QCAHSPSWPL_V1_V2_SILICONZ_LITE-1
      Signed-off-by: NWen Gong <quic_wgong@quicinc.com>
      Signed-off-by: NKalle Valo <quic_kvalo@quicinc.com>
      Link: https://lore.kernel.org/r/20211220062355.17021-1-quic_wgong@quicinc.com
      01417e57
    • W
      ath11k: add support for hardware rfkill for QCA6390 · ec038c61
      Wen Gong 提交于
      When hardware rfkill is enabled in the firmware it will report the
      capability via using WMI_SYS_CAP_INFO_RFKILL bit in the WMI_SERVICE_READY
      event to the host. ath11k will check the capability, and if it is enabled then
      ath11k will set the GPIO information to firmware using WMI_PDEV_SET_PARAM. When
      the firmware detects hardware rfkill is enabled by the user, it will report it
      via WMI_RFKILL_STATE_CHANGE_EVENTID. Once ath11k receives the event it will
      send wmi command WMI_PDEV_SET_PARAM to the firmware and also notifies cfg80211.
      
      This only enable rfkill feature for QCA6390, rfkill_pin is all initialized to 0
      for other chips in ath11k_hw_params.
      
      Tested-on: QCA6390 hw2.0 PCI WLAN.HST.1.0.1-01740-QCAHSTSWPLZ_V2_TO_X86-1
      Signed-off-by: NWen Gong <quic_wgong@quicinc.com>
      Signed-off-by: NKalle Valo <quic_kvalo@quicinc.com>
      Link: https://lore.kernel.org/r/20211217102334.14907-1-quic_wgong@quicinc.com
      ec038c61
    • W
      ath11k: report rssi of each chain to mac80211 for QCA6390/WCN6855 · b488c766
      Wen Gong 提交于
      Command "iw wls1 station dump" does not show each chain's rssi currently.
      
      If the rssi of each chain from mon status which parsed in function
      ath11k_hal_rx_parse_mon_status_tlv() is invalid, then ath11k send
      wmi cmd WMI_REQUEST_STATS_CMDID with flag WMI_REQUEST_RSSI_PER_CHAIN_STAT
      to firmware, and parse the rssi of chain in wmi WMI_UPDATE_STATS_EVENTID,
      then report them to mac80211.
      
      WMI_REQUEST_STATS_CMDID is only sent when CONFIG_ATH11K_DEBUGFS is set,
      it is only called by ath11k_mac_op_sta_statistics(). It does not effect
      performance and power consumption. Because after STATION connected to
      AP, it is only called every 6 seconds by NetworkManager in below stack.
      
      [  797.005587] CPU: 0 PID: 701 Comm: NetworkManager Tainted: G        W  OE     5.13.0-rc6-wt-ath+ #2
      [  797.005596] Hardware name: LENOVO 418065C/418065C, BIOS 83ET63WW (1.33 ) 07/29/2011
      [  797.005600] RIP: 0010:ath11k_mac_op_sta_statistics+0x2f/0x1b0 [ath11k]
      [  797.005644] Code: 41 56 41 55 4c 8d aa 58 01 00 00 41 54 55 48 89 d5 53 48 8b 82 58 01 00 00 48 89 cb 4c 8b 70 20 49 8b 06 4c 8b a0 90 08 00 00 <0f> 0b 48 8b 82 b8 01 00 00 48 ba 00 00 00 00 01 00 00 00 48 89 81
      [  797.005651] RSP: 0018:ffffb1fc80a4b890 EFLAGS: 00010282
      [  797.005658] RAX: ffff8a5726200000 RBX: ffffb1fc80a4b958 RCX: ffffb1fc80a4b958
      [  797.005664] RDX: ffff8a5726a609f0 RSI: ffff8a581247f598 RDI: ffff8a5702878800
      [  797.005668] RBP: ffff8a5726a609f0 R08: 0000000000000000 R09: 0000000000000000
      [  797.005672] R10: 0000000000000000 R11: 0000000000000007 R12: 02dd68024f75f480
      [  797.005676] R13: ffff8a5726a60b48 R14: ffff8a5702879f40 R15: ffff8a5726a60000
      [  797.005681] FS:  00007f632c52a380(0000) GS:ffff8a583a200000(0000) knlGS:0000000000000000
      [  797.005687] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [  797.005692] CR2: 00007fb025d69000 CR3: 00000001124f6005 CR4: 00000000000606f0
      [  797.005698] Call Trace:
      [  797.005710]  sta_set_sinfo+0xa7/0xb80 [mac80211]
      [  797.005820]  ieee80211_get_station+0x50/0x70 [mac80211]
      [  797.005925]  nl80211_get_station+0xd1/0x200 [cfg80211]
      [  797.006045]  genl_family_rcv_msg_doit.isra.15+0x111/0x140
      [  797.006059]  genl_rcv_msg+0xe6/0x1e0
      [  797.006065]  ? nl80211_dump_station+0x220/0x220 [cfg80211]
      [  797.006223]  ? nl80211_send_station.isra.72+0xf50/0xf50 [cfg80211]
      [  797.006348]  ? genl_family_rcv_msg_doit.isra.15+0x140/0x140
      [  797.006355]  netlink_rcv_skb+0xb9/0xf0
      [  797.006363]  genl_rcv+0x24/0x40
      [  797.006369]  netlink_unicast+0x18e/0x290
      [  797.006375]  netlink_sendmsg+0x30f/0x450
      [  797.006382]  sock_sendmsg+0x5b/0x60
      [  797.006393]  ____sys_sendmsg+0x219/0x240
      [  797.006403]  ? copy_msghdr_from_user+0x5c/0x90
      [  797.006413]  ? ____sys_recvmsg+0xf5/0x190
      [  797.006422]  ___sys_sendmsg+0x88/0xd0
      [  797.006432]  ? copy_msghdr_from_user+0x5c/0x90
      [  797.006443]  ? ___sys_recvmsg+0x9e/0xd0
      [  797.006454]  ? __fget_files+0x58/0x90
      [  797.006461]  ? __fget_light+0x2d/0x70
      [  797.006466]  ? do_epoll_wait+0xce/0x720
      [  797.006476]  ? __sys_sendmsg+0x63/0xa0
      [  797.006485]  __sys_sendmsg+0x63/0xa0
      [  797.006497]  do_syscall_64+0x3c/0xb0
      [  797.006509]  entry_SYSCALL_64_after_hwframe+0x44/0xae
      [  797.006519] RIP: 0033:0x7f632d99912d
      [  797.006526] Code: 28 89 54 24 1c 48 89 74 24 10 89 7c 24 08 e8 ca ee ff ff 8b 54 24 1c 48 8b 74 24 10 41 89 c0 8b 7c 24 08 b8 2e 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 2f 44 89 c7 48 89 44 24 08 e8 fe ee ff ff 48
      [  797.006533] RSP: 002b:00007ffd80808c00 EFLAGS: 00000293 ORIG_RAX: 000000000000002e
      [  797.006540] RAX: ffffffffffffffda RBX: 0000563dab99d840 RCX: 00007f632d99912d
      [  797.006545] RDX: 0000000000000000 RSI: 00007ffd80808c50 RDI: 000000000000000b
      [  797.006549] RBP: 00007ffd80808c50 R08: 0000000000000000 R09: 0000000000001000
      [  797.006552] R10: 0000563dab96f010 R11: 0000000000000293 R12: 0000563dab99d840
      [  797.006556] R13: 0000563dabbb28c0 R14: 00007f632dad4280 R15: 0000563dabab11c0
      [  797.006563] ---[ end trace c9dcf08920c9945c ]---
      
      Tested-on: QCA6390 hw2.0 PCI WLAN.HST.1.0.1-01230-QCAHSTSWPLZ_V2_TO_X86-1
      Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-02892.1-QCAHSPSWPL_V1_V2_SILICONZ_LITE-1
      Signed-off-by: NWen Gong <quic_wgong@quicinc.com>
      Signed-off-by: NKalle Valo <quic_kvalo@quicinc.com>
      Link: https://lore.kernel.org/r/20211215090944.19729-1-quic_wgong@quicinc.com
      b488c766
  2. 14 12月, 2021 2 次提交
  3. 09 12月, 2021 1 次提交
  4. 19 11月, 2021 1 次提交
    • S
      ath11k: add hw_param for wakeup_mhi · 081e2d64
      Seevalamuthu Mariappan 提交于
      Wakeup mhi is needed before pci_read/write only for QCA6390 and WCN6855. Since
      wakeup & release mhi is enabled for all hardwares, below mhi assert is seen in
      QCN9074 when doing 'rmmod ath11k_pci':
      
      	Kernel panic - not syncing: dev_wake != 0
      	CPU: 2 PID: 13535 Comm: procd Not tainted 4.4.60 #1
      	Hardware name: Generic DT based system
      	[<80316dac>] (unwind_backtrace) from [<80313700>] (show_stack+0x10/0x14)
      	[<80313700>] (show_stack) from [<805135dc>] (dump_stack+0x7c/0x9c)
      	[<805135dc>] (dump_stack) from [<8032136c>] (panic+0x84/0x1f8)
      	[<8032136c>] (panic) from [<80549b24>] (mhi_pm_disable_transition+0x3b8/0x5b8)
      	[<80549b24>] (mhi_pm_disable_transition) from [<80549ddc>] (mhi_power_down+0xb8/0x100)
      	[<80549ddc>] (mhi_power_down) from [<7f5242b0>] (ath11k_mhi_op_status_cb+0x284/0x3ac [ath11k_pci])
      	[E][__mhi_device_get_sync] Did not enter M0 state, cur_state:RESET pm_state:SHUTDOWN Process
      	[E][__mhi_device_get_sync] Did not enter M0 state, cur_state:RESET pm_state:SHUTDOWN Process
      	[E][__mhi_device_get_sync] Did not enter M0 state, cur_state:RESET pm_state:SHUTDOWN Process
      	[<7f5242b0>] (ath11k_mhi_op_status_cb [ath11k_pci]) from [<7f524878>] (ath11k_mhi_stop+0x10/0x20 [ath11k_pci])
      	[<7f524878>] (ath11k_mhi_stop [ath11k_pci]) from [<7f525b94>] (ath11k_pci_power_down+0x54/0x90 [ath11k_pci])
      	[<7f525b94>] (ath11k_pci_power_down [ath11k_pci]) from [<8056b2a8>] (pci_device_shutdown+0x30/0x44)
      	[<8056b2a8>] (pci_device_shutdown) from [<805cfa0c>] (device_shutdown+0x124/0x174)
      	[<805cfa0c>] (device_shutdown) from [<8033aaa4>] (kernel_restart+0xc/0x50)
      	[<8033aaa4>] (kernel_restart) from [<8033ada8>] (SyS_reboot+0x178/0x1ec)
      	[<8033ada8>] (SyS_reboot) from [<80301b80>] (ret_fast_syscall+0x0/0x34)
      
      Hence, disable wakeup/release mhi using hw_param for other hardwares.
      
      Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.5.0.1-01060-QCAHKSWPL_SILICONZ-1
      
      Fixes: a05bd851 ("ath11k: read and write registers below unwindowed address")
      Signed-off-by: NSeevalamuthu Mariappan <quic_seevalam@quicinc.com>
      Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/1636702019-26142-1-git-send-email-quic_seevalam@quicinc.com
      081e2d64
  5. 17 11月, 2021 1 次提交
    • P
      ath11k: Disabling credit flow for WMI path · f951380a
      P Praneesh 提交于
      Firmware credit flow control is enabled for WMI control services,
      which expects available tokens should be acquired before sending a
      command to the target. Also the token gets released when firmware
      receives the command.
      
      This credit-based flow limits driver to send WMI command only
      when the token available which is causing WMI commands to timeout and
      return -EAGAIN, whereas firmware has enough capability to process the
      WMI command. To fix this Tx starvation issue, introduce the ability to
      disable the credit flow for the WMI path.
      
      The driver sends WMI configuration for disabling credit flow to firmware
      by two ways.
      	1. By using a global flag
      		(HTC_MSG_SETUP_COMPLETE_EX_ID msg type flags)
      	2. By using a local flag
      		(ATH11K_HTC_CONN_FLAGS_DISABLE_CREDIT_FLOW_CTRL = 1 << 3)
      
      Ath11k uses both these configurations to disable credit flow for the
      WMI path completely.
      
      Also added a hw_param member for credit flow control by which we can
      enable or disable it based on per-target basis. Currently we are disabling
      credit flow for IPQ8074, IPQ6018, and QCN9074 as recommended by firmware.
      
      Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-01492-QCAHKSWPL_SILICONZ-1
      Tested-on: IPQ6018 hw1.0 AHB WLAN.HK.2.4.0.1-00330-QCAHKSWPL_SILICONZ-1
      Co-developed-by: NPravas Kumar Panda <kumarpan@codeaurora.org>
      Signed-off-by: NPravas Kumar Panda <kumarpan@codeaurora.org>
      Signed-off-by: NP Praneesh <quic_ppranees@quicinc.com>
      Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/1635156494-20059-1-git-send-email-quic_ppranees@quicinc.com
      f951380a
  6. 15 11月, 2021 1 次提交
  7. 10 11月, 2021 1 次提交
  8. 01 11月, 2021 1 次提交
  9. 25 10月, 2021 1 次提交
  10. 11 10月, 2021 1 次提交
  11. 28 9月, 2021 4 次提交
  12. 12 6月, 2021 5 次提交
  13. 17 2月, 2021 4 次提交
  14. 12 12月, 2020 2 次提交
  15. 07 11月, 2020 1 次提交
  16. 02 10月, 2020 4 次提交
  17. 22 9月, 2020 1 次提交
  18. 11 9月, 2020 1 次提交
  19. 18 8月, 2020 5 次提交