All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Warren <swarren@wwwdotorg.org>
To: Viresh Kumar <viresh.kumar@linaro.org>
Cc: rjw@sisk.pl, swarren@nvidia.com, linaro-kernel@lists.linaro.org,
	patches@linaro.org, cpufreq@vger.kernel.org,
	linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org,
	mturquette@linaro.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 5/6] ARM: Tegra: start using cpufreq-cpu0 driver
Date: Wed, 07 Aug 2013 11:53:14 -0600	[thread overview]
Message-ID: <5202898A.6050006@wwwdotorg.org> (raw)
In-Reply-To: <CAKohpokOn4-RZE5mfoM+2p8jszWoGfOErrLShZmv86OgCMv+JA@mail.gmail.com>

On 08/07/2013 11:49 AM, Viresh Kumar wrote:
> On 7 August 2013 23:16, Stephen Warren <swarren@wwwdotorg.org> wrote:
>> On 08/07/2013 08:46 AM, Viresh Kumar wrote:
>>> cpufreq-cpu0 driver can be probed over DT only if a corresponding device node is
>>> created for the SoC which wants to use it. Lets create a platform device for
>>> cpufreq-cpu0 driver for Tegra.
>>>
>>> Also it removes the Kconfig entry responsible to compiling tegra-cpufreq driver
>>> and hence there will not be any conflicts between two cpufreq drivers.
>>
>>> diff --git a/arch/arm/mach-tegra/tegra.c b/arch/arm/mach-tegra/tegra.c
>>
>>>  static void __init tegra_dt_init(void)
>>>  {
>>> +     struct platform_device_info devinfo = { .name = "cpufreq-cpu0", };
>>>       struct soc_device_attribute *soc_dev_attr;
>>>       struct soc_device *soc_dev;
>>>       struct device *parent = NULL;
>>>
>>>       tegra_clocks_apply_init_table();
>>> +     platform_device_register_full(&devinfo);
>>
>> This seems awfully like going back to board files. Shouldn't something
>> that binds to the CPU nodes register the cpufreq device automatically,
>> based on the CPU's compatible value?
> 
> This link has got some information why we can't have a node for cpufreq
> or a compatibility value..
> 
> http://permalink.gmane.org/gmane.linux.kernel.cpufreq/9018

That link only describes why we shouldn't have a dedicated compatible
value for cpufreq. I certainly agree with that. However, I think it's
reasonable that whatever code binds to:

	compatible = "arm,cortex-a9";

... should instantiate any virtual devices that relate to the CPU.

Doing so would be similar to how the Tegra I2S driver instantiates the
internal struct device that ASoC needs for the PCM/DMA device, rather
than having board-dt-tegra20.c do it, like it would have done in
board-file days.

WARNING: multiple messages have this Message-ID (diff)
From: swarren@wwwdotorg.org (Stephen Warren)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 5/6] ARM: Tegra: start using cpufreq-cpu0 driver
Date: Wed, 07 Aug 2013 11:53:14 -0600	[thread overview]
Message-ID: <5202898A.6050006@wwwdotorg.org> (raw)
In-Reply-To: <CAKohpokOn4-RZE5mfoM+2p8jszWoGfOErrLShZmv86OgCMv+JA@mail.gmail.com>

