Add pld_get_mhi_state API to get current MHI state and
pld_is_pci_ep_awake to indicate that PCI EP is out of
low power state.
Also enable pld_prevent_l1 and pld_allow_l1 API for WCN6750
to manage low power state of PCI EP from Host.
Change-Id: Ic574bf7d7886b8e59b98e65806b387eef3a54e94
Populate WLAN device memory related info along with other SOC info
in pld_get_soc_info() API.
Change-Id: I4b269e8d96d838b3ea7f998642cc8542cebb00d5
CRs-fixed: 2899892
When the SRNG IRQs are disabled during suspend, it is
required to disable the interrupts and wait for interrupts
that are pending to complete. Adding a pld/pfrm API to disable
irq synchronously.
CRs-Fixed: 2908685
Change-Id: Ia1f17d54cbe08e8dc101c0ecc2ddee9275712659
Currently pld_ipci_smmu_unmap suppot has been added for IPCI,
PCIE_FW_SIM and SNOC_FW_SIM type cases as an error, moving this
unmap support only for type IPCI.
Change-Id: Ib9a60656920d1cc46e28dc269983b7da8dba7d42
CRs-Fixed: 2896804
Some of the members in pld_soc_info structure is not assigned by
platform API's. To avoid uninitialized value access by calling
function initialize pld_soc_info to default value.
Change-Id: I4b6816bf72ebb518b1b8af529763c2f8a8edb38d
CRs-Fixed: 2858219
Return value of pld_ipci_smmu_get_domain is not collected and
return to caller. Properly collect return value of
pld_ipci_smmu_get_domain.
Change-Id: Ia09f5eba950cb2631f4696fc927c32f49821b9ff
Add proper kernel-doc comments for the PLD APIs to force assert FW.
Rename pld_collect_rddm() to pld_force_collect_target_dump() for better
understanding.
Change-Id: I8e0639a120c893dde8ee1cfd5d2aea662eaebf3f
CRs-fixed: 2800567
If CNSS function pld_force_collect_target_dump() returns 0, this means
that FW is already asserted and should not call cds_force_assert_target().
Add an if check for pld_force_collect_target_dump() to only call
cds_force_assert_target() when it is not 0.
Change-Id: Ib784c1a406b93327942164a975994065149aed90
CRs-Fixed: 2799461
In internal builds, to catch all fw timeout issues, host-initiated
self-recovery is not enabled. To avoid a race between cld driver
triggering assert and RDDM dump collection, use the CNSS-provided
sync API, which guarantees target assert and dump collection before
returning.
Change-Id: Ib702bfa17616a100913f501f850d5c0b74ad39bb
CRs-Fixed: 2790271
Serialize psoc interface inactivity idle shutdown and restart via PLD
such that platform driver can serialize psoc idle shutdown and restart
to driver unload and SSR events to avoid any race conditions.
Change-Id: I177a60eaf83b1c81f08cab2dc8a6bc1497484809
CRs-Fixed: 2776866
As part of WOW feature in WCN6750, send HOST wake up
to FW over QMI instead of WMI. To send HOST wake, add
PLD layer and call platform driver API to send QMI
EXIT_POWER_SAVE to FW.
When FW receive EXIT_POWER_SAVE QMI, it will implicitly
consider that it also received HOST_WAKEUP_FROM_SLEEP
and send ACK for it through CE2.
Change-Id: Ia0a3f4c15662f9ee58649f5c6de965f65aeafe32
CRs-Fixed: 2779370
Since some platform driver does not support for PCIE gen switch,
Using macro PCIE_GEN_SWITCH to control whether function
cnss_set_pcie_gen_speed is invoke or not.
Change-Id: I478cd6426b005014e85c0b3c1c31963045d7322b
CRs-Fixed: 2767110
Since PCIE Genoa has separate wlan fw patch for
mission mode(amss.bin) and ftm mode(genoaftm.bin),
but cnss2 platform driver always try to load amss.bin,
which is not feasible. So add this new interface for
cnss2 to get correct driver mode and update the fw
patch name before it start downloading wlan fw
Change-Id: I44565c5f50aa03bbc407ee135ef5b02a040b0df6
Add pld_pcie_smmu_unmap API to support SMMU unmap of
addresses mapped in smmu_iova_ipa bank.
Change-Id: Idcb76a4f9d6573fb3f2c1fe22f6fbbe1728fa079
CRs-Fixed: 2768112
Add PLD layer support using which the platform driver sends
thermal state change notification to WLAN host. The callback
contains state variable to store the current thermal state.
Add WHUNT support to validate host implementation.
Change-Id: I5039eae967f940a7809a4b6e6d523362819fb28a
ICNSS2 platform driver is used for moselle and adrastea which uses
IPCI and SNOC PLD layer, respectively. Add support to enable both
for ICNSS2 based to target flag.
Change-Id: I06fbacade99b09c9ea7347aa28e10968eaeedaa8
Use sync wake when trying to awake device for register
accessing.
This can avoid device re-enter low power mode after
device_wake asserted.
Change-Id: I9ce421be0ecdf05a26388732cc8e15154c57a47a
CRs-Fixed: 2703608
Add PLD functions for Runtime suspend and resume callbacks,
and enable Runtime PM support for Moselle.
Change-Id: Ie990334c0c60892ec0f0ad6fac3253b3d326a919
CRs-Fixed: 2720832
Add PLD layer ipci bus apis for soc wake request,
wake release, athdiag read and athdiag write.
Change-Id: I966b4d47b6967615c11420d0b991ac175bf7c276
CRs-fixed: 2702459
Wlan driver is built to support different chipset, while on QC platform
function driver and device probe happened in CNSS platform driver,
so when loading wlan driver, need parse supported id list to platform
driver to check if this wlan driver can be loaded in current platform.
Change-Id: I91e87ffa32d77e2bab15fca09514cdefb1075c71
CRs-Fixed: 2644233
Initialize pld_uevent_data variable to zero, as the driver
expects zero data if there is no fw down data sent from
platform driver.
Change-Id: I24c3fa459207d254f7b579a387985eca06466447
CRs-fixed: 2658683
Add code to handle hang event data and length received
from platform driver through uevent.
Change-Id: Ie4acf55cd7d2e602ad10eedbdeed045acfd85f56
CRs-fixed: 2650831
For QCN7605 chip, FW team need athdiag tool to operate FW
information. Host driver need to pass the command and result
between athdiag tool and FW.
Change-Id: Ib3f4498ba560b2b76ec6939760535069777b972c
CRs-Fixed: 2595510
Add pld API to get audio timestamp needed in FTM wlan
timesync feature to synchronise the audio clocks of
master and slave devices
Change-Id: I6f08e33904e26728492286f516ce5a8074afd1ea
CRs-Fixed: 2616917
Previously vdev trans will be rejected if psoc in trans. but
it causes issue when __hdd_psoc_idle_shutdown is in psoc trans,
if ifconfig comes here, the ifconfig will fail.
Add checking if psoc trans in driver recovering and unloading,
if yes, it will be safe to reject vdev trans, otherwise, we should
let vdev trans waiting for psoc trans.
At the same time, we also need to make sure driver state has been
set before psoc trans when unloading.
Change-Id: Ic47eebef76b8eadc90780b74f75d4ebef73b822d
CRs-Fixed: 2601435
Function ol_txrx_hl_tdls_flag_reset will call function
ol_txrx_get_vdev_from_vdev_id, it will return NULL vdev
because ol_txrx_hl_tdls_flag_reset is called before
TAILQ_INSERT_TAIL(vdev).
So, move it after TAILQ_INSERT_TAIL(vdev).
Redefinition of 'pld_pcie_register_driver' when
CONFIG_PLD_PCIE_CNSS not defined. For Hastings WHUNT,
HIF_PCI is defined but CONFIG_PLD_PCIE_CNSS is not defined.
So, replace CONFIG_PLD_PCIE_CNSS by HIF_PCI and
CONFIG_PLD_PCIE_FW_SIM.
Change-Id: I05e58516efe6a9a445168a27df9e0cfc9de2e50c
CRs-Fixed: 2589802
Don't set unload flags earlier before unregister_driver when driver
unloading to avoid runtime resume failure. And set this flags earlier
before wait_for_ops in the pld_pcie_remove to give chance SSR will be
skipped if unloading is in progress.
Change-Id: I084db32b436148932a2a90e3e1dcb1122f4303b5
CRs-Fixed: 2589413
Currently pld_lock/unlock_reg_window APIs don't support
WHUNT simulation bus types and treated as error.
Add support for WHUNT simulation buses in lock/unlock
register window APIs.
Change-Id: I1e82d822becaadc9592b693e6ab20331ecb9cbc2
The register window needs to be configed properly before accessing
any larger than 4K range PCIe registers. Expose the lock in PLD to
avoid race condition when both platform and host drivers
try to config it.
Change-Id: Icd3df3d4d2cc2ecc3df608e7b767a3e654b94500
CRs-Fixed: 2549887
WHUNT is host unit testing framework which simulates
firmware. Add a PLD wrapper layer for this virtual device.
Change-Id: I1d09b8a18a25b414b0c1d56723cc5687f2bfe297
Modem block/unblock shutdown callbacks are added to synchronize
modem shutdown when the driver is in deinit sequence.
With new changes everything is synchronized via the platform driver,
So remove the the block/unblock shutdown callback's.
Change-Id: If66eed5b51bbce64f024edf49e37a21b222a6a4c
CRs-Fixed: 2489733