linux-mips
[Top] [All Lists]

Re: [PATCH] serial_txx9: forcibly init the spinlock for PCI UART used as

To: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Subject: Re: [PATCH] serial_txx9: forcibly init the spinlock for PCI UART used as a console
From: Russell King <rmk@arm.linux.org.uk>
Date: Tue, 27 Dec 2005 18:41:52 +0000
Cc: sshtylyov@ru.mvista.com, linux-mips@linux-mips.org, ralf@linux-mips.org
In-reply-to: <20051228.003457.74752441.anemo@mba.ocn.ne.jp>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <43B06DB4.409@ru.mvista.com> <20051227.144551.79070832.nemoto@toshiba-tops.co.jp> <43B143EE.6070700@ru.mvista.com> <20051228.003457.74752441.anemo@mba.ocn.ne.jp>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.4.1i
On Wed, Dec 28, 2005 at 12:34:57AM +0900, Atsushi Nemoto wrote:
> Thanks for your comment.
> 
> >>>>> On Tue, 27 Dec 2005 16:38:54 +0300, Sergei Shtylylov 
> >>>>> <sshtylyov@ru.mvista.com> said:
> 
> >> The problem is not just only spin_lock_init.  The parameters of
> >> "console=" option (baudrate, etc.) are not passed for PCI UART.
> 
> sshtylyov>     They are -- uart_add_one_port() calls console setup
> sshtylyov> once more when registering PCI UART with serial code.
> 
> Yes, you are right.  I missed the register_console call in
> uart_add_one_port().  So your patch will fix the problem.  But I
> suppose the spinlock should be initialized in serial_core.  How about
> this?

I think you're layering work-around on top of work-around on top of
work-around here.

I think the first thing you need to resolve is the way you're
registering your ports.  Firstly, if you're solely PCI-based, there's
no need to pre-register all the uart ports at driver initialisation
time.  Consequently, there's no need to remove them all when you
remove the module.

Secondly, the upshot of this is that you only call uart_add_one_port()
when you initialise a PCI card.

This should result in a cleaner implementation, and the console will
not be started until you detect the PCI card.  Which is the behaviour
you desire in any case.

-- 
Russell King
 Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:  2.6 Serial core

<Prev in Thread] Current Thread [Next in Thread>