[RFC v4 00/21] ath10k sdio and usb support
Erik Stromdahl
erik.stromdahl at gmail.com
Tue Feb 21 08:15:20 PST 2017
This is the 4th version of the sdio and usb RFC patch series.
I have combined the sdio and usb patches into one series since they are
inseparable (both series must be applied in order to have a working system).
The main difference since last version (v3) is that QCA9377 sdio support
was added. I have also fixed a few minor issues in the sdio HIF layer.
*Current status*
The sdio and usb HIF layers seem to work fine. I am able to download fw,
connect WMI and HTT services and so on.
I have been running it for a while now and so far I have not encountered
any major issues.
The biggest issue right now is that the board setup of high latency devices
is very different in qcacld than for ath10k. I have a working qcacld
system on a 4.1 kernel that I am using a as a reference. I am basically
diffing the bus traffic between qcacld and ath10k to see what the
differences are and then try to incorporate the missing stuff in ath10k.
Some WMI messages used by qcacld are not present in ath10k, and a few
others are different.
An example is the WMI init message:
>From qcacld:
[539.662779] WMI msg id: 1, WMI_INIT_CMDID
WmiTlvInitCmd:
TlvHeader:
length: 0x1c
tag: 0x4a (WMI_TLV_TAG_STRUCT_INIT_CMD)
WmiTlvAbiVersion:
abi_ver0: 0x1000000
abi_ver1: 0xa8 <- DIFFERENT
abi_ver_ns0: 0x5f414351
abi_ver_ns1: 0x4c4d
abi_ver_ns2: 0x0
abi_ver_ns3: 0x0
num_host_mem_chunks: 0x0
WmiTlvResourceConfig:
TlvHeader:
length: 0xac <- DIFFERENT
tag: 0x4b (WMI_TLV_TAG_STRUCT_RESOURCE_CONFIG)
...
>From ath10k:
[51.312300] WMI msg id: 1, WMI_INIT_CMDID
WmiTlvInitCmd:
TlvHeader:
length: 0x1c
tag: 0x4a (WMI_TLV_TAG_STRUCT_INIT_CMD)
WmiTlvAbiVersion:
abi_ver0: 0x1000000
abi_ver1: 0x35 <- DIFFERENT
abi_ver_ns0: 0x5f414351
abi_ver_ns1: 0x4c4d
abi_ver_ns2: 0x0
abi_ver_ns3: 0x0
num_host_mem_chunks: 0x0
WmiTlvResourceConfig:
TlvHeader:
length: 0x9c <- DIFFERENT
tag: 0x4b (WMI_TLV_TAG_STRUCT_RESOURCE_CONFIG)
...
Notice the difference in abi_ver1 and the WmiTlvResourceConfig length.
Apparently qcacld uses a newer version of the wmi tlv protocol.
I get the feeling that the high latency devices are intended to be used
with a newer WMI protocol version than ath10k supports.
The usb firmware seems to be more capable of handling the older wmi format
than the sdio firmware (I am able to connect to my AP and lease an IP
address with the usb device but not with the sdio device using exactly the
same setup)
I think these issues will have to be addressed in a future patch series.
The usb stuff is more or less in the same state as previously, nothing
has happened there except for a few checkpatch fixes.
Erik Stromdahl (21):
ath10k: htc: made static function public
ath10k: htc: rx trailer lookahead support
ath10k: htc: move htc ctrl ep connect to htc_init
ath10k: htc: refactorization
ath10k: various sdio related definitions
ath10k: sdio support
ath10k: add sdio extra initializations
ath10k: sdio get target info
ath10k: htc: ready_ext msg support
ath10k: various usb related definitions
ath10k: usb support
ath10k: high_latency detection
ath10k: different fw file names for usb and sdio
ath10k: htt: RX ring config HL support
ath10k: per target configurablity of various items
ath10k: add start_once support
ath10k: htt: High latency TX support
ath10k: htt: High latency RX support
ath10k: add QCA9377 usb hw_param item
ath10k: add QCA9377 sdio hw_param item
ath10k: dma fixes for high latency devices
drivers/net/wireless/ath/ath10k/Kconfig | 12 +
drivers/net/wireless/ath/ath10k/Makefile | 6 +
drivers/net/wireless/ath/ath10k/bmi.c | 70 +
drivers/net/wireless/ath/ath10k/bmi.h | 2 +
drivers/net/wireless/ath/ath10k/core.c | 176 ++-
drivers/net/wireless/ath/ath10k/core.h | 18 +-
drivers/net/wireless/ath/ath10k/debug.h | 4 +
drivers/net/wireless/ath/ath10k/htc.c | 254 +++-
drivers/net/wireless/ath/ath10k/htc.h | 39 +-
drivers/net/wireless/ath/ath10k/htt.c | 5 +-
drivers/net/wireless/ath/ath10k/htt.h | 57 +-
drivers/net/wireless/ath/ath10k/htt_rx.c | 98 +-
drivers/net/wireless/ath/ath10k/htt_tx.c | 126 +-
drivers/net/wireless/ath/ath10k/hw.h | 83 ++
drivers/net/wireless/ath/ath10k/mac.c | 5 +-
drivers/net/wireless/ath/ath10k/rx_desc.h | 15 +
drivers/net/wireless/ath/ath10k/sdio.c | 2138 +++++++++++++++++++++++++++
drivers/net/wireless/ath/ath10k/sdio.h | 263 ++++
drivers/net/wireless/ath/ath10k/targaddrs.h | 24 +
drivers/net/wireless/ath/ath10k/txrx.c | 5 +-
drivers/net/wireless/ath/ath10k/usb.c | 1125 ++++++++++++++
drivers/net/wireless/ath/ath10k/usb.h | 128 ++
drivers/net/wireless/ath/ath10k/wmi-tlv.c | 4 +-
23 files changed, 4529 insertions(+), 128 deletions(-)
create mode 100644 drivers/net/wireless/ath/ath10k/sdio.c
create mode 100644 drivers/net/wireless/ath/ath10k/sdio.h
create mode 100644 drivers/net/wireless/ath/ath10k/usb.c
create mode 100644 drivers/net/wireless/ath/ath10k/usb.h
--
2.7.4
More information about the ath10k
mailing list