diff options
Diffstat (limited to 'arch/mips/kernel')
-rw-r--r-- | arch/mips/kernel/cpu-probe.c | 19 | ||||
-rw-r--r-- | arch/mips/kernel/proc.c | 3 | ||||
-rw-r--r-- | arch/mips/kernel/time.c | 3 |
3 files changed, 24 insertions, 1 deletions
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c index 844126b39ed3..70c8ad9bc8fc 100644 --- a/arch/mips/kernel/cpu-probe.c +++ b/arch/mips/kernel/cpu-probe.c | |||
@@ -121,6 +121,7 @@ static inline void check_wait(void) | |||
121 | case CPU_24K: | 121 | case CPU_24K: |
122 | case CPU_25KF: | 122 | case CPU_25KF: |
123 | case CPU_34K: | 123 | case CPU_34K: |
124 | case CPU_PR4450: | ||
124 | cpu_wait = r4k_wait; | 125 | cpu_wait = r4k_wait; |
125 | printk(" available.\n"); | 126 | printk(" available.\n"); |
126 | break; | 127 | break; |
@@ -624,6 +625,21 @@ static inline void cpu_probe_sandcraft(struct cpuinfo_mips *c) | |||
624 | } | 625 | } |
625 | } | 626 | } |
626 | 627 | ||
628 | static inline void cpu_probe_philips(struct cpuinfo_mips *c) | ||
629 | { | ||
630 | decode_configs(c); | ||
631 | switch (c->processor_id & 0xff00) { | ||
632 | case PRID_IMP_PR4450: | ||
633 | c->cputype = CPU_PR4450; | ||
634 | c->isa_level = MIPS_CPU_ISA_M32; | ||
635 | break; | ||
636 | default: | ||
637 | panic("Unknown Philips Core!"); /* REVISIT: die? */ | ||
638 | break; | ||
639 | } | ||
640 | } | ||
641 | |||
642 | |||
627 | __init void cpu_probe(void) | 643 | __init void cpu_probe(void) |
628 | { | 644 | { |
629 | struct cpuinfo_mips *c = ¤t_cpu_data; | 645 | struct cpuinfo_mips *c = ¤t_cpu_data; |
@@ -649,6 +665,9 @@ __init void cpu_probe(void) | |||
649 | case PRID_COMP_SANDCRAFT: | 665 | case PRID_COMP_SANDCRAFT: |
650 | cpu_probe_sandcraft(c); | 666 | cpu_probe_sandcraft(c); |
651 | break; | 667 | break; |
668 | case PRID_COMP_PHILIPS: | ||
669 | cpu_probe_philips(c); | ||
670 | break; | ||
652 | default: | 671 | default: |
653 | c->cputype = CPU_UNKNOWN; | 672 | c->cputype = CPU_UNKNOWN; |
654 | } | 673 | } |
diff --git a/arch/mips/kernel/proc.c b/arch/mips/kernel/proc.c index 1bd40af508ed..e46a92d01d51 100644 --- a/arch/mips/kernel/proc.c +++ b/arch/mips/kernel/proc.c | |||
@@ -80,7 +80,8 @@ static const char *cpu_name[] = { | |||
80 | [CPU_VR4133] = "NEC VR4133", | 80 | [CPU_VR4133] = "NEC VR4133", |
81 | [CPU_VR4181] = "NEC VR4181", | 81 | [CPU_VR4181] = "NEC VR4181", |
82 | [CPU_VR4181A] = "NEC VR4181A", | 82 | [CPU_VR4181A] = "NEC VR4181A", |
83 | [CPU_SR71000] = "Sandcraft SR71000" | 83 | [CPU_SR71000] = "Sandcraft SR71000", |
84 | [CPU_PR4450] = "Philips PR4450", | ||
84 | }; | 85 | }; |
85 | 86 | ||
86 | 87 | ||
diff --git a/arch/mips/kernel/time.c b/arch/mips/kernel/time.c index fbc153c8f833..a24651dfaaba 100644 --- a/arch/mips/kernel/time.c +++ b/arch/mips/kernel/time.c | |||
@@ -11,6 +11,7 @@ | |||
11 | * Free Software Foundation; either version 2 of the License, or (at your | 11 | * Free Software Foundation; either version 2 of the License, or (at your |
12 | * option) any later version. | 12 | * option) any later version. |
13 | */ | 13 | */ |
14 | #include <linux/config.h> | ||
14 | #include <linux/types.h> | 15 | #include <linux/types.h> |
15 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
16 | #include <linux/init.h> | 17 | #include <linux/init.h> |
@@ -112,8 +113,10 @@ static void c0_timer_ack(void) | |||
112 | { | 113 | { |
113 | unsigned int count; | 114 | unsigned int count; |
114 | 115 | ||
116 | #ifndef CONFIG_SOC_PNX8550 /* pnx8550 resets to zero */ | ||
115 | /* Ack this timer interrupt and set the next one. */ | 117 | /* Ack this timer interrupt and set the next one. */ |
116 | expirelo += cycles_per_jiffy; | 118 | expirelo += cycles_per_jiffy; |
119 | #endif | ||
117 | write_c0_compare(expirelo); | 120 | write_c0_compare(expirelo); |
118 | 121 | ||
119 | /* Check to see if we have missed any timer interrupts. */ | 122 | /* Check to see if we have missed any timer interrupts. */ |