ath11k: Refactor PCI code to support WCN6750
authorManikanta Pubbisetty <quic_mpubbise@quicinc.com>
Fri, 1 Apr 2022 11:53:08 +0000 (14:53 +0300)
committerKalle Valo <quic_kvalo@quicinc.com>
Tue, 5 Apr 2022 08:05:27 +0000 (11:05 +0300)
commitbbfdc5a751a634fcdaae669cc98b3d0e1dc0eedf
tree707017c8925f1a5ba0d1574787241f365986fd6e
parent948171b5f6fcf11253355bd836e6e8b613bea12f
ath11k: Refactor PCI code to support WCN6750

Unlike other ATH11K PCIe devices which are enumerated by APSS
processor (Application Processor SubSystem), WCN6750 gets
enumerated by the WPSS Q6 processor (Wireless Processor SubSystem);
In simple terms, though WCN6750 is PCIe device, it is not attached
to the APSS processor, APSS will not know of such a device being
present in the system and therefore WCN6750 will be registered as
a platform device to the kernel core like other supported AHB
devices.

WCN6750 needs both AHB and PCI APIs for it's operation, it uses
AHB APIs for device probe/boot and PCI APIs for device setup and
register accesses. Because of this nature, it is referred as a
hybrid bus device.

Refactor PCI code to support hybrid bus devices like WCN6750.

Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-01720.1-QCAHSPSWPL_V1_V2_SILICONZ_LITE-1
Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.5.0.1-01100-QCAHKSWPL_SILICONZ-1
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-00192-QCAHKSWPL_SILICONZ-1

Signed-off-by: Manikanta Pubbisetty <quic_mpubbise@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20220328055714.6449-3-quic_mpubbise@quicinc.com
drivers/net/wireless/ath/ath11k/Makefile
drivers/net/wireless/ath/ath11k/mhi.c
drivers/net/wireless/ath/ath11k/pci.c
drivers/net/wireless/ath/ath11k/pci.h
drivers/net/wireless/ath/ath11k/pcic.c [new file with mode: 0644]
drivers/net/wireless/ath/ath11k/pcic.h [new file with mode: 0644]