Open Loop CPR feature is extended to support multiple VRegs. Add IDL
data structures, device tree setup for WLAN device PMU pin to platform
VReg mapping and handling for new OL CPR params from FW.
Change-Id: Ibdcc5b30521c01e12124b32bd6291def98bd9516
To handle corner case where mhi power on success and the boot
debug timer handler execution(i.e dumping register) runs parellel.
Even-though the timer is deleted as soon as mhi is powered on,
as this handler is still running it is armed again. Use the
del_timer_sync api which makes sure the timer is not queued and
the handler is not running upon its exit.
Change-Id: Ie428f3e8af8870018dfed99a5472afca14116bb3
From 5.10 kernel onwards, remoteproc team has renamed
modem subsystem to mpss subsystem. So, icnss driver
should register for mpss subsystem rather than modem
subsystem.
Change-Id: I68276c7b03a4819ba0e219f1019a73eafa3ac456
Signed-off-by: Sandeep Singh <quic_sandsing@quicinc.com>
Add change to get hang event params over target cap response.
With this change hard-coding of hang data address and offset
is removed if valid hang data params are received over QMI.
Change-Id: Ife163cf66d5880cd9a658a841e5d4a73816fd982
Debugfs item control_params can be used to disable|enable
drv suspend, since FW can configure suspend mode only before FW ready,
so host needs make sure this flag is set at proper phase.
Change-Id: I632e3802aa1ab152fe153530a49a7405599cf96d
Add code to use cnss_utils to send device type across wlan & bt.
cnss platform driver reads the wlan sw control gpio and updates
the cnss_utils with the device type, when Bt comes up it get the
device type from cnss_utils.
Change-Id: I5b6f3e7d3dc44e4c5a4a341b3e286f87b5c24bbb
AOP Mbox interface message is updated to include the PDC name as WLAN
devices like KIWI needs 2 PDCs.
Also following updates are done:
1. Always open Mbox channel for OL CPR update.
2. Add device tree config for PDC - VReg mapping and
WLAN device PDC Init table.
3. Reconfig PDC based on WLAN device connected to the platform.
4. Add debug interface for PDC update.
Change-Id: Ia3150166a0ef5d44cb74a8c7e3b78870284cd18f
Use CONFIG_CNSS_OUT_OF_TREE to control if ICNSS family drivers are
built from in-kernel-tree source or out-of-kernel-tree source since
the exposed header files will be in different paths. This is also
for backward compatibility.
Resolve ICNSS compilation issue with msm-5.15 kernel.
Change-Id: I0a94f70c1be659a00f9401e57ee1dd31b6aa82ae
Add code to notify mhi about link down.In scenario of link down
recovery failure with SSR enabled, cnss-daemon posts a QMI req
during subsystem shutdown execution, the mhi layer tries to access
doorbell register to process the qmi msg but it leads to NOC error
as pci link is down. So added code to notify mhi about link down
to avoid NOC error.
Change-Id: I3ccc2cbda37e271f14f3821bb055db3107dac228
Rproc_put should gets called only after rproc
subsys shutdown as it decreases refcount. Rproc_put
should not be called from icnss_remove as refcount should
not be decreased without incrementing it using rproc
get_by_phandle api.
Change-Id: I26dc83d9750e45726e9e59d33a75d4ff402caa62
Signed-off-by: Sandeep Singh <quic_sandsing@quicinc.com>
Soc wake feature is only required for wcn6750 device.
So, this change moves soc wake wq creation only for
wcn6750 device.
Change-Id: Ib564d8bfd10c98aad3595bb10e5a2660f9049f85
Signed-off-by: Sandeep Singh <quic_sandsing@quicinc.com>
Enable dms get mac address for wpss supported target.
This change enables get dms mac address for adrastea
targets where rproc wpss loading is supported.
Change-Id: I76e4ae46833afb1d1150c3757cb2fc2f87ede2ec
Signed-off-by: Sandeep Singh <quic_sandsing@quicinc.com>
To enable support for qca6390 on hana-au:
1) Return 0, instead of an error code, when 'qcom,icc-path-count'
isn't present in the device tree, given some chipsets like
qca6390 don't need this parameter to get probed successfully;
2) Add one more vreg config, 'vdd-wlan-rfa3', into the vreg list
as it's required for qca6390 to get probed;
3) Add one more dts parameter, 'qcom,multi-wlan-exchg' into the
wlan device tree node on auto platforms, to reflect the fact
that multiple wlan chipsets can be plugged, while only one of
them exists at a time.
Also, reorder the parameters passed for debug printing in function
cnss_plat_ipc_init_fn(), given the original ordering is not
matching with the debug message literally.
Change-Id: I94d33fcfa2343646c55d8021894f35bc3cf8a56b
Dev SOL GPIO will be pulled down (interrupt will be triggered then) by
design when WLAN_EN GPIO is pulled down. Hence enable/disable dev SOL
interrupt during power on/off to avoid handling such case.
Change-Id: Ia0ddcbd438d533832c944632443000e2a087a300
WLAN driver register requires calibration to complete if enabled.
Calibration timeout can happen due to FW or file system mount delay.
Update driver to assert only for calibration timeout due to FW.
In some cases file system mount may take longer if file system repair
is attempted. Thus update cnss platform driver to wait for this
operation to complete and only log the time elapsed.
Change-Id: Iacd4d4565fb05ae1557c94c574c0153b5995b226
WLAN is not needed in charger mode. Thus add a sysfs entry to notify
charger mode to cnss platform driver to ignore wlan initialization
request.
Change-Id: I4719b16e7fa6914c253018284b5a5d80acf14bbb
ICNSS_BDF_DUMMY type board data file is no longer used. Hence remove
it. A BDF file with regular name and dummy content should be sent as
dummy BDF instead of just sending a dummy string.
Change-Id: I9bbdf8a59bb178afe8c27e709b3a360c5de4fa68
Enable time sync feature for kiwi device which uses MHI registers
to get device time and uses shadow register #0 and #1 to get time
difference.
Change-Id: I72749c7b0328d278d9157adf254911280604ad60
The side-band SOL (Sign-Of-Life) GPIOs are introduced to help make
RDDM more reliable so that device dump can be copied correctly. When
device SOL GPIO is triggered from device, it means there is watchdog
reset happened in device and driver should expect RDDM to happen.
When host SOL GPIO is triggered from host, it will result watchdog
reset as well as PCIe controller reset in device which should try to
enter RDDM always. This commit also adds debug hooks for the GPIOs.
Change-Id: I61a0f252d04ab0a62c5bf838850fe9a1bec2273b
This change removes vbatt feature code as adc tm
api's functionalities has been changed and no
longer supports vbatt feature.
Change-Id: I431c1dfe1a5529809fd7d68d1cb15632de3b801b
Signed-off-by: Sandeep Singh <quic_sandsing@quicinc.com>
These channels are for MHI satellite driver to config and open
so that WLAN device can directly communicate with ADSP through
PCIe.
Change-Id: If91b847f40d6a71e09ba62cc1cdb370b76b4e05d
Consider a scenario where WPSS watchdog happens RPROC driver
gets interrupt and notified to GLINK layer(underlying layer
within QMI) now if ICNSS driver tries to send any QMI message
it will fail and ASSERTS. If ICNSS would have received legacy
SSR notifier it could have ignore ASSERT. But there is a race
where ICNSS sends QMI message between GLINK layer received
WPSS down and ICNSS receives WPSS down and ASSERT of QMI
failure cannot be avoided. To resolve this register early
SSR notifier from ICNSS which notifies about WPSS down to
ICNSS before GLINK. Based on that ICNSS can either avoid
sending QMI message or can ignore ASSERT.
Change-Id: Iada85a1bfff6ae420123afc5f86a738b662171fc
This change will add adrastea prefix in fw file path
of adreatea targets. This changes enables fw files
to be picked from /vendor/firmware_mnt/image/adrastea
path.
Change-Id: Ic0ce57b7a8db08e4bf55c8a493a1f1500d93c427
CRs-Fixed: 3140070
There is possiblity that after sending SOC_WAKE_REQ/RESP
SMP2P message WPSS might go down for some reason in that
case ACK for SOC_WAKE REQ/RESP from WPSS can never come
and request will get timedout and ICNSS asserts.To avoid
this, check if FW_DOWN is reason for SOC_WAKE REQ timeout
and avoid assert.
Change-Id: Id371d625b880847bf02392d0f722b58aa30fc2b2
There are some cases that device has entered RDDM mode, but RDDM
notification fails to reach driver. Hence when RDDM timeout happens,
do a last check to see if device is in RDDM mode. If yes, just wait
and collect the dump.
Change-Id: Ic7a6cc2d791277d166a9c4da1743be4e3f14e3af
MSM_DUMP_DATA_CNSS_WLAN not defined during compilation,
if CONFIG_QCOM_MEMORY_DUMP_V2 disabled.
To resolve it, also include memory_dump.h header as well,
when CONFIG_QCOM_MINIDUMP enabled.
Change-Id: I55fe3ccd606168fb48d6c3a129960f01f1f72a07