Skip to content

Commit d877bdf

Browse files
Russell Kinggregkh
Russell King
authored andcommitted
ARM: footbridge: fix VGA initialisation
commit 4365922 upstream. It's no good setting vga_base after the VGA console has been initialised, because if we do that we get this: Unable to handle kernel paging request at virtual address 000b8000 pgd = c0004000 [000b8000] *pgd=07ffc831, *pte=00000000, *ppte=00000000 0Internal error: Oops: 5017 [#1] ARM Modules linked in: CPU: 0 PID: 0 Comm: swapper Not tainted 3.12.0+ #49 task: c03e2974 ti: c03d8000 task.ti: c03d8000 PC is at vgacon_startup+0x258/0x39c LR is at request_resource+0x10/0x1c pc : [<c01725d0>] lr : [<c0022b50>] psr: 60000053 sp : c03d9f68 ip : 000b8000 fp : c03d9f8c r10: 000055aa r9 : 4401a103 r8 : ffffaa55 r7 : c03e357c r6 : c051b460 r5 : 000000ff r4 : 000c0000 r3 : 000b8000 r2 : c03e0514 r1 : 00000000 r0 : c0304971 Flags: nZCv IRQs on FIQs off Mode SVC_32 ISA ARM Segment kernel which is an access to the 0xb8000 without the PCI offset required to make it work. Fixes: cc22b4c ("ARM: set vga memory base at run-time") Signed-off-by: Russell King <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent d47787b commit d877bdf

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

arch/arm/mach-footbridge/common.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include <linux/init.h>
1616
#include <linux/io.h>
1717
#include <linux/spinlock.h>
18+
#include <video/vga.h>
1819

1920
#include <asm/pgtable.h>
2021
#include <asm/page.h>
@@ -196,6 +197,8 @@ void __init footbridge_map_io(void)
196197
iotable_init(ebsa285_host_io_desc, ARRAY_SIZE(ebsa285_host_io_desc));
197198
pci_map_io_early(__phys_to_pfn(DC21285_PCI_IO));
198199
}
200+
201+
vga_base = PCIMEM_BASE;
199202
}
200203

201204
void footbridge_restart(char mode, const char *cmd)

arch/arm/mach-footbridge/dc21285.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
#include <linux/irq.h>
1919
#include <linux/io.h>
2020
#include <linux/spinlock.h>
21-
#include <video/vga.h>
2221

2322
#include <asm/irq.h>
2423
#include <asm/mach/pci.h>
@@ -291,7 +290,6 @@ void __init dc21285_preinit(void)
291290
int cfn_mode;
292291

293292
pcibios_min_mem = 0x81000000;
294-
vga_base = PCIMEM_BASE;
295293

296294
mem_size = (unsigned int)high_memory - PAGE_OFFSET;
297295
for (mem_mask = 0x00100000; mem_mask < 0x10000000; mem_mask <<= 1)

0 commit comments

Comments
 (0)