]> git.baikalelectronics.ru Git - kernel.git/commit
ARM: shmobile: r8a7778: Instantiate GIC from C board code in legacy builds
authorMagnus Damm <damm+renesas@opensource.se>
Fri, 16 Jan 2015 01:17:10 +0000 (10:17 +0900)
committerSimon Horman <horms+renesas@verge.net.au>
Sat, 17 Jan 2015 00:28:14 +0000 (09:28 +0900)
commit030da20c67a9705318097b1f5ba73bba0110698d
treed63e2389b180eae48a20562e985d1f3f7335f179
parent96e02ef297153d9967b5cc591db6e7842c3788d3
ARM: shmobile: r8a7778: Instantiate GIC from C board code in legacy builds

As of commit 1c0fa7afaba545fd ("irqchip: gic: Support hierarchy irq
domain."), Bock-W legacy hangs during boot with:

Unable to handle kernel paging request at virtual address cf86a128
pgd = c0004000
[cf86a128] *pgd=6f80041e(bad)
Internal error: Oops: 8000000d [#1] SMP ARM
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.19.0-rc4 #1
Hardware name: bockw
task: cf823b40 ti: cf824000 task.ti: cf824000
PC is at 0xcf86a128
LR is at request_threaded_irq+0xbc/0x124

This happens because the IRQ numbers of the GIC are now virtual, and no
longer match the hardcoded hardware IRQ numbers in the platform board
code.

To fix this, instantiate the GIC from platform board code when compiling
a legacy kernel, like is done for the sh73a0 and r8a7740 legacy code.

Follows same style as the r8a7740 legacy GIC fix by Geert Uytterhoeven,
thanks to him for the initial work.

Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
Acked-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
arch/arm/mach-shmobile/setup-r8a7778.c