patch-2.4.18 linux/arch/ppc/kernel/btext.c
Next file: linux/arch/ppc/kernel/chrp_setup.c
Previous file: linux/arch/ppc/kernel/Makefile
Back to the patch index
Back to the overall index
- Lines: 47
- Date:
Wed Dec 26 16:28:34 2001
- Orig file:
linux.orig/arch/ppc/kernel/btext.c
- Orig date:
Mon Feb 18 20:18:39 2002
diff -Naur -X /home/marcelo/lib/dontdiff linux.orig/arch/ppc/kernel/btext.c linux/arch/ppc/kernel/btext.c
@@ -133,14 +133,19 @@
{
unsigned long offset = reloc_offset();
boot_infos_t* bi = PTRRELOC(RELOC(disp_bi));
- unsigned long addr = (unsigned long)bi->dispDeviceBase;
unsigned long vaddr = KERNELBASE + 0x10000000;
+ unsigned long addr;
unsigned long lowbits;
if (!RELOC(disp_bi)) {
RELOC(boot_text_mapped) = 0;
return;
}
+ addr = (unsigned long)bi->dispDeviceBase;
+ if (!addr) {
+ RELOC(boot_text_mapped) = 0;
+ return;
+ }
if (PVR_VER(mfspr(PVR)) != 1) {
/* 603, 604, G3, G4, ... */
lowbits = addr & ~0xFF000000UL;
@@ -231,10 +236,10 @@
{
if (disp_bi == 0)
return;
- /* check it's the same frame buffer (within 64MB) */
- if ((phys ^ (unsigned long)disp_bi->dispDeviceBase) & 0xfc000000) {
+
+ /* check it's the same frame buffer (within 256MB) */
+ if ((phys ^ (unsigned long)disp_bi->dispDeviceBase) & 0xf0000000)
return;
- }
disp_bi->dispDeviceBase = (__u8 *) phys;
disp_bi->dispDeviceRect[0] = 0;
@@ -423,9 +428,11 @@
int rb = bi->dispDeviceRowBytes;
switch(bi->dispDeviceDepth) {
+ case 24:
case 32:
draw_byte_32(font, (unsigned long *)base, rb);
break;
+ case 15:
case 16:
draw_byte_16(font, (unsigned long *)base, rb);
break;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)