Remove CONFIG_PM dependency from au1x wait in cpu_probe.

Additional work necessary to completely remove that config option.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
Pete Popov
2005-04-07 00:42:10 +00:00
committed by Ralf Baechle
parent 3b495f2bb7
commit 494900af68
3 changed files with 22 additions and 29 deletions

View File

@@ -51,29 +51,25 @@ static void r4k_wait(void)
".set\tmips0");
}
/*
* The Au1xxx wait is available only if we run CONFIG_PM and
* the timer setup found we had a 32KHz counter available.
* There are still problems with functions that may call au1k_wait
* directly, but that will be discovered pretty quickly.
*/
extern void (*au1k_wait_ptr)(void);
void au1k_wait(void)
/* The Au1xxx wait is available only if using 32khz counter or
* external timer source, but specifically not CP0 Counter. */
static void au1k_wait(void)
{
#ifdef CONFIG_PM
unsigned long addr;
/* using the wait instruction makes CP0 counter unusable */
__asm__(".set\tmips3\n\t"
__asm__("la %0,au1k_wait\n\t"
".set mips3\n\t"
"cache 0x14,0(%0)\n\t"
"cache 0x14,32(%0)\n\t"
"sync\n\t"
"nop\n\t"
"wait\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
".set\tmips0");
#else
__asm__("nop\n\t"
"nop");
#endif
".set mips0\n\t"
: : "r" (addr));
}
static inline void check_wait(void)
@@ -112,21 +108,20 @@ static inline void check_wait(void)
cpu_wait = r4k_wait;
printk(" available.\n");
break;
#ifdef CONFIG_PM
case CPU_AU1000:
case CPU_AU1100:
case CPU_AU1500:
case CPU_AU1550:
case CPU_AU1200:
if (au1k_wait_ptr != NULL) {
cpu_wait = au1k_wait_ptr;
printk(" available.\n");
}
else {
printk(" unavailable.\n");
{
extern int allow_au1k_wait; /* au1000/common/time.c */
if (allow_au1k_wait) {
cpu_wait = au1k_wait;
printk(" available.\n");
} else
printk(" unavailable.\n");
}
break;
#endif
default:
printk(" unavailable.\n");
break;