On 08/07/2013 11:49 AM, Viresh Kumar wrote:
> On 7 August 2013 23:16, Stephen Warren <swarren@wwwdotorg.org> wrote:
>> On 08/07/2013 08:46 AM, Viresh Kumar wrote:
>>> cpufreq-cpu0 driver can be probed over DT only if a corresponding device node is
>>> created for the SoC which wants to use it. Lets create a platform device for
>>> cpufreq-cpu0 driver for Tegra.
>>>
>>> Also it removes the Kconfig entry responsible to compiling tegra-cpufreq driver
>>> and hence there will not be any conflicts between two cpufreq drivers.
>>
>>> diff --git a/arch/arm/mach-tegra/tegra.c b/arch/arm/mach-tegra/tegra.c
>>
>>>  static void __init tegra_dt_init(void)
>>>  {
>>> +     struct platform_device_info devinfo = { .name = "cpufreq-cpu0", };
>>>       struct soc_device_attribute *soc_dev_attr;
>>>       struct soc_device *soc_dev;
>>>       struct device *parent = NULL;
>>>
>>>       tegra_clocks_apply_init_table();
>>> +     platform_device_register_full(&devinfo);
>>
>> This seems awfully like going back to board files. Shouldn't something
>> that binds to the CPU nodes register the cpufreq device automatically,
>> based on the CPU's compatible value?
> 
> This link has got some information why we can't have a node for cpufreq
> or a compatibility value..
> 
> http://permalink.gmane.org/gmane.linux.kernel.cpufreq/9018

That link only describes why we shouldn't have a dedicated compatible
value for cpufreq. I certainly agree with that. However, I think it's
reasonable that whatever code binds to:

	compatible = "arm,cortex-a9";

... should instantiate any virtual devices that relate to the CPU.

Doing so would be similar to how the Tegra I2S driver instantiates the
internal struct device that ASoC needs for the PCM/DMA device, rather
than having board-dt-tegra20.c do it, like it would have done in
board-file days.

  reply	other threads:[~2013-08-07 17:53 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-07 14:46 [PATCH 0/6] Tegra: Use cpufreq-cpu0 driver Viresh Kumar
2013-08-07 14:46 ` Viresh Kumar
2013-08-07 14:46 ` [PATCH 1/6] clk: Tegra: Add CPU0 clock driver Viresh Kumar
2013-08-07 14:46   ` Viresh Kumar
2013-08-07 16:44   ` Mike Turquette
2013-08-07 16:44     ` Mike Turquette
2013-08-07 16:44     ` Mike Turquette
2013-08-07 17:38   ` Stephen Warren
2013-08-07 17:38     ` Stephen Warren
2013-08-07 17:45     ` Viresh Kumar
2013-08-07 17:45       ` Viresh Kumar
2013-08-07 17:48       ` Stephen Warren
2013-08-07 17:48         ` Stephen Warren
2013-08-07 17:54         ` Viresh Kumar
2013-08-07 17:54           ` Viresh Kumar
2013-08-07 18:50           ` Stephen Warren
2013-08-07 18:50             ` Stephen Warren
2013-08-08  2:42             ` Viresh Kumar
2013-08-08  2:42               ` Viresh Kumar
2013-08-08 18:50               ` Stephen Warren
2013-08-08 18:50                 ` Stephen Warren
2013-08-09  3:19                 ` Viresh Kumar
2013-08-09  3:19                   ` Viresh Kumar
2013-08-07 14:46 ` [PATCH 2/6] ARM: Tegra: Add CPU's OPPs for using cpufreq-cpu0 driver Viresh Kumar
2013-08-07 14:46   ` Viresh Kumar
2013-08-07 17:42   ` Stephen Warren
2013-08-07 17:42     ` Stephen Warren
2013-08-07 18:06     ` Viresh Kumar
2013-08-07 18:06       ` Viresh Kumar
2013-08-07 18:55       ` Stephen Warren
2013-08-07 18:55         ` Stephen Warren
2013-08-08  2:57         ` Viresh Kumar
2013-08-08  2:57           ` Viresh Kumar
2013-08-08 18:55           ` Stephen Warren
2013-08-08 18:55             ` Stephen Warren
2013-08-08 13:58         ` Lucas Stach
2013-08-08 13:58           ` Lucas Stach
2013-08-08 13:58           ` Lucas Stach
2013-08-08 14:11           ` Viresh Kumar
2013-08-08 14:11             ` Viresh Kumar
2013-08-08 14:22             ` Lucas Stach
2013-08-08 14:22               ` Lucas Stach
2013-08-08 14:37               ` Viresh Kumar
2013-08-08 14:37                 ` Viresh Kumar
2013-08-08 15:52                 ` Nishanth Menon
2013-08-08 15:52                   ` Nishanth Menon
2013-08-08 15:52                   ` Nishanth Menon
2013-08-07 14:46 ` [PATCH 3/6] ARM: Tegra: Enable OPP library Viresh Kumar
2013-08-07 14:46   ` Viresh Kumar
2013-08-07 17:43   ` Stephen Warren
2013-08-07 17:43     ` Stephen Warren
2013-08-07 18:08     ` Viresh Kumar
2013-08-07 18:08       ` Viresh Kumar
2013-08-07 14:46 ` [PATCH 4/6] ARM: Tegra: defconfig: select cpufreq-cpu0 driver Viresh Kumar
2013-08-07 14:46   ` Viresh Kumar
2013-08-07 14:46 ` [PATCH 5/6] ARM: Tegra: start using " Viresh Kumar
2013-08-07 14:46   ` Viresh Kumar
2013-08-07 17:46   ` Stephen Warren
2013-08-07 17:46     ` Stephen Warren
2013-08-07 17:49     ` Viresh Kumar
2013-08-07 17:49       ` Viresh Kumar
2013-08-07 17:53       ` Stephen Warren [this message]
2013-08-07 17:53         ` Stephen Warren
2013-08-07 17:59         ` Viresh Kumar
2013-08-07 17:59           ` Viresh Kumar
2013-08-07 18:51           ` Stephen Warren
2013-08-07 18:51             ` Stephen Warren
2013-08-08  2:48             ` Viresh Kumar
2013-08-08  2:48               ` Viresh Kumar
2013-08-07 14:46 ` [PATCH 6/6] cpufreq: Tegra: Remove tegra-cpufreq driver Viresh Kumar
2013-08-07 14:46   ` Viresh Kumar
2013-08-08  8:31 ` [PATCH 0/6] Tegra: Use cpufreq-cpu0 driver Richard Zhao
2013-08-08  8:31   ` Richard Zhao
2013-08-08  8:33   ` Viresh Kumar
2013-08-08  8:33     ` Viresh Kumar

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=5202898A.6050006@wwwdotorg.org \
    --to=swarren@wwwdotorg.org \
    --cc=cpufreq@vger.kernel.org \
    --cc=linaro-kernel@lists.linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mturquette@linaro.org \
    --cc=patches@linaro.org \
    --cc=rjw@sisk.pl \
    --cc=swarren@nvidia.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.