If there are continuous data-CRC errors in higher speed modes (SDR104
mode), then driver fallbacks to lower speed mode. But if at all it
fails to fallback to lower speed mode, then that error should be
propagated to the caller so that caller will handle it appropriately.
Without this change, sometime while processing card removal event,
driver fails to detect card removal and treats card as present
eventhough its removed.
Change-Id: I89544d41c5b014eb9227ba33ef9ec1917b6793dc
Signed-off-by: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>
Currently same pipe index is used for both QDSS and DPL pipes for SDM660.
This causes QDSS not working in composition 90DB having both QDSS and DPL
interfaces. Hence fix it by changing QDSS pipe index to 3 so that both
QDSS and DPL works fine with 90DB composition on SDM660.
Change-Id: I7c799716cff7321985fcb88a8073737343a932f5
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
cam_snapshot and cam_focus GPIO pins are unused on Mojave,
thus remove them from DT. Those pins are used for ADV7481
on Mojave.
Change-Id: I8c0026a215fdc2cf1aa94eb763f82258229435c8
Suggested-by: Resmi Rajendran <resmir@qti.qualcomm.com>
Signed-off-by: Rahul Sharma <sharah@codeaurora.org>
Virtual plane limited the usage of plane on assigned display only.
It is against the implementation in strategy manager in SDM, which
assume any plane can be used by any display.
Change-Id: Iddcb94d888dfa1ec7685f2964116b4296a0e9a7f
Signed-off-by: Camus Wong <camusw@codeaurora.org>
Signed-off-by: Rahul Sharma <sharah@codeaurora.org>
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