public inbox for linux-tegra@vger.kernel.org
 help / color / mirror / Atom feed
* tegra_cpu_die() dead code?
@ 2012-12-19 18:11 Stephen Warren
       [not found] ` <50D20339.4090402-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
  0 siblings, 1 reply; 2+ messages in thread
From: Stephen Warren @ 2012-12-19 18:11 UTC (permalink / raw)
  To: Joseph Lo, linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org

Joseph,

In next-20121217, I see:

void __ref tegra_cpu_die(unsigned int cpu)
{
        cpu = cpu_logical_map(cpu);

        /* Flush the L1 data cache. */
        flush_cache_all();

        /* Shut down the current CPU. */
        tegra_hotplug_shutdown();

        /* Clock gate the CPU */
        tegra_wait_cpu_in_reset(cpu);
        tegra_disable_cpu_clock(cpu);
	
        /* Should never return here. */
        BUG();

Given that both implementations (Tegra20/30) of tegra_hotplug_shutdown
include:

        bl      tegra20_cpu_shutdown
        mov     pc, lr                  @ should never get here

why does tegra_cpu_die() include the calls to tegra_wait_cpu_in_reset()
and tegra_disable_cpu_clock() after calling tegra_hotplug_shutdown()?
(and how can a CPU wait for itself to be in reset anyway)?

Perhaps this is fixed by the various patches you've posted but are
awaiting being applied?

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: tegra_cpu_die() dead code?
       [not found] ` <50D20339.4090402-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
@ 2012-12-20  0:40   ` Joseph Lo
  0 siblings, 0 replies; 2+ messages in thread
From: Joseph Lo @ 2012-12-20  0:40 UTC (permalink / raw)
  To: Stephen Warren; +Cc: linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org

On Thu, 2012-12-20 at 02:11 +0800, Stephen Warren wrote:
> Joseph,
> 
> In next-20121217, I see:
> 
> void __ref tegra_cpu_die(unsigned int cpu)
> {
>         cpu = cpu_logical_map(cpu);
> 
>         /* Flush the L1 data cache. */
>         flush_cache_all();
> 
>         /* Shut down the current CPU. */
>         tegra_hotplug_shutdown();
> 
>         /* Clock gate the CPU */
>         tegra_wait_cpu_in_reset(cpu);
>         tegra_disable_cpu_clock(cpu);
> 	
>         /* Should never return here. */
>         BUG();
> 
> Given that both implementations (Tegra20/30) of tegra_hotplug_shutdown
> include:
> 
>         bl      tegra20_cpu_shutdown
>         mov     pc, lr                  @ should never get here
> 
> why does tegra_cpu_die() include the calls to tegra_wait_cpu_in_reset()
> and tegra_disable_cpu_clock() after calling tegra_hotplug_shutdown()?
> (and how can a CPU wait for itself to be in reset anyway)?
> 
Indeed, I had a patch to fix this. Will update to here today.

Thanks,
Joseph

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2012-12-20  0:40 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-19 18:11 tegra_cpu_die() dead code? Stephen Warren
     [not found] ` <50D20339.4090402-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-12-20  0:40   ` Joseph Lo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox