Glink native interrupt handler need to wakeup local host
only in post noirq phase of suspend.
Adding dev_pm_ops to track suspend/resume noirq phase.
Change-Id: I338f6ca8da8956592d3c95b2676163651ea86361
Signed-off-by: Deepak Kumar Singh <deesin@codeaurora.org>
Glink irq should be wakeup capable, to achieve this irq is marked
with enable_irq_wake().
There are some use cases where glink communication is required in system
suspend path and glink interrupt handler needs to be run immediately.
But wakeup cpabale interrupts even if received during suspend will not
run immediately, this will be marked pending and run when system resumes
from suspend. In such scenario there can be a potential deadock in suspend
path due to any irq thread which is waiting for glink interrupt completion
while glink interrupt cannot be handled immediately.
One such use case is usb plugin interrupt received during suspend, which
calls regulator api to communicate with rpm over glink and waits for rpm
ack. RPM ack cannot be processed because glink interrupt received from rpm
goes in pending state. Suspend path is blocked because regulator irq thread
is still waiting.
So there is requirement to run glink interrupt handler in suspend path at
the same time making it wakeup capable. IRQ frameworks forbids usage of
both IRQF_NO_SUSPEND and enable_irq_wake() together. This patch adds
IRQF_NO_SUSPEND and pm_system_wakeup() for glink irq to implement this
requirement.
Change-Id: I1da199c9e10c640bb84d00e569c4fafc5c104d24
Signed-off-by: Deepak Kumar Singh <deesin@codeaurora.org>
Currently the driver enables autoresume for all the connected
peripherals. In a case where an LS device is connected but fails
the enumeration, this autoresume enablement is leading to PHY
keeping the Dm pulled up even when the peripheral is detached.
Hence, the detach hs_phy_irq is never fired and disconnect is
not processed.
Since remote wakeup from LS peripherals is not a requirement on
our platforms, enable autoresume for FS/HS devices only.
Change-Id: I0a62d08e58af18b523af322c64529f5183d55907
Signed-off-by: Ajay Agarwal <ajaya@codeaurora.org>
Currently the driver checks whether the PED bit of the PORTSC
register is set to decide whether any device is connected, and
then checks the PORTSPEED field to check for the speed and
accordingly updates the HSPHY speed flag with LS or FS/HS. Hence,
the PDC is programmed to fire HS_PHY_IRQ only on the rising edge
of Dp/Dm.
In a case where the connected peripheral has failed to enumerate,
the PED bit can be cleared by the host driver. When such a device
is disconnected, there is no HS_PHY_IRQ fired to wakeup SW and
disconnect handling does not happen.
Fix this by setting HSPHY speed flags based on the CCS bit of the
PORTSC register so that the PDC is programmed to fire HS_PHY_IRQ
on the falling edge of Dp/Dm.
Change-Id: I122d170434da19fd6aeb022a5fa8a85f1ea6f541
Signed-off-by: Ajay Agarwal <ajaya@codeaurora.org>
Enable MFD SPMI PMIC driver and several SPMI and PMIC drivers
which are needed to provide baseline support of PMIC peripherals.
Change-Id: I965b40eb0931c2e22e9fab28626e9ca753ad3ff8
Signed-off-by: Veera Vegivada <vvegivad@codeaurora.org>
This adds support for MAX31760 Fan Controller.
Fan is enabled and its speed can be controlled.
Change-Id: Ie716b8558ebbd357f85d2484eaa66121eb09f52d
Signed-off-by: Minghao Zhang <minghao@codeaurora.org>
The change includes passing the packet structure to the sfe module
which includes functional pointer to tpacket_rcv needed for tcpdump
log collection.
Change-Id: Icab7663dac3f7b8681386b96945b7e170a4325f3
Acked-by: Rishav LNU <rna@qti.qualcomm.com>
Signed-off-by: Utkarsh Saxena <usaxena@codeaurora.org>