From a3ee739491845c39e329196eb80ec43ec7bac670 Mon Sep 17 00:00:00 2001 From: Lennert Buytenhek Date: Sat, 9 Aug 2008 15:17:27 +0200 Subject: [PATCH] --- yaml --- r: 108629 b: refs/heads/master c: ce72e36ed1a57ba086270039c7d6fac9bf1c5fbc h: refs/heads/master i: 108627: 4a5a2d93eed41f4e7a14bd9c1c4b634577816113 v: v3 --- [refs] | 2 +- trunk/arch/arm/mach-orion5x/common.c | 11 +++++++++++ trunk/arch/arm/mach-orion5x/include/mach/orion5x.h | 1 + 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 96b164d1b0b6..0b2770b7e405 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6f088f1d215be5250582b974f83f0e3aa6ad3a28 +refs/heads/master: ce72e36ed1a57ba086270039c7d6fac9bf1c5fbc diff --git a/trunk/arch/arm/mach-orion5x/common.c b/trunk/arch/arm/mach-orion5x/common.c index b44f26d7613b..8f2146bd8a94 100644 --- a/trunk/arch/arm/mach-orion5x/common.c +++ b/trunk/arch/arm/mach-orion5x/common.c @@ -382,6 +382,8 @@ static void __init orion5x_id(u32 *dev, u32 *rev, char **dev_name) *dev_name = "MV88F5281-D2"; } else if (*rev == MV88F5281_REV_D1) { *dev_name = "MV88F5281-D1"; + } else if (*rev == MV88F5281_REV_D0) { + *dev_name = "MV88F5281-D0"; } else { *dev_name = "MV88F5281-Rev-Unsupported"; } @@ -416,6 +418,15 @@ void __init orion5x_init(void) * Setup Orion address map */ orion5x_setup_cpu_mbus_bridge(); + + /* + * Don't issue "Wait for Interrupt" instruction if we are + * running on D0 5281 silicon. + */ + if (dev == MV88F5281_DEV_ID && rev == MV88F5281_REV_D0) { + printk(KERN_INFO "Orion: Applying 5281 D0 WFI workaround.\n"); + disable_hlt(); + } } /* diff --git a/trunk/arch/arm/mach-orion5x/include/mach/orion5x.h b/trunk/arch/arm/mach-orion5x/include/mach/orion5x.h index f52a7d65bec2..77978dbd5a92 100644 --- a/trunk/arch/arm/mach-orion5x/include/mach/orion5x.h +++ b/trunk/arch/arm/mach-orion5x/include/mach/orion5x.h @@ -73,6 +73,7 @@ #define MV88F5182_REV_A2 2 /* Orion-2 (88F5281) */ #define MV88F5281_DEV_ID 0x5281 +#define MV88F5281_REV_D0 4 #define MV88F5281_REV_D1 5 #define MV88F5281_REV_D2 6