From: Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
To: Joseph Lo <josephl-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
Cc: "linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>
Subject: Re: [PATCH 6/6] ARM: tegra114: add CPU hotplug support
Date: Thu, 16 May 2013 12:26:49 -0600 [thread overview]
Message-ID: <519524E9.8000401@wwwdotorg.org> (raw)
In-Reply-To: <1368702862.7403.86.camel-yx3yKKdKkHfc7b1ADBJPm0n48jw8i0AO@public.gmane.org>
On 05/16/2013 05:14 AM, Joseph Lo wrote:
> On Thu, 2013-05-16 at 07:11 +0800, Stephen Warren wrote:
>> On 05/15/2013 04:27 AM, Joseph Lo wrote:
>>> The Tegra114 is a quad cores SoC. Each core can be hotplugged including
>>> CPU0. The hotplug sequence can be controlled by setting event trigger in
>>> flow controller. Then the flow controller will take care all the power
>>> sequence that include CPU up and down.
>>> tst r0, #TEGRA30_POWER_HOTPLUG_SHUTDOWN
>>> + beq flow_ctrl_setting_for_lp2
>>> +
>>> + /* flow controller set up for hotplug */
>>> + mov r3, #FLOW_CTRL_WAITEVENT @ For hotplug
>>> + b flow_ctrl_done
>>> +flow_ctrl_setting_for_lp2:
>>> + /* flow controller set up for LP2 */
>>> + cmp r10, #(TEGRA30 << 8)
>>> moveq r3, #FLOW_CTRL_WAIT_FOR_INTERRUPT @ For LP2
>>
>> Do you need e.g. "movne r3, #0" or similar here? Otherwise, I think r3
>> ends up not being initialized.
>
> Yes, I will add the code when I add LP2 support for Tegra114 later.
> Currently the LP2 code flow only for Tegra30, so it's OK.
Ah, I see. Can we add the extra move to make sure the register is always
initialized now even though the path won't be used. That way, nobody
will be confused by this.
>>> - movne r3, #FLOW_CTRL_WAITEVENT @ For hotplug
>>> +flow_ctrl_done:
>>> + cmp r10, #(TEGRA30 << 8)
>>> str r3, [r2]
>>
>> I wonder whether creating a separate tegra114_cpu_shutdown() wouldn't be
>> better, to avoid all the runtime conditional code.
>
> I personally think the conditional code is OK. And the ARM CPU also had
> hardware for branch detection also.
>
> I had finished some further features for both Tegra30 and Tegra114. And
> most of the code here can be shared each other at least until now I
> could see. Once I see if there is a significant difference, then I would
> prepare maintain the code separately too.
OK, if the function gets larger with more shared, I guess it's fine.
Right now, the conditional-to-non-conditional code ratio is pretty high.
WARNING: multiple messages have this Message-ID (diff)
From: swarren@wwwdotorg.org (Stephen Warren)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 6/6] ARM: tegra114: add CPU hotplug support
Date: Thu, 16 May 2013 12:26:49 -0600 [thread overview]
Message-ID: <519524E9.8000401@wwwdotorg.org> (raw)
In-Reply-To: <1368702862.7403.86.camel@jlo-ubuntu-64.nvidia.com>
On 05/16/2013 05:14 AM, Joseph Lo wrote:
> On Thu, 2013-05-16 at 07:11 +0800, Stephen Warren wrote:
>> On 05/15/2013 04:27 AM, Joseph Lo wrote:
>>> The Tegra114 is a quad cores SoC. Each core can be hotplugged including
>>> CPU0. The hotplug sequence can be controlled by setting event trigger in
>>> flow controller. Then the flow controller will take care all the power
>>> sequence that include CPU up and down.
>>> tst r0, #TEGRA30_POWER_HOTPLUG_SHUTDOWN
>>> + beq flow_ctrl_setting_for_lp2
>>> +
>>> + /* flow controller set up for hotplug */
>>> + mov r3, #FLOW_CTRL_WAITEVENT @ For hotplug
>>> + b flow_ctrl_done
>>> +flow_ctrl_setting_for_lp2:
>>> + /* flow controller set up for LP2 */
>>> + cmp r10, #(TEGRA30 << 8)
>>> moveq r3, #FLOW_CTRL_WAIT_FOR_INTERRUPT @ For LP2
>>
>> Do you need e.g. "movne r3, #0" or similar here? Otherwise, I think r3
>> ends up not being initialized.
>
> Yes, I will add the code when I add LP2 support for Tegra114 later.
> Currently the LP2 code flow only for Tegra30, so it's OK.
Ah, I see. Can we add the extra move to make sure the register is always
initialized now even though the path won't be used. That way, nobody
will be confused by this.
>>> - movne r3, #FLOW_CTRL_WAITEVENT @ For hotplug
>>> +flow_ctrl_done:
>>> + cmp r10, #(TEGRA30 << 8)
>>> str r3, [r2]
>>
>> I wonder whether creating a separate tegra114_cpu_shutdown() wouldn't be
>> better, to avoid all the runtime conditional code.
>
> I personally think the conditional code is OK. And the ARM CPU also had
> hardware for branch detection also.
>
> I had finished some further features for both Tegra30 and Tegra114. And
> most of the code here can be shared each other at least until now I
> could see. Once I see if there is a significant difference, then I would
> prepare maintain the code separately too.
OK, if the function gets larger with more shared, I guess it's fine.
Right now, the conditional-to-non-conditional code ratio is pretty high.
next prev parent reply other threads:[~2013-05-16 18:26 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-15 10:27 [PATCH 0/6] ARM: tegra114: add CPU hotplug support Joseph Lo
2013-05-15 10:27 ` Joseph Lo
[not found] ` <1368613644-11863-1-git-send-email-josephl-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-05-15 10:27 ` [PATCH 1/6] ARM: tegra: add an assembly marco to check Tegra SoC ID Joseph Lo
2013-05-15 10:27 ` Joseph Lo
[not found] ` <1368613644-11863-2-git-send-email-josephl-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-05-15 22:43 ` Stephen Warren
2013-05-15 22:43 ` Stephen Warren
[not found] ` <51940FA4.6050609-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-05-16 10:09 ` Joseph Lo
2013-05-16 10:09 ` Joseph Lo
[not found] ` <1368698988.7403.25.camel-yx3yKKdKkHfc7b1ADBJPm0n48jw8i0AO@public.gmane.org>
2013-05-16 18:21 ` Stephen Warren
2013-05-16 18:21 ` Stephen Warren
2013-05-15 10:27 ` [PATCH 2/6] ARM: tegra: skip SCU and PL310 code when CPU is not Cortex-A9 Joseph Lo
2013-05-15 10:27 ` Joseph Lo
[not found] ` <1368613644-11863-3-git-send-email-josephl-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-05-15 22:48 ` Stephen Warren
2013-05-15 22:48 ` Stephen Warren
[not found] ` <519410D7.9060201-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-05-16 10:13 ` Joseph Lo
2013-05-16 10:13 ` Joseph Lo
2013-05-15 10:27 ` [PATCH 3/6] ARM: tegra: make tegra_resume can work for Tegra114 Joseph Lo
2013-05-15 10:27 ` Joseph Lo
[not found] ` <1368613644-11863-4-git-send-email-josephl-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-05-15 22:57 ` Stephen Warren
2013-05-15 22:57 ` Stephen Warren
[not found] ` <519412E9.2080905-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-05-16 10:35 ` Joseph Lo
2013-05-16 10:35 ` Joseph Lo
[not found] ` <1368700533.7403.47.camel-yx3yKKdKkHfc7b1ADBJPm0n48jw8i0AO@public.gmane.org>
2013-05-16 18:24 ` Stephen Warren
2013-05-16 18:24 ` Stephen Warren
2013-05-15 10:27 ` [PATCH 4/6] ARM: tegra114: add power up sequence for warm boot CPU Joseph Lo
2013-05-15 10:27 ` Joseph Lo
2013-05-15 10:27 ` [PATCH 5/6] clk: tegra114: implement wait_for_reset and disable_clock for tegra_cpu_car_ops Joseph Lo
2013-05-15 10:27 ` Joseph Lo
[not found] ` <1368613644-11863-6-git-send-email-josephl-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-05-15 23:02 ` Stephen Warren
2013-05-15 23:02 ` Stephen Warren
2013-05-16 19:17 ` Mike Turquette
2013-05-16 19:17 ` Mike Turquette
2013-05-15 10:27 ` [PATCH 6/6] ARM: tegra114: add CPU hotplug support Joseph Lo
2013-05-15 10:27 ` Joseph Lo
[not found] ` <1368613644-11863-7-git-send-email-josephl-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-05-15 23:11 ` Stephen Warren
2013-05-15 23:11 ` Stephen Warren
[not found] ` <5194162D.7010007-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-05-16 11:14 ` Joseph Lo
2013-05-16 11:14 ` Joseph Lo
[not found] ` <1368702862.7403.86.camel-yx3yKKdKkHfc7b1ADBJPm0n48jw8i0AO@public.gmane.org>
2013-05-16 18:26 ` Stephen Warren [this message]
2013-05-16 18:26 ` Stephen Warren
2013-05-15 23:38 ` [PATCH 0/6] " Stephen Warren
2013-05-15 23:38 ` Stephen Warren
[not found] ` <51941C58.9060002-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-05-16 9:53 ` Joseph Lo
2013-05-16 9:53 ` Joseph Lo
[not found] ` <1368698019.7403.10.camel-yx3yKKdKkHfc7b1ADBJPm0n48jw8i0AO@public.gmane.org>
2013-05-16 18:19 ` Stephen Warren
2013-05-16 18:19 ` Stephen Warren
[not found] ` <51952344.1090003-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-05-17 10:15 ` Joseph Lo
2013-05-17 10:15 ` Joseph Lo
2013-05-17 10:27 ` Russell King - ARM Linux
2013-05-17 10:27 ` Russell King - ARM Linux
2013-05-17 10:23 ` Russell King - ARM Linux
2013-05-17 10:23 ` Russell King - ARM Linux
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=519524E9.8000401@wwwdotorg.org \
--to=swarren-3lzwwm7+weoh9zmkesr00q@public.gmane.org \
--cc=josephl-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.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.