rapidio: modify configuration to support PCI-SRIO controller
Alexandre Bounine [Wed, 23 Mar 2011 23:43:03 +0000 (16:43 -0700)]
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: Alexandre Bounine <alexandre.bounine@idt.com>
Acked-by: Kumar 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: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

arch/mips/Kconfig
arch/powerpc/Kconfig
arch/powerpc/kernel/cpu_setup_fsl_booke.S
arch/powerpc/sysdev/Makefile
arch/x86/Kconfig
drivers/net/rionet.c
drivers/rapidio/rio-sysfs.c

index 6e9811d..9905e2e 100644 (file)
@@ -2344,6 +2344,16 @@ source "drivers/pcmcia/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
 
 menu "Executable file formats"
index ce9ff55..3584e4d 100644 (file)
@@ -772,11 +772,19 @@ config HAS_RAPIDIO
 
 config RAPIDIO
        bool "RapidIO support"
-       depends on HAS_RAPIDIO
+       depends on HAS_RAPIDIO || PCI
        help
          If you say Y here, the kernel will include drivers and
          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"
 
 endmenu
index 5c518ad..9136111 100644 (file)
@@ -64,7 +64,7 @@ _GLOBAL(__setup_cpu_e500v2)
        bl      __e500_icache_setup
        bl      __e500_dcache_setup
        bl      __setup_e500_ivors
-#ifdef CONFIG_RAPIDIO
+#ifdef CONFIG_FSL_RIO
        /* Ensure that RFXE is set */
        mfspr   r3,SPRN_HID1
        oris    r3,r3,HID1_RFXE@h
index 9c29734..1e0c933 100644 (file)
@@ -20,7 +20,7 @@ obj-$(CONFIG_FSL_GTM)         += fsl_gtm.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_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_QUICC_ENGINE)     += qe_lib/
 obj-$(CONFIG_PPC_BESTCOMM)     += bestcomm/
index d57ddd7..140e254 100644 (file)
@@ -2096,6 +2096,16 @@ source "drivers/pcmcia/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
 
 
index 44150f2..678e577 100644 (file)
@@ -382,7 +382,7 @@ static void rionet_remove(struct rio_dev *rdev)
        struct rionet_peer *peer, *tmp;
 
        free_pages((unsigned long)rionet_active, rdev->net->hport->sys_size ?
-                                       __ilog2(sizeof(void *)) + 4 : 0);
+                                       __fls(sizeof(void *)) + 4 : 0);
        unregister_netdev(ndev);
        free_netdev(ndev);
 
@@ -450,7 +450,7 @@ static int rionet_setup_netdev(struct rio_mport *mport)
        }
 
        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) {
                rc = -ENOMEM;
                goto out;
index 0d89432..4dbe360 100644 (file)
@@ -14,6 +14,7 @@
 #include <linux/rio.h>
 #include <linux/rio_drv.h>
 #include <linux/stat.h>
+#include <linux/capability.h>
 
 #include "rio.h"