diff options
| -rw-r--r-- | arch/powerpc/kernel/setup_32.c | 14 | ||||
| -rw-r--r-- | arch/powerpc/platforms/powermac/setup.c | 66 | ||||
| -rw-r--r-- | arch/powerpc/platforms/pseries/setup.c | 4 |
3 files changed, 26 insertions, 58 deletions
diff --git a/arch/powerpc/kernel/setup_32.c b/arch/powerpc/kernel/setup_32.c index b95f7cf693e6..b9269c038af3 100644 --- a/arch/powerpc/kernel/setup_32.c +++ b/arch/powerpc/kernel/setup_32.c | |||
| @@ -150,7 +150,6 @@ extern u32 cpu_temp_both(unsigned long cpu); | |||
| 150 | int show_cpuinfo(struct seq_file *m, void *v) | 150 | int show_cpuinfo(struct seq_file *m, void *v) |
| 151 | { | 151 | { |
| 152 | int i = (int) v - 1; | 152 | int i = (int) v - 1; |
| 153 | int err = 0; | ||
| 154 | unsigned int pvr; | 153 | unsigned int pvr; |
| 155 | unsigned short maj, min; | 154 | unsigned short maj, min; |
| 156 | unsigned long lpj; | 155 | unsigned long lpj; |
| @@ -167,8 +166,8 @@ int show_cpuinfo(struct seq_file *m, void *v) | |||
| 167 | #endif /* CONFIG_SMP */ | 166 | #endif /* CONFIG_SMP */ |
| 168 | 167 | ||
| 169 | if (ppc_md.show_cpuinfo != NULL) | 168 | if (ppc_md.show_cpuinfo != NULL) |
| 170 | err = ppc_md.show_cpuinfo(m); | 169 | ppc_md.show_cpuinfo(m); |
| 171 | return err; | 170 | return 0; |
| 172 | } | 171 | } |
| 173 | 172 | ||
| 174 | #ifdef CONFIG_SMP | 173 | #ifdef CONFIG_SMP |
| @@ -210,15 +209,12 @@ int show_cpuinfo(struct seq_file *m, void *v) | |||
| 210 | } | 209 | } |
| 211 | #endif /* CONFIG_TAU */ | 210 | #endif /* CONFIG_TAU */ |
| 212 | 211 | ||
| 213 | if (ppc_md.show_percpuinfo != NULL) { | 212 | if (ppc_md.show_percpuinfo != NULL) |
| 214 | err = ppc_md.show_percpuinfo(m, i); | 213 | ppc_md.show_percpuinfo(m, i); |
| 215 | if (err) | ||
| 216 | return err; | ||
| 217 | } | ||
| 218 | 214 | ||
| 219 | /* If we are a Freescale core do a simple check so | 215 | /* If we are a Freescale core do a simple check so |
| 220 | * we dont have to keep adding cases in the future */ | 216 | * we dont have to keep adding cases in the future */ |
| 221 | if ((PVR_VER(pvr) & 0x8000) == 0x8000) { | 217 | if (PVR_VER(pvr) & 0x8000) { |
| 222 | maj = PVR_MAJ(pvr); | 218 | maj = PVR_MAJ(pvr); |
| 223 | min = PVR_MIN(pvr); | 219 | min = PVR_MIN(pvr); |
| 224 | } else { | 220 | } else { |
diff --git a/arch/powerpc/platforms/powermac/setup.c b/arch/powerpc/platforms/powermac/setup.c index b6414e7c37d4..0bad53fa36ef 100644 --- a/arch/powerpc/platforms/powermac/setup.c +++ b/arch/powerpc/platforms/powermac/setup.c | |||
| @@ -104,24 +104,26 @@ extern struct smp_ops_t psurge_smp_ops; | |||
| 104 | extern struct smp_ops_t core99_smp_ops; | 104 | extern struct smp_ops_t core99_smp_ops; |
| 105 | #endif /* CONFIG_SMP */ | 105 | #endif /* CONFIG_SMP */ |
| 106 | 106 | ||
| 107 | static int | 107 | static void pmac_show_cpuinfo(struct seq_file *m) |
| 108 | pmac_show_cpuinfo(struct seq_file *m) | ||
| 109 | { | 108 | { |
| 110 | struct device_node *np; | 109 | struct device_node *np; |
| 111 | char *pp; | 110 | char *pp; |
| 112 | int plen; | 111 | int plen; |
| 113 | int mbmodel = pmac_call_feature(PMAC_FTR_GET_MB_INFO, | 112 | int mbmodel; |
| 114 | NULL, PMAC_MB_INFO_MODEL, 0); | 113 | unsigned int mbflags; |
| 115 | unsigned int mbflags = (unsigned int)pmac_call_feature(PMAC_FTR_GET_MB_INFO, | ||
| 116 | NULL, PMAC_MB_INFO_FLAGS, 0); | ||
| 117 | char* mbname; | 114 | char* mbname; |
| 118 | 115 | ||
| 119 | if (pmac_call_feature(PMAC_FTR_GET_MB_INFO, NULL, PMAC_MB_INFO_NAME, (int)&mbname) != 0) | 116 | mbmodel = pmac_call_feature(PMAC_FTR_GET_MB_INFO, NULL, |
| 117 | PMAC_MB_INFO_MODEL, 0); | ||
| 118 | mbflags = pmac_call_feature(PMAC_FTR_GET_MB_INFO, NULL, | ||
| 119 | PMAC_MB_INFO_FLAGS, 0); | ||
| 120 | if (pmac_call_feature(PMAC_FTR_GET_MB_INFO, NULL, PMAC_MB_INFO_NAME, | ||
| 121 | (long) &mbname) != 0) | ||
| 120 | mbname = "Unknown"; | 122 | mbname = "Unknown"; |
| 121 | 123 | ||
| 122 | /* find motherboard type */ | 124 | /* find motherboard type */ |
| 123 | seq_printf(m, "machine\t\t: "); | 125 | seq_printf(m, "machine\t\t: "); |
| 124 | np = find_devices("device-tree"); | 126 | np = of_find_node_by_path("/"); |
| 125 | if (np != NULL) { | 127 | if (np != NULL) { |
| 126 | pp = (char *) get_property(np, "model", NULL); | 128 | pp = (char *) get_property(np, "model", NULL); |
| 127 | if (pp != NULL) | 129 | if (pp != NULL) |
| @@ -139,6 +141,7 @@ pmac_show_cpuinfo(struct seq_file *m) | |||
| 139 | } | 141 | } |
| 140 | seq_printf(m, "\n"); | 142 | seq_printf(m, "\n"); |
| 141 | } | 143 | } |
| 144 | of_node_put(np); | ||
| 142 | } else | 145 | } else |
| 143 | seq_printf(m, "PowerMac\n"); | 146 | seq_printf(m, "PowerMac\n"); |
| 144 | 147 | ||
| @@ -147,10 +150,10 @@ pmac_show_cpuinfo(struct seq_file *m) | |||
| 147 | seq_printf(m, "pmac flags\t: %08x\n", mbflags); | 150 | seq_printf(m, "pmac flags\t: %08x\n", mbflags); |
| 148 | 151 | ||
| 149 | /* find l2 cache info */ | 152 | /* find l2 cache info */ |
| 150 | np = find_devices("l2-cache"); | 153 | np = of_find_node_by_name(NULL, "l2-cache"); |
| 151 | if (np == 0) | 154 | if (np == NULL) |
| 152 | np = find_type_devices("cache"); | 155 | np = of_find_node_by_type(NULL, "cache"); |
| 153 | if (np != 0) { | 156 | if (np != NULL) { |
| 154 | unsigned int *ic = (unsigned int *) | 157 | unsigned int *ic = (unsigned int *) |
| 155 | get_property(np, "i-cache-size", NULL); | 158 | get_property(np, "i-cache-size", NULL); |
| 156 | unsigned int *dc = (unsigned int *) | 159 | unsigned int *dc = (unsigned int *) |
| @@ -170,56 +173,25 @@ pmac_show_cpuinfo(struct seq_file *m) | |||
| 170 | if (pp) | 173 | if (pp) |
| 171 | seq_printf(m, " %s", pp); | 174 | seq_printf(m, " %s", pp); |
| 172 | seq_printf(m, "\n"); | 175 | seq_printf(m, "\n"); |
| 173 | } | 176 | of_node_put(np); |
| 174 | |||
| 175 | /* find ram info */ | ||
| 176 | np = find_devices("memory"); | ||
| 177 | if (np != 0) { | ||
| 178 | int n; | ||
| 179 | struct reg_property *reg = (struct reg_property *) | ||
| 180 | get_property(np, "reg", &n); | ||
| 181 | |||
| 182 | if (reg != 0) { | ||
| 183 | unsigned long total = 0; | ||
| 184 | |||
| 185 | for (n /= sizeof(struct reg_property); n > 0; --n) | ||
| 186 | total += (reg++)->size; | ||
| 187 | seq_printf(m, "memory\t\t: %luMB\n", total >> 20); | ||
| 188 | } | ||
| 189 | } | ||
| 190 | |||
| 191 | /* Checks "l2cr-value" property in the registry */ | ||
| 192 | np = find_devices("cpus"); | ||
| 193 | if (np == 0) | ||
| 194 | np = find_type_devices("cpu"); | ||
| 195 | if (np != 0) { | ||
| 196 | unsigned int *l2cr = (unsigned int *) | ||
| 197 | get_property(np, "l2cr-value", NULL); | ||
| 198 | if (l2cr != 0) { | ||
| 199 | seq_printf(m, "l2cr override\t: 0x%x\n", *l2cr); | ||
| 200 | } | ||
| 201 | } | 177 | } |
| 202 | 178 | ||
| 203 | /* Indicate newworld/oldworld */ | 179 | /* Indicate newworld/oldworld */ |
| 204 | seq_printf(m, "pmac-generation\t: %s\n", | 180 | seq_printf(m, "pmac-generation\t: %s\n", |
| 205 | pmac_newworld ? "NewWorld" : "OldWorld"); | 181 | pmac_newworld ? "NewWorld" : "OldWorld"); |
| 206 | |||
| 207 | |||
| 208 | return 0; | ||
| 209 | } | 182 | } |
| 210 | 183 | ||
| 211 | static int | 184 | static void pmac_show_percpuinfo(struct seq_file *m, int i) |
| 212 | pmac_show_percpuinfo(struct seq_file *m, int i) | ||
| 213 | { | 185 | { |
| 214 | #ifdef CONFIG_CPU_FREQ_PMAC | 186 | #ifdef CONFIG_CPU_FREQ_PMAC |
| 215 | extern unsigned int pmac_get_one_cpufreq(int i); | 187 | extern unsigned int pmac_get_one_cpufreq(int i); |
| 216 | unsigned int freq = pmac_get_one_cpufreq(i); | 188 | unsigned int freq = pmac_get_one_cpufreq(i); |
| 217 | if (freq != 0) { | 189 | if (freq != 0) { |
| 218 | seq_printf(m, "clock\t\t: %dMHz\n", freq/1000); | 190 | seq_printf(m, "clock\t\t: %dMHz\n", freq/1000); |
| 219 | return 0; | 191 | return; |
| 220 | } | 192 | } |
| 221 | #endif /* CONFIG_CPU_FREQ_PMAC */ | 193 | #endif /* CONFIG_CPU_FREQ_PMAC */ |
| 222 | return of_show_percpuinfo(m, i); | 194 | of_show_percpuinfo(m, i); |
| 223 | } | 195 | } |
| 224 | 196 | ||
| 225 | static volatile u32 *sysctrl_regs; | 197 | static volatile u32 *sysctrl_regs; |
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c index 0c84a44b43b4..c53dbbb4490a 100644 --- a/arch/powerpc/platforms/pseries/setup.c +++ b/arch/powerpc/platforms/pseries/setup.c | |||
| @@ -90,7 +90,7 @@ static void pseries_dedicated_idle(void); | |||
| 90 | static volatile void __iomem * chrp_int_ack_special; | 90 | static volatile void __iomem * chrp_int_ack_special; |
| 91 | struct mpic *pSeries_mpic; | 91 | struct mpic *pSeries_mpic; |
| 92 | 92 | ||
| 93 | void pSeries_get_cpuinfo(struct seq_file *m) | 93 | void pSeries_show_cpuinfo(struct seq_file *m) |
| 94 | { | 94 | { |
| 95 | struct device_node *root; | 95 | struct device_node *root; |
| 96 | const char *model = ""; | 96 | const char *model = ""; |
| @@ -599,7 +599,7 @@ struct machdep_calls __initdata pSeries_md = { | |||
| 599 | .probe = pSeries_probe, | 599 | .probe = pSeries_probe, |
| 600 | .setup_arch = pSeries_setup_arch, | 600 | .setup_arch = pSeries_setup_arch, |
| 601 | .init_early = pSeries_init_early, | 601 | .init_early = pSeries_init_early, |
| 602 | .get_cpuinfo = pSeries_get_cpuinfo, | 602 | .show_cpuinfo = pSeries_show_cpuinfo, |
| 603 | .log_error = pSeries_log_error, | 603 | .log_error = pSeries_log_error, |
| 604 | .pcibios_fixup = pSeries_final_fixup, | 604 | .pcibios_fixup = pSeries_final_fixup, |
| 605 | .pci_probe_mode = pSeries_pci_probe_mode, | 605 | .pci_probe_mode = pSeries_pci_probe_mode, |
