During the userspace freeze process, a fake signal is sent to userspace
applications. In the case of SMUX CTL, the smux_ctl_poll() will set the
POLLERR flag if a signal is received. This incorrectly unblocks the
userspace application that called poll() and the userspace application
will grab a wakelock before doing additional processing which aborts the
freeze process.
Change smux_ctl_poll() to not set POLLERR if a signal is received.
CRs-Fixed: 402651
Signed-off-by: Eric Holmberg <eholmber@codeaurora.org>
(cherry picked from commit 3cbcfa3d79564063fc4aa52173feeff101926cb9)
Change-Id: I6c2753b97bd8cf694b75d6fd3713adc99da8b266
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
Userspace clients hold a wakelock while calling read. If data isn't
available, read() blocks preventing the release of the wakelock and
preventing the system from going into low power mode.
Implement poll() method to enable clients to call poll() to block and
wait for data without a wakelock. Once poll() returns, then a wakelock
can be acquired and read() called without blocking which allows
minimizing the time a wakelock is held.
CRs-fixed: 379519
Change-Id: Icea23783ee2d03e2beac81bdb1b735e4edfd1d22
Signed-off-by: Eric Holmberg <eholmber@codeaurora.org>
Port open call for smux is blocking. There is a 5 seconds default
timeout for the open call. The total number of retries for opening
the port makes the total wait time to be 11 minutes. This timeout
becomes an issue if QSC does not come up in time. Adding a device
attribute lets the user space control/reduce the timeout value.
CRs-Fixed: 372629
Change-Id: Ib20bf05da740c99dbb7e94b4df96d256ecadad34
Signed-off-by: Angshuman Sarkar <angshuman@codeaurora.org>
Only SMUX_DATA_CTL_0 is currently used from userspace.
Change-Id: Iab9e4fa9b096d34a67fb6662418aec0be1381adb
Signed-off-by: Eric Holmberg <eholmber@codeaurora.org>
Disable debug logging that was only necessary for bring-up.
Change-Id: I5a31a982efdd1bb1915571158cc164a3856b097d
Signed-off-by: Eric Holmberg <eholmber@codeaurora.org>
SMUX_CTL module currently does not handle removal of the driver
gracefully. If there are any pending blocked calls on wait_event,
and the line discipline is removed, this results in accessing
destroyed wake queues.
Add support for aborting wait in response to device removal.
Change-Id: I3213306f6ed401f3abe5770ce324d9329e4dbc3f
Signed-off-by: Eric Holmberg <eholmber@codeaurora.org>
For development, the local loopback mode was used. Now that
the full system is ready, disable loopback mode to enable
communication with the remote system.
Change-Id: I24bee29b3fa41690ccbaf8992ecb3cb166dc3ffc
Signed-off-by: Eric Holmberg <eholmber@codeaurora.org>
Signed-off-by: David Brown <davidb@codeaurora.org>
QMUXD from user-space will use this interface to communicate
control plane QMI messages between APPs and QSC modem in Fusion 4.
Change-Id: I2f51f6927a6f92b106548d22c3965575d4468d5a
Signed-off-by: Eric Holmberg <eholmber@codeaurora.org>
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@codeaurora.org>