Commit 388b78ad authored by Alexandre Bounine's avatar Alexandre Bounine Committed by Linus Torvalds

rapidio: modify configuration to support PCI-SRIO controller

1. Add an option to include RapidIO support if the PCI is available.
2. Add FSL_RIO configuration option to enable controller selection.
3. Add RapidIO support option into x86 and MIPS architectures.
Signed-off-by: default avatarAlexandre Bounine <alexandre.bounine@idt.com>
Acked-by: default avatarKumar Gala <galak@kernel.crashing.org>
Cc: Matt Porter <mporter@kernel.crashing.org>
Cc: Li Yang <leoli@freescale.com>
Cc: Thomas Moll <thomas.moll@sysgo.com>
Cc: Micha Nelissen <micha@neli.hopto.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent f8f06269
...@@ -2344,6 +2344,16 @@ source "drivers/pcmcia/Kconfig" ...@@ -2344,6 +2344,16 @@ source "drivers/pcmcia/Kconfig"
source "drivers/pci/hotplug/Kconfig" source "drivers/pci/hotplug/Kconfig"
config RAPIDIO
bool "RapidIO support"
depends on PCI
default n
help
If you say Y here, the kernel will include drivers and
infrastructure code to support RapidIO interconnect devices.
source "drivers/rapidio/Kconfig"
endmenu endmenu
menu "Executable file formats" menu "Executable file formats"
......
...@@ -772,11 +772,19 @@ config HAS_RAPIDIO ...@@ -772,11 +772,19 @@ config HAS_RAPIDIO
config RAPIDIO config RAPIDIO
bool "RapidIO support" bool "RapidIO support"
depends on HAS_RAPIDIO depends on HAS_RAPIDIO || PCI
help help
If you say Y here, the kernel will include drivers and If you say Y here, the kernel will include drivers and
infrastructure code to support RapidIO interconnect devices. infrastructure code to support RapidIO interconnect devices.
config FSL_RIO
bool "Freescale Embedded SRIO Controller support"
depends on RAPIDIO && HAS_RAPIDIO
default "n"
---help---
Include support for RapidIO controller on Freescale embedded
processors (MPC8548, MPC8641, etc).
source "drivers/rapidio/Kconfig" source "drivers/rapidio/Kconfig"
endmenu endmenu
......
...@@ -64,7 +64,7 @@ _GLOBAL(__setup_cpu_e500v2) ...@@ -64,7 +64,7 @@ _GLOBAL(__setup_cpu_e500v2)
bl __e500_icache_setup bl __e500_icache_setup
bl __e500_dcache_setup bl __e500_dcache_setup
bl __setup_e500_ivors bl __setup_e500_ivors
#ifdef CONFIG_RAPIDIO #ifdef CONFIG_FSL_RIO
/* Ensure that RFXE is set */ /* Ensure that RFXE is set */
mfspr r3,SPRN_HID1 mfspr r3,SPRN_HID1
oris r3,r3,HID1_RFXE@h oris r3,r3,HID1_RFXE@h
......
...@@ -20,7 +20,7 @@ obj-$(CONFIG_FSL_GTM) += fsl_gtm.o ...@@ -20,7 +20,7 @@ obj-$(CONFIG_FSL_GTM) += fsl_gtm.o
obj-$(CONFIG_MPC8xxx_GPIO) += mpc8xxx_gpio.o obj-$(CONFIG_MPC8xxx_GPIO) += mpc8xxx_gpio.o
obj-$(CONFIG_FSL_85XX_CACHE_SRAM) += fsl_85xx_l2ctlr.o fsl_85xx_cache_sram.o obj-$(CONFIG_FSL_85XX_CACHE_SRAM) += fsl_85xx_l2ctlr.o fsl_85xx_cache_sram.o
obj-$(CONFIG_SIMPLE_GPIO) += simple_gpio.o obj-$(CONFIG_SIMPLE_GPIO) += simple_gpio.o
obj-$(CONFIG_RAPIDIO) += fsl_rio.o obj-$(CONFIG_FSL_RIO) += fsl_rio.o
obj-$(CONFIG_TSI108_BRIDGE) += tsi108_pci.o tsi108_dev.o obj-$(CONFIG_TSI108_BRIDGE) += tsi108_pci.o tsi108_dev.o
obj-$(CONFIG_QUICC_ENGINE) += qe_lib/ obj-$(CONFIG_QUICC_ENGINE) += qe_lib/
obj-$(CONFIG_PPC_BESTCOMM) += bestcomm/ obj-$(CONFIG_PPC_BESTCOMM) += bestcomm/
......
...@@ -2096,6 +2096,16 @@ source "drivers/pcmcia/Kconfig" ...@@ -2096,6 +2096,16 @@ source "drivers/pcmcia/Kconfig"
source "drivers/pci/hotplug/Kconfig" source "drivers/pci/hotplug/Kconfig"
config RAPIDIO
bool "RapidIO support"
depends on PCI
default n
help
If you say Y here, the kernel will include drivers and
infrastructure code to support RapidIO interconnect devices.
source "drivers/rapidio/Kconfig"
endmenu endmenu
......
...@@ -382,7 +382,7 @@ static void rionet_remove(struct rio_dev *rdev) ...@@ -382,7 +382,7 @@ static void rionet_remove(struct rio_dev *rdev)
struct rionet_peer *peer, *tmp; struct rionet_peer *peer, *tmp;
free_pages((unsigned long)rionet_active, rdev->net->hport->sys_size ? free_pages((unsigned long)rionet_active, rdev->net->hport->sys_size ?
__ilog2(sizeof(void *)) + 4 : 0); __fls(sizeof(void *)) + 4 : 0);
unregister_netdev(ndev); unregister_netdev(ndev);
free_netdev(ndev); free_netdev(ndev);
...@@ -450,7 +450,7 @@ static int rionet_setup_netdev(struct rio_mport *mport) ...@@ -450,7 +450,7 @@ static int rionet_setup_netdev(struct rio_mport *mport)
} }
rionet_active = (struct rio_dev **)__get_free_pages(GFP_KERNEL, rionet_active = (struct rio_dev **)__get_free_pages(GFP_KERNEL,
mport->sys_size ? __ilog2(sizeof(void *)) + 4 : 0); mport->sys_size ? __fls(sizeof(void *)) + 4 : 0);
if (!rionet_active) { if (!rionet_active) {
rc = -ENOMEM; rc = -ENOMEM;
goto out; goto out;
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include <linux/rio.h> #include <linux/rio.h>
#include <linux/rio_drv.h> #include <linux/rio_drv.h>
#include <linux/stat.h> #include <linux/stat.h>
#include <linux/capability.h>
#include "rio.h" #include "rio.h"
......
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