[PATCH v3] ARM: exynos4: hotplug: Fix CPU idle clock down after CPU off

Krzysztof Kozlowski k.kozlowski at samsung.com
Wed Jul 16 06:25:50 PDT 2014


On śro, 2014-07-16 at 15:05 +0200, Tomasz Figa wrote:
> Hi Krzysztof,
> 
> On 16.07.2014 14:07, Krzysztof Kozlowski wrote:
> 
> [snip]
> 
> > +#ifdef CONFIG_SMP
> > +extern void exynos_clear_delayed_reset_assertion(u32 core_id);
> > +#endif
> 
> Is the ifdef really needed? The only difference it makes if the function
> is used but not compiled in is that with it the compilation will fail,
> while without it the kernel won't link.

Hmmm... I'll take another approach - just merge hotplug.c into
platsmp.c.

> 
> > +
> >  extern void exynos_cpu_resume(void);
> >  
> >  extern struct smp_operations exynos_smp_ops;
> 
> [snip]
> 
> > +/*
> > + * Clear the USE_DELAYED_RESET_ASSERTION option, set on Exynos4 SoCs
> > + * during hot-unplugging CPUx.
> > + *
> > + * It won't harm if this is called during first boot of secondary CPU.
> > + *
> > + * Exynos4 SoCs require setting USE_DELAYED_RESET_ASSERTION so the CPU idle
> > + * clock down feature could properly detect global idle state when
> > + * CPUx is off.
> > + */
> > +void exynos_clear_delayed_reset_assertion(u32 core_id)
> > +{
> > +	if (soc_is_exynos4()) {
> > +		unsigned int tmp;
> > +
> > +		tmp = __raw_readl(EXYNOS_ARM_CORE_OPTION(core_id));
> > +		tmp &= ~(S5P_USE_DELAYED_RESET_ASSERTION);
> > +		__raw_writel(tmp, EXYNOS_ARM_CORE_OPTION(core_id));
> > +	}
> > +}
> 
> The idea to make this a helper function is quite nice, but maybe it
> could be extended into exynos_set_delayed_reset_assertion() and disable
> or enable delayed assertion depending on another argument?

Sure, I'll change it.

Best regards,
Krzysztof

> 
> Best regards,
> Tomasz




More information about the linux-arm-kernel mailing list