Configure the IPCC summary IRQ as wakeup capable interrupt.
IPCC interrupt needs to wake up the device from low power
modes when wakeup capable event is generated from remote
subsystem.
Change-Id: Iaffefc6ef68743c7de11062c39e2b1453c58b9a1
Signed-off-by: Prasad Sodagudi <psodagud@codeaurora.org>
[eberman@codeaurora.org: Resolve merge conflicts]
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
Add check of trace unit power property to enable/disable that
keep the trace unit powered.
Change-Id: I66dbfee16df63480c9309092e61ee39b8b0cd6e8
Signed-off-by: Mao Jinlong <jinlmao@codeaurora.org>
Signed-off-by: Tingwei Zhang <tingwei@codeaurora.org>
Since the tcs_in_use flag is authoritative enough to determine the
idleness of the TCS, avoid reading the register redundantly.
Change-Id: Ic7737e60ca0029b3cf9d1cc9e613435608be7bc8
Signed-off-by: Lina Iyer <ilina@codeaurora.org>
For RSCs that have sleep & wake TCS but no dedicated active TCS, wake
TCS can be re-purposed to send active requests. Once the active requests
are sent and response is received, the active mode configuration needs
to be cleared so that controller can use wake TCS for sending wake
requests in 'solver' state while executing low power modes.
Change-Id: I0d15c290db48d08158fdbff2cd91505563dc3fd5
Signed-off-by: Raju P.L.S.S.S.N <rplsssn@codeaurora.org>
Controllers may be in 'solver' state, where they could be in autonomous
mode executing low power modes for their hardware and as such are not
available for sending active votes. Device driver may notify RPMH API
that the controller is in solver mode and when in such mode, disallow
requests from platform drivers for state change using the RSC.
Change-Id: I6dccfabdf230d927b945b0bd1840233e69064c9d
Signed-off-by: Lina Iyer <ilina@codeaurora.org>
Signed-off-by: Raju P.L.S.S.S.N <rplsssn@codeaurora.org>
When triggering a TCS to send its contents, reading back the trigger
value may return an incorrect value. That is because, writing the
trigger may raise an interrupt which could be handled immediately and
the trigger value could be reset in the interrupt handler.
A write_tcs_reg_sync() would read back the value that is written and try
to match it to the value written to ensure that the value is written,
but if that value is different, we are stuck in loop forever.
Change-Id: I54866b9b9d85fa79c8df84aecd502764b9f9158a
Signed-off-by: Lina Iyer <ilina@codeaurora.org>
Add support to new register memory map, fix loop offset and
dynamic number of link list.
Change-Id: Ibadfa723842dae80cdd50bf08018d86c2ef30b94
Signed-off-by: Tingwei Zhang <tingwei@codeaurora.org>
Add dt binding head file for dcc driver. It's used by device tree
to define dcc link list.
Change-Id: Iacbfeeb2cf2763608f075f2828a8d47d662fa88f
Signed-off-by: Tingwei Zhang <tingwei@codeaurora.org>
Add qseecom.h, qcedev.h, fips_status.h for Lahaina bring up
Change-Id: I21c1747e7ce9fab1d190b8ea54ac2d54c11bd44f
Signed-off-by: Zhen Kong <zkong@codeaurora.org>
Some boards utilize several PMICs which contain clock divider
peripherals. Add support for the clock-output-names property
so that unique names can be specified for each divider clock.
If clock-output-names is not specified, then the clock names
will be div_clkN where N=1 to qcom,num-clkdivs.
Change-Id: I66b5fcd0a3890886fe1e8cd85b15ada8a55ecb0f
Signed-off-by: David Collins <collinsd@codeaurora.org>
clk_aop_qmp_prepare() is called from aop_qmp_clk_probe() before
devm_clk_register() is called. This means that clock hw->core
pointers are NULL and clk_hw_get_name(hw) triggers a NULL pointer
dereference. Use hw->init->name instead of clk_hw_get_name(hw)
to avoid the NULL pointer dereference.
Change-Id: I548df6518053260d44227adc0479b1ea52a81fc9
Signed-off-by: David Collins <collinsd@codeaurora.org>
Pass the mbox pointer to qmp_update_client() by reference so that
it is possible to update its value inside of the function.
Change-Id: Iefa4587f6e77b6e7029ed07236fa3a51ca09c129
Signed-off-by: David Collins <collinsd@codeaurora.org>
While registering the QDSS clock provider with the framework,
pass in the clk data array with references to both the QDSS
clocks. In its current implementation, the QDSS clock driver
only adds the clk_get callback for one of the clocks which
leads to clients getting the clock handle to it when they
try to reference either of the clocks.
Change-Id: I41fc4c1ea57ad0f59a1af126b6025c21af72cbe2
Signed-off-by: Deepak Katragadda <dkatraga@codeaurora.org>