The remote subsystem acknowledges all Altmode PMIC GLINK messages sent
to it. Print an error message anytime it fails to do this.
In the case when no client is found for a received message, do the
sending of the ack in a separate worker thread instead of a plain
function call to altmode_send_ack(). This is to avoid a deadlock and
consequent timing out in altmode_write(), which will happen in the
following scenario:
- A message is received for a nonexistent client.
- altmode_send_ack() is called from within altmode_callback().
- The PAN ACK is sent to the remote subsystem via pmic_glink_write() in
altmode_write() and the remote subsystem replies with an ACK (opcode
USBC_CMD_WRITE_REQ).
- Subsequently, in altmode_write() we wait for completion timeout, which
will happen only if this new ACK message is processed by PMIC GLINK.
- PMIC GLINK is waiting for altmode_callback() to return so that it can
process the new message.
- We are still waiting in altmode_callback() for altmode_send_ack() to
complete.
- We time out in altmode_write() waiting for the completion to occur.
This problem is solved by firing off a worker thread to send the PAN ACK
so that altmode_callback() can exit quickly and allow the incoming new
ACK to hit the complete() in the USBC_CMD_WRITE_REQ case in
altmode_callback().
Also add a couple of minor fixes to some debug messages while we're at
it.
Change-Id: I3d80b1a7d6cc03b0eba61b5c9cc660ce7d377942
Signed-off-by: Guru Das Srinagesh <gurus@codeaurora.org>
Add debugfs nodes to send Pin Assignment Notifications Enable (PAN EN)
and Acknowledgment (ACK) commands manually if needed, to aid in
debugging situations where it is unclear whether clients are sending
these commands synchronously as per design.
Change-Id: I7a68d676df86cbf6952158202c8e4958db032d5b
Signed-off-by: Guru Das Srinagesh <gurus@codeaurora.org>
Remove the device tree property "qcom,altmode-name" and the logic it
feeds as it was meant to help in the cases when there are multiple
altmode devices. Since there is going to be only one altmode device as
per design, this is no longer needed.
Change-Id: Ife15e39becee5f4ff03bdcc56ff62ae812fe2726
Signed-off-by: Guru Das Srinagesh <gurus@codeaurora.org>
Client API changes:
- Update client APIs to align them more closely with upstream
conventions.
- In particular, change the link between altmode device and client from
the altmode device's name string to a phandle to the altmode device
followed by the port index of the client.
- Instead of using solely the client's SVID as the key for idr_alloc,
include port_index as well because the unique identifier of a client
is the (SVID, port_index) tuple.
Updates to client notifying mechanism:
- Get rid of the standard notifier APIs in favour of a simpler callback
function-based mechanism to notify clients of probe completion.
- In addition, if clients probe after altmode finishes probing, they
will not get notified of probe completion as this is done only once at
the end of altmode_probe(). Fix this so that if a client registers for
probe completion notifications after altmode probes, they get notified
immediately.
While at it, get rid of the global list of altmode devices (amdev_list)
as there will only be a single altmode device in the system as per
design.
Change-Id: Iea450d30d9cc94671f505b7ff0c6e98b0b8a4467
Signed-off-by: Guru Das Srinagesh <gurus@codeaurora.org>
Add the symbol, drm_dp_check_act_status, to the qcom whitelist
and update the ABI snapshot accordingly.
Change-Id: I239fafdd2d57b0600a130b7610777da8a5874afe
Signed-off-by: Raghavendra Rao Ananta <rananta@codeaurora.org>
Add register_oom_notifer and unregister_oom_notifier to
the QCOM whitelist and update the ABI snapshot accordingly.
Change-Id: I6b3888f909348dfbad4f0ede565ba616336b2388
Signed-off-by: Raghavendra Rao Ananta <rananta@codeaurora.org>
Enable CONFIG_UNUSED_KSYMS_WHITELIST_ONLY for Lahaina's GKI
platform to detect if an update to the whitelist is needed.
Also update the ABI snapshot as many of the function will be
seen as deleted.
Change-Id: I5e96899dd69462e1a32ae7b512be8d4de9ea1b2d
Signed-off-by: Raghavendra Rao Ananta <rananta@codeaurora.org>
CONFIG_UNUSED_KSYMS_WHITELIST_ONLY extends the support for the
existing CONFIG_UNUSED_KSYMS_WHITELIST in a way that, if enabled,
it would allow the kbuild to export ONLY the symbols that are
supplied as a part of whitelist (and of course the ones exported
by modules). That is, the build would break for modules during
modpost with:
ERROR: "<symbol>" [<module>.ko] undefined!
When enabled, the option is quite useful in build integration
systems to detect if the whitelist file needs an update.
Change-Id: Ica0a270214d4d51f6e2269fdc591fb86acbc4f97
Signed-off-by: Raghavendra Rao Ananta <rananta@codeaurora.org>
Add the initial snapshot of Qualcomm's whitelist of ABI symbols
(internal and external) for arm64 platforms.
Change-Id: I9676856d842ba93a9ae48fce39b9956c2ab7c972
Signed-off-by: Raghavendra Rao Ananta <rananta@codeaurora.org>
avoid event signaled twice.
add ioctl to check if event was signaled.
Change-Id: Ie75b9db86f2badddc08d65eee30ecd6a15795256
Signed-off-by: Amir Samuelov <amirs@codeaurora.org>
If the device and link are marked as off, suspend routine wouldn't
turn-off the device and link.
But the regulators would be put to lpm mode.
However, the ufs device is still drawing active mode current.
Thus this leads to a OCP in PMIC.
Hence, don't mark the device and link as off in case of error,
if it doesn't reflect the correct state.
Change-Id: I8d5a738a92a1f339c0500a617f55cb77009356b2
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
We observe the IPA RX stall due to the DEAGGR_ERR_IRQ
of PACKET_SIZE > FRAME_SIZE on rndis.
In IPA, some of de-aggregation error handling checks
are dependent on the syspipe_err_detection config bit.
Adding IGNORE_MIN_PKT_ERR bit for rndis as well based
on recommendations.
Change-Id: Iad1c816bf3371696bf665a8702fcf27490e230d0
Signed-off-by: Bojun Pan <bojunp@codeaurora.org>
Create a config flag to add Qualcomm specific code to upstream
MMC drivers.
Change-Id: I551dd96d0fde14f08f3270a0fee5842e7309d28d
Signed-off-by: Bao D. Nguyen <nguyenb@codeaurora.org>
Add the clock scaling support for SD card in the
sdhci-msm layger.
Change-Id: I17a279bea4ee589121785006e1887a6f39e3ce6a
Signed-off-by: Bao D. Nguyen <nguyenb@codeaurora.org>
Add the clock scaling support for SD card to the core layer.
Change-Id: I9bfc8b581aed7013ecd2f8af65643a4e242d4b72
Signed-off-by: Bao D. Nguyen <nguyenb@codeaurora.org>
Add the clock scaling support for SD card in the block layer.
Change-Id: Iac02d68ce01dd2f2437b1b09dba1070c63aa0317
Signed-off-by: Bao D. Nguyen <nguyenb@codeaurora.org>
Wakeup capable GPIO IRQs routed via PDC are not being migrated when a
CPU is hotplugged. Add affinity callbacks to msmgpio IRQ chip to update the
affinity of wakeup capable IRQs.
Change-Id: Ic0892d583b567c7d6a2c7ab7fa9d75502c3f3a7a
Signed-off-by: Venkata Narendra Kumar Gutta <vnkgutta@codeaurora.org>
Signed-off-by: Maulik Shah <mkshah@codeaurora.org>
Send the actual keylen instead of the shm
bridge allocation length.
Change-Id: I662078b10bf47cb1747fdec8c147faaa64b3e95d
Signed-off-by: Barani Muthukumaran <bmuthuku@codeaurora.org>
1. Fix key invalidate for double keys so that actual
FBE keys can be removed when user is removed.
2. Don't use ICE slot for GP slot.
3. Handle KDF failures gracefully.
Change-Id: I161b96d36206378735ba564430e1f413065ba255
Signed-off-by: Gaurav Kashyap <gaurkash@codeaurora.org>
Do not release CVP persist buffer until all outstanding frames
are handled by firmware.
Change-Id: I4cbff7898f57db82bd3ab2ee8a9a15873e458f2d
Signed-off-by: George Shen <sqiao@codeaurora.org>
idle_tick is a periodic timer which sends the interrupt to cpu
for every jiffy. If next event is read before stopping the cpu
idle_tick it gives the next tick expiry time as the next event.
Current logic reading the cpu next event time before stopping
the idle tick gives shallower sleep length recorded. This prevents
cluster low power mode to get selected since next wakeup is seen
either very near to current time or as already expired.
Fix this to read next event after idle_tick has been stopped.
Change-Id: I8016c7911dc48450668a8a6bc7a6d01d4423da32
Signed-off-by: Raghavendra Kakarla <rkakarla@codeaurora.org>
Add voltage voting support for GCC CPUSS AHB clock upto 100MHz.
Change-Id: I87c06750355c51c3211dc42cb93a87c933870f6b
Signed-off-by: Jagadeesh Kona <jkona@codeaurora.org>