aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/kernel-parameters.txt5
-rw-r--r--arch/i386/kernel/Makefile1
-rw-r--r--arch/i386/kernel/legacy_serial.c67
-rw-r--r--arch/x86_64/kernel/Makefile2
-rw-r--r--drivers/serial/Kconfig14
-rw-r--r--include/asm-i386/serial.h16
-rw-r--r--include/asm-x86_64/serial.h16
7 files changed, 37 insertions, 84 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index d763ebe11afe..efdb42fd3fb8 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -864,11 +864,6 @@ and is between 256 and 4096 characters. It is defined in the file
864 lasi= [HW,SCSI] PARISC LASI driver for the 53c700 chip 864 lasi= [HW,SCSI] PARISC LASI driver for the 53c700 chip
865 Format: addr:<io>,irq:<irq> 865 Format: addr:<io>,irq:<irq>
866 866
867 legacy_serial.force [HW,X86-32,X86-64]
868 Probe for COM ports at legacy addresses even
869 if PNPBIOS or ACPI should describe them. This
870 is for working around firmware defects.
871
872 load_ramdisk= [RAM] List of ramdisks to load from floppy 867 load_ramdisk= [RAM] List of ramdisks to load from floppy
873 See Documentation/ramdisk.txt. 868 See Documentation/ramdisk.txt.
874 869
diff --git a/arch/i386/kernel/Makefile b/arch/i386/kernel/Makefile
index dbe5e87e0d66..9d33b00de659 100644
--- a/arch/i386/kernel/Makefile
+++ b/arch/i386/kernel/Makefile
@@ -35,7 +35,6 @@ obj-y += sysenter.o vsyscall.o
35obj-$(CONFIG_ACPI_SRAT) += srat.o 35obj-$(CONFIG_ACPI_SRAT) += srat.o
36obj-$(CONFIG_EFI) += efi.o efi_stub.o 36obj-$(CONFIG_EFI) += efi.o efi_stub.o
37obj-$(CONFIG_DOUBLEFAULT) += doublefault.o 37obj-$(CONFIG_DOUBLEFAULT) += doublefault.o
38obj-$(CONFIG_SERIAL_8250) += legacy_serial.o
39obj-$(CONFIG_VM86) += vm86.o 38obj-$(CONFIG_VM86) += vm86.o
40obj-$(CONFIG_EARLY_PRINTK) += early_printk.o 39obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
41obj-$(CONFIG_HPET_TIMER) += hpet.o 40obj-$(CONFIG_HPET_TIMER) += hpet.o
diff --git a/arch/i386/kernel/legacy_serial.c b/arch/i386/kernel/legacy_serial.c
deleted file mode 100644
index 21510118544e..000000000000
--- a/arch/i386/kernel/legacy_serial.c
+++ /dev/null
@@ -1,67 +0,0 @@
1/*
2 * Legacy COM port devices for x86 platforms without PNPBIOS or ACPI.
3 * Data taken from include/asm-i386/serial.h.
4 *
5 * (c) Copyright 2007 Hewlett-Packard Development Company, L.P.
6 * Bjorn Helgaas <bjorn.helgaas@hp.com>
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#include <linux/module.h>
13#include <linux/init.h>
14#include <linux/pnp.h>
15#include <linux/serial_8250.h>
16
17/* Standard COM flags (except for COM4, because of the 8514 problem) */
18#ifdef CONFIG_SERIAL_DETECT_IRQ
19#define COM_FLAGS (UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_AUTO_IRQ)
20#define COM4_FLAGS (UPF_BOOT_AUTOCONF | UPF_AUTO_IRQ)
21#else
22#define COM_FLAGS (UPF_BOOT_AUTOCONF | UPF_SKIP_TEST)
23#define COM4_FLAGS UPF_BOOT_AUTOCONF
24#endif
25
26#define PORT(_base,_irq,_flags) \
27 { \
28 .iobase = _base, \
29 .irq = _irq, \
30 .uartclk = 1843200, \
31 .iotype = UPIO_PORT, \
32 .flags = _flags, \
33 }
34
35static struct plat_serial8250_port x86_com_data[] = {
36 PORT(0x3F8, 4, COM_FLAGS),
37 PORT(0x2F8, 3, COM_FLAGS),
38 PORT(0x3E8, 4, COM_FLAGS),
39 PORT(0x2E8, 3, COM4_FLAGS),
40 { },
41};
42
43static struct platform_device x86_com_device = {
44 .name = "serial8250",
45 .id = PLAT8250_DEV_PLATFORM,
46 .dev = {
47 .platform_data = x86_com_data,
48 },
49};
50
51static int force_legacy_probe;
52module_param_named(force, force_legacy_probe, bool, 0);
53MODULE_PARM_DESC(force, "Force legacy serial port probe");
54
55static int __init serial8250_x86_com_init(void)
56{
57 if (pnp_platform_devices && !force_legacy_probe)
58 return -ENODEV;
59
60 return platform_device_register(&x86_com_device);
61}
62
63module_init(serial8250_x86_com_init);
64
65MODULE_AUTHOR("Bjorn Helgaas");
66MODULE_LICENSE("GPL");
67MODULE_DESCRIPTION("Generic 8250/16x50 legacy probe module");
diff --git a/arch/x86_64/kernel/Makefile b/arch/x86_64/kernel/Makefile
index d1d18c1ea0f4..ff5d8c9b96d9 100644
--- a/arch/x86_64/kernel/Makefile
+++ b/arch/x86_64/kernel/Makefile
@@ -32,7 +32,6 @@ obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
32obj-$(CONFIG_IOMMU) += pci-gart.o aperture.o 32obj-$(CONFIG_IOMMU) += pci-gart.o aperture.o
33obj-$(CONFIG_CALGARY_IOMMU) += pci-calgary.o tce.o 33obj-$(CONFIG_CALGARY_IOMMU) += pci-calgary.o tce.o
34obj-$(CONFIG_SWIOTLB) += pci-swiotlb.o 34obj-$(CONFIG_SWIOTLB) += pci-swiotlb.o
35obj-$(CONFIG_SERIAL_8250) += legacy_serial.o
36obj-$(CONFIG_KPROBES) += kprobes.o 35obj-$(CONFIG_KPROBES) += kprobes.o
37obj-$(CONFIG_X86_PM_TIMER) += pmtimer.o 36obj-$(CONFIG_X86_PM_TIMER) += pmtimer.o
38obj-$(CONFIG_X86_VSMP) += vsmp.o 37obj-$(CONFIG_X86_VSMP) += vsmp.o
@@ -51,7 +50,6 @@ CFLAGS_vsyscall.o := $(PROFILING) -g0
51 50
52therm_throt-y += ../../i386/kernel/cpu/mcheck/therm_throt.o 51therm_throt-y += ../../i386/kernel/cpu/mcheck/therm_throt.o
53bootflag-y += ../../i386/kernel/bootflag.o 52bootflag-y += ../../i386/kernel/bootflag.o
54legacy_serial-y += ../../i386/kernel/legacy_serial.o
55cpuid-$(subst m,y,$(CONFIG_X86_CPUID)) += ../../i386/kernel/cpuid.o 53cpuid-$(subst m,y,$(CONFIG_X86_CPUID)) += ../../i386/kernel/cpuid.o
56topology-y += ../../i386/kernel/topology.o 54topology-y += ../../i386/kernel/topology.o
57microcode-$(subst m,y,$(CONFIG_MICROCODE)) += ../../i386/kernel/microcode.o 55microcode-$(subst m,y,$(CONFIG_MICROCODE)) += ../../i386/kernel/microcode.o
diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig
index 18f629706448..819fc3efc468 100644
--- a/drivers/serial/Kconfig
+++ b/drivers/serial/Kconfig
@@ -88,21 +88,17 @@ config SERIAL_8250_PCI
88 depends on SERIAL_8250 && PCI 88 depends on SERIAL_8250 && PCI
89 default SERIAL_8250 89 default SERIAL_8250
90 help 90 help
91 Say Y here if you have PCI serial ports. 91 This builds standard PCI serial support. You may be able to
92 92 disable this feature if you only need legacy serial support.
93 To compile this driver as a module, choose M here: the module 93 Saves about 9K.
94 will be called 8250_pci.
95 94
96config SERIAL_8250_PNP 95config SERIAL_8250_PNP
97 tristate "8250/16550 PNP device support" if EMBEDDED 96 tristate "8250/16550 PNP device support" if EMBEDDED
98 depends on SERIAL_8250 && PNP 97 depends on SERIAL_8250 && PNP
99 default SERIAL_8250 98 default SERIAL_8250
100 help 99 help
101 Say Y here if you have serial ports described by PNPBIOS or ACPI. 100 This builds standard PNP serial support. You may be able to
102 These are typically ports built into the system board. 101 disable this feature if you only need legacy serial support.
103
104 To compile this driver as a module, choose M here: the module
105 will be called 8250_pnp.
106 102
107config SERIAL_8250_HP300 103config SERIAL_8250_HP300
108 tristate 104 tristate
diff --git a/include/asm-i386/serial.h b/include/asm-i386/serial.h
index 57a4306cdf63..bd67480ca109 100644
--- a/include/asm-i386/serial.h
+++ b/include/asm-i386/serial.h
@@ -11,3 +11,19 @@
11 * megabits/second; but this requires the faster clock. 11 * megabits/second; but this requires the faster clock.
12 */ 12 */
13#define BASE_BAUD ( 1843200 / 16 ) 13#define BASE_BAUD ( 1843200 / 16 )
14
15/* Standard COM flags (except for COM4, because of the 8514 problem) */
16#ifdef CONFIG_SERIAL_DETECT_IRQ
17#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST | ASYNC_AUTO_IRQ)
18#define STD_COM4_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_AUTO_IRQ)
19#else
20#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST)
21#define STD_COM4_FLAGS ASYNC_BOOT_AUTOCONF
22#endif
23
24#define SERIAL_PORT_DFNS \
25 /* UART CLK PORT IRQ FLAGS */ \
26 { 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS }, /* ttyS0 */ \
27 { 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS }, /* ttyS1 */ \
28 { 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS }, /* ttyS2 */ \
29 { 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS }, /* ttyS3 */
diff --git a/include/asm-x86_64/serial.h b/include/asm-x86_64/serial.h
index 8ebd765c674a..b0496e0d72a6 100644
--- a/include/asm-x86_64/serial.h
+++ b/include/asm-x86_64/serial.h
@@ -11,3 +11,19 @@
11 * megabits/second; but this requires the faster clock. 11 * megabits/second; but this requires the faster clock.
12 */ 12 */
13#define BASE_BAUD ( 1843200 / 16 ) 13#define BASE_BAUD ( 1843200 / 16 )
14
15/* Standard COM flags (except for COM4, because of the 8514 problem) */
16#ifdef CONFIG_SERIAL_DETECT_IRQ
17#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST | ASYNC_AUTO_IRQ)
18#define STD_COM4_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_AUTO_IRQ)
19#else
20#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST)
21#define STD_COM4_FLAGS ASYNC_BOOT_AUTOCONF
22#endif
23
24#define SERIAL_PORT_DFNS \
25 /* UART CLK PORT IRQ FLAGS */ \
26 { 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS }, /* ttyS0 */ \
27 { 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS }, /* ttyS1 */ \
28 { 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS }, /* ttyS2 */ \
29 { 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS }, /* ttyS3 */