From ab74628c100d0b6a883306ff2d611c2cb743df36 Mon Sep 17 00:00:00 2001
From: Florian Fainelli <florian@openwrt.org>
Date: Sun, 19 Jun 2011 20:46:00 +0000
Subject: [PATCH] dev-spi.c checks for running CPU, not board code

SVN-Revision: 27236
---
 target/linux/brcm63xx/patches-2.6.39/240-spi.patch     | 10 ++++++----
 .../brcm63xx/patches-2.6.39/452-board_V2500V.patch     |  2 +-
 target/linux/brcm63xx/patches-3.0/240-spi.patch        | 10 ++++++----
 .../linux/brcm63xx/patches-3.0/452-board_V2500V.patch  |  2 +-
 4 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/target/linux/brcm63xx/patches-2.6.39/240-spi.patch b/target/linux/brcm63xx/patches-2.6.39/240-spi.patch
index d882c21832..57149c27d1 100644
--- a/target/linux/brcm63xx/patches-2.6.39/240-spi.patch
+++ b/target/linux/brcm63xx/patches-2.6.39/240-spi.patch
@@ -26,7 +26,7 @@
  	[IRQ_DSL]		= BCM_6358_DSL_IRQ,
 --- /dev/null
 +++ b/arch/mips/bcm63xx/dev-spi.c
-@@ -0,0 +1,128 @@
+@@ -0,0 +1,131 @@
 +/*
 + * This file is subject to the terms and conditions of the GNU General Public
 + * License.  See the file "COPYING" in the main directory of this archive
@@ -144,6 +144,9 @@
 +	spi_resources[0].end += RSET_SPI_SIZE - 1;
 +	spi_resources[1].start = bcm63xx_get_irq_number(IRQ_SPI);
 +
++	if (BCMCPU_IS_6345())
++		return -ENODEV;
++
 +	/* Fill in platform data */
 +	if (BCMCPU_IS_6338() || BCMCPU_IS_6348())
 +		spi_pdata.fifo_size = SPI_BCM_6338_SPI_MSG_DATA_SIZE;
@@ -990,12 +993,11 @@
  #include <board_bcm963xx.h>
  
  #define PFX	"board_bcm963xx: "
-@@ -931,6 +932,9 @@ int __init board_register_devices(void)
+@@ -931,6 +932,8 @@ int __init board_register_devices(void)
  	if (board.num_spis)
  		spi_register_board_info(board.spis, board.num_spis);
  
-+	if (!BCMCPU_IS_6345())
-+		bcm63xx_spi_register();
++	bcm63xx_spi_register();
 +
  	/* read base address of boot chip select (0) */
  	if (BCMCPU_IS_6345())
diff --git a/target/linux/brcm63xx/patches-2.6.39/452-board_V2500V.patch b/target/linux/brcm63xx/patches-2.6.39/452-board_V2500V.patch
index 3028865273..91cb629d8e 100644
--- a/target/linux/brcm63xx/patches-2.6.39/452-board_V2500V.patch
+++ b/target/linux/brcm63xx/patches-2.6.39/452-board_V2500V.patch
@@ -95,7 +95,7 @@
  
  	/* dump cfe version */
  	cfe = boot_addr + BCM963XX_CFE_VERSION_OFFSET;
-@@ -2264,6 +2338,14 @@ int __init board_register_devices(void)
+@@ -2263,6 +2337,14 @@ int __init board_register_devices(void)
  		val = bcm_mpi_readl(MPI_CSBASE_REG(0));
  		val &= MPI_CSBASE_BASE_MASK;
  	}
diff --git a/target/linux/brcm63xx/patches-3.0/240-spi.patch b/target/linux/brcm63xx/patches-3.0/240-spi.patch
index a567a7d3e8..0757e336d0 100644
--- a/target/linux/brcm63xx/patches-3.0/240-spi.patch
+++ b/target/linux/brcm63xx/patches-3.0/240-spi.patch
@@ -26,7 +26,7 @@
  	[IRQ_DSL]		= BCM_6358_DSL_IRQ,
 --- /dev/null
 +++ b/arch/mips/bcm63xx/dev-spi.c
-@@ -0,0 +1,128 @@
+@@ -0,0 +1,131 @@
 +/*
 + * This file is subject to the terms and conditions of the GNU General Public
 + * License.  See the file "COPYING" in the main directory of this archive
@@ -144,6 +144,9 @@
 +	spi_resources[0].end += RSET_SPI_SIZE - 1;
 +	spi_resources[1].start = bcm63xx_get_irq_number(IRQ_SPI);
 +
++	if (BCMCPU_IS_6345())
++		return -ENODEV;
++
 +	/* Fill in platform data */
 +	if (BCMCPU_IS_6338() || BCMCPU_IS_6348())
 +		spi_pdata.fifo_size = SPI_BCM_6338_SPI_MSG_DATA_SIZE;
@@ -990,12 +993,11 @@
  #include <board_bcm963xx.h>
  
  #define PFX	"board_bcm963xx: "
-@@ -943,6 +944,9 @@ int __init board_register_devices(void)
+@@ -943,6 +944,8 @@ int __init board_register_devices(void)
  	if (board.num_spis)
  		spi_register_board_info(board.spis, board.num_spis);
  
-+	if (!BCMCPU_IS_6345())
-+		bcm63xx_spi_register();
++	bcm63xx_spi_register();
 +
  	/* read base address of boot chip select (0) */
  	if (BCMCPU_IS_6345())
diff --git a/target/linux/brcm63xx/patches-3.0/452-board_V2500V.patch b/target/linux/brcm63xx/patches-3.0/452-board_V2500V.patch
index 210008a111..594467e572 100644
--- a/target/linux/brcm63xx/patches-3.0/452-board_V2500V.patch
+++ b/target/linux/brcm63xx/patches-3.0/452-board_V2500V.patch
@@ -95,7 +95,7 @@
  
  	/* dump cfe version */
  	cfe = boot_addr + BCM963XX_CFE_VERSION_OFFSET;
-@@ -2276,6 +2350,14 @@ int __init board_register_devices(void)
+@@ -2275,6 +2349,14 @@ int __init board_register_devices(void)
  		val = bcm_mpi_readl(MPI_CSBASE_REG(0));
  		val &= MPI_CSBASE_BASE_MASK;
  	}
-- 
GitLab