Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[PATCH] Serial: Convert 8250_hp300 to use serial8250_{un,}register_port

Convert 8250_hp300 to use serial8250_register_port() and
serial8250_unregister_port().

Tested by Kars de Jong, 4/4/2005.

Signed-off-by: Russell King <rmk@arm.linux.org.uk>

+27 -26
+27 -26
drivers/serial/8250_hp300.c
··· 9 9 #include <linux/init.h> 10 10 #include <linux/string.h> 11 11 #include <linux/kernel.h> 12 - #include <linux/tty.h> 13 12 #include <linux/serial.h> 14 - #include <linux/serialP.h> 15 13 #include <linux/serial_core.h> 16 14 #include <linux/delay.h> 17 15 #include <linux/dio.h> 18 16 #include <linux/console.h> 19 17 #include <asm/io.h> 18 + 19 + #include "8250.h" 20 20 21 21 #if !defined(CONFIG_HPDCA) && !defined(CONFIG_HPAPCI) 22 22 #warning CONFIG_8250 defined but neither CONFIG_HPDCA nor CONFIG_HPAPCI defined, are you sure? ··· 163 163 static int __devinit hpdca_init_one(struct dio_dev *d, 164 164 const struct dio_device_id *ent) 165 165 { 166 - struct serial_struct serial_req; 166 + struct uart_port port; 167 167 int line; 168 168 169 169 #ifdef CONFIG_SERIAL_8250_CONSOLE ··· 172 172 return 0; 173 173 } 174 174 #endif 175 - memset(&serial_req, 0, sizeof(struct serial_struct)); 175 + memset(&port, 0, sizeof(struct uart_port)); 176 176 177 177 /* Memory mapped I/O */ 178 - serial_req.io_type = SERIAL_IO_MEM; 179 - serial_req.flags = UPF_SKIP_TEST | UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF; 180 - serial_req.irq = d->ipl; 181 - serial_req.baud_base = HPDCA_BAUD_BASE; 182 - serial_req.iomap_base = (d->resource.start + UART_OFFSET); 183 - serial_req.iomem_base = (char *)(serial_req.iomap_base + DIO_VIRADDRBASE); 184 - serial_req.iomem_reg_shift = 1; 185 - line = register_serial(&serial_req); 178 + port.iotype = UPIO_MEM; 179 + port.flags = UPF_SKIP_TEST | UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF; 180 + port.irq = d->ipl; 181 + port.uartclk = HPDCA_BAUD_BASE * 16; 182 + port.mapbase = (d->resource.start + UART_OFFSET); 183 + port.membase = (char *)(port.mapbase + DIO_VIRADDRBASE); 184 + port.regshift = 1; 185 + port.dev = &d->dev; 186 + line = serial8250_register_port(&port); 186 187 187 188 if (line < 0) { 188 189 printk(KERN_NOTICE "8250_hp300: register_serial() DCA scode %d" 189 - " irq %d failed\n", d->scode, serial_req.irq); 190 + " irq %d failed\n", d->scode, port.irq); 190 191 return -ENOMEM; 191 192 } 192 193 ··· 210 209 #ifdef CONFIG_HPAPCI 211 210 int line; 212 211 unsigned long base; 213 - struct serial_struct serial_req; 212 + struct uart_port uport; 214 213 struct hp300_port *port; 215 214 int i; 216 215 #endif ··· 252 251 if (!port) 253 252 return -ENOMEM; 254 253 255 - memset(&serial_req, 0, sizeof(struct serial_struct)); 254 + memset(&uport, 0, sizeof(struct uart_port)); 256 255 257 256 base = (FRODO_BASE + FRODO_APCI_OFFSET(i)); 258 257 259 258 /* Memory mapped I/O */ 260 - serial_req.io_type = SERIAL_IO_MEM; 261 - serial_req.flags = UPF_SKIP_TEST | UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF; 259 + uport.iotype = UPIO_MEM; 260 + uport.flags = UPF_SKIP_TEST | UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF; 262 261 /* XXX - no interrupt support yet */ 263 - serial_req.irq = 0; 264 - serial_req.baud_base = HPAPCI_BAUD_BASE; 265 - serial_req.iomap_base = base; 266 - serial_req.iomem_base = (char *)(serial_req.iomap_base + DIO_VIRADDRBASE); 267 - serial_req.iomem_reg_shift = 2; 262 + uport.irq = 0; 263 + uport.uartclk = HPAPCI_BAUD_BASE * 16; 264 + uport.mapbase = base; 265 + uport.membase = (char *)(base + DIO_VIRADDRBASE); 266 + uport.regshift = 2; 268 267 269 - line = register_serial(&serial_req); 268 + line = serial8250_register_port(&uport); 270 269 271 270 if (line < 0) { 272 271 printk(KERN_NOTICE "8250_hp300: register_serial() APCI %d" 273 - " irq %d failed\n", i, serial_req.irq); 272 + " irq %d failed\n", i, uport.irq); 274 273 kfree(port); 275 274 continue; 276 275 } ··· 300 299 /* Disable board-interrupts */ 301 300 out_8(d->resource.start + DIO_VIRADDRBASE + DCA_IC, 0); 302 301 } 303 - unregister_serial(line); 302 + serial8250_unregister_port(line); 304 303 } 305 304 #endif 306 305 ··· 310 309 struct hp300_port *port, *to_free; 311 310 312 311 for (port = hp300_ports; port; ) { 313 - unregister_serial(port->line); 312 + serial8250_unregister_port(port->line); 314 313 to_free = port; 315 314 port = port->next; 316 315 kfree(to_free);