2ec3ba69fa
Rework RapidIO switch drivers to add an option to build them as loadable kernel modules. This patch removes RapidIO-specific vmlinux section and converts switch drivers to be compatible with LDM driver registration method. To simplify registration of device-specific callback routines this patch introduces rio_switch_ops data structure. The sw_sysfs() callback is removed from the list of device-specific operations because under the new structure its functions can be handled by switch driver's probe() and remove() routines. If a specific switch device driver is not loaded the RapidIO subsystem core will use default standard-based operations to configure a switch. Because the current implementation of RapidIO enumeration/discovery method relies on availability of device-specific operations for error management, switch device drivers must be loaded before the RapidIO enumeration/discovery starts. This patch also moves several common routines from enumeration/discovery module into the RapidIO core code to make switch-specific operations accessible to all components of RapidIO subsystem. Signed-off-by: Alexandre Bounine <alexandre.bounine@idt.com> Cc: Matt Porter <mporter@kernel.crashing.org> Cc: Li Yang <leoli@freescale.com> Cc: Kumar Gala <galak@kernel.crashing.org> Cc: Andre van Herk <andre.van.herk@Prodrive.nl> Cc: Micha Nelissen <micha.nelissen@Prodrive.nl> Cc: Stef van Os <stef.van.os@Prodrive.nl> Cc: Jean Delvare <jdelvare@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
76 lines
2.2 KiB
Plaintext
76 lines
2.2 KiB
Plaintext
#
|
|
# RapidIO configuration
|
|
#
|
|
source "drivers/rapidio/devices/Kconfig"
|
|
|
|
config RAPIDIO_DISC_TIMEOUT
|
|
int "Discovery timeout duration (seconds)"
|
|
depends on RAPIDIO
|
|
default "30"
|
|
---help---
|
|
Amount of time a discovery node waits for a host to complete
|
|
enumeration before giving up.
|
|
|
|
config RAPIDIO_ENABLE_RX_TX_PORTS
|
|
bool "Enable RapidIO Input/Output Ports"
|
|
depends on RAPIDIO
|
|
---help---
|
|
The RapidIO specification describes a Output port transmit
|
|
enable and a Input port receive enable. The recommended state
|
|
for Input ports and Output ports should be disabled. When
|
|
this switch is set the RapidIO subsystem will enable all
|
|
ports for Input/Output direction to allow other traffic
|
|
than Maintenance transfers.
|
|
|
|
config RAPIDIO_DMA_ENGINE
|
|
bool "DMA Engine support for RapidIO"
|
|
depends on RAPIDIO
|
|
select DMADEVICES
|
|
select DMA_ENGINE
|
|
help
|
|
Say Y here if you want to use DMA Engine frameork for RapidIO data
|
|
transfers to/from target RIO devices. RapidIO uses NREAD and
|
|
NWRITE (NWRITE_R, SWRITE) requests to transfer data between local
|
|
memory and memory on remote target device. You need a DMA controller
|
|
capable to perform data transfers to/from RapidIO.
|
|
|
|
If you are unsure about this, say Y here.
|
|
|
|
config RAPIDIO_DEBUG
|
|
bool "RapidIO subsystem debug messages"
|
|
depends on RAPIDIO
|
|
help
|
|
Say Y here if you want the RapidIO subsystem to produce a bunch of
|
|
debug messages to the system log. Select this if you are having a
|
|
problem with the RapidIO subsystem and want to see more of what is
|
|
going on.
|
|
|
|
If you are unsure about this, say N here.
|
|
|
|
choice
|
|
prompt "Enumeration method"
|
|
depends on RAPIDIO
|
|
default RAPIDIO_ENUM_BASIC
|
|
help
|
|
There are different enumeration and discovery mechanisms offered
|
|
for RapidIO subsystem. You may select single built-in method or
|
|
or any number of methods to be built as modules.
|
|
Selecting a built-in method disables use of loadable methods.
|
|
|
|
If unsure, select Basic built-in.
|
|
|
|
config RAPIDIO_ENUM_BASIC
|
|
tristate "Basic"
|
|
help
|
|
This option includes basic RapidIO fabric enumeration and discovery
|
|
mechanism similar to one described in RapidIO specification Annex 1.
|
|
|
|
endchoice
|
|
|
|
menu "RapidIO Switch drivers"
|
|
depends on RAPIDIO
|
|
|
|
source "drivers/rapidio/switches/Kconfig"
|
|
|
|
endmenu
|