Commit 15a93807 authored by Ralf Baechle's avatar Ralf Baechle Committed by Russell King

[SERIAL] IOC3: Update 8250 driver bits

Update the support for the 16550 present on most IOC3 configurations to use
the current API.
Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent f093182d
...@@ -46,10 +46,8 @@ ...@@ -46,10 +46,8 @@
#include <linux/udp.h> #include <linux/udp.h>
#ifdef CONFIG_SERIAL_8250 #ifdef CONFIG_SERIAL_8250
#include <linux/serial.h> #include <linux/serial_core.h>
#include <asm/serial.h> #include <linux/serial_8250.h>
#define IOC3_BAUD (22000000 / (3*16))
#define IOC3_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST)
#endif #endif
#include <linux/netdevice.h> #include <linux/netdevice.h>
...@@ -1146,12 +1144,11 @@ static inline int ioc3_is_menet(struct pci_dev *pdev) ...@@ -1146,12 +1144,11 @@ static inline int ioc3_is_menet(struct pci_dev *pdev)
* around ioc3 oddities in this respect. * around ioc3 oddities in this respect.
* *
* The IOC3 serials use a 22MHz clock rate with an additional divider by 3. * The IOC3 serials use a 22MHz clock rate with an additional divider by 3.
* (IOC3_BAUD = (22000000 / (3*16)))
*/ */
static void __devinit ioc3_serial_probe(struct pci_dev *pdev, struct ioc3 *ioc3) static void __devinit ioc3_serial_probe(struct pci_dev *pdev, struct ioc3 *ioc3)
{ {
struct serial_struct req; struct uart_port port;
/* /*
* We need to recognice and treat the fourth MENET serial as it * We need to recognice and treat the fourth MENET serial as it
...@@ -1165,20 +1162,25 @@ static void __devinit ioc3_serial_probe(struct pci_dev *pdev, struct ioc3 *ioc3) ...@@ -1165,20 +1162,25 @@ static void __devinit ioc3_serial_probe(struct pci_dev *pdev, struct ioc3 *ioc3)
if (ioc3_is_menet(pdev) && PCI_SLOT(pdev->devfn) == 3) if (ioc3_is_menet(pdev) && PCI_SLOT(pdev->devfn) == 3)
return; return;
/* Register to interrupt zero because we share the interrupt with /*
the serial driver which we don't properly support yet. */ * Register to interrupt zero because we share the interrupt with
memset(&req, 0, sizeof(req)); * the serial driver which we don't properly support yet.
req.irq = 0; *
req.flags = IOC3_COM_FLAGS; * Can't use UPF_IOREMAP as the whole of IOC3 resources have already
req.io_type = SERIAL_IO_MEM; * been registered.
req.iomem_reg_shift = 0; */
req.baud_base = IOC3_BAUD; memset(&port, 0, sizeof(port));
port.irq = 0;
req.iomem_base = (unsigned char *) &ioc3->sregs.uarta; port.flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF;
register_serial(&req); port.iotype = UPIO_MEM;
port.regshift = 0;
req.iomem_base = (unsigned char *) &ioc3->sregs.uartb; port.uartclk = 22000000 / 3;
register_serial(&req);
port.membase = (unsigned char *) &ioc3->sregs.uarta;
serial8250_register_port(&port);
port.membase = (unsigned char *) &ioc3->sregs.uartb;
serial8250_register_port(&port);
} }
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment