If WLAN is attached to PCIe switch, it's possible that PCIe switch is
not probed when cnss_probe call PCIe enumeration. This case can lead to
cnss_probe failure, it prenventing the cld driver ko loading. From user
layer can see WLAN interface is not up.
To fix this issue, cnss_probe call PCIe enumeration until PCIe switch is
probed.
Change-Id: I302f23cc2af6c738e4c18c7eb6a09685a49a643c
CRs-Fixed: 3863866
Follow 'commit Ic63fd054788 ("pci: msm: Fix for PCIe
suspend/resume for QPS615 PCIe switch")'
As suspend has been controlled by pcie driver for PCIe
switch case, skip suspend from client side. Otherwise
it may cause stability issue.
Change-Id: If7788e9f8ae7945ec7f5984ee15e2e10eb289d73
CRs-Fixed: 3848272
When WLAN is attached to PCIe switch, set and retrain DSP <-> EP link
in BW scale callback function. It avoids touching RC <-> USP link which
may impact other devices.
With this change, it could support Hamilton PCIe Gen3 on PCIe switch
platform.
Change-Id: Id444ac847613971545bf66db9bb1a6e427028802
CRs-Fixed: 3848272
CNSS driver controls the power on/off wlan device. because on CPE
platform the link/power status of RC<->USP may be still on when wlan
device is turning on/off, this may cause uncorrectable AER error on
DSP side, to avoid this issue DSP's downstream link should be
disabled before power on/off wlan device, and re-enabled after wlan
power on, and also wait for link training of DSP<->WLAN to complete.
To be compitable with non PCIE switch platform, add a new config
CONFIG_PCIE_SWITCH_SUPPORT to enable/disable this function
Change-Id: Iaca103850d5ffc717a2a8bc40d16358e03c0c9db
CRs-Fixed: 3848272
Remove unwanted delay from PCIe link down recovery sequence
1. Wait for wake event from PCIe driver instead of hardcoded wait.
2. After link recovers, wait for device to move to RDDM mode
instead of starting rddm timer.
3. If device fails to move to RDDM, assert HOST SOL and initiate
side band recovery.
Change-Id: I5a4096ac781dd8f5011b07b0ffb669815a968570
CRs-Fixed: 3590419
Missing respectivie reserved memory region for wlan
device during cnss probe phase is not a critical
case, so change the log level to avoid confusion.
Change-Id: I629fd94ab8f20176a0c3854b0b1d8f6f53b1b407
CRs-Fixed: 3472865
Cnss2 driver receives cnss_pci_smmu_fault_handler cb from smmu
driver whenever wlan fw access illegal IOVA address. In
cnss smmmu fault cb handler, cnss2 driver rings trace stop
door bell register to stop tracing in wlan fw. This will
help to get proper traces to debug where illegal access
is happening in wlan fw.
Change-Id: I953ced55d4d847ccaabad15f5f70150aec8aabd6
CRs-Fixed: 3459443
At the auto platform, DRV feature is not applicable.
So do not issue any DRV related operation from cnss2
side, which may cause the RC PHY not ready in the LPM
case.
Change-Id: Iefae9a885c1adc289da518d65a2974e127bdf359
CRs-Fixed: 3419811
Some platforms can't meet the number of MSI interrupt vectors that
wlan driver requires.
Add one MSI interrupt vector support.
If CONFIG_ONE_MSI_VECTOR is not defined, wlan driver fails to load
if reuired MSI vector allocation fails. It is current behavior.
If CONFIG_ONE_MSI_VECTOR is defined, firstly it will allocate multiple
MSI vectors based on MSI config. If MSI vector allocation fails, it
fallbacks to one MSI vector automatically.
Change-Id: I813f7ddf678ecf405e573f3bc72af3e758d1c96d
CRs-Fixed: 3312670
Add code to move the platform related apis mainly defined under
CONFIG_ARCH_QCOM and CONFIG_PCI_MSM flags to separate file,
named pci_qcom.c. This change facilitates easy code upgrade for
customer.
Change-Id: Ic81e633829ccfdeb3fc3f123013708e6d712c5c2