Currently, fw_down is not getting set in case of rejuvenate
since the qmi server never exit or arrive in case of rejuvenate.
Add ICNSS_REJUVENATE flag to take care of rejuvenate.
Change-Id: If85e8048cbad9a15e1c94af1c8d0012e004e6150
Signed-off-by: Anurag Chouhan <achouhan@codeaurora.org>
The "tx_blocked_signal_sent" flag is not reset correctly after receiving
the interrupt from the remote side. Hence further READ_NOTIF commands are
not written into FIFO in FIFO full case.
Reset the "tx_blocked_signal_sent" correctly after write space available
in FIFO.
CRs-Fixed: 2175526
Change-Id: I236da2a2b984b3f3cce8400b50f72ce1016d7e40
Signed-off-by: Arun Kumar Neelakantam <aneela@codeaurora.org>
In some of the SCM APIs implememnted by the QCPE front end,
some return values were not propagated correctly.
Change-Id: I2b0aa7f5511eac384db82a65b380a5d964514e57
Signed-off-by: Amit Blay <ablay@codeaurora.org>
The virtclk can disable clocks by hab in suspend flow. If hab irq is
disabled then, the power manage task will stick in uninterruptable hab
receive function.
Change-Id: I780ecede7494346953f5f77d665dd77c2cc6d28a
Signed-off-by: Yimin Peng <yiminp@codeaurora.org>
For "chunk_list + chunk_list_len", if the chunk_list is type of u32*,
the chunk_list_len will be 4 * of original size. So we flushed a wrong
area size. In some condition like we enabled CONFIG_DEBUG_PAGEALLOC, it
may flush out of page bound of the invalid pte page.
Fix it by manually convert it as void* when doing the addition.
CRs-Fixed: 2309993
Change-Id: I2b88d78ba73d9904fa2bf6106937001715b6037f
Signed-off-by: Zhenhua Huang <zhenhuah@codeaurora.org>
Since message received from spi cannot be trusted there is possibility
of out-of-bound read if received read_id is not in range of fifo.
The patch validate rx_fifo_read index of edge info for remote side.
Change-Id: I3d3fa749935f477e5f98f986adc24e6e6a682d4d
Signed-off-by: Hardik Arya <harya@codeaurora.org>
Add socinfo support for SDM455 Soc and update the
bindings fot the same.
Change-Id: I9b30795e202d84ae06020983b2d656772fb4f313
Signed-off-by: Teng Fei Fan <tengfei@codeaurora.org>
HAB returns -EINTR instead of -EAGAIN to request a retry from the
habmm_socket_recv() call.
Change-Id: I61bcef5c11048a3947b8079d1591937d7b83602a
Signed-off-by: Tony Han <xiahan@codeaurora.org>
An error check casts an integer to a pointer. Fix the error
check so that the integer is not casted to a pointer.
Change-Id: Ib15634745cc2243e4fe54557d6670956d8349e93
Signed-off-by: Anant Goel <anantg@codeaurora.org>
Add a flag to maintain fw rejuvenate state,
set if fw rejuvenate happens and reset at fw ready.
export an API to the wlan host driver to distinguish the
case of ssr or pdr with the FW rejuventae.
Change-Id: I7a01cc4996f68f78aa13eacf36648331a701882a
Signed-off-by: Anurag Chouhan <achouhan@codeaurora.org>
The driver is modified to allow communication between a virtual
subsystem, and its native clients.
Change-Id: I40854327431f3691f76df9d781dbd0a24090594e
Signed-off-by: Anant Goel <anantg@codeaurora.org>
During capability qmi message failure ICNSS_MSA0_ASSIGNED
flag is not getting clear. Due to this after PDR/SSR next
time it is not configuring the MSA0 permission to q6 which
result into NOC error as q6 is not having access permission.
To address above issue clear ICNSS_MSA0_ASSIGNED bit in
failure case.
CRs-Fixed: 2300877
Change-Id: I6aeaedb5a394b843c4f1c8ef1e0be47a6947b331
Signed-off-by: Hardik Kantilal Patel <hkpatel@codeaurora.org>
Such warning of "initialization from incompatible pointer type"
is found in the build time, and it's good to fix it.
Change-Id: Iaf820ae7ec4a7851185febbdebaaab3706fb2402
Signed-off-by: Yong Ding <yongding@codeaurora.org>
A disable and unprepare is called on a clock which is voted for, but never
unvoted for. By disabling and unpreparing this clock, the clock state is
maintained the same across modem restarts.
Change-Id: I4d6cb219ac718de4b7bad593d7f7aa9fd67b1cef
Signed-off-by: Anant Goel <anantg@codeaurora.org>
A read of a register during the software fatal error handling is removed.
This read causes an unclocked access which prevents the modem subsystem
from succssfully restarting.
Change-Id: I8338830573e55af2e5c9d0f688756d975a3302af
Signed-off-by: Anant Goel <anantg@codeaurora.org>
This allows user to read back hab runtime information.
Change-Id: Id266dd17b9c9d38f0e93aa600510ae1c6b12cca5
Signed-off-by: Yong Ding <yongding@codeaurora.org>
HAB service should be kept available as long as possible
since it is very fundamental. It can possibly be used in
the GVM(Guest Virtual Machine) shutdown procedure to
talk with the hypervisor. And the unregistration function
will only be left to give a log message.
Change-Id: I0cbc153a68a0fb496d14fc49db6cfee211a01722
Signed-off-by: Yong Ding <yongding@codeaurora.org>
When the buffer's pointer is NULL, -EINVAL will be returned for
its export.
Change-Id: I3fc949c6152974db360dc55d3dfdb0cb24150473
Signed-off-by: Yong Ding <yongding@codeaurora.org>
hab_qvm.h and its relevant stuffs are
only available when CONFIG_MSM_GVM_QUIN is enabled.
Change-Id: I7975f65f0f5bc627b7547c05245a37d4e6500c81
Signed-off-by: Yong Ding <yongding@codeaurora.org>
Previously, the supported maximum size of message sent
over hab was 4K bytes. Now, it is increased to 0xFFFF
bytes.
Change-Id: I3b539e42df2f5c5d3be4bbac7084adeb198c9a0b
Signed-off-by: Yong Ding <yongding@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>
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>
This fixes the hab compilation issues found when
CONFIG_GHS_VMM is enabled.
Change-Id: Ie4b6aca5f0a7f549273d939dd6069e55db7877c4
Signed-off-by: Yong Ding <yongding@codeaurora.org>
The standard -EINTR will be returned if the hab open
blocking call is woken up by a signal.
Change-Id: I0329c3b3a70241a31a64eab6872808e0f7d21013
Signed-off-by: Yong Ding <yongding@codeaurora.org>
apr ignores initial PDR_DOWN event from ADSP/Modem during
boot up. ADSP_DOWN event is wrongly sent to audio drivers
during boot up if it gets MODEM_UP event before ADSP_DOWN.
Added separate flags for both ADSP and Modem events to avoid
this issue.
CRs-Fixed: 2232315
Change-Id: I2c6084ac03e3867009f36be36631f881124f59ba
Signed-off-by: Soumya Managoli <smanag@codeaurora.org>
Extra checks are added to ensure a subsystem device is valid before
accessing any of its fields.
Change-Id: Ia8e3dced005485b1edb5d6ccf9429f90d31fa613
Signed-off-by: Anant Goel <anantg@codeaurora.org>
HAB(Hypervisor ABstraction) is used for message transaction
and buffer sharing among different virtual machines with the
underlying hypervisor support. Here is the change to add HAB
support for linux running in multiple hypervisors.
Change-Id: I0747b2fa0f16c7cc0ab662369d45467ac6ba62e5
Signed-off-by: Yong Ding <yongding@codeaurora.org>
Correctly free pointers allocated by kzalloc. Remove devm_kfree
in error handling as device associated memory is automatically
freed upon destruction of device. Always use put_device instead
of kfree on initialized device.
Change-Id: Icbd88e9ccd42fedb4fbce5eff69248c3fceffc02
Signed-off-by: David Dai <daidavid1@codeaurora.org>
This is necessary to support scm call in system shutdown
procedure. With interruptible habmm_socket_recv(), it will
return immediately without blocking until the response
arrives.
Change-Id: Ia7ef95e4c6878a149ec373c8d2b5ae19a36f4125
Signed-off-by: Yong Ding <yongding@codeaurora.org>