[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <d2c4c6fc-c432-d122-1e90-3e3ef96eed72@gmail.com>
Date: Wed, 21 Dec 2022 19:43:44 +0300
From: Dmitry Osipenko <digetx@...il.com>
To: Sumit Gupta <sumitg@...dia.com>, treding@...dia.com,
krzysztof.kozlowski@...aro.org, dmitry.osipenko@...labora.com,
viresh.kumar@...aro.org, rafael@...nel.org, jonathanh@...dia.com,
robh+dt@...nel.org, linux-kernel@...r.kernel.org,
linux-tegra@...r.kernel.org, linux-pm@...r.kernel.org,
devicetree@...r.kernel.org
Subject: Re: [Patch v1 01/10] memory: tegra: add interconnect support for DRAM
scaling in Tegra234
21.12.2022 12:35, Sumit Gupta пишет:
>
>
> On 20/12/22 23:40, Dmitry Osipenko wrote:
>> External email: Use caution opening links or attachments
>>
>>
>> 20.12.2022 19:02, Sumit Gupta пишет:
>>> +static int tegra_emc_icc_get_init_bw(struct icc_node *node, u32
>>> *avg, u32 *peak)
>>> +{
>>> + *avg = 0;
>>> + *peak = 0;
>>> +
>>> + return 0;
>>> +}
>>
>> Looks wrong, you should add ICC support to all the drivers first and
>> only then enable ICC. I think you added this init_bw() to work around
>> the fact that ICC isn't supported by T234 drivers.
>
> If get_bw hook is not added then max freq is set due to 'INT_MAX' below.
>
> void icc_node_add(struct icc_node *node, struct icc_provider *provider)
> {
> ....
> /* get the initial bandwidth values and sync them with hardware */
> if (provider->get_bw) {
> provider->get_bw(node, &node->init_avg, &node->init_peak);
> } else {
> node->init_avg = INT_MAX;
> node->init_peak = INT_MAX;
> }
>
> So, will have to add the empty functions at least.
>
> static int tegra_emc_icc_get_init_bw(struct icc_node *node, u32 *avg,
> u32 *peak)
> {
> - *avg = 0;
> - *peak = 0;
> -
> return 0;
> }
>
> Support to all the client drivers can't be added at once as there are
> many drivers all with different requirements and handling. This patch
> series is the beginning to add the basic interconnect support in new
> Tegra SoC's. Support for more clients will be added later one by one or
> in batch.
This means that bandwidth management isn't working properly. You should
leave the freq to INT_MAX and fix the missing integer overflows in the
code if any, or read out the BW from FW.
Once you'll enable ICC for all drivers, it will start working.
Powered by blists - more mailing lists