From: Leonard Crestez <leonard.crestez@nxp.com>
To: "Martin Kepplinger" <martink@posteo.de>,
"Guido Günther" <agx@sigxcpu.org>
Cc: "Mark Rutland" <mark.rutland@arm.com>,
"Artur Świgoń" <a.swigon@partner.samsung.com>,
"Jacky Bai" <ping.bai@nxp.com>,
"Rafael J. Wysocki" <rafael@kernel.org>,
"Viresh Kumar" <viresh.kumar@linaro.org>,
"Michael Turquette" <mturquette@baylibre.com>,
"Angus Ainslie" <angus@akkea.ca>,
"MyungJoo Ham" <myungjoo.ham@samsung.com>,
"Abel Vesa" <abel.vesa@nxp.com>,
"Anson Huang" <anson.huang@nxp.com>,
"Krzysztof Kozlowski" <krzk@kernel.org>,
"Chanwoo Choi" <cw00.choi@samsung.com>,
"Matthias Kaehlcke" <mka@chromium.org>,
dl-linux-imx <linux-imx@nxp.com>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
"Rob Herring" <robh+dt@kernel.org>,
"Silvano Di Ninno" <silvano.dininno@nxp.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"Aisheng Dong" <aisheng.dong@nxp.com>,
"Saravana Kannan" <saravanak@google.com>,
"Stephen Boyd" <sboyd@kernel.org>,
"Kyungmin Park" <kyungmin.park@samsung.com>,
"kernel@pengutronix.de" <kernel@pengutronix.de>,
"Fabio Estevam" <fabio.estevam@nxp.com>,
"Shawn Guo" <shawnguo@kernel.org>,
"Georgi Djakov" <georgi.djakov@linaro.org>,
"Alexandre Bailon" <abailon@baylibre.com>
Subject: Re: [PATCH 0/8] interconnect: Add imx support via devfreq
Date: Tue, 31 Mar 2020 05:39:16 +0000 [thread overview]
Message-ID: <VI1PR04MB69417C069AEE65B1195C100FEEC80@VI1PR04MB6941.eurprd04.prod.outlook.com> (raw)
In-Reply-To: 9a84e745-3560-cb8a-4b1a-139b914c5a95@posteo.de
On 2020-03-30 11:52 AM, Martin Kepplinger wrote:
> On 27.03.20 12:36, Guido Günther wrote:
>> Hi Martin,
>> On Thu, Mar 26, 2020 at 02:55:27PM +0100, Martin Kepplinger wrote:
>>> On 26.03.20 03:16, Leonard Crestez wrote:
>>>> This series adds interconnect scaling support for imx8m series chips. It uses a
>>>> per-SOC interconnect provider layered on top of multiple instances of devfreq
>>>> for scalable nodes along the interconnect.
>>>>
>>>> Existing qcom interconnect providers mostly translate bandwidth requests into
>>>> firmware calls but equivalent firmware on imx8m is much thinner. Scaling
>>>> support for individual nodes is implemented as distinct devfreq drivers
>>>> instead.
>>>>
>>>> The imx interconnect provider doesn't communicate with devfreq directly
>>>> but rather computes "minimum frequencies" for nodes along the path and
>>>> creates dev_pm_qos requests.
>>>>
>>>> Since there is no single devicetree node that can represent the
>>>> "interconnect" the main NOC is picked as the "interconnect provider" and
>>>> will probe the interconnect platform device if #interconnect-cells is
>>>> present. This avoids introducing "virtual" devices but it means that DT
>>>> bindings of main NOC includes properties for both devfreq and
>>>> interconnect.
>>>>
>>>> Only the ddrc and main noc are scalable right now but more can be added.
>>>>
>>>> Also available on a github branch (with various unrelated changes):
>>>> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcdleonard%2Flinux%2Ftree%2Fnext&data=02%7C01%7Cleonard.crestez%40nxp.com%7C52eb55181dce469eb85608d7d487bb93%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637211551737394247&sdata=A0l5FBF%2BT3k7H5HMtRMfX8WfVSqQm9jijgr8aexCoUA%3D&reserved=0
>>>> Testing currently requires NXP branch of atf+uboot
>>>>
>>>> Martin: I believe you should be able to use this to control DRAM
>>>> frequency from video by just adding interconnect consumer code to
>>>> nwl-dsi. Sample code:
>>>> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcdleonard%2Flinux%2Fcommit%2F43772762aa5045f1ce5623740f9a4baef988d083&data=02%7C01%7Cleonard.crestez%40nxp.com%7C52eb55181dce469eb85608d7d487bb93%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637211551737394247&sdata=%2B%2BGWQTaQLLk98yFRHJ0o3Sks9DHGuKv7twBvn89f1Tg%3D&reserved=0
>>>> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcdleonard%2Flinux%2Fcommit%2F7b601e981b1f517b5d98b43bde292972ded13086&data=02%7C01%7Cleonard.crestez%40nxp.com%7C52eb55181dce469eb85608d7d487bb93%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637211551737394247&sdata=Jy2%2FI3CE1H3ilmLvZAVhjlPHO3KRNK6%2F9dX%2BS124ROA%3D&reserved=0
>>>>
>>>
>>> Thanks for updating this series Leonard! A few questions for my
>>> understanding before trying to test:
>>>
>>> Isn't the ddrc_opp_table missing in these additions to the DT? That's
>>> what I want to scale after all.
DDRC OPP table belongs in board file because it can vary with RAM type
on boards.
>>> If I want to keep calling the "request", now icc_set_bw(), in nwl-dsi:
>>> I'd add an "interconnects" property to the node, but what would be my
>>> interconnect master? i.e.: interconnects = <&noc master? &noc
>>> IMX8MQ_ICS_DRAM>; At least it's not obvious to me from
>>> interconnect/imx/imx8mq.c
>>
>> The NWL DSI host controller is fed by DCSS or mxsfb so any bandwidth
>> requirements should (as far as I understand things) go into the display
>> controller driver since that's what fetches from RAM.
>> Cheers,
>> -- Guido
This is correct.
> Thanks a lot Leonard and Guido! Here's the tree I'm running, which is
> your patches based on Linus' tree, with icc request in mxsfb:
>
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fsource.puri.sm%2Fmartin.kepplinger%2Flinux-next%2Fcommits%2F5.6-rc7%2Flibrem5__integration_devfreq1&data=02%7C01%7Cleonard.crestez%40nxp.com%7C52eb55181dce469eb85608d7d487bb93%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637211551737394247&sdata=FM8JoOuNa2gg09XVJ%2FLTLqK9rlL4hAwig2iM9cMYFhg%3D&reserved=0
>
> The path from icc via pm_qos to devfreq does work (which is great) -
> however only after setting the minimum frequencies via a governor - I
> set the "powersave" governor.
>
> After that, frequencies are both set to high / low correctly.
>
> My impression was that I should be able to use the "passive" governor (a
> passive devfreq device?). What am I missing with using devfreq
> correctly? Or do I already?
The devfreq governor is something else: it's used to make one devfreq
device match frequencies with another devfreq device.
Setting the default governor to "powersave" is correct and roughly
matches behavior in NXP kernel.
> Tested-by: Martin Kepplinger <martin.kepplinger@puri.sm>
Thanks!
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
prev parent reply other threads:[~2020-03-31 5:39 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-26 2:16 [PATCH 0/8] interconnect: Add imx support via devfreq Leonard Crestez
2020-03-26 2:16 ` [PATCH 1/8] dt-bindings: interconnect: Add bindings for imx8m noc Leonard Crestez
2020-03-30 15:39 ` Rob Herring
2020-03-26 2:16 ` [PATCH 2/8] PM / devfreq: Add generic imx bus scaling driver Leonard Crestez
2020-03-31 23:04 ` Chanwoo Choi
2020-04-01 14:20 ` Leonard Crestez
2020-04-01 22:57 ` Chanwoo Choi
2020-04-02 9:53 ` Leonard Crestez
2020-04-03 6:23 ` Chanwoo Choi
2020-03-26 2:16 ` [PATCH 3/8] PM / devfreq: imx: Register interconnect device Leonard Crestez
2020-03-31 23:08 ` Chanwoo Choi
2020-04-01 14:19 ` Leonard Crestez
2020-03-26 2:16 ` [PATCH 4/8] interconnect: Add imx core driver Leonard Crestez
2020-03-26 2:16 ` [PATCH 5/8] interconnect: imx: Add platform driver for imx8mm Leonard Crestez
2020-03-26 2:16 ` [PATCH 6/8] interconnect: imx: Add platform driver for imx8mq Leonard Crestez
2020-03-26 2:16 ` [PATCH 7/8] interconnect: imx: Add platform driver for imx8mn Leonard Crestez
2020-03-26 2:16 ` [PATCH 8/8] arm64: dts: imx8m: Add NOC nodes Leonard Crestez
2020-03-26 13:55 ` [PATCH 0/8] interconnect: Add imx support via devfreq Martin Kepplinger
2020-03-27 11:36 ` Guido Günther
2020-03-30 8:52 ` Martin Kepplinger
2020-03-31 5:39 ` Leonard Crestez [this message]
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=VI1PR04MB69417C069AEE65B1195C100FEEC80@VI1PR04MB6941.eurprd04.prod.outlook.com \
--to=leonard.crestez@nxp.com \
--cc=a.swigon@partner.samsung.com \
--cc=abailon@baylibre.com \
--cc=abel.vesa@nxp.com \
--cc=agx@sigxcpu.org \
--cc=aisheng.dong@nxp.com \
--cc=angus@akkea.ca \
--cc=anson.huang@nxp.com \
--cc=cw00.choi@samsung.com \
--cc=devicetree@vger.kernel.org \
--cc=fabio.estevam@nxp.com \
--cc=georgi.djakov@linaro.org \
--cc=kernel@pengutronix.de \
--cc=krzk@kernel.org \
--cc=kyungmin.park@samsung.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-imx@nxp.com \
--cc=linux-pm@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=martink@posteo.de \
--cc=mka@chromium.org \
--cc=mturquette@baylibre.com \
--cc=myungjoo.ham@samsung.com \
--cc=ping.bai@nxp.com \
--cc=rafael@kernel.org \
--cc=robh+dt@kernel.org \
--cc=saravanak@google.com \
--cc=sboyd@kernel.org \
--cc=shawnguo@kernel.org \
--cc=silvano.dininno@nxp.com \
--cc=viresh.kumar@linaro.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;
as well as URLs for NNTP newsgroup(s).