From: Robert Emanuele on
Greetings,

Hopefully this is an easy question but I haven't found a solution yet.

On my at91sam9g45 platform I need my i2c drivers to load before the
framebuffer driver. The i2c drivers control a power management IC
which is needed to enable the graphics controller.

Is there a way to set up that order?

Thank you,

Rob Emanuele
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Linus Walleij on
2010/5/26 Robert Emanuele <rob(a)emanuele.us>:

> On my at91sam9g45 platform I need my i2c drivers to load before the
> framebuffer driver. �The i2c drivers control a power management IC
> which is needed to enable the graphics controller.
>
> Is there a way to set up that order?

The usual trick (which you can find in a lot of other I2C busses) is to use
a core_initcall() instead of module_init().

You find the different init levels in include/linux/init.h

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Linus Walleij on
2010/5/26 Linus Walleij <linus.ml.walleij(a)gmail.com>:
> 2010/5/26 Robert Emanuele <rob(a)emanuele.us>:
>
>> On my at91sam9g45 platform I need my i2c drivers to load before the
>> framebuffer driver. �The i2c drivers control a power management IC
>> which is needed to enable the graphics controller.
>>
>> Is there a way to set up that order?
>
> The usual trick (which you can find in a lot of other I2C busses) is to use
> a core_initcall() instead of module_init().

No, sorry that will probably not work.

I meant subsystem_initcall().

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Wolfram Sang on
On Wed, May 26, 2010 at 11:04:01PM +0200, Linus Walleij wrote:
> 2010/5/26 Robert Emanuele <rob(a)emanuele.us>:
>
> > On my at91sam9g45 platform I need my i2c drivers to load before the
> > framebuffer driver.  The i2c drivers control a power management IC
> > which is needed to enable the graphics controller.
> >
> > Is there a way to set up that order?
>
> The usual trick (which you can find in a lot of other I2C busses) is to use
> a core_initcall() instead of module_init().

Correct, but it's subsys_initcall().

--
Pengutronix e.K. | Wolfram Sang |
Industrial Linux Solutions | http://www.pengutronix.de/ |
From: Robert Emanuele on
Maybe I'm not describing this correctly...
In my platform init_machine I had something like this:
{
at91_add_device_i2c(1, my_i2c_devices, ARRAY_SIZE(my_i2c_devices));

add_my_display


On Wed, May 26, 2010 at 4:52 PM, Wolfram Sang <w.sang(a)pengutronix.de> wrote:
> On Wed, May 26, 2010 at 11:04:01PM +0200, Linus Walleij wrote:
>> 2010/5/26 Robert Emanuele <rob(a)emanuele.us>:
>>
>> > On my at91sam9g45 platform I need my i2c drivers to load before the
>> > framebuffer driver. �The i2c drivers control a power management IC
>> > which is needed to enable the graphics controller.
>> >
>> > Is there a way to set up that order?
>>
>> The usual trick (which you can find in a lot of other I2C busses) is to use
>> a core_initcall() instead of module_init().
>
> Correct, but it's subsys_initcall().
>
> --
> Pengutronix e.K. � � � � � � � � � � � � � | Wolfram Sang � � � � � � � �|
> Industrial Linux Solutions � � � � � � � � | http://www.pengutronix.de/ �|
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
>
> iEYEARECAAYFAkv9tE4ACgkQD27XaX1/VRsuwgCgtuBO/G43yUxbTED+MdBf6tUv
> 9hYAn0WL0L475IYsXqiOlUMzGmdrAcr7
> =KcVU
> -----END PGP SIGNATURE-----
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/