From: viresh.kumar@linaro.org (Viresh Kumar)
To: linux-arm-kernel@lists.infradead.org
Subject: [Freedreno] [PATCH 5/9] arm64: dts: sdm845: Add gpu and gmu device nodes
Date: Mon, 15 Oct 2018 15:33:27 +0530 [thread overview]
Message-ID: <20181015100327.qoojonf46lh6g3sh@vireshk-i7> (raw)
In-Reply-To: <20181011145456.GG9977@jcrouse-lnx.qualcomm.com>
On 11-10-18, 08:54, Jordan Crouse wrote:
I understand what you are trying to say Jordan and I agree with those
expectations. But what I am looking for is consistency across Qcom
code using the same feature. Which enables better support for the code
going forward, etc. And if we are going to go a different way, there
must be a very good reason to do that.
But let me try to understand the hardware a bit first..
> The GPU domain is completely controlled by the GMU hardware and is powered
> independently of the CPU. For various reasons the GMU can't come up with
> the vote itself so we need to construct a vote and send it during
> initialization.
So it is the kernel which needs to send this vote on behalf of the GMU
to RPM ? Who does the vote aggregation in this case ? I thought there
has to be a single vote going from CPU side to the RPM. Isn't the GMU
vote part of that ?
> For this we duplicate the code that rmphd does to query the
> cmd-db and build the values using qcom,level as a guide. This is necessary
> copypasta as the alternative would be to add the hooks into genpd or add a
> side hook into the rpmhd to get the values we need and none of that is worth
> it for a few lines of walking an array.
Initially when I was designing this qcom,level or generically called
"performance-state" thingy, I kept the values directly in the OPP node
of the consumer (the way you have done it), but then there were
discussions which forced us to move this to the genpd level. For
example, what will you do if you also need to pass voltage/current in
addition to performance-state to the RPM? StephenB actually said we
may or may not know these values and we must support both the cases.
The opp-microvolt properties of the consumer device (GPU here) should
be used to handle the regulators which are controlled by kernel itself
and so they can't additionally handle the RPMs data. And so we created
separate OPP table for the RPM and represented that as a genpd and we
now handle the aggregation in genpd core itself on behalf of all the
consumers.
> qcom,level serves the purpose for us in this case because we can get the value
> we need and construct the vote. If we move to using required-opp, thats just
> another step of parsing for the driver and
The OPP core shall have all the infrastructure to parse these things
and we should keep all such code there to avoid duplication.
> it establishes a relationship with
> rmphd on the CPU that shouldn't exist.
Sure. I am not suggesting that the representation in software should
be different from what the hardware is, maybe I didn't understood the
hardware design well.
> I do see a good argument for using the symbolic bindings (i.e.
> RPMH_REGULATOR_LEVEL_TURBO_L1) and we can do that easily but beyond that I
> don't think that we need the extra parsing step.
--
viresh
next prev parent reply other threads:[~2018-10-15 10:03 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-27 15:11 [PATCH 0/9] Add interconnect support + bindings for A630 GPU Jordan Crouse
2018-08-27 15:11 ` [PATCH 1/9] drm/msm/a6xx: rnndb updates for a6xx Jordan Crouse
2018-08-27 15:11 ` [PATCH 2/9] drm/msm/a6xx: Fix PDC register overlap Jordan Crouse
2018-08-27 15:11 ` [PATCH 3/9] drm/msm/a6xx: Rename gmu phandle to qcom,gmu Jordan Crouse
2018-08-27 15:11 ` [PATCH 4/9] dt-bindings: Document qcom,adreno-gmu Jordan Crouse
2018-08-27 15:11 ` [PATCH 5/9] arm64: dts: sdm845: Add gpu and gmu device nodes Jordan Crouse
2018-08-28 10:30 ` Vivek Gautam
2018-10-10 9:46 ` Viresh Kumar
2018-10-10 14:29 ` Jordan Crouse
2018-10-10 14:31 ` Viresh Kumar
2018-10-10 14:48 ` [Freedreno] " Jordan Crouse
2018-10-10 14:51 ` Viresh Kumar
2018-10-10 15:10 ` Jordan Crouse
2018-10-11 5:02 ` Viresh Kumar
2018-10-11 14:54 ` Jordan Crouse
2018-10-15 10:03 ` Viresh Kumar [this message]
2018-10-15 14:34 ` Jordan Crouse
2018-10-22 10:38 ` Viresh Kumar
2018-10-22 13:20 ` Niklas Cassel
2018-10-22 14:37 ` Jordan Crouse
2018-10-22 14:34 ` Jordan Crouse
2018-10-17 18:28 ` Doug Anderson
2018-08-27 15:11 ` [PATCH 6/9] PM / OPP: dt-bindings: Add opp-interconnect-bw Jordan Crouse
2018-09-27 8:23 ` Georgi Djakov
2018-10-10 9:59 ` Viresh Kumar
2018-10-10 14:27 ` Jordan Crouse
2018-10-10 14:29 ` Viresh Kumar
2018-10-15 14:34 ` Rob Herring
2018-10-15 15:12 ` Jordan Crouse
2018-08-27 15:11 ` [PATCH 7/9] OPP: Add dev_pm_opp_get_interconnect_bw() Jordan Crouse
2018-10-05 6:36 ` Sharat Masetty
2018-10-05 17:13 ` Jordan Crouse
2018-08-27 15:11 ` [PATCH 8/9] drm/msm/a6xx: Add support for an interconnect path Jordan Crouse
2018-08-28 1:23 ` kbuild test robot
2018-08-27 15:11 ` [PATCH 9/9] arm64: dts: Add interconnect for the GPU on SDM845 Jordan Crouse
2018-08-28 18:16 ` [Freedreno] " Jordan Crouse
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181015100327.qoojonf46lh6g3sh@vireshk-i7 \
--to=viresh.kumar@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox