* [PATCH v2 2/2] drm/msm: Cleanup A6XX opp-level reading
2019-01-16 18:46 [PATCH v2 1/2] drm/msm: Fix A6XX support for opp-level Douglas Anderson
@ 2019-01-16 18:46 ` Douglas Anderson
2019-01-22 2:21 ` kbuild test robot
2019-03-18 20:38 ` Doug Anderson
2019-01-16 19:45 ` [PATCH v2 1/2] drm/msm: Fix A6XX support for opp-level Jordan Crouse
2019-01-16 23:32 ` Rob Clark
2 siblings, 2 replies; 6+ messages in thread
From: Douglas Anderson @ 2019-01-16 18:46 UTC (permalink / raw)
To: Rob Clark, Jordan Crouse
Cc: Bjorn Andersson, Stephen Boyd, Rajendra Nayak, Andy Gross,
linux-arm-msm, Viresh Kumar, Kristian H . Kristensen,
Douglas Anderson, Colin Ian King, linux-kernel, dri-devel,
Sharat Masetty, David Airlie, freedreno, Mamta Shukla,
Daniel Vetter
The patch ("OPP: Add support for parsing the 'opp-level' property")
adds an API enabling a cleaner way to read the opp-level. Let's use
the new API.
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Jordan Crouse <jcrouse@codeaurora.org>
---
Obviously this can't land until we have a tree that contains the patch
adding the API. I believe that means we'll want to target this patch
for 5.2. Luckily it's fine to wait since this patch has no functional
changes--it's all cleanup.
Changes in v2:
- Split into two patches to facilitate landing.
drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 17 ++++++-----------
1 file changed, 6 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
index ce1b3cc4bf6d..900f18dc1577 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
@@ -928,25 +928,20 @@ static int a6xx_gmu_memory_probe(struct a6xx_gmu *gmu)
}
/* Return the 'arc-level' for the given frequency */
-static u32 a6xx_gmu_get_arc_level(struct device *dev, unsigned long freq)
+static unsigned int a6xx_gmu_get_arc_level(struct device *dev,
+ unsigned long freq)
{
struct dev_pm_opp *opp;
- struct device_node *np;
- u32 val = 0;
+ unsigned int val;
if (!freq)
return 0;
- opp = dev_pm_opp_find_freq_exact(dev, freq, true);
+ opp = dev_pm_opp_find_freq_exact(dev, freq, true);
if (IS_ERR(opp))
return 0;
- np = dev_pm_opp_get_of_node(opp);
-
- if (np) {
- of_property_read_u32(np, "opp-level", &val);
- of_node_put(np);
- }
+ val = dev_pm_opp_get_level(opp);
dev_pm_opp_put(opp);
@@ -982,7 +977,7 @@ static int a6xx_gmu_rpmh_arc_votes_init(struct device *dev, u32 *votes,
/* Construct a vote for each frequency */
for (i = 0; i < freqs_count; i++) {
u8 pindex = 0, sindex = 0;
- u32 level = a6xx_gmu_get_arc_level(dev, freqs[i]);
+ unsigned int level = a6xx_gmu_get_arc_level(dev, freqs[i]);
/* Get the primary index that matches the arc level */
for (j = 0; j < pri_count; j++) {
--
2.20.1.97.g81188d93c3-goog
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH v2 2/2] drm/msm: Cleanup A6XX opp-level reading
2019-01-16 18:46 ` [PATCH v2 2/2] drm/msm: Cleanup A6XX opp-level reading Douglas Anderson
@ 2019-01-22 2:21 ` kbuild test robot
2019-03-18 20:38 ` Doug Anderson
1 sibling, 0 replies; 6+ messages in thread
From: kbuild test robot @ 2019-01-22 2:21 UTC (permalink / raw)
To: Douglas Anderson
Cc: kbuild-all, Rob Clark, Jordan Crouse, Rajendra Nayak,
David Airlie, linux-arm-msm, Sharat Masetty, Douglas Anderson,
dri-devel, Stephen Boyd, Mamta Shukla, Viresh Kumar, Andy Gross,
Colin Ian King, Kristian H . Kristensen, Bjorn Andersson,
freedreno, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 1920 bytes --]
Hi Douglas,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on v5.0-rc2]
[also build test ERROR on next-20190116]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Douglas-Anderson/drm-msm-Fix-A6XX-support-for-opp-level/20190118-042538
config: arm-imx_v6_v7_defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 8.2.0-11) 8.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=8.2.0 make.cross ARCH=arm
All errors (new ones prefixed by >>):
drivers/gpu/drm/msm/adreno/a6xx_gmu.c: In function 'a6xx_gmu_get_arc_level':
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.c:944:8: error: implicit declaration of function 'dev_pm_opp_get_level'; did you mean 'dev_pm_opp_get_freq'? [-Werror=implicit-function-declaration]
val = dev_pm_opp_get_level(opp);
^~~~~~~~~~~~~~~~~~~~
dev_pm_opp_get_freq
cc1: some warnings being treated as errors
vim +944 drivers/gpu/drm/msm/adreno/a6xx_gmu.c
929
930 /* Return the 'arc-level' for the given frequency */
931 static unsigned int a6xx_gmu_get_arc_level(struct device *dev,
932 unsigned long freq)
933 {
934 struct dev_pm_opp *opp;
935 unsigned int val;
936
937 if (!freq)
938 return 0;
939
940 opp = dev_pm_opp_find_freq_exact(dev, freq, true);
941 if (IS_ERR(opp))
942 return 0;
943
> 944 val = dev_pm_opp_get_level(opp);
945
946 dev_pm_opp_put(opp);
947
948 return val;
949 }
950
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 34355 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH v2 2/2] drm/msm: Cleanup A6XX opp-level reading
2019-01-16 18:46 ` [PATCH v2 2/2] drm/msm: Cleanup A6XX opp-level reading Douglas Anderson
2019-01-22 2:21 ` kbuild test robot
@ 2019-03-18 20:38 ` Doug Anderson
1 sibling, 0 replies; 6+ messages in thread
From: Doug Anderson @ 2019-03-18 20:38 UTC (permalink / raw)
To: Rob Clark, Jordan Crouse
Cc: Bjorn Andersson, Stephen Boyd, Rajendra Nayak, Andy Gross,
linux-arm-msm, Viresh Kumar, Kristian H . Kristensen,
Colin Ian King, LKML, dri-devel, Sharat Masetty, David Airlie,
freedreno, Mamta Shukla, Daniel Vetter
Hi,
On Wed, Jan 16, 2019 at 10:46 AM Douglas Anderson <dianders@chromium.org> wrote:
>
> The patch ("OPP: Add support for parsing the 'opp-level' property")
> adds an API enabling a cleaner way to read the opp-level. Let's use
> the new API.
>
> Signed-off-by: Douglas Anderson <dianders@chromium.org>
> Reviewed-by: Jordan Crouse <jcrouse@codeaurora.org>
> ---
> Obviously this can't land until we have a tree that contains the patch
> adding the API. I believe that means we'll want to target this patch
> for 5.2. Luckily it's fine to wait since this patch has no functional
> changes--it's all cleanup.
>
> Changes in v2:
> - Split into two patches to facilitate landing.
>
> drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 17 ++++++-----------
> 1 file changed, 6 insertions(+), 11 deletions(-)
FWIW I think this patch is ready to land any time. That commit
5b93ac542301 ("OPP: Add support for parsing the 'opp-level' property")
is now in linux/master.
-Doug
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 1/2] drm/msm: Fix A6XX support for opp-level
2019-01-16 18:46 [PATCH v2 1/2] drm/msm: Fix A6XX support for opp-level Douglas Anderson
2019-01-16 18:46 ` [PATCH v2 2/2] drm/msm: Cleanup A6XX opp-level reading Douglas Anderson
@ 2019-01-16 19:45 ` Jordan Crouse
2019-01-16 23:32 ` Rob Clark
2 siblings, 0 replies; 6+ messages in thread
From: Jordan Crouse @ 2019-01-16 19:45 UTC (permalink / raw)
To: Douglas Anderson
Cc: Rob Clark, Bjorn Andersson, Stephen Boyd, Rajendra Nayak,
Andy Gross, linux-arm-msm, Viresh Kumar, Kristian H . Kristensen,
Colin Ian King, linux-kernel, dri-devel, Sharat Masetty,
David Airlie, freedreno, Mamta Shukla, Daniel Vetter
On Wed, Jan 16, 2019 at 10:46:21AM -0800, Douglas Anderson wrote:
> The bindings for Qualcomm opp levels changed after being Acked but
> before landing. Thus the code in the GPU driver that was relying on
> the old bindings is now broken.
>
> Let's change the code to match the new bindings by adjusting the old
> string 'qcom,level' to the new string 'opp-level'. See the patch
> ("dt-bindings: opp: Introduce opp-level bindings").
>
> NOTE: we will do additional cleanup to totally remove the string from
> the code and use the new dev_pm_opp_get_level() but we'll do it in a
> future patch. This will facilitate getting the important code fix in
> sooner without having to deal with cross-maintainer dependencies.
>
> This patch needs to land before the patch ("arm64: dts: sdm845: Add
> gpu and gmu device nodes") since if a tree contains the device tree
> patch but not this one you'll get a crash at bootup.
>
> Fixes: 4b565ca5a2cb ("drm/msm: Add A6XX device support")
> Signed-off-by: Douglas Anderson <dianders@chromium.org>
I agree that splitting these out make sense for the workflow.
Reviewed-by: Jordan Crouse <jcrouse@codeaurora.org>
> ---
>
> Changes in v2:
> - Split into two patches to facilitate landing.
>
> drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
> index 5beb83d1cf87..ce1b3cc4bf6d 100644
> --- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
> +++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
> @@ -944,7 +944,7 @@ static u32 a6xx_gmu_get_arc_level(struct device *dev, unsigned long freq)
> np = dev_pm_opp_get_of_node(opp);
>
> if (np) {
> - of_property_read_u32(np, "qcom,level", &val);
> + of_property_read_u32(np, "opp-level", &val);
> of_node_put(np);
> }
>
> --
> 2.20.1.97.g81188d93c3-goog
>
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH v2 1/2] drm/msm: Fix A6XX support for opp-level
2019-01-16 18:46 [PATCH v2 1/2] drm/msm: Fix A6XX support for opp-level Douglas Anderson
2019-01-16 18:46 ` [PATCH v2 2/2] drm/msm: Cleanup A6XX opp-level reading Douglas Anderson
2019-01-16 19:45 ` [PATCH v2 1/2] drm/msm: Fix A6XX support for opp-level Jordan Crouse
@ 2019-01-16 23:32 ` Rob Clark
2 siblings, 0 replies; 6+ messages in thread
From: Rob Clark @ 2019-01-16 23:32 UTC (permalink / raw)
To: Douglas Anderson
Cc: Jordan Crouse, Bjorn Andersson, Stephen Boyd, Rajendra Nayak,
Andy Gross, linux-arm-msm, Viresh Kumar, Kristian H . Kristensen,
Colin Ian King, Linux Kernel Mailing List, dri-devel,
Sharat Masetty, David Airlie, freedreno, Mamta Shukla,
Daniel Vetter
s
On Wed, Jan 16, 2019 at 1:46 PM Douglas Anderson <dianders@chromium.org> wrote:
>
> The bindings for Qualcomm opp levels changed after being Acked but
> before landing. Thus the code in the GPU driver that was relying on
> the old bindings is now broken.
>
> Let's change the code to match the new bindings by adjusting the old
> string 'qcom,level' to the new string 'opp-level'. See the patch
> ("dt-bindings: opp: Introduce opp-level bindings").
>
> NOTE: we will do additional cleanup to totally remove the string from
> the code and use the new dev_pm_opp_get_level() but we'll do it in a
> future patch. This will facilitate getting the important code fix in
> sooner without having to deal with cross-maintainer dependencies.
>
> This patch needs to land before the patch ("arm64: dts: sdm845: Add
> gpu and gmu device nodes") since if a tree contains the device tree
> patch but not this one you'll get a crash at bootup.
>
> Fixes: 4b565ca5a2cb ("drm/msm: Add A6XX device support")
> Signed-off-by: Douglas Anderson <dianders@chromium.org>
thanks, I've pulled the first into msm-next and I'll grab the 2nd once
dev_pm_opp_get_level() lands
BR,
-R
> ---
>
> Changes in v2:
> - Split into two patches to facilitate landing.
>
> drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
> index 5beb83d1cf87..ce1b3cc4bf6d 100644
> --- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
> +++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
> @@ -944,7 +944,7 @@ static u32 a6xx_gmu_get_arc_level(struct device *dev, unsigned long freq)
> np = dev_pm_opp_get_of_node(opp);
>
> if (np) {
> - of_property_read_u32(np, "qcom,level", &val);
> + of_property_read_u32(np, "opp-level", &val);
> of_node_put(np);
> }
>
> --
> 2.20.1.97.g81188d93c3-goog
>
^ permalink raw reply [flat|nested] 6+ messages in thread