From c9e3de941a1694aeab60a10bd39eb710c975010d Mon Sep 17 00:00:00 2001
From: Herbert Valerio Riedel <hvr@gnu.org>
Date: Sun, 11 Nov 2007 12:05:11 +0100
Subject: [PATCH] [ARM] Orion: MV88F5181 support bits

add MV88F5181 support bits required by D-link DNS-323 patch

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
Acked-by: Tzachi Perelstein <tzachi@marvell.com>
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
 arch/arm/mach-orion/addr-map.c     | 4 +++-
 arch/arm/mach-orion/common.c       | 6 ++++++
 arch/arm/mach-orion/pci.c          | 2 +-
 include/asm-arm/arch-orion/orion.h | 3 +++
 4 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-orion/addr-map.c b/arch/arm/mach-orion/addr-map.c
index ff6e010bccb25..488da3811a680 100644
--- a/arch/arm/mach-orion/addr-map.c
+++ b/arch/arm/mach-orion/addr-map.c
@@ -167,7 +167,9 @@ static int __init orion_cpu_win_can_remap(u32 win)
 	u32 dev, rev;
 
 	orion_pcie_id(&dev, &rev);
-	if ((dev == MV88F5281_DEV_ID && win < 4) || (dev == MV88F5182_DEV_ID && win < 2))
+	if ((dev == MV88F5281_DEV_ID && win < 4)
+	    || (dev == MV88F5182_DEV_ID && win < 2)
+	    || (dev == MV88F5181_DEV_ID && win < 2))
 		return 1;
 
 	return 0;
diff --git a/arch/arm/mach-orion/common.c b/arch/arm/mach-orion/common.c
index 12736fd600041..ff34827f82a56 100644
--- a/arch/arm/mach-orion/common.c
+++ b/arch/arm/mach-orion/common.c
@@ -237,6 +237,12 @@ static void orion_id(u32 *dev, u32 *rev, char **dev_name)
 		} else {
 			*dev_name = "MV88F5182-Rev-Unsupported";
 		}
+	} else if (*dev == MV88F5181_DEV_ID) {
+		if (*rev == MV88F5181_REV_B1) {
+			*dev_name = "MV88F5181-Rev-B1";
+		} else {
+			*dev_name = "MV88F5181-Rev-Unsupported";
+		}
 	} else {
 		*dev_name = "Device-Unknown";
 	}
diff --git a/arch/arm/mach-orion/pci.c b/arch/arm/mach-orion/pci.c
index cf569c6471127..0498d7c69b308 100644
--- a/arch/arm/mach-orion/pci.c
+++ b/arch/arm/mach-orion/pci.c
@@ -154,7 +154,7 @@ static int orion_pcie_rd_conf(struct pci_bus *bus, u32 devfn, int where,
 			PCIE_CONF_REG(where) | PCIE_CONF_ADDR_EN);
 
 	orion_pcie_id(&dev, &rev);
-	if (dev == MV88F5182_DEV_ID) {
+	if (dev == MV88F5181_DEV_ID || dev == MV88F5182_DEV_ID) {
 		/* extended register space */
 		pcie_addr = ORION_PCIE_WA_BASE;
 		pcie_addr |= PCIE_CONF_BUS(bus->number) |
diff --git a/include/asm-arm/arch-orion/orion.h b/include/asm-arm/arch-orion/orion.h
index 061c03c5a17e2..f787f752e58c6 100644
--- a/include/asm-arm/arch-orion/orion.h
+++ b/include/asm-arm/arch-orion/orion.h
@@ -43,6 +43,9 @@
 /*******************************************************************************
  * Supported Devices & Revisions
  ******************************************************************************/
+/* Orion-1 (88F5181) */
+#define MV88F5181_DEV_ID	0x5181
+#define MV88F5181_REV_B1	3
 /* Orion-NAS (88F5182) */
 #define MV88F5182_DEV_ID	0x5182
 #define MV88F5182_REV_A2	2
-- 
GitLab