Commit fdf90abc authored by Alexandre Bounine's avatar Alexandre Bounine Committed by Linus Torvalds

rapidio: add modular build option for the subsystem core

Add a configuration option to build RapidIO subsystem core code as a
loadable kernel module.  Currently this option is available only for
x86-based platforms, with the additional patch for PowerPC planned to be
provided later.

This patch replaces kernel command line parameter "riohdid=" with its
module-specific analog "rapidio.hdid=".
Signed-off-by: default avatarAlexandre 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: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 94d9bd45
...@@ -2259,11 +2259,11 @@ source "drivers/pcmcia/Kconfig" ...@@ -2259,11 +2259,11 @@ source "drivers/pcmcia/Kconfig"
source "drivers/pci/hotplug/Kconfig" source "drivers/pci/hotplug/Kconfig"
config RAPIDIO config RAPIDIO
bool "RapidIO support" tristate "RapidIO support"
depends on PCI depends on PCI
default n default n
help help
If you say Y here, the kernel will include drivers and If enabled this option will include drivers and the core
infrastructure code to support RapidIO interconnect devices. infrastructure code to support RapidIO interconnect devices.
source "drivers/rapidio/Kconfig" source "drivers/rapidio/Kconfig"
......
# #
# Makefile for RapidIO interconnect services # Makefile for RapidIO interconnect services
# #
obj-y += rio.o rio-access.o rio-driver.o rio-sysfs.o obj-$(CONFIG_RAPIDIO) += rapidio.o
rapidio-y := rio.o rio-access.o rio-driver.o rio-sysfs.o
obj-$(CONFIG_RAPIDIO_ENUM_BASIC) += rio-scan.o obj-$(CONFIG_RAPIDIO_ENUM_BASIC) += rio-scan.o
obj-$(CONFIG_RAPIDIO) += switches/ obj-$(CONFIG_RAPIDIO) += switches/
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
* Copyright 2005 MontaVista Software, Inc. * Copyright 2005 MontaVista Software, Inc.
* Matt Porter <mporter@kernel.crashing.org> * Matt Porter <mporter@kernel.crashing.org>
* *
* Copyright 2009 Integrated Device Technology, Inc. * Copyright 2009 - 2013 Integrated Device Technology, Inc.
* Alex Bounine <alexandre.bounine@idt.com> * Alex Bounine <alexandre.bounine@idt.com>
* *
* This program is free software; you can redistribute it and/or modify it * This program is free software; you can redistribute it and/or modify it
...@@ -30,6 +30,17 @@ ...@@ -30,6 +30,17 @@
#include "rio.h" #include "rio.h"
MODULE_DESCRIPTION("RapidIO Subsystem Core");
MODULE_AUTHOR("Matt Porter <mporter@kernel.crashing.org>");
MODULE_AUTHOR("Alexandre Bounine <alexandre.bounine@idt.com>");
MODULE_LICENSE("GPL");
static int hdid[RIO_MAX_MPORTS];
static int ids_num;
module_param_array(hdid, int, &ids_num, 0);
MODULE_PARM_DESC(hdid,
"Destination ID assignment to local RapidIO controllers");
static LIST_HEAD(rio_devices); static LIST_HEAD(rio_devices);
static DEFINE_SPINLOCK(rio_global_list_lock); static DEFINE_SPINLOCK(rio_global_list_lock);
...@@ -1860,24 +1871,14 @@ int rio_init_mports(void) ...@@ -1860,24 +1871,14 @@ int rio_init_mports(void)
return 0; return 0;
} }
static int hdids[RIO_MAX_MPORTS + 1];
static int rio_get_hdid(int index) static int rio_get_hdid(int index)
{ {
if (!hdids[0] || hdids[0] <= index || index >= RIO_MAX_MPORTS) if (ids_num == 0 || ids_num <= index || index >= RIO_MAX_MPORTS)
return -1; return -1;
return hdids[index + 1]; return hdid[index];
} }
static int rio_hdid_setup(char *str)
{
(void)get_options(str, ARRAY_SIZE(hdids), hdids);
return 1;
}
__setup("riohdid=", rio_hdid_setup);
int rio_register_mport(struct rio_mport *port) int rio_register_mport(struct rio_mport *port)
{ {
struct rio_scan_node *scan = NULL; struct rio_scan_node *scan = NULL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment