Add device pointer to all external APIs so that platform driver is
able to support multiple devices/instances at the same time.
Change-Id: I09dfb146da30d3fd6514dc79dc31cd239a03afa8
Signed-off-by: Yue Ma <yuem@codeaurora.org>
cnss_set_driver_status() is no longer needed by WLAN host driver.
Hence remove it from platform driver.
Change-Id: I31a3174bdded924a9279a40ece05a835277e4626
Signed-off-by: Yue Ma <yuem@codeaurora.org>
Writing data to DDR is not ensured to be completed even with addition
of data memory barrier. It is possible that CPU receive that write
instruction is completed but in reality data can be stuck in intermediate
buffer.
Readback of write index is added to ensure that remote side is sent
interrupt only after data is written on DDR.
CRs-Fixed: 2136645
Change-Id: I32c4967daf71991621b57421167e0ac8d38ce065
Signed-off-by: Dhoat Harpal <hdhoat@codeaurora.org>
Add a length check in wil_cfg80211_mgmt_tx to detect unsigned integer
overflow.
Change-Id: I37f988481433a2e1238831980715aef32aa89a85
Signed-off-by: Lior David <liord@codeaurora.org>
Add a length check in wmi_set_ie to detect unsigned integer
overflow.
Change-Id: Id1ec6a6218f3fe6e00cc3f9a8e674f8f843273f2
Signed-off-by: Lior David <liord@codeaurora.org>
When loading FW from file add block size checks to ensure a
corrupted FW file will not cause the driver to write outside
the device memory.
Change-Id: I6d7342cd33b2c47b701bcca4ee3cd84febbc56a2
Signed-off-by: Lior David <liord@codeaurora.org>
The current length check:
sizeof(cmd) + len > r->entry_size
will allow very large values of len (> U16_MAX - sizeof(cmd))
and can cause a buffer overflow. Fix the check to cover this case.
In addition, ensure the mailbox entry_size is not too small,
since this can also bypass the above check.
Change-Id: Iecb4f53ef05da0e015bc954b57b0e40debb7c8b7
Signed-off-by: Lior David <liord@codeaurora.org>
SDM636 inherits all SDM660 GPU properties, but it will support
GPU max frequency 430Mhz and DDR max frequency 1353Mhz.
Change-Id: I7f88e5d187df2880757ceb6676e75f3cfe5d9218
Signed-off-by: Hareesh Gundu <hareeshg@codeaurora.org>
do_cleanup_data pointer is created for every SSR notification and
stored in cb_data. It is possible that the stored pointer can be
overwritten if two peripherals SSR happens at the same time.
Use do_cleanup_data pointer directly in pkt_priv, instead of
dereferencing from cb_data.
CRs-Fixed: 2121529
Change-Id: Ife68cdc460c0628623dea6827632b8acd8d1d955
Signed-off-by: Dhoat Harpal <hdhoat@codeaurora.org>
When driver loading and registering to cnss,
the interruptible wait in cnss_driver_event_post
could be woken up by signal. In this driver
register failure case, the __hdd_module_init
will release all the driver resource.
But the cnss_driver_event_work is still probing
the driver normally in the same time. The driver
state mismatch will cause crash.
Fixed by using non interruptible wait for driver
register
Change-Id: I6e99e83f1f3312e0b7d74e432ce90ff23631bc19
Signed-off-by: Liangwei Dong <liangwei@codeaurora.org>
CRs-Fixed: 2134631
There is a scenario where the status change work can hold
a mutex lock for ~1.5 seconds which can race with the FG resume
callback. Avoid this condition by adding a state variable
to track the suspend/resume state and skip executing the
status change work while suspended.
CRs-Fixed: 2101514
Change-Id: Ib5300a5dfce30c4c6bcc8d8428b664c184a83fb4
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
Add support to route QDSS data received from MDM via MHI
to USB. The driver will help route diag traffic over the
QDSS sub-system to USB on APPS side. It acts as a bridge
between PCIE MHI and USB interface.
Change-Id: I98bea976638ce3f80785d8f40e2a936fc62397eb
Signed-off-by: Satyajit Desai <sadesai@codeaurora.org>
IPAv2 hardware works with 32 bit addressing,
so allocate a kernel memory using GFP_DMA flag
which is processed by IPA hardware.
Change-Id: I6f35e7f2179dc48f718221f6a3d228aca67c4154
Acked-by: Ashok Vuyyuru <avuyyuru@qti.qualcomm.com>
Signed-off-by: Mohammed Javid <mjavid@codeaurora.org>
This change disables FB driver and enable DRM display driver
on msm8996 auto defconfig.
Change-Id: Ic214b70dd47379464220e4f801c2ab38753c9a10
Signed-off-by: Rahul Sharma <sharah@codeaurora.org>
The existing state check will create a corner case that when FW
crashed during driver probe, platform driver won't send early
uevent notification to host driver, which create a small window where
host can communicate with FW when FW is crashed. This case can be
covered by checking FW_READY state instead.
CRs-Fixed: 2122702
Change-Id: I0bde9cb5a526ccd9fe81cd38bd4c27cf2e95042b
Signed-off-by: Yuanyuan Liu <yuanliu@codeaurora.org>
Signed-off-by: Anurag Chouhan <achouhan@codeaurora.org>
Add base register property in respective pil nodes to iomap them
during probe of the subsystem pil driver.
Change-Id: I961ab80f1caf84ab63d649c3a1545b89fed56c0b
Signed-off-by: Avaneesh Kumar Dwivedi <akdwived@codeaurora.org>
Check NMI STATUS register and dump the log if the err fatal caused
on subsystem is due to TZ NMI.
Change-Id: I8ac4190aca60aeedcd41fd06e2f7dd053edd0f30
Signed-off-by: Avaneesh Kumar Dwivedi <akdwived@codeaurora.org>
Windows XP host takes upto 6 seconds to enumerate RNDIS composition when
RNDIS (tethering) is enabled while in MTP/PTP composition. This results in
Userpsace Tethering enable timeout (1 second) causing RNDIS enumeration
failure and falls back to default composition. Workaround the issue by not
sending disconnect event to userspace on composition switch (MTP/PTP to
RNDIS). Send the disconnect event from USB bus reset so that userspace
enable timer starts from bus reset.
Change-Id: I2d1fcaa0704e369204fbba4eceb8ba9b1c525b41
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
Fix voltage range selection logic used for voltage min/max
constraints check.
CRs-Fixed: 2136747
Change-Id: I80ab9ca583fda625ae2d9bd9e0c176a4b8c343db
Signed-off-by: Tirupathi Reddy <tirupath@codeaurora.org>
Vulkan memory types are added into UMD.
Print Vulkan memory type as an int value.
CRs-Fixed: 2119633
Change-Id: Idf5d58a6a02dbef6ef8cf6663e7819d221bf3e11
Signed-off-by: Young Hwan Kwak <ykwak@codeaurora.org>
The minimum bandwidth supported is 5 MHZ. Kernel API
wiphy_apply_custom_regulatory can enable channels 12/13
with BW 5/10 even for reg rule 2402-2472. Circumvent the issue
by doing a check in the driver.
CRs-Fixed: 2136273
Change-Id: I296e45d142c38a83c90deb743e992eb1a7743feb
Signed-off-by: Rajeev Kumar Sirasanagandla <rsirasan@codeaurora.org>
Excess logs are printed in msm_compr_pointer during ADSP SSR.
This causes failure of some interrupts to occur which
results in SSR failure. Logs can be reduced by applying ratelimit.
CRs-Fixed: 2128011
Change-Id: I9a6a5e0fed17154e201bce0d7fa2de91b6ec159d
Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
Dsi controller v2.1 and above supports scheduling of dma
commands. Schedule dsi cmds at the starting of blanking
region to avoid sending of commands in active region
resulting in dsi overflow errors.
Change-Id: I658b7d7008eb9071148820c0ea949ae9ba593ed9
Signed-off-by: Ashish Garg <ashigarg@codeaurora.org>
When icnss driver sees a PD down, and if the recovery is already in
progress, it forces an assert in debug builds. That is to detect any
Modem failures during PDR or to catch any instance of recursive PDRs.
When system goes thru a reboot or shutdown, and if the recovery is in
progress then avoid calling this assert.
CRs-Fixed: 2135071
Change-Id: I28f5c79a4cd8b83f60a62111535b11c2fba6000b
Signed-off-by: Sameer Thalappil <sameert@codeaurora.org>
For deaggregation, the real device receives a large linear skb and
passes it on to rmnet. rmnet creates new skbs from this large frame.
If the real device supports recycling, it does not need to allocate
the large skbs during packet reception and can instead reuse them.
CRs-Fixed: 2140499
Change-Id: I4f3c67bafe1918dc1a96690305d00cc8c625a9b7
Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
sdm660-mtp has only tavil as codec.If tasha codec is also
enabled then it results in enumeration of device twice
which results in kernel crash sometimes.
This can be avoided if we disable tasha codec from dts.
Similarly sdm660-qrd has only tasha as codec.
CRs-Fixed: 2124709
Change-Id: I66812186d2e769681f00f1ba9a87a3588b04eaf9
Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
By default sparse uses the characteristics of the build
machine to infer things like the wordsize.
This is fine when doing native builds but for ARM it's,
I suspect, very rarely the case and if the build are done
on a 64bit machine we get a bunch of warnings like:
'cast truncates bits from constant value (... becomes ...)'
Fix this by adding the -m32 flags for sparse.
Change-Id: I9045e5b77578d03e328a4a6af297e84356c02cf8
Reported-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Git-commit: 6042b8c7c08cad7a8bdc0456c619ae941962b40a
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>