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 v14 03/10] qcom: spm: Add Subsystem Power Manager driver
Date: Wed, 3 Dec 2014 07:55:08 -0700 [thread overview]
Message-ID: <20141203145508.GJ499@linaro.org> (raw)
In-Reply-To: <20141203143122.GH499@linaro.org>
On Wed, Dec 03 2014 at 07:31 -0700, Lina Iyer wrote:
>On Wed, Dec 03 2014 at 02:11 -0700, Daniel Lezcano wrote:
>>On 12/03/2014 12:05 AM, Lina Iyer wrote:
>>>On Tue, Dec 02 2014 at 10:40 -0700, Lina Iyer wrote:
>>>+
>>>[...]
>>
>>[ ... ]
>>
>>>>+static int __init qcom_spm_init(void)
>>>>+{
>>>>+ int ret;
>>>>+
>>>>+ /*
>>>>+ * cpuidle driver need to registered before the cpuidle device
>>>>+ * for any cpu. Register the device for the the cpuidle driver.
>>>>+ */
>>>>+ ret = platform_device_register(&qcom_cpuidle_drv);
>>>>+ if (ret)
>>>>+ return ret;
>>>Stephen pointed out that we would have the platform device lying around
>>>on a non-QCOM device when using multi_v7_defconfig.
>>
>>Perhaps I am missing the point, but this is not supposed to happen, no ?
>>
>This would happen, since the file would compile on multi_v7 and we would
>initialize and register this device regardless. The cpuidle-qcom.c
>driver probe would bail out looking for a matching compatible property.
>So we would not register a cpuidle driver but the device would lay
>around.
>
Not the best thing to do, but I noticed that ACPI driver does reference
count to register cpuidle driver for the first device and remove them as
the reference count decreases. I am not sure, if we need to reference
count here, since the SPM devices themselves are not removable.
>>>So instead of doing this here, we could do this in the probe..
>>>
>>>if (!cpuidle_get_driver()) {
>>> int ret = platform_device_register(&qcom_cpuidle_drv);
>>> if (ret)
>>> return ret;
>>>}
>>>
>>>Would that be okay?
>>>
>>>The successful probe indicates that we are on a QCOM SoC, and we have not
>>>registered a cpuidle_driver before this.
>>>
>>>Thanks,
>>>Lina
>>>
>>>>+
>>>>+ return platform_driver_register(&spm_driver);
>>>>+}
>>>>+module_init(qcom_spm_init);
>>>>+
>>>>+MODULE_LICENSE("GPL v2");
>>>>+MODULE_DESCRIPTION("SAW power controller driver");
>>>>+MODULE_ALIAS("platform:saw");
>>>>diff --git a/include/soc/qcom/pm.h b/include/soc/qcom/pm.h
>>>>new file mode 100644
>>>>index 0000000..d9a56d7
>>>>--- /dev/null
>>>>+++ b/include/soc/qcom/pm.h
>>>>@@ -0,0 +1,31 @@
>>>>+/*
>>>>+ * Copyright (c) 2009-2014, The Linux Foundation. All rights reserved.
>>>>+ *
>>>>+ * This software is licensed under the terms of the GNU General Public
>>>>+ * License version 2, as published by the Free Software Foundation, and
>>>>+ * may be copied, distributed, and modified under those terms.
>>>>+ *
>>>>+ * This program is distributed in the hope that it will be useful,
>>>>+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
>>>>+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
>>>>+ * GNU General Public License for more details.
>>>>+ *
>>>>+ */
>>>>+
>>>>+#ifndef __QCOM_PM_H
>>>>+#define __QCOM_PM_H
>>>>+
>>>>+enum pm_sleep_mode {
>>>>+ PM_SLEEP_MODE_STBY,
>>>>+ PM_SLEEP_MODE_RET,
>>>>+ PM_SLEEP_MODE_SPC,
>>>>+ PM_SLEEP_MODE_PC,
>>>>+ PM_SLEEP_MODE_NR,
>>>>+};
>>>>+
>>>>+struct qcom_cpu_pm_ops {
>>>>+ int (*standby)(void *data);
>>>>+ int (*spc)(void *data);
>>>>+};
>>>>+
>>>>+#endif /* __QCOM_PM_H */
>>>>--
>>>>2.1.0
>>>>
>>
>>
>>--
>><http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
>>
>>Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
>><http://twitter.com/#!/linaroorg> Twitter |
>><http://www.linaro.org/linaro-blog/> Blog
>>
next prev parent reply other threads:[~2014-12-03 14:55 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-02 17:39 [PATCH v14 00/10] cpuidle driver for QCOM SoCs: 8064, 8074, 8084 Lina Iyer
2014-12-02 17:39 ` [PATCH v14 01/10] qcom: scm: Move scm-boot files to drivers/soc/qcom/ and include/soc/qcom Lina Iyer
2014-12-02 17:39 ` [PATCH v14 02/10] qcom: scm: Add SCM warmboot support for quad core SoCs Lina Iyer
2014-12-02 17:39 ` [PATCH v14 03/10] qcom: spm: Add Subsystem Power Manager driver Lina Iyer
2014-12-02 23:05 ` Lina Iyer
2014-12-03 9:11 ` Daniel Lezcano
2014-12-03 14:31 ` Lina Iyer
2014-12-03 14:55 ` Lina Iyer [this message]
2014-12-03 20:35 ` Arnd Bergmann
2014-12-04 8:52 ` Daniel Lezcano
2014-12-04 9:01 ` Arnd Bergmann
2014-12-04 16:28 ` Lina Iyer
2014-12-04 18:20 ` Arnd Bergmann
2014-12-05 15:45 ` Lina Iyer
2014-12-16 14:39 ` Arnd Bergmann
2014-12-16 14:12 ` Daniel Lezcano
2014-12-16 14:38 ` Arnd Bergmann
2014-12-16 19:18 ` Stephen Boyd
2014-12-16 19:44 ` Arnd Bergmann
2014-12-17 15:22 ` Lina Iyer
2014-12-17 13:15 ` Daniel Lezcano
2014-12-17 14:04 ` Lorenzo Pieralisi
2014-12-02 17:39 ` [PATCH v14 04/10] arm: dts: qcom: Add power-controller device node for 8074 Krait CPUs Lina Iyer
2014-12-02 17:39 ` [PATCH v14 05/10] arm: dts: qcom: Add power-controller device node for 8084 " Lina Iyer
2014-12-02 17:39 ` [PATCH v14 06/10] arm: dts: qcom: Update power-controller device node for 8064 " Lina Iyer
2014-12-02 17:39 ` [PATCH v14 07/10] qcom: cpuidle: Add cpuidle driver for QCOM cpus Lina Iyer
2014-12-02 17:39 ` [PATCH v14 08/10] arm: dts: qcom: Add idle states device nodes for 8074 Lina Iyer
2014-12-02 17:39 ` [PATCH v14 09/10] arm: dts: qcom: Add idle states device nodes for 8084 Lina Iyer
2014-12-02 17:39 ` [PATCH v14 10/10] arm: dts: qcom: Add idle state device nodes for 8064 Lina Iyer
2014-12-17 18:14 ` [PATCH v14 00/10] cpuidle driver for QCOM SoCs: 8064, 8074, 8084 Kevin Hilman
2014-12-17 18: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=20141203145508.GJ499@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 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).