When the polling interval is updated, the delayed workqueue is cancelled
and requeued with the new polling interval. However, the bw_hwmon IRQ can
come at the same time and try to stop and restart the delayed work (in the
IRQ thread). This can cause a race where the work might be queued twice or
canceled twice and cause a crash.
Fix this race condition by suspending and resuming the HW monitor when we
are updating the polling interval. This entirely avoids the race because
suspending the HW monitor also avoid the possibility of the IRQ coming
during the polling interval update.
CRs-Fixed: 954082
Change-Id: Ic7baf2a3da4ed8f8a9023617059e22fd81c3ba45
Signed-off-by: Saravana Kannan <skannan@codeaurora.org>
In case IPA header has a processing context, header offset is undefined.
This change fixes header log print in case of processing context.
Change-Id: I55e895be945a690a707f6015c09578e31c1de693
CRs-Fixed: 993907
Acked-by: Ady Abraham <adya@qti.qualcomm.com>
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
In order to allow ipa_odu_bridge clients to include only the
dedicated header ipa_odu_bridge.h and also have the symbols
of shared IPA structures and definitions, include ipa.h
from ipa_odu_bridge.h. The clients of ipa_odu_bridge will use
only APIs from ipa_odu_bridge.h.
CRs-fixed: 999935
Change-Id: Ic6da089ebd7878f0d7ceebde7cd8e8549c30182e
Signed-off-by: Amir Levy <alevy@codeaurora.org>
As part of IPA driver refactoring, a separation has been made
between IPA core driver and the IPA clients.
odu_bridge driver has moved to the ipa_clients folder and a
dedicated header file has been created in order to provide
a direct interface between IPA odu_bridge client driver and
other drivers without a direct interaction with the IPA core
driver.
This change moves odu_bridge functions and structure from
ipa.h to the ipa_odu_bridge.h header.
CRs-fixed: 999935
Change-Id: I1b24c4e13daaae3e63c5cacefcbda12b8cfbeeb8
Signed-off-by: Amir Levy <alevy@codeaurora.org>
Add ipc logging ability to odu_bridge driver. Messages will be directed
to ipc logging buffer which can be found in crashdump.
CRs-fixed: 999935
Change-Id: Iadfcf4a88472c54fbfe066fa6304146140b76201
Signed-off-by: Amir Levy <alevy@codeaurora.org>
As part of IPA driver refactoring, a separation has been made
between IPA core driver and the IPA clients.
odu_bridge driver has moved to the ipa_clients folder and a
dedicated header file has been created in order to provide
a direct interface between IPA odu_bridge client driver and
other drivers without a direct interaction with the IPA core
driver.
CRs-Fixed: 999935
Change-Id: Ib5109681c62137d1310539daa816d5229bc08098
Signed-off-by: Amir Levy <alevy@codeaurora.org>
Add ipc logging capability to ipahal sublayer. Messages will be directed
to ipc logging buffers which can be read from debugfs or crash dump.
CRs-Fixed: 999887
Change-Id: I4ef85fc64f465aa0d4901493b80dd676596affcb
Signed-off-by: Ghanim Fodi <gfodi@codeaurora.org>
SMEM_SMEM_STATIC_LOG_IDX is currently unused as its usecase has
been deprecated for a long time. Reallocate the ID to
SMEM_XBL_LOADER_CORE_INFO.
CRs-Fixed: 998028
Change-Id: I5f80603633464e7eea322fde57110e377b72d84c
Signed-off-by: Dhoat Harpal <hdhoat@codeaurora.org>
IPA-driver only suspends the WDI pipe
when rdy_ring_rp value equals to the
value of rdy_comp_ring_wp
Change-Id: I520b7943b85cd61065703c7bf9a5d8efb6302a56
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
wlan will pass the VA to IPA-driver to let
IPA-driver access the values of rdy_ring_rp
and rdy_comp_ring_wp to decive when can
suspend the WDI pipe
Change-Id: I73447c5557d42817ac2214532273e0de638e13d9
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
Add rx_completion_ring and rx_completion_ring_wp
to indicate which pkt descriptor is processed,
also support 64 bits IOVA/PA in ipa-uc.
Change-Id: I4ac096336f5aeb01fbba8241cda987f56edc1232
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
add support for WDI2.0 feature which
wlan HW is 64 bits.
Change-Id: I910ed12f79f58dd1a0b0a58fb1cceb7d79ceaaa4
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
Some of the camera modules need to know the
regulator names to enable based on the use case,
Hence change the regulator API to populate regulator
names as well.
Change-Id: I8205df6ecbeed8eca7ff9a81534edadf51309fe1
Signed-off-by: Lakshmi Narayana Kalavala <lkalaval@codeaurora.org>
Add a new task info flag to represent a task
whose mm struct has been freed. This is used by the
android low memory killer to track tasks whose
mm struct has been freed.
Change-Id: Id72e67e31fb52e07f01fb6e234b102f63b400aa5
Signed-off-by: Abhimanyu Kapur <abhimany@codeaurora.org>
[lmark@codeaurora.org: resolve trivial merge conflicts]
Signed-off-by: Liam Mark <lmark@codeaurora.org>
The memory reclaim code needs to give time to the system to
return the memory from a killed process otherwise the memory
reclaim code could run continuously, in multiple threads,
which could starve both the watchdog thread and the thread
which is responsible for returning the memory from the
killed process.
Change-Id: Ieded4bfe038ca936247fa4b638070e979b02eaa1
CRs-fixed: 447740
Signed-off-by: Liam Mark <lmark@codeaurora.org>
The lowmemorykiller uses the TIF_MEMDIE flag to help ensure it doesn't
kill another task until the memory from the previously killed task has
been returned to the system.
However the lowmemorykiller does not currently look at tasks who do not
have a tasks->mm, but just because a process doesn't have a tasks->mm
does not mean that the task's memory has been fully returned to the
system yet.
In order to prevent the lowmemorykiller from unnecessarily killing
multiple applications in a row the lowmemorykiller has been changed to
ensure that previous killed tasks are no longer in the process list
before attempting to kill another task.
Change-Id: I7d8a8fd39ca5625e6448ed2efebfb621f6e93845
Signed-off-by: Liam Mark <lmark@codeaurora.org>
Wehn adbd is closing eps, it is trying to unregister gadget and UDC.
When VBUS is not present and cotroller is into low power mode.
ffs_func_disable() also invokes controller's PM idle as well. This
results into unclock register access when dwc3_gadget_stop() is
called by unregister_gadget_item(). Fix this issue by resuming
controller from dwc3_gadget_stop().
Change-Id: I469e8609bf23bee97b3f9c612401aaf92bc72a30
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
Limit the Silver and Gold cluster frequency to 300 MHz.
This is necessary to ensure stable operation until
thermal management is enabled.
Change-Id: I965a463ec4808d72ac8fc9d7aa98011ab45c984e
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
Currently, there is an assumption that the Fmax differs
from the minimum frequency. This is not necessarily true
if the Clock CPU device defines a single frequency. Fix
this by only adding a maximum frequency/voltage pair to
the OPP table if the maximum frequency differs from the
minimum supported frequency.
Change-Id: I6224ecb800bcbca821f42abec43bc57ee701ce80
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
Add CCPM/QVIT in WLAN mode and add support fo setting
WLAN mode from command line.
CRs-Fixed: 986484
Change-Id: I5921dc3978bf96221b50148bb2f86b0ffed3b5fb
Signed-off-by: Yuanyuan Liu <yuanliu@codeaurora.org>
Allocate msa memory in icnss_probe before SMMU attached
instead of in qmi indication callback. So that we can get
contiguous DMA address.
CRs-Fixed: 987584
Change-Id: Ifea6c2de94071719ffede0f641f8a47526bc9e03
Signed-off-by: Yuanyuan Liu <yuanliu@codeaurora.org>
Add support of skiping QMI messaging when ICNSS driver is initialized.
So that we can disable QMI communication between WLAN Host and FW when
QMI framework is not supported.
CRs-Fixed: 978953
Change-Id: I7a9a61c8aa11bd5c0f5f2effc487a2225e27011d
Signed-off-by: Yuanyuan Liu <yuanliu@codeaurora.org>
Add device tree information for RTC device in pmic file
for msmcobalt.
Change-Id: I26cc21856e9a26be71af6aa91d50e5af2f9fefc6
Signed-off-by: Mohit Aggarwal <maggarwa@codeaurora.org>
Seeing rmnet_ipa3 causing the device
crashed when ipa3 not initialized. The
fix is to add the check when rmnet_ipa
try to register the
ipa3_register_ipa_ready_cb.
Change-Id: I55618784befc61e37e68d3b8d8c7c5c30f45e4fc
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
In previous commit cd958296ac
("wil6210: enable WA for PCIe HW errata")
relaxed ordering (bit 5) was set, in addition
to the 'No snoop" setting.
Enabling relaxed ordering can cause a race condition
between the write transactions and interrupts when
using INT instead of MSI.
As relaxed ordering is not required to resolve the
PCIe HW issue, it should be disabled.
CRs-Fixed: 998870
Change-Id: I53113d6454de577d4e68f226975a078889d6b2c3
Signed-off-by: Maya Erez <merez@codeaurora.org>
PBSS (Personal Basic Service Set) is a new BSS type for DMG
networks. It is similar to infrastructure BSS, having an AP-like
entity called PCP (PBSS Control Point), but it has few differences.
PBSS support is mandatory for 11ad devices.
Add support for PBSS by introducing a new PBSS flag attribute.
The PBSS flag is used in the START_AP command to request starting
a PCP instead of an AP, and in the CONNECT command to request
connecting to a PCP instead of an AP.
Change-Id: I9f26a8ff8433268240eb9443befadc0d279a0293
[liord@codeaurora.org: added missing attributes to nl80211.h
that were added in upstream kernel before the PBSS attribute,
in order to keep the ABI compatible]
Signed-off-by: Lior David <liord@codeaurora.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Git-commit: 00807f28573a101dc2833f0075e806b9874f306c
Git-repo: https://github.com/kvalo/ath.git
CRs-Fixed: 982931
Signed-off-by: Maya Erez <merez@codeaurora.org>
Switch to auto-generated version of wmi.h which is maintained
by FW team. This will allow better sync between teams in the
future and avoid bugs because of unexpected API changes.
The wmi.h will have many differences but most are cosmetic.
It also includes these real differences:
1. is_go parameter added to BCON_CTRL and START_PCP commands.
2. max_rx_pl_per_desc added to CFG_RX_CHAIN command.
3. various small API updates that are not currently used by
driver.
Change-Id: I20921a97b02dce0507f58c4951ce539a2aae5597
Signed-off-by: Lior David <qca_liord@qca.qualcomm.com>
Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Git-commit: b874ddecae0a087aee024ef808c63060434a2d50
Git-repo: https://github.com/kvalo/ath.git
CRs-Fixed: 987415
Signed-off-by: Maya Erez <merez@codeaurora.org>
Add support for discovery mode during scan. When discovery mode
is active, station transmits special beacons while scanning.
This can optimize the scan mainly when there is only one AP/PCP
around.
Discovery mode is implicitly used by firmware during P2P search.
Since there is currently no use case where user space has a
reason to directly control discovery mode, we expose it only
through a debugfs flag.
Also fix name confusion in the wmi_scan_type enumeration.
The type previously called WMI_LONG_SCAN is actually
WMI_ACTIVE_SCAN.
Change-Id: I05b99ec66b0da41697f41c547aab0b0497dd9be6
Signed-off-by: Lior David <qca_liord@qca.qualcomm.com>
Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Git-commit: 74997a53d257e327699e359b78b3ecfd33f80cab
Git-repo: https://github.com/kvalo/ath.git
CRs-Fixed: 982931
Signed-off-by: Maya Erez <merez@codeaurora.org>
MAC address of wil6210 was not set in wiphy
Change-Id: I5018f40be6a71b4b8c7c3ee94c8e70cfa1fb373a
Signed-off-by: Hamad Kadmany <qca_hkadmany@qca.qualcomm.com>
Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Git-commit: b42f11963f7bd8c54d0a28d679c13d9e83b85357
Git-repo: https://github.com/kvalo/ath.git
CRs-Fixed: 987415
Signed-off-by: Maya Erez <merez@codeaurora.org>
wmi_evt_connect doesn't check if the connect event is received for
an already connected station.
This can lead to memory leak as a new vring is allocated without
freeing the previously allocated vring and to unexpected behavior
of nl80211 layer due to unexpected notification of a new station.
Add a check in wmi_evt_connect in AP mode to verify that the requested
CID is not associated to an already connected station.
Change-Id: I0e438d437154b1b47c572218072a736da5013c80
Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Git-commit: 3d287fb398c03189a1394778162f6404e4d44ad2
Git-repo: https://github.com/kvalo/ath.git
CRs-Fixed: 982882
Signed-off-by: Maya Erez <merez@codeaurora.org>
WMI synchronous handling has changed and WMI calls that provide
a buffer for the reply are completed in the WMI interrupt context.
This allows sending the RX and TX BACK commands from the WMI event
handler without the need for the worker thread.
This is a better approach as it can decrease the handshake time
in the connect flow and prevent race conditions in case of fast
disconnects. An example for such a race is handling of wil_back_rx_handle
during a disconnect event, as wil_back_rx_handle is not protected by
the wil mutex and a disconnect can be handled after sta->status is
verified as connected.
Change-Id: I7d6e3cf5e8abab45da5febc0129fb67830d9e6cb
Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Git-commit: 361486b27c7e57dab657dbffd1e17818c7911c72
Git-repo: https://github.com/kvalo/ath.git
CRs-Fixed: 982882
Signed-off-by: Maya Erez <merez@codeaurora.org>
Add the ability to notify the platform driver on different
events, such as FW crash, pre reset and FW ready.
Change-Id: I796b06fae4376cda792d7f26a430ad4580899846
CRs-Fixed: 986135
Signed-off-by: Maya Erez <merez@codeaurora.org>
Tx vring needs to be enlarged to get better
performance for traffic over 2Gbps.
Change-Id: Ia78ddf6f5243a8d28c3bfdfc29e0eb512658d0a7
Signed-off-by: Hamad Kadmany <qca_hkadmany@qca.qualcomm.com>
Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Git-commit: ee5dfe0d240e21afe63bdd77bf1d4a386203aa6e
Git-repo: https://github.com/kvalo/ath.git
CRs-Fixed: 982882
Signed-off-by: Maya Erez <merez@codeaurora.org>
In case there are multiple WMI commands with the same reply_id,
the following scenario can occur:
- Driver sends the first command to the device
- The reply didn’t get on time and there is timeout
- Reply_id, reply_buf and reply_size are set to 0
- Driver sends second wmi command with the same reply_id as the first
- Driver sets wil->reply_id
- Reply for the first wmi command arrives and handled by wmi_recv_cmd
- As its ID fits the reply_id but the reply_buf is not set yet it is
handled as a reply with event handler, and WARN_ON is printed
This patch guarantee atomic setting of all the reply variables and
prevents the above scenario.
Change-Id: I7eac78d7beb90436d24468547aeb789f7c8ec878
Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Git-commit: fe5c271e2878fb080f1b32fec5b4e3f7a6070152
Git-repo: https://github.com/kvalo/ath.git
CRs-Fixed: 982882
Signed-off-by: Maya Erez <merez@codeaurora.org>
cfg80211_ops.disconnect() should wait for disconnect flow to
complete. If it does not, internal state becomes out of sync with
one in cfg80211. If one does stress test connect/disconnect
sequence, cfg80211 will issue next connect before disconnect
completed internally.
Change-Id: I66a6a23239710c85b9cdb5824c205692c4b53866
Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Git-commit: 78771d76f826202012201d700028a2d866d03fb3
Git-repo: https://github.com/kvalo/ath.git
CRs-Fixed: 982882
Signed-off-by: Maya Erez <merez@codeaurora.org>
wil_tx_vring locks the vring_tx_data lock before accessing the TX
vring to check if it is enabled and valid for use.
In case of quick disconnect / connect events for the same station,
spin_lock(&txdata->lock) can be called during the lock initialization
in the vring init function.
To prevent such a race, the TX vrings spin lock should be initialized
once during wil6210 driver initialization.
Change-Id: I11fa67f7040c4a728f0cd7633f4fbb829ac165d0
Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
git-commit: 875e94392ad2be9776c8325d3573160eb1455a2b
Git-repo: https://github.com/kvalo/ath.git
CRs-Fixed: 982882
Signed-off-by: Maya Erez <merez@codeaurora.org>
Thermal trips has to be configurable for userspace
thermal-engine to set thermal thresholds and get
thermal trip notifications. Enable this by default
for all ARCH_QCOM based targets.
Change-Id: I22b8c5834a278d6ebb943e73c70966f37a7b3dcd
Signed-off-by: Ram Chandrasekar <rkumbako@codeaurora.org>
Signed-off-by: Siddartha Mohanadoss <smohanad@codeaurora.org>
TSENS (Temperature sensor) driver provides an interface
to read on die temperature sensors and set temperature
thresholds for notifications.
Change-Id: I806ed575427b90ee82c08ac1a7f8c8692c03b6d1
Signed-off-by: Siddartha Mohanadoss <smohanad@codeaurora.org>
During boot there is a possibility for two execution context to create
stats percpu variable concurrently. One called from cpufreq_stats_init
context and other as a part of policy notifier call back. This will
result in corrupted stats variable.
Disable cpu hotplug to avoid corruption.
Change-Id: Iefe2d6b370f6ec303286afc139fa9913fa9a4099
Suggested-by: Saravana Kannan <skannan@codeaurora.org>
Signed-off-by: Arun KS <arunks@codeaurora.org>
This change adds the config variable to enable
compilation of the IPC Router MHI Transport.
CRs-Fixed: 994871
Change-Id: I23d391546a191eb104fb4c50e19aef8a8b566adb
Signed-off-by: Chris Lew <clew@codeaurora.org>
Adds new configuration in device tree for external
modems.
CRs-Fixed: 994871
Change-Id: I798d27248acaf7aa2ab15e8739c638a96a49b2b7
Signed-off-by: Chris Lew <clew@codeaurora.org>
MHI supports virtual memory to dma mapping implicitly. Update IPC Router
to pass virtual address directly to MHI. MHI driver also returns
standard Linux error codes in case of failure. Update IPC Router to
handle this change.
CRs-Fixed: 994871
Change-Id: I907adfb5f5d24c06dd038b07a17b31d42b91dfad
Signed-off-by: Chris Lew <clew@codeaurora.org>
Add changes to enable different output formats on supported
target. This change enables camif raw path to output
data in multiple other formats along with legacy packed.
Change-Id: Ie763455df2cffcb4fc9447a1bbcc8d9c7d577c6c
Signed-off-by: Sagar Gore <sgore@codeaurora.org>
Decode and print the L2 error state registers on Kryo2xx
Gold CPUs.
CRs-Fixed: 969563
Change-Id: If9ec89ab2f2ea341f38d8952c1688d277a5082ed
Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
Add debugfs node based infrastructure to test service locator
Change-Id: I37cb319638ce5b6285b2f2ff4386fd92cbda83fd
Signed-off-by: Pushkar Joshi <pushkarj@codeaurora.org>