PSCI domains without OSI support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Lately I have been working on improving the msm8996 platform support.
Vendor kernel seems to support domain-like idle (see [1], [2]).
However when I tried changing upstream msm8996.dtsi to use PSCI
domains, I faced the firmware reporting NOT_SUPPORTED to an attempt to
enable OSI (thus rendering PSCI domains useless, as they are now
marked with ALWAYS_ON).

I noticed that vendor kernel makes a call to cpu_suspend() with
power_state following the original format (described in PSCI spec
5.4.2.1). What would be the best way to support this?
- Allow DTS forcing the PSCI power domains even if OSI enablement fails?
- Add a separate cpuidle driver?
- Just forget about it and use plain PSCI as we currently do?

Additional topic: for one of idle states the vendor kernel uses a
proprietary call into the hypervisor ([3]). Up to now we have ignored
this, as 8996 seems to be the only platform using it. I suppose that
adding it to cpuidle-psci.c would be frowned upon. Is this assumption
correct? Would it add another point for adding a separate cpuidle
driver?

[1] https://git.codelinaro.org/clo/la/kernel/msm-3.18/-/blob/LA.UM.6.6.c31-02700-89xx.0/arch/arm/boot/dts/qcom/msm8996-pm.dtsi#L32

[2] https://git.codelinaro.org/clo/la/kernel/msm-3.18/-/blob/LA.UM.6.6.c31-02700-89xx.0/drivers/cpuidle/lpm-levels.c#L927

[3] https://git.codelinaro.org/clo/la/kernel/msm-3.18/-/blob/LA.UM.6.6.c31-02700-89xx.0/drivers/cpuidle/lpm-levels.c#L944

-- 
With best wishes
Dmitry



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux