• Daniel Drake's avatar
    drivers/platform/olpc/olpc-ec.c: initialise earlier · 93dbc1b3
    Daniel Drake authored
    Being a low-level component, various drivers (e.g.  olpc-battery) assume
    that it is ok to communicate with the OLPC Embedded Controller during
    probe.  Therefore the OLPC EC driver must be initialised before other
    drivers try to use it.  This was the case until it was recently moved
    out of arch/x86 and restructured around commits ac250415 ("Platform:
    OLPC: turn EC driver into a platform_driver") and 85f90cf6 ("x86:
    OLPC: switch over to using new EC driver on x86").
    
    Use arch_initcall so that olpc-ec is readied earlier, matching the
    previous behaviour.
    
    Fixes a regression introduced in Linux-3.6 where various drivers such as
    olpc-battery and olpc-xo1-sci failed to load due to an inability to
    communicate with the EC.  The user-visible effect was a lack of battery
    monitoring, missing ebook/lid switch input devices, etc.
    Signed-off-by: default avatarDaniel Drake <dsd@laptop.org>
    Cc: Andres Salomon <dilinger@queued.net>
    Cc: Paul Fox <pgf@laptop.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    93dbc1b3
olpc-ec.c 8.01 KB