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

Merge master.kernel.org:/home/rmk/linux-2.6-serial

+72 -112
-1
arch/arm/configs/bast_defconfig
··· 561 561 # 562 562 CONFIG_SERIAL_S3C2410=y 563 563 CONFIG_SERIAL_S3C2410_CONSOLE=y 564 - CONFIG_SERIAL_BAST_SIO=y 565 564 CONFIG_SERIAL_CORE=y 566 565 CONFIG_SERIAL_CORE_CONSOLE=y 567 566 CONFIG_UNIX98_PTYS=y
-1
arch/arm/configs/s3c2410_defconfig
··· 570 570 # 571 571 CONFIG_SERIAL_S3C2410=y 572 572 CONFIG_SERIAL_S3C2410_CONSOLE=y 573 - CONFIG_SERIAL_BAST_SIO=y 574 573 CONFIG_SERIAL_CORE=y 575 574 CONFIG_SERIAL_CORE_CONSOLE=y 576 575 CONFIG_UNIX98_PTYS=y
+37
arch/arm/mach-s3c2410/mach-bast.c
··· 28 28 * 14-Mar-2006 BJD Updated for __iomem changes 29 29 * 22-Jun-2006 BJD Added DM9000 platform information 30 30 * 28-Jun-2006 BJD Moved pm functionality out to common code 31 + * 17-Jul-2006 BJD Changed to platform device for SuperIO 16550s 31 32 */ 32 33 33 34 #include <linux/kernel.h> ··· 64 63 #include <linux/mtd/nand.h> 65 64 #include <linux/mtd/nand_ecc.h> 66 65 #include <linux/mtd/partitions.h> 66 + 67 + #include <linux/serial_8250.h> 67 68 68 69 #include "clock.h" 69 70 #include "devs.h" ··· 354 351 } 355 352 }; 356 353 354 + /* serial devices */ 355 + 356 + #define SERIAL_BASE (S3C2410_CS2 + BAST_PA_SUPERIO) 357 + #define SERIAL_FLAGS (UPF_BOOT_AUTOCONF | UPF_IOREMAP | UPF_SHARE_IRQ) 358 + #define SERIAL_CLK (1843200) 359 + 360 + static struct plat_serial8250_port bast_sio_data[] = { 361 + [0] = { 362 + .mapbase = SERIAL_BASE + 0x2f8, 363 + .irq = IRQ_PCSERIAL1, 364 + .flags = SERIAL_FLAGS, 365 + .iotype = UPIO_MEM, 366 + .regshift = 0, 367 + .uartclk = SERIAL_CLK, 368 + }, 369 + [1] = { 370 + .mapbase = SERIAL_BASE + 0x3f8, 371 + .irq = IRQ_PCSERIAL2, 372 + .flags = SERIAL_FLAGS, 373 + .iotype = UPIO_MEM, 374 + .regshift = 0, 375 + .uartclk = SERIAL_CLK, 376 + }, 377 + { } 378 + }; 379 + 380 + static struct platform_device bast_sio = { 381 + .name = "serial8250", 382 + .id = 0, 383 + .dev = { 384 + .platform_data = &bast_sio_data, 385 + }, 386 + }; 357 387 358 388 /* Standard BAST devices */ 359 389 ··· 400 364 &s3c_device_nand, 401 365 &bast_device_nor, 402 366 &bast_device_dm9k, 367 + &bast_sio, 403 368 }; 404 369 405 370 static struct clk *bast_clocks[] = {
+33 -22
drivers/serial/8250_pci.c
··· 389 389 * - 10x cards have control registers in IO and/or memory space; 390 390 * - 20x cards have control registers in standard PCI configuration space. 391 391 * 392 + * There are also Quartet Serial cards which use Oxford Semiconductor 393 + * 16954 quad UART PCI chip clocked by 18.432 MHz quartz. 394 + * 392 395 * Note: some SIIG cards are probed by the parport_serial object. 393 396 */ 394 397 ··· 1029 1026 pbn_b0_2_921600, 1030 1027 pbn_b0_4_921600, 1031 1028 1029 + pbn_b0_4_1152000, 1030 + 1032 1031 pbn_b0_bt_1_115200, 1033 1032 pbn_b0_bt_2_115200, 1034 1033 pbn_b0_bt_8_115200, ··· 1161 1156 .flags = FL_BASE0, 1162 1157 .num_ports = 4, 1163 1158 .base_baud = 921600, 1159 + .uart_offset = 8, 1160 + }, 1161 + [pbn_b0_4_1152000] = { 1162 + .flags = FL_BASE0, 1163 + .num_ports = 4, 1164 + .base_baud = 1152000, 1164 1165 .uart_offset = 8, 1165 1166 }, 1166 1167 ··· 1766 1755 static void __devexit pciserial_remove_one(struct pci_dev *dev) 1767 1756 { 1768 1757 struct serial_private *priv = pci_get_drvdata(dev); 1758 + struct pci_serial_quirk *quirk; 1759 + int i; 1769 1760 1770 1761 pci_set_drvdata(dev, NULL); 1771 1762 1772 - if (priv) { 1773 - struct pci_serial_quirk *quirk; 1774 - int i; 1763 + for (i = 0; i < priv->nr; i++) 1764 + serial8250_unregister_port(priv->line[i]); 1775 1765 1776 - for (i = 0; i < priv->nr; i++) 1777 - serial8250_unregister_port(priv->line[i]); 1778 - 1779 - for (i = 0; i < PCI_NUM_BAR_RESOURCES; i++) { 1780 - if (priv->remapped_bar[i]) 1781 - iounmap(priv->remapped_bar[i]); 1782 - priv->remapped_bar[i] = NULL; 1783 - } 1784 - 1785 - /* 1786 - * Find the exit quirks. 1787 - */ 1788 - quirk = find_quirk(dev); 1789 - if (quirk->exit) 1790 - quirk->exit(dev); 1791 - 1792 - pci_disable_device(dev); 1793 - 1794 - kfree(priv); 1766 + for (i = 0; i < PCI_NUM_BAR_RESOURCES; i++) { 1767 + if (priv->remapped_bar[i]) 1768 + iounmap(priv->remapped_bar[i]); 1769 + priv->remapped_bar[i] = NULL; 1795 1770 } 1771 + 1772 + /* 1773 + * Find the exit quirks. 1774 + */ 1775 + quirk = find_quirk(dev); 1776 + if (quirk->exit) 1777 + quirk->exit(dev); 1778 + 1779 + pci_disable_device(dev); 1780 + 1781 + kfree(priv); 1796 1782 } 1797 1783 1798 1784 static int pciserial_suspend_one(struct pci_dev *dev, pm_message_t state) ··· 1985 1977 { PCI_VENDOR_ID_SPECIALIX, PCI_DEVICE_ID_OXSEMI_16PCI954, 1986 1978 PCI_VENDOR_ID_SPECIALIX, PCI_SUBDEVICE_ID_SPECIALIX_SPEED4, 0, 0, 1987 1979 pbn_b0_4_921600 }, 1980 + { PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_16PCI954, 1981 + PCI_SUBVENDOR_ID_SIIG, PCI_SUBDEVICE_ID_SIIG_QUARTET_SERIAL, 0, 0, 1982 + pbn_b0_4_1152000 }, 1988 1983 { PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_16PCI954, 1989 1984 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1990 1985 pbn_b0_4_115200 },
-7
drivers/serial/Kconfig
··· 306 306 your boot loader about how to pass options to the kernel at 307 307 boot time.) 308 308 309 - config SERIAL_BAST_SIO 310 - bool "Support for BAST SuperIO serial ports" 311 - depends on ARCH_BAST && SERIAL_8250=y 312 - help 313 - Support for registerin the SuperIO chip on BAST board with 314 - the 8250/16550 uart code. 315 - 316 309 config SERIAL_DZ 317 310 bool "DECstation DZ serial driver" 318 311 depends on MACH_DECSTATION && MIPS32
-1
drivers/serial/Makefile
··· 44 44 obj-$(CONFIG_SERIAL_AU1X00) += au1x00_uart.o 45 45 obj-$(CONFIG_SERIAL_DZ) += dz.o 46 46 obj-$(CONFIG_SERIAL_SH_SCI) += sh-sci.o 47 - obj-$(CONFIG_SERIAL_BAST_SIO) += bast_sio.o 48 47 obj-$(CONFIG_SERIAL_SGI_L1_CONSOLE) += sn_console.o 49 48 obj-$(CONFIG_SERIAL_CPM) += cpm_uart/ 50 49 obj-$(CONFIG_SERIAL_IMX) += imx.o
-80
drivers/serial/bast_sio.c
··· 1 - /* linux/drivers/serial/bast_sio.c 2 - * 3 - * Copyright (c) 2004 Simtec Electronics 4 - * Ben Dooks <ben@simtec.co.uk> 5 - * 6 - * http://www.simtec.co.uk/products/EB2410ITX/ 7 - * 8 - * This program is free software; you can redistribute it and/or modify 9 - * it under the terms of the GNU General Public License version 2 as 10 - * published by the Free Software Foundation. 11 - * 12 - * Modifications: 13 - * 23-Sep-2004 BJD Added copyright header 14 - * 23-Sep-2004 BJD Added serial port remove code 15 - */ 16 - 17 - #include <linux/module.h> 18 - #include <linux/config.h> 19 - #include <linux/kernel.h> 20 - #include <linux/init.h> 21 - #include <linux/tty.h> 22 - #include <linux/serial.h> 23 - #include <linux/serial_core.h> 24 - #include <linux/types.h> 25 - 26 - #include <asm/io.h> 27 - #include <asm/serial.h> 28 - #include <asm/mach-types.h> 29 - 30 - #include <asm/arch/map.h> 31 - #include <asm/arch/irqs.h> 32 - #include <asm/arch/bast-map.h> 33 - #include <asm/arch/bast-irq.h> 34 - 35 - static int __init serial_bast_register(unsigned long port, unsigned int irq) 36 - { 37 - struct serial_struct serial_req; 38 - 39 - serial_req.flags = UPF_AUTOPROBE | UPF_SHARE_IRQ; 40 - serial_req.baud_base = BASE_BAUD; 41 - serial_req.irq = irq; 42 - serial_req.io_type = UPIO_MEM; 43 - serial_req.iomap_base = port; 44 - serial_req.iomem_base = ioremap(port, 0x10); 45 - serial_req.iomem_reg_shift = 0; 46 - 47 - return register_serial(&serial_req); 48 - } 49 - 50 - #define SERIAL_BASE (S3C2410_CS2 + BAST_PA_SUPERIO) 51 - 52 - static int port[2] = { -1, -1 }; 53 - 54 - static int __init serial_bast_init(void) 55 - { 56 - if (machine_is_bast()) { 57 - port[0] = serial_bast_register(SERIAL_BASE + 0x2f8, IRQ_PCSERIAL1); 58 - port[1] = serial_bast_register(SERIAL_BASE + 0x3f8, IRQ_PCSERIAL2); 59 - } 60 - 61 - return 0; 62 - } 63 - 64 - static void __exit serial_bast_exit(void) 65 - { 66 - if (port[0] != -1) 67 - unregister_serial(port[0]); 68 - if (port[1] != -1) 69 - unregister_serial(port[1]); 70 - } 71 - 72 - 73 - module_init(serial_bast_init); 74 - module_exit(serial_bast_exit); 75 - 76 - MODULE_LICENSE("GPL"); 77 - MODULE_AUTHOR("Ben Dooks, ben@simtec.co.uk"); 78 - MODULE_DESCRIPTION("BAST Onboard Serial setup"); 79 - 80 -
+2
include/linux/pci_ids.h
··· 1872 1872 #define PCI_DEVICE_ID_CBOARDS_DAS1602_16 0x0001 1873 1873 1874 1874 #define PCI_VENDOR_ID_SIIG 0x131f 1875 + #define PCI_SUBVENDOR_ID_SIIG 0x131f 1875 1876 #define PCI_DEVICE_ID_SIIG_1S_10x_550 0x1000 1876 1877 #define PCI_DEVICE_ID_SIIG_1S_10x_650 0x1001 1877 1878 #define PCI_DEVICE_ID_SIIG_1S_10x_850 0x1002 ··· 1910 1909 #define PCI_DEVICE_ID_SIIG_2S1P_20x_550 0x2060 1911 1910 #define PCI_DEVICE_ID_SIIG_2S1P_20x_650 0x2061 1912 1911 #define PCI_DEVICE_ID_SIIG_2S1P_20x_850 0x2062 1912 + #define PCI_SUBDEVICE_ID_SIIG_QUARTET_SERIAL 0x2050 1913 1913 1914 1914 #define PCI_VENDOR_ID_RADISYS 0x1331 1915 1915 #define PCI_DEVICE_ID_RADISYS_ENP2611 0x0030