Currently driver uses device ID to differentiate RAM dump register
and unregister APIs which is not efficient since most resent devices
will use the same RAM dump version. Enhance this by using version to
differentiate RAM dump APIs.
Change-Id: I776a8f2d84eb22cf6f8a51984ba50204ff2573f7
Signed-off-by: Yue Ma <yuem@codeaurora.org>
During hibernation, freeze/thaw/restore dev_pm_ops
are called instead of suspend/resume.
Hook up the hibernation ops using macro
SET_NOIRQ_SYSTEM_SLEEP_PM_OPS.
Change-Id: Ic4cb9f5aec1a0a1d66cf2cea9946a4a3aae37671
Signed-off-by: Atul Raut <araut@codeaurora.org>
Use device suspend/resume ops rather than platform device
suspend/resume ops for cpr3-hmss and cpr3-mmss.
Change-Id: I8e01ac3571760dbaa3b7eb410d7c0753a8217e4f
Signed-off-by: Atul Raut <araut@codeaurora.org>
eMMC is the storage device for hibernation image. As such it needs
to be working when hibernation image is created and written. Also for
loading hibernation image after reboot, eMMC driver needs to be
probed and running.
During reboot, kernel comes up and does its own eMMC probe and sets
speed for eMMC. A late system call then checks for hibernation image.
If there is a hibernation image, the current kernel will stay only
temporarily.
Once the hibernation image is found and loaded, the temporary kernel
suspends the eMMC device and then gives control to kernel in
hibernation image.
The hibernation image then restores the eMMC device based on the eMMC
driver state saved just before creating hibernation image.
This gives rise to a possible missmatch between the HW state of eMMC
(Specifically the bus speed) when temporary kernel suspends it and the
state driver restores after hibernation restore.
So a synchornization has been done by making the eMMC run in max speed
during:
1. Just before hibernation image is created (So the driver state
in hibernation image will be for max speed mode).
2. After reboot, just before temporary kernel loads image and
suspends (so the mmc driver in temporary kernel will put the
eMMC in suspend while HW state is in highest speed mode.
This ensures that the HW state, mmc_resume post the hibernation
expects, will be same as the HW state actually present in the eMMC
at the point of hibernation restore.
This also ensures we save the hibernation image in max performance and
we restore the hibernation image also in max performance.
Change-Id: Ia9deceacade97ac89e4f25b40ce074d75bbb2bbc
Signed-off-by: Vijay Viswanath <vviswana@codeaurora.org>
The patch adds new event ids for RRC events,
WLAN host scan and WLAN PE Diag set antenna.
Change-Id: Ib62e97a903407f0249d2eb40fc5463cc45103873
Signed-off-by: Manoj Prabhu B <bmanoj@codeaurora.org>
The patch sets new error context with TYPE_CMD for buf_num
context to add peripheral error responses on apps response
path to respective logging session and prevent buffer corruption.
Change-Id: I02c246d9a68a4f8e912d8693b3e4844c0e0b6885
Signed-off-by: Manoj Prabhu B <bmanoj@codeaurora.org>
In peripheral SSR case SMEM dump is collected and stored which
is not expected on secude devices.
Add a check and avoid dumping SMEM on secure device.
CRs-Fixed: 2264360
Change-Id: I2895aeb86d97b45dcb3ea293aa79a06174b8ac0b
Signed-off-by: Arun Kumar Neelakantam <aneela@codeaurora.org>
Due to GCC problem
(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53119),
it cause a warning in hab test code, this patch is a workaround
to avoid this warning. This can be reverted once the GCC issue is fixed.
Change-Id: I4d01920ef36cb42bae4dd9f331c518a38dfd9a5a
Signed-off-by: Chao Bi <chaobi@codeaurora.org>
Avoid page table corruptions during memory hotremove by
stopping all other cpus.
Change-Id: If4084768044dd95601bdc5993d14bc6b0a5921c3
Signed-off-by: Venkata Rao Kakani <vkakani@codeaurora.org>
During multiple adb reboots test case, adbd is taking time to start
and write the descriptors from the userspace. If adb is their in the
composition and its not ready when bind happens, UDC bind for ffs will
fail and adding the function back to the func_list in failure path and
calling purge_configs_funcs.
In purge_func adb driver unbind the functions from config->functions list
and add back to the tail of the func_list. With this order of the functions
in func_list got changed and next time when bind happens from adbd start
usb does not working.
Fix this issue by changing the order of the functions while adding the
functions back to the list in purge_configs_funcs.
Change-Id: I50c2362062130836d66edfcf8e1f020134248cb4
Signed-off-by: Chandana Kishori Chiluveru <cchiluve@codeaurora.org>
There's no reason to unhalt if switching to CQ mode fails.
Since card is not in CQ mode, let the controller be halted.
The caller will handle this error.
CRs-fixed: 2241401
Change-Id: I307753ad66d291168a55f760565cc141d7c83c31
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
If soundcard registration has failed because of custom
driver probe failure and at the same time
msm_dig_suspend is called, this will lead to
null pointer dereference when component is accessed.
Add NULL check to avoid this.
CRs-Fixed: 2263093
Change-Id: I2d321814a316d9b3af1ff0f8963f2999520e60d2
Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
The patch enables to track the control channel buffer
status, reception of feature mask and error case of
not queueing a read on socket by use of debug logs.
Change-Id: Ibd9bd9a09f6519e31874f8794df3df875e931d25
Signed-off-by: Manoj Prabhu B <bmanoj@codeaurora.org>
Add support for routing QMI messages to and from connected device
over BULK In and Out endpoints.
Change-Id: I9d6d06252ff7e98a1e41206b8699990f4312fb01
Signed-off-by: Ajay Agarwal <ajaya@codeaurora.org>
Add support for creation of diag and IPC traffic channel in case
the connected device has 0x05C6 VID and 0x9900 or 0x9901 PID.
0x9900 : WLAN + QMI + DIAG
0x9901 : BT ACL + BT SCO + WLAN + QMI + DIAG
Change-Id: Iaa803d729516016a3b5043aa1cec78d12a408451
Signed-off-by: Ajay Agarwal <ajaya@codeaurora.org>
Add diag_bridge driver which is used to communicate with the diag
and QMI interfaces exposed by Qualcomm devices. This snapshot is
taken as of msm-3.10 'commit d722f698a54e ("regulator: core: Fix
buffer overflow issue")'.
Also rename the diag_bridge driver to diag_ipc_bridge.c.
Change-Id: Ide503c5bf729a7e41de98b12c89e4edc12af61fe
Signed-off-by: Ajay Agarwal <ajaya@codeaurora.org>
when we kill ais_server sensor state is in cci down, hence added
cci power down check in sensor power up.
Added CLKFLAG_NO_RATE_CACHE to support hibernation
Change-Id: Ic546ab4a320d0aa4a3ee80bc8256687ee89e9f63
Signed-off-by: Suprith Malligere Shankaregowda <supgow@codeaurora.org>
mutex lock should be unlocked before returning if the offset is not right.
Change-Id: I11945696d2c4078c28266312915837a812fedcc8
Signed-off-by: Yunyun Cao <yunyunc@codeaurora.org>
Fix offset address to use set parameter structure while
copying data from user instead of get parameter structure
for AFE_PORT_CMD_SET_PARAM_V3 case.
CRs-Fixed: 2256728
Change-Id: I61e41f366f365734a47080b79179fbe3021ee8a7
Signed-off-by: Aditya Bavanari <abavanar@codeaurora.org>
During unmap of rtac block in ASM, mem_map_handle
address is set to zero instead of the value. Set the
map handle value to zero to avoid issue in freeing the
ion memory.
CRs-Fixed: 2254339
Change-Id: I6584be029d4c8dde235e722149c758df0db9916e
Signed-off-by: Aditya Bavanari <abavanar@codeaurora.org>