09.11.2020 07:47, Dmitry Osipenko пишет:
09.11.2020 07:43, Viresh Kumar пишет:
On 08-11-20, 15:19, Dmitry Osipenko wrote:
I took a detailed look at the GENPD and tried to implement it. Here is what was found:
- GENPD framework doesn't aggregate performance requests from the
attached devices. This means that if deviceA requests performance state 10 and then deviceB requests state 3, then framework will set domain's state to 3 instead of 10.
It does. Look at _genpd_reeval_performance_state().
Thanks, I probably had a bug in the quick prototype and then overlooked that function.
If a non-hardware device-tree node is okay to have for the domain, then I can try again.
What I also haven't mentioned is that GENPD adds some extra complexity to some drivers (3d, video decoder) because we will need to handle both new GENPD and legacy Tegra specific pre-genpd era domains.
I'm also not exactly sure how the topology of domains should look like because Tegra has a power-controller (PMC) which manages power rail of a few hardware units. Perhaps it should be
device -> PMC domain -> CORE domain
but not exactly sure for now.