Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -2259,11 +2259,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"
+3 −1
Original line number Diff line number Diff line
#
# 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/
+14 −13
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@
 * Copyright 2005 MontaVista Software, Inc.
 * 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>
 *
 * 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 <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 DEFINE_SPINLOCK(rio_global_list_lock);

@@ -1860,24 +1871,14 @@ int rio_init_mports(void)
	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];
}

static int rio_hdid_setup(char *str)
{
	(void)get_options(str, ARRAY_SIZE(hdids), hdids);
	return 1;
	return hdid[index];
}

__setup("riohdid=", rio_hdid_setup);

int rio_register_mport(struct rio_mport *port)
{
	struct rio_scan_node *scan = NULL;