[PATCH/RFC] i.MX31 and i.MX35 : fix errate TLSbo65953 and ENGcm09472
Daniel Mack
daniel at caiaq.de
Wed Oct 6 02:35:25 EDT 2010
On Tue, Oct 05, 2010 at 06:29:20PM +0200, Uwe Kleine-König wrote:
> On Tue, Oct 05, 2010 at 11:25:39AM +0200, Eric Bénard wrote:
> > +#else
> > #ifdef CONFIG_ARCH_MXC91231
> > if (cpu_is_mxc91231()) {
> > /* Need this to set DSM low-power mode */
> > mxc91231_prepare_idle();
> > }
> > #endif
> > -
> > cpu_do_idle();
> > +#endif
> No. When we start to have multi-soc support for imx and a kernel for
> both mx35 and mxc91231 is compiled mxc91231_prepare_idle isn't called
> anymore for mxc91231. Ah, and cpu_do_idle isn't called anymore at all.
>
> This needs to read:
>
> #if defined (CONFIG_ARCH_MX31) || defined (CONFIG_ARCH_MX35)
> if (cpu_is_mx31() || cpu_is_mx35()) {
> unsigned long reg = 0;
> __asm__ __volatile__(...);
A "return" statement here would save you the else branch and
subsequently, one indentation level, right?
Also, I wonder whether the check for CONFIG_ARCH_MX3[15] is actually
needed at all, as cpu_is_mx3x() will default to 0 at compile time in
case those #defines are not set.
> } else
> #endif
> {
>
> #ifdef CONFIG_ARCH_MXC91231
> if (cpu_is_mxc91231()) {
> /* Need this to set DSM low-power mode */
> mxc91231_prepare_idle();
> }
> #endif
In this case, though, they seem mandatory due to the symbol
mxc91231_prepare_idle would be undefined otherwise.
Daniel
More information about the linux-arm-kernel
mailing list