- Remove SPCR gunk, we can't use it without infringing microsoft's copyright.
diff -urpNX dontdiff linux-2.5.29/arch/ia64/kernel/acpi.c linux-2.5.29-scsi/arch/ia64/kernel/acpi.c
--- linux-2.5.29/arch/ia64/kernel/acpi.c 2002-06-20 16:53:52.000000000 -0600
+++ linux-2.5.29-scsi/arch/ia64/kernel/acpi.c 2002-07-28 10:24:05.000000000 -0600
@@ -460,70 +460,6 @@ acpi_find_rsdp (unsigned long *rsdp_phys
}
-#ifdef CONFIG_SERIAL_ACPI
-
-#include <linux/acpi_serial.h>
-
-static int __init
-acpi_parse_spcr (unsigned long phys_addr, unsigned long size)
-{
- acpi_ser_t *spcr = NULL;
- unsigned long global_int = 0;
-
- if (!phys_addr || !size)
- return -EINVAL;
-
- if (!iosapic_register_irq)
- return -ENODEV;
-
- /*
- * ACPI is able to describe serial ports that live at non-standard
- * memory addresses and use non-standard interrupts, either via
- * direct SAPIC mappings or via PCI interrupts. We handle interrupt
- * routing for SAPIC-based (non-PCI) devices here. Interrupt routing
- * for PCI devices will be handled when processing the PCI Interrupt
- * Routing Table (PRT).
- */
-
- spcr = (acpi_ser_t *) __va(phys_addr);
- if (!spcr) {
- printk(KERN_WARNING PREFIX "Unable to map SPCR\n");
- return -ENODEV;
- }
-
- setup_serial_acpi(spcr);
-
- if (spcr->length < sizeof(acpi_ser_t))
- /* Table not long enough for full info, thus no interrupt */
- return -ENODEV;
-
- if ((spcr->base_addr.space_id != ACPI_SERIAL_PCICONF_SPACE) &&
- (spcr->int_type == ACPI_SERIAL_INT_SAPIC))
- {
- u32 irq_base = 0;
- char *iosapic_address = NULL;
- int vector = 0;
-
- /* We have a UART in memory space with an SAPIC interrupt */
-
- global_int = ( (spcr->global_int[3] << 24) |
- (spcr->global_int[2] << 16) |
- (spcr->global_int[1] << 8) |
- (spcr->global_int[0]) );
-
- /* Which iosapic does this IRQ belong to? */
-
- if (0 == acpi_find_iosapic(global_int, &irq_base, &iosapic_address)) {
- vector = iosapic_register_irq (global_int, 1, 1,
- irq_base, iosapic_address);
- }
- }
- return 0;
-}
-
-#endif /*CONFIG_SERIAL_ACPI*/
-
-
int __init
acpi_boot_init (char *cmdline)
{
@@ -594,16 +530,6 @@ acpi_boot_init (char *cmdline)
return result;
}
-#ifdef CONFIG_SERIAL_ACPI
- /*
- * TBD: Need phased approach to table parsing (only do those absolutely
- * required during boot-up). Recommend expanding concept of fix-
- * feature devices (LDM) to include table-based devices such as
- * serial ports, EC, SMBus, etc.
- */
- acpi_table_parse(ACPI_SPCR, acpi_parse_spcr);
-#endif /*CONFIG_SERIAL_ACPI*/
-
#ifdef CONFIG_SMP
if (available_cpus == 0) {
printk("ACPI: Found 0 CPUS; assuming 1\n");
diff -urpNX dontdiff linux-2.5.29/include/linux/acpi_serial.h linux-2.5.29-scsi/include/linux/acpi_serial.h
--- linux-2.5.29/include/linux/acpi_serial.h 2002-06-20 16:53:53.000000000 -0600
+++ linux-2.5.29-scsi/include/linux/acpi_serial.h 1969-12-31 17:00:00.000000000 -0700
@@ -1,105 +0,0 @@
-/*
- * linux/include/linux/acpi_serial.h
- *
- * Copyright (C) 2000 Hewlett-Packard Co.
- * Copyright (C) 2000 Khalid Aziz <
[email protected]>
- *
- * Definitions for ACPI defined serial ports (headless console and
- * debug ports)
- *
- */
-
-extern void setup_serial_acpi(void *);
-
-#define ACPI_SIG_LEN 4
-
-/* ACPI table signatures */
-#define ACPI_SPCRT_SIGNATURE "SPCR"
-#define ACPI_DBGPT_SIGNATURE "DBGP"
-
-/* Interface type as defined in ACPI serial port tables */
-#define ACPI_SERIAL_INTFC_16550 0
-#define ACPI_SERIAL_INTFC_16450 1
-
-/* Interrupt types for ACPI serial port tables */
-#define ACPI_SERIAL_INT_PCAT 0x01
-#define ACPI_SERIAL_INT_APIC 0x02
-#define ACPI_SERIAL_INT_SAPIC 0x04
-
-/* Baud rates as defined in ACPI serial port tables */
-#define ACPI_SERIAL_BAUD_9600 3
-#define ACPI_SERIAL_BAUD_19200 4
-#define ACPI_SERIAL_BAUD_57600 6
-#define ACPI_SERIAL_BAUD_115200 7
-
-/* Parity as defined in ACPI serial port tables */
-#define ACPI_SERIAL_PARITY_NONE 0
-
-/* Flow control methods as defined in ACPI serial port tables */
-#define ACPI_SERIAL_FLOW_DCD 0x01
-#define ACPI_SERIAL_FLOW_RTS 0x02
-#define ACPI_SERIAL_FLOW_XON 0x04
-
-/* Terminal types as defined in ACPI serial port tables */
-#define ACPI_SERIAL_TERM_VT100 0
-#define ACPI_SERIAL_TERM_VT100X 1
-
-/* PCI Flags as defined by SPCR table */
-#define ACPI_SERIAL_PCIFLAG_PNP 0x00000001
-
-/* Space ID as defined in base address structure in ACPI serial port tables */
-#define ACPI_SERIAL_MEM_SPACE 0
-#define ACPI_SERIAL_IO_SPACE 1
-#define ACPI_SERIAL_PCICONF_SPACE 2
-
-/*
- * Generic Register Address Structure - as defined by Microsoft
- * in
http://www.microsoft.com/hwdev/onnow/download/LFreeACPI.doc
- *
-*/
-typedef struct {
- u8 space_id;
- u8 bit_width;
- u8 bit_offset;
- u8 resv;
- u32 addrl;
- u32 addrh;
-} gen_regaddr;
-
-/* Space ID for generic register address structure */
-#define REGADDR_SPACE_SYSMEM 0
-#define REGADDR_SPACE_SYSIO 1
-#define REGADDR_SPACE_PCICONFIG 2
-
-/* Serial Port Console Redirection and Debug Port Table formats */
-typedef struct {
- u8 signature[4];
- u32 length;
- u8 rev;
- u8 chksum;
- u8 oemid[6];
- u8 oem_tabid[8];
- u32 oem_rev;
- u8 creator_id[4];
- u32 creator_rev;
- u8 intfc_type;
- u8 resv1[3];
- gen_regaddr base_addr;
- u8 int_type;
- u8 irq;
- u8 global_int[4];
- u8 baud;
- u8 parity;
- u8 stop_bits;
- u8 flow_ctrl;
- u8 termtype;
- u8 language;
- u16 pci_dev_id;
- u16 pci_vendor_id;
- u8 pci_bus;
- u8 pci_dev;
- u8 pci_func;
- u8 pci_flags[4];
- u8 pci_seg;
- u32 resv2;
-} acpi_ser_t;