.. | .. |
---|
9 | 9 | #include <linux/init.h> |
---|
10 | 10 | #include <linux/export.h> |
---|
11 | 11 | #include <linux/memblock.h> |
---|
| 12 | +#include <linux/pgtable.h> |
---|
12 | 13 | |
---|
13 | 14 | #include <asm/sections.h> |
---|
14 | 15 | #include <asm/prom.h> |
---|
15 | 16 | #include <asm/btext.h> |
---|
16 | 17 | #include <asm/page.h> |
---|
17 | 18 | #include <asm/mmu.h> |
---|
18 | | -#include <asm/pgtable.h> |
---|
19 | 19 | #include <asm/io.h> |
---|
20 | 20 | #include <asm/processor.h> |
---|
21 | 21 | #include <asm/udbg.h> |
---|
.. | .. |
---|
26 | 26 | static void scrollscreen(void); |
---|
27 | 27 | #endif |
---|
28 | 28 | |
---|
29 | | -#define __force_data __attribute__((__section__(".data"))) |
---|
| 29 | +#define __force_data __section(".data") |
---|
30 | 30 | |
---|
31 | 31 | static int g_loc_X __force_data; |
---|
32 | 32 | static int g_loc_Y __force_data; |
---|
.. | .. |
---|
95 | 95 | boot_text_mapped = 0; |
---|
96 | 96 | return; |
---|
97 | 97 | } |
---|
98 | | - if (PVR_VER(mfspr(SPRN_PVR)) != 1) { |
---|
99 | | - /* 603, 604, G3, G4, ... */ |
---|
100 | | - lowbits = addr & ~0xFF000000UL; |
---|
101 | | - addr &= 0xFF000000UL; |
---|
102 | | - disp_BAT[0] = vaddr | (BL_16M<<2) | 2; |
---|
103 | | - disp_BAT[1] = addr | (_PAGE_NO_CACHE | _PAGE_GUARDED | BPP_RW); |
---|
104 | | - } else { |
---|
105 | | - /* 601 */ |
---|
106 | | - lowbits = addr & ~0xFF800000UL; |
---|
107 | | - addr &= 0xFF800000UL; |
---|
108 | | - disp_BAT[0] = vaddr | (_PAGE_NO_CACHE | PP_RWXX) | 4; |
---|
109 | | - disp_BAT[1] = addr | BL_8M | 0x40; |
---|
110 | | - } |
---|
| 98 | + lowbits = addr & ~0xFF000000UL; |
---|
| 99 | + addr &= 0xFF000000UL; |
---|
| 100 | + disp_BAT[0] = vaddr | (BL_16M<<2) | 2; |
---|
| 101 | + disp_BAT[1] = addr | (_PAGE_NO_CACHE | _PAGE_GUARDED | BPP_RW); |
---|
111 | 102 | logicalDisplayBase = (void *) (vaddr + lowbits); |
---|
112 | 103 | } |
---|
113 | 104 | #endif |
---|
.. | .. |
---|
163 | 154 | offset = ((unsigned long) dispDeviceBase) - base; |
---|
164 | 155 | size = dispDeviceRowBytes * dispDeviceRect[3] + offset |
---|
165 | 156 | + dispDeviceRect[0]; |
---|
166 | | - vbase = __ioremap(base, size, pgprot_val(pgprot_noncached_wc(__pgprot(0)))); |
---|
| 157 | + vbase = ioremap_wc(base, size); |
---|
167 | 158 | if (!vbase) |
---|
168 | 159 | return; |
---|
169 | 160 | logicalDisplayBase = vbase + offset; |
---|
.. | .. |
---|
232 | 223 | |
---|
233 | 224 | int __init btext_find_display(int allow_nonstdout) |
---|
234 | 225 | { |
---|
235 | | - const char *name; |
---|
236 | | - struct device_node *np = NULL; |
---|
| 226 | + struct device_node *np = of_stdout; |
---|
237 | 227 | int rc = -ENODEV; |
---|
238 | 228 | |
---|
239 | | - name = of_get_property(of_chosen, "linux,stdout-path", NULL); |
---|
240 | | - if (name != NULL) { |
---|
241 | | - np = of_find_node_by_path(name); |
---|
242 | | - if (np != NULL) { |
---|
243 | | - if (strcmp(np->type, "display") != 0) { |
---|
244 | | - printk("boot stdout isn't a display !\n"); |
---|
245 | | - of_node_put(np); |
---|
246 | | - np = NULL; |
---|
247 | | - } |
---|
248 | | - } |
---|
| 229 | + if (!of_node_is_type(np, "display")) { |
---|
| 230 | + printk("boot stdout isn't a display !\n"); |
---|
| 231 | + np = NULL; |
---|
249 | 232 | } |
---|
250 | 233 | if (np) |
---|
251 | 234 | rc = btext_initialize(np); |
---|