During driver probe procedure, lock on the parent of
platform devices could be removed to make probe in parallel.
Change-Id: I5457869e056a55b51dd91937d6202947b13977eb
Signed-off-by: vkakani <vkakani@codeaurora.org>
Signed-off-by: Wei Li <weili@codeaurora.org>
The instance got from the list may possibly be closed before
printing its info.
Change-Id: I7fdad3025cebace951a073cb52153d032533bd73
Signed-off-by: Yiming Cao <cyiming@codeaurora.org>
In create_safe_exec_page(), we create a copy of the hibernate exit text,
along with some page tables to map this via TTBR0. We then install the
new tables in TTBR0.
In swsusp_arch_resume() we call create_safe_exec_page() before trying a
number of operations which may fail (e.g. copying the linear map page
tables). If these fail, we bail out of swsusp_arch_resume() and return
an error code, but leave TTBR0 as-is. Subsequently, the core hibernate
code will call free_basic_memory_bitmaps(), which will free all of the
memory allocations we made, including the page tables installed in
TTBR0.
Thus, we may have TTBR0 pointing at dangling freed memory for some
period of time. If the hibernate attempt was triggered by a user
requesting a hibernate test via the reboot syscall, we may return to
userspace with the clobbered TTBR0 value.
Avoid these issues by reorganising swsusp_arch_resume() such that we
have no failure paths after create_safe_exec_page(). We also add a check
that the zero page allocation succeeded, matching what we have for other
allocations.
Fixes: 82869ac57b5d ("arm64: kernel: Add support for hibernate/suspend-to-disk")
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: James Morse <james.morse@arm.com>
Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: <stable@vger.kernel.org> # 4.7+
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Alex Shi <alex.shi@linaro.org>
Change-Id: Icaa1aa246cebdbbc4f65d6024deb7f38c981a38d
Git-commit: dfbca61af0b654990b9af8297ac574a9986d8275
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Anant Goel <anantg@codeaurora.org>
Signed-off-by: Atul Raut <araut@codeaurora.org>
In create_safe_exec_page we install a set of global mappings in TTBR0,
then subsequently invalidate TLBs. While TTBR0 points at the zero page,
and the TLBs should be free of stale global entries, we may have stale
ASID-tagged entries (e.g. from the EFI runtime services mappings) for
the same VAs. Per the ARM ARM these ASID-tagged entries may conflict
with newly-allocated global entries, and we must follow a
Break-Before-Make approach to avoid issues resulting from this.
This patch reworks create_safe_exec_page to invalidate TLBs while the
zero page is still in place, ensuring that there are no potential
conflicts when the new TTBR0 value is installed. As a single CPU is
online while this code executes, we do not need to perform broadcast TLB
maintenance, and can call local_flush_tlb_all(), which also subsumes
some barriers. The remaining assembly is converted to use write_sysreg()
and isb().
Other than this, we safely manipulate TTBRs in the hibernate dance. The
code we install as part of the new TTBR0 mapping (the hibernated
kernel's swsusp_arch_suspend_exit) installs a zero page into TTBR1,
invalidates TLBs, then installs its preferred value. Upon being restored
to the middle of swsusp_arch_suspend, the new image will call
__cpu_suspend_exit, which will call cpu_uninstall_idmap, installing the
zero page in TTBR0 and invalidating all TLB entries.
Fixes: 82869ac57b5d ("arm64: kernel: Add support for hibernate/suspend-to-disk")
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: James Morse <james.morse@arm.com>
Tested-by: James Morse <james.morse@arm.com>
Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: <stable@vger.kernel.org> # 4.7+
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Alex Shi <alex.shi@linaro.org>
Change-Id: I5b852c3e9b3a589377d3197f23522ea8a7a46220
Git-commit: 0194e760f7d2f42adb5e1db31b27a4331dd89c2f
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Anant Goel <anantg@codeaurora.org>
Signed-off-by: Atul Raut <araut@codeaurora.org>
Modify ADV7481 interrupt signal duration so that the signal
is cleared after 4 clock periods.
This is required to avoid random missing of interrupts.
Change-Id: I78242ce8e4375fde8bf37e6a150ce08ed0f8db3e
Signed-off-by: Suprith Malligere Shankaregowda <supgow@codeaurora.org>
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>
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>
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>
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>