Re: [PATCH] olpc: fix model detection without OFW

Ingo Molnar
2009-02-14T21:43:49Z

* Andres Salomon <dilinger@queued.net> wrote:

> As discussed on IRC, this has the Dilinger Seal Of Approval (tm).
>
> Acked-by: Andres Salomon <dilinger@debian.org>

> On Fri, 13 Feb 2009 20:56:18 -0500
> Chris Ball <cjb@laptop.org> wrote:
>
> > Harvey's endianness patch (e51a1ac2dfca9ad869471e88f828281db7e810c0)

> > breaks model comparison on OLPC; the value 0xc2 needs to be scaled
> > up by olpc_board(). The pre-patch version was wrong, but accidentally
> > worked anyway (big-endian 0xc2 is big enough to satisfy all other
> > board revisions, but little endian 0xc2 is not).
> >
> > Signed-off-by: Chris Ball <cjb@laptop.org>

Applied to tip:x86/urgent [for v2.6.29], thanks guys!

Did i get the impact-line below right?

Ingo

---------------->
>From 307250cda516547c0b0fe70dc3a3626bd82820cc Mon Sep 17 00:00:00 2001
From: Chris Ball <cjb@laptop.org>
Date: Fri, 13 Feb 2009 20:56:18 -0500
Subject: [PATCH] x86, olpc: fix model detection without OFW

Impact: make certain OLPC-board revision based quirks [mouse, sound] work properly

Harvey's endianness patch (e51a1ac2dfca9ad869471e88f828281db7e810c0)
breaks model comparison on OLPC; the value 0xc2 needs to be scaled
up by olpc_board(). The pre-patch version was wrong, but accidentally
worked anyway (big-endian 0xc2 is big enough to satisfy all other
board revisions, but little endian 0xc2 is not).

Signed-off-by: Chris Ball <cjb@laptop.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Acked-by: Andres Salomon <dilinger@queued.net>
Cc: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
arch/x86/kernel/olpc.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/x86/kernel/olpc.c b/arch/x86/kernel/olpc.c
index 7a13fac..4006c52 100644
--- a/arch/x86/kernel/olpc.c
+++ b/arch/x86/kernel/olpc.c
@@ -203,7 +203,7 @@ static void __init platform_detect(void)
static void __init platform_detect(void)
{
/* stopgap until OFW support is added to the kernel */
- olpc_platform_info.boardrev = 0xc2;
+ olpc_platform_info.boardrev = olpc_board(0xc2);
}
#endif