Thread (9 messages) 9 messages, 2 authors, 2006-08-30

Re: [PATCH] 8250_early console support for au1x00 (again)

From: Rodolfo Giometti <hidden>
Date: 2006-08-30 11:00:45

   Sorry for follwing up 2 month ago, I just happen to stumble on some 
   issues addresses by these patches as well. I assume you haven't tried 
sending them to Russel King?
Not yet, I just waiting for some comments. :)
quoted
+	switch (port->iotype) {
+	case UPIO_HUB6:
+		outb(port->hub6 - 1 + offset, port->iobase);
+		return inb(port->iobase + 1);
   This module can't handle HAB6 otherwise, so whay add it here?
Ok. I'm going to remove it.
quoted
+	case UPIO_MEM32:
+	case UPIO_AU:
+		return readl(port->membase + offset);
   NAK. readl() can't be used to read from Alchemy SOC peripherals because 
it'll break in BE mode.  Alchemy automagically handles byteswap for the SOC 
peripherals.
Ok. I'm going to fix it by using au_readl() but in this case I have to
add an ifdef with au1xxx include file. Can it be acceptable?
quoted
@@ -142,6 +266,7 @@ static int __init parse_options(struct e
	port->uartclk = BASE_BAUD * 16;
	if (!strncmp(options, "mmio,", 5)) {
		port->iotype = UPIO_MEM;
+		port->regshift = 0;
   Maybe regshift even deserves the separate (but optional) field in the 
   boot option...
Mmm... I don't know. However I have to set a default value.
quoted
+			(port->iotype == UPIO_MEM) ? "MMIO" : \
+			(port->iotype == UPIO_AU)  ? "AU"   : "I/O port",
+			(port->iotype == UPIO_MEM) || \
+			(port->iotype == UPIO_AU) ? port->mapbase :
			    (unsigned long) port->iobase);
   I'd simply map UPIO_AU to "MMIO" in the message because it's memory 
   mapped UART after all...
Yes, but in the kernel command line we must supply "au"... That's why
I used different string, so the user can verify whatever he/she passed
to the kernel.
quoted
index 17839e7..9e27aee 100644
--- a/drivers/serial/serial_core.c
+++ b/drivers/serial/serial_core.c
@@ -2367,6 +2367,7 @@ int uart_match_port(struct uart_port *po
		return (port1->iobase == port2->iobase) &&
		       (port1->hub6   == port2->hub6);
	case UPIO_MEM:
+	case UPIO_AU:
   Also needs cases for UPIO_MEM32 and UPIO_TSI.
I just added the code for au1xxx. Why should I consider those cases
also?
quoted
-#ifdef CONFIG_SERIAL_8250_AU1X00
	case UPIO_AU:
-		__raw_writel(value, up->port.membase + offset);
+		writel(value, up->port.membase + offset);
		break;
-#endif
   Ditto writel().
Is __raw_writel() correct?
WBR, Sergei
Thanks for your suggestions.

Ciao,

Rodolfo

-- 

GNU/Linux Solutions                  e-mail:    giometti@enneenne.com
Linux Device Driver                             giometti@gnudd.com
Embedded Systems                     		giometti@linux.it
UNIX programming                     phone:     +39 349 2432127
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help