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: Alexandre Bounine alexandre.boun...@idt.com
Cc: Matt Porter mpor...@kernel.crashing.org
Cc: Li Yang le...@freescale.com
Cc: Kumar Gala ga...@kernel.crashing.org
Cc: Andre van Herk andre.van.h...@prodrive.nl
Cc: Micha Nelissen micha.nelis...@prodrive.nl
Cc: Stef van Os stef.van...@prodrive.nl
Cc: Jean Delvare jdelv...@suse.de
---
arch/x86/Kconfig |4 ++--
drivers/rapidio/Makefile |4 +++-
drivers/rapidio/rio.c| 27 ++-
3 files changed, 19 insertions(+), 16 deletions(-)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index fe120da..583ac42 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -2246,11 +2246,11 @@ source drivers/pcmcia/Kconfig
source drivers/pci/hotplug/Kconfig
config RAPIDIO
- bool RapidIO support
+ tristate RapidIO support
depends on PCI
default n
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.
source drivers/rapidio/Kconfig
diff --git a/drivers/rapidio/Makefile b/drivers/rapidio/Makefile
index 3036702..6271ada 100644
--- a/drivers/rapidio/Makefile
+++ b/drivers/rapidio/Makefile
@@ -1,7 +1,9 @@
#
# 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) += switches/
diff --git a/drivers/rapidio/rio.c b/drivers/rapidio/rio.c
index 2054b62..f4f30af 100644
--- a/drivers/rapidio/rio.c
+++ b/drivers/rapidio/rio.c
@@ -5,7 +5,7 @@
* Copyright 2005 MontaVista Software, Inc.
* Matt Porter mpor...@kernel.crashing.org
*
- * Copyright 2009 Integrated Device Technology, Inc.
+ * Copyright 2009 - 2013 Integrated Device Technology, Inc.
* Alex Bounine alexandre.boun...@idt.com
*
* This program is free software; you can redistribute it and/or modify it
@@ -30,6 +30,17 @@
#include rio.h
+MODULE_DESCRIPTION(RapidIO Subsystem Core);
+MODULE_AUTHOR(Matt Porter mpor...@kernel.crashing.org);
+MODULE_AUTHOR(Alexandre Bounine alexandre.boun...@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 DEFINE_SPINLOCK(rio_global_list_lock);
@@ -1860,24 +1871,14 @@ no_disc:
return 0;
}
-static int hdids[RIO_MAX_MPORTS + 1];
-
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 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)
{
struct rio_scan_node *scan = NULL;
--
1.7.8.4
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev