Move can and kheader modules to system_dlkm blocklist
instead of vendor module blocklist.
Change-Id: I9b50b5ed3982b1905d5c31b30180e0b2eed9450e
Signed-off-by: Zhenhua Huang <quic_zhenhuah@quicinc.com>
Pin all the pages when physically contiguous pages are coalesced.
Change-Id: I91bc45130dd63a45b4e84f1de847db85ef5efacc
Signed-off-by: Prakruthi Deepak Heragu <quic_pheragu@quicinc.com>
If the hardware is still accessing memory after SMMU translation
is disabled (as part of smmu shutdown callback), then the
IOVAs (I/O virtual address) which it was using will go on the bus
as the physical addresses which will result in unknown crashes
like NoC/interconnect errors.
So, implement shutdown callback for i2c driver to suspend the bus
during system "reboot" or "shutdown".
Change-Id: I58b719082a8d8beed4317b33691115c9e7031ec1
Signed-off-by: Srikanth Nanavalla <quic_snanaval@quicinc.com>
Signed-off-by: Visweswara Tanuku <quic_vtanuku@quicinc.com>
kaslr offset in IMEM is required to decode the ram dumps with
kaslr enabled kernel. Add hibernation callback to update IMEM cookie
during hibernation restore. Use syscore callbacks in this
case to restore the value as soon as possible.
Change-Id: I3fe618c56385362e796e52deb423a035f0e03707
Signed-off-by: Venkatakrishnaiah Pari <quic_vpari@quicinc.com>
Signed-off-by: Shreyas K K <quic_shrekk@quicinc.com>
Add hibernation callback to reinitialize memory_dump table
in IMEM during hibernation restore. Use syscore callbacks in
this case to reinitialize the value as soon as possible.
Change-Id: I243a354ce6ccb9f349684eb9b649d43d5b3ed519
Signed-off-by: Arun KS <arunks@codeaurora.org>
Signed-off-by: Shreyas K K <quic_shrekk@quicinc.com>
Some older targets just support SSCTL_SUBSYS_EVENT_REQ, so add
paremeter like trascation_id_valid to skip trascation_id encode.
Meanwhile, if targets don't support SSCTL_SUBSYS_EVENT_WITH_TID_REQ,
it will retry with SSCTL_SUBSYS_EVENT_REQ.
Change-Id: I2d1a0fbc9e87fcbf246dabc3e686c2e6f60b46ed
Signed-off-by: Song Xue <quic_songxue@quicinc.com>
Currently, we use a few internal Kleaf rules from our custom Bazel
rules. A recent upstream change restricted visibility of these rules
which causes build errors like:
Starlark file //build/kernel/kleaf/impl:common_providers.bzl is not
visible for loading from package //<pkg>. Check the file's
`visibility()` declaration.
While we work to transition to supported Kleaf APIs, let's pass
--nocheck_bzl_visbility to the build so that we can continue using
the private Kleaf APIs.
This change should be reverted after migrating to the Kleaf public
APIs.
Change-Id: I1cb807e9e97706e57296be9684842e5e972430ac
Signed-off-by: John Moon <quic_johmoo@quicinc.com>
This patch updates the config flag check for the
msm_mpm_enter_sleep function definition.
Change-Id: Id654d3923fee3d012c59689bdc54088be5207c23
Signed-off-by: Raghavendra Kakarla <quic_rkakarla@quicinc.com>
pmic-voter.o has the vote aggregation logic that is used by SMB5,
SMB1355, SM1398 and QG drivers for controlling the state of
different charger parameters dynamically during operation,
by the registered voter clients.
On older 5.x kernel Makefile, pmic-voter.o was added to each
entry of these drivers, but only one shared instance
pmic-voter.o was getting created.
However, moving to the 6.x kernel, the same Makefile is now creating
one instance for each driver, which is leading to aggregation logic
going bad, as the votable_list is getting duplicated for each driver.
Fix this by exporting APIs in pmic-voter.c driver and remove
its object from other drivers except SMB5 charger driver.
Change-Id: Ied2ea205dd27ab10d41b5edddaac28c170bf4c0a
Signed-off-by: Rakesh Kota <quic_kotarake@quicinc.com>
Add insufficient length check in cdsprm_rpmsg_callback to avoid
out of bound memory access.
Change-Id: Ie816cf1b02d9857cc6a6768122ea98b9ea3ef1a7
Signed-off-by: Rakesh Kundaram <quic_krakeshk@quicinc.com>
Prevent possible integer overflow by sanitizing the alloc request
size coming from the client against allottable amount of memory.
Change-Id: I74cb0f7b0808f20299586969fd5c810d44c3e576
Signed-off-by: Manoj Prabhu B <quic_bmanoj@quicinc.com>
Currently, the avb_boot_img rule uses "openssl" from the host while
building. This causes a build error on hosts that do not have openssl
installed.
Since openssl is included in the prebuilt hermetic tools, let's update
the rule to use those instead.
Change-Id: Iddd95a3a74690bfe5e94733e810eed8800e77c39
Signed-off-by: John Moon <quic_johmoo@quicinc.com>
For HSUART we are doing the port setup only once during probe
and if system is entering into deep sleep without port close,
after the deep sleep exit QUP HW is not retaining register
configuration made as part of port setup and set_termios.
Added changes in the deep sleep exit path to do the port setup
and reconfigure uart to the previous baud rate.
Change-Id: Ieb7a1e5fd624de8985be19ff47f579c3d5e92e41
Signed-off-by: Yatish Kumar Singh <quic_yatishku@quicinc.com>
Signed-off-by: Viken Dadhaniya <quic_vdadhani@quicinc.com>
Pull the RFR line before doing stop_rx in uart driver.
This is to prevent any rx data to come into the uart rx fifo when
stop_rx is being executed.
Issue scenarios could be that during baud rate change/ runtime
suspend or any other place where stop_rx is used, there might
be a race between rx data entering uart rx fifo and using available
dma RX buffer and leading to cancel failure.
This scenarios resulting in data loss or invalid RX packet issues
further.
Change-Id: I92163c4997c1709269dce67a1d492533f710abfb
Signed-off-by: Prudhvi Yarlagadda <pyarlaga@codeaurora.org>
Signed-off-by: Chandana Kishori Chiluveru <quic_cchiluve@quicinc.com>
Signed-off-by: Prasanna S <quic_prass@quicinc.com>
msm_geni_serial_flush is calling stop_tx_sequencer
while uart is in suspend state, resulting in unclocked
register access.
Use msm_geni_serial_stop_tx in msm_geni_serial_flush
which will check if device in suspend state.
Change-Id: I75712bc12a81e65637a026839f3ac6cc6f96f3e4
Signed-off-by: Visweswara Tanuku <quic_vtanuku@quicinc.com>
Signed-off-by: Prasanna S <quic_prass@quicinc.com>
Uart flush call causing the crash when called in atomic context.
Sleeping tasks getting called from GSI dma engine terminate
for tx channel through uart flush buffer.
So updated dma termination task to be handled through work queue.
Change-Id: Id1dcf1e79802bb6e8f5e1c6de3b43549668064dc
Signed-off-by: Zahir Shabbir Khan <quic_zshabbir@quicinc.com>
Signed-off-by: Aniket Randive <quic_arandive@quicinc.com>
Signed-off-by: Prasanna S <quic_prass@quicinc.com>
In current implementation, after vote_clock_off we check for wakeup
byte in UART Rx buffer. If wakeup byte is present, we send it to BT
Application else drop the rx bytes until wakeup byte 0xFD is received.
The problem with this implementation was if there was out of sync
between Tx and Rx and a packet was received after clock off, it
was checked for wakeup byte which resulted in drop of some rx bytes.
To mitigate above scenario change handling of wakeup byte mechanism
as below:
1. Check the rx packet for wakeup_byte only after runtime suspend
instead of vote clock off.
2. Check only the first byte of RX buffer.
3. If wakeup byte is received send it to BT appplication.
4. Else drop the whole bytes.
Change-Id: I1fea3b99193887d05ee7756df933abd94b6d71d3
Signed-off-by: Prasanna S <quic_prass@quicinc.com>