Subject: Re: [PATCH] Move serial_dev_init to device_initcall()

From: Olof Johansson <[email-masked]>
Date: Thu, 23 Aug 2007 18:15:10 -0500

On Fri, Aug 24, 2007 at 01:21:57AM +0200, Guennadi Liakhovetski wrote:
> On Wed, 22 Aug 2007, Olof Johansson wrote:
> 
> > With the I/O space rewrite by BenH, the legacy_serial serial_dev_init()
> > initcall is now called before I/O space is setup, but it's dependent on
> > it being available.
> > 
> > Since there's no way to make dependencies between initcalls, we'll just
> > have to move it to device_initcall(). Yes, it's suboptimal but I'm not
> > aware of any better solution at this time.
> 
> Do I understand it right, that with this change all UARTs, controlled by 
> legacy_serial will be initialized later, and that for example console 
> output will be first possible later?

Yes, unfortunately. Unless they've got a udbg driver, since that
would give console output during early boot anyway (even without using
EARLY_DEBUG).

> Maybe, if there is really no other 
> possibility for I/O space devices, we could have both calls
>
> arch_initcall(serial_mem_dev_init);
> device_initcall(serial_io_dev_init);
> 
> so, that at least MEMIO based UARTs could still initialize as before?

That's quite a hack, I hope we can avoid it. Maybe Ben has some suggestion
on how to get the IO setup earlier instead.

-Olof