linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/6] ath11k: add single shot/periodic CFR capture support for IPQ8074
@ 2022-02-11 15:07 Venkateswara Naralasetty
  2022-02-11 15:07 ` [PATCH 1/6] nl80211: vendor-cmd: qca: add command for CFR configuration Venkateswara Naralasetty
                   ` (5 more replies)
  0 siblings, 6 replies; 12+ messages in thread
From: Venkateswara Naralasetty @ 2022-02-11 15:07 UTC (permalink / raw)
  To: ath11k; +Cc: linux-wireless, Venkateswara Naralasetty

This Channel Frequency Response feature is to get the channel
state information from the hardware and send the CSI data to
userspace.

CFR dumps will be collected from the received ACK's for the
transmited QOS NULL frames for the associated stations. For
unassociated stations CFR dumps will be collected from the
probe response ACK.

CFR format to user space:
 ___________________________________________
| CFR header | CFR payload | CFR tail data |
|____________|_____________|_______________|

CFR header contains the following fields,

* Start magic number 0xDEADBEAF - 4bytes
* vendor id - 4bytes
* cfr metadata version - 1byte
* cfr data version - 1byte
* chip type - 1byte
* platform type - 1byte
* CFR metadata length - 4bytes
* metadata - 92bytes
        peer mac - 6bytes
        capture status - 1byte (1 for success 0 for failure)
        capture_bw - 1byte
        channel_bw - 1byte
        phy_mode - 1byte
        prim20_chan - 2bytes
        center_freq1 - 2bytes
        center_freq2 - 2bytes
        capture_mode - 1byte
        capture_type - 1byte
        sts_count - 1byte
        num_rx_chain - 1byte
        timestamp - 4bytes
        length - 4bytes
        chain_rssi - 32bytes (4bytes for each chain)
        chain_phase - 16bytes (2bytes for each chain)
        cfo_measurement - 4bytes
        agc_gain - 8bytes (1 bytes for each chain)
        rx_start_ts - 4bytes

CFR payload:

CFR payload contains 8bytes of ucode header followed by the
tone information. Tone order is  positive tones, followed by
PHY memory garbage, followed by negative tones. Dummy tones
are uploaded to make number of tones always integer number
of 64. Number of tones is not preamble type dependent.

Each CFR tone has 14-bit I component and 14-bit Q component
and is sign extended to 16-bit I/Q. Two tones are packed
into one 64-bit unit as:

[63:0] = [Tone1_Q(63:48) Tone1_I(47:32) Tone0_Q(31:16) Tone0_I(15:0)]

CFR tail: end magic number 0xBEAFDEAD

Tested-on: IPQ8074 WLAN.HK.2.5.0.1-00991-QCAHKSWPL_SILICONZ-1

Venkateswara Naralasetty (6):
  nl80211: vendor-cmd: qca: add command for CFR configuration
  ath11k: CFR module initialization and deinitialization for IPQ8074
  ath11k: register relayfs entries for CFR dump
  ath11k: register vendor sub command for CFR configuration
  ath11k: Register DBR event handler for CFR data
  ath11k: Register handler for CFR capture event

 drivers/net/wireless/ath/ath11k/Kconfig  |   9 +
 drivers/net/wireless/ath/ath11k/Makefile |   4 +-
 drivers/net/wireless/ath/ath11k/cfr.c    | 816 +++++++++++++++++++++++++++++++
 drivers/net/wireless/ath/ath11k/cfr.h    | 304 ++++++++++++
 drivers/net/wireless/ath/ath11k/core.c   |  35 ++
 drivers/net/wireless/ath/ath11k/core.h   |  17 +
 drivers/net/wireless/ath/ath11k/dbring.c |  33 +-
 drivers/net/wireless/ath/ath11k/dbring.h |   7 +
 drivers/net/wireless/ath/ath11k/debug.h  |   2 +
 drivers/net/wireless/ath/ath11k/hal.c    |   3 +-
 drivers/net/wireless/ath/ath11k/hw.h     |   5 +
 drivers/net/wireless/ath/ath11k/mac.c    |  18 +-
 drivers/net/wireless/ath/ath11k/vendor.c | 192 ++++++++
 drivers/net/wireless/ath/ath11k/vendor.h |  13 +
 drivers/net/wireless/ath/ath11k/wmi.c    | 148 +++++-
 drivers/net/wireless/ath/ath11k/wmi.h    |  97 +++-
 include/uapi/linux/nl80211-vnd-qca.h     | 104 ++++
 17 files changed, 1791 insertions(+), 16 deletions(-)
 create mode 100644 drivers/net/wireless/ath/ath11k/cfr.c
 create mode 100644 drivers/net/wireless/ath/ath11k/cfr.h
 create mode 100644 drivers/net/wireless/ath/ath11k/vendor.c
 create mode 100644 drivers/net/wireless/ath/ath11k/vendor.h
 create mode 100644 include/uapi/linux/nl80211-vnd-qca.h

-- 
2.7.4


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2022-02-12 21:13 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-11 15:07 [PATCH 0/6] ath11k: add single shot/periodic CFR capture support for IPQ8074 Venkateswara Naralasetty
2022-02-11 15:07 ` [PATCH 1/6] nl80211: vendor-cmd: qca: add command for CFR configuration Venkateswara Naralasetty
2022-02-12 21:10   ` Johannes Berg
2022-02-11 15:07 ` [PATCH 2/6] ath11k: CFR module initialization and deinitialization for IPQ8074 Venkateswara Naralasetty
2022-02-11 18:30   ` kernel test robot
2022-02-12 18:17   ` kernel test robot
2022-02-11 15:07 ` [PATCH 3/6] ath11k: register relayfs entries for CFR dump Venkateswara Naralasetty
2022-02-11 15:07 ` [PATCH 4/6] ath11k: register vendor sub command for CFR configuration Venkateswara Naralasetty
2022-02-11 15:07 ` [PATCH 5/6] ath11k: Register DBR event handler for CFR data Venkateswara Naralasetty
2022-02-11 19:31   ` kernel test robot
2022-02-12 18:17   ` kernel test robot
2022-02-11 15:07 ` [PATCH 6/6] ath11k: Register handler for CFR capture event Venkateswara Naralasetty

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).