From: Scott Wood <scottwood@freescale.com>
To: Scott Wood <scottwood@freescale.com>
Cc: <linuxppc-dev@lists.ozlabs.org>, <linux-kernel@vger.kernel.org>,
<Jason.Jin@freescale.com>
Subject: Re: [PATCH v2,2/5] powerpc/rcpm: add RCPM driver
Date: Fri, 28 Aug 2015 08:40:22 +0800 [thread overview]
Message-ID: <1440722422.31670.0@remotesmtp.freescale.net> (raw)
In-Reply-To: <20150826203539.GA10582@home.buserror.net>
On Thu, Aug 27, 2015 at 4:35 AM, Scott Wood <scottwood@freescale.com>
wrote:
> On Wed, Aug 26, 2015 at 08:09:45PM +0800, Chenhui Zhao wrote:
>> +#ifdef CONFIG_PPC_BOOK3E
>> +static void qoriq_disable_thread(int cpu)
>> +{
>> + int hw_cpu = get_hard_smp_processor_id(cpu);
>> + int thread = cpu_thread_in_core(hw_cpu);
>> +
>> + mtspr(SPRN_TENC, TEN_THREAD(thread));
>> +}
>> +#endif
>
> This file is always used on book3e. If the intent is to only build
> this
> on 64-bit, use CONFIG_PPC64 rather than relying on the fact that this
> one
> of the confusing mess of BOOKE/BOOK3E symbols is 64-bit-only.
OK. Will use CONFIG_PPC64.
>
>> +static void rcpm_v2_cpu_die(int cpu)
>> +{
>> +#ifdef CONFIG_PPC_BOOK3E
>> + int primary;
>> +
>> + if (threads_per_core == 2) {
>> + primary = cpu_first_thread_sibling(cpu);
>> + if (cpu_is_offline(primary) && cpu_is_offline(primary + 1)) {
>> + /* if both threads are offline, put the cpu in PH20 */
>> + rcpm_v2_cpu_enter_state(cpu, E500_PM_PH20);
>> + } else {
>> + /* if only one thread is offline, disable the thread */
>> + qoriq_disable_thread(cpu);
>> + }
>> + }
>> +#endif
>> +
>> + if (threads_per_core == 1) {
>> + rcpm_v2_cpu_enter_state(cpu, E500_PM_PH20);
>> + return;
>> + }
>> +}
>
> That "return;" adds nothing, and it's even more awkward having it on
> the
> one-thread case but not the two-thread case.
Will get rid of it.
>
>
>> +static void rcpm_v1_cpu_up_prepare(int cpu)
>> +{
>> + rcpm_v1_cpu_exit_state(cpu, E500_PM_PH15);
>> + rcpm_v1_irq_unmask(cpu);
>> +}
>> +
>> +static void rcpm_v2_cpu_exit_state(int cpu, int state)
>> +{
>> + int hw_cpu = get_hard_smp_processor_id(cpu);
>> + u32 mask = 1 << cpu_core_index_of_thread(hw_cpu);
>
> Are you sure cpu_core_index_of_thread() is supposed to take a hardware
> cpu id? The only current user, pseries_energy.c, has the comment
> "Convert logical cpu number to core number".
Here, the method of getting core index of thread is same for physical
and logical.
So use this existed function to do the job.
>
>> +static const struct of_device_id rcpm_matches[] = {
>> + {
>> + .compatible = "fsl,qoriq-rcpm-1.0",
>> + .data = (void *)&qoriq_rcpm_v1_ops,
>> + },
>> + {
>> + .compatible = "fsl,qoriq-rcpm-2.0",
>> + .data = (void *)&qoriq_rcpm_v2_ops,
>> + },
>> + {
>> + .compatible = "fsl,qoriq-rcpm-2.1",
>> + .data = (void *)&qoriq_rcpm_v2_ops,
>> + },
>> + {},
>> +};
>
> Unnecessary (and const-unsafe) casts.
>
>
>> +
>> +int __init fsl_rcpm_init(void)
>> +{
>> + struct device_node *np;
>> + const struct of_device_id *match;
>> + void __iomem *base;
>> +
>> + np = of_find_matching_node_and_match(NULL, rcpm_matches, &match);
>> + if (!np) {
>> + pr_err("can't find the rcpm node.\n");
>> + return -ENODEV;
>> + }
>
> It's not an error for the device tree node to not have this.
>
> -Scott
Thanks.
-Chenhui
next prev parent reply other threads:[~2015-08-28 0:40 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-26 12:09 [PATCH v2,1/5] powerpc/cache: add cache flush operation for various e500 Chenhui Zhao
2015-08-26 12:09 ` [PATCH v2,2/5] powerpc/rcpm: add RCPM driver Chenhui Zhao
2015-08-26 20:35 ` Scott Wood
2015-08-28 0:40 ` Scott Wood [this message]
2015-08-28 5:18 ` Scott Wood
2015-08-26 12:09 ` [PATCH v2,3/5] Powerpc: mpc85xx: refactor the PM operations Chenhui Zhao
2015-08-26 12:09 ` [PATCH v2,4/5] PowerPC/mpc85xx: Add hotplug support on E5500 and E500MC cores Chenhui Zhao
2015-08-26 20:55 ` Scott Wood
2015-08-28 0:47 ` Chenhui Zhao
2015-08-26 12:09 ` [PATCH v2,5/5] PowerPC/mpc85xx: Add CPU hotplug support for E6500 Chenhui Zhao
2015-08-26 22:42 ` Scott Wood
2015-08-28 1:42 ` Chenhui Zhao
2015-08-28 5:13 ` Scott Wood
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=1440722422.31670.0@remotesmtp.freescale.net \
--to=scottwood@freescale.com \
--cc=Jason.Jin@freescale.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.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
all inboxes | Powered by JetHome®