mirror of
https://github.com/torvalds/linux.git
synced 2024-12-23 11:21:33 +00:00
e1318391fd
This addresses a section mismatch problem in the IM-PD1 driver in the Integrator/AP. The IM-PD1 contains a VIC interrupt controller and therefore the driver calls vic_init_cascaded() which is marked __init as irqchips are simply not hot-pluggable and specifically the VIC is assumed to initiate only on boot. However the module driver model of the Integrator LM bus assumes that logic tile drivers can be probed at runtime. This is not really the case for IM-PD1: these tiles are detected at boot and they cannot be plugged into a running system. Before this patch it is of course possible to modprobe them later. By first forcing the IM-PD1 to bool we make sure this driver gets compiled into the kernel, and we know it will be probed only at boot time when the tiles are detected, so we can tag its probe function __init_refok as we know it won't be called after boot now, and the section mismatch problem goes away. As a side effect, sysfs binding from userspace becomes impossible, so we tag the driver to suppress the bind/unbind sysfs attributes. Cc: Russell King <linux@arm.linux.org.uk> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
47 lines
1.1 KiB
Plaintext
47 lines
1.1 KiB
Plaintext
if ARCH_INTEGRATOR
|
|
|
|
menu "Integrator Options"
|
|
|
|
config ARCH_INTEGRATOR_AP
|
|
bool "Support Integrator/AP and Integrator/PP2 platforms"
|
|
select CLKSRC_MMIO
|
|
select MIGHT_HAVE_PCI
|
|
select SERIAL_AMBA_PL010 if TTY
|
|
select SERIAL_AMBA_PL010_CONSOLE if TTY
|
|
select SOC_BUS
|
|
help
|
|
Include support for the ARM(R) Integrator/AP and
|
|
Integrator/PP2 platforms.
|
|
|
|
config ARCH_INTEGRATOR_CP
|
|
bool "Support Integrator/CP platform"
|
|
select ARCH_CINTEGRATOR
|
|
select ARM_TIMER_SP804
|
|
select PLAT_VERSATILE_CLCD
|
|
select SERIAL_AMBA_PL011 if TTY
|
|
select SERIAL_AMBA_PL011_CONSOLE if TTY
|
|
select SOC_BUS
|
|
help
|
|
Include support for the ARM(R) Integrator CP platform.
|
|
|
|
config ARCH_CINTEGRATOR
|
|
bool
|
|
|
|
config INTEGRATOR_IMPD1
|
|
bool "Include support for Integrator/IM-PD1"
|
|
depends on ARCH_INTEGRATOR_AP
|
|
select ARCH_REQUIRE_GPIOLIB
|
|
select ARM_VIC
|
|
select GPIO_PL061 if GPIOLIB
|
|
help
|
|
The IM-PD1 is an add-on logic module for the Integrator which
|
|
allows ARM(R) Ltd PrimeCells to be developed and evaluated.
|
|
The IM-PD1 can be found on the Integrator/PP2 platform.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called impd1.
|
|
|
|
endmenu
|
|
|
|
endif
|