lkml.org 
[lkml]   [2008]   [Jun]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH, RFC] Earlier I2C initialization
    David Brownell wrote:
    > On Monday 09 June 2008, Ryan Mallon wrote:
    >
    >>> Talk to i2c and framebuffer people about changing the link order.
    >>>
    >>> i2c should really be initialised before framebuffer devices because
    >>> framebuffer devices tend to want to read DDC from monitors, which is
    >>> basically a I2C EEPROM in the monitor.
    >>>
    >>> ... but there's probably some reason why it's done the way it is today,
    >>> and changing it could well cause stuff to break.
    >>>
    >> We have made i2c the first driver subsystem to come up in our 2.6.20
    >> kernel since we use i2c io expanders for power domain control. All we
    >> did was change drivers/Makefile so that obj-$(CONFIG_I2C) += i2c/ is at
    >> the very top of the file. We didn't have any problems with doing this.
    >> YMMV of course.
    >>
    >
    > OMAP does much the same thing, for the same reason, and the I2C
    > adapter gets initialized earlier too (so power management chips
    > will be fully usable before driver_initcall code runs).
    >
    > Unless there's a downside on x86, I'd just suggest someone submit
    > a patch moving I2C init "early" so it merges in 2.6.27 ... cc to
    > LKML to scare out more potential problems, but I have a hard time
    > imagining there'd really be any.
    >
    > - Dave
    >
    Okay, heres the patch. Is untested though (other than our experience
    under 2.6.20), so it probably needs some people to test. I'm not
    subscribed to LKML, so can people CC me if necessary.

    Signed-off-by: Ryan Mallon <ryan@bluewatersys.com>

    diff --git a/drivers/Makefile b/drivers/Makefile
    index f65deda..9eaf236 100644
    --- a/drivers/Makefile
    +++ b/drivers/Makefile
    @@ -5,6 +5,7 @@
    # Rewritten to use lists instead of if-statements.
    #

    +obj-y += i2c/
    obj-$(CONFIG_HAVE_GPIO_LIB) += gpio/
    obj-$(CONFIG_PCI) += pci/
    obj-$(CONFIG_PARISC) += parisc/
    @@ -61,7 +62,6 @@ obj-$(CONFIG_GAMEPORT) += input/gameport/
    obj-$(CONFIG_INPUT) += input/
    obj-$(CONFIG_I2O) += message/
    obj-$(CONFIG_RTC_LIB) += rtc/
    -obj-y += i2c/
    obj-$(CONFIG_W1) += w1/
    obj-$(CONFIG_POWER_SUPPLY) += power/
    obj-$(CONFIG_HWMON) += hwmon/


    \
     
     \ /
      Last update: 2008-06-09 23:37    [W:2.664 / U:0.064 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site