During composition switch, android driver stops data transfers first
and removes configuration before disabling the pullup. With this sequence
there is a possibility for a race where usb_remove_config is in progress
during which pullup is active and sending the setup request for strings
with zero configuration value. Hence fix the issue by adding spinlock
protection for get_sring descriptor.
Change-Id: I13c601f0e48d847b322a2761cd52268963cacf01
Signed-off-by: Chandana Kishori Chiluveru <cchiluve@codeaurora.org>
Remove debug measure support for clocks that are not registered with
the clock framework.
Change-Id: I69461a35ad219aec8d0cdd54666234ad01fbc1df
Signed-off-by: Jagadeesh Kona <jkona@codeaurora.org>
Prevent PCIE L1 substates while MHI fast resume to make
device not to enter any low power substates and allow l1
once mhi fast resume is completed.
Change-Id: Id92af704ce6f38ce13df25ef8be5d9c67b4b588a
Signed-off-by: Vivek Pernamitta <vpernami@codeaurora.org>
Fix cpu clock driver to remove unused properties and re-org
the code to parse the device tree data as we prepare for
the driver to be shared across multiple cpu clocks.
Change-Id: Id7db6d0a860155f2a213d168385913341a562315
Signed-off-by: Rakesh Kota <kotarake@codeaurora.org>
Currently we set rate before configure SPI DFS clk. Configure DFS
clk before doing set rate to SE clk. This will allow us to enable
correct parrent clk.
Change-Id: Ifa193bce28937ed363eadeb1bdc2e4bcbacb210b
Signed-off-by: Ashish Kori <akori@codeaurora.org>
The hw->init is no longer valid after the HW clock is registered with
the clock framework, thus clean up the clock enable/disable. While at it
update the list register offset.
Change-Id: I965cd1d5c14efd2bea8cc220f2b19ed1f3ddfb8c
Signed-off-by: Taniya Das <tdas@codeaurora.org>
There can be cases where the clock providers have multiple regmaps and
directly registers to the clock framework. The clk regmap ops like list
registers/clk rate max would be registered only if the provider is added
to the regmap list node.
Thus expose this API for those providers to add to the list.
Change-Id: I1463c12eeed431d30e96404f2162dd75d202d4b9
Signed-off-by: Taniya Das <tdas@codeaurora.org>
Enable arm smmu driver so that clients can use.
Change-Id: Ia1838b2d97e95c5fe224f735e42ce3e5bdbf008a
Signed-off-by: Saurabh Ambulkar <sambulka@codeaurora.org>
Add support for debug clock controller to measure
frequency of APCS mux clock.
Change-Id: I951c420c52aa62eb6a3cbfc0ccea9d244de6bb06
Signed-off-by: Rakesh Kota <kotarake@codeaurora.org>
Currently the platforms using SNPS SSPHY do not suspend it so as
to receive SS wakeup events via pwr_event_irq. But certain
telematics platforms do not need SS wakeup in system suspend
scenario.
USB wakeup from PM suspend/hibernation is not a requirement for
automotive/telematics platforms. Use enable_wakeup parameter in
dwc3_msm_suspend call to allow SSPHY suspend to happen and also
to keep the IRQs enabled/disabled.
Change-Id: I691585e15539490e63a345fe2b3aacf182352399
Signed-off-by: Ajay Agarwal <ajaya@codeaurora.org>
Signed-off-by: Harsh Agarwal <harshq@codeaurora.org>
Currently the PM handling power collapses the core and issues
reset-resume for all the connected devices, both during system
suspend-resume and hibernation-restore scenarios. But certain USB
interconnect platforms want the connected device to not undergo
reset-resume on system resume.
Modify the operations to keep the core powered up, PHY resources
ON and xhci_resume with hibernated flag as 'false' so that
suspend-resume of the connected device is done on resume from
system suspend. Keep the hibernation operation as is.
Also change the DT flag to 'qcom,ignore-wakeup-src-in-hostmode'.
Change-Id: I661494595a3e270890174e0952a67985db58706d
Signed-off-by: Ajay Agarwal <ajaya@codeaurora.org>
Signed-off-by: Harsh Agarwal <harshq@codeaurora.org>
Calculate SPI transfer timeout dynamically based on the transfer size
and add flag for fixed timeout.
Change-Id: Idb4dd232bc97d52e5df74f3cb931f5aa6cbcaaa1
Signed-off-by: Ashish Kori <akori@codeaurora.org>
Clear smp2p data during subsystem down to
prevent false smp2p notification to FW when
subsystem is up.
Change-Id: Iaa9a360e27a6e59d34ba9f02a28ce5dcf71ed0f5
Signed-off-by: Naman Padhiar <npadhiar@codeaurora.org>
Currently usb driver is using 8 bytes request on interrupt endpoint
for all CDC functions. GPS host driver is expecting short packet/zero
length packet on interrupt endpoint and failing the transfer with 8 bytes
maxpacket. Increase the maxpacket size to 64 bytes so that host ends
the transfer with a short packet.
Change-Id: Icc9919fbd633468d3cc7d4d8ab1945730cdc7c06
Signed-off-by: Chandana Kishori Chiluveru <cchiluve@codeaurora.org>
Add master and slave IDs for all Qualcomm Technologies, Inc. Monaco
interconnect providers which consumers can use to set bandwidth
constraints and find paths in the NoC (Network-On-Chip) topology.
Change-Id: Id2e816a74e382946c02345a5d1e39ed1d913ef90
Signed-off-by: Odelu Kukatla <okukatla@codeaurora.org>
Use mmc_try_claim_host with a timeout instead of mmc_claim_host in
mmc_sd_detect. This is to ensure that mmc rescan work item is doesn't
get blocked on claim_host for longer period.
In the pm_suspend path, we cancel the mmc_rescan work item.
If this work item is already scheduled, suspend would be blocked till
mmc_rescan gets finished. In case, mmc_rescan is blocked on claim_host
lock, pm_suspend could get blocked for longer period. This can result
in momentary UI freeze since pm_suspend is blocked for longer duration.
This change is to prevent this scenario.
Change-Id: Ib93bae6745a153bad3579ae42f46c3c3a7c1b95a
Signed-off-by: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>
Signed-off-by: Sarthak Garg <sartgarg@codeaurora.org>
Currently lpm_suspend_enter and lpm_cpuidle_s2idle return
success always. This misleads on succcess and failure counts.
This change adds support to return correct value to caller.
Change-Id: I57dd0a4385f16f0e0aa1c92d602c0816ed358e2c
Signed-off-by: Tushar Nimkar <tnimkar@codeaurora.org>
Refractor the OSM L3 driver to make it easy to extend for
other targets.
Change-Id: Id9e9ff3c2e9a299fcee8881c68f43649b866259b
Signed-off-by: Veera Vegivada <vvegivad@codeaurora.org>
Driver enables GSI wrapper only if OUT EP is present in
GSI interface which is not the case with DPL function.
This logic works as long as there is another GSI function
present with OUT EP (e.g. RMNET/RNDIS). However, if ADPL is
the only GSI function in composition then driver does all
the EP specific programming in USB GSI wrapper but doesn't
enable it. Since, initial doorbell is rung by software, data
transfer does start but eventually stall happens as USB GSI
wrapper doesn't ring doorbell.
Fix it by not having an EP check while enabling GSI.
Change-Id: Ia40209d5a3f3b5947b13e8909ef9f994200f7a85
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
During I2C GSI mode transfer scenario, there is a potential race between
initializing the completion variable and waiting for the completion.
After submitting the DMA transfer request, initializing the completion
may actually reset the received event as DMA could have complete the
transfer immediately before driver waits for the event. Then it can
never receive the completion and results in timeout.
This change initializes the completion variable before submitting the
DMA transfer request and then waits for the completion.
Change-Id: I537d1187a84171a0811862efd5e118c8d8b57fef
Signed-off-by: Mukesh Kumar Savaliya <msavaliy@codeaurora.org>
Add support for Camera clock controller driver for the camera
clients to be able to control clocks.
Change-Id: Idf65246d08e0228bc92b415ce57945ba7d708433
Signed-off-by: Jagadeesh Kona <jkona@codeaurora.org>