I can't comment on the arch specific bits. As a general note, I think
this is over complex. For instance, the additional hook in serial_core
to call the find_port_for_earlycon method isn't needed because you can
call serial8250_find_port_for_earlycon() from within
serial8250_console_setup(). You can also modify co->index from
within there without needing update_console_cmdline_console_index().
Bjorn needs to review the 8250_early changes.
Apart from that, two other comments:
On Tue, May 22, 2007 at 12:31:59PM -0700, Yinghai Lu wrote:
> diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
> index c84dab0..e341fb9 100644
> --- a/drivers/serial/8250.c
> +++ b/drivers/serial/8250.c
> @@ -2402,6 +2405,7 @@ static void __init serial8250_isa_init_ports(void)
> for (i = 0, up = serial8250_ports;
> i < ARRAY_SIZE(old_serial_port) && i < nr_uarts;
> i++, up++) {
> + printk(KERN_INFO "serial8250_isa_init_ports 2 idx=%d\n",i);
Is this a debugging printk?
> up->port.iobase = old_serial_port[i].port;
> up->port.irq = irq_canonicalize(old_serial_port[i].irq);
> up->port.uartclk = old_serial_port[i].baud_base * 16;
> @@ -2533,7 +2537,7 @@ static int __init serial8250_console_init(void)
> }
> console_initcall(serial8250_console_init);
>
> -static int __init find_port(struct uart_port *p)
> +int __init find_port_serial8250(struct uart_port *p)
If this is going to become globally visible, please name it
serial8250_find_port to match the style of the rest of the file.
> {
> int line;
> struct uart_port *port;
> diff --git a/include/linux/serial.h b/include/linux/serial.h
> index 33fc8cb..deb7143 100644
> --- a/include/linux/serial.h
> +++ b/include/linux/serial.h
> @@ -177,11 +177,5 @@ struct serial_icounter_struct {
> #ifdef __KERNEL__
> #include <linux/compiler.h>
>
> -/* Allow architectures to override entries in serial8250_ports[] at run time: */
> -struct uart_port; /* forward declaration */
> -extern int early_serial_setup(struct uart_port *port);
> -extern int early_serial_console_init(char *options);
> -extern int serial8250_start_console(struct uart_port *port, char *options);
> -
> #endif /* __KERNEL__ */
> #endif /* _LINUX_SERIAL_H */
Good - this needed to be killed.
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of:
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]