From: Lina Iyer <lina.iyer@linaro.org>
To: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: khilman@linaro.org, sboyd@codeaurora.org, galak@codeaurora.org,
linux-arm-msm@vger.kernel.org, linux-pm@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, lorenzo.pieralisi@arm.com,
msivasub@codeaurora.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v9 2/9] qcom: spm: Add Subsystem Power Manager driver
Date: Wed, 26 Nov 2014 08:20:03 -0700 [thread overview]
Message-ID: <20141126152003.GC594@linaro.org> (raw)
In-Reply-To: <5475B724.80202@linaro.org>
On Wed, Nov 26 2014 at 04:19 -0700, Daniel Lezcano wrote:
>On 11/19/2014 06:43 PM, Lina Iyer wrote:
>>On Fri, Nov 14 2014 at 08:56 -0700, Daniel Lezcano wrote:
>>>On 10/25/2014 01:40 AM, Lina Iyer wrote:
>>
>
>>>>+
>>>>+ if ((cpu > -1) && !cpuidle_drv_init) {
>>>>+ platform_device_register(&qcom_cpuidle_device);
>>>>+ cpuidle_drv_init = true;
>>>>+ }
>>>
>>>'cpu' is always > -1.
>>>
>>OK. I was hoping to use -1 for not a cpu (i.e, L2) SPM. For now, I will
>>change.
>>
>>
>>>If the 'spm_get_drv' succeed, cpu is no longer equal to -EINVAL.
>>>Otherwise we do not reach this point because we return right after
>>>spm_get_drv with an error.
>>>
>>>Adding the platform_device_register depending in a static variable is
>>>not very nice. Why not add it explicitely in a separate init routine
>>>we know it will be called one time (eg. at the same place than cpufreq
>>>is) ?
>>>
>>We want to register the cpuidle device only if any of the SPM devices
>>have been probed.
>>
>>Ideally, Stephen and I would like to register cpuidle device separately
>>for each CPU SPM, when it is probed, so we would invoke cpuidle driver
>>and thereby the low power modes only for those cpus. However, the
>>complexity to do that, AFAICS, is very complex. I would need to change
>>quite a bit of the framework and in the cpuidle driver, I may have to
>>stray from the recommended format.
>>
>>Here I set up cpuidle device, when I know atleast 1 cpu is ready to
>>allow low power modes.
>
>Yes, instead of using the generic cpuidle_register function, you can
>use the low level functions for that.
>
>One call to cpuidle_register_driver in a single place and then
>cpuidle_register_device for each spm probe.
>
>Wouldn't make sense ?
Yes, but there are some assumptions if we dont use
MULTIPLE_CPUIDLE_DRIVERS like this -
static void __cpuidle_driver_init(struct cpuidle_driver *drv)
{
int i;
drv->refcnt = 0; // Overwrites any cpuidle_driver_get()
The clean way was to use MULTIPLE_CPUIDLE_DRIVERS, which seems like an
incorrect use for this SoC.
Thanks,
Lina
WARNING: multiple messages have this Message-ID (diff)
From: lina.iyer@linaro.org (Lina Iyer)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v9 2/9] qcom: spm: Add Subsystem Power Manager driver
Date: Wed, 26 Nov 2014 08:20:03 -0700 [thread overview]
Message-ID: <20141126152003.GC594@linaro.org> (raw)
In-Reply-To: <5475B724.80202@linaro.org>
On Wed, Nov 26 2014 at 04:19 -0700, Daniel Lezcano wrote:
>On 11/19/2014 06:43 PM, Lina Iyer wrote:
>>On Fri, Nov 14 2014 at 08:56 -0700, Daniel Lezcano wrote:
>>>On 10/25/2014 01:40 AM, Lina Iyer wrote:
>>
>
>>>>+
>>>>+ if ((cpu > -1) && !cpuidle_drv_init) {
>>>>+ platform_device_register(&qcom_cpuidle_device);
>>>>+ cpuidle_drv_init = true;
>>>>+ }
>>>
>>>'cpu' is always > -1.
>>>
>>OK. I was hoping to use -1 for not a cpu (i.e, L2) SPM. For now, I will
>>change.
>>
>>
>>>If the 'spm_get_drv' succeed, cpu is no longer equal to -EINVAL.
>>>Otherwise we do not reach this point because we return right after
>>>spm_get_drv with an error.
>>>
>>>Adding the platform_device_register depending in a static variable is
>>>not very nice. Why not add it explicitely in a separate init routine
>>>we know it will be called one time (eg. at the same place than cpufreq
>>>is) ?
>>>
>>We want to register the cpuidle device only if any of the SPM devices
>>have been probed.
>>
>>Ideally, Stephen and I would like to register cpuidle device separately
>>for each CPU SPM, when it is probed, so we would invoke cpuidle driver
>>and thereby the low power modes only for those cpus. However, the
>>complexity to do that, AFAICS, is very complex. I would need to change
>>quite a bit of the framework and in the cpuidle driver, I may have to
>>stray from the recommended format.
>>
>>Here I set up cpuidle device, when I know atleast 1 cpu is ready to
>>allow low power modes.
>
>Yes, instead of using the generic cpuidle_register function, you can
>use the low level functions for that.
>
>One call to cpuidle_register_driver in a single place and then
>cpuidle_register_device for each spm probe.
>
>Wouldn't make sense ?
Yes, but there are some assumptions if we dont use
MULTIPLE_CPUIDLE_DRIVERS like this -
static void __cpuidle_driver_init(struct cpuidle_driver *drv)
{
int i;
drv->refcnt = 0; // Overwrites any cpuidle_driver_get()
The clean way was to use MULTIPLE_CPUIDLE_DRIVERS, which seems like an
incorrect use for this SoC.
Thanks,
Lina
next prev parent reply other threads:[~2014-11-26 15:20 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-24 23:40 [PATCH v9 0/9] cpuidle driver for QCOM SoCs: 8064, 8074, 8084 Lina Iyer
2014-10-24 23:40 ` Lina Iyer
2014-10-24 23:40 ` [PATCH v9 1/9] qcom: scm: scm_set_warm_boot_addr() to set the warmboot address Lina Iyer
2014-10-24 23:40 ` Lina Iyer
2014-11-14 8:30 ` Daniel Lezcano
2014-11-14 8:30 ` Daniel Lezcano
2014-11-14 16:33 ` Lina Iyer
2014-11-14 16:33 ` Lina Iyer
2014-10-24 23:40 ` [PATCH v9 2/9] qcom: spm: Add Subsystem Power Manager driver Lina Iyer
2014-10-24 23:40 ` Lina Iyer
2014-11-14 15:56 ` Daniel Lezcano
2014-11-14 15:56 ` Daniel Lezcano
2014-11-19 17:43 ` Lina Iyer
2014-11-19 17:43 ` Lina Iyer
2014-11-26 11:19 ` Daniel Lezcano
2014-11-26 11:19 ` Daniel Lezcano
2014-11-26 15:20 ` Lina Iyer [this message]
2014-11-26 15:20 ` Lina Iyer
2014-11-26 15:22 ` Lina Iyer
2014-11-26 15:22 ` Lina Iyer
2014-11-14 22:46 ` Stephen Boyd
2014-11-14 22:46 ` Stephen Boyd
2014-11-18 16:56 ` Lina Iyer
2014-11-18 16:56 ` Lina Iyer
2014-11-18 20:28 ` Stephen Boyd
2014-11-18 20:28 ` Stephen Boyd
2014-11-17 21:32 ` Daniel Lezcano
2014-11-17 21:32 ` Daniel Lezcano
2014-11-18 18:00 ` Lina Iyer
2014-11-18 18:00 ` Lina Iyer
2014-11-18 19:39 ` Bjorn Andersson
2014-11-18 19:39 ` Bjorn Andersson
2014-11-26 18:04 ` Kevin Hilman
2014-11-26 18:04 ` Kevin Hilman
2014-11-26 21:25 ` Daniel Lezcano
2014-11-26 21:25 ` Daniel Lezcano
2014-10-24 23:40 ` [PATCH v9 3/9] arm: dts: qcom: Add power-controller device node for 8974 Krait CPUs Lina Iyer
2014-10-24 23:40 ` Lina Iyer
2014-10-24 23:40 ` [PATCH v9 4/9] arm: dts: qcom: Add power-controller device node for 8084 " Lina Iyer
2014-10-24 23:40 ` Lina Iyer
2014-10-24 23:40 ` [PATCH v9 5/9] arm: dts: qcom: Update power-controller device node for 8064 " Lina Iyer
2014-10-24 23:40 ` Lina Iyer
2014-10-24 23:40 ` [PATCH v9 6/9] qcom: cpuidle: Add cpuidle driver for QCOM cpus Lina Iyer
2014-10-24 23:40 ` Lina Iyer
2014-11-16 21:20 ` Daniel Lezcano
2014-11-16 21:20 ` Daniel Lezcano
2014-11-17 18:30 ` Lina Iyer
2014-11-17 18:30 ` Lina Iyer
2014-11-17 17:39 ` Lorenzo Pieralisi
2014-11-17 17:39 ` Lorenzo Pieralisi
2014-11-17 22:15 ` Lina Iyer
2014-11-17 22:15 ` Lina Iyer
2014-10-24 23:40 ` [PATCH v9 7/9] arm: dts: qcom: Add idle states device nodes for 8974 Lina Iyer
2014-10-24 23:40 ` Lina Iyer
2014-10-24 23:40 ` [PATCH v9 8/9] arm: dts: qcom: Add idle states device nodes for 8084 Lina Iyer
2014-10-24 23:40 ` Lina Iyer
2014-10-24 23:40 ` [PATCH v9 9/9] arm: dts: qcom: Add idle state device nodes for 8064 Lina Iyer
2014-10-24 23:40 ` Lina Iyer
2014-10-27 9:15 ` [PATCH v9 0/9] cpuidle driver for QCOM SoCs: 8064, 8074, 8084 Ivan T. Ivanov
2014-10-27 9:15 ` Ivan T. Ivanov
2014-10-27 14:45 ` Lina Iyer
2014-10-27 14:45 ` Lina Iyer
2014-11-13 20:25 ` Lina Iyer
2014-11-13 20:25 ` Lina Iyer
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=20141126152003.GC594@linaro.org \
--to=lina.iyer@linaro.org \
--cc=daniel.lezcano@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=galak@codeaurora.org \
--cc=khilman@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=lorenzo.pieralisi@arm.com \
--cc=msivasub@codeaurora.org \
--cc=sboyd@codeaurora.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.