| .. | .. |
|---|
| 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); |
|---|