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. Signed-off-by: Olof Johansson <[EMAIL PROTECTED]> --- I think I might have one of the few hardware platforms with UART on PIO, at least if noone else has already hit this. It was introduced by BenH's rewrite of the I/O space allocation earlier, and the problem is that by the time serial_dev_init() runs, the hose io_base_virt isn't available. I still see the platform devices register before the PCI ones, so it looks like init order is undisturbed by this change. Still, it'd be good to hear test feedback from other platforms as needed. It's uncertain what platforms the comments above serial_dev_init() about needing overrides applies for, so I don't know which ones might be sensitive to call order changes. Index: mainline/arch/powerpc/kernel/legacy_serial.c =================================================================== --- mainline.orig/arch/powerpc/kernel/legacy_serial.c +++ mainline/arch/powerpc/kernel/legacy_serial.c @@ -493,7 +493,7 @@ static int __init serial_dev_init(void) return platform_device_register(&serial_device); } -arch_initcall(serial_dev_init); +device_initcall(serial_dev_init); /* _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev