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

Ingo Molnar
2009-02-14T22:14:53Z

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

> On Sat, 14 Feb 2009 22:43:12 +0100
> Ingo Molnar <mingo@elte.hu> wrote:
> [...]
> >
> > Applied to tip:x86/urgent [for v2.6.29], thanks guys!
> >
> > Did i get the impact-line below right?
> >
> > Ingo
> >
>
> More like -
>
> Impact: garbled display, laptop is unusable
>
> ;)

ah, okay :-) Serious regression that warrants urgent upstream routing.

> The DCON detection code determines whether there's a DCON attached
> based upon the model (any XO model >= B2 is assumed to have a DCON).
> The LXFB driver determines which mode to use based upon whether or not
> it thinks there's a DCON attached, and the DCON/LXFB can't deal w/
> standard modes.
>
> So, the result is that LXFB attempts to use some random standard mode
> rather than the DCON-required 1200x900, and the display is unusable.

Where did my git grepping skills go wrong?

I git-grepped the code and this is the scope i found:

olpc_platform_info.boardrev is used for:

- a printk
- olpc_board_at_least() which is used in:
- drivers/input/mouse/hgpk.c: mouse driver quirk
- sound/pci/cs5535audio/cs5535audio_olpc.c: audio quirk

aha. I missed this roundabout impact:

- arch/x86/kernel/olpc.c: OLPC_F_DCON flag
- which is used in olpc_has_dcon(), which is used in:
- drivers/video/geode/gxfb_core.c: GX modes db
[ouch if this goes wrong!]
- drivers/video/geode/lxfb_core.c: ditto

So i guess the mouse and audio quirk point was correct too, but the
major impact is the graphics mode array mismatch and the resulting
nonsensical mode setting, right?

Ingo