From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Williamson Subject: [PATCH] Fix MMIO UARTs Date: Wed, 03 Dec 2008 16:24:38 -0700 Message-ID: <1228346678.7218.28.camel@lappy> Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Keir Fraser Cc: xen-devel List-Id: xen-devel@lists.xenproject.org Change set 982e6fce0e47 added an existence test for UARTs. Unfortunately, the existence test happens before MMIO UARTs are ioremapped, therefore it may not be probing where it thinks it's probing. Rather than moving more code around, I think it's probably safe to assume the arch code knows what it's doing if it passes in an MMIO UART. Signed-off-by: Alex Williamson -- diff -r a00eb6595d3c xen/drivers/char/ns16550.c --- a/xen/drivers/char/ns16550.c Sat Nov 29 09:07:52 2008 +0000 +++ b/xen/drivers/char/ns16550.c Wed Dec 03 16:19:49 2008 -0700 @@ -303,6 +303,14 @@ static int check_existence(struct ns1655 unsigned char status, scratch, scratch2, scratch3; /* + * We can't poke MMIO UARTs until they get I/O remapped later. + * Assume that if we're getting MMIO UARTs, the arch code knows + * what it's doing. + */ + if (uart->io_base >= 0x10000) + return 1; + + /* * Do a simple existence test first; if we fail this, * there's no point trying anything else. */