r3770 - in trunk: . kernel/source/linux-2.6/debian/arch kernel/source/linux-2.6/debian/arch/hppa kernel/source/linux-2.6/debian/patches-arch

Kyle McMartin kyle at costa.debian.org
Tue Aug 9 03:54:32 UTC 2005


Author: kyle
Date: 2005-08-09 03:54:02 +0000 (Tue, 09 Aug 2005)
New Revision: 3770

Added:
   trunk/kernel/source/linux-2.6/debian/arch/hppa/
   trunk/kernel/source/linux-2.6/debian/arch/hppa/Makefile.inc
   trunk/kernel/source/linux-2.6/debian/arch/hppa/config
   trunk/kernel/source/linux-2.6/debian/arch/hppa/config.32
   trunk/kernel/source/linux-2.6/debian/arch/hppa/config.32-smp
   trunk/kernel/source/linux-2.6/debian/arch/hppa/config.64
   trunk/kernel/source/linux-2.6/debian/arch/hppa/config.64-smp
   trunk/kernel/source/linux-2.6/debian/arch/hppa/defines
   trunk/kernel/source/linux-2.6/debian/patches-arch/hppa.diff
Modified:
   trunk/MAINTAINERS.Debian
Log:
hppa for linux-2.6 common source package. configs are up to date, some
non-working drivers have been culled until they can be proven to work, so as
to not pollute the BTS with hppa-specific brokenness. more stuff will be
culled as i get the opportunity, hopefully. configs still need to be split.


Modified: trunk/MAINTAINERS.Debian
===================================================================
--- trunk/MAINTAINERS.Debian	2005-08-09 02:25:01 UTC (rev 3769)
+++ trunk/MAINTAINERS.Debian	2005-08-09 03:54:02 UTC (rev 3770)
@@ -18,8 +18,7 @@
     - N.N.
   * hppa
     - Matthew Wilcox
-    - Thibaut Varene (2.4)
-    - Kyle McMartin (2.6)
+    - Kyle McMartin
   * i386
     - Andres Salomon
     - Simon Horman

Added: trunk/kernel/source/linux-2.6/debian/arch/hppa/Makefile.inc
===================================================================
--- trunk/kernel/source/linux-2.6/debian/arch/hppa/Makefile.inc	2005-08-09 02:25:01 UTC (rev 3769)
+++ trunk/kernel/source/linux-2.6/debian/arch/hppa/Makefile.inc	2005-08-09 03:54:02 UTC (rev 3770)
@@ -0,0 +1,4 @@
+#
+# Variables 
+#
+initrd_modules := kernel/security/capability.ko

Added: trunk/kernel/source/linux-2.6/debian/arch/hppa/config
===================================================================
--- trunk/kernel/source/linux-2.6/debian/arch/hppa/config	2005-08-09 02:25:01 UTC (rev 3769)
+++ trunk/kernel/source/linux-2.6/debian/arch/hppa/config	2005-08-09 03:54:02 UTC (rev 3770)
@@ -0,0 +1,1689 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.12
+# Tue Aug  9 03:42:02 2005
+#
+CONFIG_PARISC=y
+CONFIG_MMU=y
+CONFIG_STACK_GROWSUP=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_ISA_DMA_API=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_CLEAN_COMPILE=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_SYSCTL=y
+# CONFIG_AUDIT is not set
+CONFIG_HOTPLUG=y
+CONFIG_KOBJECT_UEVENT=y
+CONFIG_IKCONFIG=y
+# CONFIG_IKCONFIG_PROC is not set
+# CONFIG_EMBEDDED is not set
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_OBSOLETE_MODPARM=y
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_KMOD=y
+
+#
+# Processor type and features
+#
+CONFIG_PA7000=y
+# CONFIG_PA7100LC is not set
+# CONFIG_PA7200 is not set
+# CONFIG_PA7300LC is not set
+# CONFIG_PA8X00 is not set
+CONFIG_PA11=y
+# CONFIG_SMP is not set
+# CONFIG_PREEMPT is not set
+# CONFIG_HPUX is not set
+
+#
+# Bus options (PCI, PCMCIA, EISA, GSC, ISA)
+#
+CONFIG_GSC=y
+CONFIG_HPPB=y
+CONFIG_IOMMU_CCIO=y
+CONFIG_GSC_LASI=y
+CONFIG_GSC_WAX=y
+CONFIG_EISA=y
+CONFIG_EISA_NAMES=y
+CONFIG_ISA=y
+CONFIG_PCI=y
+CONFIG_PCI_LEGACY_PROC=y
+CONFIG_PCI_NAMES=y
+# CONFIG_PCI_DEBUG is not set
+CONFIG_GSC_DINO=y
+CONFIG_PCI_LBA=y
+CONFIG_IOSAPIC=y
+CONFIG_IOMMU_SBA=y
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+CONFIG_PCCARD=m
+# CONFIG_PCMCIA_DEBUG is not set
+CONFIG_PCMCIA=m
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
+CONFIG_YENTA=m
+CONFIG_PD6729=m
+CONFIG_I82092=m
+CONFIG_I82365=m
+# CONFIG_TCIC is not set
+CONFIG_PCCARD_NONSTATIC=m
+
+#
+# PCI Hotplug Support
+#
+# CONFIG_HOTPLUG_PCI is not set
+
+#
+# PA-RISC specific drivers
+#
+CONFIG_SUPERIO=y
+CONFIG_CHASSIS_LCD_LED=y
+CONFIG_PDC_CHASSIS=y
+CONFIG_PDC_STABLE=y
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_MISC=m
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+# CONFIG_DEBUG_DRIVER is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+# CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+# CONFIG_PARPORT_SERIAL is not set
+# CONFIG_PARPORT_PC_FIFO is not set
+# CONFIG_PARPORT_PC_SUPERIO is not set
+CONFIG_PARPORT_PC_PCMCIA=m
+CONFIG_PARPORT_GSC=y
+# CONFIG_PARPORT_1284 is not set
+
+#
+# Plug and Play support
+#
+# CONFIG_PNP is not set
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE is not set
+# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_SX8 is not set
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=8192
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_ATA_OVER_ETH=m
+
+#
+# ATA/ATAPI/MFM/RLL support
+#
+CONFIG_IDE=m
+CONFIG_BLK_DEV_IDE=m
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_BLK_DEV_IDEDISK=m
+# CONFIG_IDEDISK_MULTI_MODE is not set
+CONFIG_BLK_DEV_IDECS=m
+CONFIG_BLK_DEV_IDECD=m
+# CONFIG_BLK_DEV_IDETAPE is not set
+# CONFIG_BLK_DEV_IDEFLOPPY is not set
+CONFIG_BLK_DEV_IDESCSI=m
+# CONFIG_IDE_TASK_IOCTL is not set
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=m
+CONFIG_BLK_DEV_IDEPCI=y
+CONFIG_IDEPCI_SHARE_IRQ=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+# CONFIG_BLK_DEV_GENERIC is not set
+# CONFIG_BLK_DEV_OPTI621 is not set
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
+CONFIG_IDEDMA_PCI_AUTO=y
+# CONFIG_IDEDMA_ONLYDISK is not set
+# CONFIG_BLK_DEV_AEC62XX is not set
+# CONFIG_BLK_DEV_ALI15X3 is not set
+# CONFIG_BLK_DEV_AMD74XX is not set
+CONFIG_BLK_DEV_CMD64X=m
+# CONFIG_BLK_DEV_TRIFLEX is not set
+# CONFIG_BLK_DEV_CY82C693 is not set
+# CONFIG_BLK_DEV_CS5520 is not set
+# CONFIG_BLK_DEV_CS5530 is not set
+# CONFIG_BLK_DEV_HPT34X is not set
+# CONFIG_BLK_DEV_HPT366 is not set
+# CONFIG_BLK_DEV_SC1200 is not set
+# CONFIG_BLK_DEV_PIIX is not set
+CONFIG_BLK_DEV_NS87415=m
+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
+# CONFIG_BLK_DEV_PDC202XX_NEW is not set
+# CONFIG_BLK_DEV_SVWKS is not set
+# CONFIG_BLK_DEV_SIIMAGE is not set
+# CONFIG_BLK_DEV_SLC90E66 is not set
+# CONFIG_BLK_DEV_TRM290 is not set
+# CONFIG_BLK_DEV_VIA82CXXX is not set
+# CONFIG_IDE_ARM is not set
+# CONFIG_IDE_CHIPSETS is not set
+CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDEDMA_IVB is not set
+CONFIG_IDEDMA_AUTO=y
+# CONFIG_BLK_DEV_HD is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI=y
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_SCH=m
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+# CONFIG_SCSI_MULTI_LUN is not set
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+
+#
+# SCSI Transport Attributes
+#
+CONFIG_SCSI_SPI_ATTRS=y
+CONFIG_SCSI_FC_ATTRS=m
+CONFIG_SCSI_ISCSI_ATTRS=m
+
+#
+# SCSI low-level drivers
+#
+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_3W_9XXX is not set
+# CONFIG_SCSI_7000FASST is not set
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_AHA152X is not set
+# CONFIG_SCSI_AHA1542 is not set
+# CONFIG_SCSI_AHA1740 is not set
+# CONFIG_SCSI_AACRAID is not set
+# CONFIG_SCSI_AIC7XXX is not set
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+# CONFIG_SCSI_AIC79XX is not set
+# CONFIG_SCSI_DPT_I2O is not set
+# CONFIG_SCSI_IN2000 is not set
+# CONFIG_MEGARAID_NEWGEN is not set
+CONFIG_MEGARAID_LEGACY=m
+# CONFIG_SCSI_SATA is not set
+# CONFIG_SCSI_BUSLOGIC is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_DTC3280 is not set
+# CONFIG_SCSI_EATA is not set
+# CONFIG_SCSI_FUTURE_DOMAIN is not set
+# CONFIG_SCSI_GDTH is not set
+# CONFIG_SCSI_GENERIC_NCR5380 is not set
+# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
+# CONFIG_SCSI_IPS is not set
+CONFIG_SCSI_INITIO=m
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_PPA is not set
+# CONFIG_SCSI_IMM is not set
+# CONFIG_SCSI_NCR53C406A is not set
+CONFIG_SCSI_LASI700=m
+CONFIG_53C700_LE_ON_BE=y
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
+# CONFIG_SCSI_IPR is not set
+CONFIG_SCSI_ZALON=m
+CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8
+CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32
+CONFIG_SCSI_NCR53C8XX_SYNC=20
+# CONFIG_SCSI_NCR53C8XX_PROFILE is not set
+# CONFIG_SCSI_PAS16 is not set
+# CONFIG_SCSI_PSI240I is not set
+# CONFIG_SCSI_QLOGIC_FAS is not set
+# CONFIG_SCSI_QLOGIC_FC is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+CONFIG_SCSI_LPFC=m
+# CONFIG_SCSI_SIM710 is not set
+# CONFIG_SCSI_SYM53C416 is not set
+# CONFIG_SCSI_DC395x is not set
+# CONFIG_SCSI_DC390T is not set
+# CONFIG_SCSI_T128 is not set
+# CONFIG_SCSI_U14_34F is not set
+# CONFIG_SCSI_NSP32 is not set
+# CONFIG_SCSI_DEBUG is not set
+
+#
+# PCMCIA SCSI adapter support
+#
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_NINJA_SCSI=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+
+#
+# Old CD-ROM drivers (not SCSI, not IDE)
+#
+# CONFIG_CD_NO_IDESCSI is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID5=m
+CONFIG_MD_RAID6=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+CONFIG_BLK_DEV_DM=m
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_EMC=m
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_IEEE1394 is not set
+
+#
+# I2O device support
+#
+CONFIG_I2O=m
+CONFIG_I2O_CONFIG=m
+CONFIG_I2O_BLOCK=m
+CONFIG_I2O_SCSI=m
+CONFIG_I2O_PROC=m
+
+#
+# Networking support
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_UNIX=y
+CONFIG_NET_KEY=m
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_PNP=y
+# CONFIG_IP_PNP_DHCP is not set
+CONFIG_IP_PNP_BOOTP=y
+# CONFIG_IP_PNP_RARP is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
+# CONFIG_NET_IPGRE_BROADCAST is not set
+# CONFIG_IP_MROUTE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+CONFIG_IP_TCPDIAG_IPV6=y
+
+#
+# IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_IPV6_TUNNEL=m
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_IP_NF_CONNTRACK=m
+CONFIG_IP_NF_CT_ACCT=y
+CONFIG_IP_NF_CONNTRACK_MARK=y
+CONFIG_IP_NF_CT_PROTO_SCTP=m
+CONFIG_IP_NF_FTP=m
+CONFIG_IP_NF_IRC=m
+CONFIG_IP_NF_TFTP=m
+CONFIG_IP_NF_AMANDA=m
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_LIMIT=m
+CONFIG_IP_NF_MATCH_IPRANGE=m
+CONFIG_IP_NF_MATCH_MAC=m
+CONFIG_IP_NF_MATCH_PKTTYPE=m
+CONFIG_IP_NF_MATCH_MARK=m
+CONFIG_IP_NF_MATCH_MULTIPORT=m
+CONFIG_IP_NF_MATCH_TOS=m
+CONFIG_IP_NF_MATCH_RECENT=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_DSCP=m
+CONFIG_IP_NF_MATCH_AH_ESP=m
+CONFIG_IP_NF_MATCH_LENGTH=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_MATCH_TCPMSS=m
+CONFIG_IP_NF_MATCH_HELPER=m
+CONFIG_IP_NF_MATCH_STATE=m
+CONFIG_IP_NF_MATCH_CONNTRACK=m
+CONFIG_IP_NF_MATCH_OWNER=m
+# CONFIG_IP_NF_MATCH_PHYSDEV is not set
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_REALM=m
+CONFIG_IP_NF_MATCH_SCTP=m
+CONFIG_IP_NF_MATCH_COMMENT=m
+CONFIG_IP_NF_MATCH_CONNMARK=m
+CONFIG_IP_NF_MATCH_HASHLIMIT=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_IP_NF_TARGET_TCPMSS=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_SAME=m
+CONFIG_IP_NF_NAT_SNMP_BASIC=m
+CONFIG_IP_NF_NAT_IRC=m
+CONFIG_IP_NF_NAT_FTP=m
+CONFIG_IP_NF_NAT_TFTP=m
+CONFIG_IP_NF_NAT_AMANDA=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_TOS=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_DSCP=m
+CONFIG_IP_NF_TARGET_MARK=m
+CONFIG_IP_NF_TARGET_CLASSIFY=m
+CONFIG_IP_NF_TARGET_CONNMARK=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_TARGET_NOTRACK=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration (EXPERIMENTAL)
+#
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_LIMIT=m
+CONFIG_IP6_NF_MATCH_MAC=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_MULTIPORT=m
+CONFIG_IP6_NF_MATCH_OWNER=m
+CONFIG_IP6_NF_MATCH_MARK=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_AHESP=m
+CONFIG_IP6_NF_MATCH_LENGTH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_PHYSDEV=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_TARGET_MARK=m
+CONFIG_IP6_NF_RAW=m
+
+#
+# Bridge: Netfilter Configuration
+#
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_ULOG=m
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+# CONFIG_ATM is not set
+CONFIG_BRIDGE=m
+CONFIG_VLAN_8021Q=m
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+
+#
+# QoS and/or fair queueing
+#
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CLK_JIFFIES=y
+# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
+# CONFIG_NET_SCH_CLK_CPU is not set
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_QOS=y
+CONFIG_NET_ESTIMATOR=y
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_CLS_U32_PERF=y
+CONFIG_NET_CLS_IND=y
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+CONFIG_NETPOLL=y
+# CONFIG_NETPOLL_RX is not set
+# CONFIG_NETPOLL_TRAP is not set
+CONFIG_NET_POLL_CONTROLLER=y
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+CONFIG_NETDEVICES=y
+CONFIG_DUMMY=m
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+CONFIG_TUN=m
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=m
+CONFIG_LASI_82596=m
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_EL1=m
+CONFIG_EL2=m
+CONFIG_ELPLUS=m
+CONFIG_EL16=m
+CONFIG_EL3=m
+# CONFIG_3C515 is not set
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+# CONFIG_LANCE is not set
+CONFIG_NET_VENDOR_SMC=y
+CONFIG_WD80x3=m
+CONFIG_ULTRA=m
+CONFIG_ULTRA32=m
+CONFIG_SMC9194=m
+CONFIG_NET_VENDOR_RACAL=y
+# CONFIG_NI5010 is not set
+CONFIG_NI52=m
+# CONFIG_NI65 is not set
+
+#
+# Tulip family network device support
+#
+CONFIG_NET_TULIP=y
+# CONFIG_DE2104X is not set
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+# CONFIG_TULIP_NAPI is not set
+# CONFIG_DE4X5 is not set
+# CONFIG_WINBOND_840 is not set
+# CONFIG_DM9102 is not set
+CONFIG_PCMCIA_XIRCOM=m
+# CONFIG_PCMCIA_XIRTULIP is not set
+CONFIG_AT1700=m
+CONFIG_DEPCA=m
+CONFIG_HP100=m
+CONFIG_NET_ISA=y
+CONFIG_E2100=m
+CONFIG_EWRK3=m
+CONFIG_EEXPRESS=m
+CONFIG_EEXPRESS_PRO=m
+CONFIG_HPLAN_PLUS=m
+CONFIG_HPLAN=m
+CONFIG_LP486E=m
+CONFIG_ETH16I=m
+CONFIG_NE2000=m
+CONFIG_ZNET=m
+CONFIG_SEEQ8005=m
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=m
+CONFIG_AMD8111_ETH=m
+# CONFIG_AMD8111E_NAPI is not set
+CONFIG_ADAPTEC_STARFIRE=m
+# CONFIG_ADAPTEC_STARFIRE_NAPI is not set
+CONFIG_AC3200=m
+CONFIG_APRICOT=m
+CONFIG_B44=m
+CONFIG_FORCEDETH=m
+CONFIG_CS89x0=m
+CONFIG_EEPRO100=m
+CONFIG_E100=m
+CONFIG_LNE390=m
+CONFIG_FEALNX=m
+CONFIG_NATSEMI=m
+CONFIG_NE2K_PCI=m
+CONFIG_NE3210=m
+CONFIG_ES3210=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+# CONFIG_8139TOO_TUNE_TWISTER is not set
+# CONFIG_8139TOO_8129 is not set
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_SIS900=m
+CONFIG_EPIC100=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_TLAN=m
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+# CONFIG_NET_POCKET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+CONFIG_DL2K=m
+CONFIG_E1000=m
+# CONFIG_E1000_NAPI is not set
+CONFIG_NS83820=m
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_R8169=m
+# CONFIG_R8169_NAPI is not set
+CONFIG_R8169_VLAN=y
+CONFIG_SK98LIN=m
+CONFIG_VIA_VELOCITY=m
+CONFIG_TIGON3=m
+CONFIG_BNX2=m
+
+#
+# Ethernet (10000 Mbit)
+#
+CONFIG_IXGB=m
+# CONFIG_IXGB_NAPI is not set
+CONFIG_S2IO=m
+# CONFIG_S2IO_NAPI is not set
+# CONFIG_2BUFF_MODE is not set
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+CONFIG_NET_RADIO=y
+
+#
+# Obsolete Wireless cards support (pre-802.11)
+#
+# CONFIG_STRIP is not set
+# CONFIG_ARLAN is not set
+# CONFIG_WAVELAN is not set
+CONFIG_PCMCIA_WAVELAN=m
+CONFIG_PCMCIA_NETWAVE=m
+
+#
+# Wireless 802.11 Frequency Hopping cards support
+#
+CONFIG_PCMCIA_RAYCS=m
+
+#
+# Wireless 802.11b ISA/PCI cards support
+#
+CONFIG_AIRO=m
+CONFIG_HERMES=m
+# CONFIG_PLX_HERMES is not set
+# CONFIG_TMD_HERMES is not set
+# CONFIG_PCI_HERMES is not set
+# CONFIG_ATMEL is not set
+
+#
+# Wireless 802.11b Pcmcia/Cardbus cards support
+#
+CONFIG_PCMCIA_HERMES=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_WL3501=m
+
+#
+# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
+#
+CONFIG_PRISM54=m
+CONFIG_NET_WIRELESS=y
+
+#
+# PCMCIA network device support
+#
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_AXNET=m
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPPOE=m
+CONFIG_SLIP=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+# CONFIG_SLIP_MODE_SLIP6 is not set
+# CONFIG_NET_FC is not set
+CONFIG_SHAPER=m
+CONFIG_NETCONSOLE=m
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_TSDEV is not set
+CONFIG_INPUT_EVDEV=m
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_ATKBD_HP_KEYCODES=y
+# CONFIG_KEYBOARD_ATKBD_RDI_KEYCODES is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+CONFIG_KEYBOARD_HIL_OLD=m
+CONFIG_KEYBOARD_HIL=m
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_INPORT is not set
+# CONFIG_MOUSE_LOGIBM is not set
+# CONFIG_MOUSE_PC110PAD is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+CONFIG_MOUSE_HIL=m
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_UINPUT is not set
+CONFIG_HP_SDC_RTC=m
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+# CONFIG_SERIO_SERPORT is not set
+# CONFIG_SERIO_PARKBD is not set
+CONFIG_SERIO_GSCPS2=y
+CONFIG_HP_SDC=m
+CONFIG_HIL_MLC=m
+# CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+# CONFIG_SERIAL_8250_MULTIPORT is not set
+# CONFIG_SERIAL_8250_RSA is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_MUX=y
+CONFIG_SERIAL_MUX_CONSOLE=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_JSM=m
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+# CONFIG_PPDEV is not set
+# CONFIG_TIPAR is not set
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+CONFIG_GEN_RTC=y
+# CONFIG_GEN_RTC_X is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_DRM is not set
+
+#
+# PCMCIA character devices
+#
+CONFIG_SYNCLINK_CS=m
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+CONFIG_TCG_TPM=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_ATMEL=m
+
+#
+# I2C support
+#
+CONFIG_I2C=m
+CONFIG_I2C_CHARDEV=m
+
+#
+# I2C Algorithms
+#
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCF=m
+CONFIG_I2C_ALGOPCA=m
+
+#
+# I2C Hardware Bus support
+#
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_ELEKTOR=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_I810=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_ISA=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_PROSAVAGE=m
+CONFIG_I2C_SAVAGE4=m
+CONFIG_SCx200_ACB=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_STUB=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+CONFIG_I2C_VOODOO3=m
+CONFIG_I2C_PCA_ISA=m
+
+#
+# Hardware Sensors Chip support
+#
+CONFIG_I2C_SENSOR=m
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_FSCHER=m
+CONFIG_SENSORS_FSCPOS=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83627HF=m
+
+#
+# Other I2C Chip support
+#
+CONFIG_SENSORS_DS1337=m
+CONFIG_SENSORS_EEPROM=m
+CONFIG_SENSORS_PCF8574=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_SENSORS_RTC8564=m
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
+#
+# Misc devices
+#
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+# CONFIG_DVB is not set
+
+#
+# Graphics support
+#
+CONFIG_FB=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+CONFIG_FB_SOFT_CURSOR=y
+# CONFIG_FB_MACMODES is not set
+CONFIG_FB_MODE_HELPERS=y
+# CONFIG_FB_TILEBLITTING is not set
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+CONFIG_FB_STI=y
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_RADEON_OLD is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_VIRTUAL is not set
+
+#
+# Console display driver support
+#
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_DUMMY_CONSOLE_COLUMNS=160
+CONFIG_DUMMY_CONSOLE_ROWS=64
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_STI_CONSOLE=y
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+
+#
+# Logo configuration
+#
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_LOGO_PARISC_CLUT224=y
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Sound
+#
+CONFIG_SOUND=m
+
+#
+# Advanced Linux Sound Architecture
+#
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_SEQUENCER=m
+# CONFIG_SND_SEQ_DUMMY is not set
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_SEQUENCER_OSS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+
+#
+# Generic devices
+#
+CONFIG_SND_DUMMY=m
+# CONFIG_SND_VIRMIDI is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+
+#
+# ISA devices
+#
+# CONFIG_SND_AD1848 is not set
+# CONFIG_SND_CS4231 is not set
+# CONFIG_SND_CS4232 is not set
+# CONFIG_SND_CS4236 is not set
+# CONFIG_SND_ES1688 is not set
+# CONFIG_SND_ES18XX is not set
+# CONFIG_SND_GUSCLASSIC is not set
+# CONFIG_SND_GUSEXTREME is not set
+# CONFIG_SND_GUSMAX is not set
+# CONFIG_SND_INTERWAVE is not set
+# CONFIG_SND_INTERWAVE_STB is not set
+# CONFIG_SND_OPTI92X_AD1848 is not set
+# CONFIG_SND_OPTI92X_CS4231 is not set
+# CONFIG_SND_OPTI93X is not set
+# CONFIG_SND_SB8 is not set
+# CONFIG_SND_SB16 is not set
+# CONFIG_SND_SBAWE is not set
+# CONFIG_SND_WAVEFRONT is not set
+# CONFIG_SND_CMI8330 is not set
+# CONFIG_SND_OPL3SA2 is not set
+# CONFIG_SND_SGALAXY is not set
+# CONFIG_SND_SSCAPE is not set
+
+#
+# PCI devices
+#
+CONFIG_SND_AC97_CODEC=m
+# CONFIG_SND_ALI5451 is not set
+CONFIG_SND_AD1889=m
+# CONFIG_SND_AD1889_OPL3 is not set
+# CONFIG_SND_ATIIXP is not set
+# CONFIG_SND_ATIIXP_MODEM is not set
+# CONFIG_SND_AU8810 is not set
+# CONFIG_SND_AU8820 is not set
+# CONFIG_SND_AU8830 is not set
+# CONFIG_SND_AZT3328 is not set
+# CONFIG_SND_BT87X is not set
+# CONFIG_SND_CS46XX is not set
+# CONFIG_SND_CS4281 is not set
+# CONFIG_SND_EMU10K1 is not set
+# CONFIG_SND_EMU10K1X is not set
+# CONFIG_SND_CA0106 is not set
+# CONFIG_SND_KORG1212 is not set
+# CONFIG_SND_MIXART is not set
+# CONFIG_SND_NM256 is not set
+# CONFIG_SND_RME32 is not set
+# CONFIG_SND_RME96 is not set
+# CONFIG_SND_RME9652 is not set
+# CONFIG_SND_HDSP is not set
+# CONFIG_SND_TRIDENT is not set
+# CONFIG_SND_YMFPCI is not set
+# CONFIG_SND_ALS4000 is not set
+# CONFIG_SND_CMIPCI is not set
+# CONFIG_SND_ENS1370 is not set
+# CONFIG_SND_ENS1371 is not set
+# CONFIG_SND_ES1938 is not set
+# CONFIG_SND_ES1968 is not set
+# CONFIG_SND_MAESTRO3 is not set
+# CONFIG_SND_FM801 is not set
+# CONFIG_SND_ICE1712 is not set
+# CONFIG_SND_ICE1724 is not set
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
+# CONFIG_SND_SONICVIBES is not set
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
+# CONFIG_SND_VX222 is not set
+# CONFIG_SND_HDA_INTEL is not set
+
+#
+# USB devices
+#
+# CONFIG_SND_USB_AUDIO is not set
+
+#
+# PCMCIA devices
+#
+# CONFIG_SND_VXPOCKET is not set
+# CONFIG_SND_VXP440 is not set
+# CONFIG_SND_PDAUDIOCF is not set
+
+#
+# GSC devices
+#
+CONFIG_SND_HARMONY=m
+
+#
+# Open Sound System
+#
+# CONFIG_SOUND_PRIME is not set
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB=m
+CONFIG_USB_DEBUG=y
+
+#
+# Miscellaneous USB options
+#
+# CONFIG_USB_DEVICEFS is not set
+# CONFIG_USB_BANDWIDTH is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_EHCI_HCD=m
+# CONFIG_USB_EHCI_SPLIT_ISO is not set
+# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_OHCI_BIG_ENDIAN is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_UHCI_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_AUDIO is not set
+# CONFIG_USB_BLUETOOTH_TTY is not set
+# CONFIG_USB_MIDI is not set
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_DPCM is not set
+# CONFIG_USB_STORAGE_USBAT is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=m
+CONFIG_USB_HIDINPUT=y
+# CONFIG_HID_FF is not set
+CONFIG_USB_HIDDEV=y
+
+#
+# USB HID Boot Protocol drivers
+#
+CONFIG_USB_KBD=m
+CONFIG_USB_MOUSE=m
+# CONFIG_USB_AIPTEK is not set
+# CONFIG_USB_WACOM is not set
+# CONFIG_USB_KBTAB is not set
+# CONFIG_USB_POWERMATE is not set
+# CONFIG_USB_MTOUCH is not set
+# CONFIG_USB_EGALAX is not set
+# CONFIG_USB_XPAD is not set
+# CONFIG_USB_ATI_REMOTE is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+
+#
+# USB Multimedia devices
+#
+
+#
+# Video4Linux support is needed for USB Multimedia device support
+#
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET is not set
+# CONFIG_USB_ZD1201 is not set
+CONFIG_USB_MON=m
+
+#
+# USB port drivers
+#
+# CONFIG_USB_USS720 is not set
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_AUERSWALD is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_PHIDGETKIT is not set
+# CONFIG_USB_PHIDGETSERVO is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_SISUSBVGA is not set
+
+#
+# USB ATM/DSL drivers
+#
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# MMC/SD Card support
+#
+# CONFIG_MMC is not set
+
+#
+# InfiniBand support
+#
+CONFIG_INFINIBAND=m
+CONFIG_INFINIBAND_MTHCA=m
+# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
+CONFIG_INFINIBAND_IPOIB=m
+# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+CONFIG_EXT3_FS=m
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_JBD=m
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+CONFIG_FS_POSIX_ACL=y
+
+#
+# XFS support
+#
+CONFIG_XFS_FS=m
+CONFIG_XFS_EXPORT=y
+# CONFIG_XFS_RT is not set
+# CONFIG_XFS_QUOTA is not set
+# CONFIG_XFS_SECURITY is not set
+# CONFIG_XFS_POSIX_ACL is not set
+CONFIG_MINIX_FS=m
+CONFIG_ROMFS_FS=m
+CONFIG_QUOTA=y
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+CONFIG_DNOTIFY=y
+CONFIG_AUTOFS_FS=m
+CONFIG_AUTOFS4_FS=m
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_ZISOFS_FS=m
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+# CONFIG_NTFS_RW is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_SYSFS=y
+CONFIG_DEVFS_FS=y
+# CONFIG_DEVFS_MOUNT is not set
+# CONFIG_DEVFS_DEBUG is not set
+# CONFIG_DEVPTS_FS_XATTR is not set
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_XATTR is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_ASFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_CRAMFS=y
+CONFIG_VXFS_FS=m
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_V4=y
+CONFIG_NFS_DIRECTIO=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V4=y
+CONFIG_NFSD_TCP=y
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=m
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+CONFIG_RPCSEC_GSS_KRB5=y
+CONFIG_RPCSEC_GSS_SPKM3=m
+CONFIG_SMB_FS=m
+CONFIG_SMB_NLS_DEFAULT=y
+CONFIG_SMB_NLS_REMOTE="cp437"
+CONFIG_CIFS=m
+# CONFIG_CIFS_STATS is not set
+# CONFIG_CIFS_XATTR is not set
+# CONFIG_CIFS_EXPERIMENTAL is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=m
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=m
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+CONFIG_NLS_UTF8=m
+
+#
+# Profiling support
+#
+CONFIG_PROFILING=y
+CONFIG_OPROFILE=m
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_DEBUG_KERNEL=y
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_LOG_BUF_SHIFT=15
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_DEBUG_SLAB is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_IOREMAP is not set
+# CONFIG_DEBUG_FS is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+CONFIG_SECURITY=y
+CONFIG_SECURITY_NETWORK=y
+CONFIG_SECURITY_CAPABILITIES=y
+# CONFIG_SECURITY_ROOTPLUG is not set
+CONFIG_SECURITY_SECLVL=m
+# CONFIG_SECURITY_SELINUX is not set
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_WP512=m
+# CONFIG_CRYPTO_TGR192 is not set
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Hardware crypto devices
+#
+
+#
+# Library routines
+#
+CONFIG_CRC_CCITT=m
+CONFIG_CRC32=y
+CONFIG_LIBCRC32C=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m

Added: trunk/kernel/source/linux-2.6/debian/arch/hppa/config.32
===================================================================
--- trunk/kernel/source/linux-2.6/debian/arch/hppa/config.32	2005-08-09 02:25:01 UTC (rev 3769)
+++ trunk/kernel/source/linux-2.6/debian/arch/hppa/config.32	2005-08-09 03:54:02 UTC (rev 3770)
@@ -0,0 +1,1689 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.12
+# Tue Aug  9 03:42:02 2005
+#
+CONFIG_PARISC=y
+CONFIG_MMU=y
+CONFIG_STACK_GROWSUP=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_ISA_DMA_API=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_CLEAN_COMPILE=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_SYSCTL=y
+# CONFIG_AUDIT is not set
+CONFIG_HOTPLUG=y
+CONFIG_KOBJECT_UEVENT=y
+CONFIG_IKCONFIG=y
+# CONFIG_IKCONFIG_PROC is not set
+# CONFIG_EMBEDDED is not set
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_OBSOLETE_MODPARM=y
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_KMOD=y
+
+#
+# Processor type and features
+#
+CONFIG_PA7000=y
+# CONFIG_PA7100LC is not set
+# CONFIG_PA7200 is not set
+# CONFIG_PA7300LC is not set
+# CONFIG_PA8X00 is not set
+CONFIG_PA11=y
+# CONFIG_SMP is not set
+# CONFIG_PREEMPT is not set
+# CONFIG_HPUX is not set
+
+#
+# Bus options (PCI, PCMCIA, EISA, GSC, ISA)
+#
+CONFIG_GSC=y
+CONFIG_HPPB=y
+CONFIG_IOMMU_CCIO=y
+CONFIG_GSC_LASI=y
+CONFIG_GSC_WAX=y
+CONFIG_EISA=y
+CONFIG_EISA_NAMES=y
+CONFIG_ISA=y
+CONFIG_PCI=y
+CONFIG_PCI_LEGACY_PROC=y
+CONFIG_PCI_NAMES=y
+# CONFIG_PCI_DEBUG is not set
+CONFIG_GSC_DINO=y
+CONFIG_PCI_LBA=y
+CONFIG_IOSAPIC=y
+CONFIG_IOMMU_SBA=y
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+CONFIG_PCCARD=m
+# CONFIG_PCMCIA_DEBUG is not set
+CONFIG_PCMCIA=m
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
+CONFIG_YENTA=m
+CONFIG_PD6729=m
+CONFIG_I82092=m
+CONFIG_I82365=m
+# CONFIG_TCIC is not set
+CONFIG_PCCARD_NONSTATIC=m
+
+#
+# PCI Hotplug Support
+#
+# CONFIG_HOTPLUG_PCI is not set
+
+#
+# PA-RISC specific drivers
+#
+CONFIG_SUPERIO=y
+CONFIG_CHASSIS_LCD_LED=y
+CONFIG_PDC_CHASSIS=y
+CONFIG_PDC_STABLE=y
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_MISC=m
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+# CONFIG_DEBUG_DRIVER is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+# CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+# CONFIG_PARPORT_SERIAL is not set
+# CONFIG_PARPORT_PC_FIFO is not set
+# CONFIG_PARPORT_PC_SUPERIO is not set
+CONFIG_PARPORT_PC_PCMCIA=m
+CONFIG_PARPORT_GSC=y
+# CONFIG_PARPORT_1284 is not set
+
+#
+# Plug and Play support
+#
+# CONFIG_PNP is not set
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE is not set
+# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_SX8 is not set
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=8192
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_ATA_OVER_ETH=m
+
+#
+# ATA/ATAPI/MFM/RLL support
+#
+CONFIG_IDE=m
+CONFIG_BLK_DEV_IDE=m
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_BLK_DEV_IDEDISK=m
+# CONFIG_IDEDISK_MULTI_MODE is not set
+CONFIG_BLK_DEV_IDECS=m
+CONFIG_BLK_DEV_IDECD=m
+# CONFIG_BLK_DEV_IDETAPE is not set
+# CONFIG_BLK_DEV_IDEFLOPPY is not set
+CONFIG_BLK_DEV_IDESCSI=m
+# CONFIG_IDE_TASK_IOCTL is not set
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=m
+CONFIG_BLK_DEV_IDEPCI=y
+CONFIG_IDEPCI_SHARE_IRQ=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+# CONFIG_BLK_DEV_GENERIC is not set
+# CONFIG_BLK_DEV_OPTI621 is not set
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
+CONFIG_IDEDMA_PCI_AUTO=y
+# CONFIG_IDEDMA_ONLYDISK is not set
+# CONFIG_BLK_DEV_AEC62XX is not set
+# CONFIG_BLK_DEV_ALI15X3 is not set
+# CONFIG_BLK_DEV_AMD74XX is not set
+CONFIG_BLK_DEV_CMD64X=m
+# CONFIG_BLK_DEV_TRIFLEX is not set
+# CONFIG_BLK_DEV_CY82C693 is not set
+# CONFIG_BLK_DEV_CS5520 is not set
+# CONFIG_BLK_DEV_CS5530 is not set
+# CONFIG_BLK_DEV_HPT34X is not set
+# CONFIG_BLK_DEV_HPT366 is not set
+# CONFIG_BLK_DEV_SC1200 is not set
+# CONFIG_BLK_DEV_PIIX is not set
+CONFIG_BLK_DEV_NS87415=m
+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
+# CONFIG_BLK_DEV_PDC202XX_NEW is not set
+# CONFIG_BLK_DEV_SVWKS is not set
+# CONFIG_BLK_DEV_SIIMAGE is not set
+# CONFIG_BLK_DEV_SLC90E66 is not set
+# CONFIG_BLK_DEV_TRM290 is not set
+# CONFIG_BLK_DEV_VIA82CXXX is not set
+# CONFIG_IDE_ARM is not set
+# CONFIG_IDE_CHIPSETS is not set
+CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDEDMA_IVB is not set
+CONFIG_IDEDMA_AUTO=y
+# CONFIG_BLK_DEV_HD is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI=y
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_SCH=m
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+# CONFIG_SCSI_MULTI_LUN is not set
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+
+#
+# SCSI Transport Attributes
+#
+CONFIG_SCSI_SPI_ATTRS=y
+CONFIG_SCSI_FC_ATTRS=m
+CONFIG_SCSI_ISCSI_ATTRS=m
+
+#
+# SCSI low-level drivers
+#
+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_3W_9XXX is not set
+# CONFIG_SCSI_7000FASST is not set
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_AHA152X is not set
+# CONFIG_SCSI_AHA1542 is not set
+# CONFIG_SCSI_AHA1740 is not set
+# CONFIG_SCSI_AACRAID is not set
+# CONFIG_SCSI_AIC7XXX is not set
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+# CONFIG_SCSI_AIC79XX is not set
+# CONFIG_SCSI_DPT_I2O is not set
+# CONFIG_SCSI_IN2000 is not set
+# CONFIG_MEGARAID_NEWGEN is not set
+CONFIG_MEGARAID_LEGACY=m
+# CONFIG_SCSI_SATA is not set
+# CONFIG_SCSI_BUSLOGIC is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_DTC3280 is not set
+# CONFIG_SCSI_EATA is not set
+# CONFIG_SCSI_FUTURE_DOMAIN is not set
+# CONFIG_SCSI_GDTH is not set
+# CONFIG_SCSI_GENERIC_NCR5380 is not set
+# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
+# CONFIG_SCSI_IPS is not set
+CONFIG_SCSI_INITIO=m
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_PPA is not set
+# CONFIG_SCSI_IMM is not set
+# CONFIG_SCSI_NCR53C406A is not set
+CONFIG_SCSI_LASI700=m
+CONFIG_53C700_LE_ON_BE=y
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
+# CONFIG_SCSI_IPR is not set
+CONFIG_SCSI_ZALON=m
+CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8
+CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32
+CONFIG_SCSI_NCR53C8XX_SYNC=20
+# CONFIG_SCSI_NCR53C8XX_PROFILE is not set
+# CONFIG_SCSI_PAS16 is not set
+# CONFIG_SCSI_PSI240I is not set
+# CONFIG_SCSI_QLOGIC_FAS is not set
+# CONFIG_SCSI_QLOGIC_FC is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+CONFIG_SCSI_LPFC=m
+# CONFIG_SCSI_SIM710 is not set
+# CONFIG_SCSI_SYM53C416 is not set
+# CONFIG_SCSI_DC395x is not set
+# CONFIG_SCSI_DC390T is not set
+# CONFIG_SCSI_T128 is not set
+# CONFIG_SCSI_U14_34F is not set
+# CONFIG_SCSI_NSP32 is not set
+# CONFIG_SCSI_DEBUG is not set
+
+#
+# PCMCIA SCSI adapter support
+#
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_NINJA_SCSI=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+
+#
+# Old CD-ROM drivers (not SCSI, not IDE)
+#
+# CONFIG_CD_NO_IDESCSI is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID5=m
+CONFIG_MD_RAID6=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+CONFIG_BLK_DEV_DM=m
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_EMC=m
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_IEEE1394 is not set
+
+#
+# I2O device support
+#
+CONFIG_I2O=m
+CONFIG_I2O_CONFIG=m
+CONFIG_I2O_BLOCK=m
+CONFIG_I2O_SCSI=m
+CONFIG_I2O_PROC=m
+
+#
+# Networking support
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_UNIX=y
+CONFIG_NET_KEY=m
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_PNP=y
+# CONFIG_IP_PNP_DHCP is not set
+CONFIG_IP_PNP_BOOTP=y
+# CONFIG_IP_PNP_RARP is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
+# CONFIG_NET_IPGRE_BROADCAST is not set
+# CONFIG_IP_MROUTE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+CONFIG_IP_TCPDIAG_IPV6=y
+
+#
+# IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_IPV6_TUNNEL=m
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_IP_NF_CONNTRACK=m
+CONFIG_IP_NF_CT_ACCT=y
+CONFIG_IP_NF_CONNTRACK_MARK=y
+CONFIG_IP_NF_CT_PROTO_SCTP=m
+CONFIG_IP_NF_FTP=m
+CONFIG_IP_NF_IRC=m
+CONFIG_IP_NF_TFTP=m
+CONFIG_IP_NF_AMANDA=m
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_LIMIT=m
+CONFIG_IP_NF_MATCH_IPRANGE=m
+CONFIG_IP_NF_MATCH_MAC=m
+CONFIG_IP_NF_MATCH_PKTTYPE=m
+CONFIG_IP_NF_MATCH_MARK=m
+CONFIG_IP_NF_MATCH_MULTIPORT=m
+CONFIG_IP_NF_MATCH_TOS=m
+CONFIG_IP_NF_MATCH_RECENT=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_DSCP=m
+CONFIG_IP_NF_MATCH_AH_ESP=m
+CONFIG_IP_NF_MATCH_LENGTH=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_MATCH_TCPMSS=m
+CONFIG_IP_NF_MATCH_HELPER=m
+CONFIG_IP_NF_MATCH_STATE=m
+CONFIG_IP_NF_MATCH_CONNTRACK=m
+CONFIG_IP_NF_MATCH_OWNER=m
+# CONFIG_IP_NF_MATCH_PHYSDEV is not set
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_REALM=m
+CONFIG_IP_NF_MATCH_SCTP=m
+CONFIG_IP_NF_MATCH_COMMENT=m
+CONFIG_IP_NF_MATCH_CONNMARK=m
+CONFIG_IP_NF_MATCH_HASHLIMIT=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_IP_NF_TARGET_TCPMSS=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_SAME=m
+CONFIG_IP_NF_NAT_SNMP_BASIC=m
+CONFIG_IP_NF_NAT_IRC=m
+CONFIG_IP_NF_NAT_FTP=m
+CONFIG_IP_NF_NAT_TFTP=m
+CONFIG_IP_NF_NAT_AMANDA=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_TOS=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_DSCP=m
+CONFIG_IP_NF_TARGET_MARK=m
+CONFIG_IP_NF_TARGET_CLASSIFY=m
+CONFIG_IP_NF_TARGET_CONNMARK=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_TARGET_NOTRACK=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration (EXPERIMENTAL)
+#
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_LIMIT=m
+CONFIG_IP6_NF_MATCH_MAC=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_MULTIPORT=m
+CONFIG_IP6_NF_MATCH_OWNER=m
+CONFIG_IP6_NF_MATCH_MARK=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_AHESP=m
+CONFIG_IP6_NF_MATCH_LENGTH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_PHYSDEV=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_TARGET_MARK=m
+CONFIG_IP6_NF_RAW=m
+
+#
+# Bridge: Netfilter Configuration
+#
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_ULOG=m
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+# CONFIG_ATM is not set
+CONFIG_BRIDGE=m
+CONFIG_VLAN_8021Q=m
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+
+#
+# QoS and/or fair queueing
+#
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CLK_JIFFIES=y
+# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
+# CONFIG_NET_SCH_CLK_CPU is not set
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_QOS=y
+CONFIG_NET_ESTIMATOR=y
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_CLS_U32_PERF=y
+CONFIG_NET_CLS_IND=y
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+CONFIG_NETPOLL=y
+# CONFIG_NETPOLL_RX is not set
+# CONFIG_NETPOLL_TRAP is not set
+CONFIG_NET_POLL_CONTROLLER=y
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+CONFIG_NETDEVICES=y
+CONFIG_DUMMY=m
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+CONFIG_TUN=m
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=m
+CONFIG_LASI_82596=m
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_EL1=m
+CONFIG_EL2=m
+CONFIG_ELPLUS=m
+CONFIG_EL16=m
+CONFIG_EL3=m
+# CONFIG_3C515 is not set
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+# CONFIG_LANCE is not set
+CONFIG_NET_VENDOR_SMC=y
+CONFIG_WD80x3=m
+CONFIG_ULTRA=m
+CONFIG_ULTRA32=m
+CONFIG_SMC9194=m
+CONFIG_NET_VENDOR_RACAL=y
+# CONFIG_NI5010 is not set
+CONFIG_NI52=m
+# CONFIG_NI65 is not set
+
+#
+# Tulip family network device support
+#
+CONFIG_NET_TULIP=y
+# CONFIG_DE2104X is not set
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+# CONFIG_TULIP_NAPI is not set
+# CONFIG_DE4X5 is not set
+# CONFIG_WINBOND_840 is not set
+# CONFIG_DM9102 is not set
+CONFIG_PCMCIA_XIRCOM=m
+# CONFIG_PCMCIA_XIRTULIP is not set
+CONFIG_AT1700=m
+CONFIG_DEPCA=m
+CONFIG_HP100=m
+CONFIG_NET_ISA=y
+CONFIG_E2100=m
+CONFIG_EWRK3=m
+CONFIG_EEXPRESS=m
+CONFIG_EEXPRESS_PRO=m
+CONFIG_HPLAN_PLUS=m
+CONFIG_HPLAN=m
+CONFIG_LP486E=m
+CONFIG_ETH16I=m
+CONFIG_NE2000=m
+CONFIG_ZNET=m
+CONFIG_SEEQ8005=m
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=m
+CONFIG_AMD8111_ETH=m
+# CONFIG_AMD8111E_NAPI is not set
+CONFIG_ADAPTEC_STARFIRE=m
+# CONFIG_ADAPTEC_STARFIRE_NAPI is not set
+CONFIG_AC3200=m
+CONFIG_APRICOT=m
+CONFIG_B44=m
+CONFIG_FORCEDETH=m
+CONFIG_CS89x0=m
+CONFIG_EEPRO100=m
+CONFIG_E100=m
+CONFIG_LNE390=m
+CONFIG_FEALNX=m
+CONFIG_NATSEMI=m
+CONFIG_NE2K_PCI=m
+CONFIG_NE3210=m
+CONFIG_ES3210=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+# CONFIG_8139TOO_TUNE_TWISTER is not set
+# CONFIG_8139TOO_8129 is not set
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_SIS900=m
+CONFIG_EPIC100=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_TLAN=m
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+# CONFIG_NET_POCKET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+CONFIG_DL2K=m
+CONFIG_E1000=m
+# CONFIG_E1000_NAPI is not set
+CONFIG_NS83820=m
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_R8169=m
+# CONFIG_R8169_NAPI is not set
+CONFIG_R8169_VLAN=y
+CONFIG_SK98LIN=m
+CONFIG_VIA_VELOCITY=m
+CONFIG_TIGON3=m
+CONFIG_BNX2=m
+
+#
+# Ethernet (10000 Mbit)
+#
+CONFIG_IXGB=m
+# CONFIG_IXGB_NAPI is not set
+CONFIG_S2IO=m
+# CONFIG_S2IO_NAPI is not set
+# CONFIG_2BUFF_MODE is not set
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+CONFIG_NET_RADIO=y
+
+#
+# Obsolete Wireless cards support (pre-802.11)
+#
+# CONFIG_STRIP is not set
+# CONFIG_ARLAN is not set
+# CONFIG_WAVELAN is not set
+CONFIG_PCMCIA_WAVELAN=m
+CONFIG_PCMCIA_NETWAVE=m
+
+#
+# Wireless 802.11 Frequency Hopping cards support
+#
+CONFIG_PCMCIA_RAYCS=m
+
+#
+# Wireless 802.11b ISA/PCI cards support
+#
+CONFIG_AIRO=m
+CONFIG_HERMES=m
+# CONFIG_PLX_HERMES is not set
+# CONFIG_TMD_HERMES is not set
+# CONFIG_PCI_HERMES is not set
+# CONFIG_ATMEL is not set
+
+#
+# Wireless 802.11b Pcmcia/Cardbus cards support
+#
+CONFIG_PCMCIA_HERMES=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_WL3501=m
+
+#
+# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
+#
+CONFIG_PRISM54=m
+CONFIG_NET_WIRELESS=y
+
+#
+# PCMCIA network device support
+#
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_AXNET=m
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPPOE=m
+CONFIG_SLIP=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+# CONFIG_SLIP_MODE_SLIP6 is not set
+# CONFIG_NET_FC is not set
+CONFIG_SHAPER=m
+CONFIG_NETCONSOLE=m
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_TSDEV is not set
+CONFIG_INPUT_EVDEV=m
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_ATKBD_HP_KEYCODES=y
+# CONFIG_KEYBOARD_ATKBD_RDI_KEYCODES is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+CONFIG_KEYBOARD_HIL_OLD=m
+CONFIG_KEYBOARD_HIL=m
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_INPORT is not set
+# CONFIG_MOUSE_LOGIBM is not set
+# CONFIG_MOUSE_PC110PAD is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+CONFIG_MOUSE_HIL=m
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_UINPUT is not set
+CONFIG_HP_SDC_RTC=m
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+# CONFIG_SERIO_SERPORT is not set
+# CONFIG_SERIO_PARKBD is not set
+CONFIG_SERIO_GSCPS2=y
+CONFIG_HP_SDC=m
+CONFIG_HIL_MLC=m
+# CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+# CONFIG_SERIAL_8250_MULTIPORT is not set
+# CONFIG_SERIAL_8250_RSA is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_MUX=y
+CONFIG_SERIAL_MUX_CONSOLE=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_JSM=m
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+# CONFIG_PPDEV is not set
+# CONFIG_TIPAR is not set
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+CONFIG_GEN_RTC=y
+# CONFIG_GEN_RTC_X is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_DRM is not set
+
+#
+# PCMCIA character devices
+#
+CONFIG_SYNCLINK_CS=m
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+CONFIG_TCG_TPM=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_ATMEL=m
+
+#
+# I2C support
+#
+CONFIG_I2C=m
+CONFIG_I2C_CHARDEV=m
+
+#
+# I2C Algorithms
+#
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCF=m
+CONFIG_I2C_ALGOPCA=m
+
+#
+# I2C Hardware Bus support
+#
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_ELEKTOR=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_I810=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_ISA=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_PROSAVAGE=m
+CONFIG_I2C_SAVAGE4=m
+CONFIG_SCx200_ACB=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_STUB=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+CONFIG_I2C_VOODOO3=m
+CONFIG_I2C_PCA_ISA=m
+
+#
+# Hardware Sensors Chip support
+#
+CONFIG_I2C_SENSOR=m
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_FSCHER=m
+CONFIG_SENSORS_FSCPOS=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83627HF=m
+
+#
+# Other I2C Chip support
+#
+CONFIG_SENSORS_DS1337=m
+CONFIG_SENSORS_EEPROM=m
+CONFIG_SENSORS_PCF8574=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_SENSORS_RTC8564=m
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
+#
+# Misc devices
+#
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+# CONFIG_DVB is not set
+
+#
+# Graphics support
+#
+CONFIG_FB=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+CONFIG_FB_SOFT_CURSOR=y
+# CONFIG_FB_MACMODES is not set
+CONFIG_FB_MODE_HELPERS=y
+# CONFIG_FB_TILEBLITTING is not set
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+CONFIG_FB_STI=y
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_RADEON_OLD is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_VIRTUAL is not set
+
+#
+# Console display driver support
+#
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_DUMMY_CONSOLE_COLUMNS=160
+CONFIG_DUMMY_CONSOLE_ROWS=64
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_STI_CONSOLE=y
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+
+#
+# Logo configuration
+#
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_LOGO_PARISC_CLUT224=y
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Sound
+#
+CONFIG_SOUND=m
+
+#
+# Advanced Linux Sound Architecture
+#
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_SEQUENCER=m
+# CONFIG_SND_SEQ_DUMMY is not set
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_SEQUENCER_OSS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+
+#
+# Generic devices
+#
+CONFIG_SND_DUMMY=m
+# CONFIG_SND_VIRMIDI is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+
+#
+# ISA devices
+#
+# CONFIG_SND_AD1848 is not set
+# CONFIG_SND_CS4231 is not set
+# CONFIG_SND_CS4232 is not set
+# CONFIG_SND_CS4236 is not set
+# CONFIG_SND_ES1688 is not set
+# CONFIG_SND_ES18XX is not set
+# CONFIG_SND_GUSCLASSIC is not set
+# CONFIG_SND_GUSEXTREME is not set
+# CONFIG_SND_GUSMAX is not set
+# CONFIG_SND_INTERWAVE is not set
+# CONFIG_SND_INTERWAVE_STB is not set
+# CONFIG_SND_OPTI92X_AD1848 is not set
+# CONFIG_SND_OPTI92X_CS4231 is not set
+# CONFIG_SND_OPTI93X is not set
+# CONFIG_SND_SB8 is not set
+# CONFIG_SND_SB16 is not set
+# CONFIG_SND_SBAWE is not set
+# CONFIG_SND_WAVEFRONT is not set
+# CONFIG_SND_CMI8330 is not set
+# CONFIG_SND_OPL3SA2 is not set
+# CONFIG_SND_SGALAXY is not set
+# CONFIG_SND_SSCAPE is not set
+
+#
+# PCI devices
+#
+CONFIG_SND_AC97_CODEC=m
+# CONFIG_SND_ALI5451 is not set
+CONFIG_SND_AD1889=m
+# CONFIG_SND_AD1889_OPL3 is not set
+# CONFIG_SND_ATIIXP is not set
+# CONFIG_SND_ATIIXP_MODEM is not set
+# CONFIG_SND_AU8810 is not set
+# CONFIG_SND_AU8820 is not set
+# CONFIG_SND_AU8830 is not set
+# CONFIG_SND_AZT3328 is not set
+# CONFIG_SND_BT87X is not set
+# CONFIG_SND_CS46XX is not set
+# CONFIG_SND_CS4281 is not set
+# CONFIG_SND_EMU10K1 is not set
+# CONFIG_SND_EMU10K1X is not set
+# CONFIG_SND_CA0106 is not set
+# CONFIG_SND_KORG1212 is not set
+# CONFIG_SND_MIXART is not set
+# CONFIG_SND_NM256 is not set
+# CONFIG_SND_RME32 is not set
+# CONFIG_SND_RME96 is not set
+# CONFIG_SND_RME9652 is not set
+# CONFIG_SND_HDSP is not set
+# CONFIG_SND_TRIDENT is not set
+# CONFIG_SND_YMFPCI is not set
+# CONFIG_SND_ALS4000 is not set
+# CONFIG_SND_CMIPCI is not set
+# CONFIG_SND_ENS1370 is not set
+# CONFIG_SND_ENS1371 is not set
+# CONFIG_SND_ES1938 is not set
+# CONFIG_SND_ES1968 is not set
+# CONFIG_SND_MAESTRO3 is not set
+# CONFIG_SND_FM801 is not set
+# CONFIG_SND_ICE1712 is not set
+# CONFIG_SND_ICE1724 is not set
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
+# CONFIG_SND_SONICVIBES is not set
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
+# CONFIG_SND_VX222 is not set
+# CONFIG_SND_HDA_INTEL is not set
+
+#
+# USB devices
+#
+# CONFIG_SND_USB_AUDIO is not set
+
+#
+# PCMCIA devices
+#
+# CONFIG_SND_VXPOCKET is not set
+# CONFIG_SND_VXP440 is not set
+# CONFIG_SND_PDAUDIOCF is not set
+
+#
+# GSC devices
+#
+CONFIG_SND_HARMONY=m
+
+#
+# Open Sound System
+#
+# CONFIG_SOUND_PRIME is not set
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB=m
+CONFIG_USB_DEBUG=y
+
+#
+# Miscellaneous USB options
+#
+# CONFIG_USB_DEVICEFS is not set
+# CONFIG_USB_BANDWIDTH is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_EHCI_HCD=m
+# CONFIG_USB_EHCI_SPLIT_ISO is not set
+# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_OHCI_BIG_ENDIAN is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_UHCI_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_AUDIO is not set
+# CONFIG_USB_BLUETOOTH_TTY is not set
+# CONFIG_USB_MIDI is not set
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_DPCM is not set
+# CONFIG_USB_STORAGE_USBAT is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=m
+CONFIG_USB_HIDINPUT=y
+# CONFIG_HID_FF is not set
+CONFIG_USB_HIDDEV=y
+
+#
+# USB HID Boot Protocol drivers
+#
+CONFIG_USB_KBD=m
+CONFIG_USB_MOUSE=m
+# CONFIG_USB_AIPTEK is not set
+# CONFIG_USB_WACOM is not set
+# CONFIG_USB_KBTAB is not set
+# CONFIG_USB_POWERMATE is not set
+# CONFIG_USB_MTOUCH is not set
+# CONFIG_USB_EGALAX is not set
+# CONFIG_USB_XPAD is not set
+# CONFIG_USB_ATI_REMOTE is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+
+#
+# USB Multimedia devices
+#
+
+#
+# Video4Linux support is needed for USB Multimedia device support
+#
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET is not set
+# CONFIG_USB_ZD1201 is not set
+CONFIG_USB_MON=m
+
+#
+# USB port drivers
+#
+# CONFIG_USB_USS720 is not set
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_AUERSWALD is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_PHIDGETKIT is not set
+# CONFIG_USB_PHIDGETSERVO is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_SISUSBVGA is not set
+
+#
+# USB ATM/DSL drivers
+#
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# MMC/SD Card support
+#
+# CONFIG_MMC is not set
+
+#
+# InfiniBand support
+#
+CONFIG_INFINIBAND=m
+CONFIG_INFINIBAND_MTHCA=m
+# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
+CONFIG_INFINIBAND_IPOIB=m
+# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+CONFIG_EXT3_FS=m
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_JBD=m
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+CONFIG_FS_POSIX_ACL=y
+
+#
+# XFS support
+#
+CONFIG_XFS_FS=m
+CONFIG_XFS_EXPORT=y
+# CONFIG_XFS_RT is not set
+# CONFIG_XFS_QUOTA is not set
+# CONFIG_XFS_SECURITY is not set
+# CONFIG_XFS_POSIX_ACL is not set
+CONFIG_MINIX_FS=m
+CONFIG_ROMFS_FS=m
+CONFIG_QUOTA=y
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+CONFIG_DNOTIFY=y
+CONFIG_AUTOFS_FS=m
+CONFIG_AUTOFS4_FS=m
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_ZISOFS_FS=m
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+# CONFIG_NTFS_RW is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_SYSFS=y
+CONFIG_DEVFS_FS=y
+# CONFIG_DEVFS_MOUNT is not set
+# CONFIG_DEVFS_DEBUG is not set
+# CONFIG_DEVPTS_FS_XATTR is not set
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_XATTR is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_ASFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_CRAMFS=y
+CONFIG_VXFS_FS=m
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_V4=y
+CONFIG_NFS_DIRECTIO=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V4=y
+CONFIG_NFSD_TCP=y
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=m
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+CONFIG_RPCSEC_GSS_KRB5=y
+CONFIG_RPCSEC_GSS_SPKM3=m
+CONFIG_SMB_FS=m
+CONFIG_SMB_NLS_DEFAULT=y
+CONFIG_SMB_NLS_REMOTE="cp437"
+CONFIG_CIFS=m
+# CONFIG_CIFS_STATS is not set
+# CONFIG_CIFS_XATTR is not set
+# CONFIG_CIFS_EXPERIMENTAL is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=m
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=m
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+CONFIG_NLS_UTF8=m
+
+#
+# Profiling support
+#
+CONFIG_PROFILING=y
+CONFIG_OPROFILE=m
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_DEBUG_KERNEL=y
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_LOG_BUF_SHIFT=15
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_DEBUG_SLAB is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_IOREMAP is not set
+# CONFIG_DEBUG_FS is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+CONFIG_SECURITY=y
+CONFIG_SECURITY_NETWORK=y
+CONFIG_SECURITY_CAPABILITIES=y
+# CONFIG_SECURITY_ROOTPLUG is not set
+CONFIG_SECURITY_SECLVL=m
+# CONFIG_SECURITY_SELINUX is not set
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_WP512=m
+# CONFIG_CRYPTO_TGR192 is not set
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Hardware crypto devices
+#
+
+#
+# Library routines
+#
+CONFIG_CRC_CCITT=m
+CONFIG_CRC32=y
+CONFIG_LIBCRC32C=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m

Added: trunk/kernel/source/linux-2.6/debian/arch/hppa/config.32-smp
===================================================================
--- trunk/kernel/source/linux-2.6/debian/arch/hppa/config.32-smp	2005-08-09 02:25:01 UTC (rev 3769)
+++ trunk/kernel/source/linux-2.6/debian/arch/hppa/config.32-smp	2005-08-09 03:54:02 UTC (rev 3770)
@@ -0,0 +1,1691 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.12
+# Tue Aug  9 03:42:22 2005
+#
+CONFIG_PARISC=y
+CONFIG_MMU=y
+CONFIG_STACK_GROWSUP=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_ISA_DMA_API=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_CLEAN_COMPILE=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_SYSCTL=y
+# CONFIG_AUDIT is not set
+CONFIG_HOTPLUG=y
+CONFIG_KOBJECT_UEVENT=y
+CONFIG_IKCONFIG=y
+# CONFIG_IKCONFIG_PROC is not set
+# CONFIG_CPUSETS is not set
+# CONFIG_EMBEDDED is not set
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_OBSOLETE_MODPARM=y
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_KMOD=y
+CONFIG_STOP_MACHINE=y
+
+#
+# Processor type and features
+#
+CONFIG_PA7000=y
+# CONFIG_PA7100LC is not set
+# CONFIG_PA7200 is not set
+# CONFIG_PA7300LC is not set
+# CONFIG_PA8X00 is not set
+CONFIG_PA11=y
+CONFIG_SMP=y
+CONFIG_HOTPLUG_CPU=y
+# CONFIG_PREEMPT is not set
+# CONFIG_HPUX is not set
+CONFIG_NR_CPUS=32
+
+#
+# Bus options (PCI, PCMCIA, EISA, GSC, ISA)
+#
+CONFIG_GSC=y
+CONFIG_HPPB=y
+CONFIG_IOMMU_CCIO=y
+CONFIG_GSC_LASI=y
+CONFIG_GSC_WAX=y
+CONFIG_EISA=y
+CONFIG_EISA_NAMES=y
+CONFIG_ISA=y
+CONFIG_PCI=y
+CONFIG_PCI_LEGACY_PROC=y
+CONFIG_PCI_NAMES=y
+# CONFIG_PCI_DEBUG is not set
+CONFIG_GSC_DINO=y
+CONFIG_PCI_LBA=y
+CONFIG_IOSAPIC=y
+CONFIG_IOMMU_SBA=y
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+CONFIG_PCCARD=m
+# CONFIG_PCMCIA_DEBUG is not set
+CONFIG_PCMCIA=m
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
+CONFIG_YENTA=m
+CONFIG_PD6729=m
+CONFIG_I82092=m
+CONFIG_I82365=m
+# CONFIG_TCIC is not set
+CONFIG_PCCARD_NONSTATIC=m
+
+#
+# PCI Hotplug Support
+#
+# CONFIG_HOTPLUG_PCI is not set
+
+#
+# PA-RISC specific drivers
+#
+CONFIG_SUPERIO=y
+CONFIG_CHASSIS_LCD_LED=y
+CONFIG_PDC_CHASSIS=y
+CONFIG_PDC_STABLE=y
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_MISC=m
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+# CONFIG_DEBUG_DRIVER is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+# CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+# CONFIG_PARPORT_SERIAL is not set
+# CONFIG_PARPORT_PC_FIFO is not set
+# CONFIG_PARPORT_PC_SUPERIO is not set
+CONFIG_PARPORT_PC_PCMCIA=m
+CONFIG_PARPORT_GSC=y
+# CONFIG_PARPORT_1284 is not set
+
+#
+# Plug and Play support
+#
+# CONFIG_PNP is not set
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE is not set
+# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_SX8 is not set
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=8192
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_ATA_OVER_ETH=m
+
+#
+# ATA/ATAPI/MFM/RLL support
+#
+CONFIG_IDE=m
+CONFIG_BLK_DEV_IDE=m
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_BLK_DEV_IDEDISK=m
+# CONFIG_IDEDISK_MULTI_MODE is not set
+CONFIG_BLK_DEV_IDECS=m
+CONFIG_BLK_DEV_IDECD=m
+# CONFIG_BLK_DEV_IDETAPE is not set
+# CONFIG_BLK_DEV_IDEFLOPPY is not set
+CONFIG_BLK_DEV_IDESCSI=m
+# CONFIG_IDE_TASK_IOCTL is not set
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=m
+CONFIG_BLK_DEV_IDEPCI=y
+CONFIG_IDEPCI_SHARE_IRQ=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+# CONFIG_BLK_DEV_GENERIC is not set
+# CONFIG_BLK_DEV_OPTI621 is not set
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
+CONFIG_IDEDMA_PCI_AUTO=y
+# CONFIG_IDEDMA_ONLYDISK is not set
+# CONFIG_BLK_DEV_AEC62XX is not set
+# CONFIG_BLK_DEV_ALI15X3 is not set
+# CONFIG_BLK_DEV_AMD74XX is not set
+CONFIG_BLK_DEV_CMD64X=m
+# CONFIG_BLK_DEV_TRIFLEX is not set
+# CONFIG_BLK_DEV_CY82C693 is not set
+# CONFIG_BLK_DEV_CS5520 is not set
+# CONFIG_BLK_DEV_CS5530 is not set
+# CONFIG_BLK_DEV_HPT34X is not set
+# CONFIG_BLK_DEV_HPT366 is not set
+# CONFIG_BLK_DEV_SC1200 is not set
+# CONFIG_BLK_DEV_PIIX is not set
+CONFIG_BLK_DEV_NS87415=m
+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
+# CONFIG_BLK_DEV_PDC202XX_NEW is not set
+# CONFIG_BLK_DEV_SVWKS is not set
+# CONFIG_BLK_DEV_SIIMAGE is not set
+# CONFIG_BLK_DEV_SLC90E66 is not set
+# CONFIG_BLK_DEV_TRM290 is not set
+# CONFIG_BLK_DEV_VIA82CXXX is not set
+# CONFIG_IDE_ARM is not set
+# CONFIG_IDE_CHIPSETS is not set
+CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDEDMA_IVB is not set
+CONFIG_IDEDMA_AUTO=y
+# CONFIG_BLK_DEV_HD is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI=y
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_SCH=m
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+# CONFIG_SCSI_MULTI_LUN is not set
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+
+#
+# SCSI Transport Attributes
+#
+CONFIG_SCSI_SPI_ATTRS=y
+CONFIG_SCSI_FC_ATTRS=m
+CONFIG_SCSI_ISCSI_ATTRS=m
+
+#
+# SCSI low-level drivers
+#
+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_3W_9XXX is not set
+# CONFIG_SCSI_7000FASST is not set
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_AHA152X is not set
+# CONFIG_SCSI_AHA1542 is not set
+# CONFIG_SCSI_AHA1740 is not set
+# CONFIG_SCSI_AACRAID is not set
+# CONFIG_SCSI_AIC7XXX is not set
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+# CONFIG_SCSI_AIC79XX is not set
+# CONFIG_SCSI_DPT_I2O is not set
+# CONFIG_SCSI_IN2000 is not set
+# CONFIG_MEGARAID_NEWGEN is not set
+CONFIG_MEGARAID_LEGACY=m
+# CONFIG_SCSI_SATA is not set
+# CONFIG_SCSI_BUSLOGIC is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_DTC3280 is not set
+# CONFIG_SCSI_EATA is not set
+# CONFIG_SCSI_FUTURE_DOMAIN is not set
+# CONFIG_SCSI_GDTH is not set
+# CONFIG_SCSI_GENERIC_NCR5380 is not set
+# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
+# CONFIG_SCSI_IPS is not set
+CONFIG_SCSI_INITIO=m
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_PPA is not set
+# CONFIG_SCSI_IMM is not set
+# CONFIG_SCSI_NCR53C406A is not set
+CONFIG_SCSI_LASI700=m
+CONFIG_53C700_LE_ON_BE=y
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
+# CONFIG_SCSI_IPR is not set
+CONFIG_SCSI_ZALON=m
+CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8
+CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32
+CONFIG_SCSI_NCR53C8XX_SYNC=20
+# CONFIG_SCSI_NCR53C8XX_PROFILE is not set
+# CONFIG_SCSI_PAS16 is not set
+# CONFIG_SCSI_PSI240I is not set
+# CONFIG_SCSI_QLOGIC_FAS is not set
+# CONFIG_SCSI_QLOGIC_FC is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+CONFIG_SCSI_LPFC=m
+# CONFIG_SCSI_SIM710 is not set
+# CONFIG_SCSI_SYM53C416 is not set
+# CONFIG_SCSI_DC395x is not set
+# CONFIG_SCSI_DC390T is not set
+# CONFIG_SCSI_T128 is not set
+# CONFIG_SCSI_U14_34F is not set
+# CONFIG_SCSI_NSP32 is not set
+# CONFIG_SCSI_DEBUG is not set
+
+#
+# PCMCIA SCSI adapter support
+#
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_NINJA_SCSI=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+
+#
+# Old CD-ROM drivers (not SCSI, not IDE)
+#
+# CONFIG_CD_NO_IDESCSI is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID5=m
+CONFIG_MD_RAID6=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+CONFIG_BLK_DEV_DM=m
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_EMC=m
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_IEEE1394 is not set
+
+#
+# I2O device support
+#
+CONFIG_I2O=m
+CONFIG_I2O_CONFIG=m
+CONFIG_I2O_BLOCK=m
+CONFIG_I2O_SCSI=m
+CONFIG_I2O_PROC=m
+
+#
+# Networking support
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_UNIX=y
+CONFIG_NET_KEY=m
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_PNP=y
+# CONFIG_IP_PNP_DHCP is not set
+CONFIG_IP_PNP_BOOTP=y
+# CONFIG_IP_PNP_RARP is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
+# CONFIG_NET_IPGRE_BROADCAST is not set
+# CONFIG_IP_MROUTE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+CONFIG_IP_TCPDIAG_IPV6=y
+
+#
+# IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_IPV6_TUNNEL=m
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_IP_NF_CONNTRACK=m
+CONFIG_IP_NF_CT_ACCT=y
+CONFIG_IP_NF_CONNTRACK_MARK=y
+CONFIG_IP_NF_CT_PROTO_SCTP=m
+CONFIG_IP_NF_FTP=m
+CONFIG_IP_NF_IRC=m
+CONFIG_IP_NF_TFTP=m
+CONFIG_IP_NF_AMANDA=m
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_LIMIT=m
+CONFIG_IP_NF_MATCH_IPRANGE=m
+CONFIG_IP_NF_MATCH_MAC=m
+CONFIG_IP_NF_MATCH_PKTTYPE=m
+CONFIG_IP_NF_MATCH_MARK=m
+CONFIG_IP_NF_MATCH_MULTIPORT=m
+CONFIG_IP_NF_MATCH_TOS=m
+CONFIG_IP_NF_MATCH_RECENT=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_DSCP=m
+CONFIG_IP_NF_MATCH_AH_ESP=m
+CONFIG_IP_NF_MATCH_LENGTH=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_MATCH_TCPMSS=m
+CONFIG_IP_NF_MATCH_HELPER=m
+CONFIG_IP_NF_MATCH_STATE=m
+CONFIG_IP_NF_MATCH_CONNTRACK=m
+CONFIG_IP_NF_MATCH_OWNER=m
+# CONFIG_IP_NF_MATCH_PHYSDEV is not set
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_REALM=m
+CONFIG_IP_NF_MATCH_SCTP=m
+CONFIG_IP_NF_MATCH_COMMENT=m
+CONFIG_IP_NF_MATCH_CONNMARK=m
+CONFIG_IP_NF_MATCH_HASHLIMIT=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_IP_NF_TARGET_TCPMSS=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_SAME=m
+CONFIG_IP_NF_NAT_SNMP_BASIC=m
+CONFIG_IP_NF_NAT_IRC=m
+CONFIG_IP_NF_NAT_FTP=m
+CONFIG_IP_NF_NAT_TFTP=m
+CONFIG_IP_NF_NAT_AMANDA=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_TOS=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_DSCP=m
+CONFIG_IP_NF_TARGET_MARK=m
+CONFIG_IP_NF_TARGET_CLASSIFY=m
+CONFIG_IP_NF_TARGET_CONNMARK=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_TARGET_NOTRACK=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration (EXPERIMENTAL)
+#
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_LIMIT=m
+CONFIG_IP6_NF_MATCH_MAC=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_MULTIPORT=m
+CONFIG_IP6_NF_MATCH_OWNER=m
+CONFIG_IP6_NF_MATCH_MARK=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_AHESP=m
+CONFIG_IP6_NF_MATCH_LENGTH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_PHYSDEV=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_TARGET_MARK=m
+CONFIG_IP6_NF_RAW=m
+
+#
+# Bridge: Netfilter Configuration
+#
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_ULOG=m
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+# CONFIG_ATM is not set
+CONFIG_BRIDGE=m
+CONFIG_VLAN_8021Q=m
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+
+#
+# QoS and/or fair queueing
+#
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CLK_JIFFIES=y
+# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
+# CONFIG_NET_SCH_CLK_CPU is not set
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_QOS=y
+CONFIG_NET_ESTIMATOR=y
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_CLS_U32_PERF=y
+CONFIG_NET_CLS_IND=y
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+CONFIG_NETPOLL=y
+# CONFIG_NETPOLL_RX is not set
+# CONFIG_NETPOLL_TRAP is not set
+CONFIG_NET_POLL_CONTROLLER=y
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+CONFIG_NETDEVICES=y
+CONFIG_DUMMY=m
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+CONFIG_TUN=m
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=m
+CONFIG_LASI_82596=m
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_EL1=m
+CONFIG_EL2=m
+CONFIG_ELPLUS=m
+CONFIG_EL16=m
+CONFIG_EL3=m
+# CONFIG_3C515 is not set
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+# CONFIG_LANCE is not set
+CONFIG_NET_VENDOR_SMC=y
+CONFIG_WD80x3=m
+CONFIG_ULTRA=m
+CONFIG_ULTRA32=m
+CONFIG_SMC9194=m
+CONFIG_NET_VENDOR_RACAL=y
+CONFIG_NI52=m
+# CONFIG_NI65 is not set
+
+#
+# Tulip family network device support
+#
+CONFIG_NET_TULIP=y
+# CONFIG_DE2104X is not set
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+# CONFIG_TULIP_NAPI is not set
+# CONFIG_DE4X5 is not set
+# CONFIG_WINBOND_840 is not set
+# CONFIG_DM9102 is not set
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_AT1700=m
+CONFIG_DEPCA=m
+CONFIG_HP100=m
+CONFIG_NET_ISA=y
+CONFIG_E2100=m
+CONFIG_EWRK3=m
+CONFIG_EEXPRESS=m
+CONFIG_EEXPRESS_PRO=m
+CONFIG_HPLAN_PLUS=m
+CONFIG_HPLAN=m
+CONFIG_LP486E=m
+CONFIG_ETH16I=m
+CONFIG_NE2000=m
+CONFIG_ZNET=m
+CONFIG_SEEQ8005=m
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=m
+CONFIG_AMD8111_ETH=m
+# CONFIG_AMD8111E_NAPI is not set
+CONFIG_ADAPTEC_STARFIRE=m
+# CONFIG_ADAPTEC_STARFIRE_NAPI is not set
+CONFIG_AC3200=m
+CONFIG_APRICOT=m
+CONFIG_B44=m
+CONFIG_FORCEDETH=m
+CONFIG_CS89x0=m
+CONFIG_EEPRO100=m
+CONFIG_E100=m
+CONFIG_LNE390=m
+CONFIG_FEALNX=m
+CONFIG_NATSEMI=m
+CONFIG_NE2K_PCI=m
+CONFIG_NE3210=m
+CONFIG_ES3210=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+# CONFIG_8139TOO_TUNE_TWISTER is not set
+# CONFIG_8139TOO_8129 is not set
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_SIS900=m
+CONFIG_EPIC100=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_TLAN=m
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+# CONFIG_NET_POCKET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+CONFIG_DL2K=m
+CONFIG_E1000=m
+# CONFIG_E1000_NAPI is not set
+CONFIG_NS83820=m
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_R8169=m
+# CONFIG_R8169_NAPI is not set
+CONFIG_R8169_VLAN=y
+CONFIG_SK98LIN=m
+CONFIG_VIA_VELOCITY=m
+CONFIG_TIGON3=m
+CONFIG_BNX2=m
+
+#
+# Ethernet (10000 Mbit)
+#
+CONFIG_IXGB=m
+# CONFIG_IXGB_NAPI is not set
+CONFIG_S2IO=m
+# CONFIG_S2IO_NAPI is not set
+# CONFIG_2BUFF_MODE is not set
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+CONFIG_NET_RADIO=y
+
+#
+# Obsolete Wireless cards support (pre-802.11)
+#
+# CONFIG_STRIP is not set
+# CONFIG_ARLAN is not set
+# CONFIG_WAVELAN is not set
+CONFIG_PCMCIA_WAVELAN=m
+CONFIG_PCMCIA_NETWAVE=m
+
+#
+# Wireless 802.11 Frequency Hopping cards support
+#
+CONFIG_PCMCIA_RAYCS=m
+
+#
+# Wireless 802.11b ISA/PCI cards support
+#
+CONFIG_AIRO=m
+CONFIG_HERMES=m
+# CONFIG_PLX_HERMES is not set
+# CONFIG_TMD_HERMES is not set
+# CONFIG_PCI_HERMES is not set
+# CONFIG_ATMEL is not set
+
+#
+# Wireless 802.11b Pcmcia/Cardbus cards support
+#
+CONFIG_PCMCIA_HERMES=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_WL3501=m
+
+#
+# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
+#
+CONFIG_PRISM54=m
+CONFIG_NET_WIRELESS=y
+
+#
+# PCMCIA network device support
+#
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_AXNET=m
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPPOE=m
+CONFIG_SLIP=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+# CONFIG_SLIP_MODE_SLIP6 is not set
+# CONFIG_NET_FC is not set
+CONFIG_SHAPER=m
+CONFIG_NETCONSOLE=m
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_TSDEV is not set
+CONFIG_INPUT_EVDEV=m
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_ATKBD_HP_KEYCODES=y
+# CONFIG_KEYBOARD_ATKBD_RDI_KEYCODES is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+CONFIG_KEYBOARD_HIL_OLD=m
+CONFIG_KEYBOARD_HIL=m
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_INPORT is not set
+# CONFIG_MOUSE_LOGIBM is not set
+# CONFIG_MOUSE_PC110PAD is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+CONFIG_MOUSE_HIL=m
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_UINPUT is not set
+CONFIG_HP_SDC_RTC=m
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+# CONFIG_SERIO_SERPORT is not set
+# CONFIG_SERIO_PARKBD is not set
+CONFIG_SERIO_GSCPS2=y
+CONFIG_HP_SDC=m
+CONFIG_HIL_MLC=m
+# CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+# CONFIG_SERIAL_8250_MULTIPORT is not set
+# CONFIG_SERIAL_8250_RSA is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_MUX=y
+CONFIG_SERIAL_MUX_CONSOLE=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_JSM=m
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+# CONFIG_PPDEV is not set
+# CONFIG_TIPAR is not set
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+CONFIG_GEN_RTC=y
+# CONFIG_GEN_RTC_X is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_DRM is not set
+
+#
+# PCMCIA character devices
+#
+CONFIG_SYNCLINK_CS=m
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+CONFIG_TCG_TPM=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_ATMEL=m
+
+#
+# I2C support
+#
+CONFIG_I2C=m
+CONFIG_I2C_CHARDEV=m
+
+#
+# I2C Algorithms
+#
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCF=m
+CONFIG_I2C_ALGOPCA=m
+
+#
+# I2C Hardware Bus support
+#
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_I810=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_ISA=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_PROSAVAGE=m
+CONFIG_I2C_SAVAGE4=m
+CONFIG_SCx200_ACB=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_STUB=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+CONFIG_I2C_VOODOO3=m
+CONFIG_I2C_PCA_ISA=m
+
+#
+# Hardware Sensors Chip support
+#
+CONFIG_I2C_SENSOR=m
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_FSCHER=m
+CONFIG_SENSORS_FSCPOS=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83627HF=m
+
+#
+# Other I2C Chip support
+#
+CONFIG_SENSORS_DS1337=m
+CONFIG_SENSORS_EEPROM=m
+CONFIG_SENSORS_PCF8574=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_SENSORS_RTC8564=m
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
+#
+# Misc devices
+#
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+# CONFIG_DVB is not set
+
+#
+# Graphics support
+#
+CONFIG_FB=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+CONFIG_FB_SOFT_CURSOR=y
+# CONFIG_FB_MACMODES is not set
+CONFIG_FB_MODE_HELPERS=y
+# CONFIG_FB_TILEBLITTING is not set
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+CONFIG_FB_STI=y
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_RADEON_OLD is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_VIRTUAL is not set
+
+#
+# Console display driver support
+#
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_DUMMY_CONSOLE_COLUMNS=160
+CONFIG_DUMMY_CONSOLE_ROWS=64
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_STI_CONSOLE=y
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+
+#
+# Logo configuration
+#
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_LOGO_PARISC_CLUT224=y
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Sound
+#
+CONFIG_SOUND=m
+
+#
+# Advanced Linux Sound Architecture
+#
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_SEQUENCER=m
+# CONFIG_SND_SEQ_DUMMY is not set
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_SEQUENCER_OSS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+
+#
+# Generic devices
+#
+CONFIG_SND_DUMMY=m
+# CONFIG_SND_VIRMIDI is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+
+#
+# ISA devices
+#
+# CONFIG_SND_AD1848 is not set
+# CONFIG_SND_CS4231 is not set
+# CONFIG_SND_CS4232 is not set
+# CONFIG_SND_CS4236 is not set
+# CONFIG_SND_ES1688 is not set
+# CONFIG_SND_ES18XX is not set
+# CONFIG_SND_GUSCLASSIC is not set
+# CONFIG_SND_GUSEXTREME is not set
+# CONFIG_SND_GUSMAX is not set
+# CONFIG_SND_INTERWAVE is not set
+# CONFIG_SND_INTERWAVE_STB is not set
+# CONFIG_SND_OPTI92X_AD1848 is not set
+# CONFIG_SND_OPTI92X_CS4231 is not set
+# CONFIG_SND_OPTI93X is not set
+# CONFIG_SND_SB8 is not set
+# CONFIG_SND_SB16 is not set
+# CONFIG_SND_SBAWE is not set
+# CONFIG_SND_WAVEFRONT is not set
+# CONFIG_SND_CMI8330 is not set
+# CONFIG_SND_OPL3SA2 is not set
+# CONFIG_SND_SGALAXY is not set
+# CONFIG_SND_SSCAPE is not set
+
+#
+# PCI devices
+#
+CONFIG_SND_AC97_CODEC=m
+# CONFIG_SND_ALI5451 is not set
+CONFIG_SND_AD1889=m
+# CONFIG_SND_AD1889_OPL3 is not set
+# CONFIG_SND_ATIIXP is not set
+# CONFIG_SND_ATIIXP_MODEM is not set
+# CONFIG_SND_AU8810 is not set
+# CONFIG_SND_AU8820 is not set
+# CONFIG_SND_AU8830 is not set
+# CONFIG_SND_AZT3328 is not set
+# CONFIG_SND_BT87X is not set
+# CONFIG_SND_CS46XX is not set
+# CONFIG_SND_CS4281 is not set
+# CONFIG_SND_EMU10K1 is not set
+# CONFIG_SND_EMU10K1X is not set
+# CONFIG_SND_CA0106 is not set
+# CONFIG_SND_KORG1212 is not set
+# CONFIG_SND_MIXART is not set
+# CONFIG_SND_NM256 is not set
+# CONFIG_SND_RME32 is not set
+# CONFIG_SND_RME96 is not set
+# CONFIG_SND_RME9652 is not set
+# CONFIG_SND_HDSP is not set
+# CONFIG_SND_TRIDENT is not set
+# CONFIG_SND_YMFPCI is not set
+# CONFIG_SND_ALS4000 is not set
+# CONFIG_SND_CMIPCI is not set
+# CONFIG_SND_ENS1370 is not set
+# CONFIG_SND_ENS1371 is not set
+# CONFIG_SND_ES1938 is not set
+# CONFIG_SND_ES1968 is not set
+# CONFIG_SND_MAESTRO3 is not set
+# CONFIG_SND_FM801 is not set
+# CONFIG_SND_ICE1712 is not set
+# CONFIG_SND_ICE1724 is not set
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
+# CONFIG_SND_SONICVIBES is not set
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
+# CONFIG_SND_VX222 is not set
+# CONFIG_SND_HDA_INTEL is not set
+
+#
+# USB devices
+#
+# CONFIG_SND_USB_AUDIO is not set
+
+#
+# PCMCIA devices
+#
+# CONFIG_SND_VXPOCKET is not set
+# CONFIG_SND_VXP440 is not set
+# CONFIG_SND_PDAUDIOCF is not set
+
+#
+# GSC devices
+#
+CONFIG_SND_HARMONY=m
+
+#
+# Open Sound System
+#
+# CONFIG_SOUND_PRIME is not set
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB=m
+CONFIG_USB_DEBUG=y
+
+#
+# Miscellaneous USB options
+#
+# CONFIG_USB_DEVICEFS is not set
+# CONFIG_USB_BANDWIDTH is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_EHCI_HCD=m
+# CONFIG_USB_EHCI_SPLIT_ISO is not set
+# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_OHCI_BIG_ENDIAN is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_UHCI_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_AUDIO is not set
+# CONFIG_USB_BLUETOOTH_TTY is not set
+# CONFIG_USB_MIDI is not set
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_DPCM is not set
+# CONFIG_USB_STORAGE_USBAT is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=m
+CONFIG_USB_HIDINPUT=y
+# CONFIG_HID_FF is not set
+CONFIG_USB_HIDDEV=y
+
+#
+# USB HID Boot Protocol drivers
+#
+CONFIG_USB_KBD=m
+CONFIG_USB_MOUSE=m
+# CONFIG_USB_AIPTEK is not set
+# CONFIG_USB_WACOM is not set
+# CONFIG_USB_KBTAB is not set
+# CONFIG_USB_POWERMATE is not set
+# CONFIG_USB_MTOUCH is not set
+# CONFIG_USB_EGALAX is not set
+# CONFIG_USB_XPAD is not set
+# CONFIG_USB_ATI_REMOTE is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+
+#
+# USB Multimedia devices
+#
+
+#
+# Video4Linux support is needed for USB Multimedia device support
+#
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET is not set
+# CONFIG_USB_ZD1201 is not set
+CONFIG_USB_MON=m
+
+#
+# USB port drivers
+#
+# CONFIG_USB_USS720 is not set
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_AUERSWALD is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_PHIDGETKIT is not set
+# CONFIG_USB_PHIDGETSERVO is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_SISUSBVGA is not set
+
+#
+# USB ATM/DSL drivers
+#
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# MMC/SD Card support
+#
+# CONFIG_MMC is not set
+
+#
+# InfiniBand support
+#
+CONFIG_INFINIBAND=m
+CONFIG_INFINIBAND_MTHCA=m
+# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
+CONFIG_INFINIBAND_IPOIB=m
+# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+CONFIG_EXT3_FS=m
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_JBD=m
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+CONFIG_FS_POSIX_ACL=y
+
+#
+# XFS support
+#
+CONFIG_XFS_FS=m
+CONFIG_XFS_EXPORT=y
+# CONFIG_XFS_RT is not set
+# CONFIG_XFS_QUOTA is not set
+# CONFIG_XFS_SECURITY is not set
+# CONFIG_XFS_POSIX_ACL is not set
+CONFIG_MINIX_FS=m
+CONFIG_ROMFS_FS=m
+CONFIG_QUOTA=y
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+CONFIG_DNOTIFY=y
+CONFIG_AUTOFS_FS=m
+CONFIG_AUTOFS4_FS=m
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_ZISOFS_FS=m
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+# CONFIG_NTFS_RW is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_SYSFS=y
+CONFIG_DEVFS_FS=y
+# CONFIG_DEVFS_MOUNT is not set
+# CONFIG_DEVFS_DEBUG is not set
+# CONFIG_DEVPTS_FS_XATTR is not set
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_XATTR is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_ASFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_CRAMFS=y
+CONFIG_VXFS_FS=m
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_V4=y
+CONFIG_NFS_DIRECTIO=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V4=y
+CONFIG_NFSD_TCP=y
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=m
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+CONFIG_RPCSEC_GSS_KRB5=y
+CONFIG_RPCSEC_GSS_SPKM3=m
+CONFIG_SMB_FS=m
+CONFIG_SMB_NLS_DEFAULT=y
+CONFIG_SMB_NLS_REMOTE="cp437"
+CONFIG_CIFS=m
+# CONFIG_CIFS_STATS is not set
+# CONFIG_CIFS_XATTR is not set
+# CONFIG_CIFS_EXPERIMENTAL is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=m
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=m
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+CONFIG_NLS_UTF8=m
+
+#
+# Profiling support
+#
+CONFIG_PROFILING=y
+CONFIG_OPROFILE=m
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_DEBUG_KERNEL=y
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_LOG_BUF_SHIFT=15
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_DEBUG_SLAB is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_IOREMAP is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_DEBUG_RWLOCK is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+CONFIG_SECURITY=y
+CONFIG_SECURITY_NETWORK=y
+CONFIG_SECURITY_CAPABILITIES=y
+# CONFIG_SECURITY_ROOTPLUG is not set
+CONFIG_SECURITY_SECLVL=m
+# CONFIG_SECURITY_SELINUX is not set
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_WP512=m
+# CONFIG_CRYPTO_TGR192 is not set
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Hardware crypto devices
+#
+
+#
+# Library routines
+#
+CONFIG_CRC_CCITT=m
+CONFIG_CRC32=y
+CONFIG_LIBCRC32C=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m

Added: trunk/kernel/source/linux-2.6/debian/arch/hppa/config.64
===================================================================
--- trunk/kernel/source/linux-2.6/debian/arch/hppa/config.64	2005-08-09 02:25:01 UTC (rev 3769)
+++ trunk/kernel/source/linux-2.6/debian/arch/hppa/config.64	2005-08-09 03:54:02 UTC (rev 3770)
@@ -0,0 +1,1685 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.12
+# Tue Aug  9 03:42:53 2005
+#
+CONFIG_PARISC=y
+CONFIG_MMU=y
+CONFIG_STACK_GROWSUP=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_ISA_DMA_API=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_CLEAN_COMPILE=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_SYSCTL=y
+# CONFIG_AUDIT is not set
+CONFIG_HOTPLUG=y
+CONFIG_KOBJECT_UEVENT=y
+CONFIG_IKCONFIG=y
+# CONFIG_IKCONFIG_PROC is not set
+# CONFIG_EMBEDDED is not set
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_OBSOLETE_MODPARM=y
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_KMOD=y
+
+#
+# Processor type and features
+#
+# CONFIG_PA7000 is not set
+# CONFIG_PA7100LC is not set
+# CONFIG_PA7200 is not set
+# CONFIG_PA7300LC is not set
+CONFIG_PA8X00=y
+CONFIG_PA20=y
+CONFIG_PREFETCH=y
+CONFIG_64BIT=y
+# CONFIG_SMP is not set
+CONFIG_DISCONTIGMEM=y
+# CONFIG_PREEMPT is not set
+CONFIG_COMPAT=y
+
+#
+# Bus options (PCI, PCMCIA, EISA, GSC, ISA)
+#
+CONFIG_GSC=y
+CONFIG_HPPB=y
+CONFIG_IOMMU_CCIO=y
+CONFIG_GSC_LASI=y
+CONFIG_GSC_WAX=y
+CONFIG_EISA=y
+CONFIG_EISA_NAMES=y
+CONFIG_ISA=y
+CONFIG_PCI=y
+CONFIG_PCI_LEGACY_PROC=y
+CONFIG_PCI_NAMES=y
+# CONFIG_PCI_DEBUG is not set
+CONFIG_GSC_DINO=y
+CONFIG_PCI_LBA=y
+CONFIG_IOSAPIC=y
+CONFIG_IOMMU_SBA=y
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+CONFIG_PCCARD=m
+# CONFIG_PCMCIA_DEBUG is not set
+CONFIG_PCMCIA=m
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
+CONFIG_YENTA=m
+CONFIG_PD6729=m
+CONFIG_I82092=m
+CONFIG_I82365=m
+# CONFIG_TCIC is not set
+CONFIG_PCCARD_NONSTATIC=m
+
+#
+# PCI Hotplug Support
+#
+# CONFIG_HOTPLUG_PCI is not set
+
+#
+# PA-RISC specific drivers
+#
+CONFIG_SUPERIO=y
+CONFIG_CHASSIS_LCD_LED=y
+CONFIG_PDC_CHASSIS=y
+CONFIG_PDC_STABLE=y
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_MISC=m
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+# CONFIG_DEBUG_DRIVER is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+# CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+# CONFIG_PARPORT_SERIAL is not set
+# CONFIG_PARPORT_PC_FIFO is not set
+# CONFIG_PARPORT_PC_SUPERIO is not set
+CONFIG_PARPORT_PC_PCMCIA=m
+CONFIG_PARPORT_GSC=y
+# CONFIG_PARPORT_1284 is not set
+
+#
+# Plug and Play support
+#
+# CONFIG_PNP is not set
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE is not set
+# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_SX8 is not set
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=8192
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_ATA_OVER_ETH=m
+
+#
+# ATA/ATAPI/MFM/RLL support
+#
+CONFIG_IDE=m
+CONFIG_BLK_DEV_IDE=m
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_BLK_DEV_IDEDISK=m
+# CONFIG_IDEDISK_MULTI_MODE is not set
+CONFIG_BLK_DEV_IDECS=m
+CONFIG_BLK_DEV_IDECD=m
+# CONFIG_BLK_DEV_IDETAPE is not set
+# CONFIG_BLK_DEV_IDEFLOPPY is not set
+CONFIG_BLK_DEV_IDESCSI=m
+# CONFIG_IDE_TASK_IOCTL is not set
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=m
+CONFIG_BLK_DEV_IDEPCI=y
+CONFIG_IDEPCI_SHARE_IRQ=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+# CONFIG_BLK_DEV_GENERIC is not set
+# CONFIG_BLK_DEV_OPTI621 is not set
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
+CONFIG_IDEDMA_PCI_AUTO=y
+# CONFIG_IDEDMA_ONLYDISK is not set
+# CONFIG_BLK_DEV_AEC62XX is not set
+# CONFIG_BLK_DEV_ALI15X3 is not set
+# CONFIG_BLK_DEV_AMD74XX is not set
+CONFIG_BLK_DEV_CMD64X=m
+# CONFIG_BLK_DEV_TRIFLEX is not set
+# CONFIG_BLK_DEV_CY82C693 is not set
+# CONFIG_BLK_DEV_CS5520 is not set
+# CONFIG_BLK_DEV_CS5530 is not set
+# CONFIG_BLK_DEV_HPT34X is not set
+# CONFIG_BLK_DEV_HPT366 is not set
+# CONFIG_BLK_DEV_SC1200 is not set
+# CONFIG_BLK_DEV_PIIX is not set
+CONFIG_BLK_DEV_NS87415=m
+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
+# CONFIG_BLK_DEV_PDC202XX_NEW is not set
+# CONFIG_BLK_DEV_SVWKS is not set
+# CONFIG_BLK_DEV_SIIMAGE is not set
+# CONFIG_BLK_DEV_SLC90E66 is not set
+# CONFIG_BLK_DEV_TRM290 is not set
+# CONFIG_BLK_DEV_VIA82CXXX is not set
+# CONFIG_IDE_ARM is not set
+# CONFIG_IDE_CHIPSETS is not set
+CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDEDMA_IVB is not set
+CONFIG_IDEDMA_AUTO=y
+# CONFIG_BLK_DEV_HD is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI=y
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_SCH=m
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+# CONFIG_SCSI_MULTI_LUN is not set
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+
+#
+# SCSI Transport Attributes
+#
+CONFIG_SCSI_SPI_ATTRS=y
+CONFIG_SCSI_FC_ATTRS=m
+CONFIG_SCSI_ISCSI_ATTRS=m
+
+#
+# SCSI low-level drivers
+#
+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_3W_9XXX is not set
+# CONFIG_SCSI_7000FASST is not set
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_AHA1542 is not set
+# CONFIG_SCSI_AHA1740 is not set
+# CONFIG_SCSI_AACRAID is not set
+# CONFIG_SCSI_AIC7XXX is not set
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+# CONFIG_SCSI_AIC79XX is not set
+# CONFIG_SCSI_IN2000 is not set
+# CONFIG_MEGARAID_NEWGEN is not set
+CONFIG_MEGARAID_LEGACY=m
+# CONFIG_SCSI_SATA is not set
+# CONFIG_SCSI_BUSLOGIC is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_DTC3280 is not set
+# CONFIG_SCSI_EATA is not set
+# CONFIG_SCSI_FUTURE_DOMAIN is not set
+# CONFIG_SCSI_GDTH is not set
+# CONFIG_SCSI_GENERIC_NCR5380 is not set
+# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
+# CONFIG_SCSI_IPS is not set
+CONFIG_SCSI_INITIO=m
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_PPA is not set
+# CONFIG_SCSI_IMM is not set
+# CONFIG_SCSI_NCR53C406A is not set
+CONFIG_SCSI_LASI700=m
+CONFIG_53C700_LE_ON_BE=y
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
+# CONFIG_SCSI_IPR is not set
+CONFIG_SCSI_ZALON=m
+CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8
+CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32
+CONFIG_SCSI_NCR53C8XX_SYNC=20
+# CONFIG_SCSI_NCR53C8XX_PROFILE is not set
+# CONFIG_SCSI_PAS16 is not set
+# CONFIG_SCSI_PSI240I is not set
+# CONFIG_SCSI_QLOGIC_FAS is not set
+# CONFIG_SCSI_QLOGIC_FC is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+CONFIG_SCSI_LPFC=m
+# CONFIG_SCSI_SIM710 is not set
+# CONFIG_SCSI_SYM53C416 is not set
+# CONFIG_SCSI_DC395x is not set
+# CONFIG_SCSI_DC390T is not set
+# CONFIG_SCSI_T128 is not set
+# CONFIG_SCSI_U14_34F is not set
+# CONFIG_SCSI_DEBUG is not set
+
+#
+# PCMCIA SCSI adapter support
+#
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+
+#
+# Old CD-ROM drivers (not SCSI, not IDE)
+#
+# CONFIG_CD_NO_IDESCSI is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID5=m
+CONFIG_MD_RAID6=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+CONFIG_BLK_DEV_DM=m
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_EMC=m
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_IEEE1394 is not set
+
+#
+# I2O device support
+#
+CONFIG_I2O=m
+CONFIG_I2O_CONFIG=m
+CONFIG_I2O_BLOCK=m
+CONFIG_I2O_SCSI=m
+CONFIG_I2O_PROC=m
+
+#
+# Networking support
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_UNIX=y
+CONFIG_NET_KEY=m
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_PNP=y
+# CONFIG_IP_PNP_DHCP is not set
+CONFIG_IP_PNP_BOOTP=y
+# CONFIG_IP_PNP_RARP is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
+# CONFIG_NET_IPGRE_BROADCAST is not set
+# CONFIG_IP_MROUTE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+CONFIG_IP_TCPDIAG_IPV6=y
+
+#
+# IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_IPV6_TUNNEL=m
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_IP_NF_CONNTRACK=m
+CONFIG_IP_NF_CT_ACCT=y
+CONFIG_IP_NF_CONNTRACK_MARK=y
+CONFIG_IP_NF_CT_PROTO_SCTP=m
+CONFIG_IP_NF_FTP=m
+CONFIG_IP_NF_IRC=m
+CONFIG_IP_NF_TFTP=m
+CONFIG_IP_NF_AMANDA=m
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_LIMIT=m
+CONFIG_IP_NF_MATCH_IPRANGE=m
+CONFIG_IP_NF_MATCH_MAC=m
+CONFIG_IP_NF_MATCH_PKTTYPE=m
+CONFIG_IP_NF_MATCH_MARK=m
+CONFIG_IP_NF_MATCH_MULTIPORT=m
+CONFIG_IP_NF_MATCH_TOS=m
+CONFIG_IP_NF_MATCH_RECENT=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_DSCP=m
+CONFIG_IP_NF_MATCH_AH_ESP=m
+CONFIG_IP_NF_MATCH_LENGTH=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_MATCH_TCPMSS=m
+CONFIG_IP_NF_MATCH_HELPER=m
+CONFIG_IP_NF_MATCH_STATE=m
+CONFIG_IP_NF_MATCH_CONNTRACK=m
+CONFIG_IP_NF_MATCH_OWNER=m
+# CONFIG_IP_NF_MATCH_PHYSDEV is not set
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_REALM=m
+CONFIG_IP_NF_MATCH_SCTP=m
+CONFIG_IP_NF_MATCH_COMMENT=m
+CONFIG_IP_NF_MATCH_CONNMARK=m
+CONFIG_IP_NF_MATCH_HASHLIMIT=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_IP_NF_TARGET_TCPMSS=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_SAME=m
+CONFIG_IP_NF_NAT_SNMP_BASIC=m
+CONFIG_IP_NF_NAT_IRC=m
+CONFIG_IP_NF_NAT_FTP=m
+CONFIG_IP_NF_NAT_TFTP=m
+CONFIG_IP_NF_NAT_AMANDA=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_TOS=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_DSCP=m
+CONFIG_IP_NF_TARGET_MARK=m
+CONFIG_IP_NF_TARGET_CLASSIFY=m
+CONFIG_IP_NF_TARGET_CONNMARK=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_TARGET_NOTRACK=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration (EXPERIMENTAL)
+#
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_LIMIT=m
+CONFIG_IP6_NF_MATCH_MAC=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_MULTIPORT=m
+CONFIG_IP6_NF_MATCH_OWNER=m
+CONFIG_IP6_NF_MATCH_MARK=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_AHESP=m
+CONFIG_IP6_NF_MATCH_LENGTH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_PHYSDEV=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_TARGET_MARK=m
+CONFIG_IP6_NF_RAW=m
+
+#
+# Bridge: Netfilter Configuration
+#
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_ULOG=m
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+# CONFIG_ATM is not set
+CONFIG_BRIDGE=m
+CONFIG_VLAN_8021Q=m
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+
+#
+# QoS and/or fair queueing
+#
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CLK_JIFFIES=y
+# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
+# CONFIG_NET_SCH_CLK_CPU is not set
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_QOS=y
+CONFIG_NET_ESTIMATOR=y
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_CLS_U32_PERF=y
+CONFIG_NET_CLS_IND=y
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+CONFIG_NETPOLL=y
+# CONFIG_NETPOLL_RX is not set
+# CONFIG_NETPOLL_TRAP is not set
+CONFIG_NET_POLL_CONTROLLER=y
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+CONFIG_NETDEVICES=y
+CONFIG_DUMMY=m
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+CONFIG_TUN=m
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=m
+CONFIG_LASI_82596=m
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_EL1=m
+CONFIG_EL2=m
+CONFIG_ELPLUS=m
+CONFIG_EL16=m
+CONFIG_EL3=m
+# CONFIG_3C515 is not set
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+# CONFIG_LANCE is not set
+CONFIG_NET_VENDOR_SMC=y
+CONFIG_WD80x3=m
+CONFIG_ULTRA=m
+CONFIG_ULTRA32=m
+CONFIG_SMC9194=m
+CONFIG_NET_VENDOR_RACAL=y
+# CONFIG_NI5010 is not set
+CONFIG_NI52=m
+# CONFIG_NI65 is not set
+
+#
+# Tulip family network device support
+#
+CONFIG_NET_TULIP=y
+# CONFIG_DE2104X is not set
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+# CONFIG_TULIP_NAPI is not set
+# CONFIG_DE4X5 is not set
+# CONFIG_WINBOND_840 is not set
+# CONFIG_DM9102 is not set
+CONFIG_PCMCIA_XIRCOM=m
+# CONFIG_PCMCIA_XIRTULIP is not set
+CONFIG_AT1700=m
+CONFIG_DEPCA=m
+CONFIG_HP100=m
+CONFIG_NET_ISA=y
+CONFIG_E2100=m
+CONFIG_EWRK3=m
+CONFIG_EEXPRESS=m
+CONFIG_EEXPRESS_PRO=m
+CONFIG_HPLAN_PLUS=m
+CONFIG_HPLAN=m
+CONFIG_LP486E=m
+CONFIG_ETH16I=m
+CONFIG_NE2000=m
+CONFIG_ZNET=m
+CONFIG_SEEQ8005=m
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=m
+CONFIG_AMD8111_ETH=m
+# CONFIG_AMD8111E_NAPI is not set
+CONFIG_ADAPTEC_STARFIRE=m
+# CONFIG_ADAPTEC_STARFIRE_NAPI is not set
+CONFIG_AC3200=m
+CONFIG_APRICOT=m
+CONFIG_B44=m
+CONFIG_FORCEDETH=m
+CONFIG_CS89x0=m
+CONFIG_EEPRO100=m
+CONFIG_E100=m
+CONFIG_LNE390=m
+CONFIG_FEALNX=m
+CONFIG_NATSEMI=m
+CONFIG_NE2K_PCI=m
+CONFIG_NE3210=m
+CONFIG_ES3210=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+# CONFIG_8139TOO_TUNE_TWISTER is not set
+# CONFIG_8139TOO_8129 is not set
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_SIS900=m
+CONFIG_EPIC100=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+# CONFIG_NET_POCKET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+CONFIG_DL2K=m
+CONFIG_E1000=m
+# CONFIG_E1000_NAPI is not set
+CONFIG_NS83820=m
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_R8169=m
+# CONFIG_R8169_NAPI is not set
+CONFIG_R8169_VLAN=y
+CONFIG_SK98LIN=m
+CONFIG_VIA_VELOCITY=m
+CONFIG_TIGON3=m
+CONFIG_BNX2=m
+
+#
+# Ethernet (10000 Mbit)
+#
+CONFIG_IXGB=m
+# CONFIG_IXGB_NAPI is not set
+CONFIG_S2IO=m
+# CONFIG_S2IO_NAPI is not set
+# CONFIG_2BUFF_MODE is not set
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+CONFIG_NET_RADIO=y
+
+#
+# Obsolete Wireless cards support (pre-802.11)
+#
+# CONFIG_STRIP is not set
+# CONFIG_WAVELAN is not set
+CONFIG_PCMCIA_WAVELAN=m
+CONFIG_PCMCIA_NETWAVE=m
+
+#
+# Wireless 802.11 Frequency Hopping cards support
+#
+CONFIG_PCMCIA_RAYCS=m
+
+#
+# Wireless 802.11b ISA/PCI cards support
+#
+CONFIG_AIRO=m
+CONFIG_HERMES=m
+# CONFIG_PLX_HERMES is not set
+# CONFIG_TMD_HERMES is not set
+# CONFIG_PCI_HERMES is not set
+# CONFIG_ATMEL is not set
+
+#
+# Wireless 802.11b Pcmcia/Cardbus cards support
+#
+CONFIG_PCMCIA_HERMES=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_WL3501=m
+
+#
+# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
+#
+CONFIG_PRISM54=m
+CONFIG_NET_WIRELESS=y
+
+#
+# PCMCIA network device support
+#
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_AXNET=m
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPPOE=m
+CONFIG_SLIP=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+# CONFIG_SLIP_MODE_SLIP6 is not set
+# CONFIG_NET_FC is not set
+CONFIG_SHAPER=m
+CONFIG_NETCONSOLE=m
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_TSDEV is not set
+CONFIG_INPUT_EVDEV=m
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_ATKBD_HP_KEYCODES=y
+# CONFIG_KEYBOARD_ATKBD_RDI_KEYCODES is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+CONFIG_KEYBOARD_HIL_OLD=m
+CONFIG_KEYBOARD_HIL=m
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_INPORT is not set
+# CONFIG_MOUSE_LOGIBM is not set
+# CONFIG_MOUSE_PC110PAD is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+CONFIG_MOUSE_HIL=m
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_UINPUT is not set
+CONFIG_HP_SDC_RTC=m
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+# CONFIG_SERIO_SERPORT is not set
+# CONFIG_SERIO_PARKBD is not set
+CONFIG_SERIO_GSCPS2=y
+CONFIG_HP_SDC=m
+CONFIG_HIL_MLC=m
+# CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+# CONFIG_SERIAL_8250_MULTIPORT is not set
+# CONFIG_SERIAL_8250_RSA is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_MUX=y
+CONFIG_SERIAL_MUX_CONSOLE=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_JSM=m
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+# CONFIG_PPDEV is not set
+# CONFIG_TIPAR is not set
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+CONFIG_GEN_RTC=y
+# CONFIG_GEN_RTC_X is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_DRM is not set
+
+#
+# PCMCIA character devices
+#
+CONFIG_SYNCLINK_CS=m
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+CONFIG_TCG_TPM=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_ATMEL=m
+
+#
+# I2C support
+#
+CONFIG_I2C=m
+CONFIG_I2C_CHARDEV=m
+
+#
+# I2C Algorithms
+#
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCF=m
+CONFIG_I2C_ALGOPCA=m
+
+#
+# I2C Hardware Bus support
+#
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+# CONFIG_I2C_ELEKTOR is not set
+CONFIG_I2C_I801=m
+CONFIG_I2C_I810=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_ISA=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_PROSAVAGE=m
+CONFIG_I2C_SAVAGE4=m
+CONFIG_SCx200_ACB=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_STUB=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+CONFIG_I2C_VOODOO3=m
+CONFIG_I2C_PCA_ISA=m
+
+#
+# Hardware Sensors Chip support
+#
+CONFIG_I2C_SENSOR=m
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_FSCHER=m
+CONFIG_SENSORS_FSCPOS=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83627HF=m
+
+#
+# Other I2C Chip support
+#
+CONFIG_SENSORS_DS1337=m
+CONFIG_SENSORS_EEPROM=m
+CONFIG_SENSORS_PCF8574=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_SENSORS_RTC8564=m
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
+#
+# Misc devices
+#
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+# CONFIG_DVB is not set
+
+#
+# Graphics support
+#
+CONFIG_FB=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+CONFIG_FB_SOFT_CURSOR=y
+# CONFIG_FB_MACMODES is not set
+CONFIG_FB_MODE_HELPERS=y
+# CONFIG_FB_TILEBLITTING is not set
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+CONFIG_FB_STI=y
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_RADEON_OLD is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_VIRTUAL is not set
+
+#
+# Console display driver support
+#
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_DUMMY_CONSOLE_COLUMNS=160
+CONFIG_DUMMY_CONSOLE_ROWS=64
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_STI_CONSOLE=y
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+
+#
+# Logo configuration
+#
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_LOGO_PARISC_CLUT224=y
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Sound
+#
+CONFIG_SOUND=m
+
+#
+# Advanced Linux Sound Architecture
+#
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_SEQUENCER=m
+# CONFIG_SND_SEQ_DUMMY is not set
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_SEQUENCER_OSS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+
+#
+# Generic devices
+#
+CONFIG_SND_DUMMY=m
+# CONFIG_SND_VIRMIDI is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+
+#
+# ISA devices
+#
+# CONFIG_SND_AD1848 is not set
+# CONFIG_SND_CS4231 is not set
+# CONFIG_SND_CS4232 is not set
+# CONFIG_SND_CS4236 is not set
+# CONFIG_SND_ES1688 is not set
+# CONFIG_SND_ES18XX is not set
+# CONFIG_SND_GUSCLASSIC is not set
+# CONFIG_SND_GUSEXTREME is not set
+# CONFIG_SND_GUSMAX is not set
+# CONFIG_SND_INTERWAVE is not set
+# CONFIG_SND_INTERWAVE_STB is not set
+# CONFIG_SND_OPTI92X_AD1848 is not set
+# CONFIG_SND_OPTI92X_CS4231 is not set
+# CONFIG_SND_OPTI93X is not set
+# CONFIG_SND_SB8 is not set
+# CONFIG_SND_SB16 is not set
+# CONFIG_SND_SBAWE is not set
+# CONFIG_SND_WAVEFRONT is not set
+# CONFIG_SND_CMI8330 is not set
+# CONFIG_SND_OPL3SA2 is not set
+# CONFIG_SND_SGALAXY is not set
+# CONFIG_SND_SSCAPE is not set
+
+#
+# PCI devices
+#
+CONFIG_SND_AC97_CODEC=m
+# CONFIG_SND_ALI5451 is not set
+CONFIG_SND_AD1889=m
+# CONFIG_SND_AD1889_OPL3 is not set
+# CONFIG_SND_ATIIXP is not set
+# CONFIG_SND_ATIIXP_MODEM is not set
+# CONFIG_SND_AU8810 is not set
+# CONFIG_SND_AU8820 is not set
+# CONFIG_SND_AU8830 is not set
+# CONFIG_SND_AZT3328 is not set
+# CONFIG_SND_BT87X is not set
+# CONFIG_SND_CS46XX is not set
+# CONFIG_SND_CS4281 is not set
+# CONFIG_SND_EMU10K1 is not set
+# CONFIG_SND_EMU10K1X is not set
+# CONFIG_SND_CA0106 is not set
+# CONFIG_SND_KORG1212 is not set
+# CONFIG_SND_MIXART is not set
+# CONFIG_SND_NM256 is not set
+# CONFIG_SND_RME32 is not set
+# CONFIG_SND_RME96 is not set
+# CONFIG_SND_RME9652 is not set
+# CONFIG_SND_HDSP is not set
+# CONFIG_SND_TRIDENT is not set
+# CONFIG_SND_YMFPCI is not set
+# CONFIG_SND_ALS4000 is not set
+# CONFIG_SND_CMIPCI is not set
+# CONFIG_SND_ENS1370 is not set
+# CONFIG_SND_ENS1371 is not set
+# CONFIG_SND_ES1938 is not set
+# CONFIG_SND_ES1968 is not set
+# CONFIG_SND_MAESTRO3 is not set
+# CONFIG_SND_FM801 is not set
+# CONFIG_SND_ICE1712 is not set
+# CONFIG_SND_ICE1724 is not set
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
+# CONFIG_SND_SONICVIBES is not set
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
+# CONFIG_SND_VX222 is not set
+# CONFIG_SND_HDA_INTEL is not set
+
+#
+# USB devices
+#
+# CONFIG_SND_USB_AUDIO is not set
+
+#
+# PCMCIA devices
+#
+# CONFIG_SND_VXPOCKET is not set
+# CONFIG_SND_VXP440 is not set
+# CONFIG_SND_PDAUDIOCF is not set
+
+#
+# GSC devices
+#
+CONFIG_SND_HARMONY=m
+
+#
+# Open Sound System
+#
+# CONFIG_SOUND_PRIME is not set
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB=m
+CONFIG_USB_DEBUG=y
+
+#
+# Miscellaneous USB options
+#
+# CONFIG_USB_DEVICEFS is not set
+# CONFIG_USB_BANDWIDTH is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_EHCI_HCD=m
+# CONFIG_USB_EHCI_SPLIT_ISO is not set
+# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_OHCI_BIG_ENDIAN is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_UHCI_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_AUDIO is not set
+# CONFIG_USB_BLUETOOTH_TTY is not set
+# CONFIG_USB_MIDI is not set
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_DPCM is not set
+# CONFIG_USB_STORAGE_USBAT is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=m
+CONFIG_USB_HIDINPUT=y
+# CONFIG_HID_FF is not set
+CONFIG_USB_HIDDEV=y
+
+#
+# USB HID Boot Protocol drivers
+#
+CONFIG_USB_KBD=m
+CONFIG_USB_MOUSE=m
+# CONFIG_USB_AIPTEK is not set
+# CONFIG_USB_WACOM is not set
+# CONFIG_USB_KBTAB is not set
+# CONFIG_USB_POWERMATE is not set
+# CONFIG_USB_MTOUCH is not set
+# CONFIG_USB_EGALAX is not set
+# CONFIG_USB_XPAD is not set
+# CONFIG_USB_ATI_REMOTE is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+
+#
+# USB Multimedia devices
+#
+
+#
+# Video4Linux support is needed for USB Multimedia device support
+#
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET is not set
+# CONFIG_USB_ZD1201 is not set
+CONFIG_USB_MON=m
+
+#
+# USB port drivers
+#
+# CONFIG_USB_USS720 is not set
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_AUERSWALD is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_PHIDGETKIT is not set
+# CONFIG_USB_PHIDGETSERVO is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_SISUSBVGA is not set
+
+#
+# USB ATM/DSL drivers
+#
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# MMC/SD Card support
+#
+# CONFIG_MMC is not set
+
+#
+# InfiniBand support
+#
+CONFIG_INFINIBAND=m
+CONFIG_INFINIBAND_MTHCA=m
+# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
+CONFIG_INFINIBAND_IPOIB=m
+# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+CONFIG_EXT3_FS=m
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_JBD=m
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+CONFIG_FS_POSIX_ACL=y
+
+#
+# XFS support
+#
+CONFIG_XFS_FS=m
+CONFIG_XFS_EXPORT=y
+# CONFIG_XFS_RT is not set
+# CONFIG_XFS_QUOTA is not set
+# CONFIG_XFS_SECURITY is not set
+# CONFIG_XFS_POSIX_ACL is not set
+CONFIG_MINIX_FS=m
+CONFIG_ROMFS_FS=m
+CONFIG_QUOTA=y
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+CONFIG_DNOTIFY=y
+CONFIG_AUTOFS_FS=m
+CONFIG_AUTOFS4_FS=m
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_ZISOFS_FS=m
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+# CONFIG_NTFS_RW is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_SYSFS=y
+CONFIG_DEVFS_FS=y
+# CONFIG_DEVFS_MOUNT is not set
+# CONFIG_DEVFS_DEBUG is not set
+# CONFIG_DEVPTS_FS_XATTR is not set
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_XATTR is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_ASFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_CRAMFS=y
+CONFIG_VXFS_FS=m
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_V4=y
+CONFIG_NFS_DIRECTIO=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V4=y
+CONFIG_NFSD_TCP=y
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=m
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+CONFIG_RPCSEC_GSS_KRB5=y
+CONFIG_RPCSEC_GSS_SPKM3=m
+CONFIG_SMB_FS=m
+CONFIG_SMB_NLS_DEFAULT=y
+CONFIG_SMB_NLS_REMOTE="cp437"
+CONFIG_CIFS=m
+# CONFIG_CIFS_STATS is not set
+# CONFIG_CIFS_XATTR is not set
+# CONFIG_CIFS_EXPERIMENTAL is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=m
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=m
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+CONFIG_NLS_UTF8=m
+
+#
+# Profiling support
+#
+CONFIG_PROFILING=y
+CONFIG_OPROFILE=m
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_DEBUG_KERNEL=y
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_LOG_BUF_SHIFT=15
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_DEBUG_SLAB is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_IOREMAP is not set
+# CONFIG_DEBUG_FS is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+CONFIG_SECURITY=y
+CONFIG_SECURITY_NETWORK=y
+CONFIG_SECURITY_CAPABILITIES=y
+# CONFIG_SECURITY_ROOTPLUG is not set
+CONFIG_SECURITY_SECLVL=m
+# CONFIG_SECURITY_SELINUX is not set
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_WP512=m
+# CONFIG_CRYPTO_TGR192 is not set
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Hardware crypto devices
+#
+
+#
+# Library routines
+#
+CONFIG_CRC_CCITT=m
+CONFIG_CRC32=y
+CONFIG_LIBCRC32C=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m

Added: trunk/kernel/source/linux-2.6/debian/arch/hppa/config.64-smp
===================================================================
--- trunk/kernel/source/linux-2.6/debian/arch/hppa/config.64-smp	2005-08-09 02:25:01 UTC (rev 3769)
+++ trunk/kernel/source/linux-2.6/debian/arch/hppa/config.64-smp	2005-08-09 03:54:02 UTC (rev 3770)
@@ -0,0 +1,1687 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.12
+# Tue Aug  9 03:42:39 2005
+#
+CONFIG_PARISC=y
+CONFIG_MMU=y
+CONFIG_STACK_GROWSUP=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_ISA_DMA_API=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_CLEAN_COMPILE=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_SYSCTL=y
+# CONFIG_AUDIT is not set
+CONFIG_HOTPLUG=y
+CONFIG_KOBJECT_UEVENT=y
+CONFIG_IKCONFIG=y
+# CONFIG_IKCONFIG_PROC is not set
+# CONFIG_CPUSETS is not set
+# CONFIG_EMBEDDED is not set
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_OBSOLETE_MODPARM=y
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_KMOD=y
+CONFIG_STOP_MACHINE=y
+
+#
+# Processor type and features
+#
+# CONFIG_PA7000 is not set
+# CONFIG_PA7100LC is not set
+# CONFIG_PA7200 is not set
+# CONFIG_PA7300LC is not set
+CONFIG_PA8X00=y
+CONFIG_PA20=y
+CONFIG_PREFETCH=y
+CONFIG_64BIT=y
+CONFIG_SMP=y
+CONFIG_HOTPLUG_CPU=y
+CONFIG_DISCONTIGMEM=y
+# CONFIG_PREEMPT is not set
+CONFIG_COMPAT=y
+CONFIG_NR_CPUS=32
+
+#
+# Bus options (PCI, PCMCIA, EISA, GSC, ISA)
+#
+CONFIG_GSC=y
+CONFIG_HPPB=y
+CONFIG_IOMMU_CCIO=y
+CONFIG_GSC_LASI=y
+CONFIG_GSC_WAX=y
+CONFIG_EISA=y
+CONFIG_EISA_NAMES=y
+CONFIG_ISA=y
+CONFIG_PCI=y
+CONFIG_PCI_LEGACY_PROC=y
+CONFIG_PCI_NAMES=y
+# CONFIG_PCI_DEBUG is not set
+CONFIG_GSC_DINO=y
+CONFIG_PCI_LBA=y
+CONFIG_IOSAPIC=y
+CONFIG_IOMMU_SBA=y
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+CONFIG_PCCARD=m
+# CONFIG_PCMCIA_DEBUG is not set
+CONFIG_PCMCIA=m
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
+CONFIG_YENTA=m
+CONFIG_PD6729=m
+CONFIG_I82092=m
+CONFIG_I82365=m
+# CONFIG_TCIC is not set
+CONFIG_PCCARD_NONSTATIC=m
+
+#
+# PCI Hotplug Support
+#
+# CONFIG_HOTPLUG_PCI is not set
+
+#
+# PA-RISC specific drivers
+#
+CONFIG_SUPERIO=y
+CONFIG_CHASSIS_LCD_LED=y
+CONFIG_PDC_CHASSIS=y
+CONFIG_PDC_STABLE=y
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_MISC=m
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+# CONFIG_DEBUG_DRIVER is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+# CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+# CONFIG_PARPORT_SERIAL is not set
+# CONFIG_PARPORT_PC_FIFO is not set
+# CONFIG_PARPORT_PC_SUPERIO is not set
+CONFIG_PARPORT_PC_PCMCIA=m
+CONFIG_PARPORT_GSC=y
+# CONFIG_PARPORT_1284 is not set
+
+#
+# Plug and Play support
+#
+# CONFIG_PNP is not set
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE is not set
+# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_SX8 is not set
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=8192
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_ATA_OVER_ETH=m
+
+#
+# ATA/ATAPI/MFM/RLL support
+#
+CONFIG_IDE=m
+CONFIG_BLK_DEV_IDE=m
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_BLK_DEV_IDEDISK=m
+# CONFIG_IDEDISK_MULTI_MODE is not set
+CONFIG_BLK_DEV_IDECS=m
+CONFIG_BLK_DEV_IDECD=m
+# CONFIG_BLK_DEV_IDETAPE is not set
+# CONFIG_BLK_DEV_IDEFLOPPY is not set
+CONFIG_BLK_DEV_IDESCSI=m
+# CONFIG_IDE_TASK_IOCTL is not set
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=m
+CONFIG_BLK_DEV_IDEPCI=y
+CONFIG_IDEPCI_SHARE_IRQ=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+# CONFIG_BLK_DEV_GENERIC is not set
+# CONFIG_BLK_DEV_OPTI621 is not set
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
+CONFIG_IDEDMA_PCI_AUTO=y
+# CONFIG_IDEDMA_ONLYDISK is not set
+# CONFIG_BLK_DEV_AEC62XX is not set
+# CONFIG_BLK_DEV_ALI15X3 is not set
+# CONFIG_BLK_DEV_AMD74XX is not set
+CONFIG_BLK_DEV_CMD64X=m
+# CONFIG_BLK_DEV_TRIFLEX is not set
+# CONFIG_BLK_DEV_CY82C693 is not set
+# CONFIG_BLK_DEV_CS5520 is not set
+# CONFIG_BLK_DEV_CS5530 is not set
+# CONFIG_BLK_DEV_HPT34X is not set
+# CONFIG_BLK_DEV_HPT366 is not set
+# CONFIG_BLK_DEV_SC1200 is not set
+# CONFIG_BLK_DEV_PIIX is not set
+CONFIG_BLK_DEV_NS87415=m
+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
+# CONFIG_BLK_DEV_PDC202XX_NEW is not set
+# CONFIG_BLK_DEV_SVWKS is not set
+# CONFIG_BLK_DEV_SIIMAGE is not set
+# CONFIG_BLK_DEV_SLC90E66 is not set
+# CONFIG_BLK_DEV_TRM290 is not set
+# CONFIG_BLK_DEV_VIA82CXXX is not set
+# CONFIG_IDE_ARM is not set
+# CONFIG_IDE_CHIPSETS is not set
+CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDEDMA_IVB is not set
+CONFIG_IDEDMA_AUTO=y
+# CONFIG_BLK_DEV_HD is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI=y
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_SCH=m
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+# CONFIG_SCSI_MULTI_LUN is not set
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+
+#
+# SCSI Transport Attributes
+#
+CONFIG_SCSI_SPI_ATTRS=y
+CONFIG_SCSI_FC_ATTRS=m
+CONFIG_SCSI_ISCSI_ATTRS=m
+
+#
+# SCSI low-level drivers
+#
+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_3W_9XXX is not set
+# CONFIG_SCSI_7000FASST is not set
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_AHA1542 is not set
+# CONFIG_SCSI_AHA1740 is not set
+# CONFIG_SCSI_AACRAID is not set
+# CONFIG_SCSI_AIC7XXX is not set
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+# CONFIG_SCSI_AIC79XX is not set
+# CONFIG_SCSI_IN2000 is not set
+# CONFIG_MEGARAID_NEWGEN is not set
+CONFIG_MEGARAID_LEGACY=m
+# CONFIG_SCSI_SATA is not set
+# CONFIG_SCSI_BUSLOGIC is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_DTC3280 is not set
+# CONFIG_SCSI_EATA is not set
+# CONFIG_SCSI_FUTURE_DOMAIN is not set
+# CONFIG_SCSI_GDTH is not set
+# CONFIG_SCSI_GENERIC_NCR5380 is not set
+# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
+# CONFIG_SCSI_IPS is not set
+CONFIG_SCSI_INITIO=m
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_PPA is not set
+# CONFIG_SCSI_IMM is not set
+# CONFIG_SCSI_NCR53C406A is not set
+CONFIG_SCSI_LASI700=m
+CONFIG_53C700_LE_ON_BE=y
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
+# CONFIG_SCSI_IPR is not set
+CONFIG_SCSI_ZALON=m
+CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8
+CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32
+CONFIG_SCSI_NCR53C8XX_SYNC=20
+# CONFIG_SCSI_NCR53C8XX_PROFILE is not set
+# CONFIG_SCSI_PAS16 is not set
+# CONFIG_SCSI_PSI240I is not set
+# CONFIG_SCSI_QLOGIC_FAS is not set
+# CONFIG_SCSI_QLOGIC_FC is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+CONFIG_SCSI_LPFC=m
+# CONFIG_SCSI_SIM710 is not set
+# CONFIG_SCSI_SYM53C416 is not set
+# CONFIG_SCSI_DC395x is not set
+# CONFIG_SCSI_DC390T is not set
+# CONFIG_SCSI_T128 is not set
+# CONFIG_SCSI_U14_34F is not set
+# CONFIG_SCSI_DEBUG is not set
+
+#
+# PCMCIA SCSI adapter support
+#
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+
+#
+# Old CD-ROM drivers (not SCSI, not IDE)
+#
+# CONFIG_CD_NO_IDESCSI is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID5=m
+CONFIG_MD_RAID6=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+CONFIG_BLK_DEV_DM=m
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_EMC=m
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_IEEE1394 is not set
+
+#
+# I2O device support
+#
+CONFIG_I2O=m
+CONFIG_I2O_CONFIG=m
+CONFIG_I2O_BLOCK=m
+CONFIG_I2O_SCSI=m
+CONFIG_I2O_PROC=m
+
+#
+# Networking support
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_UNIX=y
+CONFIG_NET_KEY=m
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_PNP=y
+# CONFIG_IP_PNP_DHCP is not set
+CONFIG_IP_PNP_BOOTP=y
+# CONFIG_IP_PNP_RARP is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
+# CONFIG_NET_IPGRE_BROADCAST is not set
+# CONFIG_IP_MROUTE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+CONFIG_IP_TCPDIAG_IPV6=y
+
+#
+# IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_IPV6_TUNNEL=m
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_IP_NF_CONNTRACK=m
+CONFIG_IP_NF_CT_ACCT=y
+CONFIG_IP_NF_CONNTRACK_MARK=y
+CONFIG_IP_NF_CT_PROTO_SCTP=m
+CONFIG_IP_NF_FTP=m
+CONFIG_IP_NF_IRC=m
+CONFIG_IP_NF_TFTP=m
+CONFIG_IP_NF_AMANDA=m
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_LIMIT=m
+CONFIG_IP_NF_MATCH_IPRANGE=m
+CONFIG_IP_NF_MATCH_MAC=m
+CONFIG_IP_NF_MATCH_PKTTYPE=m
+CONFIG_IP_NF_MATCH_MARK=m
+CONFIG_IP_NF_MATCH_MULTIPORT=m
+CONFIG_IP_NF_MATCH_TOS=m
+CONFIG_IP_NF_MATCH_RECENT=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_DSCP=m
+CONFIG_IP_NF_MATCH_AH_ESP=m
+CONFIG_IP_NF_MATCH_LENGTH=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_MATCH_TCPMSS=m
+CONFIG_IP_NF_MATCH_HELPER=m
+CONFIG_IP_NF_MATCH_STATE=m
+CONFIG_IP_NF_MATCH_CONNTRACK=m
+CONFIG_IP_NF_MATCH_OWNER=m
+# CONFIG_IP_NF_MATCH_PHYSDEV is not set
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_REALM=m
+CONFIG_IP_NF_MATCH_SCTP=m
+CONFIG_IP_NF_MATCH_COMMENT=m
+CONFIG_IP_NF_MATCH_CONNMARK=m
+CONFIG_IP_NF_MATCH_HASHLIMIT=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_IP_NF_TARGET_TCPMSS=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_SAME=m
+CONFIG_IP_NF_NAT_SNMP_BASIC=m
+CONFIG_IP_NF_NAT_IRC=m
+CONFIG_IP_NF_NAT_FTP=m
+CONFIG_IP_NF_NAT_TFTP=m
+CONFIG_IP_NF_NAT_AMANDA=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_TOS=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_DSCP=m
+CONFIG_IP_NF_TARGET_MARK=m
+CONFIG_IP_NF_TARGET_CLASSIFY=m
+CONFIG_IP_NF_TARGET_CONNMARK=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_TARGET_NOTRACK=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration (EXPERIMENTAL)
+#
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_LIMIT=m
+CONFIG_IP6_NF_MATCH_MAC=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_MULTIPORT=m
+CONFIG_IP6_NF_MATCH_OWNER=m
+CONFIG_IP6_NF_MATCH_MARK=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_AHESP=m
+CONFIG_IP6_NF_MATCH_LENGTH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_PHYSDEV=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_TARGET_MARK=m
+CONFIG_IP6_NF_RAW=m
+
+#
+# Bridge: Netfilter Configuration
+#
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_ULOG=m
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+# CONFIG_ATM is not set
+CONFIG_BRIDGE=m
+CONFIG_VLAN_8021Q=m
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+
+#
+# QoS and/or fair queueing
+#
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CLK_JIFFIES=y
+# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
+# CONFIG_NET_SCH_CLK_CPU is not set
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_QOS=y
+CONFIG_NET_ESTIMATOR=y
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_CLS_U32_PERF=y
+CONFIG_NET_CLS_IND=y
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+CONFIG_NETPOLL=y
+# CONFIG_NETPOLL_RX is not set
+# CONFIG_NETPOLL_TRAP is not set
+CONFIG_NET_POLL_CONTROLLER=y
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+CONFIG_NETDEVICES=y
+CONFIG_DUMMY=m
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+CONFIG_TUN=m
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=m
+CONFIG_LASI_82596=m
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_EL1=m
+CONFIG_EL2=m
+CONFIG_ELPLUS=m
+CONFIG_EL16=m
+CONFIG_EL3=m
+# CONFIG_3C515 is not set
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+# CONFIG_LANCE is not set
+CONFIG_NET_VENDOR_SMC=y
+CONFIG_WD80x3=m
+CONFIG_ULTRA=m
+CONFIG_ULTRA32=m
+CONFIG_SMC9194=m
+CONFIG_NET_VENDOR_RACAL=y
+CONFIG_NI52=m
+# CONFIG_NI65 is not set
+
+#
+# Tulip family network device support
+#
+CONFIG_NET_TULIP=y
+# CONFIG_DE2104X is not set
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+# CONFIG_TULIP_NAPI is not set
+# CONFIG_DE4X5 is not set
+# CONFIG_WINBOND_840 is not set
+# CONFIG_DM9102 is not set
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_AT1700=m
+CONFIG_DEPCA=m
+CONFIG_HP100=m
+CONFIG_NET_ISA=y
+CONFIG_E2100=m
+CONFIG_EWRK3=m
+CONFIG_EEXPRESS=m
+CONFIG_EEXPRESS_PRO=m
+CONFIG_HPLAN_PLUS=m
+CONFIG_HPLAN=m
+CONFIG_LP486E=m
+CONFIG_ETH16I=m
+CONFIG_NE2000=m
+CONFIG_ZNET=m
+CONFIG_SEEQ8005=m
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=m
+CONFIG_AMD8111_ETH=m
+# CONFIG_AMD8111E_NAPI is not set
+CONFIG_ADAPTEC_STARFIRE=m
+# CONFIG_ADAPTEC_STARFIRE_NAPI is not set
+CONFIG_AC3200=m
+CONFIG_APRICOT=m
+CONFIG_B44=m
+CONFIG_FORCEDETH=m
+CONFIG_CS89x0=m
+CONFIG_EEPRO100=m
+CONFIG_E100=m
+CONFIG_LNE390=m
+CONFIG_FEALNX=m
+CONFIG_NATSEMI=m
+CONFIG_NE2K_PCI=m
+CONFIG_NE3210=m
+CONFIG_ES3210=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+# CONFIG_8139TOO_TUNE_TWISTER is not set
+# CONFIG_8139TOO_8129 is not set
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_SIS900=m
+CONFIG_EPIC100=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+# CONFIG_NET_POCKET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+CONFIG_DL2K=m
+CONFIG_E1000=m
+# CONFIG_E1000_NAPI is not set
+CONFIG_NS83820=m
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_R8169=m
+# CONFIG_R8169_NAPI is not set
+CONFIG_R8169_VLAN=y
+CONFIG_SK98LIN=m
+CONFIG_VIA_VELOCITY=m
+CONFIG_TIGON3=m
+CONFIG_BNX2=m
+
+#
+# Ethernet (10000 Mbit)
+#
+CONFIG_IXGB=m
+# CONFIG_IXGB_NAPI is not set
+CONFIG_S2IO=m
+# CONFIG_S2IO_NAPI is not set
+# CONFIG_2BUFF_MODE is not set
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+CONFIG_NET_RADIO=y
+
+#
+# Obsolete Wireless cards support (pre-802.11)
+#
+# CONFIG_STRIP is not set
+# CONFIG_WAVELAN is not set
+CONFIG_PCMCIA_WAVELAN=m
+CONFIG_PCMCIA_NETWAVE=m
+
+#
+# Wireless 802.11 Frequency Hopping cards support
+#
+CONFIG_PCMCIA_RAYCS=m
+
+#
+# Wireless 802.11b ISA/PCI cards support
+#
+CONFIG_AIRO=m
+CONFIG_HERMES=m
+# CONFIG_PLX_HERMES is not set
+# CONFIG_TMD_HERMES is not set
+# CONFIG_PCI_HERMES is not set
+# CONFIG_ATMEL is not set
+
+#
+# Wireless 802.11b Pcmcia/Cardbus cards support
+#
+CONFIG_PCMCIA_HERMES=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_WL3501=m
+
+#
+# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
+#
+CONFIG_PRISM54=m
+CONFIG_NET_WIRELESS=y
+
+#
+# PCMCIA network device support
+#
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_AXNET=m
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPPOE=m
+CONFIG_SLIP=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+# CONFIG_SLIP_MODE_SLIP6 is not set
+# CONFIG_NET_FC is not set
+CONFIG_SHAPER=m
+CONFIG_NETCONSOLE=m
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_TSDEV is not set
+CONFIG_INPUT_EVDEV=m
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_ATKBD_HP_KEYCODES=y
+# CONFIG_KEYBOARD_ATKBD_RDI_KEYCODES is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+CONFIG_KEYBOARD_HIL_OLD=m
+CONFIG_KEYBOARD_HIL=m
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_INPORT is not set
+# CONFIG_MOUSE_LOGIBM is not set
+# CONFIG_MOUSE_PC110PAD is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+CONFIG_MOUSE_HIL=m
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_UINPUT is not set
+CONFIG_HP_SDC_RTC=m
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+# CONFIG_SERIO_SERPORT is not set
+# CONFIG_SERIO_PARKBD is not set
+CONFIG_SERIO_GSCPS2=y
+CONFIG_HP_SDC=m
+CONFIG_HIL_MLC=m
+# CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+# CONFIG_SERIAL_8250_MULTIPORT is not set
+# CONFIG_SERIAL_8250_RSA is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_MUX=y
+CONFIG_SERIAL_MUX_CONSOLE=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_JSM=m
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+# CONFIG_PPDEV is not set
+# CONFIG_TIPAR is not set
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+CONFIG_GEN_RTC=y
+# CONFIG_GEN_RTC_X is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_DRM is not set
+
+#
+# PCMCIA character devices
+#
+CONFIG_SYNCLINK_CS=m
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+CONFIG_TCG_TPM=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_ATMEL=m
+
+#
+# I2C support
+#
+CONFIG_I2C=m
+CONFIG_I2C_CHARDEV=m
+
+#
+# I2C Algorithms
+#
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCF=m
+CONFIG_I2C_ALGOPCA=m
+
+#
+# I2C Hardware Bus support
+#
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_I810=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_ISA=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_PROSAVAGE=m
+CONFIG_I2C_SAVAGE4=m
+CONFIG_SCx200_ACB=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_STUB=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+CONFIG_I2C_VOODOO3=m
+CONFIG_I2C_PCA_ISA=m
+
+#
+# Hardware Sensors Chip support
+#
+CONFIG_I2C_SENSOR=m
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_FSCHER=m
+CONFIG_SENSORS_FSCPOS=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83627HF=m
+
+#
+# Other I2C Chip support
+#
+CONFIG_SENSORS_DS1337=m
+CONFIG_SENSORS_EEPROM=m
+CONFIG_SENSORS_PCF8574=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_SENSORS_RTC8564=m
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
+#
+# Misc devices
+#
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+# CONFIG_DVB is not set
+
+#
+# Graphics support
+#
+CONFIG_FB=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+CONFIG_FB_SOFT_CURSOR=y
+# CONFIG_FB_MACMODES is not set
+CONFIG_FB_MODE_HELPERS=y
+# CONFIG_FB_TILEBLITTING is not set
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+CONFIG_FB_STI=y
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_RADEON_OLD is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_VIRTUAL is not set
+
+#
+# Console display driver support
+#
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_DUMMY_CONSOLE_COLUMNS=160
+CONFIG_DUMMY_CONSOLE_ROWS=64
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_STI_CONSOLE=y
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+
+#
+# Logo configuration
+#
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_LOGO_PARISC_CLUT224=y
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Sound
+#
+CONFIG_SOUND=m
+
+#
+# Advanced Linux Sound Architecture
+#
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_SEQUENCER=m
+# CONFIG_SND_SEQ_DUMMY is not set
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_SEQUENCER_OSS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+
+#
+# Generic devices
+#
+CONFIG_SND_DUMMY=m
+# CONFIG_SND_VIRMIDI is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+
+#
+# ISA devices
+#
+# CONFIG_SND_AD1848 is not set
+# CONFIG_SND_CS4231 is not set
+# CONFIG_SND_CS4232 is not set
+# CONFIG_SND_CS4236 is not set
+# CONFIG_SND_ES1688 is not set
+# CONFIG_SND_ES18XX is not set
+# CONFIG_SND_GUSCLASSIC is not set
+# CONFIG_SND_GUSEXTREME is not set
+# CONFIG_SND_GUSMAX is not set
+# CONFIG_SND_INTERWAVE is not set
+# CONFIG_SND_INTERWAVE_STB is not set
+# CONFIG_SND_OPTI92X_AD1848 is not set
+# CONFIG_SND_OPTI92X_CS4231 is not set
+# CONFIG_SND_OPTI93X is not set
+# CONFIG_SND_SB8 is not set
+# CONFIG_SND_SB16 is not set
+# CONFIG_SND_SBAWE is not set
+# CONFIG_SND_WAVEFRONT is not set
+# CONFIG_SND_CMI8330 is not set
+# CONFIG_SND_OPL3SA2 is not set
+# CONFIG_SND_SGALAXY is not set
+# CONFIG_SND_SSCAPE is not set
+
+#
+# PCI devices
+#
+CONFIG_SND_AC97_CODEC=m
+# CONFIG_SND_ALI5451 is not set
+CONFIG_SND_AD1889=m
+# CONFIG_SND_AD1889_OPL3 is not set
+# CONFIG_SND_ATIIXP is not set
+# CONFIG_SND_ATIIXP_MODEM is not set
+# CONFIG_SND_AU8810 is not set
+# CONFIG_SND_AU8820 is not set
+# CONFIG_SND_AU8830 is not set
+# CONFIG_SND_AZT3328 is not set
+# CONFIG_SND_BT87X is not set
+# CONFIG_SND_CS46XX is not set
+# CONFIG_SND_CS4281 is not set
+# CONFIG_SND_EMU10K1 is not set
+# CONFIG_SND_EMU10K1X is not set
+# CONFIG_SND_CA0106 is not set
+# CONFIG_SND_KORG1212 is not set
+# CONFIG_SND_MIXART is not set
+# CONFIG_SND_NM256 is not set
+# CONFIG_SND_RME32 is not set
+# CONFIG_SND_RME96 is not set
+# CONFIG_SND_RME9652 is not set
+# CONFIG_SND_HDSP is not set
+# CONFIG_SND_TRIDENT is not set
+# CONFIG_SND_YMFPCI is not set
+# CONFIG_SND_ALS4000 is not set
+# CONFIG_SND_CMIPCI is not set
+# CONFIG_SND_ENS1370 is not set
+# CONFIG_SND_ENS1371 is not set
+# CONFIG_SND_ES1938 is not set
+# CONFIG_SND_ES1968 is not set
+# CONFIG_SND_MAESTRO3 is not set
+# CONFIG_SND_FM801 is not set
+# CONFIG_SND_ICE1712 is not set
+# CONFIG_SND_ICE1724 is not set
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
+# CONFIG_SND_SONICVIBES is not set
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
+# CONFIG_SND_VX222 is not set
+# CONFIG_SND_HDA_INTEL is not set
+
+#
+# USB devices
+#
+# CONFIG_SND_USB_AUDIO is not set
+
+#
+# PCMCIA devices
+#
+# CONFIG_SND_VXPOCKET is not set
+# CONFIG_SND_VXP440 is not set
+# CONFIG_SND_PDAUDIOCF is not set
+
+#
+# GSC devices
+#
+CONFIG_SND_HARMONY=m
+
+#
+# Open Sound System
+#
+# CONFIG_SOUND_PRIME is not set
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB=m
+CONFIG_USB_DEBUG=y
+
+#
+# Miscellaneous USB options
+#
+# CONFIG_USB_DEVICEFS is not set
+# CONFIG_USB_BANDWIDTH is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_EHCI_HCD=m
+# CONFIG_USB_EHCI_SPLIT_ISO is not set
+# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_OHCI_BIG_ENDIAN is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_UHCI_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_AUDIO is not set
+# CONFIG_USB_BLUETOOTH_TTY is not set
+# CONFIG_USB_MIDI is not set
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_DPCM is not set
+# CONFIG_USB_STORAGE_USBAT is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=m
+CONFIG_USB_HIDINPUT=y
+# CONFIG_HID_FF is not set
+CONFIG_USB_HIDDEV=y
+
+#
+# USB HID Boot Protocol drivers
+#
+CONFIG_USB_KBD=m
+CONFIG_USB_MOUSE=m
+# CONFIG_USB_AIPTEK is not set
+# CONFIG_USB_WACOM is not set
+# CONFIG_USB_KBTAB is not set
+# CONFIG_USB_POWERMATE is not set
+# CONFIG_USB_MTOUCH is not set
+# CONFIG_USB_EGALAX is not set
+# CONFIG_USB_XPAD is not set
+# CONFIG_USB_ATI_REMOTE is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+
+#
+# USB Multimedia devices
+#
+
+#
+# Video4Linux support is needed for USB Multimedia device support
+#
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET is not set
+# CONFIG_USB_ZD1201 is not set
+CONFIG_USB_MON=m
+
+#
+# USB port drivers
+#
+# CONFIG_USB_USS720 is not set
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_AUERSWALD is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_PHIDGETKIT is not set
+# CONFIG_USB_PHIDGETSERVO is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_SISUSBVGA is not set
+
+#
+# USB ATM/DSL drivers
+#
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# MMC/SD Card support
+#
+# CONFIG_MMC is not set
+
+#
+# InfiniBand support
+#
+CONFIG_INFINIBAND=m
+CONFIG_INFINIBAND_MTHCA=m
+# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
+CONFIG_INFINIBAND_IPOIB=m
+# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+CONFIG_EXT3_FS=m
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_JBD=m
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+CONFIG_FS_POSIX_ACL=y
+
+#
+# XFS support
+#
+CONFIG_XFS_FS=m
+CONFIG_XFS_EXPORT=y
+# CONFIG_XFS_RT is not set
+# CONFIG_XFS_QUOTA is not set
+# CONFIG_XFS_SECURITY is not set
+# CONFIG_XFS_POSIX_ACL is not set
+CONFIG_MINIX_FS=m
+CONFIG_ROMFS_FS=m
+CONFIG_QUOTA=y
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+CONFIG_DNOTIFY=y
+CONFIG_AUTOFS_FS=m
+CONFIG_AUTOFS4_FS=m
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_ZISOFS_FS=m
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+# CONFIG_NTFS_RW is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_SYSFS=y
+CONFIG_DEVFS_FS=y
+# CONFIG_DEVFS_MOUNT is not set
+# CONFIG_DEVFS_DEBUG is not set
+# CONFIG_DEVPTS_FS_XATTR is not set
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_XATTR is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_ASFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_CRAMFS=y
+CONFIG_VXFS_FS=m
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_V4=y
+CONFIG_NFS_DIRECTIO=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V4=y
+CONFIG_NFSD_TCP=y
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=m
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+CONFIG_RPCSEC_GSS_KRB5=y
+CONFIG_RPCSEC_GSS_SPKM3=m
+CONFIG_SMB_FS=m
+CONFIG_SMB_NLS_DEFAULT=y
+CONFIG_SMB_NLS_REMOTE="cp437"
+CONFIG_CIFS=m
+# CONFIG_CIFS_STATS is not set
+# CONFIG_CIFS_XATTR is not set
+# CONFIG_CIFS_EXPERIMENTAL is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=m
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=m
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+CONFIG_NLS_UTF8=m
+
+#
+# Profiling support
+#
+CONFIG_PROFILING=y
+CONFIG_OPROFILE=m
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_DEBUG_KERNEL=y
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_LOG_BUF_SHIFT=15
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_DEBUG_SLAB is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_IOREMAP is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_DEBUG_RWLOCK is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+CONFIG_SECURITY=y
+CONFIG_SECURITY_NETWORK=y
+CONFIG_SECURITY_CAPABILITIES=y
+# CONFIG_SECURITY_ROOTPLUG is not set
+CONFIG_SECURITY_SECLVL=m
+# CONFIG_SECURITY_SELINUX is not set
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_WP512=m
+# CONFIG_CRYPTO_TGR192 is not set
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Hardware crypto devices
+#
+
+#
+# Library routines
+#
+CONFIG_CRC_CCITT=m
+CONFIG_CRC32=y
+CONFIG_LIBCRC32C=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m

Added: trunk/kernel/source/linux-2.6/debian/arch/hppa/defines
===================================================================
--- trunk/kernel/source/linux-2.6/debian/arch/hppa/defines	2005-08-09 02:25:01 UTC (rev 3769)
+++ trunk/kernel/source/linux-2.6/debian/arch/hppa/defines	2005-08-09 03:54:02 UTC (rev 3770)
@@ -0,0 +1,15 @@
+[DEFAULT]
+suggests: palo
+
+[32]
+class: 32-bit PA-RISC
+
+[32-smp]
+class: multi-processor 32-bit PA-RISC
+
+[64]
+class: 64-bit PA-RISC
+
+[64-smp]
+class: multi-processor 64-bit PA-RISC
+

Added: trunk/kernel/source/linux-2.6/debian/patches-arch/hppa.diff
===================================================================
--- trunk/kernel/source/linux-2.6/debian/patches-arch/hppa.diff	2005-08-09 02:25:01 UTC (rev 3769)
+++ trunk/kernel/source/linux-2.6/debian/patches-arch/hppa.diff	2005-08-09 03:54:02 UTC (rev 3770)
@@ -0,0 +1,10749 @@
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/CREDITS CVS2_6_12_PA2/CREDITS
+--- LINUS_2_6_12/CREDITS	2005-06-17 21:21:44.000000000 -0600
++++ CVS2_6_12_PA2/CREDITS	2005-06-17 21:32:28.000000000 -0600
+@@ -611,8 +611,7 @@
+ N: Randolph Chung
+ E: tausq at debian.org
+ D: Linux/PA-RISC hacker
+-S: Los Altos, CA 94022
+-S: USA
++S: Hong Kong
+ 
+ N: Juan Jose Ciarlante
+ W: http://juanjox.kernelnotes.org/
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/Documentation/parisc/todo CVS2_6_12_PA2/Documentation/parisc/todo
+--- LINUS_2_6_12/Documentation/parisc/todo	1969-12-31 17:00:00.000000000 -0700
++++ CVS2_6_12_PA2/Documentation/parisc/todo	2005-04-27 00:45:20.000000000 -0600
+@@ -0,0 +1,82 @@
++Status 2005-03-07 :
++-------------------
++ - Merged to 2.6.11
++
++Todo:
++-----
++
++ - Review and eliminate all warnings for io accesses with an eye to
++   turning on ioremap
++ - 2005-02-04 (Carlos) Review the gettimeofday
++   implementation, possibly use a light-weight-syscall and
++   rely on cr16 and cpu speed for more accurate timing?
++   This requires adding some backwards compatibility code in
++   userspace since the LWS might not be available on the
++   booted kernel. Detecting LWS is a problem.
++ - PREEMPT support
++ - CPU hotplug: we cannot bring up cpus after init, and we don't know if we can
++   shutdown cpus
++ - task_struct/thread_info split -- task_struct should not be visible in
++   entry.S, we need to move some items into thread_info -- this includes
++   pt_regs and maybe some of the flags (ptrace, etc)
++ - flush_tlb_kernel_range is horribly inefficient. this has been merged
++   with the userspace tlb flush, but it has a magic constant that needs
++   tuning
++ - Superdome support
++ - our PDC early debug console hacks need to be cleaned up somehow
++ - CPU IRQ affinity (willy)
++ - Allow more than BITS_PER_LONG cpu interrupts to be allocated (willy)
++ - 64-bit userspace (Leandro)
++ - syscall signal return path needs work, we don't loop on signal
++   delivery like other archs.
++	= 2005-02-04 (Carlos) This entry should be more specific,
++	we recently fixed do_signal such that it always
++	loops forcing the signal. If this was the bug then it was
++	fixed.
++
++
++Drivers
++-------
++
++ - write Lasi floppy driver
++ - write Suckyio floppy driver
++ - write spifi driver (rbrad)
++ - modify ncr53c8xx driver for Outfield (735 & 755)
++ - write GSC FDDI driver
++ - write Timi ASIC (74x) support
++ - EISA DMA support
++
++
++Started and in progress:
++------------------------
++ - 2004-08-16 (Carlos)
++   64-bit binutils needs to be fixed to get multiple stub
++   section support.
++ - port hil_kbd.c to new input layer
++ - port hil_ptr.c to new input layer
++
++
++CONFIG options without help:
++-----------------------------
++ - REVIEW THESE ENTRIES!
++
++ _USB_OHCI_HCD (add parisc info?)
++ _HP_SDC_RTC
++ _HIL_MLC
++ _HIL_KBD (to improve)
++ _HIL_PTR (to improve)
++
++ 
++Review all the todo entries below!
++----------------------------------
++
++ - the fix for do_fork needs checking
++ - ns87415 dma doesn't work reliably on suckyio-systems
++ - (ab)use kmap/kunmap on 64-bit to eliminate flush_dcache calls.
++ - cp_new_stat32 for sys_parisc32.c is inefficient; maybe it's better
++   to fill in a tmp stat32 and just do copy_to_user in one go at the end?
++ - investigate not putting in extable entries for put_kernel_asm; will
++   probably reduce kernel size
++ - fix HIL problem: ksoftirqd/0 eats 56% cpu (kernel 2.4 & kernel 2.6)
++ - NPTL kernel support (CLONE_*TID flags need to be correctly handled by 
++   sys_clone() and friends)
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/MAINTAINERS CVS2_6_12_PA2/MAINTAINERS
+--- LINUS_2_6_12/MAINTAINERS	2005-06-17 21:21:44.000000000 -0600
++++ CVS2_6_12_PA2/MAINTAINERS	2005-06-17 21:32:28.000000000 -0600
+@@ -191,6 +191,13 @@
+ W:	http://linux.thorsten-knabe.de
+ S:	Maintained
+ 
++AD1889 SOUND DRIVER
++P:	Kyle McMartin
++M:	kyle at parisc-linux.org
++W:	http://www.parisc-linux.org/~kyle/ad1889/
++L:	parisc-linux at lists.parisc-linux.org
++S:	Maintained
++
+ ADM1025 HARDWARE MONITOR DRIVER
+ P:	Jean Delvare
+ M:	khali at linux-fr.org
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/arch/ia64/ia32/ia32_signal.c CVS2_6_12_PA2/arch/ia64/ia32/ia32_signal.c
+--- LINUS_2_6_12/arch/ia64/ia32/ia32_signal.c	2005-06-17 21:21:49.000000000 -0600
++++ CVS2_6_12_PA2/arch/ia64/ia32/ia32_signal.c	2005-05-08 19:59:59.000000000 -0600
+@@ -24,6 +24,7 @@
+ #include <linux/unistd.h>
+ #include <linux/wait.h>
+ #include <linux/compat.h>
++#include <linux/compat_siginfo.h>
+ 
+ #include <asm/intrinsics.h>
+ #include <asm/uaccess.h>
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/arch/ia64/ia32/ia32priv.h CVS2_6_12_PA2/arch/ia64/ia32/ia32priv.h
+--- LINUS_2_6_12/arch/ia64/ia32/ia32priv.h	2005-06-17 21:21:49.000000000 -0600
++++ CVS2_6_12_PA2/arch/ia64/ia32/ia32priv.h	2005-04-12 14:38:26.000000000 -0600
+@@ -225,58 +225,6 @@
+ 	unsigned int	st_ino_hi;
+ };
+ 
+-typedef struct compat_siginfo {
+-	int si_signo;
+-	int si_errno;
+-	int si_code;
+-
+-	union {
+-		int _pad[((128/sizeof(int)) - 3)];
+-
+-		/* kill() */
+-		struct {
+-			unsigned int _pid;	/* sender's pid */
+-			unsigned int _uid;	/* sender's uid */
+-		} _kill;
+-
+-		/* POSIX.1b timers */
+-		struct {
+-			timer_t _tid;		/* timer id */
+-			int _overrun;		/* overrun count */
+-			char _pad[sizeof(unsigned int) - sizeof(int)];
+-			compat_sigval_t _sigval;	/* same as below */
+-			int _sys_private;       /* not to be passed to user */
+-		} _timer;
+-
+-		/* POSIX.1b signals */
+-		struct {
+-			unsigned int _pid;	/* sender's pid */
+-			unsigned int _uid;	/* sender's uid */
+-			compat_sigval_t _sigval;
+-		} _rt;
+-
+-		/* SIGCHLD */
+-		struct {
+-			unsigned int _pid;	/* which child */
+-			unsigned int _uid;	/* sender's uid */
+-			int _status;		/* exit code */
+-			compat_clock_t _utime;
+-			compat_clock_t _stime;
+-		} _sigchld;
+-
+-		/* SIGILL, SIGFPE, SIGSEGV, SIGBUS */
+-		struct {
+-			unsigned int _addr;	/* faulting insn/memory ref. */
+-		} _sigfault;
+-
+-		/* SIGPOLL */
+-		struct {
+-			int _band;	/* POLL_IN, POLL_OUT, POLL_MSG */
+-			int _fd;
+-		} _sigpoll;
+-	} _sifields;
+-} compat_siginfo_t;
+-
+ struct old_linux32_dirent {
+ 	u32	d_ino;
+ 	u32	d_offset;
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/arch/parisc/Kconfig CVS2_6_12_PA2/arch/parisc/Kconfig
+--- LINUS_2_6_12/arch/parisc/Kconfig	2005-06-17 21:21:52.000000000 -0600
++++ CVS2_6_12_PA2/arch/parisc/Kconfig	2005-05-08 20:00:05.000000000 -0600
+@@ -150,7 +150,7 @@
+ 
+ config DISCONTIGMEM
+ 	bool "Discontiguous memory support (EXPERIMENTAL)"
+-	depends on EXPERIMENTAL
++	depends on 64BIT && EXPERIMENTAL
+ 	help
+ 	  Say Y to support efficient handling of discontiguous physical memory,
+ 	  for architectures which are either NUMA (Non-Uniform Memory Access)
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/arch/parisc/Makefile CVS2_6_12_PA2/arch/parisc/Makefile
+--- LINUS_2_6_12/arch/parisc/Makefile	2005-06-17 21:21:52.000000000 -0600
++++ CVS2_6_12_PA2/arch/parisc/Makefile	2005-04-05 08:15:46.000000000 -0600
+@@ -34,6 +34,11 @@
+ 
+ OBJCOPY_FLAGS =-O binary -R .note -R .comment -S
+ 
++GCC_VERSION     := $(call cc-version)
++ifneq ($(shell if [ $(GCC_VERSION) -lt 0303 ] ; then echo "bad"; fi ;),)
++$(error Sorry, your compiler is too old ($(GCC_VERSION)).  GCC v3.3 or above is required.)
++endif
++
+ cflags-y	:= -pipe
+ 
+ # These flags should be implied by an hppa-linux configuration, but they
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/arch/parisc/configs/712_defconfig CVS2_6_12_PA2/arch/parisc/configs/712_defconfig
+--- LINUS_2_6_12/arch/parisc/configs/712_defconfig	2005-06-17 21:21:52.000000000 -0600
++++ CVS2_6_12_PA2/arch/parisc/configs/712_defconfig	2005-06-03 13:06:36.000000000 -0600
+@@ -1,12 +1,16 @@
+ #
+ # Automatically generated make config: don't edit
+-# Linux kernel version: 2.6.10-pa5
+-# Wed Jan  5 13:20:32 2005
++# Linux kernel version: 2.6.12-rc4-pa2
++# Wed May 11 23:02:52 2005
+ #
+ CONFIG_PARISC=y
+ CONFIG_MMU=y
+ CONFIG_STACK_GROWSUP=y
+ CONFIG_RWSEM_GENERIC_SPINLOCK=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_ISA_DMA_API=y
+ 
+ #
+ # Code maturity level options
+@@ -15,6 +19,7 @@
+ # CONFIG_CLEAN_COMPILE is not set
+ CONFIG_BROKEN=y
+ CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
+ 
+ #
+ # General setup
+@@ -26,7 +31,6 @@
+ # CONFIG_BSD_PROCESS_ACCT is not set
+ CONFIG_SYSCTL=y
+ # CONFIG_AUDIT is not set
+-CONFIG_LOG_BUF_SHIFT=16
+ CONFIG_HOTPLUG=y
+ CONFIG_KOBJECT_UEVENT=y
+ CONFIG_IKCONFIG=y
+@@ -35,15 +39,18 @@
+ CONFIG_KALLSYMS=y
+ CONFIG_KALLSYMS_ALL=y
+ # CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_BASE_FULL=y
+ CONFIG_FUTEX=y
+ CONFIG_EPOLL=y
+-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+ CONFIG_SHMEM=y
+ CONFIG_CC_ALIGN_FUNCTIONS=0
+ CONFIG_CC_ALIGN_LABELS=0
+ CONFIG_CC_ALIGN_LOOPS=0
+ CONFIG_CC_ALIGN_JUMPS=0
+ # CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
+ 
+ #
+ # Loadable module support
+@@ -65,9 +72,7 @@
+ # CONFIG_PA7300LC is not set
+ # CONFIG_PA8X00 is not set
+ CONFIG_PA11=y
+-# CONFIG_64BIT is not set
+ # CONFIG_SMP is not set
+-# CONFIG_DISCONTIGMEM is not set
+ # CONFIG_PREEMPT is not set
+ # CONFIG_HPUX is not set
+ 
+@@ -81,8 +86,6 @@
+ # CONFIG_GSC_WAX is not set
+ # CONFIG_EISA is not set
+ # CONFIG_PCI is not set
+-CONFIG_CHASSIS_LCD_LED=y
+-# CONFIG_PDC_CHASSIS is not set
+ 
+ #
+ # PCCARD (PCMCIA/CardBus) support
+@@ -90,12 +93,15 @@
+ # CONFIG_PCCARD is not set
+ 
+ #
+-# PC-card bridges
++# PCI Hotplug Support
+ #
+ 
+ #
+-# PCI Hotplug Support
++# PA-RISC specific drivers
+ #
++CONFIG_CHASSIS_LCD_LED=y
++# CONFIG_PDC_CHASSIS is not set
++CONFIG_PDC_STABLE=y
+ 
+ #
+ # Executable file formats
+@@ -125,11 +131,9 @@
+ #
+ CONFIG_PARPORT=y
+ CONFIG_PARPORT_PC=m
+-CONFIG_PARPORT_PC_CML1=m
+ # CONFIG_PARPORT_PC_FIFO is not set
+ # CONFIG_PARPORT_PC_SUPERIO is not set
+ CONFIG_PARPORT_GSC=y
+-# CONFIG_PARPORT_OTHER is not set
+ # CONFIG_PARPORT_1284 is not set
+ 
+ #
+@@ -141,6 +145,7 @@
+ #
+ # CONFIG_BLK_DEV_FD is not set
+ # CONFIG_PARIDE is not set
++# CONFIG_BLK_DEV_COW_COMMON is not set
+ CONFIG_BLK_DEV_LOOP=y
+ CONFIG_BLK_DEV_CRYPTOLOOP=y
+ # CONFIG_BLK_DEV_NBD is not set
+@@ -158,6 +163,7 @@
+ CONFIG_IOSCHED_AS=y
+ CONFIG_IOSCHED_DEADLINE=y
+ CONFIG_IOSCHED_CFQ=y
++CONFIG_ATA_OVER_ETH=m
+ 
+ #
+ # ATA/ATAPI/MFM/RLL support
+@@ -192,6 +198,7 @@
+ #
+ CONFIG_SCSI_SPI_ATTRS=y
+ # CONFIG_SCSI_FC_ATTRS is not set
++CONFIG_SCSI_ISCSI_ATTRS=m
+ 
+ #
+ # SCSI low-level drivers
+@@ -200,7 +207,6 @@
+ # CONFIG_SCSI_PPA is not set
+ # CONFIG_SCSI_IMM is not set
+ CONFIG_SCSI_LASI700=y
+-CONFIG_53C700_MEM_MAPPED=y
+ CONFIG_53C700_LE_ON_BE=y
+ # CONFIG_SCSI_ZALON is not set
+ CONFIG_SCSI_DEBUG=m
+@@ -243,7 +249,6 @@
+ #
+ CONFIG_PACKET=y
+ CONFIG_PACKET_MMAP=y
+-CONFIG_NETLINK_DEV=y
+ CONFIG_UNIX=y
+ CONFIG_NET_KEY=m
+ CONFIG_INET=y
+@@ -321,7 +326,6 @@
+ CONFIG_IP_NF_TARGET_REDIRECT=m
+ CONFIG_IP_NF_TARGET_NETMAP=m
+ CONFIG_IP_NF_TARGET_SAME=m
+-# CONFIG_IP_NF_NAT_LOCAL is not set
+ CONFIG_IP_NF_NAT_SNMP_BASIC=m
+ CONFIG_IP_NF_NAT_IRC=m
+ CONFIG_IP_NF_NAT_FTP=m
+@@ -340,8 +344,6 @@
+ CONFIG_IP_NF_ARPTABLES=m
+ CONFIG_IP_NF_ARPFILTER=m
+ CONFIG_IP_NF_ARP_MANGLE=m
+-# CONFIG_IP_NF_COMPAT_IPCHAINS is not set
+-# CONFIG_IP_NF_COMPAT_IPFWADM is not set
+ CONFIG_XFRM=y
+ CONFIG_XFRM_USER=m
+ 
+@@ -383,7 +385,6 @@
+ CONFIG_BONDING=m
+ # CONFIG_EQUALIZER is not set
+ CONFIG_TUN=m
+-# CONFIG_ETHERTAP is not set
+ 
+ #
+ # Ethernet (10 or 100Mbit)
+@@ -460,19 +461,6 @@
+ # CONFIG_INPUT_EVBUG is not set
+ 
+ #
+-# Input I/O drivers
+-#
+-# CONFIG_GAMEPORT is not set
+-CONFIG_SOUND_GAMEPORT=y
+-CONFIG_SERIO=y
+-CONFIG_SERIO_SERPORT=y
+-# CONFIG_SERIO_PARKBD is not set
+-CONFIG_SERIO_GSCPS2=y
+-CONFIG_HP_SDC=y
+-CONFIG_HIL_MLC=y
+-# CONFIG_SERIO_RAW is not set
+-
+-#
+ # Input Device Drivers
+ #
+ CONFIG_INPUT_KEYBOARD=y
+@@ -483,6 +471,7 @@
+ # CONFIG_KEYBOARD_LKKBD is not set
+ # CONFIG_KEYBOARD_XTKBD is not set
+ # CONFIG_KEYBOARD_NEWTON is not set
++CONFIG_KEYBOARD_HIL_OLD=y
+ # CONFIG_KEYBOARD_HIL is not set
+ CONFIG_INPUT_MOUSE=y
+ CONFIG_MOUSE_PS2=y
+@@ -494,6 +483,20 @@
+ # CONFIG_INPUT_MISC is not set
+ 
+ #
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++CONFIG_SERIO_SERPORT=y
++# CONFIG_SERIO_PARKBD is not set
++CONFIG_SERIO_GSCPS2=y
++CONFIG_HP_SDC=y
++CONFIG_HIL_MLC=y
++CONFIG_SERIO_LIBPS2=y
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++CONFIG_SOUND_GAMEPORT=y
++
++#
+ # Character devices
+ #
+ CONFIG_VT=y
+@@ -546,12 +549,15 @@
+ #
+ # Ftape, the floppy tape device driver
+ #
+-# CONFIG_AGP is not set
+ # CONFIG_DRM is not set
+ CONFIG_RAW_DRIVER=y
+ CONFIG_MAX_RAW_DEVS=256
+ 
+ #
++# TPM devices
++#
++
++#
+ # I2C support
+ #
+ # CONFIG_I2C is not set
+@@ -579,19 +585,25 @@
+ # Graphics support
+ #
+ CONFIG_FB=y
++CONFIG_FB_CFB_FILLRECT=y
++CONFIG_FB_CFB_COPYAREA=y
++CONFIG_FB_CFB_IMAGEBLIT=y
++CONFIG_FB_SOFT_CURSOR=y
++# CONFIG_FB_MACMODES is not set
+ CONFIG_FB_MODE_HELPERS=y
+ CONFIG_FB_TILEBLITTING=y
+ CONFIG_FB_STI=y
++# CONFIG_FB_S1D13XXX is not set
+ # CONFIG_FB_VIRTUAL is not set
+ 
+ #
+ # Console display driver support
+ #
+-CONFIG_STI_CONSOLE=y
++CONFIG_DUMMY_CONSOLE=y
+ CONFIG_DUMMY_CONSOLE_COLUMNS=128
+ CONFIG_DUMMY_CONSOLE_ROWS=48
+-CONFIG_DUMMY_CONSOLE=y
+ CONFIG_FRAMEBUFFER_CONSOLE=y
++CONFIG_STI_CONSOLE=y
+ CONFIG_FONTS=y
+ CONFIG_FONT_8x8=y
+ CONFIG_FONT_8x16=y
+@@ -610,6 +622,7 @@
+ # CONFIG_LOGO_LINUX_VGA16 is not set
+ # CONFIG_LOGO_LINUX_CLUT224 is not set
+ CONFIG_LOGO_PARISC_CLUT224=y
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+ 
+ #
+ # Sound
+@@ -657,10 +670,6 @@
+ # CONFIG_USB_ARCH_HAS_OHCI is not set
+ 
+ #
+-# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
+-#
+-
+-#
+ # USB Gadget Support
+ #
+ # CONFIG_USB_GADGET is not set
+@@ -671,6 +680,11 @@
+ # CONFIG_MMC is not set
+ 
+ #
++# InfiniBand support
++#
++# CONFIG_INFINIBAND is not set
++
++#
+ # File systems
+ #
+ CONFIG_EXT2_FS=y
+@@ -682,10 +696,16 @@
+ # CONFIG_REISERFS_FS is not set
+ CONFIG_JFS_FS=m
+ # CONFIG_JFS_POSIX_ACL is not set
++# CONFIG_JFS_SECURITY is not set
+ # CONFIG_JFS_DEBUG is not set
+ # CONFIG_JFS_STATISTICS is not set
+ CONFIG_FS_POSIX_ACL=y
++
++#
++# XFS support
++#
+ CONFIG_XFS_FS=m
++CONFIG_XFS_EXPORT=y
+ # CONFIG_XFS_RT is not set
+ # CONFIG_XFS_QUOTA is not set
+ # CONFIG_XFS_SECURITY is not set
+@@ -838,13 +858,18 @@
+ #
+ # Kernel hacking
+ #
++# CONFIG_PRINTK_TIME is not set
+ CONFIG_DEBUG_KERNEL=y
+ CONFIG_MAGIC_SYSRQ=y
++CONFIG_LOG_BUF_SHIFT=16
+ # CONFIG_SCHEDSTATS is not set
+ # CONFIG_DEBUG_SLAB is not set
+ # CONFIG_DEBUG_SPINLOCK is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+ # CONFIG_DEBUG_KOBJECT is not set
+ # CONFIG_DEBUG_INFO is not set
++# CONFIG_DEBUG_IOREMAP is not set
++# CONFIG_DEBUG_FS is not set
+ 
+ #
+ # Security options
+@@ -865,6 +890,7 @@
+ CONFIG_CRYPTO_SHA256=m
+ CONFIG_CRYPTO_SHA512=m
+ CONFIG_CRYPTO_WP512=m
++CONFIG_CRYPTO_TGR192=m
+ CONFIG_CRYPTO_DES=y
+ CONFIG_CRYPTO_BLOWFISH=m
+ CONFIG_CRYPTO_TWOFISH=m
+@@ -882,6 +908,10 @@
+ CONFIG_CRYPTO_TEST=m
+ 
+ #
++# Hardware crypto devices
++#
++
++#
+ # Library routines
+ #
+ CONFIG_CRC_CCITT=m
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/arch/parisc/configs/a500_defconfig CVS2_6_12_PA2/arch/parisc/configs/a500_defconfig
+--- LINUS_2_6_12/arch/parisc/configs/a500_defconfig	2005-06-17 21:21:52.000000000 -0600
++++ CVS2_6_12_PA2/arch/parisc/configs/a500_defconfig	2005-06-03 13:06:36.000000000 -0600
+@@ -1,7 +1,7 @@
+ #
+ # Automatically generated make config: don't edit
+-# Linux kernel version: 2.6.11-rc4-pa1
+-# Wed Feb 16 11:32:49 2005
++# Linux kernel version: 2.6.12-rc4-pa2
++# Wed May 11 23:04:06 2005
+ #
+ CONFIG_PARISC=y
+ CONFIG_MMU=y
+@@ -10,6 +10,7 @@
+ CONFIG_GENERIC_CALIBRATE_DELAY=y
+ CONFIG_GENERIC_HARDIRQS=y
+ CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_ISA_DMA_API=y
+ 
+ #
+ # Code maturity level options
+@@ -19,6 +20,7 @@
+ CONFIG_BROKEN=y
+ CONFIG_BROKEN_ON_SMP=y
+ CONFIG_LOCK_KERNEL=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
+ 
+ #
+ # General setup
+@@ -30,15 +32,18 @@
+ # CONFIG_BSD_PROCESS_ACCT is not set
+ CONFIG_SYSCTL=y
+ # CONFIG_AUDIT is not set
+-CONFIG_LOG_BUF_SHIFT=16
+ CONFIG_HOTPLUG=y
+ CONFIG_KOBJECT_UEVENT=y
+ CONFIG_IKCONFIG=y
+ CONFIG_IKCONFIG_PROC=y
++# CONFIG_CPUSETS is not set
+ CONFIG_EMBEDDED=y
+ CONFIG_KALLSYMS=y
+ CONFIG_KALLSYMS_ALL=y
+ # CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_BASE_FULL=y
+ CONFIG_FUTEX=y
+ CONFIG_EPOLL=y
+ # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+@@ -48,6 +53,7 @@
+ CONFIG_CC_ALIGN_LOOPS=0
+ CONFIG_CC_ALIGN_JUMPS=0
+ # CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
+ 
+ #
+ # Loadable module support
+@@ -86,6 +92,7 @@
+ CONFIG_PCI=y
+ CONFIG_PCI_LEGACY_PROC=y
+ CONFIG_PCI_NAMES=y
++# CONFIG_PCI_DEBUG is not set
+ CONFIG_PCI_LBA=y
+ CONFIG_IOSAPIC=y
+ CONFIG_IOMMU_SBA=y
+@@ -259,6 +266,7 @@
+ CONFIG_SCSI_QLA2300=m
+ CONFIG_SCSI_QLA2322=m
+ CONFIG_SCSI_QLA6312=m
++# CONFIG_SCSI_LPFC is not set
+ # CONFIG_SCSI_DC395x is not set
+ # CONFIG_SCSI_DC390T is not set
+ CONFIG_SCSI_DEBUG=m
+@@ -312,7 +320,6 @@
+ #
+ CONFIG_PACKET=y
+ CONFIG_PACKET_MMAP=y
+-CONFIG_NETLINK_DEV=y
+ CONFIG_UNIX=y
+ CONFIG_NET_KEY=m
+ CONFIG_INET=y
+@@ -449,7 +456,6 @@
+ CONFIG_BONDING=m
+ # CONFIG_EQUALIZER is not set
+ CONFIG_TUN=m
+-# CONFIG_ETHERTAP is not set
+ 
+ #
+ # ARCnet devices
+@@ -491,7 +497,6 @@
+ # CONFIG_DGRS is not set
+ CONFIG_EEPRO100=m
+ CONFIG_E100=m
+-CONFIG_E100_NAPI=y
+ # CONFIG_FEALNX is not set
+ CONFIG_NATSEMI=m
+ # CONFIG_NE2K_PCI is not set
+@@ -633,13 +638,6 @@
+ # CONFIG_INPUT_EVBUG is not set
+ 
+ #
+-# Input I/O drivers
+-#
+-# CONFIG_GAMEPORT is not set
+-CONFIG_SOUND_GAMEPORT=y
+-# CONFIG_SERIO is not set
+-
+-#
+ # Input Device Drivers
+ #
+ # CONFIG_INPUT_KEYBOARD is not set
+@@ -649,6 +647,13 @@
+ # CONFIG_INPUT_MISC is not set
+ 
+ #
++# Hardware I/O ports
++#
++# CONFIG_SERIO is not set
++# CONFIG_GAMEPORT is not set
++CONFIG_SOUND_GAMEPORT=y
++
++#
+ # Character devices
+ #
+ CONFIG_VT=y
+@@ -677,6 +682,7 @@
+ CONFIG_PDC_CONSOLE=y
+ CONFIG_SERIAL_CORE=y
+ CONFIG_SERIAL_CORE_CONSOLE=y
++# CONFIG_SERIAL_JSM is not set
+ CONFIG_UNIX98_PTYS=y
+ # CONFIG_LEGACY_PTYS is not set
+ 
+@@ -708,6 +714,11 @@
+ CONFIG_MAX_RAW_DEVS=256
+ 
+ #
++# TPM devices
++#
++# CONFIG_TCG_TPM is not set
++
++#
+ # I2C support
+ #
+ # CONFIG_I2C is not set
+@@ -742,6 +753,10 @@
+ CONFIG_DUMMY_CONSOLE=y
+ CONFIG_DUMMY_CONSOLE_COLUMNS=160
+ CONFIG_DUMMY_CONSOLE_ROWS=64
++CONFIG_STI_CONSOLE=y
++# CONFIG_FONTS is not set
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
+ 
+ #
+ # Sound
+@@ -751,13 +766,9 @@
+ #
+ # USB support
+ #
+-# CONFIG_USB is not set
+ CONFIG_USB_ARCH_HAS_HCD=y
+ CONFIG_USB_ARCH_HAS_OHCI=y
+-
+-#
+-# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
+-#
++# CONFIG_USB is not set
+ 
+ #
+ # USB Gadget Support
+@@ -950,11 +961,14 @@
+ #
+ # Kernel hacking
+ #
++# CONFIG_PRINTK_TIME is not set
+ CONFIG_DEBUG_KERNEL=y
+ CONFIG_MAGIC_SYSRQ=y
++CONFIG_LOG_BUF_SHIFT=16
+ # CONFIG_SCHEDSTATS is not set
+ # CONFIG_DEBUG_SLAB is not set
+ # CONFIG_DEBUG_SPINLOCK is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+ # CONFIG_DEBUG_KOBJECT is not set
+ # CONFIG_DEBUG_INFO is not set
+ # CONFIG_DEBUG_IOREMAP is not set
+@@ -980,6 +994,7 @@
+ CONFIG_CRYPTO_SHA256=m
+ CONFIG_CRYPTO_SHA512=m
+ CONFIG_CRYPTO_WP512=m
++CONFIG_CRYPTO_TGR192=m
+ CONFIG_CRYPTO_DES=m
+ CONFIG_CRYPTO_BLOWFISH=m
+ CONFIG_CRYPTO_TWOFISH=m
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/arch/parisc/configs/b180_defconfig CVS2_6_12_PA2/arch/parisc/configs/b180_defconfig
+--- LINUS_2_6_12/arch/parisc/configs/b180_defconfig	2005-06-17 21:21:52.000000000 -0600
++++ CVS2_6_12_PA2/arch/parisc/configs/b180_defconfig	2005-06-03 13:06:36.000000000 -0600
+@@ -1,12 +1,16 @@
+ #
+ # Automatically generated make config: don't edit
+-# Linux kernel version: 2.6.10-pa5
+-# Wed Jan  5 13:35:54 2005
++# Linux kernel version: 2.6.12-rc4-pa2
++# Wed May 11 23:04:20 2005
+ #
+ CONFIG_PARISC=y
+ CONFIG_MMU=y
+ CONFIG_STACK_GROWSUP=y
+ CONFIG_RWSEM_GENERIC_SPINLOCK=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_ISA_DMA_API=y
+ 
+ #
+ # Code maturity level options
+@@ -14,6 +18,7 @@
+ # CONFIG_EXPERIMENTAL is not set
+ CONFIG_CLEAN_COMPILE=y
+ CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
+ 
+ #
+ # General setup
+@@ -24,23 +29,26 @@
+ # CONFIG_BSD_PROCESS_ACCT is not set
+ CONFIG_SYSCTL=y
+ # CONFIG_AUDIT is not set
+-CONFIG_LOG_BUF_SHIFT=16
+ # CONFIG_HOTPLUG is not set
+ CONFIG_KOBJECT_UEVENT=y
+-# CONFIG_IKCONFIG is not set
++CONFIG_IKCONFIG=y
++CONFIG_IKCONFIG_PROC=y
+ # CONFIG_EMBEDDED is not set
+ CONFIG_KALLSYMS=y
+ # CONFIG_KALLSYMS_ALL is not set
+ # CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_BASE_FULL=y
+ CONFIG_FUTEX=y
+ CONFIG_EPOLL=y
+-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+ CONFIG_SHMEM=y
+ CONFIG_CC_ALIGN_FUNCTIONS=0
+ CONFIG_CC_ALIGN_LABELS=0
+ CONFIG_CC_ALIGN_LOOPS=0
+ CONFIG_CC_ALIGN_JUMPS=0
+ # CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
+ 
+ #
+ # Loadable module support
+@@ -60,7 +68,6 @@
+ # CONFIG_PA7300LC is not set
+ # CONFIG_PA8X00 is not set
+ CONFIG_PA11=y
+-# CONFIG_64BIT is not set
+ # CONFIG_SMP is not set
+ # CONFIG_PREEMPT is not set
+ # CONFIG_HPUX is not set
+@@ -79,10 +86,25 @@
+ CONFIG_PCI=y
+ CONFIG_PCI_LEGACY_PROC=y
+ CONFIG_PCI_NAMES=y
++# CONFIG_PCI_DEBUG is not set
+ CONFIG_GSC_DINO=y
+ # CONFIG_PCI_LBA is not set
++
++#
++# PCCARD (PCMCIA/CardBus) support
++#
++# CONFIG_PCCARD is not set
++
++#
++# PCI Hotplug Support
++#
++
++#
++# PA-RISC specific drivers
++#
+ CONFIG_CHASSIS_LCD_LED=y
+ # CONFIG_PDC_CHASSIS is not set
++CONFIG_PDC_STABLE=y
+ 
+ #
+ # Executable file formats
+@@ -99,6 +121,7 @@
+ #
+ CONFIG_STANDALONE=y
+ # CONFIG_PREVENT_FIRMWARE_BUILD is not set
++# CONFIG_FW_LOADER is not set
+ # CONFIG_DEBUG_DRIVER is not set
+ 
+ #
+@@ -111,10 +134,8 @@
+ #
+ CONFIG_PARPORT=y
+ CONFIG_PARPORT_PC=y
+-CONFIG_PARPORT_PC_CML1=y
+ # CONFIG_PARPORT_SERIAL is not set
+ CONFIG_PARPORT_GSC=y
+-# CONFIG_PARPORT_OTHER is not set
+ # CONFIG_PARPORT_1284 is not set
+ 
+ #
+@@ -131,6 +152,7 @@
+ # CONFIG_BLK_CPQ_DA is not set
+ # CONFIG_BLK_CPQ_CISS_DA is not set
+ # CONFIG_BLK_DEV_DAC960 is not set
++# CONFIG_BLK_DEV_COW_COMMON is not set
+ CONFIG_BLK_DEV_LOOP=y
+ CONFIG_BLK_DEV_CRYPTOLOOP=y
+ # CONFIG_BLK_DEV_NBD is not set
+@@ -149,6 +171,7 @@
+ CONFIG_IOSCHED_AS=y
+ CONFIG_IOSCHED_DEADLINE=y
+ CONFIG_IOSCHED_CFQ=y
++CONFIG_ATA_OVER_ETH=y
+ 
+ #
+ # ATA/ATAPI/MFM/RLL support
+@@ -183,6 +206,7 @@
+ #
+ CONFIG_SCSI_SPI_ATTRS=y
+ # CONFIG_SCSI_FC_ATTRS is not set
++# CONFIG_SCSI_ISCSI_ATTRS is not set
+ 
+ #
+ # SCSI low-level drivers
+@@ -207,7 +231,6 @@
+ # CONFIG_SCSI_DMX3191D is not set
+ # CONFIG_SCSI_DTC3280 is not set
+ # CONFIG_SCSI_EATA is not set
+-# CONFIG_SCSI_EATA_PIO is not set
+ # CONFIG_SCSI_FUTURE_DOMAIN is not set
+ # CONFIG_SCSI_GDTH is not set
+ # CONFIG_SCSI_GENERIC_NCR5380 is not set
+@@ -219,7 +242,6 @@
+ # CONFIG_SCSI_IMM is not set
+ # CONFIG_SCSI_NCR53C406A is not set
+ CONFIG_SCSI_LASI700=y
+-CONFIG_53C700_MEM_MAPPED=y
+ CONFIG_53C700_LE_ON_BE=y
+ CONFIG_SCSI_SYM53C8XX_2=y
+ CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0
+@@ -231,7 +253,6 @@
+ # CONFIG_SCSI_PAS16 is not set
+ # CONFIG_SCSI_PSI240I is not set
+ # CONFIG_SCSI_QLOGIC_FAS is not set
+-# CONFIG_SCSI_QLOGIC_ISP is not set
+ # CONFIG_SCSI_QLOGIC_FC is not set
+ # CONFIG_SCSI_QLOGIC_1280 is not set
+ CONFIG_SCSI_QLA2XXX=y
+@@ -240,7 +261,7 @@
+ # CONFIG_SCSI_QLA2300 is not set
+ # CONFIG_SCSI_QLA2322 is not set
+ # CONFIG_SCSI_QLA6312 is not set
+-# CONFIG_SCSI_QLA6322 is not set
++# CONFIG_SCSI_LPFC is not set
+ # CONFIG_SCSI_SIM710 is not set
+ # CONFIG_SCSI_SYM53C416 is not set
+ # CONFIG_SCSI_DC390T is not set
+@@ -263,6 +284,7 @@
+ CONFIG_MD_RAID0=y
+ CONFIG_MD_RAID1=y
+ CONFIG_MD_RAID5=y
++CONFIG_MD_RAID6=y
+ # CONFIG_MD_MULTIPATH is not set
+ # CONFIG_MD_FAULTY is not set
+ # CONFIG_BLK_DEV_DM is not set
+@@ -292,7 +314,6 @@
+ #
+ CONFIG_PACKET=y
+ CONFIG_PACKET_MMAP=y
+-CONFIG_NETLINK_DEV=y
+ CONFIG_UNIX=y
+ # CONFIG_NET_KEY is not set
+ CONFIG_INET=y
+@@ -311,7 +332,14 @@
+ # CONFIG_INET_IPCOMP is not set
+ # CONFIG_INET_TUNNEL is not set
+ CONFIG_IP_TCPDIAG=y
+-# CONFIG_IP_TCPDIAG_IPV6 is not set
++CONFIG_IP_TCPDIAG_IPV6=y
++CONFIG_IPV6=y
++# CONFIG_IPV6_PRIVACY is not set
++# CONFIG_INET6_AH is not set
++# CONFIG_INET6_ESP is not set
++# CONFIG_INET6_IPCOMP is not set
++# CONFIG_INET6_TUNNEL is not set
++# CONFIG_IPV6_TUNNEL is not set
+ # CONFIG_NETFILTER is not set
+ # CONFIG_BRIDGE is not set
+ # CONFIG_VLAN_8021Q is not set
+@@ -464,23 +492,12 @@
+ # CONFIG_INPUT_EVBUG is not set
+ 
+ #
+-# Input I/O drivers
+-#
+-# CONFIG_GAMEPORT is not set
+-CONFIG_SOUND_GAMEPORT=y
+-CONFIG_SERIO=y
+-# CONFIG_SERIO_SERPORT is not set
+-# CONFIG_SERIO_PARKBD is not set
+-CONFIG_SERIO_GSCPS2=y
+-# CONFIG_HP_SDC is not set
+-# CONFIG_SERIO_PCIPS2 is not set
+-# CONFIG_SERIO_RAW is not set
+-
+-#
+ # Input Device Drivers
+ #
+ CONFIG_INPUT_KEYBOARD=y
+-# CONFIG_KEYBOARD_ATKBD is not set
++CONFIG_KEYBOARD_ATKBD=y
++CONFIG_KEYBOARD_ATKBD_HP_KEYCODES=y
++# CONFIG_KEYBOARD_ATKBD_RDI_KEYCODES is not set
+ # CONFIG_KEYBOARD_SUNKBD is not set
+ # CONFIG_KEYBOARD_LKKBD is not set
+ # CONFIG_KEYBOARD_XTKBD is not set
+@@ -488,7 +505,7 @@
+ # CONFIG_KEYBOARD_HIL_OLD is not set
+ # CONFIG_KEYBOARD_HIL is not set
+ CONFIG_INPUT_MOUSE=y
+-# CONFIG_MOUSE_PS2 is not set
++CONFIG_MOUSE_PS2=y
+ # CONFIG_MOUSE_SERIAL is not set
+ # CONFIG_MOUSE_INPORT is not set
+ # CONFIG_MOUSE_LOGIBM is not set
+@@ -502,6 +519,20 @@
+ # CONFIG_HP_SDC_RTC is not set
+ 
+ #
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++# CONFIG_SERIO_SERPORT is not set
++# CONFIG_SERIO_PARKBD is not set
++CONFIG_SERIO_GSCPS2=y
++# CONFIG_HP_SDC is not set
++# CONFIG_SERIO_PCIPS2 is not set
++CONFIG_SERIO_LIBPS2=y
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++CONFIG_SOUND_GAMEPORT=y
++
++#
+ # Character devices
+ #
+ CONFIG_VT=y
+@@ -529,6 +560,7 @@
+ # CONFIG_PDC_CONSOLE is not set
+ CONFIG_SERIAL_CORE=y
+ CONFIG_SERIAL_CORE_CONSOLE=y
++# CONFIG_SERIAL_JSM is not set
+ CONFIG_UNIX98_PTYS=y
+ CONFIG_LEGACY_PTYS=y
+ CONFIG_LEGACY_PTY_COUNT=256
+@@ -555,11 +587,14 @@
+ #
+ # Ftape, the floppy tape device driver
+ #
+-# CONFIG_AGP is not set
+ # CONFIG_DRM is not set
+ # CONFIG_RAW_DRIVER is not set
+ 
+ #
++# TPM devices
++#
++
++#
+ # I2C support
+ #
+ # CONFIG_I2C is not set
+@@ -587,6 +622,11 @@
+ # Graphics support
+ #
+ CONFIG_FB=y
++CONFIG_FB_CFB_FILLRECT=y
++CONFIG_FB_CFB_COPYAREA=y
++CONFIG_FB_CFB_IMAGEBLIT=y
++CONFIG_FB_SOFT_CURSOR=y
++# CONFIG_FB_MACMODES is not set
+ # CONFIG_FB_MODE_HELPERS is not set
+ # CONFIG_FB_TILEBLITTING is not set
+ # CONFIG_FB_CIRRUS is not set
+@@ -595,6 +635,7 @@
+ # CONFIG_FB_ASILIANT is not set
+ # CONFIG_FB_IMSTT is not set
+ CONFIG_FB_STI=y
++# CONFIG_FB_NVIDIA is not set
+ # CONFIG_FB_RIVA is not set
+ # CONFIG_FB_MATROX is not set
+ # CONFIG_FB_RADEON_OLD is not set
+@@ -607,17 +648,17 @@
+ # CONFIG_FB_3DFX is not set
+ # CONFIG_FB_VOODOO1 is not set
+ # CONFIG_FB_TRIDENT is not set
++# CONFIG_FB_S1D13XXX is not set
+ # CONFIG_FB_VIRTUAL is not set
+ 
+ #
+ # Console display driver support
+ #
+-# CONFIG_MDA_CONSOLE is not set
+-CONFIG_STI_CONSOLE=y
++CONFIG_DUMMY_CONSOLE=y
+ CONFIG_DUMMY_CONSOLE_COLUMNS=160
+ CONFIG_DUMMY_CONSOLE_ROWS=64
+-CONFIG_DUMMY_CONSOLE=y
+ CONFIG_FRAMEBUFFER_CONSOLE=y
++CONFIG_STI_CONSOLE=y
+ # CONFIG_FONTS is not set
+ CONFIG_FONT_8x8=y
+ CONFIG_FONT_8x16=y
+@@ -630,6 +671,7 @@
+ CONFIG_LOGO_LINUX_VGA16=y
+ CONFIG_LOGO_LINUX_CLUT224=y
+ CONFIG_LOGO_PARISC_CLUT224=y
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+ 
+ #
+ # Sound
+@@ -639,13 +681,9 @@
+ #
+ # USB support
+ #
+-# CONFIG_USB is not set
+ CONFIG_USB_ARCH_HAS_HCD=y
+ CONFIG_USB_ARCH_HAS_OHCI=y
+-
+-#
+-# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
+-#
++# CONFIG_USB is not set
+ 
+ #
+ # USB Gadget Support
+@@ -658,6 +696,11 @@
+ # CONFIG_MMC is not set
+ 
+ #
++# InfiniBand support
++#
++# CONFIG_INFINIBAND is not set
++
++#
+ # File systems
+ #
+ CONFIG_EXT2_FS=y
+@@ -668,6 +711,10 @@
+ # CONFIG_JBD_DEBUG is not set
+ # CONFIG_REISERFS_FS is not set
+ # CONFIG_JFS_FS is not set
++
++#
++# XFS support
++#
+ # CONFIG_XFS_FS is not set
+ # CONFIG_MINIX_FS is not set
+ # CONFIG_ROMFS_FS is not set
+@@ -727,7 +774,8 @@
+ CONFIG_LOCKD_V4=y
+ CONFIG_EXPORTFS=y
+ CONFIG_SUNRPC=y
+-# CONFIG_SMB_FS is not set
++CONFIG_SMB_FS=y
++# CONFIG_SMB_NLS_DEFAULT is not set
+ # CONFIG_CIFS is not set
+ # CONFIG_NCP_FS is not set
+ # CONFIG_CODA_FS is not set
+@@ -785,13 +833,18 @@
+ #
+ # Kernel hacking
+ #
++# CONFIG_PRINTK_TIME is not set
+ CONFIG_DEBUG_KERNEL=y
+ CONFIG_MAGIC_SYSRQ=y
++CONFIG_LOG_BUF_SHIFT=16
+ # CONFIG_SCHEDSTATS is not set
+ # CONFIG_DEBUG_SLAB is not set
+ # CONFIG_DEBUG_SPINLOCK is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+ # CONFIG_DEBUG_KOBJECT is not set
+ # CONFIG_DEBUG_INFO is not set
++# CONFIG_DEBUG_IOREMAP is not set
++# CONFIG_DEBUG_FS is not set
+ 
+ #
+ # Security options
+@@ -815,6 +868,7 @@
+ # CONFIG_CRYPTO_SHA256 is not set
+ # CONFIG_CRYPTO_SHA512 is not set
+ # CONFIG_CRYPTO_WP512 is not set
++# CONFIG_CRYPTO_TGR192 is not set
+ # CONFIG_CRYPTO_DES is not set
+ # CONFIG_CRYPTO_BLOWFISH is not set
+ # CONFIG_CRYPTO_TWOFISH is not set
+@@ -832,6 +886,10 @@
+ # CONFIG_CRYPTO_TEST is not set
+ 
+ #
++# Hardware crypto devices
++#
++
++#
+ # Library routines
+ #
+ # CONFIG_CRC_CCITT is not set
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/arch/parisc/configs/c3000_defconfig CVS2_6_12_PA2/arch/parisc/configs/c3000_defconfig
+--- LINUS_2_6_12/arch/parisc/configs/c3000_defconfig	2005-06-17 21:21:52.000000000 -0600
++++ CVS2_6_12_PA2/arch/parisc/configs/c3000_defconfig	2005-06-03 13:06:36.000000000 -0600
+@@ -1,12 +1,16 @@
+ #
+ # Automatically generated make config: don't edit
+-# Linux kernel version: 2.6.10-pa5
+-# Wed Jan  5 13:26:49 2005
++# Linux kernel version: 2.6.12-rc4-pa2
++# Wed May 11 23:06:15 2005
+ #
+ CONFIG_PARISC=y
+ CONFIG_MMU=y
+ CONFIG_STACK_GROWSUP=y
+ CONFIG_RWSEM_GENERIC_SPINLOCK=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_ISA_DMA_API=y
+ 
+ #
+ # Code maturity level options
+@@ -15,6 +19,7 @@
+ # CONFIG_CLEAN_COMPILE is not set
+ CONFIG_BROKEN=y
+ CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
+ 
+ #
+ # General setup
+@@ -26,7 +31,6 @@
+ # CONFIG_BSD_PROCESS_ACCT is not set
+ CONFIG_SYSCTL=y
+ # CONFIG_AUDIT is not set
+-CONFIG_LOG_BUF_SHIFT=16
+ CONFIG_HOTPLUG=y
+ CONFIG_KOBJECT_UEVENT=y
+ CONFIG_IKCONFIG=y
+@@ -35,6 +39,9 @@
+ CONFIG_KALLSYMS=y
+ CONFIG_KALLSYMS_ALL=y
+ # CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_BASE_FULL=y
+ CONFIG_FUTEX=y
+ CONFIG_EPOLL=y
+ # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+@@ -44,6 +51,7 @@
+ CONFIG_CC_ALIGN_LOOPS=0
+ CONFIG_CC_ALIGN_JUMPS=0
+ # CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
+ 
+ #
+ # Loadable module support
+@@ -66,10 +74,8 @@
+ CONFIG_PA8X00=y
+ CONFIG_PA20=y
+ CONFIG_PREFETCH=y
+-# CONFIG_PARISC64 is not set
+ # CONFIG_64BIT is not set
+ # CONFIG_SMP is not set
+-# CONFIG_DISCONTIGMEM is not set
+ # CONFIG_PREEMPT is not set
+ # CONFIG_HPUX is not set
+ 
+@@ -80,12 +86,10 @@
+ CONFIG_PCI=y
+ CONFIG_PCI_LEGACY_PROC=y
+ CONFIG_PCI_NAMES=y
++# CONFIG_PCI_DEBUG is not set
+ CONFIG_PCI_LBA=y
+ CONFIG_IOSAPIC=y
+ CONFIG_IOMMU_SBA=y
+-CONFIG_SUPERIO=y
+-CONFIG_CHASSIS_LCD_LED=y
+-# CONFIG_PDC_CHASSIS is not set
+ 
+ #
+ # PCCARD (PCMCIA/CardBus) support
+@@ -93,13 +97,17 @@
+ # CONFIG_PCCARD is not set
+ 
+ #
+-# PC-card bridges
++# PCI Hotplug Support
+ #
++# CONFIG_HOTPLUG_PCI is not set
+ 
+ #
+-# PCI Hotplug Support
++# PA-RISC specific drivers
+ #
+-# CONFIG_HOTPLUG_PCI is not set
++CONFIG_SUPERIO=y
++CONFIG_CHASSIS_LCD_LED=y
++# CONFIG_PDC_CHASSIS is not set
++CONFIG_PDC_STABLE=y
+ 
+ #
+ # Executable file formats
+@@ -141,6 +149,7 @@
+ # CONFIG_BLK_CPQ_CISS_DA is not set
+ # CONFIG_BLK_DEV_DAC960 is not set
+ CONFIG_BLK_DEV_UMEM=m
++# CONFIG_BLK_DEV_COW_COMMON is not set
+ CONFIG_BLK_DEV_LOOP=y
+ # CONFIG_BLK_DEV_CRYPTOLOOP is not set
+ # CONFIG_BLK_DEV_NBD is not set
+@@ -158,6 +167,7 @@
+ CONFIG_IOSCHED_AS=y
+ CONFIG_IOSCHED_DEADLINE=y
+ CONFIG_IOSCHED_CFQ=y
++# CONFIG_ATA_OVER_ETH is not set
+ 
+ #
+ # ATA/ATAPI/MFM/RLL support
+@@ -243,6 +253,7 @@
+ #
+ CONFIG_SCSI_SPI_ATTRS=y
+ CONFIG_SCSI_FC_ATTRS=m
++CONFIG_SCSI_ISCSI_ATTRS=m
+ 
+ #
+ # SCSI low-level drivers
+@@ -264,6 +275,7 @@
+ CONFIG_SCSI_ATA_PIIX=m
+ # CONFIG_SCSI_SATA_NV is not set
+ CONFIG_SCSI_SATA_PROMISE=m
++# CONFIG_SCSI_SATA_QSTOR is not set
+ # CONFIG_SCSI_SATA_SX4 is not set
+ CONFIG_SCSI_SATA_SIL=m
+ # CONFIG_SCSI_SATA_SIS is not set
+@@ -299,7 +311,7 @@
+ CONFIG_SCSI_QLA2300=m
+ CONFIG_SCSI_QLA2322=m
+ CONFIG_SCSI_QLA6312=m
+-CONFIG_SCSI_QLA6322=m
++# CONFIG_SCSI_LPFC is not set
+ # CONFIG_SCSI_DC395x is not set
+ # CONFIG_SCSI_DC390T is not set
+ # CONFIG_SCSI_NSP32 is not set
+@@ -323,6 +335,8 @@
+ # CONFIG_DM_SNAPSHOT is not set
+ # CONFIG_DM_MIRROR is not set
+ # CONFIG_DM_ZERO is not set
++CONFIG_DM_MULTIPATH=m
++# CONFIG_DM_MULTIPATH_EMC is not set
+ 
+ #
+ # Fusion MPT device support
+@@ -351,7 +365,6 @@
+ #
+ CONFIG_PACKET=y
+ CONFIG_PACKET_MMAP=y
+-CONFIG_NETLINK_DEV=y
+ CONFIG_UNIX=y
+ CONFIG_NET_KEY=m
+ CONFIG_INET=y
+@@ -443,8 +456,6 @@
+ CONFIG_IP_NF_ARPTABLES=m
+ CONFIG_IP_NF_ARPFILTER=m
+ CONFIG_IP_NF_ARP_MANGLE=m
+-CONFIG_IP_NF_COMPAT_IPCHAINS=m
+-CONFIG_IP_NF_COMPAT_IPFWADM=m
+ CONFIG_XFRM=y
+ CONFIG_XFRM_USER=m
+ 
+@@ -486,7 +497,6 @@
+ CONFIG_BONDING=m
+ # CONFIG_EQUALIZER is not set
+ CONFIG_TUN=m
+-# CONFIG_ETHERTAP is not set
+ 
+ #
+ # ARCnet devices
+@@ -524,9 +534,7 @@
+ # CONFIG_FORCEDETH is not set
+ # CONFIG_DGRS is not set
+ CONFIG_EEPRO100=m
+-# CONFIG_EEPRO100_PIO is not set
+ CONFIG_E100=m
+-# CONFIG_E100_NAPI is not set
+ # CONFIG_FEALNX is not set
+ CONFIG_NATSEMI=m
+ # CONFIG_NE2K_PCI is not set
+@@ -622,16 +630,6 @@
+ # CONFIG_INPUT_EVBUG is not set
+ 
+ #
+-# Input I/O drivers
+-#
+-# CONFIG_GAMEPORT is not set
+-CONFIG_SOUND_GAMEPORT=y
+-CONFIG_SERIO=m
+-CONFIG_SERIO_SERPORT=m
+-# CONFIG_SERIO_PCIPS2 is not set
+-# CONFIG_SERIO_RAW is not set
+-
+-#
+ # Input Device Drivers
+ #
+ CONFIG_INPUT_KEYBOARD=y
+@@ -649,6 +647,17 @@
+ # CONFIG_INPUT_MISC is not set
+ 
+ #
++# Hardware I/O ports
++#
++CONFIG_SERIO=m
++CONFIG_SERIO_SERPORT=m
++# CONFIG_SERIO_PCIPS2 is not set
++CONFIG_SERIO_LIBPS2=m
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++CONFIG_SOUND_GAMEPORT=y
++
++#
+ # Character devices
+ #
+ CONFIG_VT=y
+@@ -676,6 +685,7 @@
+ # CONFIG_PDC_CONSOLE is not set
+ CONFIG_SERIAL_CORE=y
+ CONFIG_SERIAL_CORE_CONSOLE=y
++# CONFIG_SERIAL_JSM is not set
+ CONFIG_UNIX98_PTYS=y
+ CONFIG_LEGACY_PTYS=y
+ CONFIG_LEGACY_PTY_COUNT=256
+@@ -698,12 +708,16 @@
+ #
+ # Ftape, the floppy tape device driver
+ #
+-# CONFIG_AGP is not set
+ # CONFIG_DRM is not set
+ CONFIG_RAW_DRIVER=y
+ CONFIG_MAX_RAW_DEVS=256
+ 
+ #
++# TPM devices
++#
++# CONFIG_TCG_TPM is not set
++
++#
+ # I2C support
+ #
+ # CONFIG_I2C is not set
+@@ -731,6 +745,11 @@
+ # Graphics support
+ #
+ CONFIG_FB=y
++CONFIG_FB_CFB_FILLRECT=y
++CONFIG_FB_CFB_COPYAREA=y
++CONFIG_FB_CFB_IMAGEBLIT=y
++CONFIG_FB_SOFT_CURSOR=y
++# CONFIG_FB_MACMODES is not set
+ # CONFIG_FB_MODE_HELPERS is not set
+ # CONFIG_FB_TILEBLITTING is not set
+ # CONFIG_FB_CIRRUS is not set
+@@ -739,6 +758,7 @@
+ # CONFIG_FB_ASILIANT is not set
+ # CONFIG_FB_IMSTT is not set
+ CONFIG_FB_STI=y
++# CONFIG_FB_NVIDIA is not set
+ # CONFIG_FB_RIVA is not set
+ # CONFIG_FB_MATROX is not set
+ # CONFIG_FB_RADEON_OLD is not set
+@@ -753,16 +773,17 @@
+ # CONFIG_FB_VOODOO1 is not set
+ # CONFIG_FB_TRIDENT is not set
+ # CONFIG_FB_PM3 is not set
++# CONFIG_FB_S1D13XXX is not set
+ # CONFIG_FB_VIRTUAL is not set
+ 
+ #
+ # Console display driver support
+ #
+-CONFIG_STI_CONSOLE=y
++CONFIG_DUMMY_CONSOLE=y
+ CONFIG_DUMMY_CONSOLE_COLUMNS=160
+ CONFIG_DUMMY_CONSOLE_ROWS=64
+-CONFIG_DUMMY_CONSOLE=y
+ CONFIG_FRAMEBUFFER_CONSOLE=y
++CONFIG_STI_CONSOLE=y
+ # CONFIG_FONTS is not set
+ CONFIG_FONT_8x8=y
+ CONFIG_FONT_8x16=y
+@@ -775,6 +796,7 @@
+ # CONFIG_LOGO_LINUX_VGA16 is not set
+ # CONFIG_LOGO_LINUX_CLUT224 is not set
+ CONFIG_LOGO_PARISC_CLUT224=y
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+ 
+ #
+ # Sound
+@@ -794,6 +816,8 @@
+ #
+ # USB support
+ #
++CONFIG_USB_ARCH_HAS_HCD=y
++CONFIG_USB_ARCH_HAS_OHCI=y
+ CONFIG_USB=y
+ CONFIG_USB_DEBUG=y
+ 
+@@ -804,14 +828,14 @@
+ # CONFIG_USB_BANDWIDTH is not set
+ # CONFIG_USB_DYNAMIC_MINORS is not set
+ # CONFIG_USB_OTG is not set
+-CONFIG_USB_ARCH_HAS_HCD=y
+-CONFIG_USB_ARCH_HAS_OHCI=y
+ 
+ #
+ # USB Host Controller Drivers
+ #
+ # CONFIG_USB_EHCI_HCD is not set
+ CONFIG_USB_OHCI_HCD=y
++# CONFIG_USB_OHCI_BIG_ENDIAN is not set
++CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+ # CONFIG_USB_UHCI_HCD is not set
+ # CONFIG_USB_SL811_HCD is not set
+ 
+@@ -829,12 +853,11 @@
+ #
+ CONFIG_USB_STORAGE=m
+ # CONFIG_USB_STORAGE_DEBUG is not set
+-# CONFIG_USB_STORAGE_RW_DETECT is not set
+ CONFIG_USB_STORAGE_DATAFAB=y
+ CONFIG_USB_STORAGE_FREECOM=y
+ # CONFIG_USB_STORAGE_ISD200 is not set
+ CONFIG_USB_STORAGE_DPCM=y
+-CONFIG_USB_STORAGE_HP8200e=y
++CONFIG_USB_STORAGE_USBAT=y
+ CONFIG_USB_STORAGE_SDDR09=y
+ CONFIG_USB_STORAGE_SDDR55=y
+ CONFIG_USB_STORAGE_JUMPSHOT=y
+@@ -860,7 +883,6 @@
+ #
+ CONFIG_USB_MDC800=m
+ CONFIG_USB_MICROTEK=m
+-CONFIG_USB_HPUSBSCSI=m
+ 
+ #
+ # USB Multimedia devices
+@@ -879,6 +901,7 @@
+ # CONFIG_USB_PEGASUS is not set
+ # CONFIG_USB_RTL8150 is not set
+ # CONFIG_USB_USBNET is not set
++CONFIG_USB_MON=m
+ 
+ #
+ # USB port drivers
+@@ -894,7 +917,6 @@
+ #
+ # CONFIG_USB_EMI62 is not set
+ # CONFIG_USB_EMI26 is not set
+-# CONFIG_USB_TIGL is not set
+ # CONFIG_USB_AUERSWALD is not set
+ # CONFIG_USB_RIO500 is not set
+ CONFIG_USB_LEGOTOWER=m
+@@ -903,6 +925,7 @@
+ # CONFIG_USB_CYTHERM is not set
+ # CONFIG_USB_PHIDGETKIT is not set
+ # CONFIG_USB_PHIDGETSERVO is not set
++# CONFIG_USB_IDMOUSE is not set
+ # CONFIG_USB_TEST is not set
+ 
+ #
+@@ -920,6 +943,15 @@
+ # CONFIG_MMC is not set
+ 
+ #
++# InfiniBand support
++#
++CONFIG_INFINIBAND=m
++CONFIG_INFINIBAND_MTHCA=m
++# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
++CONFIG_INFINIBAND_IPOIB=m
++# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
++
++#
+ # File systems
+ #
+ CONFIG_EXT2_FS=y
+@@ -930,7 +962,12 @@
+ # CONFIG_JBD_DEBUG is not set
+ # CONFIG_REISERFS_FS is not set
+ # CONFIG_JFS_FS is not set
++
++#
++# XFS support
++#
+ CONFIG_XFS_FS=m
++CONFIG_XFS_EXPORT=y
+ # CONFIG_XFS_RT is not set
+ # CONFIG_XFS_QUOTA is not set
+ # CONFIG_XFS_SECURITY is not set
+@@ -1074,13 +1111,18 @@
+ #
+ # Kernel hacking
+ #
++# CONFIG_PRINTK_TIME is not set
+ CONFIG_DEBUG_KERNEL=y
+ CONFIG_MAGIC_SYSRQ=y
++CONFIG_LOG_BUF_SHIFT=16
+ # CONFIG_SCHEDSTATS is not set
+ # CONFIG_DEBUG_SLAB is not set
+ # CONFIG_DEBUG_SPINLOCK is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+ # CONFIG_DEBUG_KOBJECT is not set
+ # CONFIG_DEBUG_INFO is not set
++# CONFIG_DEBUG_IOREMAP is not set
++# CONFIG_DEBUG_FS is not set
+ 
+ #
+ # Security options
+@@ -1100,6 +1142,7 @@
+ CONFIG_CRYPTO_SHA256=m
+ # CONFIG_CRYPTO_SHA512 is not set
+ # CONFIG_CRYPTO_WP512 is not set
++CONFIG_CRYPTO_TGR192=m
+ CONFIG_CRYPTO_DES=m
+ CONFIG_CRYPTO_BLOWFISH=m
+ CONFIG_CRYPTO_TWOFISH=m
+@@ -1117,6 +1160,10 @@
+ CONFIG_CRYPTO_TEST=m
+ 
+ #
++# Hardware crypto devices
++#
++
++#
+ # Library routines
+ #
+ CONFIG_CRC_CCITT=m
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/arch/parisc/kernel/entry.S CVS2_6_12_PA2/arch/parisc/kernel/entry.S
+--- LINUS_2_6_12/arch/parisc/kernel/entry.S	2005-06-17 21:21:52.000000000 -0600
++++ CVS2_6_12_PA2/arch/parisc/kernel/entry.S	2005-05-12 23:25:09.000000000 -0600
+@@ -30,14 +30,14 @@
+  *  - save registers to kernel stack and handle in assembly or C */
+ 
+ 
++#include <asm/psw.h>
+ #include <asm/assembly.h>	/* for LDREG/STREG defines */
+ #include <asm/pgtable.h>
+-#include <asm/psw.h>
+ #include <asm/signal.h>
+ #include <asm/unistd.h>
+ #include <asm/thread_info.h>
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ #define CMPIB           cmpib,*
+ #define CMPB            cmpb,*
+ #define COND(x)		*x
+@@ -67,19 +67,22 @@
+ 
+ 	/* Switch to virtual mapping, trashing only %r1 */
+ 	.macro  virt_map
+-	rsm     PSW_SM_Q,%r0
+-	tovirt_r1 %r29
+-	mfsp	%sr7, %r1
+-	or,=    %r0,%r1,%r0 /* Only save sr7 in sr3 if sr7 != 0 */
+-	mtsp	%r1, %sr3
++	/* pcxt_ssm_bug */
++	rsm	PSW_SM_I, %r0	/* barrier for "Relied upon Translation */
+ 	mtsp	%r0, %sr4
+ 	mtsp	%r0, %sr5
++	mfsp	%sr7, %r1
++	or,=    %r0,%r1,%r0	/* Only save sr7 in sr3 if sr7 != 0 */
++	mtsp	%r1, %sr3
++	tovirt_r1 %r29
++	load32	KERNEL_PSW, %r1
++
++	rsm     PSW_SM_QUIET,%r0	/* second "heavy weight" ctl op */
+ 	mtsp	%r0, %sr6
+ 	mtsp	%r0, %sr7
+-	load32	KERNEL_PSW, %r1
+-	mtctl	%r1, %cr22
+ 	mtctl	%r0, %cr17	/* Clear IIASQ tail */
+ 	mtctl	%r0, %cr17	/* Clear IIASQ head */
++	mtctl	%r1, %ipsw
+ 	load32	4f, %r1
+ 	mtctl	%r1, %cr18	/* Set IIAOQ tail */
+ 	ldo	4(%r1), %r1
+@@ -214,7 +217,7 @@
+ 	va  = r8	/* virtual address for which the trap occured */
+ 	spc = r24	/* space for which the trap occured */
+ 
+-#ifndef __LP64__
++#ifndef CONFIG_64BIT
+ 
+ 	/*
+ 	 * itlb miss interruption handler (parisc 1.1 - 32 bit)
+@@ -236,7 +239,7 @@
+ 
+ 	.macro	itlb_20 code
+ 	mfctl	%pcsq, spc
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	b       itlb_miss_20w
+ #else
+ 	b	itlb_miss_20
+@@ -246,7 +249,7 @@
+ 	.align		32
+ 	.endm
+ 	
+-#ifndef __LP64__
++#ifndef CONFIG_64BIT
+ 	/*
+ 	 * naitlb miss interruption handler (parisc 1.1 - 32 bit)
+ 	 *
+@@ -283,7 +286,7 @@
+ 	.macro	naitlb_20 code
+ 
+ 	mfctl	%isr,spc
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	b       itlb_miss_20w
+ #else
+ 	b	itlb_miss_20
+@@ -296,7 +299,7 @@
+ 	.align		32
+ 	.endm
+ 	
+-#ifndef __LP64__
++#ifndef CONFIG_64BIT
+ 	/*
+ 	 * dtlb miss interruption handler (parisc 1.1 - 32 bit)
+ 	 */
+@@ -318,7 +321,7 @@
+ 	.macro	dtlb_20 code
+ 
+ 	mfctl	%isr, spc
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	b       dtlb_miss_20w
+ #else
+ 	b	dtlb_miss_20
+@@ -328,7 +331,7 @@
+ 	.align		32
+ 	.endm
+ 	
+-#ifndef __LP64__
++#ifndef CONFIG_64BIT
+ 	/* nadtlb miss interruption handler (parisc 1.1 - 32 bit) */
+ 
+ 	.macro	nadtlb_11 code
+@@ -346,7 +349,7 @@
+ 	.macro	nadtlb_20 code
+ 
+ 	mfctl	%isr,spc
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	b       nadtlb_miss_20w
+ #else
+ 	b       nadtlb_miss_20
+@@ -356,7 +359,7 @@
+ 	.align		32
+ 	.endm
+ 	
+-#ifndef __LP64__
++#ifndef CONFIG_64BIT
+ 	/*
+ 	 * dirty bit trap interruption handler (parisc 1.1 - 32 bit)
+ 	 */
+@@ -378,7 +381,7 @@
+ 	.macro	dbit_20 code
+ 
+ 	mfctl	%isr,spc
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	b       dbit_trap_20w
+ #else
+ 	b	dbit_trap_20
+@@ -391,7 +394,7 @@
+ 	/* The following are simple 32 vs 64 bit instruction
+ 	 * abstractions for the macros */
+ 	.macro		EXTR	reg1,start,length,reg2
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	extrd,u		\reg1,32+\start,\length,\reg2
+ #else
+ 	extrw,u		\reg1,\start,\length,\reg2
+@@ -399,7 +402,7 @@
+ 	.endm
+ 
+ 	.macro		DEP	reg1,start,length,reg2
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	depd		\reg1,32+\start,\length,\reg2
+ #else
+ 	depw		\reg1,\start,\length,\reg2
+@@ -407,7 +410,7 @@
+ 	.endm
+ 
+ 	.macro		DEPI	val,start,length,reg
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	depdi		\val,32+\start,\length,\reg
+ #else
+ 	depwi		\val,\start,\length,\reg
+@@ -418,7 +421,7 @@
+ 	 * fault.  We have to extract this and place it in the va,
+ 	 * zeroing the corresponding bits in the space register */
+ 	.macro		space_adjust	spc,va,tmp
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	extrd,u		\spc,63,SPACEID_SHIFT,\tmp
+ 	depd		%r0,63,SPACEID_SHIFT,\spc
+ 	depd		\tmp,31,SPACEID_SHIFT,\va
+@@ -476,7 +479,7 @@
+ 	bb,>=,n		\pmd,_PxD_PRESENT_BIT,\fault
+ 	DEP		%r0,31,PxD_FLAG_SHIFT,\pmd /* clear flags */
+ 	copy		\pmd,%r9
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	shld		%r9,PxD_VALUE_SHIFT,\pmd
+ #else
+ 	shlw		%r9,PxD_VALUE_SHIFT,\pmd
+@@ -607,7 +610,7 @@
+ 	.macro		do_alias	spc,tmp,tmp1,va,pte,prot,fault
+ 	cmpib,COND(<>),n 0,\spc,\fault
+ 	ldil		L%(TMPALIAS_MAP_START),\tmp
+-#if defined(__LP64__) && (TMPALIAS_MAP_START >= 0x80000000)
++#if defined(CONFIG_64BIT) && (TMPALIAS_MAP_START >= 0x80000000)
+ 	/* on LP64, ldi will sign extend into the upper 32 bits,
+ 	 * which is behaviour we don't want */
+ 	depdi		0,31,32,\tmp
+@@ -621,7 +624,7 @@
+ 	 * OK, it is in the temp alias region, check whether "from" or "to".
+ 	 * Check "subtle" note in pacache.S re: r23/r26.
+ 	 */
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	extrd,u,*=	\va,41,1,%r0
+ #else
+ 	extrw,u,=	\va,9,1,%r0
+@@ -688,7 +691,7 @@
+ 	def		30
+ 	def		31
+ 
+-#ifndef __LP64__
++#ifndef CONFIG_64BIT
+ 
+ 	.export fault_vector_11
+ 	
+@@ -761,7 +764,7 @@
+ 
+ 	copy	%r30, %r1
+ 	ldo	PT_SZ_ALGN(%r30),%r30
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	/* Yo, function pointers in wide mode are little structs... -PB */
+ 	ldd	24(%r26), %r2
+ 	STREG	%r2, PT_GR27(%r1)	/* Store childs %dp */
+@@ -777,7 +780,7 @@
+ 	or	%r26, %r24, %r26      /* will have kernel mappings.	 */
+ 	ldi	1, %r25			/* stack_start, signals kernel thread */
+ 	stw	%r0, -52(%r30)	     	/* user_tid */
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	ldo	-16(%r30),%r29		/* Reference param save area */
+ #endif
+ 	BL	do_fork, %r2
+@@ -806,7 +809,7 @@
+ 
+ 	LDREG	TI_TASK-THREAD_SZ_ALGN(%r30), %r1
+ 	LDREG	TASK_PT_GR25(%r1), %r26
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	LDREG	TASK_PT_GR27(%r1), %r27
+ 	LDREG	TASK_PT_GR22(%r1), %r22
+ #endif
+@@ -814,11 +817,16 @@
+ 	ble	0(%sr7, %r1)
+ 	copy	%r31, %r2
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	ldo	-16(%r30),%r29		/* Reference param save area */
+ 	loadgp				/* Thread could have been in a module */
+ #endif
++#ifndef CONFIG_64BIT
+ 	b	sys_exit
++#else
++	load32	sys_exit, %r1
++	bv	%r0(%r1)
++#endif
+ 	ldi	0, %r26
+ 
+ 	.import	sys_execve, code
+@@ -830,7 +838,7 @@
+ 	STREG	%r26, PT_GR26(%r16)
+ 	STREG	%r25, PT_GR25(%r16)
+ 	STREG	%r24, PT_GR24(%r16)
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	ldo	-16(%r30),%r29		/* Reference param save area */
+ #endif
+ 	BL	sys_execve, %r2
+@@ -888,9 +896,6 @@
+ 	 * this way, then we will need to copy %sr3 in to PT_SR[3..7], and
+ 	 * adjust IASQ[0..1].
+ 	 *
+-	 * Note that the following code uses a "relied upon translation".
+-	 * See the parisc ACD for details. The ssm is necessary due to a
+-	 * PCXT bug.
+ 	 */
+ 
+ 	.align 4096
+@@ -911,7 +916,7 @@
+ 	STREG	%r19,PT_IAOQ1(%r16)
+ 	LDREG   PT_PSW(%r16),%r19
+ 	load32	USER_PSW_MASK,%r1
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	load32	USER_PSW_HI_MASK,%r20
+ 	depd    %r20,31,32,%r1
+ #endif
+@@ -955,7 +960,7 @@
+ 	/* shift left ____cacheline_aligned (aka L1_CACHE_BYTES) amount
+ 	** irq_stat[] is defined using ____cacheline_aligned.
+ 	*/
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	shld	%r1, 6, %r20
+ #else
+ 	shlw	%r1, 5, %r20
+@@ -985,24 +990,19 @@
+ 	rest_fp         %r1
+ 	rest_general    %r29
+ 
+-	/* Create a "relied upon translation" PA 2.0 Arch. F-5 */
+-	ssm		0,%r0
+-	nop
+-	nop
+-	nop
+-	nop
+-	nop
+-	nop
+-	nop
++	/* inverse of virt_map */
++	pcxt_ssm_bug
++	rsm             PSW_SM_QUIET,%r0	/* prepare for rfi */
+ 	tophys_r1       %r29
+-	rsm             (PSW_SM_Q|PSW_SM_P|PSW_SM_D|PSW_SM_I),%r0
+ 
+ 	/* Restore space id's and special cr's from PT_REGS
+-	 * structure pointed to by r29 */
++	 * structure pointed to by r29
++	 */
+ 	rest_specials	%r29
+ 
+-	/* Important: Note that rest_stack restores r29
+-	 * last (we are using it)! It also restores r1 and r30. */
++	/* IMPORTANT: rest_stack restores r29 last (we are using it)!
++	 * It also restores r1 and r30.
++	 */
+ 	rest_stack
+ 
+ 	rfi
+@@ -1017,8 +1017,8 @@
+ 
+ 	.import do_softirq,code
+ intr_do_softirq:
+-	bl      do_softirq,%r2
+-#ifdef __LP64__
++	BL      do_softirq,%r2
++#ifdef CONFIG_64BIT
+ 	ldo	-16(%r30),%r29		/* Reference param save area */
+ #else
+ 	nop
+@@ -1036,12 +1036,17 @@
+ 	CMPIB= 0,%r20,intr_restore /* backward */
+ 	nop
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	ldo	-16(%r30),%r29		/* Reference param save area */
+ #endif
+ 
+ 	ldil	L%intr_check_sig, %r2
++#ifndef CONFIG_64BIT
+ 	b	schedule
++#else
++	load32	schedule, %r20
++	bv	%r0(%r20)
++#endif
+ 	ldo	R%intr_check_sig(%r2), %r2
+ 
+ 
+@@ -1064,7 +1069,7 @@
+ 
+ 	copy	%r0, %r24			/* unsigned long in_syscall */
+ 	copy	%r16, %r25			/* struct pt_regs *regs */
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	ldo	-16(%r30),%r29			/* Reference param save area */
+ #endif
+ 
+@@ -1088,7 +1093,7 @@
+ 	mfctl	%cr31,%r1
+ 	copy	%r30,%r17
+ 	/* FIXME! depi below has hardcoded idea of interrupt stack size (32k)*/
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	depdi	0,63,15,%r17
+ #else
+ 	depi	0,31,15,%r17
+@@ -1115,7 +1120,7 @@
+ 
+ 	ldil	L%intr_return, %r2
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	ldo	-16(%r30),%r29	/* Reference param save area */
+ #endif
+ 
+@@ -1153,15 +1158,17 @@
+ 
+ 	CMPIB=,n        6,%r26,skip_save_ior
+ 
+-	/* save_specials left ipsw value in r8 for us to test */
+ 
+ 	mfctl           %cr20, %r16 /* isr */
++	nop		/* serialize mfctl on PA 2.0 to avoid 4 cycle penalty */
+ 	mfctl           %cr21, %r17 /* ior */
+ 
+-#ifdef __LP64__
++
++#ifdef CONFIG_64BIT
+ 	/*
+ 	 * If the interrupted code was running with W bit off (32 bit),
+ 	 * clear the b bits (bits 0 & 1) in the ior.
++	 * save_specials left ipsw value in r8 for us to test.
+ 	 */
+ 	extrd,u,*<>     %r8,PSW_W_BIT,1,%r0
+ 	depdi           0,1,2,%r17
+@@ -1192,7 +1199,7 @@
+ 	loadgp
+ 
+ 	copy		%r29, %r25	/* arg1 is pt_regs */
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	ldo		-16(%r30),%r29	/* Reference param save area */
+ #endif
+ 
+@@ -1230,7 +1237,7 @@
+ 	spc  = r24	/* space for which the trap occured */
+ 	ptp = r25	/* page directory/page table pointer */
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 
+ dtlb_miss_20w:
+ 	space_adjust	spc,va,t0
+@@ -1487,10 +1494,10 @@
+ 	add,l           %r1,%r24,%r1           /* doesn't affect c/b bits */
+ 
+ nadtlb_nullify:
+-	mfctl           %cr22,%r8              /* Get ipsw */
++	mfctl           %ipsw,%r8
+ 	ldil            L%PSW_N,%r9
+ 	or              %r8,%r9,%r8            /* Set PSW_N */
+-	mtctl           %r8,%cr22
++	mtctl           %r8,%ipsw
+ 
+ 	rfir
+ 	nop
+@@ -1521,7 +1528,7 @@
+ 	nop
+ 
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ itlb_miss_20w:
+ 
+ 	/*
+@@ -1588,7 +1595,7 @@
+ 
+ #endif
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 
+ dbit_trap_20w:
+ 	space_adjust	spc,va,t0
+@@ -1797,7 +1804,7 @@
+ 
+ 	STREG	%r2,-RP_OFFSET(%r30)
+ 	ldo	FRAME_SIZE(%r30),%r30
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	ldo	-16(%r30),%r29		/* Reference param save area */
+ #endif
+ 
+@@ -1847,7 +1854,7 @@
+ 
+ 	STREG	%r2,-RP_OFFSET(%r30)
+ 	ldo	FRAME_SIZE(%r30),%r30
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	ldo	-16(%r30),%r29		/* Reference param save area */
+ #endif
+ 
+@@ -1869,7 +1876,7 @@
+ 
+ 	STREG	%r2,-RP_OFFSET(%r30)
+ 	ldo	FRAME_SIZE(%r30),%r30
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	ldo	-16(%r30),%r29		/* Reference param save area */
+ #endif
+ 
+@@ -1897,10 +1904,10 @@
+ 
+ 	STREG %r2,-RP_OFFSET(%r30)
+ 	ldo FRAME_SIZE(%r30),%r30
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	ldo	-16(%r30),%r29		/* Reference param save area */
+ #endif
+-	bl \execve,%r2
++	BL \execve,%r2
+ 	copy %r1,%arg0
+ 
+ 	ldo -FRAME_SIZE(%r30),%r30
+@@ -1923,7 +1930,7 @@
+ sys_execve_wrapper:
+ 	execve_wrapper sys_execve
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	.export sys32_execve_wrapper
+ 	.import sys32_execve
+ 
+@@ -1937,7 +1944,7 @@
+ 	ldo	TASK_REGS(%r26),%r26	/* get pt regs */
+ 	/* Don't save regs, we are going to restore them from sigcontext. */
+ 	STREG	%r2, -RP_OFFSET(%r30)
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	ldo	FRAME_SIZE(%r30), %r30
+ 	BL	sys_rt_sigreturn,%r2
+ 	ldo	-16(%r30),%r29		/* Reference param save area */
+@@ -1968,7 +1975,7 @@
+ 	ldo	TASK_REGS(%r1),%r24	/* get pt regs */
+ 	LDREG	TASK_PT_GR30(%r24),%r24
+ 	STREG	%r2, -RP_OFFSET(%r30)
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	ldo	FRAME_SIZE(%r30), %r30
+ 	b,l	do_sigaltstack,%r2
+ 	ldo	-16(%r30),%r29		/* Reference param save area */
+@@ -1982,7 +1989,7 @@
+ 	bv	%r0(%r2)
+ 	nop
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	.export sys32_sigaltstack_wrapper
+ sys32_sigaltstack_wrapper:
+ 	/* Get the user stack pointer */
+@@ -2006,7 +2013,7 @@
+ 	reg_save %r24
+ 
+ 	STREG	%r2, -RP_OFFSET(%r30)
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	ldo	FRAME_SIZE(%r30), %r30
+ 	b,l	sys_rt_sigsuspend,%r2
+ 	ldo	-16(%r30),%r29		/* Reference param save area */
+@@ -2079,7 +2086,7 @@
+ 	ldw     TI_CPU-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r26 /* cpu # */
+ 
+ 	/* shift left ____cacheline_aligned (aka L1_CACHE_BYTES) bits */
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	shld	%r26, 6, %r20
+ #else
+ 	shlw	%r26, 5, %r20
+@@ -2144,7 +2151,7 @@
+ 
+ 	depi	3,31,2,%r31			   /* ensure return to user mode. */
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	/* decide whether to reset the wide mode bit
+ 	 *
+ 	 * For a syscall, the W bit is stored in the lowest bit
+@@ -2229,7 +2236,7 @@
+ 
+ 	.import do_softirq,code
+ syscall_do_softirq:
+-	bl      do_softirq,%r2
++	BL      do_softirq,%r2
+ 	nop
+ 	/* NOTE: We enable I-bit incase we schedule later,
+ 	 * and we might be going back to userspace if we were
+@@ -2240,7 +2247,7 @@
+ 	.import schedule,code
+ syscall_do_resched:
+ 	BL	schedule,%r2
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	ldo	-16(%r30),%r29		/* Reference param save area */
+ #else
+ 	nop
+@@ -2260,7 +2267,7 @@
+ 
+ 	ldi	1, %r24				/* unsigned long in_syscall */
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	ldo	-16(%r30),%r29			/* Reference param save area */
+ #endif
+ 	BL	do_signal,%r2
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/arch/parisc/kernel/head.S CVS2_6_12_PA2/arch/parisc/kernel/head.S
+--- LINUS_2_6_12/arch/parisc/kernel/head.S	2005-06-17 21:21:52.000000000 -0600
++++ CVS2_6_12_PA2/arch/parisc/kernel/head.S	2005-05-12 23:25:09.000000000 -0600
+@@ -12,7 +12,7 @@
+  * Initial Version 04-23-1999 by Helge Deller <deller at gmx.de>
+  */
+ 
+-#include <linux/autoconf.h>	/* for CONFIG_SMP */
++#include <linux/config.h>	/* for CONFIG_SMP */
+ 
+ #include <asm/offsets.h>
+ #include <asm/psw.h>
+@@ -36,10 +36,10 @@
+ 	.align	4
+ 	.import init_thread_union,data
+ 	.import fault_vector_20,code    /* IVA parisc 2.0 32 bit */
+-#ifndef __LP64__
++#ifndef CONFIG_64BIT
+         .import fault_vector_11,code    /* IVA parisc 1.1 32 bit */
+ 	.import	$global$		/* forward declaration */
+-#endif /*!LP64*/
++#endif /*!CONFIG_64BIT*/
+ 	.export stext
+ 	.export _stext,data		/* Kernel want it this way! */
+ _stext:
+@@ -76,7 +76,7 @@
+ 	mtctl		%r4,%cr24	/* Initialize kernel root pointer */
+ 	mtctl		%r4,%cr25	/* Initialize user root pointer */
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	/* Set pmd in pgd */
+ 	load32		PA(pmd0),%r5
+ 	shrd            %r5,PxD_VALUE_SHIFT,%r3	
+@@ -99,7 +99,7 @@
+ 	stw		%r3,0(%r4)
+ 	ldo		(ASM_PAGE_SIZE >> PxD_VALUE_SHIFT)(%r3),%r3
+ 	addib,>		-1,%r1,1b
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	ldo             ASM_PMD_ENTRY_SIZE(%r4),%r4
+ #else
+ 	ldo             ASM_PGD_ENTRY_SIZE(%r4),%r4
+@@ -170,7 +170,7 @@
+ 	stw		%r0,0x28(%r0)	/* MEM_RENDEZ_HI */
+ #endif /*CONFIG_SMP*/
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	tophys_r1	%sp
+ 
+ 	/* Save the rfi target address */
+@@ -224,8 +224,6 @@
+ 	mtctl	%r0,%cr12
+ 	mtctl	%r0,%cr13
+ 
+-	/* Prepare to RFI! Man all the cannons! */
+-
+ 	/* Initialize the global data pointer */
+ 	loadgp
+ 
+@@ -235,7 +233,7 @@
+ 	 * following short sequence of instructions can determine this
+ 	 * (without being illegal on a PA1.1 machine).
+ 	 */
+-#ifndef __LP64__
++#ifndef CONFIG_64BIT
+ 	ldi		32,%r10
+ 	mtctl		%r10,%cr11
+ 	.level 2.0
+@@ -248,52 +246,22 @@
+ 
+ $is_pa20:
+ 	.level		LEVEL /* restore 1.1 || 2.0w */
+-#endif /*!LP64*/
++#endif /*!CONFIG_64BIT*/
+ 	load32		PA(fault_vector_20),%r10
+ 
+ $install_iva:
+ 	mtctl		%r10,%cr14
+ 
+-#ifdef __LP64__
+-	b		aligned_rfi
++	b		aligned_rfi  /* Prepare to RFI! Man all the cannons! */
+ 	nop
+ 
+-	.align          256
++	.align 128
+ aligned_rfi:
+-	ssm             0,0
+-	nop             /* 1 */
+-	nop             /* 2 */
+-	nop             /* 3 */
+-	nop             /* 4 */
+-	nop             /* 5 */
+-	nop             /* 6 */
+-	nop             /* 7 */
+-	nop             /* 8 */
+-#endif
+-
+-#ifdef __LP64__ /* move to psw.h? */
+-#define		PSW_BITS	PSW_Q+PSW_I+PSW_D+PSW_P+PSW_R
+-#else
+-#define		PSW_BITS	PSW_SM_Q
+-#endif
++	pcxt_ssm_bug
+ 
+-$rfi:	
+-	/* turn off troublesome PSW bits */
+-	rsm		PSW_BITS,%r0
+-
+-	/* kernel PSW:
+-	 *  - no interruptions except HPMC and TOC (which are handled by PDC)
+-	 *  - Q bit set (IODC / PDC interruptions)
+-	 *  - big-endian
+-	 *  - virtually mapped
+-	 */
+-	load32		KERNEL_PSW,%r10
+-	mtctl		%r10,%ipsw
++	rsm		PSW_SM_QUIET,%r0	/* off troublesome PSW bits */
++	/* Don't need NOPs, have 8 compliant insn before rfi */
+ 
+-	/* Set the space pointers for the post-RFI world
+-	** Clear the two-level IIA Space Queue, effectively setting
+-	** Kernel space.
+-	*/
+ 	mtctl		%r0,%cr17	/* Clear IIASQ tail */
+ 	mtctl		%r0,%cr17	/* Clear IIASQ head */
+ 
+@@ -301,8 +269,11 @@
+ 	mtctl		%r11,%cr18	/* IIAOQ head */
+ 	ldo		4(%r11),%r11
+ 	mtctl		%r11,%cr18	/* IIAOQ tail */
++
++	load32		KERNEL_PSW,%r10
++	mtctl		%r10,%ipsw
+ 	
+-	/* Jump to hyperspace */
++	/* Jump through hyperspace to Virt Mode */
+ 	rfi
+ 	nop
+ 
+@@ -313,7 +284,7 @@
+ 	.import smp_init_current_idle_task,data
+ 	.import	smp_callin,code
+ 
+-#ifndef __LP64__
++#ifndef CONFIG_64BIT
+ smp_callin_rtn:
+         .proc
+ 	.callinfo
+@@ -321,7 +292,7 @@
+ 	nop
+ 	nop
+         .procend
+-#endif /*!LP64*/
++#endif /*!CONFIG_64BIT*/
+ 
+ /***************************************************************************
+ * smp_slave_stext is executed by all non-monarch Processors when the Monarch
+@@ -356,7 +327,7 @@
+ 	mtctl		%r4,%cr24	/* Initialize kernel root pointer */
+ 	mtctl		%r4,%cr25	/* Initialize user root pointer */
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	/* Setup PDCE_PROC entry */
+ 	copy            %arg0,%r3
+ #else
+@@ -373,7 +344,7 @@
+ 
+ 	.procend
+ #endif /* CONFIG_SMP */
+-#ifndef __LP64__
++#ifndef CONFIG_64BIT
+ 	.data
+ 
+ 	.align	4
+@@ -383,4 +354,4 @@
+ 	.size	$global$,4
+ $global$:	
+ 	.word 0
+-#endif /*!LP64*/
++#endif /*!CONFIG_64BIT*/
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/arch/parisc/kernel/ioctl32.c CVS2_6_12_PA2/arch/parisc/kernel/ioctl32.c
+--- LINUS_2_6_12/arch/parisc/kernel/ioctl32.c	2005-06-17 21:21:52.000000000 -0600
++++ CVS2_6_12_PA2/arch/parisc/kernel/ioctl32.c	2005-04-12 13:17:10.000000000 -0600
+@@ -104,12 +104,9 @@
+ 	}
+ 
+ out:
+-	if (kversion.name)
+-		kfree(kversion.name);
+-	if (kversion.date)
+-		kfree(kversion.date);
+-	if (kversion.desc)
+-		kfree(kversion.desc);
++	kfree(kversion.name);
++	kfree(kversion.date);
++	kfree(kversion.desc);
+ 	return ret;
+ }
+ 
+@@ -166,9 +163,7 @@
+ 			ret = -EFAULT;
+ 	}
+ 
+-	if (karg.unique != NULL)
+-		kfree(karg.unique);
+-
++	kfree(karg.unique);
+ 	return ret;
+ }
+ 
+@@ -265,7 +260,6 @@
+ 	}
+ 
+ 	kfree(karg.list);
+-
+ 	return ret;
+ }
+ 
+@@ -305,7 +299,6 @@
+ 
+ out:
+ 	kfree(karg.list);
+-
+ 	return ret;
+ }
+ 
+@@ -494,15 +487,10 @@
+ 	}
+ 
+ out:
+-	if (karg.send_indices)
+-		kfree(karg.send_indices);
+-	if (karg.send_sizes)
+-		kfree(karg.send_sizes);
+-	if (karg.request_indices)
+-		kfree(karg.request_indices);
+-	if (karg.request_sizes)
+-		kfree(karg.request_sizes);
+-
++	kfree(karg.send_indices);
++	kfree(karg.send_sizes);
++	kfree(karg.request_indices);
++	kfree(karg.request_sizes);
+ 	return ret;
+ }
+ 
+@@ -555,9 +543,7 @@
+ 			ret = -EFAULT;
+ 	}
+ 
+-	if (karg.contexts)
+-		kfree(karg.contexts);
+-
++	kfree(karg.contexts);
+ 	return ret;
+ }
+ 
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/arch/parisc/kernel/pacache.S CVS2_6_12_PA2/arch/parisc/kernel/pacache.S
+--- LINUS_2_6_12/arch/parisc/kernel/pacache.S	2005-06-17 21:21:52.000000000 -0600
++++ CVS2_6_12_PA2/arch/parisc/kernel/pacache.S	2005-05-12 23:25:09.000000000 -0600
+@@ -26,7 +26,7 @@
+  *       can be used.
+  */
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ #define ADDIB	addib,*
+ #define CMPB	cmpb,*
+ #define ANDCM	andcm,*
+@@ -40,8 +40,10 @@
+ 	.level	2.0
+ #endif
+ 
+-#include <asm/assembly.h>
++#include <linux/config.h>
++
+ #include <asm/psw.h>
++#include <asm/assembly.h>
+ #include <asm/pgtable.h>
+ #include <asm/cache.h>
+ 
+@@ -62,32 +64,23 @@
+ 	 * to happen in real mode with all interruptions disabled.
+ 	 */
+ 
+-	/*
+-	 * Once again, we do the rfi dance ... some day we need examine
+-	 * all of our uses of this type of code and see what can be
+-	 * consolidated.
+-	 */
+-
+-	rsm		PSW_SM_I, %r19		/* relied upon translation! PA 2.0 Arch. F-5 */
++	/* pcxt_ssm_bug	- relied upon translation! PA 2.0 Arch. F-4 and F-5 */
++	rsm	PSW_SM_I, %r19		/* save I-bit state */
++	load32		PA(1f), %r1
+ 	nop
+ 	nop
+ 	nop
+ 	nop
+ 	nop
+-	nop
+-	nop
+-	
+-	rsm		PSW_SM_Q, %r0		/* Turn off Q bit to load iia queue */
+-	ldil		L%REAL_MODE_PSW, %r1
+-	ldo		R%REAL_MODE_PSW(%r1), %r1
+-	mtctl		%r1, %cr22
++
++	rsm		PSW_SM_Q, %r0		/* prep to load iia queue */
+ 	mtctl		%r0, %cr17		/* Clear IIASQ tail */
+ 	mtctl		%r0, %cr17		/* Clear IIASQ head */
+-	ldil		L%PA(1f), %r1
+-	ldo		R%PA(1f)(%r1), %r1
+ 	mtctl		%r1, %cr18		/* IIAOQ head */
+ 	ldo		4(%r1), %r1
+ 	mtctl		%r1, %cr18		/* IIAOQ tail */
++	load32		REAL_MODE_PSW, %r1
++	mtctl           %r1, %ipsw
+ 	rfi
+ 	nop
+ 
+@@ -178,29 +171,36 @@
+ 	ADDIB>		-1, %r22, fdtoneloop	/* Outer loop count decr */
+ 	add		%r21, %r20, %r20	/* increment space */
+ 
+-fdtdone:
+ 
+-	/* Switch back to virtual mode */
++fdtdone:
++	/*
++	 * Switch back to virtual mode
++	 */
++	/* pcxt_ssm_bug */
++	rsm		PSW_SM_I, %r0
++	load32		2f, %r1
++	nop
++	nop
++	nop
++	nop
++	nop
+ 
+-	rsm		PSW_SM_Q, %r0		/* clear Q bit to load iia queue */
+-	ldil		L%KERNEL_PSW, %r1
+-	ldo		R%KERNEL_PSW(%r1), %r1
+-	or		%r1, %r19, %r1		/* Set I bit if set on entry */
+-	mtctl		%r1, %cr22
++	rsm		PSW_SM_Q, %r0		/* prep to load iia queue */
+ 	mtctl		%r0, %cr17		/* Clear IIASQ tail */
+ 	mtctl		%r0, %cr17		/* Clear IIASQ head */
+-	ldil		L%(2f), %r1
+-	ldo		R%(2f)(%r1), %r1
+ 	mtctl		%r1, %cr18		/* IIAOQ head */
+ 	ldo		4(%r1), %r1
+ 	mtctl		%r1, %cr18		/* IIAOQ tail */
++	load32		KERNEL_PSW, %r1
++	or		%r1, %r19, %r1	/* I-bit to state on entry */
++	mtctl		%r1, %ipsw	/* restore I-bit (entire PSW) */
+ 	rfi
+ 	nop
+ 
+ 2:      bv		%r0(%r2)
+ 	nop
+-	.exit
+ 
++	.exit
+ 	.procend
+ 
+ 	.export flush_instruction_cache_local,code
+@@ -238,7 +238,7 @@
+ 
+ fisync:
+ 	sync
+-	mtsm		%r22
++	mtsm		%r22			/* restore I-bit */
+ 	bv		%r0(%r2)
+ 	nop
+ 	.exit
+@@ -281,7 +281,7 @@
+ fdsync:
+ 	syncdma
+ 	sync
+-	mtsm		%r22
++	mtsm		%r22			/* restore I-bit */
+ 	bv		%r0(%r2)
+ 	nop
+ 	.exit
+@@ -296,7 +296,7 @@
+ 	.callinfo NO_CALLS
+ 	.entry
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	/* PA8x00 CPUs can consume 2 loads or 1 store per cycle.
+ 	 * Unroll the loop by hand and arrange insn appropriately.
+ 	 * GCC probably can do this just as well.
+@@ -351,7 +351,11 @@
+ 	std		%r22, 120(%r26)
+ 	ldo		128(%r26), %r26
+ 
+-	ADDIB>		-1, %r1, 1b		/* bundle 10 */
++	/* conditional branches nullify on forward taken branch, and on
++	 * non-taken backward branch. Note that .+4 is a backwards branch.
++	 * The ldd should only get executed if the branch is taken.
++	 */
++	ADDIB>,n	-1, %r1, 1b		/* bundle 10 */
+ 	ldd		0(%r25), %r19		/* start next loads */
+ 
+ #else
+@@ -363,10 +367,10 @@
+ 	 * the full 64 bit register values on interrupt, we can't
+ 	 * use ldd/std on a 32 bit kernel.
+ 	 */
++	ldw		0(%r25), %r19
+ 	ldi		64, %r1		/* PAGE_SIZE/64 == 64 */
+ 
+ 1:
+-	ldw		0(%r25), %r19
+ 	ldw		4(%r25), %r20
+ 	ldw		8(%r25), %r21
+ 	ldw		12(%r25), %r22
+@@ -396,11 +400,12 @@
+ 	ldw		60(%r25), %r22
+ 	stw		%r19, 48(%r26)
+ 	stw		%r20, 52(%r26)
++	ldo		64(%r25), %r25
+ 	stw		%r21, 56(%r26)
+ 	stw		%r22, 60(%r26)
+ 	ldo		64(%r26), %r26
+-	ADDIB>		-1, %r1, 1b
+-	ldo		64(%r25), %r25
++	ADDIB>,n	-1, %r1, 1b
++	ldw		0(%r25), %r19
+ #endif
+ 	bv		%r0(%r2)
+ 	nop
+@@ -456,7 +461,7 @@
+ 	sub		%r25, %r1, %r23		/* move physical addr into non shadowed reg */
+ 
+ 	ldil		L%(TMPALIAS_MAP_START), %r28
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	extrd,u		%r26,56,32, %r26		/* convert phys addr to tlb insert format */
+ 	extrd,u		%r23,56,32, %r23		/* convert phys addr to tlb insert format */
+ 	depd		%r24,63,22, %r28		/* Form aliased virtual address 'to' */
+@@ -543,7 +548,7 @@
+ 	tophys_r1	%r26
+ 
+ 	ldil		L%(TMPALIAS_MAP_START), %r28
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ #if (TMPALIAS_MAP_START >= 0x80000000)
+ 	depdi		0, 31,32, %r28		/* clear any sign extension */
+ #endif
+@@ -560,7 +565,7 @@
+ 
+ 	pdtlb		0(%r28)
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	ldi		32, %r1			/* PAGE_SIZE/128 == 32 */
+ 
+ 	/* PREFETCH (Write) has not (yet) been proven to help here */
+@@ -585,7 +590,7 @@
+ 	ADDIB>		-1, %r1, 1b
+ 	ldo		128(%r28), %r28
+ 
+-#else	/* ! __LP64 */
++#else	/* ! CONFIG_64BIT */
+ 
+ 	ldi		64, %r1			/* PAGE_SIZE/64 == 64 */
+ 
+@@ -608,7 +613,7 @@
+ 	stw		%r0, 60(%r28)
+ 	ADDIB>		-1, %r1, 1b
+ 	ldo		64(%r28), %r28
+-#endif	/* __LP64 */
++#endif	/* CONFIG_64BIT */
+ 
+ 	bv		%r0(%r2)
+ 	nop
+@@ -626,7 +631,7 @@
+ 	ldil		L%dcache_stride, %r1
+ 	ldw		R%dcache_stride(%r1), %r23
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	depdi,z		1, 63-PAGE_SHIFT,1, %r25
+ #else
+ 	depwi,z		1, 31-PAGE_SHIFT,1, %r25
+@@ -670,7 +675,7 @@
+ 	ldil		L%dcache_stride, %r1
+ 	ldw		R%dcache_stride(%r1), %r23
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	depdi,z		1,63-PAGE_SHIFT,1, %r25
+ #else
+ 	depwi,z		1,31-PAGE_SHIFT,1, %r25
+@@ -714,7 +719,7 @@
+ 	ldil		L%dcache_stride, %r1
+ 	ldw		R%dcache_stride(%r1), %r23
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	depdi,z		1, 63-PAGE_SHIFT,1, %r25
+ #else
+ 	depwi,z		1, 31-PAGE_SHIFT,1, %r25
+@@ -759,7 +764,7 @@
+ 	ldil		L%dcache_stride, %r1
+ 	ldw		R%dcache_stride(%r1), %r23
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	depdi,z		1, 63-PAGE_SHIFT,1, %r25
+ #else
+ 	depwi,z		1, 31-PAGE_SHIFT,1, %r25
+@@ -807,7 +812,7 @@
+ 	tophys_r1		%r26
+ 
+ 	ldil		L%(TMPALIAS_MAP_START), %r28
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	extrd,u		%r26, 56,32, %r26	/* convert phys addr to tlb insert format */
+ 	depd		%r25, 63,22, %r28	/* Form aliased virtual address 'to' */
+ 	depdi		0, 63,12, %r28		/* Clear any offset bits */
+@@ -824,7 +829,7 @@
+ 	ldil		L%dcache_stride, %r1
+ 	ldw		R%dcache_stride(%r1), %r23
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	depdi,z		1, 63-PAGE_SHIFT,1, %r29
+ #else
+ 	depwi,z		1, 31-PAGE_SHIFT,1, %r29
+@@ -935,7 +940,7 @@
+ 	ldil		L%icache_stride, %r1
+ 	ldw		R%icache_stride(%r1), %r23
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	depdi,z		1, 63-PAGE_SHIFT,1, %r25
+ #else
+ 	depwi,z		1, 31-PAGE_SHIFT,1, %r25
+@@ -988,11 +993,12 @@
+ 	bv		%r0(%r2)
+ 	nop
+ 	.exit
+-
+ 	.procend
+ 
+-	.align	128
+-
++	/* align should cover use of rfi in disable_sr_hashing_asm and
++	 * srdis_done.
++	 */
++	.align	256
+ 	.export disable_sr_hashing_asm,code
+ 
+ disable_sr_hashing_asm:
+@@ -1000,28 +1006,26 @@
+ 	.callinfo NO_CALLS
+ 	.entry
+ 
+-	/* Switch to real mode */
+-
+-	ssm		0, %r0			/* relied upon translation! */
+-	nop
+-	nop
++	/*
++	 * Switch to real mode
++	 */
++	/* pcxt_ssm_bug */
++	rsm		PSW_SM_I, %r0
++	load32		PA(1f), %r1
+ 	nop
+ 	nop
+ 	nop
+ 	nop
+ 	nop
+-	
+-	rsm		(PSW_SM_Q|PSW_SM_I), %r0 /* disable Q&I to load the iia queue */
+-	ldil		L%REAL_MODE_PSW, %r1
+-	ldo		R%REAL_MODE_PSW(%r1), %r1
+-	mtctl		%r1, %cr22
++
++	rsm		PSW_SM_Q, %r0		/* prep to load iia queue */
+ 	mtctl		%r0, %cr17		/* Clear IIASQ tail */
+ 	mtctl		%r0, %cr17		/* Clear IIASQ head */
+-	ldil		L%PA(1f), %r1
+-	ldo		R%PA(1f)(%r1), %r1
+ 	mtctl		%r1, %cr18		/* IIAOQ head */
+ 	ldo		4(%r1), %r1
+ 	mtctl		%r1, %cr18		/* IIAOQ tail */
++	load32		REAL_MODE_PSW, %r1
++	mtctl		%r1, %ipsw
+ 	rfi
+ 	nop
+ 
+@@ -1053,27 +1057,31 @@
+ 
+ srdis_pa20:
+ 
+-	/* Disable Space Register Hashing for PCXU,PCXU+,PCXW,PCXW+ */
++	/* Disable Space Register Hashing for PCXU,PCXU+,PCXW,PCXW+,PCXW2 */
+ 
+ 	.word		0x144008bc		/* mfdiag %dr2, %r28 */
+ 	depdi		0, 54,1, %r28		/* clear DIAG_SPHASH_ENAB (bit 54) */
+ 	.word		0x145c1840		/* mtdiag %r28, %dr2 */
+ 
+-srdis_done:
+ 
++srdis_done:
+ 	/* Switch back to virtual mode */
++	rsm		PSW_SM_I, %r0		/* prep to load iia queue */
++	load32 	   	2f, %r1
++	nop
++	nop
++	nop
++	nop
++	nop
+ 
+-	rsm		PSW_SM_Q, %r0		/* clear Q bit to load iia queue */
+-	ldil		L%KERNEL_PSW, %r1
+-	ldo		R%KERNEL_PSW(%r1), %r1
+-	mtctl		%r1, %cr22
++	rsm		PSW_SM_Q, %r0		/* prep to load iia queue */
+ 	mtctl		%r0, %cr17		/* Clear IIASQ tail */
+ 	mtctl		%r0, %cr17		/* Clear IIASQ head */
+-	ldil 	   	L%(2f), %r1
+-	ldo     	R%(2f)(%r1), %r1
+ 	mtctl		%r1, %cr18		/* IIAOQ head */
+ 	ldo		4(%r1), %r1
+ 	mtctl		%r1, %cr18		/* IIAOQ tail */
++	load32		KERNEL_PSW, %r1
++	mtctl		%r1, %ipsw
+ 	rfi
+ 	nop
+ 
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/arch/parisc/kernel/pci-dma.c CVS2_6_12_PA2/arch/parisc/kernel/pci-dma.c
+--- LINUS_2_6_12/arch/parisc/kernel/pci-dma.c	2005-06-17 21:21:52.000000000 -0600
++++ CVS2_6_12_PA2/arch/parisc/kernel/pci-dma.c	2005-06-04 13:09:08.000000000 -0600
+@@ -31,7 +31,7 @@
+ #include <asm/page.h>	/* get_order */
+ #include <asm/pgalloc.h>
+ #include <asm/uaccess.h>
+-
++#include <asm/tlbflush.h>	/* for purge_tlb_*() macros */
+ 
+ static struct proc_dir_entry * proc_gsc_root = NULL;
+ static int pcxl_proc_info(char *buffer, char **start, off_t offset, int length);
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/arch/parisc/kernel/pci.c CVS2_6_12_PA2/arch/parisc/kernel/pci.c
+--- LINUS_2_6_12/arch/parisc/kernel/pci.c	2005-06-17 21:21:52.000000000 -0600
++++ CVS2_6_12_PA2/arch/parisc/kernel/pci.c	2004-11-02 17:57:49.000000000 -0700
+@@ -202,7 +202,8 @@
+ pcibios_link_hba_resources( struct resource *hba_res, struct resource *r)
+ {
+ 	if (!r->parent) {
+-		printk(KERN_EMERG "PCI: Tell willy he's wrong\n");
++		printk(KERN_EMERG "PCI: resource not parented! [%lx-%lx]\n",
++				r->start, r->end);
+ 		r->parent = hba_res;
+ 
+ 		/* reverse link is harder *sigh*  */
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/arch/parisc/kernel/pdc_cons.c CVS2_6_12_PA2/arch/parisc/kernel/pdc_cons.c
+--- LINUS_2_6_12/arch/parisc/kernel/pdc_cons.c	2005-06-17 21:21:52.000000000 -0600
++++ CVS2_6_12_PA2/arch/parisc/kernel/pdc_cons.c	2005-03-15 07:02:43.000000000 -0700
+@@ -41,7 +41,7 @@
+ 
+ /* Define EARLY_BOOTUP_DEBUG to debug kernel related boot problems. 
+  * On production kernels EARLY_BOOTUP_DEBUG should be undefined. */
+-#undef EARLY_BOOTUP_DEBUG
++#define EARLY_BOOTUP_DEBUG
+ 
+ 
+ #include <linux/config.h>
+@@ -49,14 +49,8 @@
+ #include <linux/console.h>
+ #include <linux/string.h>
+ #include <linux/init.h>
+-#include <linux/delay.h>
+-#include <linux/sched.h>
+-#include <linux/interrupt.h>
+ #include <linux/major.h>
+ #include <linux/tty.h>
+-#include <asm/page.h>
+-#include <asm/types.h>
+-#include <asm/system.h>
+ #include <asm/pdc.h>		/* for iodc_call() proto and friends */
+ 
+ 
+@@ -96,7 +90,6 @@
+ }
+ 
+ #if defined(CONFIG_PDC_CONSOLE)
+-#define PDC_CONSOLE_DEVICE pdc_console_device
+ static struct tty_driver * pdc_console_device (struct console *c, int *index)
+ {
+ 	extern struct tty_driver console_driver;
+@@ -104,22 +97,19 @@
+ 	return &console_driver;
+ }
+ #else
+-#define PDC_CONSOLE_DEVICE NULL
++#define pdc_console_device NULL
+ #endif
+ 
+ static struct console pdc_cons = {
+ 	.name =		"ttyB",
+ 	.write =	pdc_console_write,
+-	.device =	PDC_CONSOLE_DEVICE,
++	.device =	pdc_console_device,
+ 	.setup =	pdc_console_setup,
+-	.flags =	CON_BOOT|CON_PRINTBUFFER|CON_ENABLED,
++	.flags =	CON_BOOT | CON_PRINTBUFFER | CON_ENABLED,
+ 	.index =	-1,
+ };
+ 
+ static int pdc_console_initialized;
+-extern unsigned long con_start;	/* kernel/printk.c */
+-extern unsigned long log_end;	/* kernel/printk.c */
+-
+ 
+ static void pdc_console_init_force(void)
+ {
+@@ -146,27 +136,11 @@
+ }
+ 
+ 
+-/* Unregister the pdc console with the printk console layer */
+-void pdc_console_die(void)
+-{
+-	if (!pdc_console_initialized)
+-		return;
+-	--pdc_console_initialized;
+-
+-	printk(KERN_INFO "Switching from PDC console\n");
+-
+-	/* Don't repeat what we've already printed */
+-	con_start = log_end;
+-
+-	unregister_console(&pdc_cons);
+-}
+-
+-
+ /*
+  * Used for emergencies. Currently only used if an HPMC occurs. If an
+  * HPMC occurs, it is possible that the current console may not be
+- * properly initialed after the PDC IO reset. This routine unregisters all
+- * of the current consoles, reinitializes the pdc console and
++ * properly initialised after the PDC IO reset. This routine unregisters
++ * all of the current consoles, reinitializes the pdc console and
+  * registers it.
+  */
+ 
+@@ -177,13 +151,13 @@
+ 	if (pdc_console_initialized)
+ 		return;
+ 
++	/* If we've already seen the output, don't bother to print it again */
++	if (console_drivers != NULL)
++		pdc_cons.flags &= ~CON_PRINTBUFFER;
++
+ 	while ((console = console_drivers) != NULL)
+ 		unregister_console(console_drivers);
+ 
+-	/* Don't repeat what we've already printed */
+-	con_start = log_end;
+-	
+ 	/* force registering the pdc console */
+ 	pdc_console_init_force();
+ }
+-
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/arch/parisc/kernel/perf.c CVS2_6_12_PA2/arch/parisc/kernel/perf.c
+--- LINUS_2_6_12/arch/parisc/kernel/perf.c	2005-06-17 21:21:52.000000000 -0600
++++ CVS2_6_12_PA2/arch/parisc/kernel/perf.c	2005-03-18 10:31:41.000000000 -0700
+@@ -746,7 +746,8 @@
+ 	uint64_t *bptr;
+ 	uint32_t dwords;
+ 	uint32_t *intrigue_rdr;
+-	uint64_t *intrigue_bitmask, tmp64, proc_hpa;
++	uint64_t *intrigue_bitmask, tmp64;
++	void __iomem *runway;
+ 	struct rdr_tbl_ent *tentry;
+ 	int i;
+ 
+@@ -798,15 +799,16 @@
+ 		return -1;
+ 	}
+ 
+-	proc_hpa = cpu_device->hpa;
++	runway = ioremap(cpu_device->hpa, 4096);
+ 
+ 	/* Merge intrigue bits into Runway STATUS 0 */
+-	tmp64 = __raw_readq(proc_hpa + RUNWAY_STATUS) & 0xffecfffffffffffful;
+-	__raw_writeq(tmp64 | (*memaddr++ & 0x0013000000000000ul), proc_hpa + RUNWAY_STATUS);
++	tmp64 = __raw_readq(runway + RUNWAY_STATUS) & 0xffecfffffffffffful;
++	__raw_writeq(tmp64 | (*memaddr++ & 0x0013000000000000ul), 
++		     runway + RUNWAY_STATUS);
+ 	
+ 	/* Write RUNWAY DEBUG registers */
+ 	for (i = 0; i < 8; i++) {
+-		__raw_writeq(*memaddr++, proc_hpa + RUNWAY_DEBUG + i);
++		__raw_writeq(*memaddr++, runway + RUNWAY_DEBUG);
+ 	}
+ 
+ 	return 0; 
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/arch/parisc/kernel/process.c CVS2_6_12_PA2/arch/parisc/kernel/process.c
+--- LINUS_2_6_12/arch/parisc/kernel/process.c	2005-06-17 21:21:52.000000000 -0600
++++ CVS2_6_12_PA2/arch/parisc/kernel/process.c	2005-05-21 19:10:45.000000000 -0600
+@@ -9,7 +9,7 @@
+  *    Copyright (C) 2000-2003 Paul Bame <bame at parisc-linux.org>
+  *    Copyright (C) 2000 Philipp Rumpf <prumpf with tux.org>
+  *    Copyright (C) 2000 David Kennedy <dkennedy with linuxcare.com>
+- *    Copyright (C) 2000 Richard Hirst <rhirst with parisc-lixux.org>
++ *    Copyright (C) 2000 Richard Hirst <rhirst with parisc-linux.org>
+  *    Copyright (C) 2000 Grant Grundler <grundler with parisc-linux.org>
+  *    Copyright (C) 2001 Alan Modra <amodra at parisc-linux.org>
+  *    Copyright (C) 2001-2002 Ryan Bradetich <rbrad at parisc-linux.org>
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/arch/parisc/kernel/real2.S CVS2_6_12_PA2/arch/parisc/kernel/real2.S
+--- LINUS_2_6_12/arch/parisc/kernel/real2.S	2005-06-17 21:21:52.000000000 -0600
++++ CVS2_6_12_PA2/arch/parisc/kernel/real2.S	2005-05-12 23:25:09.000000000 -0600
+@@ -7,8 +7,10 @@
+  * Copyright (C) 2000 Hewlett Packard (Paul Bame bame at puffin.external.hp.com)
+  *
+  */
+-#include <asm/assembly.h>
++#include <linux/config.h>
++
+ #include <asm/psw.h>
++#include <asm/assembly.h>
+ 
+ 	.section	.bss
+ 	.export real_stack
+@@ -20,7 +22,7 @@
+ real64_stack:
+ 	.block	8192
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ #  define REG_SZ 8
+ #else
+ #  define REG_SZ 4
+@@ -50,7 +52,7 @@
+ 
+ real32_call_asm:
+ 	STREG	%rp, -RP_OFFSET(%sp)	/* save RP */
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	callee_save
+ 	ldo	2*REG_SZ(%sp), %sp	/* room for a couple more saves */
+ 	STREG	%r27, -1*REG_SZ(%sp)
+@@ -77,7 +79,7 @@
+ 	b,l	save_control_regs,%r2		/* modifies r1, r2, r28 */
+ 	nop
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	rsm	PSW_SM_W, %r0		/* go narrow */
+ #endif
+ 
+@@ -85,7 +87,7 @@
+ 	bv	0(%r31)
+ 	nop
+ ric_ret:
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	ssm	PSW_SM_W, %r0		/* go wide */
+ #endif
+ 	/* restore CRs before going virtual in case we page fault */
+@@ -97,7 +99,7 @@
+ 
+ 	tovirt_r1 %sp
+ 	LDREG	-REG_SZ(%sp), %sp	/* restore SP */
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	LDREG	-1*REG_SZ(%sp), %r27
+ 	LDREG	-2*REG_SZ(%sp), %r29
+ 	ldo	-2*REG_SZ(%sp), %sp
+@@ -143,24 +145,21 @@
+ /* rfi_virt2real() and rfi_real2virt() could perhaps be adapted for
+  * more general-purpose use by the several places which need RFIs
+  */
+-	.align 128
+ 	.text
++	.align 128
+ rfi_virt2real:
+ 	/* switch to real mode... */
+-	ssm		0,0		/* See "relied upon translation" */
+-	nop				/* PA 2.0 Arch. F-5 */
+-	nop
+-	nop
++	rsm		PSW_SM_I,%r0
++	load32		PA(rfi_v2r_1), %r1
+ 	nop
+ 	nop
+ 	nop
+ 	nop
+ 	nop
+ 	
+-	rsm             (PSW_SM_Q|PSW_SM_I),%r0  /* disable Q & I bits to load iia queue */
++	rsm             PSW_SM_Q,%r0  /* disable Q & I bits to load iia queue */
+ 	mtctl		%r0, %cr17	/* Clear IIASQ tail */
+ 	mtctl		%r0, %cr17	/* Clear IIASQ head */
+-	load32		PA(rfi_v2r_1), %r1
+ 	mtctl		%r1, %cr18	/* IIAOQ head */
+ 	ldo		4(%r1), %r1
+ 	mtctl		%r1, %cr18	/* IIAOQ tail */
+@@ -184,10 +183,8 @@
+ 	.text
+ 	.align 128
+ rfi_real2virt:
+-	ssm		0,0		/* See "relied upon translation" */
+-	nop				/* PA 2.0 Arch. F-5 */
+-	nop
+-	nop
++	rsm		PSW_SM_I,%r0
++	load32		(rfi_r2v_1), %r1
+ 	nop
+ 	nop
+ 	nop
+@@ -197,7 +194,6 @@
+ 	rsm             PSW_SM_Q,%r0    /* disable Q bit to load iia queue */
+ 	mtctl		%r0, %cr17	/* Clear IIASQ tail */
+ 	mtctl		%r0, %cr17	/* Clear IIASQ head */
+-	load32		(rfi_r2v_1), %r1
+ 	mtctl		%r1, %cr18	/* IIAOQ head */
+ 	ldo		4(%r1), %r1
+ 	mtctl		%r1, %cr18	/* IIAOQ tail */
+@@ -218,7 +214,7 @@
+ 	bv	0(%r2)
+ 	nop
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 
+ /************************ 64-bit real-mode calls ***********************/
+ /* This is only usable in wide kernels right now and will probably stay so */
+@@ -296,7 +292,7 @@
+ 	**	comparing function pointers.
+ 	*/
+ __canonicalize_funcptr_for_compare:
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	bve (%r2)
+ #else
+ 	bv %r0(%r2)
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/arch/parisc/kernel/signal.c CVS2_6_12_PA2/arch/parisc/kernel/signal.c
+--- LINUS_2_6_12/arch/parisc/kernel/signal.c	2005-06-17 21:21:52.000000000 -0600
++++ CVS2_6_12_PA2/arch/parisc/kernel/signal.c	2005-06-05 21:10:06.000000000 -0600
+@@ -637,6 +637,7 @@
+ 			/* Stack is 64-byte aligned, and we only 
+ 			 * need to flush 1 cache line */
+ 			asm("fdc 0(%%sr3, %0)\n"
++			    "sync\n"
+ 			    "fic 0(%%sr3, %0)\n"
+ 			    "sync\n"
+ 			    : : "r"(regs->gr[30]));
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/arch/parisc/kernel/smp.c CVS2_6_12_PA2/arch/parisc/kernel/smp.c
+--- LINUS_2_6_12/arch/parisc/kernel/smp.c	2005-06-17 21:21:52.000000000 -0600
++++ CVS2_6_12_PA2/arch/parisc/kernel/smp.c	2005-05-12 23:25:09.000000000 -0600
+@@ -18,7 +18,7 @@
+ */
+ #undef ENTRY_SYS_CPUS	/* syscall support for iCOD-like functionality */
+ 
+-#include <linux/autoconf.h>
++#include <linux/config.h>
+ 
+ #include <linux/types.h>
+ #include <linux/spinlock.h>
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/arch/parisc/kernel/syscall.S CVS2_6_12_PA2/arch/parisc/kernel/syscall.S
+--- LINUS_2_6_12/arch/parisc/kernel/syscall.S	2005-06-17 21:21:52.000000000 -0600
++++ CVS2_6_12_PA2/arch/parisc/kernel/syscall.S	2005-05-12 23:25:09.000000000 -0600
+@@ -4,8 +4,9 @@
+  * System call entry code Copyright (c) Matthew Wilcox 1999 <willy at bofh.ai>
+  * Licensed under the GNU GPL.
+  * thanks to Philipp Rumpf, Mike Shaver and various others
+- * sorry about the wall, puffin..
++ * sorry about the wall, puffin.
+  */
++#include <linux/config.h> /* for CONFIG_SMP */
+ 
+ #include <asm/offsets.h>
+ #include <asm/unistd.h>
+@@ -22,15 +23,13 @@
+ 	 */
+ #define KILL_INSN	break	0,0
+ 
+-#include <linux/config.h> /* for CONFIG_SMP */
+-
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	.level          2.0w
+ #else
+ 	.level		1.1
+ #endif
+ 
+-#ifndef __LP64__
++#ifndef CONFIG_64BIT
+ 	.macro fixup_branch,lbl
+ 	b	    \lbl
+ 	.endm
+@@ -103,7 +102,7 @@
+ 	mfsp    %sr7,%r1                        /* save user sr7 */
+ 	mtsp    %r1,%sr3                        /* and store it in sr3 */
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	/* for now we can *always* set the W bit on entry to the syscall
+ 	 * since we don't support wide userland processes.  We could
+ 	 * also save the current SM other than in r0 and restore it on
+@@ -155,7 +154,7 @@
+ 	STREG	%r19, TASK_PT_GR19(%r1)
+ 
+ 	LDREGM	-FRAME_SIZE(%r30), %r2		/* get users sp back */
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	extrd,u	%r2,63,1,%r19			/* W hidden in bottom bit */
+ #if 0
+ 	xor	%r19,%r2,%r2			/* clear bottom bit */
+@@ -186,7 +185,7 @@
+ 
+ 	loadgp
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	ldo	-16(%r30),%r29			/* Reference param save area */
+ 	copy	%r19,%r2			/* W bit back to r2 */
+ #else
+@@ -205,7 +204,7 @@
+ 	/* Note!  We cannot use the syscall table that is mapped
+ 	nearby since the gateway page is mapped execute-only. */
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	ldil	L%sys_call_table, %r1
+ 	or,=	%r2,%r2,%r2
+ 	addil	L%(sys_call_table64-sys_call_table), %r1
+@@ -321,7 +320,7 @@
+ 	LDREG   TASK_PT_GR25(%r1), %r25
+ 	LDREG   TASK_PT_GR24(%r1), %r24
+ 	LDREG   TASK_PT_GR23(%r1), %r23
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	LDREG   TASK_PT_GR22(%r1), %r22
+ 	LDREG   TASK_PT_GR21(%r1), %r21
+ 	ldo	-16(%r30),%r29			/* Reference param save area */
+@@ -350,7 +349,7 @@
+ tracesys_exit:
+ 	ldo     -THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r1      /* get task ptr */
+ 	LDREG	TI_TASK(%r1), %r1
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	ldo	-16(%r30),%r29			/* Reference param save area */
+ #endif
+ 	bl	syscall_trace, %r2
+@@ -371,7 +370,7 @@
+ tracesys_sigexit:
+ 	ldo     -THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r1      /* get task ptr */
+ 	LDREG	0(%r1), %r1
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	ldo	-16(%r30),%r29			/* Reference param save area */
+ #endif
+ 	bl	syscall_trace, %r2
+@@ -404,7 +403,7 @@
+ 	gate	.+8, %r0
+ 	depi	3, 31, 2, %r31	/* Ensure we return to userspace */
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	/* FIXME: If we are a 64-bit kernel just
+ 	 *        turn this on unconditionally.
+ 	 */
+@@ -440,7 +439,7 @@
+ 	/* Fall through: Return to userspace */
+ 
+ lws_exit:
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	/* decide whether to reset the wide mode bit
+ 	 *
+ 	 * For a syscall, the W bit is stored in the lowest bit
+@@ -486,7 +485,7 @@
+ 
+ 	/* ELF64 Process entry path */
+ lws_compare_and_swap64:
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	b,n	lws_compare_and_swap
+ #else
+ 	/* If we are not a 64-bit kernel, then we don't
+@@ -497,7 +496,7 @@
+ 
+ 	/* ELF32 Process entry path */
+ lws_compare_and_swap32:
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	/* Clip all the input registers */
+ 	depdi	0, 31, 32, %r26
+ 	depdi	0, 31, 32, %r25
+@@ -528,6 +527,7 @@
+ 		We *must* giveup this call and fail.
+ 	*/
+ 	ldw	4(%sr2,%r20), %r28			/* Load thread register */
++	/* WARNING: If cr27 cycles to the same value we have problems */
+ 	mfctl	%cr27, %r21				/* Get current thread register */
+ 	cmpb,<>,n	%r21, %r28, cas_lock		/* Called recursive? */
+ 	b	lws_exit				/* Return error! */
+@@ -608,7 +608,7 @@
+ 	   the other for the store. Either return -EFAULT.
+ 	   Each of the entries must be relocated. */
+ 	.section __ex_table,"aw"
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	/* Pad the address calculation */
+ 	.word	0,(2b - linux_gateway_page)
+ 	.word	0,(3b - linux_gateway_page)
+@@ -619,7 +619,7 @@
+ 	.previous
+ 
+ 	.section __ex_table,"aw"
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	/* Pad the address calculation */
+ 	.word	0,(1b - linux_gateway_page)
+ 	.word	0,(3b - linux_gateway_page)
+@@ -638,7 +638,7 @@
+ 
+ 	/* Relocate symbols assuming linux_gateway_page is mapped
+ 	   to virtual address 0x0 */
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	/* FIXME: The code will always be on the gateay page
+ 		  and thus it will be on the first 4k, the
+ 		  assembler seems to think that the final
+@@ -666,7 +666,7 @@
+ sys_call_table:
+ #include "syscall_table.S"
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	.align 4096
+ 	.export sys_call_table64
+ .Lsys_call_table64:
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/arch/parisc/kernel/syscall_table.S CVS2_6_12_PA2/arch/parisc/kernel/syscall_table.S
+--- LINUS_2_6_12/arch/parisc/kernel/syscall_table.S	2005-06-17 21:21:52.000000000 -0600
++++ CVS2_6_12_PA2/arch/parisc/kernel/syscall_table.S	2005-05-14 22:38:00.000000000 -0600
+@@ -35,7 +35,7 @@
+ #undef ENTRY_UHOH
+ #undef ENTRY_COMP
+ #undef ENTRY_OURS
+-#if defined(__LP64__) && !defined(SYSCALL_TABLE_64BIT)
++#if defined(CONFIG_64BIT) && !defined(SYSCALL_TABLE_64BIT)
+ /* Use ENTRY_SAME for 32-bit syscalls which are the same on wide and
+  * narrow palinux.  Use ENTRY_DIFF for those where a 32-bit specific
+  * implementation is required on wide palinux.  Use ENTRY_COMP where
+@@ -46,7 +46,7 @@
+ #define ENTRY_UHOH(_name_) .dword sys32_##unimplemented
+ #define ENTRY_OURS(_name_) .dword parisc_##_name_
+ #define ENTRY_COMP(_name_) .dword compat_sys_##_name_
+-#elif defined(__LP64__) && defined(SYSCALL_TABLE_64BIT)
++#elif defined(CONFIG_64BIT) && defined(SYSCALL_TABLE_64BIT)
+ #define ENTRY_SAME(_name_) .dword sys_##_name_
+ #define ENTRY_DIFF(_name_) .dword sys_##_name_
+ #define ENTRY_UHOH(_name_) .dword sys_##_name_
+@@ -368,5 +368,9 @@
+ 	ENTRY_COMP(mbind)		/* 260 */
+ 	ENTRY_COMP(get_mempolicy)
+ 	ENTRY_COMP(set_mempolicy)
++	ENTRY_SAME(ni_syscall)	/* 263: reserved for vserver */
++	ENTRY_SAME(add_key)
++	ENTRY_SAME(request_key)		/* 265 */
++	ENTRY_SAME(keyctl)
+ 	/* Nothing yet */
+ 
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/arch/parisc/kernel/time.c CVS2_6_12_PA2/arch/parisc/kernel/time.c
+--- LINUS_2_6_12/arch/parisc/kernel/time.c	2005-06-17 21:21:52.000000000 -0600
++++ CVS2_6_12_PA2/arch/parisc/kernel/time.c	2005-04-09 00:23:13.000000000 -0600
+@@ -89,14 +89,6 @@
+ 		}
+ 	}
+     
+-#ifdef CONFIG_CHASSIS_LCD_LED
+-	/* Only schedule the led tasklet on cpu 0, and only if it
+-	 * is enabled.
+-	 */
+-	if (cpu == 0 && !atomic_read(&led_tasklet.count))
+-		tasklet_schedule(&led_tasklet);
+-#endif
+-
+ 	/* check soft power switch status */
+ 	if (cpu == 0 && !atomic_read(&power_tasklet.count))
+ 		tasklet_schedule(&power_tasklet);
+@@ -104,6 +96,24 @@
+ 	return IRQ_HANDLED;
+ }
+ 
++
++unsigned long profile_pc(struct pt_regs *regs)
++{
++	unsigned long pc = instruction_pointer(regs);
++
++	if (regs->gr[0] & PSW_N)
++		pc -= 4;
++
++#ifdef CONFIG_SMP
++	if (in_lock_functions(pc))
++		pc = regs->gr[2];
++#endif
++
++	return pc;
++}
++EXPORT_SYMBOL(profile_pc);
++
++
+ /*** converted from ia64 ***/
+ /*
+  * Return the number of micro-seconds that elapsed since the last
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/arch/parisc/kernel/unaligned.c CVS2_6_12_PA2/arch/parisc/kernel/unaligned.c
+--- LINUS_2_6_12/arch/parisc/kernel/unaligned.c	2005-06-17 21:21:52.000000000 -0600
++++ CVS2_6_12_PA2/arch/parisc/kernel/unaligned.c	2005-05-19 18:05:12.000000000 -0600
+@@ -513,15 +513,18 @@
+ 	register int flop=0;	/* true if this is a flop */
+ 
+ 	/* log a message with pacing */
+-	if (user_mode(regs))
+-	{
+-		if (unaligned_count > 5 && jiffies - last_time > 5*HZ)
+-		{
++	if (user_mode(regs)) {
++                if (current->thread.flags & PARISC_UAC_SIGBUS) {
++                        goto force_sigbus;
++                }
++
++		if (unaligned_count > 5 && jiffies - last_time > 5*HZ) {
+ 			unaligned_count = 0;
+ 			last_time = jiffies;
+ 		}
+-		if (++unaligned_count < 5)
+-		{
++
++		if (!(current->thread.flags & PARISC_UAC_NOPRINT) 
++                    && ++unaligned_count < 5) {
+ 			char buf[256];
+ 			sprintf(buf, "%s(%d): unaligned access to 0x" RFMT " at ip=0x" RFMT "\n",
+ 				current->comm, current->pid, regs->ior, regs->iaoq[0]);
+@@ -530,6 +533,7 @@
+ 			show_regs(regs);
+ #endif		
+ 		}
++
+ 		if (!unaligned_enabled)
+ 			goto force_sigbus;
+ 	}
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/block/Kconfig CVS2_6_12_PA2/drivers/block/Kconfig
+--- LINUS_2_6_12/drivers/block/Kconfig	2005-06-17 21:21:57.000000000 -0600
++++ CVS2_6_12_PA2/drivers/block/Kconfig	2005-05-08 20:00:21.000000000 -0600
+@@ -6,7 +6,7 @@
+ 
+ config BLK_DEV_FD
+ 	tristate "Normal floppy disk support"
+-	depends on (!ARCH_S390 && !M68K && !IA64 && !UML && !ARM) || Q40 || (SUN3X && BROKEN) || ARCH_RPC || ARCH_EBSA285
++	depends on (!ARCH_S390 && !M68K && !IA64 && !UML && !ARM) || Q40 || (SUN3X && BROKEN) || ARCH_RPC || ARCH_EBSA285 || (PARISC && BROKEN)
+ 	---help---
+ 	  If you want to use the floppy disk drive(s) of your PC under Linux,
+ 	  say Y. Information about this driver, especially important for IBM
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/ide/Kconfig CVS2_6_12_PA2/drivers/ide/Kconfig
+--- LINUS_2_6_12/drivers/ide/Kconfig	2005-06-17 21:21:58.000000000 -0600
++++ CVS2_6_12_PA2/drivers/ide/Kconfig	2005-03-18 06:16:50.000000000 -0700
+@@ -610,7 +610,7 @@
+ 	tristate "NS87415 chipset support"
+ 	help
+ 	  This driver adds detection and support for the NS87415 chip
+-	  (used in SPARC64, among others).
++	  (used mainly on SPARC64 and PA-RISC machines).
+ 
+ 	  Please read the comments at the top of <file:drivers/ide/pci/ns87415.c>.
+ 
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/input/keyboard/hil_kbd.c CVS2_6_12_PA2/drivers/input/keyboard/hil_kbd.c
+--- LINUS_2_6_12/drivers/input/keyboard/hil_kbd.c	2005-06-17 21:21:59.000000000 -0600
++++ CVS2_6_12_PA2/drivers/input/keyboard/hil_kbd.c	2005-03-25 22:00:08.000000000 -0700
+@@ -204,7 +204,7 @@
+ 	hil_packet packet;
+ 	int idx;
+ 
+-	kbd = (struct hil_kbd *)serio->private;
++	kbd = serio_get_drvdata(serio);
+ 	if (kbd == NULL) {
+ 		BUG();
+ 		return IRQ_HANDLED;
+@@ -234,7 +234,7 @@
+ {
+ 	struct hil_kbd *kbd;
+ 
+-	kbd = (struct hil_kbd *)serio->private;
++	kbd = serio_get_drvdata(serio);
+ 	if (kbd == NULL) {
+ 		BUG();
+ 		return;
+@@ -245,20 +245,20 @@
+ 	kfree(kbd);
+ }
+ 
+-static void hil_kbd_connect(struct serio *serio, struct serio_driver *drv)
++static int hil_kbd_connect(struct serio *serio, struct serio_driver *drv)
+ {
+ 	struct hil_kbd	*kbd;
+ 	uint8_t		did, *idd;
+ 	int		i;
+ 	
+-	if (serio->type != (SERIO_HIL_MLC | SERIO_HIL)) return;
+-
+-	if (!(kbd = kmalloc(sizeof(struct hil_kbd), GFP_KERNEL))) return;
++	kbd = kmalloc(sizeof(*kbd), GFP_KERNEL);
++	if (!kbd)
++		return -ENOMEM;
+ 	memset(kbd, 0, sizeof(struct hil_kbd));
+ 
+ 	if (serio_open(serio, drv)) goto bail0;
+ 
+-	serio->private = kbd;
++	serio_set_drvdata(serio, kbd);
+ 	kbd->serio = serio;
+ 	kbd->dev.private = kbd;
+ 
+@@ -342,19 +342,31 @@
+ 	down(&(kbd->sem));
+ 	up(&(kbd->sem));
+ 
+-	return;
++	return 0;
+  bail1:
+ 	serio_close(serio);
+  bail0:
+ 	kfree(kbd);
++	serio_set_drvdata(serio, NULL);
++	return -EIO;
+ }
+ 
++static struct serio_device_id hil_kbd_ids[] = {
++	{
++		.type = SERIO_HIL_MLC,
++		.proto = SERIO_HIL,
++		.id = SERIO_ANY,
++		.extra = SERIO_ANY,
++	},
++	{ 0 }
++};
+ 
+ struct serio_driver hil_kbd_serio_drv = {
+ 	.driver		= {
+ 		.name	= "hil_kbd",
+ 	},
+ 	.description	= "HP HIL keyboard driver",
++	.id_table	= hil_kbd_ids,
+ 	.connect 	= hil_kbd_connect,
+ 	.disconnect 	= hil_kbd_disconnect,
+ 	.interrupt 	= hil_kbd_interrupt
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/input/keyboard/hilkbd.c CVS2_6_12_PA2/drivers/input/keyboard/hilkbd.c
+--- LINUS_2_6_12/drivers/input/keyboard/hilkbd.c	2005-06-17 21:21:59.000000000 -0600
++++ CVS2_6_12_PA2/drivers/input/keyboard/hilkbd.c	2005-01-11 07:11:34.000000000 -0700
+@@ -22,7 +22,7 @@
+ #include <linux/errno.h>
+ #include <linux/input.h>
+ #include <linux/init.h>
+-#include <linux/irq.h>
++#include <linux/interrupt.h>
+ #include <linux/hil.h>
+ #include <linux/spinlock.h>
+ 
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/input/mouse/hil_ptr.c CVS2_6_12_PA2/drivers/input/mouse/hil_ptr.c
+--- LINUS_2_6_12/drivers/input/mouse/hil_ptr.c	2005-06-17 21:21:59.000000000 -0600
++++ CVS2_6_12_PA2/drivers/input/mouse/hil_ptr.c	2005-03-25 22:00:10.000000000 -0700
+@@ -196,7 +196,7 @@
+ 	hil_packet packet;
+ 	int idx;
+ 
+-	ptr = (struct hil_ptr *)serio->private;
++	ptr = serio_get_drvdata(serio);
+ 	if (ptr == NULL) {
+ 		BUG();
+ 		return IRQ_HANDLED;
+@@ -227,7 +227,7 @@
+ {
+ 	struct hil_ptr *ptr;
+ 
+-	ptr = (struct hil_ptr *)serio->private;
++	ptr = serio_get_drvdata(serio);
+ 	if (ptr == NULL) {
+ 		BUG();
+ 		return;
+@@ -238,21 +238,19 @@
+ 	kfree(ptr);
+ }
+ 
+-static void hil_ptr_connect(struct serio *serio, struct serio_driver *driver)
++static int hil_ptr_connect(struct serio *serio, struct serio_driver *driver)
+ {
+ 	struct hil_ptr	*ptr;
+ 	char		*txt;
+ 	unsigned int	i, naxsets, btntype;
+ 	uint8_t		did, *idd;
+ 
+-	if (serio->type != (SERIO_HIL_MLC | SERIO_HIL)) return;
+-
+-	if (!(ptr = kmalloc(sizeof(struct hil_ptr), GFP_KERNEL))) return;
++	if (!(ptr = kmalloc(sizeof(struct hil_ptr), GFP_KERNEL))) return -ENOMEM;
+ 	memset(ptr, 0, sizeof(struct hil_ptr));
+ 
+ 	if (serio_open(serio, driver)) goto bail0;
+ 
+-	serio->private = ptr;
++	serio_set_drvdata(serio, ptr);
+ 	ptr->serio = serio;
+ 	ptr->dev.private = ptr;
+ 
+@@ -380,23 +378,34 @@
+ 		(btntype == BTN_MOUSE) ? "HIL mouse":"HIL tablet or touchpad",
+ 		did);
+ 
+-	return;
++	return 0;
+  bail1:
+ 	serio_close(serio);
+  bail0:
+ 	kfree(ptr);
+-	return;
++	serio_set_drvdata(serio, NULL);
++	return -ENODEV;
+ }
+ 
++static struct serio_device_id hil_ptr_ids[] = {
++	{
++		.type = SERIO_HIL_MLC,
++		.proto = SERIO_HIL,
++		.id = SERIO_ANY,
++		.extra = SERIO_ANY,
++	},
++	{ 0 }
++};
+ 
+ static struct serio_driver hil_ptr_serio_driver = {
+ 	.driver		= {
+ 		.name	= "hil_ptr",
+ 	},
+ 	.description	= "HP HIL mouse/tablet driver",
+-	.connect =	hil_ptr_connect,
+-	.disconnect =	hil_ptr_disconnect,
+-	.interrupt =	hil_ptr_interrupt
++	.id_table	= hil_ptr_ids,
++	.connect	= hil_ptr_connect,
++	.disconnect	= hil_ptr_disconnect,
++	.interrupt	= hil_ptr_interrupt
+ };
+ 
+ static int __init hil_ptr_init(void)
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/input/serio/hil_mlc.c CVS2_6_12_PA2/drivers/input/serio/hil_mlc.c
+--- LINUS_2_6_12/drivers/input/serio/hil_mlc.c	2005-06-17 21:21:59.000000000 -0600
++++ CVS2_6_12_PA2/drivers/input/serio/hil_mlc.c	2005-04-04 14:46:50.000000000 -0600
+@@ -801,7 +801,8 @@
+ 	struct hil_mlc_serio_map *map;
+ 	struct hil_mlc *mlc;
+ 
+-	if (serio->private != NULL) return -EBUSY;
++	if (serio_get_drvdata(serio) != NULL)
++		return -EBUSY;
+ 
+ 	map = serio->port_data;
+ 	if (map == NULL) {
+@@ -832,11 +833,18 @@
+ 		return;
+ 	}
+ 
+-	serio->private = NULL;
++	serio_set_drvdata(serio, NULL);
+ 	serio->drv = NULL;
+ 	/* TODO wake up interruptable */
+ }
+ 
++static struct serio_device_id hil_mlc_serio_id = {
++	.type = SERIO_HIL_MLC,
++	.proto = SERIO_HIL,
++	.extra = SERIO_ANY,
++	.id = SERIO_ANY,
++};
++
+ int hil_mlc_register(hil_mlc *mlc) {
+ 	int i;
+         unsigned long flags;
+@@ -867,7 +875,7 @@
+ 		mlc_serio = kmalloc(sizeof(*mlc_serio), GFP_KERNEL);
+ 		mlc->serio[i] = mlc_serio;
+ 		memset(mlc_serio, 0, sizeof(*mlc_serio));
+-		mlc_serio->type			= SERIO_HIL | SERIO_HIL_MLC;
++		mlc_serio->id			= hil_mlc_serio_id;
+ 		mlc_serio->write		= hil_mlc_serio_write;
+ 		mlc_serio->open			= hil_mlc_serio_open;
+ 		mlc_serio->close		= hil_mlc_serio_close;
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/isdn/hisax/Kconfig CVS2_6_12_PA2/drivers/isdn/hisax/Kconfig
+--- LINUS_2_6_12/drivers/isdn/hisax/Kconfig	2005-06-17 21:22:00.000000000 -0600
++++ CVS2_6_12_PA2/drivers/isdn/hisax/Kconfig	2005-03-18 06:16:55.000000000 -0700
+@@ -110,7 +110,7 @@
+ 
+ config HISAX_TELESPCI
+ 	bool "Teles PCI"
+-	depends on PCI && (BROKEN || !(SPARC64 || PPC))
++	depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K))
+ 	help
+ 	  This enables HiSax support for the Teles PCI.
+ 	  See <file:Documentation/isdn/README.HiSax> on how to configure it.
+@@ -237,7 +237,7 @@
+ 
+ config HISAX_NETJET
+ 	bool "NETjet card"
+-	depends on PCI && (BROKEN || !(SPARC64 || PPC))
++	depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K))
+ 	help
+ 	  This enables HiSax support for the NetJet from Traverse
+ 	  Technologies.
+@@ -248,7 +248,7 @@
+ 
+ config HISAX_NETJET_U
+ 	bool "NETspider U card"
+-	depends on PCI && (BROKEN || !(SPARC64 || PPC))
++	depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K))
+ 	help
+ 	  This enables HiSax support for the Netspider U interface ISDN card
+ 	  from Traverse Technologies.
+@@ -316,7 +316,7 @@
+ 
+ config HISAX_HFC_PCI
+ 	bool "HFC PCI-Bus cards"
+-	depends on PCI && (BROKEN || !(SPARC64 || PPC))
++	depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K))
+ 	help
+ 	  This enables HiSax support for the HFC-S PCI 2BDS0 based cards.
+ 
+@@ -343,14 +343,14 @@
+ 
+ config HISAX_ENTERNOW_PCI
+ 	bool "Formula-n enter:now PCI card"
+-	depends on PCI && (BROKEN || !(SPARC64 || PPC))
++	depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K))
+ 	help
+ 	  This enables HiSax support for the Formula-n enter:now PCI
+ 	  ISDN card.
+ 
+ config HISAX_AMD7930
+ 	bool "Am7930 (EXPERIMENTAL)"
+-	depends on EXPERIMENTAL && (SPARC32 || SPARC64)
++	depends on EXPERIMENTAL && SPARC
+ 	help
+ 	  This enables HiSax support for the AMD7930 chips on some SPARCs.
+ 	  This code is not finished yet.
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/isdn/pcbit/Kconfig CVS2_6_12_PA2/drivers/isdn/pcbit/Kconfig
+--- LINUS_2_6_12/drivers/isdn/pcbit/Kconfig	2005-06-17 21:22:00.000000000 -0600
++++ CVS2_6_12_PA2/drivers/isdn/pcbit/Kconfig	2005-03-07 08:07:30.000000000 -0700
+@@ -3,7 +3,7 @@
+ #
+ config ISDN_DRV_PCBIT
+ 	tristate "PCBIT-D support"
+-	depends on ISDN_I4L && ISA && (BROKEN || !PPC)
++	depends on ISDN_I4L && ISA && (BROKEN || X86)
+ 	help
+ 	  This enables support for the PCBIT ISDN-card.  This card is
+ 	  manufactured in Portugal by Octal.  For running this card,
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/net/tulip/media.c CVS2_6_12_PA2/drivers/net/tulip/media.c
+--- LINUS_2_6_12/drivers/net/tulip/media.c	2005-06-17 21:22:02.000000000 -0600
++++ CVS2_6_12_PA2/drivers/net/tulip/media.c	2005-06-11 11:12:08.000000000 -0600
+@@ -44,8 +44,10 @@
+ 
+ /* MII transceiver control section.
+    Read and write the MII registers using software-generated serial
+-   MDIO protocol.  See the MII specifications or DP83840A data sheet
+-   for details. */
++   MDIO protocol.
++   See IEEE 802.3-2002.pdf (Section 2, Chapter "22.2.4 Management functions")
++   or DP83840A data sheet for more details.
++   */
+ 
+ int tulip_mdio_read(struct net_device *dev, int phy_id, int location)
+ {
+@@ -297,24 +299,56 @@
+ 				u16 *reset_sequence = &((u16*)(p+3))[init_length];
+ 				int reset_length = p[2 + init_length*2];
+ 				misc_info = reset_sequence + reset_length;
+-				if (startup)
++				if (startup) {
++					int timeout = 10;	/* max 1 ms */
+ 					for (i = 0; i < reset_length; i++)
+ 						iowrite32(get_u16(&reset_sequence[i]) << 16, ioaddr + CSR15);
++				
++					/* flush posted writes */
++					ioread32(ioaddr + CSR15);
++
++					/* Sect 3.10.3 in DP83840A.pdf (p39) */
++					udelay(500);
++
++					/* Section 4.2 in DP83840A.pdf (p43) */
++					/* and IEEE 802.3 "22.2.4.1.1 Reset" */
++					while (timeout-- &&
++						(tulip_mdio_read (dev, phy_num, MII_BMCR) & BMCR_RESET))
++						udelay(100);
++				}
+ 				for (i = 0; i < init_length; i++)
+ 					iowrite32(get_u16(&init_sequence[i]) << 16, ioaddr + CSR15);
++
++				ioread32(ioaddr + CSR15);	/* flush posted writes */
+ 			} else {
+ 				u8 *init_sequence = p + 2;
+ 				u8 *reset_sequence = p + 3 + init_length;
+ 				int reset_length = p[2 + init_length];
+ 				misc_info = (u16*)(reset_sequence + reset_length);
+ 				if (startup) {
++					int timeout = 10;	/* max 1 ms */
+ 					iowrite32(mtable->csr12dir | 0x100, ioaddr + CSR12);
+ 					for (i = 0; i < reset_length; i++)
+ 						iowrite32(reset_sequence[i], ioaddr + CSR12);
++
++					/* flush posted writes */
++					ioread32(ioaddr + CSR12);
++
++					/* Sect 3.10.3 in DP83840A.pdf (p39) */
++					udelay(500);
++
++					/* Section 4.2 in DP83840A.pdf (p43) */
++					/* and IEEE 802.3 "22.2.4.1.1 Reset" */
++					while (timeout-- &&
++						(tulip_mdio_read (dev, phy_num, MII_BMCR) & BMCR_RESET))
++						udelay(100);
+ 				}
+ 				for (i = 0; i < init_length; i++)
+ 					iowrite32(init_sequence[i], ioaddr + CSR12);
++
++				ioread32(ioaddr + CSR12);	/* flush posted writes */
+ 			}
++
+ 			tmp_info = get_u16(&misc_info[1]);
+ 			if (tmp_info)
+ 				tp->advertising[phy_num] = tmp_info | 1;
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/net/tulip/tulip.h CVS2_6_12_PA2/drivers/net/tulip/tulip.h
+--- LINUS_2_6_12/drivers/net/tulip/tulip.h	2005-06-17 21:22:02.000000000 -0600
++++ CVS2_6_12_PA2/drivers/net/tulip/tulip.h	2005-03-18 06:17:09.000000000 -0700
+@@ -475,8 +475,11 @@
+ 			udelay(10);
+ 
+ 		if (!i)
+-			printk(KERN_DEBUG "%s: tulip_stop_rxtx() failed\n",
+-					pci_name(tp->pdev));
++			printk(KERN_DEBUG "%s: tulip_stop_rxtx() failed"
++					" (CSR5 0x%x CSR6 0x%x)\n",
++					pci_name(tp->pdev),
++					ioread32(ioaddr + CSR5),
++					ioread32(ioaddr + CSR6));
+ 	}
+ }
+ 
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/net/tulip/tulip_core.c CVS2_6_12_PA2/drivers/net/tulip/tulip_core.c
+--- LINUS_2_6_12/drivers/net/tulip/tulip_core.c	2005-06-17 21:22:02.000000000 -0600
++++ CVS2_6_12_PA2/drivers/net/tulip/tulip_core.c	2005-05-25 11:12:47.000000000 -0600
+@@ -22,7 +22,7 @@
+ #else
+ #define DRV_VERSION	"1.1.13"
+ #endif
+-#define DRV_RELDATE	"May 11, 2002"
++#define DRV_RELDATE	"December 15, 2004"
+ 
+ 
+ #include <linux/module.h>
+@@ -148,7 +148,7 @@
+ 	HAS_MII | HAS_MEDIA_TABLE | CSR12_IN_SROM | HAS_PCI_MWI, tulip_timer },
+ 
+   /* DC21142, DC21143 */
+-  { "Digital DS21143 Tulip", 128, 0x0801fbff,
++  { "Digital DS21142/DS21143 Tulip", 128, 0x0801fbff,
+ 	HAS_MII | HAS_MEDIA_TABLE | ALWAYS_CHECK_MII | HAS_ACPI | HAS_NWAY
+ 	| HAS_INTR_MITIGATION | HAS_PCI_MWI, t21142_timer },
+ 
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/parisc/ccio-dma.c CVS2_6_12_PA2/drivers/parisc/ccio-dma.c
+--- LINUS_2_6_12/drivers/parisc/ccio-dma.c	2005-06-17 21:22:02.000000000 -0600
++++ CVS2_6_12_PA2/drivers/parisc/ccio-dma.c	2005-05-21 20:22:23.000000000 -0600
+@@ -100,9 +100,9 @@
+ #define DBG_RUN_SG(x...)
+ #endif
+ 
+-#define CCIO_INLINE	/* inline */
+-#define WRITE_U32(value, addr) gsc_writel(value, (u32 *)(addr))
+-#define READ_U32(addr) gsc_readl((u32 *)(addr))
++#define CCIO_INLINE	inline
++#define WRITE_U32(value, addr) __raw_writel(value, addr)
++#define READ_U32(addr) __raw_readl(addr)
+ 
+ #define U2_IOA_RUNWAY 0x580
+ #define U2_BC_GSC     0x501
+@@ -115,28 +115,28 @@
+ 
+ struct ioa_registers {
+         /* Runway Supervisory Set */
+-        volatile int32_t    unused1[12];
+-        volatile uint32_t   io_command;             /* Offset 12 */
+-        volatile uint32_t   io_status;              /* Offset 13 */
+-        volatile uint32_t   io_control;             /* Offset 14 */
+-        volatile int32_t    unused2[1];
++        int32_t    unused1[12];
++        uint32_t   io_command;             /* Offset 12 */
++        uint32_t   io_status;              /* Offset 13 */
++        uint32_t   io_control;             /* Offset 14 */
++        int32_t    unused2[1];
+ 
+         /* Runway Auxiliary Register Set */
+-        volatile uint32_t   io_err_resp;            /* Offset  0 */
+-        volatile uint32_t   io_err_info;            /* Offset  1 */
+-        volatile uint32_t   io_err_req;             /* Offset  2 */
+-        volatile uint32_t   io_err_resp_hi;         /* Offset  3 */
+-        volatile uint32_t   io_tlb_entry_m;         /* Offset  4 */
+-        volatile uint32_t   io_tlb_entry_l;         /* Offset  5 */
+-        volatile uint32_t   unused3[1];
+-        volatile uint32_t   io_pdir_base;           /* Offset  7 */
+-        volatile uint32_t   io_io_low_hv;           /* Offset  8 */
+-        volatile uint32_t   io_io_high_hv;          /* Offset  9 */
+-        volatile uint32_t   unused4[1];
+-        volatile uint32_t   io_chain_id_mask;       /* Offset 11 */
+-        volatile uint32_t   unused5[2];
+-        volatile uint32_t   io_io_low;              /* Offset 14 */
+-        volatile uint32_t   io_io_high;             /* Offset 15 */
++        uint32_t   io_err_resp;            /* Offset  0 */
++        uint32_t   io_err_info;            /* Offset  1 */
++        uint32_t   io_err_req;             /* Offset  2 */
++        uint32_t   io_err_resp_hi;         /* Offset  3 */
++        uint32_t   io_tlb_entry_m;         /* Offset  4 */
++        uint32_t   io_tlb_entry_l;         /* Offset  5 */
++        uint32_t   unused3[1];
++        uint32_t   io_pdir_base;           /* Offset  7 */
++        uint32_t   io_io_low_hv;           /* Offset  8 */
++        uint32_t   io_io_high_hv;          /* Offset  9 */
++        uint32_t   unused4[1];
++        uint32_t   io_chain_id_mask;       /* Offset 11 */
++        uint32_t   unused5[2];
++        uint32_t   io_io_low;              /* Offset 14 */
++        uint32_t   io_io_high;             /* Offset 15 */
+ };
+ 
+ /*
+@@ -226,7 +226,7 @@
+ */
+ 
+ struct ioc {
+-	struct ioa_registers *ioc_hpa;  /* I/O MMU base address */
++	struct ioa_registers __iomem *ioc_regs;  /* I/O MMU base address */
+ 	u8  *res_map;	                /* resource map, bit == pdir entry */
+ 	u64 *pdir_base;	                /* physical base address */
+ 	u32 pdir_size; 			/* bytes, function of IOV Space size */
+@@ -636,7 +636,7 @@
+ 	byte_cnt += chain_size;
+ 
+ 	while(byte_cnt > chain_size) {
+-		WRITE_U32(CMD_TLB_PURGE | iovp, &ioc->ioc_hpa->io_command);
++		WRITE_U32(CMD_TLB_PURGE | iovp, &ioc->ioc_regs->io_command);
+ 		iovp += chain_size;
+ 		byte_cnt -= chain_size;
+ 	}
+@@ -1314,14 +1314,13 @@
+ 
+ 	ioc->pdir_size = (iova_space_size / IOVP_SIZE) * sizeof(u64);
+ 
+-	BUG_ON(ioc->pdir_size >= 4 * 1024 * 1024);   /* max pdir size < 4MB */
++	BUG_ON(ioc->pdir_size > 8 * 1024 * 1024);   /* max pdir size <= 8MB */
+ 
+ 	/* Verify it's a power of two */
+ 	BUG_ON((1 << get_order(ioc->pdir_size)) != (ioc->pdir_size >> PAGE_SHIFT));
+ 
+-	DBG_INIT("%s() hpa 0x%lx mem %luMB IOV %dMB (%d bits)\n",
+-			__FUNCTION__,
+-			ioc->ioc_hpa,
++	DBG_INIT("%s() hpa 0x%p mem %luMB IOV %dMB (%d bits)\n",
++			__FUNCTION__, ioc->ioc_regs,
+ 			(unsigned long) num_physpages >> (20 - PAGE_SHIFT),
+ 			iova_space_size>>20,
+ 			iov_order + PAGE_SHIFT);
+@@ -1329,13 +1328,12 @@
+ 	ioc->pdir_base = (u64 *)__get_free_pages(GFP_KERNEL, 
+ 						 get_order(ioc->pdir_size));
+ 	if(NULL == ioc->pdir_base) {
+-		panic("%s:%s() could not allocate I/O Page Table\n", __FILE__,
+-		      __FUNCTION__);
++		panic("%s() could not allocate I/O Page Table\n", __FUNCTION__);
+ 	}
+ 	memset(ioc->pdir_base, 0, ioc->pdir_size);
+ 
+ 	BUG_ON((((unsigned long)ioc->pdir_base) & PAGE_MASK) != (unsigned long)ioc->pdir_base);
+-	DBG_INIT(" base %p", ioc->pdir_base);
++	DBG_INIT(" base %p\n", ioc->pdir_base);
+ 
+ 	/* resource map size dictated by pdir_size */
+  	ioc->res_size = (ioc->pdir_size / sizeof(u64)) >> 3;
+@@ -1344,8 +1342,7 @@
+ 	ioc->res_map = (u8 *)__get_free_pages(GFP_KERNEL, 
+ 					      get_order(ioc->res_size));
+ 	if(NULL == ioc->res_map) {
+-		panic("%s:%s() could not allocate resource map\n", __FILE__,
+-		      __FUNCTION__);
++		panic("%s() could not allocate resource map\n", __FUNCTION__);
+ 	}
+ 	memset(ioc->res_map, 0, ioc->res_size);
+ 
+@@ -1366,44 +1363,52 @@
+ 	** Initialize IOA hardware
+ 	*/
+ 	WRITE_U32(CCIO_CHAINID_MASK << ioc->chainid_shift, 
+-		  &ioc->ioc_hpa->io_chain_id_mask);
++		  &ioc->ioc_regs->io_chain_id_mask);
+ 
+ 	WRITE_U32(virt_to_phys(ioc->pdir_base), 
+-		  &ioc->ioc_hpa->io_pdir_base);
++		  &ioc->ioc_regs->io_pdir_base);
+ 
+ 	/*
+ 	** Go to "Virtual Mode"
+ 	*/
+-	WRITE_U32(IOA_NORMAL_MODE, &ioc->ioc_hpa->io_control);
++	WRITE_U32(IOA_NORMAL_MODE, &ioc->ioc_regs->io_control);
+ 
+ 	/*
+ 	** Initialize all I/O TLB entries to 0 (Valid bit off).
+ 	*/
+-	WRITE_U32(0, &ioc->ioc_hpa->io_tlb_entry_m);
+-	WRITE_U32(0, &ioc->ioc_hpa->io_tlb_entry_l);
++	WRITE_U32(0, &ioc->ioc_regs->io_tlb_entry_m);
++	WRITE_U32(0, &ioc->ioc_regs->io_tlb_entry_l);
+ 
+ 	for(i = 1 << CCIO_CHAINID_SHIFT; i ; i--) {
+ 		WRITE_U32((CMD_TLB_DIRECT_WRITE | (i << ioc->chainid_shift)),
+-			  &ioc->ioc_hpa->io_command);
++			  &ioc->ioc_regs->io_command);
+ 	}
+ }
+ 
+ static void
+-ccio_init_resource(struct resource *res, char *name, unsigned long ioaddr)
++ccio_init_resource(struct resource *res, char *name, void __iomem *ioaddr)
+ {
+ 	int result;
+ 
+ 	res->parent = NULL;
+ 	res->flags = IORESOURCE_MEM;
+-	res->start = (unsigned long)(signed) __raw_readl(ioaddr) << 16;
+-	res->end = (unsigned long)(signed) (__raw_readl(ioaddr + 4) << 16) - 1;
++	/*
++	 * bracing ((signed) ...) are required for 64bit kernel because
++	 * we only want to sign extend the lower 16 bits of the register.
++	 * The upper 16-bits of range registers are hardcoded to 0xffff.
++	 */
++	res->start = (unsigned long)((signed) READ_U32(ioaddr) << 16);
++	res->end = (unsigned long)((signed) (READ_U32(ioaddr + 4) << 16) - 1);
+ 	res->name = name;
++	/*
++	 * Check if this MMIO range is disable
++	 */
+ 	if (res->end + 1 == res->start)
+ 		return;
+ 	result = request_resource(&iomem_resource, res);
+ 	if (result < 0) {
+-		printk(KERN_ERR "%s: failed to claim CCIO bus address space (%08lx,%08lx)\n", 
+-		       __FILE__, res->start, res->end);
++		printk(KERN_ERR "%s() failed to claim CCIO bus address space (%08lx,%08lx)\n", 
++	 		__FUNCTION__, res->start, res->end);
+ 	}
+ }
+ 
+@@ -1414,9 +1419,8 @@
+ 
+ 	sprintf(name, "GSC Bus [%d/]", ioc->hw_path);
+ 
+-	ccio_init_resource(res, name, (unsigned long)&ioc->ioc_hpa->io_io_low);
+-	ccio_init_resource(res + 1, name,
+-			(unsigned long)&ioc->ioc_hpa->io_io_low_hv);
++	ccio_init_resource(res, name, &ioc->ioc_regs->io_io_low);
++	ccio_init_resource(res + 1, name, &ioc->ioc_regs->io_io_low_hv);
+ }
+ 
+ static int new_ioc_area(struct resource *res, unsigned long size,
+@@ -1486,15 +1490,15 @@
+ 
+ 	if (!expand_ioc_area(parent, size, min, max, align)) {
+ 		__raw_writel(((parent->start)>>16) | 0xffff0000,
+-			     (unsigned long)&(ioc->ioc_hpa->io_io_low));
++			     &ioc->ioc_regs->io_io_low);
+ 		__raw_writel(((parent->end)>>16) | 0xffff0000,
+-			     (unsigned long)&(ioc->ioc_hpa->io_io_high));
++			     &ioc->ioc_regs->io_io_high);
+ 	} else if (!expand_ioc_area(parent + 1, size, min, max, align)) {
+ 		parent++;
+ 		__raw_writel(((parent->start)>>16) | 0xffff0000,
+-			     (unsigned long)&(ioc->ioc_hpa->io_io_low_hv));
++			     &ioc->ioc_regs->io_io_low_hv);
+ 		__raw_writel(((parent->end)>>16) | 0xffff0000,
+-			     (unsigned long)&(ioc->ioc_hpa->io_io_high_hv));
++			     &ioc->ioc_regs->io_io_high_hv);
+ 	} else {
+ 		return -EBUSY;
+ 	}
+@@ -1554,7 +1558,7 @@
+ 	*ioc_p = ioc;
+ 
+ 	ioc->hw_path = dev->hw_path;
+-	ioc->ioc_hpa = (struct ioa_registers *)dev->hpa;
++	ioc->ioc_regs = ioremap(dev->hpa, 4096);
+ 	ccio_ioc_init(ioc);
+ 	ccio_init_resources(ioc);
+ 	hppa_dma_ops = &ccio_ops;
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/parisc/led.c CVS2_6_12_PA2/drivers/parisc/led.c
+--- LINUS_2_6_12/drivers/parisc/led.c	2005-06-17 21:22:02.000000000 -0600
++++ CVS2_6_12_PA2/drivers/parisc/led.c	2005-04-05 13:01:50.000000000 -0600
+@@ -18,6 +18,9 @@
+  * Changes:
+  *      - Audit copy_from_user in led_proc_write.
+  *                                Daniele Bellucci <bellucda at tiscali.it>
++ *	- Switch from using a tasklet to a work queue, so the led_LCD_driver
++ *	  	can sleep.
++ *	  			  David Pye <dmp at davidmpye.dyndns.org>
+  */
+ 
+ #include <linux/config.h>
+@@ -37,6 +40,7 @@
+ #include <linux/proc_fs.h>
+ #include <linux/ctype.h>
+ #include <linux/blkdev.h>
++#include <linux/workqueue.h>
+ #include <asm/io.h>
+ #include <asm/processor.h>
+ #include <asm/hardware.h>
+@@ -46,25 +50,30 @@
+ #include <asm/uaccess.h>
+ 
+ /* The control of the LEDs and LCDs on PARISC-machines have to be done 
+-   completely in software. The necessary calculations are done in a tasklet
+-   which is scheduled at every timer interrupt and since the calculations 
+-   may consume relatively much CPU-time some of the calculations can be 
++   completely in software. The necessary calculations are done in a work queue
++   task which is scheduled regularly, and since the calculations may consume a 
++   relatively large amount of CPU time, some of the calculations can be 
+    turned off with the following variables (controlled via procfs) */
+ 
+ static int led_type = -1;
+-static int led_heartbeat = 1;
+-static int led_diskio = 1;
+-static int led_lanrxtx = 1;
++static unsigned char lastleds;	/* LED state from most recent update */
++static unsigned int led_heartbeat = 1;
++static unsigned int led_diskio = 1;
++static unsigned int led_lanrxtx = 1;
+ static char lcd_text[32];
+ static char lcd_text_default[32];
+ 
++
++static struct workqueue_struct *led_wq;
++static void led_work_func(void *);
++static DECLARE_WORK(led_task, led_work_func, NULL);
++
+ #if 0
+ #define DPRINTK(x)	printk x
+ #else
+ #define DPRINTK(x)
+ #endif
+ 
+-
+ struct lcd_block {
+ 	unsigned char command;	/* stores the command byte      */
+ 	unsigned char on;	/* value for turning LED on     */
+@@ -115,12 +124,27 @@
+ #define LCD_DATA_REG	lcd_info.lcd_data_reg_addr	 
+ #define LED_DATA_REG	lcd_info.lcd_cmd_reg_addr	/* LASI & ASP only */
+ 
++#define LED_HASLCD 1
++#define LED_NOLCD  0
++
++/* The workqueue must be created at init-time */
++static int start_task(void) 
++{	
++	/* Display the default text now */
++	if (led_type == LED_HASLCD) lcd_print( lcd_text_default );
++
++	/* Create the work queue and queue the LED task */
++	led_wq = create_singlethread_workqueue("led_wq");	
++	queue_work(led_wq, &led_task);
++
++	return 0;
++}
++
++device_initcall(start_task);
+ 
+ /* ptr to LCD/LED-specific function */
+ static void (*led_func_ptr) (unsigned char);
+ 
+-#define LED_HASLCD 1
+-#define LED_NOLCD  0
+ #ifdef CONFIG_PROC_FS
+ static int led_proc_read(char *page, char **start, off_t off, int count, 
+ 	int *eof, void *data)
+@@ -285,52 +309,35 @@
+ /*
+    ** 
+    ** led_LCD_driver()
+-   ** 
+-   ** The logic of the LCD driver is, that we write at every scheduled call
+-   ** only to one of LCD_CMD_REG _or_ LCD_DATA_REG - registers.
+-   ** That way we don't need to let this tasklet busywait for min_cmd_delay
+-   ** milliseconds.
+-   **
+-   ** TODO: check the value of "min_cmd_delay" against the value of HZ.
+    **   
+  */
+ static void led_LCD_driver(unsigned char leds)
+ {
+-	static int last_index;	/* 0:heartbeat, 1:disk, 2:lan_in, 3:lan_out */
+-	static int last_was_cmd;/* 0: CMD was written last, 1: DATA was last */
+-	struct lcd_block *block_ptr;
+-	int value;
+-
+-	switch (last_index) {
+-	    case 0:	block_ptr = &lcd_info.heartbeat;
+-			value = leds & LED_HEARTBEAT;
+-			break;
+-	    case 1:	block_ptr = &lcd_info.disk_io;
+-			value = leds & LED_DISK_IO;
+-			break;					
+-	    case 2:	block_ptr = &lcd_info.lan_rcv;
+-			value = leds & LED_LAN_RCV;
+-			break;					
+-	    case 3:	block_ptr = &lcd_info.lan_tx;
+-			value = leds & LED_LAN_TX;
+-			break;
+-	    default:	/* should never happen: */
+-			return;
+-	}
++	static int i;
++	static unsigned char mask[4] = { LED_HEARTBEAT, LED_DISK_IO,
++		LED_LAN_RCV, LED_LAN_TX };
++	
++	static struct lcd_block * blockp[4] = {
++		&lcd_info.heartbeat,
++		&lcd_info.disk_io,
++		&lcd_info.lan_rcv,
++		&lcd_info.lan_tx
++	};
+ 
+-	if (last_was_cmd) {
+-	    /* write the value to the LCD data port */
+-    	    gsc_writeb( value ? block_ptr->on : block_ptr->off, LCD_DATA_REG );
+-	} else {
+-	    /* write the command-byte to the LCD command register */
+-    	    gsc_writeb( block_ptr->command, LCD_CMD_REG );
+-	}    
+-	
+-	/* now update the vars for the next interrupt iteration */ 
+-	if (++last_was_cmd == 2) { /* switch between cmd & data */
+-	    last_was_cmd = 0;
+-	    if (++last_index == 4) 
+-		last_index = 0;	 /* switch back to heartbeat index */
++	/* Convert min_cmd_delay to milliseconds */
++	unsigned int msec_cmd_delay = 1 + (lcd_info.min_cmd_delay / 1000);
++	
++	for (i=0; i<4; ++i) 
++	{
++		if ((leds & mask[i]) != (lastleds & mask[i])) 
++		{
++			gsc_writeb( blockp[i]->command, LCD_CMD_REG );
++			msleep(msec_cmd_delay);
++			
++			gsc_writeb( leds & mask[i] ? blockp[i]->on : 
++					blockp[i]->off, LCD_DATA_REG );
++			msleep(msec_cmd_delay);
++		}
+ 	}
+ }
+ 
+@@ -355,7 +362,7 @@
+ 
+ 	rx_total = tx_total = 0;
+ 	
+-	/* we are running as tasklet, so locking dev_base 
++	/* we are running as a workqueue task, so locking dev_base 
+ 	 * for reading should be OK */
+ 	read_lock(&dev_base_lock);
+ 	for (dev = dev_base; dev; dev = dev->next) {
+@@ -402,7 +409,7 @@
+ 	static unsigned long last_pgpgin, last_pgpgout;
+ 	struct page_state pgstat;
+ 	int changed;
+-	
++
+ 	get_full_page_state(&pgstat); /* get no of sectors in & out */
+ 
+ 	/* Just use a very simple calculation here. Do not care about overflow,
+@@ -410,86 +417,70 @@
+ 	changed = (pgstat.pgpgin != last_pgpgin) || (pgstat.pgpgout != last_pgpgout);
+ 	last_pgpgin  = pgstat.pgpgin;
+ 	last_pgpgout = pgstat.pgpgout;
+-	
++
+ 	return (changed ? LED_DISK_IO : 0);
+ }
+ 
+ 
+ 
+ /*
+-   ** led_tasklet_func()
++   ** led_work_func()
+    ** 
+-   ** is scheduled at every timer interrupt from time.c and
+-   ** updates the chassis LCD/LED 
++   ** manages when and which chassis LCD/LED gets updated
+ 
+     TODO:
+     - display load average (older machines like 715/64 have 4 "free" LED's for that)
+     - optimizations
+  */
+ 
+-#define HEARTBEAT_LEN (HZ*6/100)
+-#define HEARTBEAT_2ND_RANGE_START (HZ*22/100)
++#define HEARTBEAT_LEN (HZ*10/100)
++#define HEARTBEAT_2ND_RANGE_START (HZ*28/100)
+ #define HEARTBEAT_2ND_RANGE_END   (HEARTBEAT_2ND_RANGE_START + HEARTBEAT_LEN)
+ 
+-#define NORMALIZED_COUNT(count) (count/(HZ/100))
++#define LED_UPDATE_INTERVAL (1 + (HZ*19/1000))
+ 
+-static void led_tasklet_func(unsigned long unused)
++static void led_work_func (void *unused)
+ {
+-	static unsigned char lastleds;
+-	unsigned char currentleds; /* stores current value of the LEDs */
+-	static unsigned long count; /* static incremented value, not wrapped */
++	static unsigned long last_jiffies;
+ 	static unsigned long count_HZ; /* counter in range 0..HZ */
++	unsigned char currentleds = 0; /* stores current value of the LEDs */
+ 
+ 	/* exit if not initialized */
+ 	if (!led_func_ptr)
+ 	    return;
+ 
+-	/* increment the local counters */
+-	++count;
+-	if (++count_HZ == HZ)
++	/* increment the heartbeat timekeeper */
++	count_HZ += jiffies - last_jiffies;
++	last_jiffies = jiffies;
++	if (count_HZ >= HZ)
+ 	    count_HZ = 0;
+ 
+-	currentleds = lastleds;
+-
+-	if (led_heartbeat)
+-	{
+-		/* flash heartbeat-LED like a real heart (2 x short then a long delay) */
+-		if (count_HZ<HEARTBEAT_LEN || 
+-		    (count_HZ>=HEARTBEAT_2ND_RANGE_START && count_HZ<HEARTBEAT_2ND_RANGE_END)) 
+-		    currentleds |= LED_HEARTBEAT;
+-		else
+-		    currentleds &= ~LED_HEARTBEAT;
+-	}
+-
+-	/* look for network activity and flash LEDs respectively */
+-	if (led_lanrxtx && ((NORMALIZED_COUNT(count)+(8/2)) & 7) == 0)
++	if (likely(led_heartbeat))
+ 	{
+-		currentleds &= ~(LED_LAN_RCV | LED_LAN_TX);
+-		currentleds |= led_get_net_activity();
++		/* flash heartbeat-LED like a real heart
++		 * (2 x short then a long delay)
++		 */
++		if (count_HZ < HEARTBEAT_LEN || 
++				(count_HZ >= HEARTBEAT_2ND_RANGE_START &&
++				count_HZ < HEARTBEAT_2ND_RANGE_END)) 
++			currentleds |= LED_HEARTBEAT;
+ 	}
+ 
+-	/* avoid to calculate diskio-stats at same irq  as netio-stats */
+-	if (led_diskio && (NORMALIZED_COUNT(count) & 7) == 0)
+-	{
+-		currentleds &= ~LED_DISK_IO;
+-		currentleds |= led_get_diskio_activity();
+-	}
++	if (likely(led_lanrxtx))  currentleds |= led_get_net_activity();
++	if (likely(led_diskio))   currentleds |= led_get_diskio_activity();
+ 
+ 	/* blink all LEDs twice a second if we got an Oops (HPMC) */
+-	if (oops_in_progress) {
++	if (unlikely(oops_in_progress)) 
+ 		currentleds = (count_HZ<=(HZ/2)) ? 0 : 0xff;
+-	}
+-	
+-	/* update the LCD/LEDs */
+-	if (currentleds != lastleds) {
+-	    led_func_ptr(currentleds);
+-	    lastleds = currentleds;
+-	}
+-}
+ 
+-/* main led tasklet struct (scheduled from time.c) */
+-DECLARE_TASKLET_DISABLED(led_tasklet, led_tasklet_func, 0);
++	if (currentleds != lastleds)
++	{
++		led_func_ptr(currentleds);	/* Update the LCD/LEDs */
++		lastleds = currentleds;
++	}
+ 
++	queue_delayed_work(led_wq, &led_task, LED_UPDATE_INTERVAL);
++}
+ 
+ /*
+    ** led_halt()
+@@ -519,9 +510,13 @@
+ 	default:		return NOTIFY_DONE;
+ 	}
+ 	
+-	/* completely stop the LED/LCD tasklet */
+-	tasklet_disable(&led_tasklet);
+-
++	/* Cancel the work item and delete the queue */
++	if (led_wq) {
++		cancel_rearming_delayed_workqueue(led_wq, &led_task);
++		destroy_workqueue(led_wq);
++		led_wq = NULL;
++	}
++ 
+ 	if (lcd_info.model == DISPLAY_MODEL_LCD)
+ 		lcd_print(txt);
+ 	else
+@@ -556,7 +551,6 @@
+ 		printk(KERN_INFO "LCD display at %lx,%lx registered\n", 
+ 			LCD_CMD_REG , LCD_DATA_REG);
+ 		led_func_ptr = led_LCD_driver;
+-		lcd_print( lcd_text_default );
+ 		led_type = LED_HASLCD;
+ 		break;
+ 
+@@ -586,9 +580,11 @@
+ 	initialized++;
+ 	register_reboot_notifier(&led_notifier);
+ 
+-	/* start the led tasklet for the first time */
+-	tasklet_enable(&led_tasklet);
+-	
++	/* Ensure the work is queued */
++	if (led_wq) {
++		queue_work(led_wq, &led_task);
++	}
++
+ 	return 0;
+ }
+ 
+@@ -623,8 +619,8 @@
+    ** lcd_print()
+    ** 
+    ** Displays the given string on the LCD-Display of newer machines.
+-   ** lcd_print() disables the timer-based led tasklet during its 
+-   ** execution and enables it afterwards again.
++   ** lcd_print() disables/enables the timer-based led work queue to
++   ** avoid a race condition while writing the CMD/DATA register pair.
+    **
+  */
+ int lcd_print( char *str )
+@@ -634,12 +630,13 @@
+ 	if (!led_func_ptr || lcd_info.model != DISPLAY_MODEL_LCD)
+ 	    return 0;
+ 	
+-	/* temporarily disable the led tasklet */
+-	tasklet_disable(&led_tasklet);
++	/* temporarily disable the led work task */
++	if (led_wq)
++		cancel_rearming_delayed_workqueue(led_wq, &led_task);
+ 
+ 	/* copy display string to buffer for procfs */
+ 	strlcpy(lcd_text, str, sizeof(lcd_text));
+-	
++
+ 	/* Set LCD Cursor to 1st character */
+ 	gsc_writeb(lcd_info.reset_cmd1, LCD_CMD_REG);
+ 	udelay(lcd_info.min_cmd_delay);
+@@ -653,8 +650,10 @@
+ 	    udelay(lcd_info.min_cmd_delay);
+ 	}
+ 	
+-	/* re-enable the led tasklet */
+-	tasklet_enable(&led_tasklet);
++	/* re-queue the work */
++	if (led_wq) {
++		queue_work(led_wq, &led_task);
++	}
+ 
+ 	return lcd_info.lcd_width;
+ }
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/parisc/sba_iommu.c CVS2_6_12_PA2/drivers/parisc/sba_iommu.c
+--- LINUS_2_6_12/drivers/parisc/sba_iommu.c	2005-06-17 21:22:02.000000000 -0600
++++ CVS2_6_12_PA2/drivers/parisc/sba_iommu.c	2005-05-20 09:19:47.000000000 -0600
+@@ -91,7 +91,7 @@
+ #define DBG_RES(x...)
+ #endif
+ 
+-#if defined(__LP64__) && !defined(CONFIG_PDC_NARROW)
++#if defined(CONFIG_64BIT) && !defined(CONFIG_PDC_NARROW)
+ /* "low end" PA8800 machines use ZX1 chipset */
+ #define ZX1_SUPPORT
+ #endif
+@@ -231,7 +231,7 @@
+ 	spinlock_t	res_lock;
+ 	unsigned int	res_bitshift;	/* from the LEFT! */
+ 	unsigned int	res_size;	/* size of resource map in bytes */
+-#if SBA_HINT_SUPPORT
++#ifdef SBA_HINT_SUPPORT
+ /* FIXME : DMA HINTs not used */
+ 	unsigned long	hint_mask_pdir;	/* bits used for DMA hints */
+ 	unsigned int	hint_shift_pdir;
+@@ -294,7 +294,7 @@
+ /* Looks nice and keeps the compiler happy */
+ #define SBA_DEV(d) ((struct sba_device *) (d))
+ 
+-#if SBA_AGP_SUPPORT
++#ifdef SBA_AGP_SUPPORT
+ static int reserve_sba_gart = 1;
+ #endif
+ 
+@@ -314,7 +314,7 @@
+ #define WRITE_REG32(val, addr) __raw_writel(cpu_to_le32(val), addr)
+ #define WRITE_REG64(val, addr) __raw_writeq(cpu_to_le64(val), addr)
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ #define READ_REG(addr)		READ_REG64(addr)
+ #define WRITE_REG(value, addr)	WRITE_REG64(value, addr)
+ #else
+@@ -324,7 +324,7 @@
+ 
+ #ifdef DEBUG_SBA_INIT
+ 
+-/* NOTE: When __LP64__ isn't defined, READ_REG64() is two 32-bit reads */
++/* NOTE: When CONFIG_64BIT isn't defined, READ_REG64() is two 32-bit reads */
+ 
+ /**
+  * sba_dump_ranges - debugging only - print ranges assigned to this IOA
+@@ -364,7 +364,7 @@
+ #else
+ #define sba_dump_ranges(x)
+ #define sba_dump_tlb(x)
+-#endif
++#endif	/* DEBUG_SBA_INIT */
+ 
+ 
+ #ifdef ASSERT_PDIR_SANITY
+@@ -674,7 +674,7 @@
+ *
+ ***************************************************************/
+ 
+-#if SBA_HINT_SUPPORT
++#ifdef SBA_HINT_SUPPORT
+ #define SBA_DMA_HINT(ioc, val) ((val) << (ioc)->hint_shift_pdir)
+ #endif
+ 
+@@ -819,18 +819,29 @@
+ static int sba_dma_supported( struct device *dev, u64 mask)
+ {
+ 	struct ioc *ioc;
++
+ 	if (dev == NULL) {
+ 		printk(KERN_ERR MODULE_NAME ": EISA/ISA/et al not supported\n");
+ 		BUG();
+ 		return(0);
+ 	}
+ 
+-	ioc = GET_IOC(dev);
++	/* Documentation/DMA-mapping.txt tells drivers to try 64-bit first,
++	 * then fall back to 32-bit if that fails.
++	 * We are just "encouraging" 32-bit DMA masks here since we can
++	 * never allow IOMMU bypass unless we add special support for ZX1.
++	 */
++	if (mask > ~0U)
++		return 0;
+ 
+-	/* check if mask is > than the largest IO Virt Address */
++	ioc = GET_IOC(dev);
+ 
+-	return((int) (mask >= (ioc->ibase +
+-				(ioc->pdir_size / sizeof(u64) * IOVP_SIZE) )));
++	/*
++	 * check if mask is >= than the current max IO Virt Address
++	 * The max IO Virt address will *always* < 30 bits.
++	 */
++	return((int)(mask >= (ioc->ibase - 1 +
++			(ioc->pdir_size / sizeof(u64) * IOVP_SIZE) )));
+ }
+ 
+ 
+@@ -1234,8 +1245,10 @@
+ 	unsigned long pdir_order = get_order(pdir_size);
+ 
+ 	pdir_base = __get_free_pages(GFP_KERNEL, pdir_order);
+-	if (NULL == (void *) pdir_base)
+-		panic("sba_ioc_init() could not allocate I/O Page Table\n");
++	if (NULL == (void *) pdir_base)	{
++		panic("%s() could not allocate I/O Page Table\n",
++			__FUNCTION__);
++	}
+ 
+ 	/* If this is not PA8700 (PCX-W2)
+ 	**	OR newer than ver 2.2
+@@ -1343,7 +1356,7 @@
+ 	u32 iova_space_mask;
+ 	u32 iova_space_size;
+ 	int iov_order, tcnfg;
+-#if SBA_AGP_SUPPORT
++#ifdef SBA_AGP_SUPPORT
+ 	int agp_found = 0;
+ #endif
+ 	/*
+@@ -1380,7 +1393,7 @@
+ 	DBG_INIT("%s() pdir %p size %x\n",
+ 			__FUNCTION__, ioc->pdir_base, ioc->pdir_size);
+ 
+-#if SBA_HINT_SUPPORT
++#ifdef SBA_HINT_SUPPORT
+ 	ioc->hint_shift_pdir = iov_order + PAGE_SHIFT;
+ 	ioc->hint_mask_pdir = ~(0x3 << (iov_order + PAGE_SHIFT));
+ 
+@@ -1404,7 +1417,7 @@
+ 
+ 	WRITE_REG(ioc->imask, ioc->ioc_hpa + IOC_IMASK);
+ 
+-#ifdef __LP64__
++#ifdef CONFIG_64BIT
+ 	/*
+ 	** Setting the upper bits makes checking for bypass addresses
+ 	** a little faster later on.
+@@ -1437,7 +1450,7 @@
+ 	*/
+ 	WRITE_REG(ioc->ibase | 31, ioc->ioc_hpa + IOC_PCOM);
+ 
+-#if SBA_AGP_SUPPORT
++#ifdef SBA_AGP_SUPPORT
+ 	/*
+ 	** If an AGP device is present, only use half of the IOV space
+ 	** for PCI DMA.  Unfortunately we can't know ahead of time
+@@ -1489,11 +1502,9 @@
+ 	if (iova_space_size < (1 << (20 - PAGE_SHIFT))) {
+ 		iova_space_size = 1 << (20 - PAGE_SHIFT);
+ 	}
+-#ifdef __LP64__
+ 	else if (iova_space_size > (1 << (30 - PAGE_SHIFT))) {
+ 		iova_space_size = 1 << (30 - PAGE_SHIFT);
+ 	}
+-#endif
+ 
+ 	/*
+ 	** iova space must be log2() in size.
+@@ -1519,7 +1530,7 @@
+ 	DBG_INIT("%s() pdir %p size %x\n",
+ 			__FUNCTION__, ioc->pdir_base, pdir_size);
+ 
+-#if SBA_HINT_SUPPORT
++#ifdef SBA_HINT_SUPPORT
+ 	/* FIXME : DMA HINTs not used */
+ 	ioc->hint_shift_pdir = iov_order + PAGE_SHIFT;
+ 	ioc->hint_mask_pdir = ~(0x3 << (iov_order + PAGE_SHIFT));
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/pcmcia/Kconfig CVS2_6_12_PA2/drivers/pcmcia/Kconfig
+--- LINUS_2_6_12/drivers/pcmcia/Kconfig	2005-06-17 21:22:03.000000000 -0600
++++ CVS2_6_12_PA2/drivers/pcmcia/Kconfig	2005-03-18 06:17:12.000000000 -0700
+@@ -166,7 +166,11 @@
+ 
+ config PCMCIA_PROBE
+ 	bool
+-	default y if ISA && !ARCH_SA1100 && !ARCH_CLPS711X
++	default y if ISA && !ARCH_SA1100 && !ARCH_CLPS711X && !PARISC
++
++config PCMCIA_PROBE_MEM
++	bool
++	default y if !PARISC
+ 
+ config M32R_PCC
+ 	bool "M32R PCMCIA I/F"
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/pcmcia/rsrc_nonstatic.c CVS2_6_12_PA2/drivers/pcmcia/rsrc_nonstatic.c
+--- LINUS_2_6_12/drivers/pcmcia/rsrc_nonstatic.c	2005-06-17 21:22:03.000000000 -0600
++++ CVS2_6_12_PA2/drivers/pcmcia/rsrc_nonstatic.c	2005-04-04 14:46:59.000000000 -0600
+@@ -43,7 +43,11 @@
+ 
+ #define INT_MODULE_PARM(n, v) static int n = v; module_param(n, int, 0444)
+ 
++#ifdef CONFIG_PCMCIA_PROBE_MEM
+ INT_MODULE_PARM(probe_mem,	1);		/* memory probe? */
++#else
++INT_MODULE_PARM(probe_mem,	0);		/* memory probe? */
++#endif
+ #ifdef CONFIG_PCMCIA_PROBE
+ INT_MODULE_PARM(probe_io,	1);		/* IO port probe? */
+ INT_MODULE_PARM(mem_limit,	0x10000);
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/scsi/53c700.c CVS2_6_12_PA2/drivers/scsi/53c700.c
+--- LINUS_2_6_12/drivers/scsi/53c700.c	2005-06-17 21:22:03.000000000 -0600
++++ CVS2_6_12_PA2/drivers/scsi/53c700.c	2005-04-21 18:25:51.000000000 -0600
+@@ -302,6 +302,7 @@
+ 	__u8 *memory;
+ 	__u32 *script;
+ 	struct Scsi_Host *host;
++	const char *chipname;
+ 	static int banner = 0;
+ 	int j;
+ 
+@@ -403,11 +404,11 @@
+ 		printk(KERN_NOTICE "53c700: Version " NCR_700_VERSION " By James.Bottomley at HansenPartnership.com\n");
+ 		banner = 1;
+ 	}
++	chipname = hostdata->chip710 ? "53c710" : \
++		   (hostdata->fast ? "53c700-66" : "53c700");
+ 	printk(KERN_NOTICE "scsi%d: %s rev %d %s\n", host->host_no,
+-	       hostdata->chip710 ? "53c710" : 
+-	       (hostdata->fast ? "53c700-66" : "53c700"),
+-	       hostdata->rev, hostdata->differential ?
+-	       "(Differential)" : "");
++			chipname, hostdata->rev,
++			hostdata->differential ?  "(Differential)" : "");
+ 	/* reset the chip */
+ 	NCR_700_chip_reset(host);
+ 
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/scsi/lasi700.c CVS2_6_12_PA2/drivers/scsi/lasi700.c
+--- LINUS_2_6_12/drivers/scsi/lasi700.c	2005-06-17 21:22:03.000000000 -0600
++++ CVS2_6_12_PA2/drivers/scsi/lasi700.c	2005-04-21 22:23:44.000000000 -0600
+@@ -125,8 +125,6 @@
+ 		hostdata->dmode_extra = DMODE_FC2;
+ 	}
+ 
+-	NCR_700_set_mem_mapped(hostdata);
+-
+ 	host = NCR_700_detect(&lasi700_template, hostdata, &dev->dev);
+ 	if (!host)
+ 		goto out_kfree;
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/scsi/sym53c8xx_2/sym_defs.h CVS2_6_12_PA2/drivers/scsi/sym53c8xx_2/sym_defs.h
+--- LINUS_2_6_12/drivers/scsi/sym53c8xx_2/sym_defs.h	2005-06-17 21:22:04.000000000 -0600
++++ CVS2_6_12_PA2/drivers/scsi/sym53c8xx_2/sym_defs.h	2005-05-20 07:08:58.000000000 -0600
+@@ -40,7 +40,7 @@
+ #ifndef SYM_DEFS_H
+ #define SYM_DEFS_H
+ 
+-#define SYM_VERSION "2.2.0"
++#define SYM_VERSION "2.2.1"
+ #define SYM_DRIVER_NAME	"sym-" SYM_VERSION
+ 
+ /*
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/scsi/sym53c8xx_2/sym_glue.c CVS2_6_12_PA2/drivers/scsi/sym53c8xx_2/sym_glue.c
+--- LINUS_2_6_12/drivers/scsi/sym53c8xx_2/sym_glue.c	2005-06-17 21:22:04.000000000 -0600
++++ CVS2_6_12_PA2/drivers/scsi/sym53c8xx_2/sym_glue.c	2005-05-20 12:24:41.000000000 -0600
+@@ -155,10 +155,11 @@
+ 	base = tmp;
+ 	if ((tmp & 0x7) == PCI_BASE_ADDRESS_MEM_TYPE_64) {
+ 		pci_read_config_dword(pdev, PCI_BAR_OFFSET(index++), &tmp);
+-		if (tmp > 0)
++		if (tmp > 0) {
+ 			dev_err(&pdev->dev,
+ 				"BAR %d is 64-bit, disabling\n", index - 1);
+-		base = 0;
++			base = 0;
++		}
+ 	}
+ 
+ 	if ((base & PCI_BASE_ADDRESS_SPACE) == PCI_BASE_ADDRESS_SPACE_IO) {
+@@ -389,13 +390,20 @@
+ {
+ 	struct sym_tblmove *data = &cp->phys.data[SYM_CONF_MAX_SG-1];
+ 	int segment;
++	unsigned int len = cmd->request_bufflen;
+ 
+-	cp->data_len = cmd->request_bufflen;
+-
+-	if (cmd->request_bufflen) {
++	if (len) {
+ 		dma_addr_t baddr = map_scsi_single_data(np, cmd);
+ 		if (baddr) {
+-			sym_build_sge(np, data, baddr, cmd->request_bufflen);
++			if (len & 1) {
++				struct sym_tcb *tp = &np->target[cp->target];
++				if (tp->head.wval & EWS) {
++					len++;
++					cp->odd_byte_adjustment++;
++				}
++			}
++			cp->data_len = len;
++			sym_build_sge(np, data, baddr, len);
+ 			segment = 1;
+ 		} else {
+ 			segment = -2;
+@@ -418,6 +426,7 @@
+ 		segment = sym_scatter_no_sglist(np, cp, cmd);
+ 	else if ((use_sg = map_scsi_sg_data(np, cmd)) > 0) {
+ 		struct scatterlist *scatter = (struct scatterlist *)cmd->buffer;
++		struct sym_tcb *tp = &np->target[cp->target];
+ 		struct sym_tblmove *data;
+ 
+ 		if (use_sg > SYM_CONF_MAX_SG) {
+@@ -431,6 +440,11 @@
+ 			dma_addr_t baddr = sg_dma_address(&scatter[segment]);
+ 			unsigned int len = sg_dma_len(&scatter[segment]);
+ 
++			if ((len & 1) && (tp->head.wval & EWS)) {
++				len++;
++				cp->odd_byte_adjustment++;
++			}
++
+ 			sym_build_sge(np, &data[segment], baddr, len);
+ 			cp->data_len += len;
+ 		}
+@@ -456,10 +470,8 @@
+ 	 *  Minimal checkings, so that we will not 
+ 	 *  go outside our tables.
+ 	 */
+-	if (sdev->id == np->myaddr ||
+-	    sdev->id >= SYM_CONF_MAX_TARGET ||
+-	    sdev->lun >= SYM_CONF_MAX_LUN) {
+-		sym_xpt_done2(np, cmd, CAM_DEV_NOT_THERE);
++	if (sdev->id == np->myaddr) {
++		sym_xpt_done2(np, cmd, DID_NO_CONNECT);
+ 		return 0;
+ 	}
+ 
+@@ -469,28 +481,6 @@
+ 	tp = &np->target[sdev->id];
+ 
+ 	/*
+-	 *  Complete the 1st INQUIRY command with error 
+-	 *  condition if the device is flagged NOSCAN 
+-	 *  at BOOT in the NVRAM. This may speed up 
+-	 *  the boot and maintain coherency with BIOS 
+-	 *  device numbering. Clearing the flag allows 
+-	 *  user to rescan skipped devices later.
+-	 *  We also return error for devices not flagged 
+-	 *  for SCAN LUNS in the NVRAM since some mono-lun 
+-	 *  devices behave badly when asked for some non 
+-	 *  zero LUN. Btw, this is an absolute hack.:-)
+-	 */
+-	if (cmd->cmnd[0] == 0x12 || cmd->cmnd[0] == 0x0) {
+-		if ((tp->usrflags & SYM_SCAN_BOOT_DISABLED) ||
+-		    ((tp->usrflags & SYM_SCAN_LUNS_DISABLED) && 
+-		     sdev->lun != 0)) {
+-			tp->usrflags &= ~SYM_SCAN_BOOT_DISABLED;
+-			sym_xpt_done2(np, cmd, CAM_DEV_NOT_THERE);
+-			return 0;
+-		}
+-	}
+-
+-	/*
+ 	 *  Select tagged/untagged.
+ 	 */
+ 	lp = sym_lp(tp, sdev->lun);
+@@ -511,23 +501,10 @@
+  */
+ static inline int sym_setup_cdb(struct sym_hcb *np, struct scsi_cmnd *cmd, struct sym_ccb *cp)
+ {
+-	u32	cmd_ba;
+-	int	cmd_len;
+-
+-	/*
+-	 *  CDB is 16 bytes max.
+-	 */
+-	if (cmd->cmd_len > sizeof(cp->cdb_buf)) {
+-		sym_set_cam_status(cp->cmd, CAM_REQ_INVALID);
+-		return -1;
+-	}
+-
+ 	memcpy(cp->cdb_buf, cmd->cmnd, cmd->cmd_len);
+-	cmd_ba  = CCB_BA (cp, cdb_buf[0]);
+-	cmd_len = cmd->cmd_len;
+ 
+-	cp->phys.cmd.addr	= cpu_to_scr(cmd_ba);
+-	cp->phys.cmd.size	= cpu_to_scr(cmd_len);
++	cp->phys.cmd.addr = CCB_BA(cp, cdb_buf[0]);
++	cp->phys.cmd.size = cpu_to_scr(cmd->cmd_len);
+ 
+ 	return 0;
+ }
+@@ -554,10 +531,7 @@
+ 	if (dir != DMA_NONE) {
+ 		cp->segments = sym_scatter(np, cp, cmd);
+ 		if (cp->segments < 0) {
+-			if (cp->segments == -2)
+-				sym_set_cam_status(cmd, CAM_RESRC_UNAVAIL);
+-			else
+-				sym_set_cam_status(cmd, CAM_REQ_TOO_BIG);
++			sym_set_cam_status(cmd, DID_ERROR);
+ 			goto out_abort;
+ 		}
+ 	} else {
+@@ -855,7 +829,7 @@
+ 	ep->to_do = to_do;
+ 	/* Complete the command with locks held as required by the driver */
+ 	if (to_do == SYM_EH_DO_COMPLETE)
+-		sym_xpt_done2(np, cmd, CAM_REQ_ABORTED);
++		sym_xpt_done2(np, cmd, DID_ABORT);
+ 
+ 	/* Wait for completion with locks released, as required by kernel */
+ 	if (to_do == SYM_EH_DO_WAIT) {
+@@ -921,7 +895,7 @@
+ 	lp->s.reqtags     = reqtags;
+ 
+ 	if (reqtags != oldtags) {
+-		dev_info(&tp->sdev->sdev_target->dev,
++		dev_info(&tp->starget->dev,
+ 		         "tagged command queuing %s, command queue depth %d.\n",
+ 		          lp->s.reqtags ? "enabled" : "disabled",
+  		          lp->started_limit);
+@@ -981,22 +955,34 @@
+ 	return DEF_DEPTH;
+ }
+ 
+-static int sym53c8xx_slave_alloc(struct scsi_device *device)
++static int sym53c8xx_slave_alloc(struct scsi_device *sdev)
+ {
+-	struct sym_hcb *np = sym_get_hcb(device->host);
+-	struct sym_tcb *tp = &np->target[device->id];
+-	if (!tp->sdev)
+-		tp->sdev = device;
++	struct sym_hcb *np;
++	struct sym_tcb *tp;
+ 
+-	return 0;
+-}
++	if (sdev->id >= SYM_CONF_MAX_TARGET || sdev->lun >= SYM_CONF_MAX_LUN)
++		return -ENXIO;
+ 
+-static void sym53c8xx_slave_destroy(struct scsi_device *device)
+-{
+-	struct sym_hcb *np = sym_get_hcb(device->host);
+-	struct sym_tcb *tp = &np->target[device->id];
+-	if (tp->sdev == device)
+-		tp->sdev = NULL;
++	np = sym_get_hcb(sdev->host);
++	tp = &np->target[sdev->id];
++
++	/*
++	 * Fail the device init if the device is flagged NOSCAN at BOOT in
++	 * the NVRAM.  This may speed up boot and maintain coherency with
++	 * BIOS device numbering.  Clearing the flag allows the user to
++	 * rescan skipped devices later.  We also return an error for
++	 * devices not flagged for SCAN LUNS in the NVRAM since some single
++	 * lun devices behave badly when asked for a non zero LUN.
++	 */
++
++	if ((tp->usrflags & SYM_SCAN_BOOT_DISABLED) ||
++	    ((tp->usrflags & SYM_SCAN_LUNS_DISABLED) && sdev->lun != 0)) {
++		tp->usrflags &= ~SYM_SCAN_BOOT_DISABLED;
++		return -ENXIO;
++	}
++
++	tp->starget = sdev->sdev_target;
++	return 0;
+ }
+ 
+ /*
+@@ -1897,6 +1883,7 @@
+ 	 */
+ 	printk("%s: resetting chip\n", sym_name(np));
+ 	OUTB(np, nc_istat, SRST);
++	INB(np, nc_mbox1);
+ 	udelay(10);
+ 	OUTB(np, nc_istat, 0);
+ 
+@@ -1915,7 +1902,6 @@
+ 	.queuecommand		= sym53c8xx_queue_command,
+ 	.slave_alloc		= sym53c8xx_slave_alloc,
+ 	.slave_configure	= sym53c8xx_slave_configure,
+-	.slave_destroy		= sym53c8xx_slave_destroy,
+ 	.eh_abort_handler	= sym53c8xx_eh_abort_handler,
+ 	.eh_device_reset_handler = sym53c8xx_eh_device_reset_handler,
+ 	.eh_bus_reset_handler	= sym53c8xx_eh_bus_reset_handler,
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/scsi/sym53c8xx_2/sym_glue.h CVS2_6_12_PA2/drivers/scsi/sym53c8xx_2/sym_glue.h
+--- LINUS_2_6_12/drivers/scsi/sym53c8xx_2/sym_glue.h	2005-06-17 21:22:04.000000000 -0600
++++ CVS2_6_12_PA2/drivers/scsi/sym53c8xx_2/sym_glue.h	2005-05-20 06:29:44.000000000 -0600
+@@ -142,33 +142,6 @@
+ #define scr_to_cpu(dw)	le32_to_cpu(dw)
+ 
+ /*
+- *  Remap some status field values.
+- */
+-#define CAM_REQ_CMP		DID_OK
+-#define CAM_SEL_TIMEOUT		DID_NO_CONNECT
+-#define CAM_CMD_TIMEOUT		DID_TIME_OUT
+-#define CAM_REQ_ABORTED		DID_ABORT
+-#define CAM_UNCOR_PARITY	DID_PARITY
+-#define CAM_SCSI_BUS_RESET	DID_RESET	
+-#define CAM_REQUEUE_REQ		DID_SOFT_ERROR
+-#define	CAM_UNEXP_BUSFREE	DID_ERROR
+-#define	CAM_SCSI_BUSY		DID_BUS_BUSY
+-
+-#define	CAM_DEV_NOT_THERE	DID_NO_CONNECT
+-#define	CAM_REQ_INVALID		DID_ERROR
+-#define	CAM_REQ_TOO_BIG		DID_ERROR
+-
+-#define	CAM_RESRC_UNAVAIL	DID_ERROR
+-
+-/*
+- *  Remap data direction values.
+- */
+-#define CAM_DIR_NONE		DMA_NONE
+-#define CAM_DIR_IN		DMA_FROM_DEVICE
+-#define CAM_DIR_OUT		DMA_TO_DEVICE
+-#define CAM_DIR_UNKNOWN		DMA_BIDIRECTIONAL
+-
+-/*
+  *  These ones are used as return code from 
+  *  error recovery handlers under Linux.
+  */
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/scsi/sym53c8xx_2/sym_hipd.c CVS2_6_12_PA2/drivers/scsi/sym53c8xx_2/sym_hipd.c
+--- LINUS_2_6_12/drivers/scsi/sym53c8xx_2/sym_hipd.c	2005-06-17 21:22:04.000000000 -0600
++++ CVS2_6_12_PA2/drivers/scsi/sym53c8xx_2/sym_hipd.c	2005-05-20 12:27:31.000000000 -0600
+@@ -97,7 +97,7 @@
+ static void sym_print_nego_msg(struct sym_hcb *np, int target, char *label, u_char *msg)
+ {
+ 	struct sym_tcb *tp = &np->target[target];
+-	dev_info(&tp->sdev->sdev_target->dev, "%s: ", label);
++	dev_info(&tp->starget->dev, "%s: ", label);
+ 
+ 	sym_show_msg(msg);
+ 	printf(".\n");
+@@ -149,8 +149,10 @@
+ static void sym_chip_reset (struct sym_hcb *np)
+ {
+ 	OUTB(np, nc_istat, SRST);
++	INB(np, nc_mbox1);
+ 	udelay(10);
+ 	OUTB(np, nc_istat, 0);
++	INB(np, nc_mbox1);
+ 	udelay(2000);	/* For BUS MODE to settle */
+ }
+ 
+@@ -216,6 +218,7 @@
+ 	OUTB(np, nc_stest3, TE);
+ 	OUTB(np, nc_dcntl, (np->rv_dcntl & IRQM));
+ 	OUTB(np, nc_scntl1, CRST);
++	INB(np, nc_mbox1);
+ 	udelay(200);
+ 
+ 	if (!SYM_SETUP_SCSI_BUS_CHECK)
+@@ -280,8 +283,10 @@
+ 		if (!i)
+ 			printf("%s: the chip cannot lock the frequency\n",
+ 				sym_name(np));
+-	} else
+-		udelay((50+10));
++	} else {
++		INB(np, nc_mbox1);
++		udelay(50+10);
++	}
+ 	OUTB(np, nc_stest3, HSC);		/* Halt the scsi clock	*/
+ 	OUTB(np, nc_scntl3, scntl3);
+ 	OUTB(np, nc_stest1, (DBLEN|DBLSEL));/* Select clock multiplier	*/
+@@ -1445,7 +1450,7 @@
+ static int sym_prepare_nego(struct sym_hcb *np, struct sym_ccb *cp, u_char *msgptr)
+ {
+ 	struct sym_tcb *tp = &np->target[cp->target];
+-	struct scsi_target *starget = tp->sdev->sdev_target;
++	struct scsi_target *starget = tp->starget;
+ 	struct sym_trans *goal = &tp->tgoal;
+ 	int msglen = 0;
+ 	int nego;
+@@ -1690,7 +1695,7 @@
+ 		if (cam_status)
+ 			sym_set_cam_status(cmd, cam_status);
+ #ifdef SYM_OPT_HANDLE_DEVICE_QUEUEING
+-		if (sym_get_cam_status(cmd) == CAM_REQUEUE_REQ) {
++		if (sym_get_cam_status(cmd) == DID_SOFT_ERROR) {
+ 			struct sym_tcb *tp = &np->target[cp->target];
+ 			struct sym_lcb *lp = sym_lp(tp, cp->lun);
+ 			if (lp) {
+@@ -1791,12 +1796,13 @@
+ 	/*
+ 	 *  Wakeup all pending jobs.
+ 	 */
+-	sym_flush_busy_queue(np, CAM_SCSI_BUS_RESET);
++	sym_flush_busy_queue(np, DID_RESET);
+ 
+ 	/*
+ 	 *  Init chip.
+ 	 */
+ 	OUTB(np, nc_istat,  0x00);			/*  Remove Reset, abort */
++	INB(np, nc_mbox1);
+ 	udelay(2000); /* The 895 needs time for the bus mode to settle */
+ 
+ 	OUTB(np, nc_scntl0, np->rv_scntl0 | 0xc0);
+@@ -1905,6 +1911,7 @@
+ 	if (np->features & (FE_ULTRA2|FE_ULTRA3)) {
+ 		OUTONW(np, nc_sien, SBMC);
+ 		if (reason == 0) {
++			INB(np, nc_mbox1);
+ 			mdelay(100);
+ 			INW(np, nc_sist);
+ 		}
+@@ -2074,7 +2081,7 @@
+ static void sym_setwide(struct sym_hcb *np, int target, u_char wide)
+ {
+ 	struct sym_tcb *tp = &np->target[target];
+-	struct scsi_target *starget = tp->sdev->sdev_target;
++	struct scsi_target *starget = tp->starget;
+ 
+ 	if (spi_width(starget) == wide)
+ 		return;
+@@ -2102,7 +2109,7 @@
+             u_char ofs, u_char per, u_char div, u_char fak)
+ {
+ 	struct sym_tcb *tp = &np->target[target];
+-	struct scsi_target *starget = tp->sdev->sdev_target;
++	struct scsi_target *starget = tp->starget;
+ 	u_char wide = (tp->head.wval & EWS) ? BUS_16_BIT : BUS_8_BIT;
+ 
+ 	sym_settrans(np, target, 0, ofs, per, wide, div, fak);
+@@ -2129,7 +2136,7 @@
+              u_char per, u_char wide, u_char div, u_char fak)
+ {
+ 	struct sym_tcb *tp = &np->target[target];
+-	struct scsi_target *starget = tp->sdev->sdev_target;
++	struct scsi_target *starget = tp->starget;
+ 
+ 	sym_settrans(np, target, opts, ofs, per, wide, div, fak);
+ 
+@@ -2944,7 +2951,7 @@
+  *  Dequeue from the START queue all CCBs that match 
+  *  a given target/lun/task condition (-1 means all),
+  *  and move them from the BUSY queue to the COMP queue 
+- *  with CAM_REQUEUE_REQ status condition.
++ *  with DID_SOFT_ERROR status condition.
+  *  This function is used during error handling/recovery.
+  *  It is called with SCRIPTS not running.
+  */
+@@ -2974,7 +2981,7 @@
+ 		if ((target == -1 || cp->target == target) &&
+ 		    (lun    == -1 || cp->lun    == lun)    &&
+ 		    (task   == -1 || cp->tag    == task)) {
+-			sym_set_cam_status(cp->cmd, CAM_REQUEUE_REQ);
++			sym_set_cam_status(cp->cmd, DID_SOFT_ERROR);
+ 			sym_remque(&cp->link_ccbq);
+ 			sym_insque_tail(&cp->link_ccbq, &np->comp_ccbq);
+ 		}
+@@ -3093,13 +3100,13 @@
+ 		/*
+ 		 *  Message table indirect structure.
+ 		 */
+-		cp->phys.smsg.addr	= cpu_to_scr(CCB_BA(cp, scsi_smsg2));
++		cp->phys.smsg.addr	= CCB_BA(cp, scsi_smsg2);
+ 		cp->phys.smsg.size	= cpu_to_scr(msglen);
+ 
+ 		/*
+ 		 *  sense command
+ 		 */
+-		cp->phys.cmd.addr	= cpu_to_scr(CCB_BA(cp, sensecmd));
++		cp->phys.cmd.addr	= CCB_BA(cp, sensecmd);
+ 		cp->phys.cmd.size	= cpu_to_scr(6);
+ 
+ 		/*
+@@ -3116,7 +3123,7 @@
+ 		 *  sense data
+ 		 */
+ 		memset(cp->sns_bbuf, 0, SYM_SNS_BBUF_LEN);
+-		cp->phys.sense.addr	= cpu_to_scr(CCB_BA(cp, sns_bbuf));
++		cp->phys.sense.addr	= CCB_BA(cp, sns_bbuf);
+ 		cp->phys.sense.size	= cpu_to_scr(SYM_SNS_BBUF_LEN);
+ 
+ 		/*
+@@ -3198,7 +3205,7 @@
+ 		sym_insque_tail(&cp->link_ccbq, &np->comp_ccbq);
+ 
+ 		/* Preserve the software timeout condition */
+-		if (sym_get_cam_status(cmd) != CAM_CMD_TIMEOUT)
++		if (sym_get_cam_status(cmd) != DID_TIME_OUT)
+ 			sym_set_cam_status(cmd, cam_status);
+ 		++i;
+ #if 0
+@@ -3366,7 +3373,7 @@
+ 		 *  Make sure at least our IO to abort has been dequeued.
+ 		 */
+ #ifndef SYM_OPT_HANDLE_DEVICE_QUEUEING
+-		assert(i && sym_get_cam_status(cp->cmd) == CAM_REQUEUE_REQ);
++		assert(i && sym_get_cam_status(cp->cmd) == DID_SOFT_ERROR);
+ #else
+ 		sym_remque(&cp->link_ccbq);
+ 		sym_insque_tail(&cp->link_ccbq, &np->comp_ccbq);
+@@ -3375,9 +3382,9 @@
+ 		 *  Keep track in cam status of the reason of the abort.
+ 		 */
+ 		if (cp->to_abort == 2)
+-			sym_set_cam_status(cp->cmd, CAM_CMD_TIMEOUT);
++			sym_set_cam_status(cp->cmd, DID_TIME_OUT);
+ 		else
+-			sym_set_cam_status(cp->cmd, CAM_REQ_ABORTED);
++			sym_set_cam_status(cp->cmd, DID_ABORT);
+ 
+ 		/*
+ 		 *  Complete with error everything that we have dequeued.
+@@ -3491,7 +3498,7 @@
+ 		 *  conditions not due to timeout.
+ 		 */
+ 		if (cp->to_abort == 2)
+-			sym_set_cam_status(cp->cmd, CAM_CMD_TIMEOUT);
++			sym_set_cam_status(cp->cmd, DID_TIME_OUT);
+ 		cp->to_abort = 0; /* We donnot expect to fail here */
+ 		break;
+ 
+@@ -3502,7 +3509,7 @@
+ 	case SIR_ABORT_SENT:
+ 		target = INB(np, nc_sdid) & 0xf;
+ 		tp = &np->target[target];
+-		starget = tp->sdev->sdev_target;
++		starget = tp->starget;
+ 		
+ 		/*
+ 		**  If we didn't abort anything, leave here.
+@@ -3551,7 +3558,7 @@
+ 		 */
+ 		i = (INL(np, nc_scratcha) - np->squeue_ba) / 4;
+ 		sym_dequeue_from_squeue(np, i, target, lun, -1);
+-		sym_clear_tasks(np, CAM_REQ_ABORTED, target, lun, task);
++		sym_clear_tasks(np, DID_ABORT, target, lun, task);
+ 		sym_flush_comp_queue(np, 0);
+ 
+  		/*
+@@ -3566,7 +3573,7 @@
+ 	 *  Print to the log the message we intend to send.
+ 	 */
+ 	if (num == SIR_TARGET_SELECTED) {
+-		dev_info(&tp->sdev->sdev_target->dev, "control msgout:");
++		dev_info(&tp->starget->dev, "control msgout:");
+ 		sym_printl_hex(np->abrt_msg, np->abrt_tbl.size);
+ 		np->abrt_tbl.size = cpu_to_scr(np->abrt_tbl.size);
+ 	}
+@@ -3877,6 +3884,8 @@
+ 		resid += (tmp & 0xffffff);
+ 	}
+ 
++	resid -= cp->odd_byte_adjustment;
++
+ 	/*
+ 	 *  Hopefully, the result is not too wrong.
+ 	 */
+@@ -4758,10 +4767,8 @@
+ 	}
+ 
+ #endif
+-	/*
+-	 *  Remember all informations needed to free this CCB.
+-	 */
+ 	cp->to_abort = 0;
++	cp->odd_byte_adjustment = 0;
+ 	cp->tag	   = tag;
+ 	cp->order  = tag_order;
+ 	cp->target = tn;
+@@ -5104,7 +5111,7 @@
+ 	lp->itlq_tbl = sym_calloc_dma(SYM_CONF_MAX_TASK*4, "ITLQ_TBL");
+ 	if (!lp->itlq_tbl)
+ 		goto fail;
+-	lp->cb_tags = kcalloc(SYM_CONF_MAX_TASK, 1, GFP_KERNEL);
++	lp->cb_tags = kcalloc(SYM_CONF_MAX_TASK, 1, GFP_ATOMIC);
+ 	if (!lp->cb_tags) {
+ 		sym_mfree_dma(lp->itlq_tbl, SYM_CONF_MAX_TASK*4, "ITLQ_TBL");
+ 		lp->itlq_tbl = NULL;
+@@ -5243,7 +5250,7 @@
+ 	/*
+ 	 *  message
+ 	 */
+-	cp->phys.smsg.addr	= cpu_to_scr(CCB_BA(cp, scsi_smsg));
++	cp->phys.smsg.addr	= CCB_BA(cp, scsi_smsg);
+ 	cp->phys.smsg.size	= cpu_to_scr(msglen);
+ 
+ 	/*
+@@ -5343,7 +5350,7 @@
+ }
+ 
+ /*
+- *  Complete execution of a SCSI command with extented 
++ *  Complete execution of a SCSI command with extended 
+  *  error, SCSI status error, or having been auto-sensed.
+  *
+  *  The SCRIPTS processor is not running there, so we 
+@@ -5441,7 +5448,7 @@
+ 		/*
+ 		 *  Let's requeue it to device.
+ 		 */
+-		sym_set_cam_status(cmd, CAM_REQUEUE_REQ);
++		sym_set_cam_status(cmd, DID_SOFT_ERROR);
+ 		goto finish;
+ 	}
+ weirdness:
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/scsi/sym53c8xx_2/sym_hipd.h CVS2_6_12_PA2/drivers/scsi/sym53c8xx_2/sym_hipd.h
+--- LINUS_2_6_12/drivers/scsi/sym53c8xx_2/sym_hipd.h	2005-06-17 21:22:04.000000000 -0600
++++ CVS2_6_12_PA2/drivers/scsi/sym53c8xx_2/sym_hipd.h	2005-05-19 20:41:45.000000000 -0600
+@@ -444,7 +444,7 @@
+ 	 */
+ 	u_char	usrflags;
+ 	u_short	usrtags;
+-	struct scsi_device *sdev;
++	struct scsi_target *starget;
+ };
+ 
+ /*
+@@ -754,10 +754,8 @@
+ 	int	segments;	/* Number of SG segments	*/
+ 
+ 	u8	order;		/* Tag type (if tagged command)	*/
++	unsigned char odd_byte_adjustment;	/* odd-sized req on wide bus */
+ 
+-	/*
+-	 *  Miscellaneous status'.
+-	 */
+ 	u_char	nego_status;	/* Negotiation status		*/
+ 	u_char	xerr_status;	/* Extended error flags		*/
+ 	u32	extra_bytes;	/* Extraneous bytes transferred	*/
+@@ -809,7 +807,7 @@
+ #endif
+ };
+ 
+-#define CCB_BA(cp,lbl)	(cp->ccb_ba + offsetof(struct sym_ccb, lbl))
++#define CCB_BA(cp,lbl)	cpu_to_scr(cp->ccb_ba + offsetof(struct sym_ccb, lbl))
+ 
+ #ifdef	SYM_OPT_HANDLE_DIR_UNKNOWN
+ #define	sym_goalp(cp) ((cp->host_flags & HF_DATA_IN) ? cp->goalp : cp->wgoalp)
+@@ -1138,33 +1136,33 @@
+ 	 *  No segments means no data.
+ 	 */
+ 	if (!cp->segments)
+-		dir = CAM_DIR_NONE;
++		dir = DMA_NONE;
+ 
+ 	/*
+ 	 *  Set the data pointer.
+ 	 */
+ 	switch(dir) {
+ #ifdef	SYM_OPT_HANDLE_DIR_UNKNOWN
+-	case CAM_DIR_UNKNOWN:
++	case DMA_BIDIRECTIONAL:
+ #endif
+-	case CAM_DIR_OUT:
++	case DMA_TO_DEVICE:
+ 		goalp = SCRIPTA_BA(np, data_out2) + 8;
+ 		lastp = goalp - 8 - (cp->segments * (2*4));
+ #ifdef	SYM_OPT_HANDLE_DIR_UNKNOWN
+ 		cp->wgoalp = cpu_to_scr(goalp);
+-		if (dir != CAM_DIR_UNKNOWN)
++		if (dir != DMA_BIDIRECTIONAL)
+ 			break;
+ 		cp->phys.head.wlastp = cpu_to_scr(lastp);
+ 		/* fall through */
+ #else
+ 		break;
+ #endif
+-	case CAM_DIR_IN:
++	case DMA_FROM_DEVICE:
+ 		cp->host_flags |= HF_DATA_IN;
+ 		goalp = SCRIPTA_BA(np, data_in2) + 8;
+ 		lastp = goalp - 8 - (cp->segments * (2*4));
+ 		break;
+-	case CAM_DIR_NONE:
++	case DMA_NONE:
+ 	default:
+ #ifdef	SYM_OPT_HANDLE_DIR_UNKNOWN
+ 		cp->host_flags |= HF_DATA_IN;
+@@ -1185,7 +1183,7 @@
+ 	/*
+ 	 *  If direction is unknown, start at data_io.
+ 	 */
+-	if (dir == CAM_DIR_UNKNOWN)
++	if (dir == DMA_BIDIRECTIONAL)
+ 		cp->phys.head.savep = cpu_to_scr(SCRIPTB_BA(np, data_io));
+ #endif
+ }
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/scsi/sym53c8xx_2/sym_nvram.c CVS2_6_12_PA2/drivers/scsi/sym53c8xx_2/sym_nvram.c
+--- LINUS_2_6_12/drivers/scsi/sym53c8xx_2/sym_nvram.c	2005-06-17 21:22:04.000000000 -0600
++++ CVS2_6_12_PA2/drivers/scsi/sym53c8xx_2/sym_nvram.c	2005-05-20 12:24:41.000000000 -0600
+@@ -270,6 +270,7 @@
+ 
+ 	}
+ 	OUTB(np, nc_gpreg, *gpreg);
++	INB(np, nc_mbox1);
+ 	udelay(5);
+ }
+ 
+@@ -547,6 +548,7 @@
+ static void T93C46_Clk(struct sym_device *np, u_char *gpreg)
+ {
+ 	OUTB(np, nc_gpreg, *gpreg | 0x04);
++	INB(np, nc_mbox1);
+ 	udelay(2);
+ 	OUTB(np, nc_gpreg, *gpreg);
+ }
+@@ -574,6 +576,7 @@
+ 	*gpreg |= 0x10;
+ 		
+ 	OUTB(np, nc_gpreg, *gpreg);
++	INB(np, nc_mbox1);
+ 	udelay(2);
+ 
+ 	T93C46_Clk(np, gpreg);
+@@ -586,6 +589,7 @@
+ {
+ 	*gpreg &= 0xef;
+ 	OUTB(np, nc_gpreg, *gpreg);
++	INB(np, nc_mbox1);
+ 	udelay(2);
+ 
+ 	T93C46_Clk(np, gpreg);
+@@ -733,7 +737,8 @@
+ 	return SYM_PARISC_PDC;
+ }
+ #else
+-static int sym_read_parisc_pdc(struct sym_device *np, struct pdc_initiator *x)
++static inline int sym_read_parisc_pdc(struct sym_device *np,
++					struct pdc_initiator *x)
+ {
+ 	return 0;
+ }
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/serial/mux.c CVS2_6_12_PA2/drivers/serial/mux.c
+--- LINUS_2_6_12/drivers/serial/mux.c	2005-06-17 21:22:04.000000000 -0600
++++ CVS2_6_12_PA2/drivers/serial/mux.c	2005-02-14 07:56:20.000000000 -0700
+@@ -27,6 +27,7 @@
+ #include <linux/delay.h> /* for udelay */
+ #include <linux/device.h>
+ #include <asm/io.h>
++#include <asm/irq.h>
+ #include <asm/parisc-device.h>
+ 
+ #ifdef CONFIG_MAGIC_SYSRQ
+@@ -475,7 +476,7 @@
+ 		port->membase	= ioremap(port->mapbase, MUX_LINE_OFFSET);
+ 		port->iotype	= SERIAL_IO_MEM;
+ 		port->type	= PORT_MUX;
+-		port->irq	= SERIAL_IRQ_NONE;
++		port->irq	= NO_IRQ;
+ 		port->uartclk	= 0;
+ 		port->fifosize	= MUX_FIFO_SIZE;
+ 		port->ops	= &mux_pops;
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/serial/serial_core.c CVS2_6_12_PA2/drivers/serial/serial_core.c
+--- LINUS_2_6_12/drivers/serial/serial_core.c	2005-06-17 21:22:04.000000000 -0600
++++ CVS2_6_12_PA2/drivers/serial/serial_core.c	2005-04-04 14:47:03.000000000 -0600
+@@ -1929,7 +1929,14 @@
+ 		printk("MMIO 0x%lx", port->mapbase);
+ 		break;
+ 	}
+-	printk(" (irq = %d) is a %s\n", port->irq, uart_type(port));
++#ifndef NO_IRQ
++#define NO_IRQ (-1)
++#endif
++	if (port->irq == NO_IRQ) {
++		printk(" (polled) is a %s\n", uart_type(port));
++	} else {
++		printk(" (irq = %d) is a %s\n", port->irq, uart_type(port));
++	}
+ }
+ 
+ static void
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/usb/input/hid-core.c CVS2_6_12_PA2/drivers/usb/input/hid-core.c
+--- LINUS_2_6_12/drivers/usb/input/hid-core.c	2005-06-17 21:22:05.000000000 -0600
++++ CVS2_6_12_PA2/drivers/usb/input/hid-core.c	2005-06-11 11:12:11.000000000 -0600
+@@ -759,21 +759,31 @@
+ }
+ 
+ /*
+- * Extract/implement a data field from/to a report.
++ * Extract/implement a data field from/to a little endian report (bit array).
+  */
+ 
+ static __inline__ __u32 extract(__u8 *report, unsigned offset, unsigned n)
+ {
+-	report += (offset >> 5) << 2; offset &= 31;
+-	return (le64_to_cpu(get_unaligned((__le64*)report)) >> offset) & ((1 << n) - 1);
++	u32 x;
++
++	report += offset >> 3;  /* adjust byte index */
++	offset &= 8 - 1;
++	x = get_unaligned((u32 *) report);
++	x = le32_to_cpu(x);
++	x = (x >> offset) & ((1 << n) - 1);
++	return x;
+ }
+ 
+ static __inline__ void implement(__u8 *report, unsigned offset, unsigned n, __u32 value)
+ {
+-	report += (offset >> 5) << 2; offset &= 31;
+-	put_unaligned((get_unaligned((__le64*)report)
+-		& cpu_to_le64(~((((__u64) 1 << n) - 1) << offset)))
+-		| cpu_to_le64((__u64)value << offset), (__le64*)report);
++	u32 x;
++
++	report += offset >> 3;
++	offset &= 8 - 1;
++	x = get_unaligned((u32 *)report);
++	x &= cpu_to_le32(~((((__u32) 1 << n) - 1) << offset));
++	x |= cpu_to_le32(value << offset);
++	put_unaligned(x,(u32 *)report);
+ }
+ 
+ /*
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/usb/storage/transport.c CVS2_6_12_PA2/drivers/usb/storage/transport.c
+--- LINUS_2_6_12/drivers/usb/storage/transport.c	2005-06-17 21:22:06.000000000 -0600
++++ CVS2_6_12_PA2/drivers/usb/storage/transport.c	2005-06-04 13:21:10.000000000 -0600
+@@ -266,8 +266,9 @@
+ 		NULL, 0, 3*HZ);
+ 
+ 	/* reset the endpoint toggle */
+-	usb_settoggle(us->pusb_dev, usb_pipeendpoint(pipe),
+-		usb_pipeout(pipe), 0);
++	if (result >= 0)
++		usb_settoggle(us->pusb_dev, usb_pipeendpoint(pipe),
++				usb_pipeout(pipe), 0);
+ 
+ 	US_DEBUGP("%s: result = %d\n", __FUNCTION__, result);
+ 	return result;
+@@ -1124,7 +1125,7 @@
+  * It's handy that every transport mechanism uses the control endpoint for
+  * resets.
+  *
+- * Basically, we send a reset with a 20-second timeout, so we don't get
++ * Basically, we send a reset with a 5-second timeout, so we don't get
+  * jammed attempting to do the reset.
+  */
+ static int usb_stor_reset_common(struct us_data *us,
+@@ -1145,13 +1146,9 @@
+ 	clear_bit(US_FLIDX_ABORTING, &us->flags);
+ 	scsi_unlock(us_to_host(us));
+ 
+-	/* A 20-second timeout may seem rather long, but a LaCie
+-	 * StudioDrive USB2 device takes 16+ seconds to get going
+-	 * following a powerup or USB attach event.
+-	 */
+ 	result = usb_stor_control_msg(us, us->send_ctrl_pipe,
+ 			request, requesttype, value, index, data, size,
+-			20*HZ);
++			5*HZ);
+ 	if (result < 0) {
+ 		US_DEBUGP("Soft reset failed: %d\n", result);
+ 		goto Done;
+@@ -1173,8 +1170,10 @@
+ 	US_DEBUGP("Soft reset: clearing bulk-out endpoint halt\n");
+ 	result2 = usb_stor_clear_halt(us, us->send_bulk_pipe);
+ 
+-	/* return a result code based on the result of the control message */
+-	if (result < 0 || result2 < 0) {
++	/* return a result code based on the result of the clear-halts */
++	if (result >= 0)
++		result = result2;
++	if (result < 0) {
+ 		US_DEBUGP("Soft reset failed\n");
+ 		goto Done;
+ 	}
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/drivers/video/console/Kconfig CVS2_6_12_PA2/drivers/video/console/Kconfig
+--- LINUS_2_6_12/drivers/video/console/Kconfig	2005-06-17 21:22:07.000000000 -0600
++++ CVS2_6_12_PA2/drivers/video/console/Kconfig	2005-03-15 10:06:49.000000000 -0700
+@@ -110,7 +110,7 @@
+ 
+ config FONTS
+ 	bool "Select compiled-in fonts"
+-	depends on FRAMEBUFFER_CONSOLE
++	depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE
+ 	help
+ 	  Say Y here if you would like to use fonts other than the default
+ 	  your frame buffer console usually use.
+@@ -123,7 +123,7 @@
+ 
+ config FONT_8x8
+ 	bool "VGA 8x8 font" if FONTS
+-	depends on FRAMEBUFFER_CONSOLE
++	depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE
+ 	default y if !SPARC32 && !SPARC64 && !FONTS
+ 	help
+ 	  This is the "high resolution" font for the VGA frame buffer (the one
+@@ -137,7 +137,7 @@
+ 
+ config FONT_8x16
+ 	bool "VGA 8x16 font" if FONTS
+-	depends on FRAMEBUFFER_CONSOLE || SGI_NEWPORT_CONSOLE=y
++	depends on FRAMEBUFFER_CONSOLE || SGI_NEWPORT_CONSOLE=y || STI_CONSOLE
+ 	default y if !SPARC32 && !SPARC64 && !FONTS
+ 	help
+ 	  This is the "high resolution" font for the VGA frame buffer (the one
+@@ -147,7 +147,7 @@
+ 
+ config FONT_6x11
+ 	bool "Mac console 6x11 font (not supported by all drivers)" if FONTS
+-	depends on FRAMEBUFFER_CONSOLE
++	depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE
+ 	default y if !SPARC32 && !SPARC64 && !FONTS && MAC
+ 	help
+ 	  Small console font with Macintosh-style high-half glyphs.  Some Mac
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/fs/ioctl.c CVS2_6_12_PA2/fs/ioctl.c
+--- LINUS_2_6_12/fs/ioctl.c	2005-06-17 21:22:07.000000000 -0600
++++ CVS2_6_12_PA2/fs/ioctl.c	2005-03-14 06:24:36.000000000 -0700
+@@ -71,7 +71,11 @@
+ 				return -EBADF;
+ 			return put_user(inode->i_sb->s_blocksize, p);
+ 		case FIONREAD:
+-			return put_user(i_size_read(inode) - filp->f_pos, p);
++		{
++			int sz;
++			sz = i_size_read(inode) - filp->f_pos;
++			return put_user(sz, p);
++		}
+ 	}
+ 
+ 	return do_ioctl(filp, cmd, arg);
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/include/asm-generic/compat_signal.h CVS2_6_12_PA2/include/asm-generic/compat_signal.h
+--- LINUS_2_6_12/include/asm-generic/compat_signal.h	1969-12-31 17:00:00.000000000 -0700
++++ CVS2_6_12_PA2/include/asm-generic/compat_signal.h	2004-01-27 22:12:47.000000000 -0700
+@@ -0,0 +1,25 @@
++#ifndef _ASM_GENERIC_COMPAT_SIGNAL_H
++#define _ASM_GENERIC_COMPAT_SIGNAL_H
++
++#ifndef __ASSEMBLY__
++#include <linux/compat.h>
++
++typedef compat_uptr_t compat_sighandler_t;
++
++typedef struct compat_sigaltstack {
++	compat_uptr_t ss_sp;
++	compat_int_t ss_flags;
++	compat_size_t ss_size;
++} compat_stack_t;
++
++/* Most things should be clean enough to redefine this at will, if care
++   is taken to make libc match.  */
++
++struct compat_sigaction {
++	compat_sighandler_t sa_handler;
++	compat_uint_t sa_flags;
++	compat_sigset_t sa_mask;		/* mask last for extensibility */
++};
++
++#endif /* !__ASSEMBLY__ */
++#endif /* !_ASM_GENERIC_COMPAT_SIGNAL_H */
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/include/asm-ia64/compat.h CVS2_6_12_PA2/include/asm-ia64/compat.h
+--- LINUS_2_6_12/include/asm-ia64/compat.h	2005-06-17 21:22:11.000000000 -0600
++++ CVS2_6_12_PA2/include/asm-ia64/compat.h	2004-10-11 15:41:31.000000000 -0600
+@@ -15,6 +15,9 @@
+ typedef s32		compat_pid_t;
+ typedef u16		compat_uid_t;
+ typedef u16		compat_gid_t;
++/* Define for use in compat_siginfo_t */
++#undef __ARCH_SI_COMPAT_UID_T
++#define __ARCH_SI_COMPAT_UID_T	compat_uid32_t
+ typedef u32		compat_uid32_t;
+ typedef u32		compat_gid32_t;
+ typedef u16		compat_mode_t;
+@@ -27,6 +30,7 @@
+ typedef s32		compat_daddr_t;
+ typedef u32		compat_caddr_t;
+ typedef __kernel_fsid_t	compat_fsid_t;
++typedef s32		compat_timer_t;
+ 
+ typedef s32		compat_int_t;
+ typedef s32		compat_long_t;
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/include/asm-parisc/assembly.h CVS2_6_12_PA2/include/asm-parisc/assembly.h
+--- LINUS_2_6_12/include/asm-parisc/assembly.h	2005-06-17 21:22:14.000000000 -0600
++++ CVS2_6_12_PA2/include/asm-parisc/assembly.h	2005-05-12 22:39:05.000000000 -0600
+@@ -450,5 +450,30 @@
+ 	REST_CR	(%cr22, PT_PSW	(\regs))
+ 	.endm
+ 
++
++	/* First step to create a "relied upon translation"
++	 * See PA 2.0 Arch. page F-4 and F-5.
++	 *
++	 * The ssm was originally necessary due to a "PCxT bug".
++	 * But someone decided it needed to be added to the architecture
++	 * and this "feature" went into rev3 of PA-RISC 1.1 Arch Manual.
++	 * It's been carried forward into PA 2.0 Arch as well. :^(
++	 *
++	 * "ssm 0,%r0" is a NOP with side effects (prefetch barrier).
++	 * rsm/ssm prevents the ifetch unit from speculatively fetching
++	 * instructions past this line in the code stream.
++	 * PA 2.0 processor will single step all insn in the same QUAD (4 insn).
++	 */
++	.macro	pcxt_ssm_bug
++	rsm	PSW_SM_I,%r0
++	nop	/* 1 */
++	nop	/* 2 */
++	nop	/* 3 */
++	nop	/* 4 */
++	nop	/* 5 */
++	nop	/* 6 */
++	nop	/* 7 */
++	.endm
++
+ #endif /* __ASSEMBLY__ */
+ #endif
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/include/asm-parisc/bitops.h CVS2_6_12_PA2/include/asm-parisc/bitops.h
+--- LINUS_2_6_12/include/asm-parisc/bitops.h	2005-06-17 21:22:14.000000000 -0600
++++ CVS2_6_12_PA2/include/asm-parisc/bitops.h	2005-06-03 23:42:21.000000000 -0600
+@@ -2,6 +2,7 @@
+ #define _PARISC_BITOPS_H
+ 
+ #include <linux/compiler.h>
++#include <asm/types.h>		/* for BITS_PER_LONG/SHIFT_PER_LONG */
+ #include <asm/system.h>
+ #include <asm/byteorder.h>
+ #include <asm/atomic.h>
+@@ -12,193 +13,157 @@
+  * to include/asm-i386/bitops.h or kerneldoc
+  */
+ 
+-#ifdef __LP64__
+-#   define SHIFT_PER_LONG 6
+-#ifndef BITS_PER_LONG
+-#   define BITS_PER_LONG 64
+-#endif
+-#else
+-#   define SHIFT_PER_LONG 5
+-#ifndef BITS_PER_LONG
+-#   define BITS_PER_LONG 32
+-#endif
+-#endif
+-
+-#define CHOP_SHIFTCOUNT(x) ((x) & (BITS_PER_LONG - 1))
++#define CHOP_SHIFTCOUNT(x) (((unsigned long) (x)) & (BITS_PER_LONG - 1))
+ 
+ 
+ #define smp_mb__before_clear_bit()      smp_mb()
+ #define smp_mb__after_clear_bit()       smp_mb()
+ 
+-static __inline__ void set_bit(int nr, volatile unsigned long * address)
++/* See http://marc.theaimsgroup.com/?t=108826637900003 for discussion
++ * on use of volatile and __*_bit() (set/clear/change):
++ *	*_bit() want use of volatile.
++ *	__*_bit() are "relaxed" and don't use spinlock or volatile.
++ */
++
++static __inline__ void set_bit(int nr, volatile unsigned long * addr)
+ {
+-	unsigned long mask;
+-	unsigned long *addr = (unsigned long *) address;
++	unsigned long mask = 1UL << CHOP_SHIFTCOUNT(nr);
+ 	unsigned long flags;
+ 
+ 	addr += (nr >> SHIFT_PER_LONG);
+-	mask = 1L << CHOP_SHIFTCOUNT(nr);
+ 	_atomic_spin_lock_irqsave(addr, flags);
+ 	*addr |= mask;
+ 	_atomic_spin_unlock_irqrestore(addr, flags);
+ }
+ 
+-static __inline__ void __set_bit(int nr, volatile unsigned long * address)
++static __inline__ void __set_bit(unsigned long nr, volatile unsigned long * addr)
+ {
+-	unsigned long mask;
+-	unsigned long *addr = (unsigned long *) address;
++	unsigned long *m = (unsigned long *) addr + (nr >> SHIFT_PER_LONG);
+ 
+-	addr += (nr >> SHIFT_PER_LONG);
+-	mask = 1L << CHOP_SHIFTCOUNT(nr);
+-	*addr |= mask;
++	*m |= 1UL << CHOP_SHIFTCOUNT(nr);
+ }
+ 
+-static __inline__ void clear_bit(int nr, volatile unsigned long * address)
++static __inline__ void clear_bit(int nr, volatile unsigned long * addr)
+ {
+-	unsigned long mask;
+-	unsigned long *addr = (unsigned long *) address;
++	unsigned long mask = ~(1UL << CHOP_SHIFTCOUNT(nr));
+ 	unsigned long flags;
+ 
+ 	addr += (nr >> SHIFT_PER_LONG);
+-	mask = 1L << CHOP_SHIFTCOUNT(nr);
+ 	_atomic_spin_lock_irqsave(addr, flags);
+-	*addr &= ~mask;
++	*addr &= mask;
+ 	_atomic_spin_unlock_irqrestore(addr, flags);
+ }
+ 
+-static __inline__ void __clear_bit(unsigned long nr, volatile unsigned long * address)
++static __inline__ void __clear_bit(unsigned long nr, volatile unsigned long * addr)
+ {
+-	unsigned long mask;
+-	unsigned long *addr = (unsigned long *) address;
++	unsigned long *m = (unsigned long *) addr + (nr >> SHIFT_PER_LONG);
+ 
+-	addr += (nr >> SHIFT_PER_LONG);
+-	mask = 1L << CHOP_SHIFTCOUNT(nr);
+-	*addr &= ~mask;
++	*m &= ~(1UL << CHOP_SHIFTCOUNT(nr));
+ }
+ 
+-static __inline__ void change_bit(int nr, volatile unsigned long * address)
++static __inline__ void change_bit(int nr, volatile unsigned long * addr)
+ {
+-	unsigned long mask;
+-	unsigned long *addr = (unsigned long *) address;
++	unsigned long mask = 1UL << CHOP_SHIFTCOUNT(nr);
+ 	unsigned long flags;
+ 
+ 	addr += (nr >> SHIFT_PER_LONG);
+-	mask = 1L << CHOP_SHIFTCOUNT(nr);
+ 	_atomic_spin_lock_irqsave(addr, flags);
+ 	*addr ^= mask;
+ 	_atomic_spin_unlock_irqrestore(addr, flags);
+ }
+ 
+-static __inline__ void __change_bit(int nr, volatile unsigned long * address)
++static __inline__ void __change_bit(unsigned long nr, volatile unsigned long * addr)
+ {
+-	unsigned long mask;
+-	unsigned long *addr = (unsigned long *) address;
++	unsigned long *m = (unsigned long *) addr + (nr >> SHIFT_PER_LONG);
+ 
+-	addr += (nr >> SHIFT_PER_LONG);
+-	mask = 1L << CHOP_SHIFTCOUNT(nr);
+-	*addr ^= mask;
++	*m ^= 1UL << CHOP_SHIFTCOUNT(nr);
+ }
+ 
+-static __inline__ int test_and_set_bit(int nr, volatile unsigned long * address)
++static __inline__ int test_and_set_bit(int nr, volatile unsigned long * addr)
+ {
+-	unsigned long mask;
+-	unsigned long *addr = (unsigned long *) address;
+-	int oldbit;
++	unsigned long mask = 1UL << CHOP_SHIFTCOUNT(nr);
++	unsigned long oldbit;
+ 	unsigned long flags;
+ 
+ 	addr += (nr >> SHIFT_PER_LONG);
+-	mask = 1L << CHOP_SHIFTCOUNT(nr);
+ 	_atomic_spin_lock_irqsave(addr, flags);
+-	oldbit = (*addr & mask) ? 1 : 0;
+-	*addr |= mask;
++	oldbit = *addr;
++	*addr = oldbit | mask;
+ 	_atomic_spin_unlock_irqrestore(addr, flags);
+ 
+-	return oldbit;
++	return (oldbit & mask) ? 1 : 0;
+ }
+ 
+ static __inline__ int __test_and_set_bit(int nr, volatile unsigned long * address)
+ {
+-	unsigned long mask;
+-	unsigned long *addr = (unsigned long *) address;
+-	int oldbit;
++	unsigned long mask = 1UL << CHOP_SHIFTCOUNT(nr);
++	unsigned long oldbit;
++	unsigned long *addr = (unsigned long *)address + (nr >> SHIFT_PER_LONG);
+ 
+-	addr += (nr >> SHIFT_PER_LONG);
+-	mask = 1L << CHOP_SHIFTCOUNT(nr);
+-	oldbit = (*addr & mask) ? 1 : 0;
+-	*addr |= mask;
++	oldbit = *addr;
++	*addr = oldbit | mask;
+ 
+-	return oldbit;
++	return (oldbit & mask) ? 1 : 0;
+ }
+ 
+-static __inline__ int test_and_clear_bit(int nr, volatile unsigned long * address)
++static __inline__ int test_and_clear_bit(int nr, volatile unsigned long * addr)
+ {
+-	unsigned long mask;
+-	unsigned long *addr = (unsigned long *) address;
+-	int oldbit;
++	unsigned long mask = 1UL << CHOP_SHIFTCOUNT(nr);
++	unsigned long oldbit;
+ 	unsigned long flags;
+ 
+ 	addr += (nr >> SHIFT_PER_LONG);
+-	mask = 1L << CHOP_SHIFTCOUNT(nr);
+ 	_atomic_spin_lock_irqsave(addr, flags);
+-	oldbit = (*addr & mask) ? 1 : 0;
+-	*addr &= ~mask;
++	oldbit = *addr;
++	*addr = oldbit & ~mask;
+ 	_atomic_spin_unlock_irqrestore(addr, flags);
+ 
+-	return oldbit;
++	return (oldbit & mask) ? 1 : 0;
+ }
+ 
+ static __inline__ int __test_and_clear_bit(int nr, volatile unsigned long * address)
+ {
+-	unsigned long mask;
+-	unsigned long *addr = (unsigned long *) address;
+-	int oldbit;
++	unsigned long mask = 1UL << CHOP_SHIFTCOUNT(nr);
++	unsigned long *addr = (unsigned long *)address + (nr >> SHIFT_PER_LONG);
++	unsigned long oldbit;
+ 
+-	addr += (nr >> SHIFT_PER_LONG);
+-	mask = 1L << CHOP_SHIFTCOUNT(nr);
+-	oldbit = (*addr & mask) ? 1 : 0;
+-	*addr &= ~mask;
++	oldbit = *addr;
++	*addr = oldbit & ~mask;
+ 
+-	return oldbit;
++	return (oldbit & mask) ? 1 : 0;
+ }
+ 
+-static __inline__ int test_and_change_bit(int nr, volatile unsigned long * address)
++static __inline__ int test_and_change_bit(int nr, volatile unsigned long * addr)
+ {
+-	unsigned long mask;
+-	unsigned long *addr = (unsigned long *) address;
+-	int oldbit;
++	unsigned long mask = 1UL << CHOP_SHIFTCOUNT(nr);
++	unsigned long oldbit;
+ 	unsigned long flags;
+ 
+ 	addr += (nr >> SHIFT_PER_LONG);
+-	mask = 1L << CHOP_SHIFTCOUNT(nr);
+ 	_atomic_spin_lock_irqsave(addr, flags);
+-	oldbit = (*addr & mask) ? 1 : 0;
+-	*addr ^= mask;
++	oldbit = *addr;
++	*addr = oldbit ^ mask;
+ 	_atomic_spin_unlock_irqrestore(addr, flags);
+ 
+-	return oldbit;
++	return (oldbit & mask) ? 1 : 0;
+ }
+ 
+ static __inline__ int __test_and_change_bit(int nr, volatile unsigned long * address)
+ {
+-	unsigned long mask;
+-	unsigned long *addr = (unsigned long *) address;
+-	int oldbit;
++	unsigned long mask = 1UL << CHOP_SHIFTCOUNT(nr);
++	unsigned long *addr = (unsigned long *)address + (nr >> SHIFT_PER_LONG);
++	unsigned long oldbit;
+ 
+-	addr += (nr >> SHIFT_PER_LONG);
+-	mask = 1L << CHOP_SHIFTCOUNT(nr);
+-	oldbit = (*addr & mask) ? 1 : 0;
+-	*addr ^= mask;
++	oldbit = *addr;
++	*addr = oldbit ^ mask;
+ 
+-	return oldbit;
++	return (oldbit & mask) ? 1 : 0;
+ }
+ 
+ static __inline__ int test_bit(int nr, const volatile unsigned long *address)
+ {
+-	unsigned long mask;
+-	const unsigned long *addr = (const unsigned long *)address;
+-	
+-	addr += (nr >> SHIFT_PER_LONG);
+-	mask = 1L << CHOP_SHIFTCOUNT(nr);
++	unsigned long mask = 1UL << CHOP_SHIFTCOUNT(nr);
++	const unsigned long *addr = (const unsigned long *)address + (nr >> SHIFT_PER_LONG);
+ 	
+ 	return !!(*addr & mask);
+ }
+@@ -229,7 +194,7 @@
+ 	unsigned long ret;
+ 
+ 	__asm__(
+-#if BITS_PER_LONG > 32
++#ifdef __LP64__
+ 		" ldi       63,%1\n"
+ 		" extrd,u,*<>  %0,63,32,%%r0\n"
+ 		" extrd,u,*TR  %0,31,32,%0\n"	/* move top 32-bits down */
+@@ -304,14 +269,7 @@
+  * hweightN: returns the hamming weight (i.e. the number
+  * of bits set) of a N-bit word
+  */
+-#define hweight64(x)						\
+-({								\
+-	unsigned long __x = (x);				\
+-	unsigned int __w;					\
+-	__w = generic_hweight32((unsigned int) __x);		\
+-	__w += generic_hweight32((unsigned int) (__x>>32));	\
+-	__w;							\
+-})
++#define hweight64(x) generic_hweight64(x)
+ #define hweight32(x) generic_hweight32(x)
+ #define hweight16(x) generic_hweight16(x)
+ #define hweight8(x) generic_hweight8(x)
+@@ -324,7 +282,13 @@
+  */
+ static inline int sched_find_first_bit(const unsigned long *b)
+ {
+-#ifndef __LP64__
++#ifdef __LP64__
++	if (unlikely(b[0]))
++		return __ffs(b[0]);
++	if (unlikely(b[1]))
++		return __ffs(b[1]) + 64;
++	return __ffs(b[2]) + 128;
++#else
+ 	if (unlikely(b[0]))
+ 		return __ffs(b[0]);
+ 	if (unlikely(b[1]))
+@@ -334,14 +298,6 @@
+ 	if (b[3])
+ 		return __ffs(b[3]) + 96;
+ 	return __ffs(b[4]) + 128;
+-#else
+-	if (unlikely(b[0]))
+-		return __ffs(b[0]);
+-	if (unlikely(((unsigned int)b[1])))
+-		return __ffs(b[1]) + 64;
+-	if (b[1] >> 32)
+-		return __ffs(b[1] >> 32) + 96;
+-	return __ffs(b[2]) + 128;
+ #endif
+ }
+ 
+@@ -391,7 +347,7 @@
+ 
+ static __inline__ unsigned long find_next_bit(const unsigned long *addr, unsigned long size, unsigned long offset)
+ {
+-	const unsigned long *p = addr + (offset >> 6);
++	const unsigned long *p = addr + (offset >> SHIFT_PER_LONG);
+ 	unsigned long result = offset & ~(BITS_PER_LONG-1);
+ 	unsigned long tmp;
+ 
+@@ -445,71 +401,90 @@
+  * test_and_{set,clear}_bit guarantee atomicity without
+  * disabling interrupts.
+  */
+-#ifdef __LP64__
+-#define ext2_set_bit(nr, addr)		__test_and_set_bit((nr) ^ 0x38, (unsigned long *)addr)
+-#define ext2_set_bit_atomic(l,nr,addr)  test_and_set_bit((nr) ^ 0x38, (unsigned long *)addr)
+-#define ext2_clear_bit(nr, addr)	__test_and_clear_bit((nr) ^ 0x38, (unsigned long *)addr)
+-#define ext2_clear_bit_atomic(l,nr,addr) test_and_clear_bit((nr) ^ 0x38, (unsigned long *)addr)
+-#else
+-#define ext2_set_bit(nr, addr)		__test_and_set_bit((nr) ^ 0x18, (unsigned long *)addr)
+-#define ext2_set_bit_atomic(l,nr,addr)  test_and_set_bit((nr) ^ 0x18, (unsigned long *)addr)
+-#define ext2_clear_bit(nr, addr)	__test_and_clear_bit((nr) ^ 0x18, (unsigned long *)addr)
+-#define ext2_clear_bit_atomic(l,nr,addr) test_and_clear_bit((nr) ^ 0x18, (unsigned long *)addr)
+-#endif
+ 
+-#endif	/* __KERNEL__ */
++/* '3' is bits per byte */
++#define LE_BYTE_ADDR ((sizeof(unsigned long) - 1) << 3)
+ 
+-static __inline__ int ext2_test_bit(int nr, __const__ void * addr)
+-{
+-	__const__ unsigned char	*ADDR = (__const__ unsigned char *) addr;
++#define ext2_test_bit(nr, addr) \
++			test_bit((nr)	^ LE_BYTE_ADDR, (unsigned long *)addr)
++#define ext2_set_bit(nr, addr)	\
++		__test_and_set_bit((nr) ^ LE_BYTE_ADDR, (unsigned long *)addr)
++#define ext2_clear_bit(nr, addr) \
++		__test_and_clear_bit((nr) ^ LE_BYTE_ADDR, (unsigned long *)addr)
++
++#define ext2_set_bit_atomic(l,nr,addr) \
++		test_and_set_bit((nr)   ^ LE_BYTE_ADDR, (unsigned long *)addr)
++#define ext2_clear_bit_atomic(l,nr,addr) \
++		test_and_clear_bit( (nr) ^ LE_BYTE_ADDR, (unsigned long *)addr)
+ 
+-	return (ADDR[nr >> 3] >> (nr & 7)) & 1;
+-}
++#endif	/* __KERNEL__ */
+ 
+-/*
+- * This implementation of ext2_find_{first,next}_zero_bit was stolen from
+- * Linus' asm-alpha/bitops.h and modified for a big-endian machine.
+- */
+ 
+ #define ext2_find_first_zero_bit(addr, size) \
+-        ext2_find_next_zero_bit((addr), (size), 0)
++	ext2_find_next_zero_bit((addr), (size), 0)
++
++/* include/linux/byteorder does not support "unsigned long" type */
++static inline unsigned long ext2_swabp(unsigned long * x)
++{
++#ifdef __LP64__
++	return (unsigned long) __swab64p((u64 *) x);
++#else
++	return (unsigned long) __swab32p((u32 *) x);
++#endif
++}
++
++/* include/linux/byteorder doesn't support "unsigned long" type */
++static inline unsigned long ext2_swab(unsigned long y)
++{
++#ifdef __LP64__
++	return (unsigned long) __swab64((u64) y);
++#else
++	return (unsigned long) __swab32((u32) y);
++#endif
++}
+ 
+-extern __inline__ unsigned long ext2_find_next_zero_bit(void *addr,
+-	unsigned long size, unsigned long offset)
++static __inline__ unsigned long ext2_find_next_zero_bit(void *addr, unsigned long size, unsigned long offset)
+ {
+-	unsigned int *p = ((unsigned int *) addr) + (offset >> 5);
+-	unsigned int result = offset & ~31UL;
+-	unsigned int tmp;
++	unsigned long *p = (unsigned long *) addr + (offset >> SHIFT_PER_LONG);
++	unsigned long result = offset & ~(BITS_PER_LONG - 1);
++	unsigned long tmp;
+ 
+ 	if (offset >= size)
+ 		return size;
+ 	size -= result;
+-	offset &= 31UL;
++	offset &= (BITS_PER_LONG - 1UL);
+ 	if (offset) {
+-		tmp = cpu_to_le32p(p++);
+-		tmp |= ~0UL >> (32-offset);
+-		if (size < 32)
++		tmp = ext2_swabp(p++);
++		tmp |= (~0UL >> (BITS_PER_LONG - offset));
++		if (size < BITS_PER_LONG)
+ 			goto found_first;
+-		if (tmp != ~0U)
++		if (~tmp)
+ 			goto found_middle;
+-		size -= 32;
+-		result += 32;
++		size -= BITS_PER_LONG;
++		result += BITS_PER_LONG;
+ 	}
+-	while (size >= 32) {
+-		if ((tmp = cpu_to_le32p(p++)) != ~0U)
+-			goto found_middle;
+-		result += 32;
+-		size -= 32;
++
++	while (size & ~(BITS_PER_LONG - 1)) {
++		if (~(tmp = *(p++)))
++			goto found_middle_swap;
++		result += BITS_PER_LONG;
++		size -= BITS_PER_LONG;
+ 	}
+ 	if (!size)
+ 		return result;
+-	tmp = cpu_to_le32p(p);
++	tmp = ext2_swabp(p);
+ found_first:
+-	tmp |= ~0U << size;
++	tmp |= ~0UL << size;
++	if (tmp == ~0UL)	/* Are any bits zero? */
++		return result + size; /* Nope. Skip ffz */
+ found_middle:
+ 	return result + ffz(tmp);
++
++found_middle_swap:
++	return result + ffz(ext2_swab(tmp));
+ }
+ 
++
+ /* Bitmap functions for the minix filesystem.  */
+ #define minix_test_and_set_bit(nr,addr) ext2_set_bit(nr,addr)
+ #define minix_set_bit(nr,addr) ((void)ext2_set_bit(nr,addr))
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/include/asm-parisc/errno.h CVS2_6_12_PA2/include/asm-parisc/errno.h
+--- LINUS_2_6_12/include/asm-parisc/errno.h	2005-06-17 21:22:14.000000000 -0600
++++ CVS2_6_12_PA2/include/asm-parisc/errno.h	2005-05-08 20:00:54.000000000 -0600
+@@ -114,6 +114,7 @@
+ 
+ #define ENOTSUP		252	/* Function not implemented (POSIX.4 / HPUX) */
+ #define ECANCELLED	253	/* aio request was canceled before complete (POSIX.4 / HPUX) */
++#define ECANCELED	ECANCELLED	/* SuSv3 and Solaris wants one 'L' */
+ 
+ /* for robust mutexes */
+ #define EOWNERDEAD	254	/* Owner died */
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/include/asm-parisc/led.h CVS2_6_12_PA2/include/asm-parisc/led.h
+--- LINUS_2_6_12/include/asm-parisc/led.h	2005-06-17 21:22:14.000000000 -0600
++++ CVS2_6_12_PA2/include/asm-parisc/led.h	2005-03-27 23:50:20.000000000 -0700
+@@ -23,9 +23,6 @@
+ 
+ #define LED_CMD_REG_NONE 0		/* NULL == no addr for the cmd register */
+ 
+-/* led tasklet struct */
+-extern struct tasklet_struct led_tasklet;
+-
+ /* register_led_driver() */
+ int __init register_led_driver(int model, unsigned long cmd_reg, unsigned long data_reg);
+ 
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/include/asm-parisc/processor.h CVS2_6_12_PA2/include/asm-parisc/processor.h
+--- LINUS_2_6_12/include/asm-parisc/processor.h	2005-06-17 21:22:14.000000000 -0600
++++ CVS2_6_12_PA2/include/asm-parisc/processor.h	2005-05-19 18:05:13.000000000 -0600
+@@ -121,8 +121,27 @@
+ }; 
+ 
+ /* Thread struct flags. */
++#define PARISC_UAC_NOPRINT	(1UL << 0)	/* see prctl and unaligned.c */
++#define PARISC_UAC_SIGBUS	(1UL << 1)
+ #define PARISC_KERNEL_DEATH	(1UL << 31)	/* see die_if_kernel()... */
+ 
++#define PARISC_UAC_SHIFT	0
++#define PARISC_UAC_MASK		(PARISC_UAC_NOPRINT|PARISC_UAC_SIGBUS)
++
++#define SET_UNALIGN_CTL(task,value)                                       \
++        ({                                                                \
++        (task)->thread.flags = (((task)->thread.flags & ~PARISC_UAC_MASK) \
++                                | (((value) << PARISC_UAC_SHIFT) &        \
++                                   PARISC_UAC_MASK));                     \
++        0;                                                                \
++        })
++
++#define GET_UNALIGN_CTL(task,addr)                                        \
++        ({                                                                \
++        put_user(((task)->thread.flags & PARISC_UAC_MASK)                 \
++                 >> PARISC_UAC_SHIFT, (int __user *) (addr));             \
++        })
++
+ #define INIT_THREAD { \
+ 	regs:	{	gr: { 0, }, \
+ 			fr: { 0, }, \
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/include/asm-parisc/psw.h CVS2_6_12_PA2/include/asm-parisc/psw.h
+--- LINUS_2_6_12/include/asm-parisc/psw.h	2005-06-17 21:22:14.000000000 -0600
++++ CVS2_6_12_PA2/include/asm-parisc/psw.h	2005-05-12 22:39:05.000000000 -0600
+@@ -1,4 +1,7 @@
+ #ifndef _PARISC_PSW_H
++
++#include <linux/config.h>
++
+ #define	PSW_I	0x00000001
+ #define	PSW_D	0x00000002
+ #define	PSW_P	0x00000004
+@@ -9,6 +12,16 @@
+ #define	PSW_G	0x00000040	/* PA1.x only */
+ #define PSW_O	0x00000080	/* PA2.0 only */
+ 
++/* ssm/rsm instructions number PSW_W and PSW_E differently */
++#define PSW_SM_I	PSW_I	/* Enable External Interrupts */
++#define PSW_SM_D	PSW_D
++#define PSW_SM_P	PSW_P
++#define PSW_SM_Q	PSW_Q	/* Enable Interrupt State Collection */
++#define PSW_SM_R	PSW_R	/* Enable Recover Counter Trap */
++#define PSW_SM_W	0x200	/* PA2.0 only : Enable Wide Mode */
++
++#define PSW_SM_QUIET	PSW_SM_R+PSW_SM_Q+PSW_SM_P+PSW_SM_D+PSW_SM_I
++
+ #define PSW_CB	0x0000ff00
+ 
+ #define	PSW_M	0x00010000
+@@ -30,33 +43,21 @@
+ #define	PSW_Z	0x40000000	/* PA1.x only */
+ #define	PSW_Y	0x80000000	/* PA1.x only */
+ 
+-#ifdef __LP64__
+-#define PSW_HI_CB 0x000000ff    /* PA2.0 only */
++#ifdef CONFIG_64BIT
++#  define PSW_HI_CB 0x000000ff    /* PA2.0 only */
+ #endif
+ 
+-/* PSW bits to be used with ssm/rsm */
+-#define PSW_SM_I        0x1
+-#define PSW_SM_D        0x2
+-#define PSW_SM_P        0x4
+-#define PSW_SM_Q        0x8
+-#define PSW_SM_R        0x10
+-#define PSW_SM_F        0x20
+-#define PSW_SM_G        0x40
+-#define PSW_SM_O        0x80
+-#define PSW_SM_E        0x100
+-#define PSW_SM_W        0x200
+-
+-#ifdef __LP64__
+-#  define USER_PSW      (PSW_C | PSW_Q | PSW_P | PSW_D | PSW_I)
+-#  define KERNEL_PSW    (PSW_W | PSW_C | PSW_Q | PSW_P | PSW_D)
+-#  define REAL_MODE_PSW (PSW_W | PSW_Q)
+-#  define USER_PSW_MASK (PSW_W | PSW_T | PSW_N | PSW_X | PSW_B | PSW_V | PSW_CB)
+-#  define USER_PSW_HI_MASK (PSW_HI_CB)
+-#else
+-#  define USER_PSW      (PSW_C | PSW_Q | PSW_P | PSW_D | PSW_I)
+-#  define KERNEL_PSW    (PSW_C | PSW_Q | PSW_P | PSW_D)
+-#  define REAL_MODE_PSW (PSW_Q)
+-#  define USER_PSW_MASK (PSW_T | PSW_N | PSW_X | PSW_B | PSW_V | PSW_CB)
++#ifdef CONFIG_64BIT
++#  define USER_PSW_HI_MASK	PSW_HI_CB
++#  define WIDE_PSW		PSW_W
++#else 
++#  define WIDE_PSW		0
+ #endif
+ 
++/* Used when setting up for rfi */
++#define KERNEL_PSW    (WIDE_PSW | PSW_C | PSW_Q | PSW_P | PSW_D)
++#define REAL_MODE_PSW (WIDE_PSW | PSW_Q)
++#define USER_PSW_MASK (WIDE_PSW | PSW_T | PSW_N | PSW_X | PSW_B | PSW_V | PSW_CB)
++#define USER_PSW      (PSW_C | PSW_Q | PSW_P | PSW_D | PSW_I)
++
+ #endif
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/include/asm-parisc/ptrace.h CVS2_6_12_PA2/include/asm-parisc/ptrace.h
+--- LINUS_2_6_12/include/asm-parisc/ptrace.h	2005-06-17 21:22:14.000000000 -0600
++++ CVS2_6_12_PA2/include/asm-parisc/ptrace.h	2005-03-31 08:27:13.000000000 -0700
+@@ -49,7 +49,7 @@
+ #define user_mode(regs)			(((regs)->iaoq[0] & 3) ? 1 : 0)
+ #define user_space(regs)		(((regs)->iasq[1] != 0) ? 1 : 0)
+ #define instruction_pointer(regs)	((regs)->iaoq[0] & ~3)
+-#define profile_pc(regs) instruction_pointer(regs)
++unsigned long profile_pc(struct pt_regs *);
+ extern void show_regs(struct pt_regs *);
+ #endif
+ 
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/include/asm-parisc/spinlock.h CVS2_6_12_PA2/include/asm-parisc/spinlock.h
+--- LINUS_2_6_12/include/asm-parisc/spinlock.h	2005-06-17 21:22:14.000000000 -0600
++++ CVS2_6_12_PA2/include/asm-parisc/spinlock.h	2005-06-09 11:52:00.000000000 -0600
+@@ -8,9 +8,15 @@
+  * the semaphore address has to be 16-byte aligned.
+  */
+ 
++#ifdef CONFIG_PA20
++#define __SPIN_FIELD_UNLOCKED	1
++#else
++#define __SPIN_FIELD_UNLOCKED	{ 1, 1, 1, 1 }
++#endif
++
+ #ifndef CONFIG_DEBUG_SPINLOCK
+ 
+-#define __SPIN_LOCK_UNLOCKED	{ { 1, 1, 1, 1 } }
++#define __SPIN_LOCK_UNLOCKED    { .lock = __SPIN_FIELD_UNLOCKED, }
+ #undef SPIN_LOCK_UNLOCKED
+ #define SPIN_LOCK_UNLOCKED (spinlock_t) __SPIN_LOCK_UNLOCKED
+ 
+@@ -64,7 +70,15 @@
+ 
+ #define SPINLOCK_MAGIC	0x1D244B3C
+ 
+-#define __SPIN_LOCK_UNLOCKED	{ { 1, 1, 1, 1 }, SPINLOCK_MAGIC, 10, __FILE__ , NULL, 0, -1, NULL, NULL }
++#define __SPIN_LOCK_UNLOCKED	{ .lock = __SPIN_FIELD_UNLOCKED, 	\
++				  .magic = SPINLOCK_MAGIC, 		\
++				  .babble = 10, 			\
++				  .module = __FILE__, 			\
++				  .bfile = NULL, 			\
++				  .bline = 0, 				\
++				  .oncpu = -1, 				\
++				  .previous = NULL, 			\
++				  .task = NULL }
+ #undef SPIN_LOCK_UNLOCKED
+ #define SPIN_LOCK_UNLOCKED (spinlock_t) __SPIN_LOCK_UNLOCKED
+ 
+@@ -72,7 +86,7 @@
+ 
+ #define CHECK_LOCK(x)							\
+ 	do {								\
+-	 	if (unlikely((x)->magic != SPINLOCK_MAGIC)) {			\
++	 	if (unlikely((x)->magic != SPINLOCK_MAGIC)) {		\
+ 			printk(KERN_ERR "%s:%d: spin_is_locked"		\
+ 			" on uninitialized spinlock %p.\n",		\
+ 				__FILE__, __LINE__, (x)); 		\
+@@ -81,9 +95,10 @@
+ 
+ #define spin_is_locked(x)						\
+ 	({								\
++		volatile unsigned int *a;				\
+ 	 	CHECK_LOCK(x);						\
+-		volatile unsigned int *a = __ldcw_align(x);		\
+-		if (unlikely((*a == 0) && (x)->babble)) {				\
++		a = __ldcw_align(x);					\
++		if (unlikely((*a == 0) && (x)->babble)) {		\
+ 			(x)->babble--;					\
+ 			printk("KERN_WARNING				\
+ 				%s:%d: spin_is_locked(%s/%p) already"	\
+@@ -97,9 +112,10 @@
+ 
+ #define spin_unlock_wait(x)						\
+ 	do {								\
++		volatile unsigned int *a;				\
+ 	 	CHECK_LOCK(x);						\
+-		volatile unsigned int *a = __ldcw_align(x);		\
+-		if (unlikely((*a == 0) && (x)->babble)) {				\
++		a = __ldcw_align(x);					\
++		if (unlikely((*a == 0) && (x)->babble)) {		\
+ 			(x)->babble--;					\
+ 			printk("KERN_WARNING				\
+ 				%s:%d: spin_unlock_wait(%s/%p)"		\
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/include/asm-parisc/system.h CVS2_6_12_PA2/include/asm-parisc/system.h
+--- LINUS_2_6_12/include/asm-parisc/system.h	2005-06-17 21:22:14.000000000 -0600
++++ CVS2_6_12_PA2/include/asm-parisc/system.h	2005-06-09 07:40:16.000000000 -0600
+@@ -138,13 +138,7 @@
+ #define set_wmb(var, value)		do { var = value; wmb(); } while (0)
+ 
+ 
+-/* LDCW, the only atomic read-write operation PA-RISC has. *sigh*.  */
+-#define __ldcw(a) ({ \
+-	unsigned __ret; \
+-	__asm__ __volatile__("ldcw 0(%1),%0" : "=r" (__ret) : "r" (a)); \
+-	__ret; \
+-})
+-
++#ifndef CONFIG_PA20
+ /* Because kmalloc only guarantees 8-byte alignment for kmalloc'd data,
+    and GCC only guarantees 8-byte alignment for stack locals, we can't
+    be assured of 16-byte alignment for atomic lock data even if we
+@@ -152,12 +146,35 @@
+    we use a struct containing an array of four ints for the atomic lock
+    type and dynamically select the 16-byte aligned int from the array
+    for the semaphore.  */
++
+ #define __PA_LDCW_ALIGNMENT 16
+ #define __ldcw_align(a) ({ \
+   unsigned long __ret = (unsigned long) &(a)->lock[0];        		\
+   __ret = (__ret + __PA_LDCW_ALIGNMENT - 1) & ~(__PA_LDCW_ALIGNMENT - 1); \
+   (volatile unsigned int *) __ret;                                      \
+ })
++#define LDCW	"ldcw"
++
++#else /*CONFIG_PA20*/
++/* From: "Jim Hull" <jim.hull of hp.com>
++   I've attached a summary of the change, but basically, for PA 2.0, as
++   long as the ",CO" (coherent operation) completer is specified, then the
++   16-byte alignment requirement for ldcw and ldcd is relaxed, and instead
++   they only require "natural" alignment (4-byte for ldcw, 8-byte for
++   ldcd). */
++
++#define __PA_LDCW_ALIGNMENT 4
++#define __ldcw_align(a) ((volatile unsigned int *)a)
++#define LDCW	"ldcw,co"
++
++#endif /*!CONFIG_PA20*/
++
++/* LDCW, the only atomic read-write operation PA-RISC has. *sigh*.  */
++#define __ldcw(a) ({ \
++	unsigned __ret; \
++	__asm__ __volatile__(LDCW " 0(%1),%0" : "=r" (__ret) : "r" (a)); \
++	__ret; \
++})
+ 
+ #ifdef CONFIG_SMP
+ /*
+@@ -165,7 +182,11 @@
+  */
+ 
+ typedef struct {
+-	volatile unsigned int lock[4];
++#ifdef CONFIG_PA20
++	volatile unsigned int lock;
++#else
++        volatile unsigned int lock[4];
++#endif
+ #ifdef CONFIG_DEBUG_SPINLOCK
+ 	unsigned long magic;
+ 	volatile unsigned int babble;
+@@ -186,25 +207,6 @@
+ #endif
+ 
+ #define KERNEL_START (0x10100000 - 0x1000)
+-
+-/* This is for the serialisation of PxTLB broadcasts.  At least on the
+- * N class systems, only one PxTLB inter processor broadcast can be
+- * active at any one time on the Merced bus.  This tlb purge
+- * synchronisation is fairly lightweight and harmless so we activate
+- * it on all SMP systems not just the N class. */
+-#ifdef CONFIG_SMP
+-extern spinlock_t pa_tlb_lock;
+-
+-#define purge_tlb_start(x) spin_lock(&pa_tlb_lock)
+-#define purge_tlb_end(x) spin_unlock(&pa_tlb_lock)
+-
+-#else
+-
+-#define purge_tlb_start(x) do { } while(0)
+-#define purge_tlb_end(x) do { } while (0)
+-
+-#endif
+-
+ #define arch_align_stack(x) (x)
+ 
+ #endif
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/include/asm-parisc/tlbflush.h CVS2_6_12_PA2/include/asm-parisc/tlbflush.h
+--- LINUS_2_6_12/include/asm-parisc/tlbflush.h	2005-06-17 21:22:14.000000000 -0600
++++ CVS2_6_12_PA2/include/asm-parisc/tlbflush.h	2005-06-04 01:11:25.000000000 -0600
+@@ -7,6 +7,26 @@
+ #include <linux/mm.h>
+ #include <asm/mmu_context.h>
+ 
++
++/* This is for the serialisation of PxTLB broadcasts.  At least on the
++ * N class systems, only one PxTLB inter processor broadcast can be
++ * active at any one time on the Merced bus.  This tlb purge
++ * synchronisation is fairly lightweight and harmless so we activate
++ * it on all SMP systems not just the N class. */
++#ifdef CONFIG_SMP
++extern spinlock_t pa_tlb_lock;
++
++#define purge_tlb_start(x) spin_lock(&pa_tlb_lock)
++#define purge_tlb_end(x) spin_unlock(&pa_tlb_lock)
++
++#else
++
++#define purge_tlb_start(x) do { } while(0)
++#define purge_tlb_end(x) do { } while (0)
++
++#endif
++
++
+ extern void flush_tlb_all(void);
+ 
+ /*
+@@ -64,29 +84,26 @@
+ {
+ 	unsigned long npages;
+ 
+-	
+ 	npages = ((end - (start & PAGE_MASK)) + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
+-	if (npages >= 512)  /* XXX arbitrary, should be tuned */
++	if (npages >= 512)  /* 2MB of space: arbitrary, should be tuned */
+ 		flush_tlb_all();
+ 	else {
+ 
+ 		mtsp(vma->vm_mm->context,1);
++		purge_tlb_start();
+ 		if (split_tlb) {
+-			purge_tlb_start();
+ 			while (npages--) {
+ 				pdtlb(start);
+ 				pitlb(start);
+ 				start += PAGE_SIZE;
+ 			}
+-			purge_tlb_end();
+ 		} else {
+-			purge_tlb_start();
+ 			while (npages--) {
+ 				pdtlb(start);
+ 				start += PAGE_SIZE;
+ 			}
+-			purge_tlb_end();
+ 		}
++		purge_tlb_end();
+ 	}
+ }
+ 
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/include/asm-parisc/types.h CVS2_6_12_PA2/include/asm-parisc/types.h
+--- LINUS_2_6_12/include/asm-parisc/types.h	2005-06-17 21:22:14.000000000 -0600
++++ CVS2_6_12_PA2/include/asm-parisc/types.h	2005-06-03 23:42:21.000000000 -0600
+@@ -33,8 +33,10 @@
+ 
+ #ifdef __LP64__
+ #define BITS_PER_LONG 64
++#define SHIFT_PER_LONG 6
+ #else
+ #define BITS_PER_LONG 32
++#define SHIFT_PER_LONG 5
+ #endif
+ 
+ #ifndef __ASSEMBLY__
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/include/asm-parisc/unistd.h CVS2_6_12_PA2/include/asm-parisc/unistd.h
+--- LINUS_2_6_12/include/asm-parisc/unistd.h	2005-06-17 21:22:14.000000000 -0600
++++ CVS2_6_12_PA2/include/asm-parisc/unistd.h	2005-05-14 22:38:00.000000000 -0600
+@@ -687,8 +687,8 @@
+ #define __NR_shmget             (__NR_Linux + 194)
+ #define __NR_shmctl             (__NR_Linux + 195)
+ 
+-#define __NR_getpmsg            (__NR_Linux + 196)      /* some people actually want streams */
+-#define __NR_putpmsg            (__NR_Linux + 197)      /* some people actually want streams */
++#define __NR_getpmsg		(__NR_Linux + 196) /* Somebody *wants* streams? */
++#define __NR_putpmsg		(__NR_Linux + 197)
+ 
+ #define __NR_lstat64            (__NR_Linux + 198)
+ #define __NR_truncate64         (__NR_Linux + 199)
+@@ -755,8 +755,12 @@
+ #define __NR_mbind		(__NR_Linux + 260)
+ #define __NR_get_mempolicy	(__NR_Linux + 261)
+ #define __NR_set_mempolicy	(__NR_Linux + 262)
++#define __NR_vserver		(__NR_Linux + 263)
++#define __NR_add_key		(__NR_Linux + 264)
++#define __NR_request_key	(__NR_Linux + 265)
++#define __NR_keyctl		(__NR_Linux + 266)
+ 
+-#define __NR_Linux_syscalls     263
++#define __NR_Linux_syscalls     267
+ 
+ #define HPUX_GATEWAY_ADDR       0xC0000004
+ #define LINUX_GATEWAY_ADDR      0x100
+@@ -807,10 +811,10 @@
+ #define K_INLINE_SYSCALL(name, nr, args...)	({			\
+ 	long __sys_res;							\
+ 	{								\
+-		register unsigned long __res asm("r28");		\
++		register unsigned long __res __asm__("r28");		\
+ 		K_LOAD_ARGS_##nr(args)					\
+ 		/* FIXME: HACK stw/ldw r19 around syscall */		\
+-		asm volatile(						\
++		__asm__ volatile(					\
+ 			K_STW_ASM_PIC					\
+ 			"	ble  0x100(%%sr2, %%r0)\n"		\
+ 			"	ldi %1, %%r20\n"			\
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/include/asm-s390/compat.h CVS2_6_12_PA2/include/asm-s390/compat.h
+--- LINUS_2_6_12/include/asm-s390/compat.h	2005-06-17 21:22:15.000000000 -0600
++++ CVS2_6_12_PA2/include/asm-s390/compat.h	2004-10-10 15:23:29.000000000 -0600
+@@ -15,6 +15,9 @@
+ typedef s32		compat_pid_t;
+ typedef u16		compat_uid_t;
+ typedef u16		compat_gid_t;
++/* Define for use in compat_siginfo_t */
++#undef __ARCH_SI_COMPAT_UID_T
++#define __ARCH_SI_COMPAT_UID_T compat_uid32_t
+ typedef u32		compat_uid32_t;
+ typedef u32		compat_gid32_t;
+ typedef u16		compat_mode_t;
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/include/asm-sparc64/compat.h CVS2_6_12_PA2/include/asm-sparc64/compat.h
+--- LINUS_2_6_12/include/asm-sparc64/compat.h	2005-06-17 21:22:15.000000000 -0600
++++ CVS2_6_12_PA2/include/asm-sparc64/compat.h	2005-04-21 18:26:06.000000000 -0600
+@@ -12,6 +12,9 @@
+ typedef s32		compat_time_t;
+ typedef s32		compat_clock_t;
+ typedef s32		compat_pid_t;
++/* Define for use in the compat_siginfo_t */
++#undef __ARCH_SI_COMPAT_UID_T
++#define __ARCH_SI_COMPAT_UID_T compat_uint_t
+ typedef u16		compat_uid_t;
+ typedef u16		compat_gid_t;
+ typedef u16		compat_mode_t;
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/include/linux/compat.h CVS2_6_12_PA2/include/linux/compat.h
+--- LINUS_2_6_12/include/linux/compat.h	2005-06-17 21:22:16.000000000 -0600
++++ CVS2_6_12_PA2/include/linux/compat.h	2005-03-18 07:38:12.000000000 -0700
+@@ -6,10 +6,16 @@
+  */
+ #include <linux/config.h>
+ 
+-#ifdef CONFIG_COMPAT
++#ifndef CONFIG_COMPAT
++
++/* Non-native task requiring compat... doesn't exist */
++#define is_compat_task(x) 0
++
++#else
+ 
+ #include <linux/stat.h>
+ #include <linux/param.h>	/* for HZ */
++#include <linux/personality.h>  /* Conditional process compat */
+ #include <linux/sem.h>
+ 
+ #include <asm/compat.h>
+@@ -18,6 +24,11 @@
+ #define compat_jiffies_to_clock_t(x)	\
+ 		(((unsigned long)(x) * COMPAT_USER_HZ) / HZ)
+ 
++/* Non-native task requiring compat */
++#ifndef HAVE_ARCH_IS_COMPAT_TASK
++#define is_compat_task(x) (personality(x->personality) == PER_LINUX32)
++#endif
++	
+ struct rusage;
+ 
+ struct compat_itimerspec { 
+@@ -96,28 +107,6 @@
+ 	char		d_name[256];
+ };
+ 
+-typedef union compat_sigval {
+-	compat_int_t	sival_int;
+-	compat_uptr_t	sival_ptr;
+-} compat_sigval_t;
+-
+-#define COMPAT_SIGEV_PAD_SIZE	((SIGEV_MAX_SIZE/sizeof(int)) - 3)
+-
+-typedef struct compat_sigevent {
+-	compat_sigval_t sigev_value;
+-	compat_int_t sigev_signo;
+-	compat_int_t sigev_notify;
+-	union {
+-		compat_int_t _pad[COMPAT_SIGEV_PAD_SIZE];
+-		compat_int_t _tid;
+-
+-		struct {
+-			compat_uptr_t _function;
+-			compat_uptr_t _attribute;
+-		} _sigev_thread;
+-	} _sigev_un;
+-} compat_sigevent_t;
+-
+ 
+ long compat_sys_semctl(int first, int second, int third, void __user *uptr);
+ long compat_sys_msgsnd(int first, int second, int third, void __user *uptr);
+@@ -153,10 +142,6 @@
+ 		       unsigned long bitmap_size);
+ long compat_put_bitmap(compat_ulong_t __user *umask, unsigned long *mask,
+ 		       unsigned long bitmap_size);
+-int copy_siginfo_from_user32(siginfo_t *to, struct compat_siginfo __user *from);
+-int copy_siginfo_to_user32(struct compat_siginfo __user *to, siginfo_t *from);
+-int get_compat_sigevent(struct sigevent *event,
+-		const struct compat_sigevent __user *u_event);
+ 
+ #endif /* CONFIG_COMPAT */
+ #endif /* _LINUX_COMPAT_H */
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/include/linux/compat_siginfo.h CVS2_6_12_PA2/include/linux/compat_siginfo.h
+--- LINUS_2_6_12/include/linux/compat_siginfo.h	1969-12-31 17:00:00.000000000 -0700
++++ CVS2_6_12_PA2/include/linux/compat_siginfo.h	2005-03-18 07:38:12.000000000 -0700
+@@ -0,0 +1,181 @@
++#ifndef _ASM_GENERIC_COMPAT_SIGINFO_H
++#define _ASM_GENERIC_COMPAT_SIGINFO_H
++
++#include <linux/config.h>
++#include <linux/compat.h>
++
++#ifndef CONFIG_COMPAT
++
++/* No compatibility layer required, add empty definitions for the compiler */
++
++typedef struct compat_siginfo{
++} compat_siginfo_t;
++
++static inline int compat_copy_siginfo_to_user(compat_siginfo_t __user *to, 
++						struct siginfo *from)
++{
++	return -1;
++}
++
++static inline int compat_copy_siginfo_from_user(struct siginfo *to,
++                                                compat_siginfo_t __user *from)
++{
++        return -1;
++}
++
++#else
++
++#include <linux/compiler.h>
++#include <asm/siginfo.h>
++
++/* compat view of sigval_t */
++typedef union compat_sigval {
++	compat_int_t sival_int;
++	compat_uptr_t sival_ptr;
++} compat_sigval_t;
++
++/*
++ * This is the size (including padding) of the part of the
++ * struct siginfo that is before the union.
++ */
++#ifndef __ARCH_SI_COMPAT_PREAMBLE_SIZE
++#define __ARCH_SI_COMPAT_PREAMBLE_SIZE	(3 * sizeof(compat_int_t))
++#endif
++
++#define SI_COMPAT_MAX_SIZE	128
++#ifndef SI_COMPAT_PAD_SIZE
++#define SI_COMPAT_PAD_SIZE \
++  ((SI_COMPAT_MAX_SIZE - __ARCH_SI_COMPAT_PREAMBLE_SIZE) / sizeof(compat_int_t))
++#endif
++
++/* 32-bit view of si.uid_t */
++#ifndef __ARCH_SI_COMPAT_UID_T
++#define __ARCH_SI_COMPAT_UID_T compat_uid_t
++#endif
++
++/* 32-bit view of si.band_t */
++#ifndef __ARCH_SI_COMPAT_BAND_T
++#define __ARCH_SI_COMPAT_BAND_T compat_int_t
++#endif
++
++#ifndef HAVE_ARCH_COMPAT_SIGINFO_T
++
++/* Compat view of siginfo_t */
++typedef struct compat_siginfo {
++	compat_int_t si_signo;
++	compat_int_t si_errno;
++	compat_int_t si_code;
++
++	union {
++		compat_int_t _pad[SI_COMPAT_PAD_SIZE];
++
++		/* kill() */
++		struct {
++			compat_pid_t _pid;	/* sender's pid */
++			__ARCH_SI_COMPAT_UID_T _uid;	/* sender's uid */
++		} _kill;
++
++		/* POSIX.1b timers */
++		struct {
++			compat_timer_t _tid;	/* timer id */
++			compat_int_t _overrun;		/* overrun count */
++			char _pad[sizeof(__ARCH_SI_COMPAT_UID_T) - sizeof(compat_int_t)];
++			compat_sigval_t _sigval;	/* same as below */
++			compat_int_t _sys_private;       /* not to be passed to user */
++		} _timer;
++
++		/* POSIX.1b signals */
++		struct {
++			compat_pid_t _pid;		/* sender's pid */
++			__ARCH_SI_COMPAT_UID_T _uid;	/* sender's uid */
++			compat_sigval_t _sigval;
++		} _rt;
++
++		/* SIGCHLD */
++		struct {
++			compat_pid_t _pid;		/* which child */
++			__ARCH_SI_COMPAT_UID_T _uid;	/* sender's uid */
++			compat_int_t _status;		/* exit code */
++			compat_clock_t _utime;
++			compat_clock_t _stime;
++		} _sigchld;
++
++		/* SIGILL, SIGFPE, SIGSEGV, SIGBUS */
++		struct {
++			compat_uptr_t _addr; /* faulting insn/memory ref. */
++#ifdef __ARCH_SI_COMPAT_TRAPNO
++			compat_int_t _trapno;	/* TRAP # which caused the signal */
++#endif
++		} _sigfault;
++
++		/* SIGPOLL */
++		struct {
++			__ARCH_SI_COMPAT_BAND_T _band;	/* POLL_IN, POLL_OUT, POLL_MSG */
++			compat_int_t _fd;
++		} _sigpoll;
++	} _sifields;
++} compat_siginfo_t;
++#endif /* !HAVE_ARCH_COMPAT_SIGINFO_T */
++
++#ifdef __ARCH_SI_COMPAT_TRAPNO
++#define si_trapno	_sifields._sigfault._trapno
++#endif
++
++/*
++ * sigevent definitions
++ * 
++ * It seems likely that SIGEV_THREAD will have to be handled from 
++ * userspace, libpthread transmuting it to SIGEV_SIGNAL, which the
++ * thread manager then catches and does the appropriate nonsense.
++ * However, everything is written out here so as to not get lost.
++ */
++
++#ifndef __ARCH_SIGEV_COMPAT_PREAMBLE_SIZE
++#define __ARCH_SIGEV_COMPAT_PREAMBLE_SIZE (sizeof(compat_int_t) * 2 + sizeof(compat_sigval_t))
++#endif
++
++#define COMPAT_SIGEV_PAD_SIZE	((SIGEV_MAX_SIZE/sizeof(int)) - 3)
++
++#ifndef HAVE_ARCH_COMPAT_SIGEVENT_T
++
++/* 32-bit view of sigevent_t */
++typedef struct compat_sigevent {
++	compat_sigval_t sigev_value;
++	compat_int_t sigev_signo;
++	compat_int_t sigev_notify;
++	union {
++		compat_int_t _pad[COMPAT_SIGEV_PAD_SIZE];
++		compat_int_t _tid;
++
++		struct {
++			compat_uptr_t _function;
++			compat_uptr_t _attribute;  /* really pthread_attr_t */
++		} _sigev_thread;
++	} _sigev_un;
++} compat_sigevent_t;
++
++#endif /* HAVE_ARCH_COMPAT_SIGEVENT_T */
++
++#ifndef HAVE_ARCH_COMPAT_COPY_SIGINFO
++
++#include <linux/string.h>
++
++static inline void compat_copy_siginfo(struct compat_siginfo *to, struct compat_siginfo *from)
++{
++	if (from->si_code < 0)
++		memcpy(to, from, sizeof(*to));
++	else
++		/* _sigchld is currently the largest know union member */
++		memcpy(to, from, __ARCH_SI_COMPAT_PREAMBLE_SIZE + sizeof(from->_sifields._sigchld));
++}
++
++#endif /* !HAVE_ARCH_COMPAT_COPY_SIGINFO */
++
++extern int compat_copy_siginfo_to_user(compat_siginfo_t __user *to, struct siginfo *from);
++extern int compat_copy_siginfo_from_user(struct siginfo *to, compat_siginfo_t __user *from);
++
++extern int compat_copy_sigevent_from_user(struct sigevent *to, compat_sigevent_t __user *from);
++
++#endif /* CONFIG_COMPAT */
++#endif /* _ASM_GENERIC_COMPAT_SIGINFO_H */
++
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/include/linux/hil.h CVS2_6_12_PA2/include/linux/hil.h
+--- LINUS_2_6_12/include/linux/hil.h	1969-12-31 17:00:00.000000000 -0700
++++ CVS2_6_12_PA2/include/linux/hil.h	2004-10-31 14:05:59.000000000 -0700
+@@ -0,0 +1,483 @@
++#ifndef _HIL_H_
++#define _HIL_H_
++
++/*
++ * Hewlett Packard Human Interface Loop (HP-HIL) Protocol -- header.
++ *
++ * Copyright (c) 2001 Brian S. Julin
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ *    notice, this list of conditions, and the following disclaimer,
++ *    without modification.
++ * 2. The name of the author may not be used to endorse or promote products
++ *    derived from this software without specific prior written permission.
++ *
++ * Alternatively, this software may be distributed under the terms of the
++ * GNU General Public License ("GPL").
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
++ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++ *
++ * References:
++ * HP-HIL Technical Reference Manual.  Hewlett Packard Product No. 45918A
++ *
++ * A note of thanks to HP for providing and shipping reference materials
++ * free of charge to help in the development of HIL support for Linux.
++ *
++ */
++
++#include <asm/types.h>
++
++/* Physical constants relevant to raw loop/device timing. 
++ */ 
++
++#define HIL_CLOCK		8MHZ
++#define HIL_EK1_CLOCK		30HZ
++#define HIL_EK2_CLOCK		60HZ
++
++#define HIL_TIMEOUT_DEV         5	/* ms */
++#define HIL_TIMEOUT_DEVS	10	/* ms */
++#define HIL_TIMEOUT_NORESP	10	/* ms */
++#define HIL_TIMEOUT_DEVS_DATA	16	/* ms */
++#define HIL_TIMEOUT_SELFTEST	200	/* ms */
++
++
++/* Actual wire line coding.  These will only be useful if someone is 
++ * implementing a software MLC to run HIL devices on a non-parisc machine.
++ */
++
++#define HIL_WIRE_PACKET_LEN	15
++enum hil_wire_bitpos {
++	HIL_WIRE_START		= 0,
++	HIL_WIRE_ADDR2,
++	HIL_WIRE_ADDR1,
++	HIL_WIRE_ADDR0,
++	HIL_WIRE_COMMAND,
++	HIL_WIRE_DATA7,
++	HIL_WIRE_DATA6,
++	HIL_WIRE_DATA5,
++	HIL_WIRE_DATA4,
++	HIL_WIRE_DATA3,
++	HIL_WIRE_DATA2,
++	HIL_WIRE_DATA1,
++	HIL_WIRE_DATA0,
++	HIL_WIRE_PARITY,
++	HIL_WIRE_STOP
++};
++
++/* HP documentation uses these bit positions to refer to commands;
++ * we will call these "packets".
++ */
++enum hil_pkt_bitpos {
++	HIL_PKT_CMD		= 0x00000800,
++	HIL_PKT_ADDR2		= 0x00000400,
++	HIL_PKT_ADDR1		= 0x00000200,
++	HIL_PKT_ADDR0		= 0x00000100,
++	HIL_PKT_ADDR_MASK	= 0x00000700,
++	HIL_PKT_ADDR_SHIFT	= 8,
++	HIL_PKT_DATA7		= 0x00000080,
++	HIL_PKT_DATA6		= 0x00000040,
++	HIL_PKT_DATA5		= 0x00000020,
++	HIL_PKT_DATA4		= 0x00000010,
++	HIL_PKT_DATA3		= 0x00000008,
++	HIL_PKT_DATA2		= 0x00000004,
++	HIL_PKT_DATA1		= 0x00000002,
++	HIL_PKT_DATA0		= 0x00000001,
++	HIL_PKT_DATA_MASK	= 0x000000FF,
++	HIL_PKT_DATA_SHIFT	= 0
++};
++
++/* The HIL MLC also has several error/status/control bits.  We extend the 
++ * "packet" to include these when direct access to the MLC is available,
++ * or emulate them in cases where they are not available. 
++ *
++ * This way the device driver knows that the underlying MLC driver
++ * has had to deal with loop errors.
++ */
++enum hil_error_bitpos {
++	HIL_ERR_OB	= 0x00000800, /* MLC is busy sending an auto-poll, 
++					 or we have filled up the output 
++					 buffer and must wait. */
++	HIL_ERR_INT	= 0x00010000, /* A normal interrupt has occurred. */
++	HIL_ERR_NMI	= 0x00020000, /* An NMI has occurred. */
++	HIL_ERR_LERR	= 0x00040000, /* A poll didn't come back. */
++	HIL_ERR_PERR	= 0x01000000, /* There was a Parity Error. */
++	HIL_ERR_FERR	= 0x02000000, /* There was a Framing Error. */
++	HIL_ERR_FOF	= 0x04000000  /* Input FIFO Overflowed. */
++};
++
++enum hil_control_bitpos {
++	HIL_CTRL_TEST	= 0x00010000,
++	HIL_CTRL_IPF	= 0x00040000,
++	HIL_CTRL_APE	= 0x02000000
++};
++
++/* Bits 30,31 are unused, we use them to control write behavior. */
++#define HIL_DO_ALTER_CTRL  0x40000000 /* Write MSW of packet to control 
++                                          before writing LSW to loop */
++#define HIL_CTRL_ONLY      0xc0000000 /* *Only* alter the control registers */
++
++/* This gives us a 32-bit "packet" 
++ */
++typedef u32 hil_packet;
++
++
++/* HIL Loop commands 
++ */
++enum hil_command {
++	HIL_CMD_IFC	= 0x00,	/* Interface Clear */
++	HIL_CMD_EPT	= 0x01,	/* Enter Pass-Thru Mode */
++	HIL_CMD_ELB	= 0x02,	/* Enter Loop-Back Mode */
++	HIL_CMD_IDD	= 0x03,	/* Identify and Describe */
++	HIL_CMD_DSR	= 0x04,	/* Device Soft Reset */
++	HIL_CMD_PST	= 0x05,	/* Perform Self Test */
++	HIL_CMD_RRG	= 0x06,	/* Read Register */
++	HIL_CMD_WRG	= 0x07,	/* Write Register */
++	HIL_CMD_ACF	= 0x08,	/* Auto Configure */
++	HIL_CMDID_ACF	= 0x07,	/* Auto Configure bits with incremented ID */
++	HIL_CMD_POL	= 0x10,	/* Poll */
++	HIL_CMDCT_POL	= 0x0f,	/* Poll command bits with item count  */
++	HIL_CMD_RPL	= 0x20,	/* RePoll */
++	HIL_CMDCT_RPL	= 0x0f,	/* RePoll command bits with item count */
++	HIL_CMD_RNM	= 0x30,	/* Report Name */
++	HIL_CMD_RST	= 0x31,	/* Report Status */
++	HIL_CMD_EXD	= 0x32,	/* Extended Describe */
++	HIL_CMD_RSC	= 0x33,	/* Report Security Code */
++
++	/* 0x34 to 0x3c reserved for future use  */
++
++	HIL_CMD_DKA	= 0x3d,	/* Disable Keyswitch Autorepeat */
++	HIL_CMD_EK1	= 0x3e,	/* Enable Keyswitch Autorepeat 1 */
++	HIL_CMD_EK2	= 0x3f,	/* Enable Keyswitch Autorepeat 2 */
++	HIL_CMD_PR1	= 0x40,	/* Prompt1 */  
++	HIL_CMD_PR2	= 0x41,	/* Prompt2 */
++	HIL_CMD_PR3	= 0x42,	/* Prompt3 */
++	HIL_CMD_PR4	= 0x43,	/* Prompt4 */
++	HIL_CMD_PR5	= 0x44,	/* Prompt5 */
++	HIL_CMD_PR6	= 0x45,	/* Prompt6 */
++	HIL_CMD_PR7	= 0x46,	/* Prompt7 */
++	HIL_CMD_PRM	= 0x47,	/* Prompt (General Purpose) */
++	HIL_CMD_AK1	= 0x48,	/* Acknowlege1 */  
++	HIL_CMD_AK2	= 0x49,	/* Acknowlege2 */
++	HIL_CMD_AK3	= 0x4a,	/* Acknowlege3 */
++	HIL_CMD_AK4	= 0x4b,	/* Acknowlege4 */
++	HIL_CMD_AK5	= 0x4c,	/* Acknowlege5 */
++	HIL_CMD_AK6	= 0x4d,	/* Acknowlege6 */
++	HIL_CMD_AK7	= 0x4e,	/* Acknowlege7 */
++	HIL_CMD_ACK	= 0x4f,	/* Acknowlege (General Purpose) */
++
++	/* 0x50 to 0x78 reserved for future use  */
++	/* 0x80 to 0xEF device-specific commands */
++	/* 0xf0 to 0xf9 reserved for future use  */
++
++	HIL_CMD_RIO	= 0xfa,	/* Register I/O Error */
++	HIL_CMD_SHR	= 0xfb,	/* System Hard Reset */
++	HIL_CMD_TER	= 0xfc,	/* Transmission Error */
++	HIL_CMD_CAE	= 0xfd,	/* Configuration Address Error */
++	HIL_CMD_DHR	= 0xfe,	/* Device Hard Reset */
++
++	/* 0xff is prohibited from use. */
++};
++
++
++/* 
++ * Response "records" to HIL commands
++ */
++
++/* Device ID byte 
++ */
++#define HIL_IDD_DID_TYPE_MASK		0xe0	/* Primary type bits */
++#define HIL_IDD_DID_TYPE_KB_INTEGRAL	0xa0	/* Integral keyboard */
++#define HIL_IDD_DID_TYPE_KB_ITF		0xc0	/* ITD keyboard */
++#define HIL_IDD_DID_TYPE_KB_RSVD	0xe0	/* Reserved keyboard type */
++#define HIL_IDD_DID_TYPE_KB_LANG_MASK	0x1f	/* Keyboard locale bits */
++#define HIL_IDD_DID_KBLANG_USE_ESD	0x00	/* Use ESD Locale instead */
++#define HIL_IDD_DID_TYPE_ABS		0x80    /* Absolute Positioners */
++#define HIL_IDD_DID_ABS_RSVD1_MASK	0xf8	/* Reserved */
++#define HIL_IDD_DID_ABS_RSVD1		0x98
++#define HIL_IDD_DID_ABS_TABLET_MASK	0xf8	/* Tablets and digitizers */
++#define HIL_IDD_DID_ABS_TABLET		0x90
++#define HIL_IDD_DID_ABS_TSCREEN_MASK	0xfc	/* Touch screens */
++#define HIL_IDD_DID_ABS_TSCREEN		0x8c
++#define HIL_IDD_DID_ABS_RSVD2_MASK	0xfc	/* Reserved */
++#define HIL_IDD_DID_ABS_RSVD2		0x88
++#define HIL_IDD_DID_ABS_RSVD3_MASK	0xfc	/* Reserved */
++#define HIL_IDD_DID_ABS_RSVD3		0x80
++#define HIL_IDD_DID_TYPE_REL		0x60    /* Relative Positioners */
++#define HIL_IDD_DID_REL_RSVD1_MASK	0xf0	/* Reserved */
++#define HIL_IDD_DID_REL_RSVD1		0x70
++#define HIL_IDD_DID_REL_RSVD2_MASK	0xfc	/* Reserved */
++#define HIL_IDD_DID_REL_RSVD2		0x6c
++#define HIL_IDD_DID_REL_MOUSE_MASK	0xfc	/* Mouse */
++#define HIL_IDD_DID_REL_MOUSE		0x68
++#define HIL_IDD_DID_REL_QUAD_MASK	0xf8	/* Other Quadrature Devices */
++#define HIL_IDD_DID_REL_QUAD		0x60
++#define HIL_IDD_DID_TYPE_CHAR		0x40    /* Character Entry */
++#define HIL_IDD_DID_CHAR_BARCODE_MASK	0xfc	/* Barcode Reader */
++#define HIL_IDD_DID_CHAR_BARCODE	0x5c
++#define HIL_IDD_DID_CHAR_RSVD1_MASK	0xfc	/* Reserved */
++#define HIL_IDD_DID_CHAR_RSVD1		0x58
++#define HIL_IDD_DID_CHAR_RSVD2_MASK	0xf8	/* Reserved */
++#define HIL_IDD_DID_CHAR_RSVD2		0x50
++#define HIL_IDD_DID_CHAR_RSVD3_MASK	0xf0	/* Reserved */
++#define HIL_IDD_DID_CHAR_RSVD3		0x40
++#define HIL_IDD_DID_TYPE_OTHER		0x20    /* Miscellaneous */
++#define HIL_IDD_DID_OTHER_RSVD1_MASK	0xf0	/* Reserved */
++#define HIL_IDD_DID_OTHER_RSVD1		0x30
++#define HIL_IDD_DID_OTHER_BARCODE_MASK	0xfc	/* Tone Generator */
++#define HIL_IDD_DID_OTHER_BARCODE	0x2c
++#define HIL_IDD_DID_OTHER_RSVD2_MASK	0xfc	/* Reserved */
++#define HIL_IDD_DID_OTHER_RSVD2		0x28
++#define HIL_IDD_DID_OTHER_RSVD3_MASK	0xf8	/* Reserved */
++#define HIL_IDD_DID_OTHER_RSVD3		0x20
++#define HIL_IDD_DID_TYPE_KEYPAD		0x00	/* Vectra Keyboard */
++
++/* IDD record header 
++ */
++#define HIL_IDD_HEADER_AXSET_MASK	0x03    /* Number of axis in a set */
++#define HIL_IDD_HEADER_RSC		0x04	/* Supports RSC command */
++#define HIL_IDD_HEADER_EXD		0x08	/* Supports EXD command */
++#define HIL_IDD_HEADER_IOD		0x10	/* IOD byte to follow */
++#define HIL_IDD_HEADER_16BIT		0x20	/* 16 (vs. 8) bit resolution */
++#define HIL_IDD_HEADER_ABS		0x40	/* Reports Absolute Position */
++#define HIL_IDD_HEADER_2X_AXIS		0x80	/* Two sets of 1-3 axis */
++
++/* I/O Descriptor
++ */
++#define HIL_IDD_IOD_NBUTTON_MASK	0x07	/* Number of buttons */
++#define HIL_IDD_IOD_PROXIMITY		0x08	/* Proximity in/out events */
++#define HIL_IDD_IOD_PROMPT_MASK		0x70	/* Number of prompts/acks */
++#define HIL_IDD_IOD_PROMPT_SHIFT	4
++#define HIL_IDD_IOD_PROMPT		0x80	/* Generic prompt/ack */
++
++#define HIL_IDD_NUM_AXES_PER_SET(header_packet) \
++((header_packet) & HIL_IDD_HEADER_AXSET_MASK)
++
++#define HIL_IDD_NUM_AXSETS(header_packet) \
++(2 - !((header_packet) & HIL_IDD_HEADER_2X_AXIS))
++
++#define HIL_IDD_LEN(header_packet) \
++((4 - !(header_packet & HIL_IDD_HEADER_IOD) -			\
++  2 * !(HIL_IDD_NUM_AXES_PER_SET(header_packet))) +		\
++  2 * HIL_IDD_NUM_AXES_PER_SET(header_packet) *			\
++ !!((header_packet) & HIL_IDD_HEADER_ABS))
++
++/* The following HIL_IDD_* macros assume you have an array of 
++ * packets and/or unpacked 8-bit data in the order that they 
++ * were received.
++ */
++
++#define HIL_IDD_AXIS_COUNTS_PER_M(header_ptr) \
++(!(HIL_IDD_NUM_AXSETS(*(header_ptr))) ? -1 :			\
++(((*(header_ptr + 1) & HIL_PKT_DATA_MASK) +			\
++  ((*(header_ptr + 2) & HIL_PKT_DATA_MASK)) << 8)		\
++* ((*(header_ptr) & HIL_IDD_HEADER_16BIT) ? 100 : 1)))
++
++#define HIL_IDD_AXIS_MAX(header_ptr, __axnum) \
++((!(*(header_ptr) & HIL_IDD_HEADER_ABS) ||			\
++  (HIL_IDD_NUM_AXES_PER_SET(*(header_ptr)) <= __axnum)) ? 0 :	\
++ ((HIL_PKT_DATA_MASK & *((header_ptr) + 3 + 2 * __axnum)) +	\
++  ((HIL_PKT_DATA_MASK & *((header_ptr) + 4 + 2 * __axnum)) << 8)))
++
++#define HIL_IDD_IOD(header_ptr) \
++(*(header_ptr + HIL_IDD_LEN((*header_ptr)) - 1))
++
++#define HIL_IDD_HAS_GEN_PROMPT(header_ptr) \
++((*header_ptr & HIL_IDD_HEADER_IOD) &&				\
++ (HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_PROMPT))
++
++#define HIL_IDD_HAS_GEN_PROXIMITY(header_ptr) \
++((*header_ptr & HIL_IDD_HEADER_IOD) &&				\
++ (HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_PROXIMITY))
++
++#define HIL_IDD_NUM_BUTTONS(header_ptr) \
++((*header_ptr & HIL_IDD_HEADER_IOD) ?				\
++ (HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_NBUTTON_MASK) : 0)
++
++#define HIL_IDD_NUM_PROMPTS(header_ptr) \
++((*header_ptr & HIL_IDD_HEADER_IOD) ?				\
++ ((HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_NPROMPT_MASK)		\
++  >> HIL_IDD_IOD_PROMPT_SHIFT) : 0)
++
++/* The response to HIL EXD commands -- the "extended describe record" */
++#define	HIL_EXD_HEADER_WRG		0x03	/* Supports type2 WRG */
++#define HIL_EXD_HEADER_WRG_TYPE1	0x01	/* Supports type1 WRG */
++#define	HIL_EXD_HEADER_WRG_TYPE2	0x02	/* Supports type2 WRG */
++#define	HIL_EXD_HEADER_RRG		0x04	/* Supports RRG command */
++#define	HIL_EXD_HEADER_RNM		0x10	/* Supports RNM command */
++#define HIL_EXD_HEADER_RST		0x20	/* Supports RST command */
++#define HIL_EXD_HEADER_LOCALE		0x40	/* Contains locale code */
++
++#define HIL_EXD_NUM_RRG(header_ptr) \
++((*header_ptr & HIL_EXD_HEADER_RRG) ? \
++ (*(header_ptr + 1) & HIL_PKT_DATA_MASK) : 0)
++
++#define HIL_EXD_NUM_WWG(header_ptr) \
++((*header_ptr & HIL_EXD_HEADER_WRG) ?				\
++ (*(header_ptr + 2 - !(*header_ptr & HIL_EXD_HEADER_RRG)) &	\
++    HIL_PKT_DATA_MASK) : 0)
++
++#define HIL_EXD_LEN(header_ptr) \
++(!!(*header_ptr & HIL_EXD_HEADER_RRG) +				\
++ !!(*header_ptr & HIL_EXD_HEADER_WRG) +				\
++ !!(*header_ptr & HIL_EXD_HEADER_LOCALE) +			\
++ 2 * !!(*header_ptr & HIL_EXD_HEADER_WRG_TYPE2) + 1)
++
++#define HIL_EXD_LOCALE(header_ptr) \
++(!(*header_ptr & HIL_EXD_HEADER_LOCALE) ? -1 :			\
++ (*(header_ptr + HIL_EXD_LEN(header_ptr) - 1) & HIL_PKT_DATA_MASK))
++
++#define HIL_EXD_WRG_TYPE2_LEN(header_ptr) \
++(!(*header_ptr & HIL_EXD_HEADER_WRG_TYPE2) ? -1	:			\
++ (*(header_ptr + HIL_EXD_LEN(header_ptr) - 2 -                  	\
++    !!(*header_ptr & HIL_EXD_HEADER_LOCALE)) & HIL_PKT_DATA_MASK) +	\
++ ((*(header_ptr + HIL_EXD_LEN(header_ptr) - 1 -				\
++     !!(*header_ptr & HIL_EXD_HEADER_LOCALE)) & HIL_PKT_DATA_MASK) << 8))
++
++/* Device locale codes. */ 
++
++/* Last defined locale code.  Everything above this is "Reserved",
++   and note that this same table applies to the Device ID Byte where 
++   keyboards may have a nationality code which is only 5 bits. */
++#define HIL_LOCALE_MAX 0x1f
++
++/* Map to hopefully useful strings.  I was trying to make these look
++   like locale.aliases strings do; maybe that isn't the right table to
++   emulate.  In either case, I didn't have much to work on. */
++#define HIL_LOCALE_MAP \
++"",			/* 0x00 Reserved */		\
++"",			/* 0x01 Reserved */		\
++"",			/* 0x02 Reserved */		\
++"swiss.french",		/* 0x03 Swiss/French */		\
++"portuguese",		/* 0x04 Portuguese */		\
++"arabic",		/* 0x05 Arabic */		\
++"hebrew",		/* 0x06 Hebrew */		\
++"english.canadian",	/* 0x07 Canadian English */	\
++"turkish",		/* 0x08 Turkish */		\
++"greek",		/* 0x09 Greek */		\
++"thai",			/* 0x0a Thai (Thailand) */	\
++"italian",		/* 0x0b Italian */		\
++"korean",		/* 0x0c Hangul (Korea) */	\
++"dutch",		/* 0x0d Dutch */		\
++"swedish",		/* 0x0e Swedish */		\
++"german",		/* 0x0f German */		\
++"chinese",		/* 0x10 Chinese-PRC */		\
++"chinese",		/* 0x11 Chinese-ROC */		\
++"swiss.french",		/* 0x12 Swiss/French II */	\
++"spanish",		/* 0x13 Spanish */		\
++"swiss.german",		/* 0x14 Swiss/German II */	\
++"flemish",		/* 0x15 Belgian (Flemish) */	\
++"finnish",		/* 0x16 Finnish	*/		\
++"english.uk",		/* 0x17 United Kingdom */	\
++"french.canadian",	/* 0x18 French/Canadian */	\
++"swiss.german",		/* 0x19 Swiss/German */		\
++"norwegian",		/* 0x1a Norwegian */		\
++"french",		/* 0x1b French */		\
++"danish",		/* 0x1c Danish */		\
++"japanese",		/* 0x1d Katakana */		\
++"spanish",		/* 0x1e Latin American/Spanish*/\
++"english.us"		/* 0x1f United States */	\
++
++
++/* HIL keycodes */
++#define HIL_KEYCODES_SET1_TBLSIZE 128
++#define HIL_KEYCODES_SET1 	\
++   KEY_5,		KEY_RESERVED,	KEY_RIGHTALT,	KEY_LEFTALT,	\
++   KEY_RIGHTSHIFT,	KEY_LEFTSHIFT,	KEY_LEFTCTRL,	KEY_SYSRQ,	\
++   KEY_KP4,		KEY_KP8,	KEY_KP5,	KEY_KP9,	\
++   KEY_KP6,		KEY_KP7,	KEY_KPCOMMA,	KEY_KPENTER,	\
++   KEY_KP1,		KEY_KPSLASH,	KEY_KP2,	KEY_KPPLUS,	\
++   KEY_KP3,		KEY_KPASTERISK,	KEY_KP0,	KEY_KPMINUS,	\
++   KEY_B,		KEY_V,		KEY_C,		KEY_X,		\
++   KEY_Z,		KEY_RESERVED,	KEY_RESERVED,   KEY_ESC,	\
++   KEY_6,		KEY_F10,	KEY_3,		KEY_F11,	\
++   KEY_KPDOT,		KEY_F9,		KEY_TAB /*KP*/,	KEY_F12,	\
++   KEY_H,		KEY_G,		KEY_F,		KEY_D,		\
++   KEY_S,		KEY_A,		KEY_RESERVED,	KEY_CAPSLOCK,	\
++   KEY_U,		KEY_Y,		KEY_T,		KEY_R,		\
++   KEY_E,		KEY_W,		KEY_Q,		KEY_TAB,	\
++   KEY_7,		KEY_6,		KEY_5,		KEY_4,		\
++   KEY_3,		KEY_2,		KEY_1,		KEY_GRAVE,	\
++   KEY_F13,		KEY_F14,	KEY_F15,	KEY_F16,	\
++   KEY_F17,		KEY_F18,	KEY_F19,	KEY_F20,	\
++   KEY_MENU,		KEY_F4,		KEY_F3,		KEY_F2,		\
++   KEY_F1,		KEY_VOLUMEUP,	KEY_STOP,	KEY_SENDFILE,	\
++   KEY_SYSRQ,		KEY_F5,		KEY_F6,		KEY_F7,		\
++   KEY_F8,		KEY_VOLUMEDOWN,	KEY_DEL_EOL,	KEY_DEL_EOS,	\
++   KEY_8,		KEY_9,		KEY_0,		KEY_MINUS,	\
++   KEY_EQUAL,		KEY_BACKSPACE,	KEY_INS_LINE,	KEY_DEL_LINE,	\
++   KEY_I,		KEY_O,		KEY_P,		KEY_LEFTBRACE,	\
++   KEY_RIGHTBRACE,	KEY_BACKSLASH,	KEY_INSERT,	KEY_DELETE,	\
++   KEY_J,		KEY_K,		KEY_L,		KEY_SEMICOLON,	\
++   KEY_APOSTROPHE,	KEY_ENTER,	KEY_HOME,	KEY_PAGEUP,	\
++   KEY_M,		KEY_COMMA,	KEY_DOT,	KEY_SLASH,	\
++   KEY_BACKSLASH,	KEY_SELECT,	KEY_102ND,	KEY_PAGEDOWN,	\
++   KEY_N,		KEY_SPACE,	KEY_NEXT,	KEY_RESERVED,	\
++   KEY_LEFT,		KEY_DOWN,	KEY_UP,		KEY_RIGHT
++
++
++#define HIL_KEYCODES_SET3_TBLSIZE 128
++#define HIL_KEYCODES_SET3 	\
++  KEY_RESERVED,	KEY_ESC,	KEY_1,		KEY_2,			\
++  KEY_3,	KEY_4,		KEY_5,		KEY_6,			\
++  KEY_7,	KEY_8,		KEY_9,		KEY_0,			\
++  KEY_MINUS,	KEY_EQUAL,	KEY_BACKSPACE,	KEY_TAB,		\
++  KEY_Q,	KEY_W,		KEY_E,		KEY_R,			\
++  KEY_T,	KEY_Y,		KEY_U,		KEY_I,			\
++  KEY_O,	KEY_P,		KEY_LEFTBRACE,	KEY_RIGHTBRACE,		\
++  KEY_ENTER,	KEY_LEFTCTRL,	KEY_A,		KEY_S,			\
++  KEY_D,	KEY_F,		KEY_G,		KEY_H,			\
++  KEY_J,	KEY_K,		KEY_L,		KEY_SEMICOLON,		\
++  KEY_APOSTROPHE,KEY_GRAVE,	KEY_LEFTSHIFT,	KEY_BACKSLASH,		\
++  KEY_Z,	KEY_X,		KEY_C,		KEY_V,			\
++  KEY_B,	KEY_N,		KEY_M,		KEY_COMMA,		\
++  KEY_DOT,	KEY_SLASH,	KEY_RIGHTSHIFT,	KEY_KPASTERISK,		\
++  KEY_LEFTALT,	KEY_SPACE,	KEY_CAPSLOCK,	KEY_F1,			\
++  KEY_F2,	KEY_F3,		KEY_F4,		KEY_F5,			\
++  KEY_F6,	KEY_F7,		KEY_F8,		KEY_F9,			\
++  KEY_F10,	KEY_NUMLOCK,	KEY_SCROLLLOCK,	KEY_KP7,		\
++  KEY_KP8,	KEY_KP9,	KEY_KPMINUS,	KEY_KP4,		\
++  KEY_KP5,	KEY_KP6,	KEY_KPPLUS,	KEY_KP1,		\
++  KEY_KP2,	KEY_KP3,	KEY_KP0,	KEY_KPDOT,		\
++  KEY_SYSRQ,	KEY_RESERVED,	KEY_RESERVED,	KEY_RESERVED,		\
++  KEY_RESERVED,	KEY_RESERVED,	KEY_RESERVED,	KEY_RESERVED,		\
++  KEY_RESERVED,	KEY_RESERVED,	KEY_RESERVED,	KEY_RESERVED,		\
++  KEY_UP,	KEY_LEFT,	KEY_DOWN,	KEY_RIGHT,		\
++  KEY_HOME,	KEY_PAGEUP,	KEY_END,	KEY_PAGEDOWN,		\
++  KEY_INSERT,	KEY_DELETE,	KEY_102ND,	KEY_RESERVED,		\
++  KEY_RESERVED,	KEY_RESERVED,	KEY_RESERVED,	KEY_RESERVED,		\
++  KEY_F1,	KEY_F2,		KEY_F3,		KEY_F4,			\
++  KEY_F5,	KEY_F6,		KEY_F7,		KEY_F8,			\
++  KEY_RESERVED,	KEY_RESERVED,	KEY_RESERVED,	KEY_RESERVED,		\
++  KEY_RESERVED,	KEY_RESERVED,	KEY_RESERVED,	KEY_RESERVED
++
++
++/* Response to POL command, the "poll record header" */
++
++#define HIL_POL_NUM_AXES_MASK	0x03	/* Number of axis reported */
++#define HIL_POL_CTS		0x04	/* Device ready to receive data */
++#define HIL_POL_STATUS_PENDING	0x08	/* Device has status to report */
++#define HIL_POL_CHARTYPE_MASK	0x70	/* Type of character data to follow */
++#define HIL_POL_CHARTYPE_NONE	0x00	/* No character data to follow */
++#define HIL_POL_CHARTYPE_RSVD1	0x10	/* Reserved Set 1 */
++#define HIL_POL_CHARTYPE_ASCII	0x20	/* U.S. ASCII */
++#define HIL_POL_CHARTYPE_BINARY	0x30	/* Binary data */
++#define HIL_POL_CHARTYPE_SET1	0x40	/* Keycode Set 1 */
++#define HIL_POL_CHARTYPE_RSVD2	0x50	/* Reserved Set 2 */
++#define HIL_POL_CHARTYPE_SET2	0x60	/* Keycode Set 2 */
++#define HIL_POL_CHARTYPE_SET3	0x70	/* Keycode Set 3 */
++#define HIL_POL_AXIS_ALT	0x80	/* Data is from axis set 2 */
++
++
++#endif /* _HIL_H_ */
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/include/linux/hil_mlc.h CVS2_6_12_PA2/include/linux/hil_mlc.h
+--- LINUS_2_6_12/include/linux/hil_mlc.h	1969-12-31 17:00:00.000000000 -0700
++++ CVS2_6_12_PA2/include/linux/hil_mlc.h	2004-10-30 13:51:51.000000000 -0600
+@@ -0,0 +1,168 @@
++/*
++ * HP Human Interface Loop Master Link Controller driver.
++ *
++ * Copyright (c) 2001 Brian S. Julin
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ *    notice, this list of conditions, and the following disclaimer,
++ *    without modification.
++ * 2. The name of the author may not be used to endorse or promote products
++ *    derived from this software without specific prior written permission.
++ *
++ * Alternatively, this software may be distributed under the terms of the
++ * GNU General Public License ("GPL").
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
++ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++ *
++ * References:
++ * HP-HIL Technical Reference Manual.  Hewlett Packard Product No. 45918A
++ *
++ */
++
++#include <linux/hil.h>
++#include <linux/time.h>
++#include <linux/interrupt.h>
++#include <asm/semaphore.h>
++#include <linux/serio.h>
++#include <linux/list.h>
++
++typedef struct hil_mlc hil_mlc;
++
++/* The HIL has a complicated state engine.
++ * We define the structure of nodes in the state engine here.
++ */
++enum hilse_act {
++  	/* HILSE_OUT prepares to receive input if the next node
++	 * is an IN or EXPECT, and then sends the given packet.
++	 */
++	HILSE_OUT = 0,
++
++  	/* HILSE_CTS checks if the loop is busy. */
++	HILSE_CTS,
++
++	/* HILSE_OUT_LAST sends the given command packet to 
++	 * the last configured/running device on the loop.
++	 */
++	HILSE_OUT_LAST,
++
++	/* HILSE_OUT_DISC sends the given command packet to
++	 * the next device past the last configured/running one.
++	 */
++	HILSE_OUT_DISC,
++
++	/* HILSE_FUNC runs a callback function with given arguments.
++	 * a positive return value causes the "ugly" branch to be taken.
++	 */
++	HILSE_FUNC,
++
++  	/* HILSE_IN simply expects any non-errored packet to arrive 
++	 * within arg usecs.
++	 */
++	HILSE_IN		= 0x100,
++
++  	/* HILSE_EXPECT expects a particular packet to arrive 
++	 * within arg usecs, any other packet is considered an error.
++	 */
++	HILSE_EXPECT,
++
++  	/* HILSE_EXPECT_LAST as above but dev field should be last 
++	 * discovered/operational device.
++	 */
++	HILSE_EXPECT_LAST,
++
++  	/* HILSE_EXPECT_LAST as above but dev field should be first 
++	 * undiscovered/inoperational device.
++	 */
++	HILSE_EXPECT_DISC
++};
++
++typedef int	(hilse_func) (hil_mlc *mlc, int arg);
++struct hilse_node {
++	enum hilse_act		act;	/* How to process this node         */
++	union {
++		hilse_func	*func;	/* Function to call if HILSE_FUNC   */
++		hil_packet	packet;	/* Packet to send or to compare     */
++	} object;
++	int			arg;	/* Timeout in usec or parm for func */
++	int			good;	/* Node to jump to on success       */
++	int			bad;	/* Node to jump to on error         */
++	int			ugly;	/* Node to jump to on timeout       */
++};
++
++/* Methods for back-end drivers, e.g. hp_sdc_mlc */
++typedef int	(hil_mlc_cts) (hil_mlc *mlc);
++typedef void	(hil_mlc_out) (hil_mlc *mlc);
++typedef int	(hil_mlc_in)  (hil_mlc *mlc, suseconds_t timeout);
++
++struct hil_mlc_devinfo {
++	uint8_t	idd[16];	/* Device ID Byte and Describe Record */
++	uint8_t	rsc[16];	/* Security Code Header and Record */
++	uint8_t	exd[16];	/* Extended Describe Record */
++	uint8_t	rnm[16];	/* Device name as returned by RNM command */
++};
++
++struct hil_mlc_serio_map {
++	hil_mlc *mlc;
++	int di_revmap;
++	int didx;
++};
++
++/* How many (possibly old/detached) devices the we try to keep track of */
++#define HIL_MLC_DEVMEM 16
++
++struct hil_mlc {
++	struct list_head	list;	/* hil_mlc is organized as linked list */
++
++	rwlock_t		lock;
++
++	void *priv; /* Data specific to a particular type of MLC */
++
++	int 			seidx;	/* Current node in state engine */
++	int			istarted, ostarted;
++
++	hil_mlc_cts		*cts;
++	struct semaphore	csem;   /* Raised when loop idle */
++
++	hil_mlc_out		*out;
++	struct semaphore	osem;   /* Raised when outpacket dispatched */
++	hil_packet		opacket;
++
++	hil_mlc_in		*in;
++	struct semaphore	isem;   /* Raised when a packet arrives */
++	hil_packet		ipacket[16];
++	hil_packet		imatch;
++	int			icount;
++	struct timeval		instart;
++	suseconds_t		intimeout;
++
++	int			ddi;	/* Last operational device id */
++	int			lcv;	/* LCV to throttle loops */
++	struct timeval		lcv_tv; /* Time loop was started */
++
++	int			di_map[7]; /* Maps below items to live devs */
++	struct hil_mlc_devinfo	di[HIL_MLC_DEVMEM];
++	struct serio		*serio[HIL_MLC_DEVMEM];
++	struct hil_mlc_serio_map serio_map[HIL_MLC_DEVMEM];
++	hil_packet		serio_opacket[HIL_MLC_DEVMEM];
++	int			serio_oidx[HIL_MLC_DEVMEM];
++	struct hil_mlc_devinfo	di_scratch; /* Temporary area */
++
++	int			opercnt;
++
++	struct tasklet_struct	*tasklet;
++};
++
++int hil_mlc_register(hil_mlc *mlc);
++int hil_mlc_unregister(hil_mlc *mlc);
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/include/linux/hp_sdc.h CVS2_6_12_PA2/include/linux/hp_sdc.h
+--- LINUS_2_6_12/include/linux/hp_sdc.h	1969-12-31 17:00:00.000000000 -0700
++++ CVS2_6_12_PA2/include/linux/hp_sdc.h	2004-07-11 16:03:48.000000000 -0600
+@@ -0,0 +1,300 @@
++/*
++ * HP i8042 System Device Controller -- header
++ *
++ * Copyright (c) 2001 Brian S. Julin
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ *    notice, this list of conditions, and the following disclaimer,
++ *    without modification.
++ * 2. The name of the author may not be used to endorse or promote products
++ *    derived from this software without specific prior written permission.
++ *
++ * Alternatively, this software may be distributed under the terms of the
++ * GNU General Public License ("GPL").
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
++ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++ *
++ * References:
++ * 
++ * HP-HIL Technical Reference Manual.  Hewlett Packard Product No. 45918A
++ *
++ * System Device Controller Microprocessor Firmware Theory of Operation
++ * 	for Part Number 1820-4784 Revision B.  Dwg No. A-1820-4784-2
++ *
++ */
++
++#ifndef _LINUX_HP_SDC_H
++#define _LINUX_HP_SDC_H
++
++#include <linux/interrupt.h>
++#include <linux/types.h>
++#include <linux/time.h>
++#include <linux/timer.h>
++#if defined(__hppa__)
++#include <asm/hardware.h>
++#endif
++
++
++/* No 4X status reads take longer than this (in usec).
++ */
++#define HP_SDC_MAX_REG_DELAY 20000
++
++typedef void (hp_sdc_irqhook) (int irq, void *dev_id, 
++			       uint8_t status, uint8_t data);
++
++int hp_sdc_request_timer_irq(hp_sdc_irqhook *callback);
++int hp_sdc_request_hil_irq(hp_sdc_irqhook *callback);
++int hp_sdc_request_cooked_irq(hp_sdc_irqhook *callback);
++int hp_sdc_release_timer_irq(hp_sdc_irqhook *callback);
++int hp_sdc_release_hil_irq(hp_sdc_irqhook *callback);
++int hp_sdc_release_cooked_irq(hp_sdc_irqhook *callback);
++
++typedef struct {
++	int actidx;	/* Start of act.  Acts are atomic WRT I/O to SDC */
++	int idx;	/* Index within the act */
++	int endidx;	/* transaction is over and done if idx == endidx */
++	uint8_t *seq;	/* commands/data for the transaction */
++	union {
++	  hp_sdc_irqhook   *irqhook;	/* Callback, isr or tasklet context */
++	  struct semaphore *semaphore;	/* Semaphore to sleep on. */
++	} act;
++} hp_sdc_transaction;
++int hp_sdc_enqueue_transaction(hp_sdc_transaction *this);
++int hp_sdc_dequeue_transaction(hp_sdc_transaction *this);
++
++/* The HP_SDC_ACT* values are peculiar to this driver.
++ * Nuance: never HP_SDC_ACT_DATAIN | HP_SDC_ACT_DEALLOC, use another
++ * act to perform the dealloc.
++ */
++#define HP_SDC_ACT_PRECMD	0x01		/* Send a command first */
++#define HP_SDC_ACT_DATAREG	0x02		/* Set data registers */
++#define HP_SDC_ACT_DATAOUT	0x04		/* Send data bytes */
++#define HP_SDC_ACT_POSTCMD      0x08            /* Send command after */
++#define HP_SDC_ACT_DATAIN	0x10		/* Collect data after */
++#define HP_SDC_ACT_DURING	0x1f
++#define HP_SDC_ACT_SEMAPHORE    0x20            /* Raise semaphore after */
++#define HP_SDC_ACT_CALLBACK	0x40		/* Pass data to IRQ handler */
++#define HP_SDC_ACT_DEALLOC	0x80		/* Destroy transaction after */
++#define HP_SDC_ACT_AFTER	0xe0
++#define HP_SDC_ACT_DEAD		0x60		/* Act timed out. */
++
++/* Rest of the flags are straightforward representation of the SDC interface */
++#define HP_SDC_STATUS_IBF	0x02	/* Input buffer full */
++
++#define HP_SDC_STATUS_IRQMASK	0xf0	/* Bits containing "level 1" irq */
++#define HP_SDC_STATUS_PERIODIC  0x10    /* Periodic 10ms timer */
++#define HP_SDC_STATUS_USERTIMER 0x20    /* "Special purpose" timer */
++#define HP_SDC_STATUS_TIMER     0x30    /* Both PERIODIC and USERTIMER */
++#define HP_SDC_STATUS_REG	0x40	/* Data from an i8042 register */
++#define HP_SDC_STATUS_HILCMD    0x50	/* Command from HIL MLC */
++#define HP_SDC_STATUS_HILDATA   0x60	/* Data from HIL MLC */
++#define HP_SDC_STATUS_PUP	0x70	/* Sucessful power-up self test */
++#define HP_SDC_STATUS_KCOOKED	0x80	/* Key from cooked kbd */
++#define HP_SDC_STATUS_KRPG	0xc0	/* Key from Repeat Gen */
++#define HP_SDC_STATUS_KMOD_SUP	0x10	/* Shift key is up */
++#define HP_SDC_STATUS_KMOD_CUP	0x20	/* Control key is up */
++
++#define HP_SDC_NMISTATUS_FHS	0x40	/* NMI is a fast handshake irq */
++
++/* Internal i8042 registers (there are more, but they are not too useful). */
++
++#define HP_SDC_USE		0x02	/* Resource usage (including OB bit) */
++#define HP_SDC_IM		0x04	/* Interrupt mask */
++#define HP_SDC_CFG		0x11	/* Configuration register */
++#define HP_SDC_KBLANGUAGE	0x12	/* Keyboard language */
++
++#define HP_SDC_D0		0x70	/* General purpose data buffer 0 */
++#define HP_SDC_D1		0x71	/* General purpose data buffer 1 */
++#define HP_SDC_D2		0x72	/* General purpose data buffer 2 */
++#define HP_SDC_D3		0x73	/* General purpose data buffer 3 */
++#define HP_SDC_VT1		0x74	/* Timer for voice 1 */
++#define HP_SDC_VT2		0x75	/* Timer for voice 2 */
++#define HP_SDC_VT3		0x76	/* Timer for voice 3 */
++#define HP_SDC_VT4		0x77	/* Timer for voice 4 */
++#define HP_SDC_KBN		0x78	/* Which HIL devs are Nimitz */
++#define HP_SDC_KBC		0x79	/* Which HIL devs are cooked kbds */
++#define HP_SDC_LPS		0x7a	/* i8042's view of HIL status */
++#define HP_SDC_LPC		0x7b	/* i8042's view of HIL "control" */
++#define HP_SDC_RSV  		0x7c	/* Reserved "for testing" */
++#define HP_SDC_LPR		0x7d    /* i8042 count of HIL reconfigs */
++#define HP_SDC_XTD		0x7e    /* "Extended Configuration" register */
++#define HP_SDC_STR		0x7f    /* i8042 self-test result */
++
++/* Bitfields for above registers */
++#define HP_SDC_USE_LOOP		0x04	/* Command is currently on the loop. */
++
++#define HP_SDC_IM_MASK          0x1f    /* these bits not part of cmd/status */
++#define HP_SDC_IM_FH		0x10	/* Mask the fast handshake irq */
++#define HP_SDC_IM_PT		0x08	/* Mask the periodic timer irq */
++#define HP_SDC_IM_TIMERS	0x04	/* Mask the MT/DT/CT irq */
++#define HP_SDC_IM_RESET		0x02	/* Mask the reset key irq */
++#define HP_SDC_IM_HIL		0x01	/* Mask the HIL MLC irq */
++
++#define HP_SDC_CFG_ROLLOVER	0x08	/* WTF is "N-key rollover"? */
++#define HP_SDC_CFG_KBD		0x10	/* There is a keyboard */
++#define HP_SDC_CFG_NEW		0x20	/* Supports/uses HIL MLC */
++#define HP_SDC_CFG_KBD_OLD	0x03	/* keyboard code for non-HIL */
++#define HP_SDC_CFG_KBD_NEW	0x07	/* keyboard code from HIL autoconfig */
++#define HP_SDC_CFG_REV		0x40	/* Code revision bit */
++#define HP_SDC_CFG_IDPROM	0x80	/* IDPROM present in kbd (not HIL) */
++
++#define HP_SDC_LPS_NDEV		0x07	/* # devices autoconfigured on HIL */
++#define HP_SDC_LPS_ACSUCC	0x08	/* loop autoconfigured successfully */
++#define HP_SDC_LPS_ACFAIL	0x80	/* last loop autoconfigure failed */
++
++#define HP_SDC_LPC_APE_IPF	0x01	/* HIL MLC APE/IPF (autopoll) set */
++#define HP_SDC_LPC_ARCONERR	0x02	/* i8042 autoreconfigs loop on err */
++#define HP_SDC_LPC_ARCQUIET	0x03	/* i8042 doesn't report autoreconfigs*/
++#define HP_SDC_LPC_COOK		0x10	/* i8042 cooks devices in _KBN */
++#define HP_SDC_LPC_RC		0x80	/* causes autoreconfig */
++
++#define HP_SDC_XTD_REV		0x07	/* contains revision code */
++#define HP_SDC_XTD_REV_STRINGS(val, str) \
++switch (val) {						\
++	case 0x1: str = "1820-3712"; break;		\
++	case 0x2: str = "1820-4379"; break;		\
++	case 0x3: str = "1820-4784"; break;		\
++	default: str = "unknown";			\
++};
++#define HP_SDC_XTD_BEEPER	0x08	/* TI SN76494 beeper available */
++#define HP_SDC_XTD_BBRTC	0x20	/* OKI MSM-58321 BBRTC present */
++
++#define HP_SDC_CMD_LOAD_RT	0x31	/* Load real time (from 8042) */
++#define HP_SDC_CMD_LOAD_FHS	0x36	/* Load the fast handshake timer */
++#define HP_SDC_CMD_LOAD_MT	0x38	/* Load the match timer */
++#define HP_SDC_CMD_LOAD_DT	0x3B	/* Load the delay timer */
++#define HP_SDC_CMD_LOAD_CT	0x3E	/* Load the cycle timer */
++
++#define HP_SDC_CMD_SET_IM	0x40    /* 010xxxxx == set irq mask */
++
++/* The documents provided do not explicitly state that all registers betweem 
++ * 0x01 and 0x1f inclusive can be read by sending their register index as a 
++ * command, but this is implied and appears to be the case.
++ */
++#define HP_SDC_CMD_READ_RAM	0x00	/* Load from i8042 RAM (autoinc) */
++#define HP_SDC_CMD_READ_USE	0x02	/* Undocumented! Load from usage reg */
++#define HP_SDC_CMD_READ_IM	0x04	/* Load current interrupt mask */
++#define HP_SDC_CMD_READ_KCC	0x11	/* Load primary kbd config code */
++#define HP_SDC_CMD_READ_KLC	0x12	/* Load primary kbd language code */
++#define HP_SDC_CMD_READ_T1	0x13	/* Load timer output buffer byte 1 */
++#define HP_SDC_CMD_READ_T2	0x14	/* Load timer output buffer byte 1 */
++#define HP_SDC_CMD_READ_T3	0x15	/* Load timer output buffer byte 1 */
++#define HP_SDC_CMD_READ_T4	0x16	/* Load timer output buffer byte 1 */
++#define HP_SDC_CMD_READ_T5	0x17	/* Load timer output buffer byte 1 */
++#define HP_SDC_CMD_READ_D0	0xf0	/* Load from i8042 RAM location 0x70 */
++#define HP_SDC_CMD_READ_D1	0xf1	/* Load from i8042 RAM location 0x71 */
++#define HP_SDC_CMD_READ_D2	0xf2	/* Load from i8042 RAM location 0x72 */
++#define HP_SDC_CMD_READ_D3	0xf3	/* Load from i8042 RAM location 0x73 */
++#define HP_SDC_CMD_READ_VT1	0xf4	/* Load from i8042 RAM location 0x74 */
++#define HP_SDC_CMD_READ_VT2	0xf5	/* Load from i8042 RAM location 0x75 */
++#define HP_SDC_CMD_READ_VT3	0xf6	/* Load from i8042 RAM location 0x76 */
++#define HP_SDC_CMD_READ_VT4	0xf7	/* Load from i8042 RAM location 0x77 */
++#define HP_SDC_CMD_READ_KBN	0xf8	/* Load from i8042 RAM location 0x78 */
++#define HP_SDC_CMD_READ_KBC	0xf9	/* Load from i8042 RAM location 0x79 */
++#define HP_SDC_CMD_READ_LPS	0xfa	/* Load from i8042 RAM location 0x7a */
++#define HP_SDC_CMD_READ_LPC	0xfb	/* Load from i8042 RAM location 0x7b */
++#define HP_SDC_CMD_READ_RSV	0xfc	/* Load from i8042 RAM location 0x7c */
++#define HP_SDC_CMD_READ_LPR	0xfd	/* Load from i8042 RAM location 0x7d */
++#define HP_SDC_CMD_READ_XTD	0xfe	/* Load from i8042 RAM location 0x7e */
++#define HP_SDC_CMD_READ_STR	0xff	/* Load from i8042 RAM location 0x7f */
++
++#define HP_SDC_CMD_SET_ARD	0xA0	/* Set emulated autorepeat delay */
++#define HP_SDC_CMD_SET_ARR	0xA2	/* Set emulated autorepeat rate */
++#define HP_SDC_CMD_SET_BELL	0xA3	/* Set voice 3 params for "beep" cmd */
++#define HP_SDC_CMD_SET_RPGR	0xA6	/* Set "RPG" irq rate (doesn't work) */
++#define HP_SDC_CMD_SET_RTMS	0xAD	/* Set the RTC time (milliseconds) */
++#define HP_SDC_CMD_SET_RTD	0xAF	/* Set the RTC time (days) */
++#define HP_SDC_CMD_SET_FHS	0xB2	/* Set fast handshake timer */
++#define HP_SDC_CMD_SET_MT	0xB4	/* Set match timer */
++#define HP_SDC_CMD_SET_DT	0xB7	/* Set delay timer */
++#define HP_SDC_CMD_SET_CT	0xBA	/* Set cycle timer */
++#define HP_SDC_CMD_SET_RAMP	0xC1	/* Reset READ_RAM autoinc counter */
++#define HP_SDC_CMD_SET_D0	0xe0	/* Load to i8042 RAM location 0x70 */
++#define HP_SDC_CMD_SET_D1	0xe1	/* Load to i8042 RAM location 0x71 */
++#define HP_SDC_CMD_SET_D2	0xe2	/* Load to i8042 RAM location 0x72 */
++#define HP_SDC_CMD_SET_D3	0xe3	/* Load to i8042 RAM location 0x73 */
++#define HP_SDC_CMD_SET_VT1	0xe4	/* Load to i8042 RAM location 0x74 */
++#define HP_SDC_CMD_SET_VT2	0xe5	/* Load to i8042 RAM location 0x75 */
++#define HP_SDC_CMD_SET_VT3	0xe6	/* Load to i8042 RAM location 0x76 */
++#define HP_SDC_CMD_SET_VT4	0xe7	/* Load to i8042 RAM location 0x77 */
++#define HP_SDC_CMD_SET_KBN	0xe8	/* Load to i8042 RAM location 0x78 */
++#define HP_SDC_CMD_SET_KBC	0xe9	/* Load to i8042 RAM location 0x79 */
++#define HP_SDC_CMD_SET_LPS	0xea	/* Load to i8042 RAM location 0x7a */
++#define HP_SDC_CMD_SET_LPC	0xeb	/* Load to i8042 RAM location 0x7b */
++#define HP_SDC_CMD_SET_RSV	0xec	/* Load to i8042 RAM location 0x7c */
++#define HP_SDC_CMD_SET_LPR	0xed	/* Load to i8042 RAM location 0x7d */
++#define HP_SDC_CMD_SET_XTD	0xee	/* Load to i8042 RAM location 0x7e */
++#define HP_SDC_CMD_SET_STR	0xef	/* Load to i8042 RAM location 0x7f */
++
++#define HP_SDC_CMD_DO_RTCW	0xc2	/* i8042 RAM 0x70 --> RTC */
++#define HP_SDC_CMD_DO_RTCR	0xc3	/* RTC[0x70 0:3] --> irq/status/data */
++#define HP_SDC_CMD_DO_BEEP	0xc4	/* i8042 RAM 0x70-74  --> beeper,VT3 */
++#define HP_SDC_CMD_DO_HIL	0xc5	/* i8042 RAM 0x70-73 --> 
++					   HIL MLC R0,R1 i8042 HIL watchdog */
++
++/* Values used to (de)mangle input/output to/from the HIL MLC */
++#define HP_SDC_DATA		0x40	/* Data from an 8042 register */
++#define HP_SDC_HIL_CMD		0x50	/* Data from HIL MLC R1/8042 */
++#define HP_SDC_HIL_R1MASK	0x0f	/* Contents of HIL MLC R1 0:3 */
++#define HP_SDC_HIL_AUTO		0x10	/* Set if POL results from i8042 */   
++#define HP_SDC_HIL_ISERR	0x80	/* Has meaning as in next 4 values */
++#define HP_SDC_HIL_RC_DONE	0x80	/* i8042 auto-configured loop */
++#define HP_SDC_HIL_ERR		0x81	/* HIL MLC R2 had a bit set */
++#define HP_SDC_HIL_TO		0x82	/* i8042 HIL watchdog expired */
++#define HP_SDC_HIL_RC		0x84	/* i8042 is auto-configuring loop */
++#define HP_SDC_HIL_DAT		0x60	/* Data from HIL MLC R0 */
++
++
++typedef struct {
++	rwlock_t	ibf_lock;
++	rwlock_t	lock;		/* user/tasklet lock */
++	rwlock_t	rtq_lock;	/* isr/tasklet lock */
++	rwlock_t	hook_lock;	/* isr/user lock for handler add/del */
++
++	unsigned int	irq, nmi;	/* Our IRQ lines */
++	unsigned long	base_io, status_io, data_io; /* Our IO ports */
++
++	uint8_t		im;		/* Interrupt mask */
++	int		set_im; 	/* Interrupt mask needs to be set. */
++
++	int		ibf;		/* Last known status of IBF flag */
++	uint8_t		wi;		/* current i8042 write index */
++	uint8_t		r7[4];          /* current i8042[0x70 - 0x74] values */
++	uint8_t		r11, r7e;	/* Values from version/revision regs */
++
++	hp_sdc_irqhook	*timer, *reg, *hil, *pup, *cooked;
++
++#define HP_SDC_QUEUE_LEN 16
++	hp_sdc_transaction *tq[HP_SDC_QUEUE_LEN]; /* All pending read/writes */
++
++	int		rcurr, rqty;	/* Current read transact in process */
++	struct timeval	rtv;		/* Time when current read started */
++	int		wcurr;		/* Current write transact in process */
++
++	int		dev_err;	/* carries status from registration */
++#if defined(__hppa__)
++	struct parisc_device	*dev;
++#elif defined(__mc68000__)
++	void		*dev;
++#else
++#error No support for device registration on this arch yet.
++#endif
++
++	struct timer_list kicker;	/* Keeps below task alive */
++	struct tasklet_struct	task;
++
++} hp_i8042_sdc;
++
++#endif /* _LINUX_HP_SDC_H */
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/include/linux/input.h CVS2_6_12_PA2/include/linux/input.h
+--- LINUS_2_6_12/include/linux/input.h	2005-06-17 21:22:16.000000000 -0600
++++ CVS2_6_12_PA2/include/linux/input.h	2005-05-08 20:00:58.000000000 -0600
+@@ -620,6 +620,7 @@
+ #define BUS_ADB			0x17
+ #define BUS_I2C			0x18
+ #define BUS_HOST		0x19
++#define BUS_GSC			0x1A
+ 
+ /*
+  * Values describing the status of an effect
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/include/linux/serio.h CVS2_6_12_PA2/include/linux/serio.h
+--- LINUS_2_6_12/include/linux/serio.h	2005-06-17 21:22:16.000000000 -0600
++++ CVS2_6_12_PA2/include/linux/serio.h	2005-03-25 21:59:49.000000000 -0700
+@@ -179,7 +179,7 @@
+ #define SERIO_8042_XL	0x06
+ 
+ /*
+- * Serio types
++ * Serio protos
+  */
+ #define SERIO_UNKNOWN	0x00
+ #define SERIO_MSC	0x01
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/include/linux/signal.h CVS2_6_12_PA2/include/linux/signal.h
+--- LINUS_2_6_12/include/linux/signal.h	2005-06-17 21:22:16.000000000 -0600
++++ CVS2_6_12_PA2/include/linux/signal.h	2005-06-17 21:32:55.000000000 -0600
+@@ -234,6 +234,9 @@
+ struct pt_regs;
+ extern int get_signal_to_deliver(siginfo_t *info, struct k_sigaction *return_ka, struct pt_regs *regs, void *cookie);
+ 
++int copy_siginfo_from_user(siginfo_t *to, siginfo_t __user *from);
++int copy_siginfo_to_user(siginfo_t __user *to, siginfo_t *from);
++
+ #endif /* __KERNEL__ */
+ 
+ #endif /* _LINUX_SIGNAL_H */
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/include/sound/opl3.h CVS2_6_12_PA2/include/sound/opl3.h
+--- LINUS_2_6_12/include/sound/opl3.h	2005-06-17 21:22:17.000000000 -0600
++++ CVS2_6_12_PA2/include/sound/opl3.h	2005-03-01 09:56:38.000000000 -0700
+@@ -261,8 +261,8 @@
+ } snd_opl3_voice_t;
+ 
+ struct snd_opl3 {
+-	unsigned long l_port;
+-	unsigned long r_port;
++	void __iomem *l_port;
++	void __iomem *r_port;
+ 	struct resource *res_l_port;
+ 	struct resource *res_r_port;
+ 	unsigned short hardware;
+@@ -319,6 +319,9 @@
+ void snd_opl3_interrupt(snd_hwdep_t * hw);
+ int snd_opl3_new(snd_card_t *card, unsigned short hardware, opl3_t **ropl3);
+ int snd_opl3_init(opl3_t *opl3);
++int snd_opl3_create_mapped(snd_card_t * card,
++			   void __iomem * l_port, void __iomem * r_port,
++			   unsigned short hardware, opl3_t ** opl3);
+ int snd_opl3_create(snd_card_t * card,
+ 		    unsigned long l_port, unsigned long r_port,
+ 		    unsigned short hardware,
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/ipc/compat_mq.c CVS2_6_12_PA2/ipc/compat_mq.c
+--- LINUS_2_6_12/ipc/compat_mq.c	2005-06-17 21:22:17.000000000 -0600
++++ CVS2_6_12_PA2/ipc/compat_mq.c	2005-03-18 06:17:54.000000000 -0700
+@@ -7,6 +7,7 @@
+  */
+ 
+ #include <linux/compat.h>
++#include <linux/compat_siginfo.h>
+ #include <linux/fs.h>
+ #include <linux/kernel.h>
+ #include <linux/mqueue.h>
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/kernel/Makefile CVS2_6_12_PA2/kernel/Makefile
+--- LINUS_2_6_12/kernel/Makefile	2005-06-17 21:22:18.000000000 -0600
++++ CVS2_6_12_PA2/kernel/Makefile	2005-05-08 20:01:00.000000000 -0600
+@@ -17,7 +17,7 @@
+ obj-$(CONFIG_KALLSYMS) += kallsyms.o
+ obj-$(CONFIG_PM) += power/
+ obj-$(CONFIG_BSD_PROCESS_ACCT) += acct.o
+-obj-$(CONFIG_COMPAT) += compat.o
++obj-$(CONFIG_COMPAT) += compat.o compat_signal.o
+ obj-$(CONFIG_CPUSETS) += cpuset.o
+ obj-$(CONFIG_IKCONFIG) += configs.o
+ obj-$(CONFIG_IKCONFIG_PROC) += configs.o
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/kernel/compat.c CVS2_6_12_PA2/kernel/compat.c
+--- LINUS_2_6_12/kernel/compat.c	2005-06-17 21:22:18.000000000 -0600
++++ CVS2_6_12_PA2/kernel/compat.c	2005-04-21 18:26:08.000000000 -0600
+@@ -13,6 +13,7 @@
+ 
+ #include <linux/linkage.h>
+ #include <linux/compat.h>
++#include <linux/compat_siginfo.h>
+ #include <linux/errno.h>
+ #include <linux/time.h>
+ #include <linux/signal.h>
+@@ -441,7 +442,11 @@
+ 
+ 	BUG_ON(info.si_code & __SI_MASK);
+ 	info.si_code |= __SI_CHLD;
+-	return copy_siginfo_to_user32(uinfo, &info);
++	
++	if (compat_copy_siginfo_to_user(uinfo, &info) != 0)
++		return -EFAULT;
++
++	return 0;
+ }
+ 
+ static int compat_get_user_cpu_mask(compat_ulong_t __user *user_mask_ptr,
+@@ -653,6 +658,26 @@
+ 
+ /* timer_create is architecture specific because it needs sigevent conversion */
+ 
++long compat_sys_timer_create(clockid_t which_clock,
++			     compat_sigevent_t __user *timer_event_spec,
++			     compat_timer_t __user * created_timer_id)
++{
++	sigevent_t kevent;
++	mm_segment_t old_fs = get_fs();
++	long ret;
++
++	if (timer_event_spec != NULL)
++		if (compat_copy_sigevent_from_user(&kevent, timer_event_spec) != 0)
++			return -EFAULT;
++
++	set_fs(KERNEL_DS);
++	ret = sys_timer_create(which_clock, timer_event_spec ? (sigevent_t __user *)&kevent : NULL, created_timer_id);
++	set_fs(old_fs);
++
++	return ret;
++}
++
++
+ long compat_get_bitmap(unsigned long *mask, compat_ulong_t __user *umask,
+ 		       unsigned long bitmap_size)
+ {
+@@ -810,7 +835,7 @@
+ 	if (sig) {
+ 		ret = sig;
+ 		if (uinfo) {
+-			if (copy_siginfo_to_user32(uinfo, &info))
++			if (compat_copy_siginfo_to_user(uinfo, &info))
+ 				ret = -EFAULT;
+ 		}
+ 	}else {
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/kernel/compat_signal.c CVS2_6_12_PA2/kernel/compat_signal.c
+--- LINUS_2_6_12/kernel/compat_signal.c	1969-12-31 17:00:00.000000000 -0700
++++ CVS2_6_12_PA2/kernel/compat_signal.c	2004-11-03 15:07:38.000000000 -0700
+@@ -0,0 +1,244 @@
++/*
++ *  Copyright (C) 2003 Carlos O'Donell
++ * 
++ *  2003-12-20  Carlos O'Donell
++ *              Copied linux/kernel/compat_signal.c (copy_siginfo_to_user)
++ *              and modified to use compat_siginfo_t for thunking down to
++ *              32-bit userspace from a 64-bit kernel.
++ *              
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or (at
++ * your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful, but
++ * WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
++ * NON INFRINGEMENT.  See the GNU General Public License for more
++ * details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
++ *
++ */
++
++#include <linux/compat_siginfo.h>
++#include <asm/errno.h>
++#include <asm/uaccess.h>
++#include <asm/siginfo.h>
++
++#ifndef HAVE_ARCH_COMPAT_COPY_SIGINFO_TO_USER
++int compat_copy_siginfo_to_user(compat_siginfo_t __user *to, siginfo_t *from)
++{
++	int err;
++	compat_siginfo_t compat_from;	
++
++	if (!access_ok (VERIFY_WRITE, to, sizeof(compat_siginfo_t)))
++		return -EFAULT;
++	
++	/*
++	 * If you change compat_siginfo_t structure *or* siginfo_t, 
++	 * please be sure this code is fixed accordingly.
++	 * It should never copy any pad contained in the structure
++	 * to avoid security leaks, but must copy the generic
++	 * 3 ints plus the relevant union member.
++	 */
++
++	/* Convert structure, don't leak anything in the copy */
++	memset(&compat_from,'\0',sizeof(compat_siginfo_t));
++
++        /* Always copy si_signo, si_errno, and si_code */
++	compat_from.si_signo = (compat_int_t)(from->si_signo);
++	compat_from.si_errno = (compat_int_t)(from->si_errno);
++	/* si_code is only a (short) value, remove kernel bits. */
++	compat_from.si_code = (short)(from->si_code);
++        
++	err = __put_user(compat_from.si_signo, &to->si_signo);
++	err |= __put_user(compat_from.si_errno, &to->si_errno);
++	err |= __put_user(compat_from.si_code, &to->si_code);
++
++        /* siginfo_t came from userspace, so it is the right
++         * size, no need for conversion
++         */        
++	if (from->si_code < 0) {
++		return __copy_to_user(&to->_sifields._pad, 
++                                      &from->_sifields._pad, 
++                                      SI_COMPAT_PAD_SIZE)
++			? -EFAULT : 0;
++        }
++	
++	switch (from->si_code & __SI_MASK) {
++	case __SI_KILL:
++		compat_from.si_pid = (compat_pid_t)(from->si_pid);
++		compat_from.si_uid = (__ARCH_SI_COMPAT_UID_T)(from->si_uid);
++		err |= __put_user(compat_from.si_pid, &to->si_pid);
++		err |= __put_user(compat_from.si_uid, &to->si_uid);
++		break;
++	case __SI_TIMER:
++		compat_from.si_pid = (compat_timer_t)(from->si_tid);
++		compat_from.si_overrun = (compat_int_t)(from->si_overrun);
++		compat_from.si_ptr = (compat_uptr_t)((u64 __force)(from->si_ptr) & 0xffffffffUL);
++		err |= __put_user(compat_from.si_tid, &to->si_tid);
++		err |= __put_user(compat_from.si_overrun, &to->si_overrun);
++		err |= __put_user(compat_from.si_ptr, &to->si_ptr);
++		break;
++	case __SI_POLL:
++		compat_from.si_band = (__ARCH_SI_COMPAT_BAND_T)(from->si_band);
++		compat_from.si_fd = (compat_int_t)(from->si_fd);
++		err |= __put_user(compat_from.si_band, &to->si_band);
++		err |= __put_user(compat_from.si_fd, &to->si_fd);
++		break;
++	case __SI_FAULT:
++		compat_from.si_addr = (compat_uptr_t)((u64 __force)(from->si_addr) & 0xffffffffUL);
++		err |= __put_user(compat_from.si_addr, &to->si_addr);
++#ifdef __ARCH_SI_COMPAT_TRAPNO
++		compat_from.si_trapno = (compat_int_t)(from->si_addr);
++		err |= __put_user(compat_from.si_trapno, &to->si_trapno);
++#endif
++		break;
++	case __SI_CHLD:
++		compat_from.si_pid = (compat_pid_t)(from->si_pid);
++		compat_from.si_uid = (__ARCH_SI_COMPAT_UID_T)(from->si_uid);
++		compat_from.si_status = (compat_int_t)(from->si_status);
++		compat_from.si_utime = (compat_clock_t)(from->si_utime);
++		compat_from.si_stime = (compat_clock_t)(from->si_stime);
++		err |= __put_user(compat_from.si_pid, &to->si_pid);
++		err |= __put_user(compat_from.si_uid, &to->si_uid);
++		err |= __put_user(compat_from.si_status, &to->si_status);
++		err |= __put_user(compat_from.si_utime, &to->si_utime);
++		err |= __put_user(compat_from.si_stime, &to->si_stime);
++		break;
++	case __SI_RT: /* This is not generated by the kernel as of now. */
++	case __SI_MESGQ: /* But this is */
++		compat_from.si_pid = (compat_pid_t)(from->si_pid);
++		compat_from.si_uid = (__ARCH_SI_COMPAT_UID_T)(from->si_uid);
++		compat_from.si_int = (compat_int_t)(from->si_int);
++		compat_from.si_ptr = (compat_uptr_t)((u64 __force)(from->si_ptr) & 0xffffffffUL);
++		err |= __put_user(compat_from.si_pid, &to->si_pid);
++		err |= __put_user(compat_from.si_uid, &to->si_uid);
++		err |= __put_user(compat_from.si_int, &to->si_int);
++		err |= __put_user(compat_from.si_ptr, &to->si_ptr);
++		break;
++	default: /* this is just in case for now ... */
++		compat_from.si_pid = (compat_pid_t)(from->si_pid);
++		compat_from.si_uid = (__ARCH_SI_COMPAT_UID_T)(from->si_uid);
++		err |= __put_user(compat_from.si_pid, &to->si_pid);
++		err |= __put_user(compat_from.si_uid, &to->si_uid);
++		break;
++	}
++	return err;
++}
++#endif
++
++#ifndef HAVE_ARCH_COPY_SIGINFO_FROM_USER
++int compat_copy_siginfo_from_user(siginfo_t *to, compat_siginfo_t __user *from)
++{
++	int err;
++        u64 scratch;
++
++	if (!access_ok (VERIFY_READ, from, sizeof(compat_siginfo_t)))
++		return -EFAULT;
++	
++	/*
++	 * If you change compat_siginfo_t structure *or* siginfo_t, 
++	 * please be sure this code is fixed accordingly.
++	 */
++
++        /* Always copy si_signo, si_errno, and si_code */
++	err = __get_user(to->si_signo, &from->si_signo);
++	err |= __get_user(to->si_errno, &from->si_errno);
++	err |= __get_user(to->si_code, &from->si_code);
++        
++        /* siginfo_t came from userspace, so it is the right
++         * size, no need for conversion
++         */        
++	if (to->si_code < 0) {
++		return __copy_from_user(&to->_sifields._pad, 
++                                        &from->_sifields._pad, 
++                                        SI_COMPAT_PAD_SIZE)
++			? -EFAULT : 0;
++        }
++	
++	switch (to->si_code & __SI_MASK) {
++	case __SI_KILL:
++		err |= __get_user(to->si_pid, &from->si_pid);
++		err |= __get_user(to->si_uid, &from->si_uid);
++		break;
++	case __SI_TIMER:
++		err |= __get_user(to->si_tid, &from->si_tid);
++		err |= __get_user(to->si_overrun, &from->si_overrun);
++		err |= __get_user(scratch, &from->si_ptr);
++                to->si_ptr = (u64 __user*)scratch;                
++		break;
++	case __SI_POLL:
++		err |= __get_user(to->si_band, &from->si_band);
++		err |= __get_user(to->si_fd, &from->si_fd);
++		break;
++	case __SI_FAULT:
++		err |= __get_user(scratch, &from->si_addr);
++                to->si_addr = (u64 __user*)scratch;
++#ifdef __ARCH_SI_COMPAT_TRAPNO
++		err |= __get_user(to->si_trapno, &from->si_trapno);
++#endif
++		break;
++	case __SI_CHLD:
++		err |= __get_user(to->si_pid, &from->si_pid);
++		err |= __get_user(to->si_uid, &from->si_uid);
++		err |= __get_user(to->si_status, &from->si_status);
++		err |= __get_user(to->si_utime, &from->si_utime);
++		err |= __get_user(to->si_stime, &from->si_stime);
++		break;
++	case __SI_RT: /* This is not generated by the kernel as of now. */
++	case __SI_MESGQ: /* But this is */
++		err |= __get_user(to->si_pid, &from->si_pid);
++		err |= __get_user(to->si_uid, &from->si_uid);
++		err |= __get_user(to->si_int, &from->si_int);
++		err |= __get_user(scratch, &from->si_ptr);
++                to->si_ptr = (u64 __user*)scratch;
++		break;
++	default: /* this is just in case for now ... */
++		err |= __get_user(to->si_pid, &from->si_pid);
++		err |= __get_user(to->si_uid, &from->si_uid);
++		break;
++	}
++	return err;
++}
++#endif
++
++#ifndef HAVE_ARCH_COPY_SIGEVENT_FROM_USER
++int compat_copy_sigevent_from_user(sigevent_t *to, compat_sigevent_t __user *from)
++{
++	int err;
++	u64 scratch;
++	
++	/* copy sigval_t sigev_value 
++	 	int_t sival_int		(same)
++	 	uptr_t sival_ptr	(32 vs 64)*/
++	err = __get_user(to->sigev_value.sival_int, 
++	    		 &from->sigev_value.sival_int);
++	err |= __get_user(scratch, &from->sigev_value.sival_ptr);
++	to->sigev_value.sival_ptr = (u64 __user *)scratch;
++	
++	/* copy int_t sigev_signo 	(same)*/
++	err |= __get_user(to->sigev_signo, &from->sigev_signo);
++	
++	/* copy int_t sigev_notify	(same)*/
++	err |= __get_user(to->sigev_notify, &from->sigev_notify);
++
++	/* never copy _sigev_un padding */
++
++	/* copy int_t _tid 		(same),
++	   good_sigevent() uses this value of */
++	err |= __get_user(to->sigev_notify_thread_id, &from->sigev_notify_thread_id);
++	
++	/* XXX: Do not copy these, they aren't used by
++	   anyone. We would need to distinguish the uses of the union.
++	   copy _sigev_thread
++	  	uptr_t _function	(32 vs 64)
++	  	uptr_t _attribute	(32 vs 64)*/
++	
++	return err;
++}
++#endif
++
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/kernel/posix-cpu-timers.c CVS2_6_12_PA2/kernel/posix-cpu-timers.c
+--- LINUS_2_6_12/kernel/posix-cpu-timers.c	2005-06-17 21:22:18.000000000 -0600
++++ CVS2_6_12_PA2/kernel/posix-cpu-timers.c	2005-04-04 14:47:32.000000000 -0600
+@@ -1270,8 +1270,6 @@
+ 	LIST_HEAD(firing);
+ 	struct k_itimer *timer, *next;
+ 
+-	BUG_ON(!irqs_disabled());
+-
+ #define UNEXPIRED(clock) \
+ 		(cputime_eq(tsk->it_##clock##_expires, cputime_zero) || \
+ 		 cputime_lt(clock##_ticks(tsk), tsk->it_##clock##_expires))
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/kernel/ptrace.c CVS2_6_12_PA2/kernel/ptrace.c
+--- LINUS_2_6_12/kernel/ptrace.c	2005-06-17 21:22:18.000000000 -0600
++++ CVS2_6_12_PA2/kernel/ptrace.c	2005-05-08 20:01:00.000000000 -0600
+@@ -344,7 +344,7 @@
+ 	siginfo_t newinfo;
+ 	int error = -ESRCH;
+ 
+-	if (copy_from_user(&newinfo, data, sizeof (siginfo_t)))
++	if (copy_siginfo_from_user(&newinfo, data) != 0)
+ 		return -EFAULT;
+ 
+ 	read_lock(&tasklist_lock);
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/kernel/resource.c CVS2_6_12_PA2/kernel/resource.c
+--- LINUS_2_6_12/kernel/resource.c	2005-06-17 21:22:18.000000000 -0600
++++ CVS2_6_12_PA2/kernel/resource.c	2005-04-21 18:26:08.000000000 -0600
+@@ -181,6 +181,8 @@
+ {
+ 	struct resource *tmp, **p;
+ 
++	BUG_ON(old->child);
++
+ 	p = &old->parent->child;
+ 	for (;;) {
+ 		tmp = *p;
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/kernel/signal.c CVS2_6_12_PA2/kernel/signal.c
+--- LINUS_2_6_12/kernel/signal.c	2005-06-17 21:22:18.000000000 -0600
++++ CVS2_6_12_PA2/kernel/signal.c	2005-05-25 11:12:56.000000000 -0600
+@@ -22,6 +22,7 @@
+ #include <linux/security.h>
+ #include <linux/syscalls.h>
+ #include <linux/ptrace.h>
++#include <linux/compat_siginfo.h>
+ #include <linux/posix-timers.h>
+ #include <linux/signal.h>
+ #include <asm/param.h>
+@@ -2107,17 +2108,35 @@
+ 	return do_sigpending(set, sigsetsize);
+ }
+ 
++#ifndef HAVE_ARCH_COPY_SIGINFO_FROM_USER
++
++int copy_siginfo_from_user(siginfo_t *to, siginfo_t __user *from)
++{
++        if(is_compat_task(current))
++                return compat_copy_siginfo_from_user(to,(compat_siginfo_t __user *)from);
++  
++        return copy_from_user(&to, from, sizeof(siginfo_t));
++}
++
++#endif
++
+ #ifndef HAVE_ARCH_COPY_SIGINFO_TO_USER
+ 
+ int copy_siginfo_to_user(siginfo_t __user *to, siginfo_t *from)
+ {
+ 	int err;
++	
++	/* Use compat_siginfo_t with 32-bit signals */
++	if(is_compat_task(current)){
++		return compat_copy_siginfo_to_user((compat_siginfo_t __user *)to,from);
++	}
+ 
+ 	if (!access_ok (VERIFY_WRITE, to, sizeof(siginfo_t)))
+ 		return -EFAULT;
+ 	if (from->si_code < 0)
+ 		return __copy_to_user(to, from, sizeof(siginfo_t))
+ 			? -EFAULT : 0;
++	
+ 	/*
+ 	 * If you change siginfo_t structure, please be sure
+ 	 * this code is fixed accordingly.
+@@ -2356,7 +2375,7 @@
+ {
+ 	siginfo_t info;
+ 
+-	if (copy_from_user(&info, uinfo, sizeof(siginfo_t)))
++	if (copy_siginfo_from_user(&info, uinfo))
+ 		return -EFAULT;
+ 
+ 	/* Not even root can pretend to send signals from the kernel.
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/kernel/sys.c CVS2_6_12_PA2/kernel/sys.c
+--- LINUS_2_6_12/kernel/sys.c	2005-06-17 21:22:18.000000000 -0600
++++ CVS2_6_12_PA2/kernel/sys.c	2005-05-19 18:05:13.000000000 -0600
+@@ -30,6 +30,7 @@
+ #include <linux/compat.h>
+ #include <linux/syscalls.h>
+ 
++#include <asm/processor.h>
+ #include <asm/uaccess.h>
+ #include <asm/io.h>
+ #include <asm/unistd.h>
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/mm/shmem.c CVS2_6_12_PA2/mm/shmem.c
+--- LINUS_2_6_12/mm/shmem.c	2005-06-17 21:22:18.000000000 -0600
++++ CVS2_6_12_PA2/mm/shmem.c	2005-04-04 14:47:34.000000000 -0600
+@@ -461,7 +461,7 @@
+ 	} while (next);
+ }
+ 
+-static void shmem_truncate(struct inode *inode)
++/* static gcc-3.3 OPD bug - GGG */ void shmem_truncate(struct inode *inode)
+ {
+ 	struct shmem_inode_info *info = SHMEM_I(inode);
+ 	unsigned long idx;
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/sound/drivers/opl3/opl3_lib.c CVS2_6_12_PA2/sound/drivers/opl3/opl3_lib.c
+--- LINUS_2_6_12/sound/drivers/opl3/opl3_lib.c	2005-06-17 21:22:20.000000000 -0600
++++ CVS2_6_12_PA2/sound/drivers/opl3/opl3_lib.c	2005-03-01 09:56:38.000000000 -0700
+@@ -40,7 +40,7 @@
+ static void snd_opl2_command(opl3_t * opl3, unsigned short cmd, unsigned char val)
+ {
+ 	unsigned long flags;
+-	unsigned long port;
++	void __iomem *port;
+ 
+ 	/*
+ 	 * The original 2-OP synth requires a quite long delay
+@@ -51,10 +51,10 @@
+ 
+ 	spin_lock_irqsave(&opl3->reg_lock, flags);
+ 
+-	outb((unsigned char) cmd, port);
++	iowrite8((unsigned char) cmd, port);
+ 	udelay(10);
+ 
+-	outb((unsigned char) val, port + 1);
++	iowrite8((unsigned char) val, port + 1);
+ 	udelay(30);
+ 
+ 	spin_unlock_irqrestore(&opl3->reg_lock, flags);
+@@ -63,7 +63,7 @@
+ static void snd_opl3_command(opl3_t * opl3, unsigned short cmd, unsigned char val)
+ {
+ 	unsigned long flags;
+-	unsigned long port;
++	void __iomem *port;
+ 
+ 	/*
+ 	 * The OPL-3 survives with just two INBs
+@@ -74,13 +74,13 @@
+ 
+ 	spin_lock_irqsave(&opl3->reg_lock, flags);
+ 
+-	outb((unsigned char) cmd, port);
+-	inb(opl3->l_port);
+-	inb(opl3->l_port);
+-
+-	outb((unsigned char) val, port + 1);
+-	inb(opl3->l_port);
+-	inb(opl3->l_port);
++	iowrite8((unsigned char) cmd, port);
++	ioread8(opl3->l_port);
++	ioread8(opl3->l_port);
++
++	iowrite8((unsigned char) val, port + 1);
++	ioread8(opl3->l_port);
++	ioread8(opl3->l_port);
+ 
+ 	spin_unlock_irqrestore(&opl3->reg_lock, flags);
+ }
+@@ -104,7 +104,7 @@
+ 	opl3->command(opl3, OPL3_LEFT | OPL3_REG_TIMER_CONTROL, OPL3_TIMER1_MASK | OPL3_TIMER2_MASK);
+ 	/* Reset the IRQ of the FM chip */
+ 	opl3->command(opl3, OPL3_LEFT | OPL3_REG_TIMER_CONTROL, OPL3_IRQ_RESET);
+-	signature = stat1 = inb(opl3->l_port);	/* Status register */
++	signature = stat1 = ioread8(opl3->l_port);	/* Status register */
+ 	if ((stat1 & 0xe0) != 0x00) {	/* Should be 0x00 */
+ 		snd_printd("OPL3: stat1 = 0x%x\n", stat1);
+ 		return -ENODEV;
+@@ -116,7 +116,7 @@
+ 	/* Now we have to delay at least 80us */
+ 	udelay(200);
+ 	/* Read status after timers have expired */
+-	stat2 = inb(opl3->l_port);
++	stat2 = ioread8(opl3->l_port);
+ 	/* Stop the timers */
+ 	opl3->command(opl3, OPL3_LEFT | OPL3_REG_TIMER_CONTROL, OPL3_TIMER1_MASK | OPL3_TIMER2_MASK);
+ 	/* Reset the IRQ of the FM chip */
+@@ -299,7 +299,7 @@
+ 		return;
+ 
+ 	opl3 = hw->private_data;
+-	status = inb(opl3->l_port);
++	status = ioread8(opl3->l_port);
+ #if 0
+ 	snd_printk("AdLib IRQ status = 0x%x\n", status);
+ #endif
+@@ -333,6 +333,8 @@
+ 		release_resource(opl3->res_r_port);
+ 		kfree_nocheck(opl3->res_r_port);
+ 	}
++	iounmap(opl3->l_port);
++	iounmap(opl3->r_port);
+ 	kfree(opl3);
+ 	return 0;
+ }
+@@ -397,12 +399,13 @@
+ 	return 0;
+ }
+ 
+-int snd_opl3_create(snd_card_t * card,
+-		    unsigned long l_port,
+-		    unsigned long r_port,
+-		    unsigned short hardware,
+-		    int integrated,
+-		    opl3_t ** ropl3)
++static int snd_opl3_create_main(snd_card_t * card,
++				void __iomem *l_port,
++				void __iomem *r_port,
++				struct resource *res_l_port,
++				struct resource *res_r_port,
++				unsigned short hardware,
++				opl3_t ** ropl3)
+ {
+ 	opl3_t *opl3;
+ 	int err;
+@@ -410,21 +413,10 @@
+ 	*ropl3 = NULL;
+ 	if ((err = snd_opl3_new(card, hardware, &opl3)) < 0)
+ 		return err;
+-	if (! integrated) {
+-		if ((opl3->res_l_port = request_region(l_port, 2, "OPL2/3 (left)")) == NULL) {
+-			snd_printk(KERN_ERR "opl3: can't grab left port 0x%lx\n", l_port);
+-			snd_opl3_free(opl3);
+-			return -EBUSY;
+-		}
+-		if (r_port != 0 &&
+-		    (opl3->res_r_port = request_region(r_port, 2, "OPL2/3 (right)")) == NULL) {
+-			snd_printk(KERN_ERR "opl3: can't grab right port 0x%lx\n", r_port);
+-			snd_opl3_free(opl3);
+-			return -EBUSY;
+-		}
+-	}
+ 	opl3->l_port = l_port;
+ 	opl3->r_port = r_port;
++	opl3->res_l_port = res_l_port;
++	opl3->res_r_port = res_r_port;
+ 
+ 	switch (opl3->hardware) {
+ 	/* some hardware doesn't support timers */
+@@ -455,6 +447,67 @@
+ 	return 0;
+ }
+ 
++int snd_opl3_create_mapped(snd_card_t * card,
++			   void __iomem * l_port,
++			   void __iomem * r_port,
++			   unsigned short hardware,
++			   opl3_t ** ropl3)
++{
++	return snd_opl3_create_main(card, l_port, r_port, NULL, NULL, hardware, ropl3);
++}
++
++int snd_opl3_create(snd_card_t * card,
++		    unsigned long l_port,
++		    unsigned long r_port,
++		    unsigned short hardware,
++		    int integrated,
++		    opl3_t ** ropl3) {
++	struct resource *res_l_port = NULL;
++	struct resource *res_r_port = NULL;
++	void __iomem *l_mapped = NULL;
++	void __iomem *r_mapped = NULL;
++	
++	if (! integrated) {
++		if ((res_l_port = request_region(l_port, 2, "OPL2/3 (left)")) == NULL) {
++			snd_printk(KERN_ERR "opl3: can't grab left port 0x%lx\n", l_port);
++			goto fail;
++		}
++		if (r_port != 0 &&
++		    (res_r_port = request_region(r_port, 2, "OPL2/3 (right)")) == NULL) {
++			snd_printk(KERN_ERR "opl3: can't grab right port 0x%lx\n", r_port);
++			goto fail;
++		}
++	}
++	
++	l_mapped = ioport_map(l_port, 2);
++	if (l_mapped == NULL) {
++		snd_printk(KERN_ERR "opl3: failed to map port 0x%lx\n", l_port);
++		goto fail;
++	}
++	r_mapped = ioport_map(r_port, 2);
++	if (r_mapped == NULL) {
++		snd_printk(KERN_ERR "opl3: failed to map port 0x%lx\n", r_port);
++		goto fail;
++	}
++	
++	return snd_opl3_create_main(card, l_mapped, r_mapped, res_l_port, res_r_port, hardware, ropl3);
++
++fail:
++	if (res_l_port) {
++		release_resource(res_l_port);
++		kfree_nocheck(res_l_port);
++	}
++	if (res_r_port) {
++		release_resource(res_r_port);
++		kfree_nocheck(res_r_port);
++	}
++	if (l_mapped)
++		iounmap(l_mapped);
++	if (r_mapped)
++		iounmap(r_mapped);
++	return -EBUSY;
++}
++
+ int snd_opl3_timer_new(opl3_t * opl3, int timer1_dev, int timer2_dev)
+ {
+ 	int err;
+@@ -534,6 +587,7 @@
+ EXPORT_SYMBOL(snd_opl3_new);
+ EXPORT_SYMBOL(snd_opl3_init);
+ EXPORT_SYMBOL(snd_opl3_create);
++EXPORT_SYMBOL(snd_opl3_create_mapped);
+ EXPORT_SYMBOL(snd_opl3_timer_new);
+ EXPORT_SYMBOL(snd_opl3_hwdep_new);
+ 
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/sound/oss/ad1889.c CVS2_6_12_PA2/sound/oss/ad1889.c
+--- LINUS_2_6_12/sound/oss/ad1889.c	2005-06-17 21:22:21.000000000 -0600
++++ CVS2_6_12_PA2/sound/oss/ad1889.c	2005-03-01 16:00:56.000000000 -0700
+@@ -74,7 +74,7 @@
+ 
+ 	DBG("Setting WAV rate to %d\n", rate);
+ 	dev->state[AD_WAV_STATE].dmabuf.rate = rate;
+-	AD1889_WRITEW(dev, AD_DSWAS, rate);
++	AD1889_WRITEW(dev, AD_DS_WAS, rate);
+ 
+ 	/* Cycle the DAC to enable the new rate */
+ 	ac97_codec->codec_write(dev->ac97_codec, AC97_POWER_CONTROL, 0x0200);
+@@ -88,14 +88,14 @@
+ 
+ 	DBG("Setting WAV format to 0x%x\n", fmt);
+ 
+-	tmp = AD1889_READW(ad1889_dev, AD_DSWSMC);
++	tmp = AD1889_READW(ad1889_dev, AD_DS_WSMC);
+ 	if (fmt & AFMT_S16_LE) {
+ 		//tmp |= 0x0100; /* set WA16 */
+ 		tmp |= 0x0300; /* set WA16 stereo */
+ 	} else if (fmt & AFMT_U8) {
+ 		tmp &= ~0x0100; /* clear WA16 */
+ 	} 
+-	AD1889_WRITEW(ad1889_dev, AD_DSWSMC, tmp);
++	AD1889_WRITEW(ad1889_dev, AD_DS_WSMC, tmp);
+ }
+ 
+ static inline void ad1889_set_adc_fmt(ad1889_dev_t *dev, int fmt)
+@@ -104,13 +104,13 @@
+ 
+ 	DBG("Setting ADC format to 0x%x\n", fmt);
+ 
+-	tmp = AD1889_READW(ad1889_dev, AD_DSRAMC);
++	tmp = AD1889_READW(ad1889_dev, AD_DS_RAMC);
+ 	if (fmt & AFMT_S16_LE) {
+ 		tmp |= 0x0100; /* set WA16 */
+ 	} else if (fmt & AFMT_U8) {
+ 		tmp &= ~0x0100; /* clear WA16 */
+ 	} 
+-	AD1889_WRITEW(ad1889_dev, AD_DSRAMC, tmp);
++	AD1889_WRITEW(ad1889_dev, AD_DS_RAMC, tmp);
+ }
+ 
+ static void ad1889_start_wav(ad1889_state_t *state)
+@@ -144,21 +144,21 @@
+ 	    dmabuf->rd_ptr, dmabuf->dma_len);
+ 
+         /* load up the current register set */
+-	AD1889_WRITEL(ad1889_dev, AD_DMAWAVCC, cnt);
+-	AD1889_WRITEL(ad1889_dev, AD_DMAWAVICC, cnt);
+-	AD1889_WRITEL(ad1889_dev, AD_DMAWAVCA, dmabuf->dma_handle);
++	AD1889_WRITEL(ad1889_dev, AD_DMA_WAVCC, cnt);
++	AD1889_WRITEL(ad1889_dev, AD_DMA_WAVICC, cnt);
++	AD1889_WRITEL(ad1889_dev, AD_DMA_WAVCA, dmabuf->dma_handle);
+ 
+ 	/* TODO: for now we load the base registers with the same thing */
+-	AD1889_WRITEL(ad1889_dev, AD_DMAWAVBC, cnt);
+-	AD1889_WRITEL(ad1889_dev, AD_DMAWAVIBC, cnt);
+-	AD1889_WRITEL(ad1889_dev, AD_DMAWAVBA, dmabuf->dma_handle);
++	AD1889_WRITEL(ad1889_dev, AD_DMA_WAVBC, cnt);
++	AD1889_WRITEL(ad1889_dev, AD_DMA_WAVIBC, cnt);
++	AD1889_WRITEL(ad1889_dev, AD_DMA_WAVBA, dmabuf->dma_handle);
+ 
+ 	/* and we're off to the races... */
+-	AD1889_WRITEL(ad1889_dev, AD_DMACHSS, 0x8);
+-	tmp = AD1889_READW(ad1889_dev, AD_DSWSMC);
++	AD1889_WRITEL(ad1889_dev, AD_DMA_CHSS, 0x8);
++	tmp = AD1889_READW(ad1889_dev, AD_DS_WSMC);
+ 	tmp |= 0x0400; /* set WAEN */
+-	AD1889_WRITEW(ad1889_dev, AD_DSWSMC, tmp);
+-	(void) AD1889_READW(ad1889_dev, AD_DSWSMC); /* flush posted PCI write */
++	AD1889_WRITEW(ad1889_dev, AD_DS_WSMC, tmp);
++	(void) AD1889_READW(ad1889_dev, AD_DS_WSMC); /* flush posted PCI write */
+ 
+ 	dmabuf->enable |= DAC_RUNNING;
+ 
+@@ -178,10 +178,10 @@
+ 		u16 tmp;
+ 		unsigned long cnt = dmabuf->dma_len;
+ 
+-		tmp = AD1889_READW(ad1889_dev, AD_DSWSMC);
++		tmp = AD1889_READW(ad1889_dev, AD_DS_WSMC);
+ 		tmp &= ~0x0400; /* clear WAEN */
+-		AD1889_WRITEW(ad1889_dev, AD_DSWSMC, tmp);
+-		(void) AD1889_READW(ad1889_dev, AD_DSWSMC); /* flush posted PCI write */
++		AD1889_WRITEW(ad1889_dev, AD_DS_WSMC, tmp);
++		(void) AD1889_READW(ad1889_dev, AD_DS_WSMC); /* flush posted PCI write */
+ 		pci_unmap_single(ad1889_dev->pci, dmabuf->dma_handle, 
+ 				cnt, PCI_DMA_TODEVICE);
+ 
+@@ -210,7 +210,7 @@
+ 
+ 	spin_lock_irqsave(&state->card->lock, flags);
+ 	
+-	tmp = AD1889_READW(ad1889_dev, AD_DSRAMC);
++	tmp = AD1889_READW(ad1889_dev, AD_DS_RAMC);
+ 	if (start) {
+ 		state->dmabuf.enable |= ADC_RUNNING;
+ 		tmp |= 0x0004; /* set ADEN */
+@@ -218,7 +218,7 @@
+ 		state->dmabuf.enable &= ~ADC_RUNNING;
+ 		tmp &= ~0x0004; /* clear ADEN */
+ 	}
+-	AD1889_WRITEW(ad1889_dev, AD_DSRAMC, tmp);
++	AD1889_WRITEW(ad1889_dev, AD_DS_RAMC, tmp);
+ 
+ 	spin_unlock_irqrestore(&state->card->lock, flags);
+ }
+@@ -301,53 +301,53 @@
+ 	int len, i;
+ 	ad1889_dev_t *dev = data;
+ 	ad1889_reg_t regs[] = {
+-		{ "WSMC", AD_DSWSMC, 16 },
+-		{ "RAMC", AD_DSRAMC, 16 },
+-		{ "WADA", AD_DSWADA, 16 },
+-		{ "SYDA", AD_DSSYDA, 16 },
+-		{ "WAS", AD_DSWAS, 16 },
+-		{ "RES", AD_DSRES, 16 },
+-		{ "CCS", AD_DSCCS, 16 },
+-		{ "ADCBA", AD_DMAADCBA, 32 },
+-		{ "ADCCA", AD_DMAADCCA, 32 },
+-		{ "ADCBC", AD_DMAADCBC, 32 },
+-		{ "ADCCC", AD_DMAADCCC, 32 },
+-		{ "ADCIBC", AD_DMAADCIBC, 32 },
+-		{ "ADCICC", AD_DMAADCICC, 32 },
+-		{ "ADCCTRL", AD_DMAADCCTRL, 16 },
+-		{ "WAVBA", AD_DMAWAVBA, 32 },
+-		{ "WAVCA", AD_DMAWAVCA, 32 },
+-		{ "WAVBC", AD_DMAWAVBC, 32 },
+-		{ "WAVCC", AD_DMAWAVCC, 32 },
+-		{ "WAVIBC", AD_DMAWAVIBC, 32 },
+-		{ "WAVICC", AD_DMAWAVICC, 32 },
+-		{ "WAVCTRL", AD_DMAWAVCTRL, 16 },
+-		{ "DISR", AD_DMADISR, 32 },
+-		{ "CHSS", AD_DMACHSS, 32 },
+-		{ "IPC", AD_GPIOIPC, 16 },
+-		{ "OP", AD_GPIOOP, 16 },
+-		{ "IP", AD_GPIOIP, 16 },
+-		{ "ACIC", AD_ACIC, 16 },
+-		{ "AC97_RESET", 0x100 + AC97_RESET, 16 },
+-		{ "AC97_MASTER_VOL_STEREO", 0x100 + AC97_MASTER_VOL_STEREO, 16 },
+-		{ "AC97_HEADPHONE_VOL", 0x100 + AC97_HEADPHONE_VOL, 16 },
+-		{ "AC97_MASTER_VOL_MONO", 0x100 + AC97_MASTER_VOL_MONO, 16 },
+-		{ "AC97_MASTER_TONE", 0x100 + AC97_MASTER_TONE, 16 },
+-		{ "AC97_PCBEEP_VOL", 0x100 + AC97_PCBEEP_VOL, 16 },
+-		{ "AC97_PHONE_VOL", 0x100 + AC97_PHONE_VOL, 16 },
+-		{ "AC97_MIC_VOL", 0x100 + AC97_MIC_VOL, 16 },
+-		{ "AC97_LINEIN_VOL", 0x100 + AC97_LINEIN_VOL, 16 },
+-		{ "AC97_CD_VOL", 0x100 + AC97_CD_VOL, 16 },
+-		{ "AC97_VIDEO_VOL", 0x100 + AC97_VIDEO_VOL, 16 },
+-		{ "AC97_AUX_VOL", 0x100 + AC97_AUX_VOL, 16 },
+-		{ "AC97_PCMOUT_VOL", 0x100 + AC97_PCMOUT_VOL, 16 },
+-		{ "AC97_RECORD_SELECT", 0x100 + AC97_RECORD_SELECT, 16 },
+-		{ "AC97_RECORD_GAIN", 0x100 + AC97_RECORD_GAIN, 16 },
+-		{ "AC97_RECORD_GAIN_MIC", 0x100 + AC97_RECORD_GAIN_MIC, 16 },
+-		{ "AC97_GENERAL_PURPOSE", 0x100 + AC97_GENERAL_PURPOSE, 16 },
+-		{ "AC97_3D_CONTROL", 0x100 + AC97_3D_CONTROL, 16 },
+-		{ "AC97_MODEM_RATE", 0x100 + AC97_MODEM_RATE, 16 },
+-		{ "AC97_POWER_CONTROL", 0x100 + AC97_POWER_CONTROL, 16 },
++		{ "WSMC", AD_DS_WSMC, 16 },
++		{ "RAMC", AD_DS_RAMC, 16 },
++		{ "WADA", AD_DS_WADA, 16 },
++		{ "SYDA", AD_DS_SYDA, 16 },
++		{ "WAS", AD_DS_WAS, 16 },
++		{ "RES", AD_DS_RES, 16 },
++		{ "CCS", AD_DS_CCS, 16 },
++		{ "ADCBA", AD_DMA_ADCBA, 32 },
++		{ "ADCCA", AD_DMA_ADCCA, 32 },
++		{ "ADCBC", AD_DMA_ADCBC, 32 },
++		{ "ADCCC", AD_DMA_ADCCC, 32 },
++		{ "ADCIBC", AD_DMA_ADCIBC, 32 },
++		{ "ADCICC", AD_DMA_ADCICC, 32 },
++		{ "ADCCTRL", AD_DMA_ADCCTRL, 16 },
++		{ "WAVBA", AD_DMA_WAVBA, 32 },
++		{ "WAVCA", AD_DMA_WAVCA, 32 },
++		{ "WAVBC", AD_DMA_WAVBC, 32 },
++		{ "WAVCC", AD_DMA_WAVCC, 32 },
++		{ "WAVIBC", AD_DMA_WAVIBC, 32 },
++		{ "WAVICC", AD_DMA_WAVICC, 32 },
++		{ "WAVCTRL", AD_DMA_WAVCTRL, 16 },
++		{ "DISR", AD_DMA_DISR, 32 },
++		{ "CHSS", AD_DMA_CHSS, 32 },
++		{ "IPC", AD_GPIO_IPC, 16 },
++		{ "OP", AD_GPIO_OP, 16 },
++		{ "IP", AD_GPIO_IP, 16 },
++		{ "ACIC", AD_AC97_ACIC, 16 },
++		{ "AC97_RESET", AD_AC97_BASE + AC97_RESET, 16 },
++		{ "AC97_MASTER_VOL_STEREO", AD_AC97_BASE + AC97_MASTER_VOL_STEREO, 16 },
++		{ "AC97_HEADPHONE_VOL", AD_AC97_BASE + AC97_HEADPHONE_VOL, 16 },
++		{ "AC97_MASTER_VOL_MONO", AD_AC97_BASE + AC97_MASTER_VOL_MONO, 16 },
++		{ "AC97_MASTER_TONE", AD_AC97_BASE + AC97_MASTER_TONE, 16 },
++		{ "AC97_PCBEEP_VOL", AD_AC97_BASE + AC97_PCBEEP_VOL, 16 },
++		{ "AC97_PHONE_VOL", AD_AC97_BASE + AC97_PHONE_VOL, 16 },
++		{ "AC97_MIC_VOL", AD_AC97_BASE + AC97_MIC_VOL, 16 },
++		{ "AC97_LINEIN_VOL", AD_AC97_BASE + AC97_LINEIN_VOL, 16 },
++		{ "AC97_CD_VOL", AD_AC97_BASE + AC97_CD_VOL, 16 },
++		{ "AC97_VIDEO_VOL", AD_AC97_BASE + AC97_VIDEO_VOL, 16 },
++		{ "AC97_AUX_VOL", AD_AC97_BASE + AC97_AUX_VOL, 16 },
++		{ "AC97_PCMOUT_VOL", AD_AC97_BASE + AC97_PCMOUT_VOL, 16 },
++		{ "AC97_RECORD_SELECT", AD_AC97_BASE + AC97_RECORD_SELECT, 16 },
++		{ "AC97_RECORD_GAIN", AD_AC97_BASE + AC97_RECORD_GAIN, 16 },
++		{ "AC97_RECORD_GAIN_MIC", AD_AC97_BASE + AC97_RECORD_GAIN_MIC, 16 },
++		{ "AC97_GENERAL_PURPOSE", AD_AC97_BASE + AC97_GENERAL_PURPOSE, 16 },
++		{ "AC97_3D_CONTROL", AD_AC97_BASE + AC97_3D_CONTROL, 16 },
++		{ "AC97_MODEM_RATE", AD_AC97_BASE + AC97_MODEM_RATE, 16 },
++		{ "AC97_POWER_CONTROL", AD_AC97_BASE + AC97_POWER_CONTROL, 16 },
+ 		{ NULL }
+ 	};
+ 
+@@ -400,9 +400,9 @@
+ 	}
+ 	
+ 	if (dmabuf->enable & DAC_RUNNING)
+-		offset = le32_to_cpu(AD1889_READL(state->card, AD_DMAWAVBA));
++		offset = le32_to_cpu(AD1889_READL(state->card, AD_DMA_WAVBA));
+ 	else
+-		offset = le32_to_cpu(AD1889_READL(state->card, AD_DMAADCBA));
++		offset = le32_to_cpu(AD1889_READL(state->card, AD_DMA_ADCBA));
+ 
+ 	return (unsigned long)bus_to_virt((unsigned long)offset) - (unsigned long)dmabuf->rawbuf;
+ }
+@@ -639,9 +639,9 @@
+ 		if (val > 5400 && val < 48000)
+ 		{
+ 			if (file->f_mode & FMODE_WRITE)
+-				AD1889_WRITEW(ad1889_dev, AD_DSWAS, val);
++				AD1889_WRITEW(ad1889_dev, AD_DS_WAS, val);
+ 			if (file->f_mode & FMODE_READ)
+-				AD1889_WRITEW(ad1889_dev, AD_DSRES, val);
++				AD1889_WRITEW(ad1889_dev, AD_DS_RES, val);
+ 		}
+ 		return 0;
+ 
+@@ -649,22 +649,22 @@
+ 		if (get_user(val, p))
+ 			return -EFAULT;
+ 		if (file->f_mode & FMODE_READ) {
+-			val = AD1889_READW(ad1889_dev, AD_DSWSMC);
++			val = AD1889_READW(ad1889_dev, AD_DS_WSMC);
+ 			if (val) {
+ 				val |= 0x0200;  /* set WAST */
+ 			} else {
+ 				val &= ~0x0200; /* clear WAST */
+ 			}
+-			AD1889_WRITEW(ad1889_dev, AD_DSWSMC, val);
++			AD1889_WRITEW(ad1889_dev, AD_DS_WSMC, val);
+ 		}
+ 		if (file->f_mode & FMODE_WRITE) {
+-			val = AD1889_READW(ad1889_dev, AD_DSRAMC);
++			val = AD1889_READW(ad1889_dev, AD_DS_RAMC);
+ 			if (val) {
+ 				val |= 0x0002;  /* set ADST */
+ 			} else {
+ 				val &= ~0x0002; /* clear ADST */
+ 			}
+-			AD1889_WRITEW(ad1889_dev, AD_DSRAMC, val);
++			AD1889_WRITEW(ad1889_dev, AD_DS_RAMC, val);
+ 		}
+ 
+ 		return 0;
+@@ -739,7 +739,7 @@
+ 		break;
+ 
+ 	case SOUND_PCM_READ_RATE:
+-		return put_user(AD1889_READW(ad1889_dev, AD_DSWAS), p);
++		return put_user(AD1889_READW(ad1889_dev, AD_DS_WAS), p);
+ 
+ 	case SOUND_PCM_READ_CHANNELS:
+ 	case SOUND_PCM_READ_BITS:
+@@ -769,7 +769,7 @@
+ 
+ 	ad1889_set_wav_rate(ad1889_dev, 48000);
+ 	ad1889_set_wav_fmt(ad1889_dev, AFMT_S16_LE);
+-	AD1889_WRITEW(ad1889_dev, AD_DSWADA, 0x0404); /* attenuation */
++	AD1889_WRITEW(ad1889_dev, AD_DS_WADA, 0x0404); /* attenuation */
+ 	return nonseekable_open(inode, file);
+ }
+ 
+@@ -826,15 +826,15 @@
+ {
+ 	ad1889_dev_t *dev = ac97->private_data;
+ 
+-	//DBG("Writing 0x%x to 0x%lx\n", val, dev->regbase + 0x100 + reg);
+-	AD1889_WRITEW(dev, 0x100 + reg, val);
++	//DBG("Writing 0x%x to 0x%lx\n", val, dev->regbase + AD_AC97_BASE + reg);
++	AD1889_WRITEW(dev, AD_AC97_BASE + reg, val);
+ }
+ 
+ static u16 ad1889_codec_read(struct ac97_codec *ac97, u8 reg)
+ {
+ 	ad1889_dev_t *dev = ac97->private_data;
+-	//DBG("Reading from 0x%lx\n", dev->regbase + 0x100 + reg);
+-	return AD1889_READW(dev, 0x100 + reg);
++	//DBG("Reading from 0x%lx\n", dev->regbase + AD_AC97_BASE + reg);
++	return AD1889_READW(dev, AD_AC97_BASE + reg);
+ }	
+ 
+ static int ad1889_ac97_init(ad1889_dev_t *dev, int id)
+@@ -883,24 +883,24 @@
+ 	int retry = 200;
+ 	ad1889_dev_t *dev = pci_get_drvdata(pcidev);
+ 
+-	AD1889_WRITEW(dev, AD_DSCCS, 0x8000); /* turn on clock */
+-	AD1889_READW(dev, AD_DSCCS); 
++	AD1889_WRITEW(dev, AD_DS_CCS, 0x8000); /* turn on clock */
++	AD1889_READW(dev, AD_DS_CCS); 
+ 
+ 	WAIT_10MS();
+ 
+-	stat = AD1889_READW(dev, AD_ACIC);
++	stat = AD1889_READW(dev, AD_AC97_ACIC);
+ 	stat |= 0x0002;				/* Reset Disable */
+-	AD1889_WRITEW(dev, AD_ACIC, stat);
+-	(void) AD1889_READW(dev, AD_ACIC);	/* flush posted write */
++	AD1889_WRITEW(dev, AD_AC97_ACIC, stat);
++	(void) AD1889_READW(dev, AD_AC97_ACIC);	/* flush posted write */
+ 
+ 	udelay(10);
+ 
+-	stat = AD1889_READW(dev, AD_ACIC);
++	stat = AD1889_READW(dev, AD_AC97_ACIC);
+ 	stat |= 0x0001;				/* Interface Enable */
+-	AD1889_WRITEW(dev, AD_ACIC, stat);
++	AD1889_WRITEW(dev, AD_AC97_ACIC, stat);
+ 
+ 	do {
+-		if (AD1889_READW(dev, AD_ACIC) & 0x8000)	/* Ready */
++		if (AD1889_READW(dev, AD_AC97_ACIC) & 0x8000)	/* Ready */
+ 			break;
+ 		WAIT_10MS();
+ 		retry--;
+@@ -908,16 +908,16 @@
+ 
+ 	if (!retry) {
+ 		printk(KERN_ERR "ad1889_aclink_reset: codec is not ready [0x%x]\n",
+-			    AD1889_READW(dev, AD_ACIC));
++			    AD1889_READW(dev, AD_AC97_ACIC));
+ 		return -EBUSY;
+ 	}
+ 
+ 	/* TODO reset AC97 codec */
+ 	/* TODO set wave/adc pci ctrl status */
+ 
+-	stat = AD1889_READW(dev, AD_ACIC);
++	stat = AD1889_READW(dev, AD_AC97_ACIC);
+ 	stat |= 0x0004;				/* Audio Stream Output Enable */
+-	AD1889_WRITEW(dev, AD_ACIC, stat);
++	AD1889_WRITEW(dev, AD_AC97_ACIC, stat);
+ 	return 0;
+ }
+ 
+@@ -935,10 +935,10 @@
+ 	u32 stat;
+ 	ad1889_dev_t *dev = (ad1889_dev_t *)dev_id;
+ 
+-	stat = AD1889_READL(dev, AD_DMADISR);
++	stat = AD1889_READL(dev, AD_DMA_DISR);
+ 
+ 	/* clear ISR */
+-	AD1889_WRITEL(dev, AD_DMADISR, stat);
++	AD1889_WRITEL(dev, AD_DMA_DISR, stat);
+ 
+ 	if (stat & 0x8) {		/* WAVI */
+ 		DBG("WAV interrupt\n");
+@@ -964,15 +964,15 @@
+ 	u32 tmp32;
+ 
+ 	/* make sure the interrupt bits are setup the way we want */
+-	tmp32 = AD1889_READL(dev, AD_DMAWAVCTRL);
++	tmp32 = AD1889_READL(dev, AD_DMA_WAVCTRL);
+ 	tmp32 &= ~0xff; /* flat dma, no sg, mask out the intr bits */
+ 	tmp32 |= 0x6;  /* intr on count, loop */
+-	AD1889_WRITEL(dev, AD_DMAWAVCTRL, tmp32);
++	AD1889_WRITEL(dev, AD_DMA_WAVCTRL, tmp32);
+ 
+ 	/* unmute... */
+-	tmp16 = AD1889_READW(dev, AD_DSWADA);
++	tmp16 = AD1889_READW(dev, AD_DS_WADA);
+ 	tmp16 &= ~0x8080;
+-	AD1889_WRITEW(dev, AD_DSWADA, tmp16);
++	AD1889_WRITEW(dev, AD_DS_WADA, tmp16);
+ }
+ 
+ static int __devinit ad1889_probe(struct pci_dev *pcidev, const struct pci_device_id *ent)
+@@ -1005,7 +1005,7 @@
+ 		goto out1;
+ 	}
+ 
+-	dev->regbase = ioremap_nocache(bar, AD_DSIOMEMSIZE);
++	dev->regbase = ioremap_nocache(bar, AD_DS_IOMEMSIZE);
+ 	if (!dev->regbase) {
+ 		printk(KERN_ERR DEVNAME ": unable to remap iomem\n");
+ 		goto out2;
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/sound/oss/ad1889.h CVS2_6_12_PA2/sound/oss/ad1889.h
+--- LINUS_2_6_12/sound/oss/ad1889.h	2005-06-17 21:22:21.000000000 -0600
++++ CVS2_6_12_PA2/sound/oss/ad1889.h	2005-03-01 16:00:56.000000000 -0700
+@@ -1,57 +1,58 @@
+ #ifndef _AD1889_H_
+ #define _AD1889_H_
+ 
+-#define AD_DSWSMC	0x00	/* DMA input wave/syn mixer control */
+-#define AD_DSRAMC	0x02	/* DMA output resamp/ADC mixer control */
+-#define AD_DSWADA	0x04	/* DMA input wave attenuation */
+-#define AD_DSSYDA	0x06	/* DMA input syn attentuation */
+-#define AD_DSWAS	0x08	/* wave input sample rate */
+-#define AD_DSRES	0x0a	/* resampler output sample rate */
+-#define AD_DSCCS	0x0c	/* chip control/status */
+-
+-#define AD_DMARESBA	0x40	/* RES base addr */
+-#define AD_DMARESCA	0x44	/* RES current addr */
+-#define AD_DMARESBC	0x48	/* RES base cnt */
+-#define AD_DMARESCC	0x4c	/* RES current count */
+-#define AD_DMAADCBA	0x50	/* ADC */
+-#define AD_DMAADCCA	0x54
+-#define AD_DMAADCBC	0x58
+-#define AD_DMAADCCC	0x5c
+-#define AD_DMASYNBA	0x60	/* SYN */
+-#define AD_DMASYNCA	0x64
+-#define AD_DMASYNBC	0x68
+-#define AD_DMASYNCC	0x6c
+-#define AD_DMAWAVBA	0x70	/* WAV */
+-#define AD_DMAWAVCA	0x74
+-#define AD_DMAWAVBC	0x78
+-#define AD_DMAWAVCC	0x7c
+-#define AD_DMARESICC	0x80	/* RES interrupt current count */
+-#define AD_DMARESIBC	0x84	/* RES interrupt base count */
+-#define AD_DMAADCICC	0x88	/* ADC interrupt current count */
+-#define AD_DMAADCIBC	0x8c	/* ADC interrupt base count */
+-#define AD_DMASYNICC	0x90	/* SYN interrupt current count */
+-#define AD_DMASYNIBC	0x94	/* SYN interrupt base count */
+-#define AD_DMAWAVICC	0x98	/* WAV interrupt current count */
+-#define AD_DMAWAVIBC	0x9c	/* WAV interrupt base count */
+-#define AD_DMARESCTRL	0xa0	/* RES PCI control/status */
+-#define AD_DMAADCCTRL	0xa8	/* ADC PCI control/status */
+-#define AD_DMASYNCTRL	0xb0	/* SYN PCI control/status */
+-#define AD_DMAWAVCTRL	0xb8	/* WAV PCI control/status */
+-#define AD_DMADISR	0xc0	/* PCI DMA intr status */
+-#define AD_DMACHSS	0xc4	/* PCI DMA channel stop status */
+-
+-#define AD_GPIOIPC	0xc8	/* IO port ctrl */
+-#define AD_GPIOOP	0xca	/* IO output status */
+-#define AD_GPIOIP	0xcc	/* IO input status */
++#define AD_DS_WSMC	0x00	/* DMA input wave/syn mixer control */
++#define AD_DS_RAMC	0x02	/* DMA output resamp/ADC mixer control */
++#define AD_DS_WADA	0x04	/* DMA input wave attenuation */
++#define AD_DS_SYDA	0x06	/* DMA input syn attentuation */
++#define AD_DS_WAS	0x08	/* wave input sample rate */
++#define AD_DS_RES	0x0a	/* resampler output sample rate */
++#define AD_DS_CCS	0x0c	/* chip control/status */
++
++#define AD_DMA_RESBA	0x40	/* RES base addr */
++#define AD_DMA_RESCA	0x44	/* RES current addr */
++#define AD_DMA_RESBC	0x48	/* RES base cnt */
++#define AD_DMA_RESCC	0x4c	/* RES current count */
++#define AD_DMA_ADCBA	0x50	/* ADC */
++#define AD_DMA_ADCCA	0x54
++#define AD_DMA_ADCBC	0x58
++#define AD_DMA_ADCCC	0x5c
++#define AD_DMA_SYNBA	0x60	/* SYN */
++#define AD_DMA_SYNCA	0x64
++#define AD_DMA_SYNBC	0x68
++#define AD_DMA_SYNCC	0x6c
++#define AD_DMA_WAVBA	0x70	/* WAV */
++#define AD_DMA_WAVCA	0x74
++#define AD_DMA_WAVBC	0x78
++#define AD_DMA_WAVCC	0x7c
++#define AD_DMA_RESICC	0x80	/* RES interrupt current count */
++#define AD_DMA_RESIBC	0x84	/* RES interrupt base count */
++#define AD_DMA_ADCICC	0x88	/* ADC interrupt current count */
++#define AD_DMA_ADCIBC	0x8c	/* ADC interrupt base count */
++#define AD_DMA_SYNICC	0x90	/* SYN interrupt current count */
++#define AD_DMA_SYNIBC	0x94	/* SYN interrupt base count */
++#define AD_DMA_WAVICC	0x98	/* WAV interrupt current count */
++#define AD_DMA_WAVIBC	0x9c	/* WAV interrupt base count */
++#define AD_DMA_RESCTRL	0xa0	/* RES PCI control/status */
++#define AD_DMA_ADCCTRL	0xa8	/* ADC PCI control/status */
++#define AD_DMA_SYNCTRL	0xb0	/* SYN PCI control/status */
++#define AD_DMA_WAVCTRL	0xb8	/* WAV PCI control/status */
++#define AD_DMA_DISR	0xc0	/* PCI DMA intr status */
++#define AD_DMA_CHSS	0xc4	/* PCI DMA channel stop status */
++
++#define AD_GPIO_IPC	0xc8	/* IO port ctrl */
++#define AD_GPIO_OP	0xca	/* IO output status */
++#define AD_GPIO_IP	0xcc	/* IO input status */
+ 
+ /* AC97 registers, 0x100 - 0x17f; see ac97.h */
+-#define AD_ACIC		0x180	/* AC Link interface ctrl */
++#define AD_AC97_BASE    0x100   /* ac97 base register */
++#define AD_AC97_ACIC	0x180	/* AC Link interface ctrl */
+ 
+ /* OPL3; BAR1 */
+-#define AD_OPLM0AS	0x00	/* Music0 address/status */
+-#define AD_OPLM0DATA	0x01	/* Music0 data */
+-#define AD_OPLM1A	0x02	/* Music1 address */
+-#define AD_OPLM1DATA	0x03	/* Music1 data */
++#define AD_OPL_M0AS	0x00	/* Music0 address/status */
++#define AD_OPL_M0DATA	0x01	/* Music0 data */
++#define AD_OPL_M1A	0x02	/* Music1 address */
++#define AD_OPL_M1DATA	0x03	/* Music1 data */
+ /* 0x04-0x0f reserved */
+ 
+ /* MIDI; BAR2 */
+@@ -59,9 +60,9 @@
+ #define AD_MISC		0x01	/* MIDI status/cmd */
+ /* 0x02-0xff reserved */
+ 
+-#define AD_DSIOMEMSIZE	512
+-#define AD_OPLMEMSIZE	16
+-#define AD_MIDIMEMSIZE	16
++#define AD_DS_IOMEMSIZE	512
++#define AD_OPL_MEMSIZE	16
++#define AD_MIDI_MEMSIZE	16
+ 
+ #define AD_WAV_STATE	0
+ #define AD_ADC_STATE	1
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/sound/parisc/harmony.c CVS2_6_12_PA2/sound/parisc/harmony.c
+--- LINUS_2_6_12/sound/parisc/harmony.c	2005-06-17 21:22:21.000000000 -0600
++++ CVS2_6_12_PA2/sound/parisc/harmony.c	2005-05-31 15:45:55.000000000 -0600
+@@ -197,7 +197,7 @@
+ 	spin_unlock(&h->lock);
+ 
+ 	if (dstatus & HARMONY_DSTATUS_PN) {
+-		if (h->psubs) {
++		if (h->psubs && h->st.playing) {
+ 			spin_lock(&h->lock);
+ 			h->pbuf.buf += h->pbuf.count; /* PAGE_SIZE */
+ 			h->pbuf.buf %= h->pbuf.size; /* MAX_BUFS*PAGE_SIZE */
+@@ -216,7 +216,7 @@
+ 	}
+ 
+ 	if (dstatus & HARMONY_DSTATUS_RN) {
+-		if (h->csubs) {
++		if (h->csubs && h->st.capturing) {
+ 			spin_lock(&h->lock);
+ 			h->cbuf.buf += h->cbuf.count;
+ 			h->cbuf.buf %= h->cbuf.size;
+@@ -316,6 +316,7 @@
+ 	case SNDRV_PCM_TRIGGER_STOP:
+ 		h->st.playing = 0;
+ 		harmony_mute(h);
++		harmony_write(h, HARMONY_PNXTADD, h->sdma.addr);
+ 		harmony_disable_interrupts(h);
+ 		break;
+ 	case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
+@@ -351,8 +352,9 @@
+ 		break;
+         case SNDRV_PCM_TRIGGER_STOP:
+ 		h->st.capturing = 0;
+-                harmony_mute(h);
+-                harmony_disable_interrupts(h);
++		harmony_mute(h);
++		harmony_write(h, HARMONY_RNXTADD, h->gdma.addr);
++		harmony_disable_interrupts(h);
+ 		break;
+         case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
+         case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
+@@ -408,7 +410,8 @@
+ 	
+ 	h->pbuf.size = snd_pcm_lib_buffer_bytes(ss);
+ 	h->pbuf.count = snd_pcm_lib_period_bytes(ss);
+-	h->pbuf.buf = 0;
++	if (h->pbuf.buf >= h->pbuf.size)
++		h->pbuf.buf = 0;
+ 	h->st.playing = 0;
+ 
+ 	h->st.rate = snd_harmony_rate_bits(rt->rate);
+@@ -437,7 +440,8 @@
+ 
+         h->cbuf.size = snd_pcm_lib_buffer_bytes(ss);
+         h->cbuf.count = snd_pcm_lib_period_bytes(ss);
+-        h->cbuf.buf = 0;
++	if (h->cbuf.buf >= h->cbuf.size)
++	        h->cbuf.buf = 0;
+ 	h->st.capturing = 0;
+ 
+         h->st.rate = snd_harmony_rate_bits(rt->rate);
+@@ -712,13 +716,14 @@
+ 
+ 	left = (h->st.gain >> shift_left) & mask;
+ 	right = (h->st.gain >> shift_right) & mask;
+-
+ 	if (invert) {
+ 		left = mask - left;
+ 		right = mask - right;
+ 	}
++	
+ 	ucontrol->value.integer.value[0] = left;
+-	ucontrol->value.integer.value[1] = right;
++	if (shift_left != shift_right)
++		ucontrol->value.integer.value[1] = right;
+ 
+ 	spin_unlock_irqrestore(&h->mixer_lock, flags);
+ 
+@@ -738,22 +743,82 @@
+ 	int old_gain = h->st.gain;
+ 	unsigned long flags;
+ 	
++	spin_lock_irqsave(&h->mixer_lock, flags);
++
+ 	left = ucontrol->value.integer.value[0] & mask;
+-	right = ucontrol->value.integer.value[1] & mask;
+-	if (invert) {
++	if (invert)
+ 		left = mask - left;
+-		right = mask - right;
++	h->st.gain &= ~( (mask << shift_left ) );
++ 	h->st.gain |= (left << shift_left);
++
++	if (shift_left != shift_right) {
++		right = ucontrol->value.integer.value[1] & mask;
++		if (invert)
++			right = mask - right;
++		h->st.gain &= ~( (mask << shift_right) );
++		h->st.gain |= (right << shift_right);
+ 	}
++
++	snd_harmony_set_new_gain(h);
++
++	spin_unlock_irqrestore(&h->mixer_lock, flags);
++	
++	return h->st.gain != old_gain;
++}
++
++static int 
++snd_harmony_captureroute_info(snd_kcontrol_t *kc, 
++			      snd_ctl_elem_info_t *uinfo)
++{
++	static char *texts[2] = { "Line", "Mic" };
++	uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
++	uinfo->count = 1;
++	uinfo->value.enumerated.items = 2;
++	if (uinfo->value.enumerated.item > 1)
++		uinfo->value.enumerated.item = 1;
++	strcpy(uinfo->value.enumerated.name,
++	       texts[uinfo->value.enumerated.item]);
++	return 0;
++}
++
++static int 
++snd_harmony_captureroute_get(snd_kcontrol_t *kc, 
++			     snd_ctl_elem_value_t *ucontrol)
++{
++	harmony_t *h = snd_kcontrol_chip(kc);
++	int value;
++	unsigned long flags;
+ 	
+ 	spin_lock_irqsave(&h->mixer_lock, flags);
+ 
+-	h->st.gain &= ~( (mask << shift_right) | (mask << shift_left) );
+- 	h->st.gain |=  ( (left << shift_left) | (right << shift_right) );
++	value = (h->st.gain >> HARMONY_GAIN_IS_SHIFT) & 1;
++	ucontrol->value.enumerated.item[0] = value;
++
++	spin_unlock_irqrestore(&h->mixer_lock, flags);
++
++	return 0;
++}  
++
++static int 
++snd_harmony_captureroute_put(snd_kcontrol_t *kc, 
++			     snd_ctl_elem_value_t *ucontrol)
++{
++	harmony_t *h = snd_kcontrol_chip(kc);
++	int value;
++	int old_gain = h->st.gain;
++	unsigned long flags;
++	
++	spin_lock_irqsave(&h->mixer_lock, flags);
++
++	value = ucontrol->value.enumerated.item[0] & 1;
++	h->st.gain &= ~HARMONY_GAIN_IS_MASK;
++ 	h->st.gain |= value << HARMONY_GAIN_IS_SHIFT;
++
+ 	snd_harmony_set_new_gain(h);
+ 
+ 	spin_unlock_irqrestore(&h->mixer_lock, flags);
+ 	
+-	return (old_gain - h->st.gain);
++	return h->st.gain != old_gain;
+ }
+ 
+ #define HARMONY_CONTROLS (sizeof(snd_harmony_controls)/ \
+@@ -767,10 +832,25 @@
+                    ((mask) << 16) | ((invert) << 24)) }
+ 
+ static snd_kcontrol_new_t snd_harmony_controls[] = {
+-	HARMONY_VOLUME("Playback Volume", HARMONY_GAIN_LO_SHIFT, 
++	HARMONY_VOLUME("Master Playback Volume", HARMONY_GAIN_LO_SHIFT, 
+ 		       HARMONY_GAIN_RO_SHIFT, HARMONY_GAIN_OUT, 1),
+ 	HARMONY_VOLUME("Capture Volume", HARMONY_GAIN_LI_SHIFT,
+ 		       HARMONY_GAIN_RI_SHIFT, HARMONY_GAIN_IN, 0),
++	HARMONY_VOLUME("Monitor Volume", HARMONY_GAIN_MA_SHIFT,
++		       HARMONY_GAIN_MA_SHIFT, HARMONY_GAIN_MA, 1),
++	{
++		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
++		.name = "Input Route",
++		.info = snd_harmony_captureroute_info,
++		.get = snd_harmony_captureroute_get,
++		.put = snd_harmony_captureroute_put
++	},
++	HARMONY_VOLUME("Internal Speaker Switch", HARMONY_GAIN_SE_SHIFT,
++		       HARMONY_GAIN_SE_SHIFT, 1, 0),
++	HARMONY_VOLUME("Line-Out Switch", HARMONY_GAIN_LE_SHIFT,
++		       HARMONY_GAIN_LE_SHIFT, 1, 0),
++	HARMONY_VOLUME("Headphones Switch", HARMONY_GAIN_HE_SHIFT,
++		       HARMONY_GAIN_HE_SHIFT, 1, 0),
+ };
+ 
+ static void __init 
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/sound/parisc/harmony.h CVS2_6_12_PA2/sound/parisc/harmony.h
+--- LINUS_2_6_12/sound/parisc/harmony.h	2005-06-17 21:22:21.000000000 -0600
++++ CVS2_6_12_PA2/sound/parisc/harmony.h	2005-05-31 15:45:55.000000000 -0600
+@@ -61,7 +61,7 @@
+ #define HARMONY_SIZE       64
+ 
+ #define BUF_SIZE     PAGE_SIZE
+-#define MAX_BUFS     10
++#define MAX_BUFS     16
+ #define MAX_BUF_SIZE (MAX_BUFS * BUF_SIZE)
+ 
+ #define PLAYBACK_BUFS    MAX_BUFS
+@@ -101,28 +101,31 @@
+ #define HARMONY_SS_MONO         0x00000000
+ #define HARMONY_SS_STEREO       0x00000001
+ 
+-#define HARMONY_GAIN_SILENCE    0x00F00FFF
+-#define HARMONY_GAIN_DEFAULT    0x0FF00000
++#define HARMONY_GAIN_SILENCE    0x01F00FFF
++#define HARMONY_GAIN_DEFAULT    0x01F00FFF
+ 
+-#define HARMONY_GAIN_HE_SHIFT   27
++#define HARMONY_GAIN_HE_SHIFT   27 /* headphones enabled */
+ #define HARMONY_GAIN_HE_MASK    (1 << HARMONY_GAIN_HE_SHIFT)
+-#define HARMONY_GAIN_LE_SHIFT   26
++#define HARMONY_GAIN_LE_SHIFT   26 /* line-out enabled */
+ #define HARMONY_GAIN_LE_MASK    (1 << HARMONY_GAIN_LE_SHIFT)
+-#define HARMONY_GAIN_SE_SHIFT   25
++#define HARMONY_GAIN_SE_SHIFT   25 /* internal-speaker enabled */
+ #define HARMONY_GAIN_SE_MASK    (1 << HARMONY_GAIN_SE_SHIFT)
+-#define HARMONY_GAIN_IS_SHIFT   24
++#define HARMONY_GAIN_IS_SHIFT   24 /* input select - 0 for line, 1 for mic */
+ #define HARMONY_GAIN_IS_MASK    (1 << HARMONY_GAIN_IS_SHIFT)
+ 
++/* monitor attenuation */
+ #define HARMONY_GAIN_MA         0x0f
+ #define HARMONY_GAIN_MA_SHIFT   20
+ #define HARMONY_GAIN_MA_MASK    (HARMONY_GAIN_MA << HARMONY_GAIN_MA_SHIFT)
+ 
++/* input gain */
+ #define HARMONY_GAIN_IN         0x0f
+ #define HARMONY_GAIN_LI_SHIFT   16
+ #define HARMONY_GAIN_LI_MASK    (HARMONY_GAIN_IN << HARMONY_GAIN_LI_SHIFT)
+ #define HARMONY_GAIN_RI_SHIFT   12
+ #define HARMONY_GAIN_RI_MASK    (HARMONY_GAIN_IN << HARMONY_GAIN_RI_SHIFT)
+ 
++/* output gain (master volume) */
+ #define HARMONY_GAIN_OUT        0x3f
+ #define HARMONY_GAIN_LO_SHIFT   6
+ #define HARMONY_GAIN_LO_MASK    (HARMONY_GAIN_OUT << HARMONY_GAIN_LO_SHIFT)
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/sound/pci/Kconfig CVS2_6_12_PA2/sound/pci/Kconfig
+--- LINUS_2_6_12/sound/pci/Kconfig	2005-06-17 21:22:21.000000000 -0600
++++ CVS2_6_12_PA2/sound/pci/Kconfig	2005-04-18 19:56:30.000000000 -0600
+@@ -21,6 +21,26 @@
+ 	  To compile this driver as a module, choose M here: the module
+ 	  will be called snd-ali5451.
+ 
++config SND_AD1889
++	tristate "Analog Devices AD1889"
++	depends on SND && PARISC
++	select SND_AC97_CODEC
++	help
++	  Say Y here to include support for the integrated AC97 sound
++	  device on the Hewlett-Packard [BCJ]-xxx0 class PA-RISC
++	  workstations, using the AD1819 codec.
++
++	  To compile this as a module, choose M here: the module
++	  will be called snd-ad1889.
++
++config SND_AD1889_OPL3
++	bool "Analog Devices AD1889 OPL3 Support"
++	depends on SND_AD1889
++	select SND_OPL3_LIB
++	help
++	  Say Y here to include support for the OPL3-compatible interface
++	  provided on an Analog Devices AD1889.
++
+ config SND_ATIIXP
+ 	tristate "ATI IXP AC97 Controller"
+ 	depends on SND
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/sound/pci/Makefile CVS2_6_12_PA2/sound/pci/Makefile
+--- LINUS_2_6_12/sound/pci/Makefile	2005-06-17 21:22:21.000000000 -0600
++++ CVS2_6_12_PA2/sound/pci/Makefile	2005-03-18 06:18:13.000000000 -0700
+@@ -4,6 +4,7 @@
+ #
+ 
+ snd-als4000-objs := als4000.o
++snd-ad1889-objs := ad1889.o
+ snd-atiixp-objs := atiixp.o
+ snd-atiixp-modem-objs := atiixp_modem.o
+ snd-azt3328-objs := azt3328.o
+@@ -26,6 +27,7 @@
+ 
+ # Toplevel Module Dependency
+ obj-$(CONFIG_SND_ALS4000) += snd-als4000.o
++obj-$(CONFIG_SND_AD1889) += snd-ad1889.o
+ obj-$(CONFIG_SND_ATIIXP) += snd-atiixp.o
+ obj-$(CONFIG_SND_ATIIXP_MODEM) += snd-atiixp-modem.o
+ obj-$(CONFIG_SND_AZT3328) += snd-azt3328.o
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/sound/pci/ad1889.c CVS2_6_12_PA2/sound/pci/ad1889.c
+--- LINUS_2_6_12/sound/pci/ad1889.c	1969-12-31 17:00:00.000000000 -0700
++++ CVS2_6_12_PA2/sound/pci/ad1889.c	2005-06-24 19:07:21.000000000 -0600
+@@ -0,0 +1,1209 @@
++/* Analog Devices 1889 audio driver
++ *
++ * This is a driver for the AD1889 PCI audio chipset found
++ * on the HP PA-RISC [BCJ]-xxx0 workstations.
++ *
++ * Copyright (C) 2004-2005, Kyle McMartin <kyle at parisc-linux.org>
++ * Copyright (C) 2005, Thibaut Varene <varenet at parisc-linux.org>
++ *   Based on the OSS AD1889 driver by Randolph Chung <tausq at debian.org>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License, version 2, as
++ * published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ * TODO:
++ *	Fix "clic" when loading/unloading driver
++ *	Native ALSA playback fixup (our fault?)
++ *	note: if one does "while :; do cat /proc/asound/AD1889/AD1889; done"
++ *	during native playback, one will be surprised...
++ *	Fix Ctrl-C bug (take care of CCS?)
++ *	Starting capture during playback glitches the latter, and vice-versa.
++ *	There seem to be some inter effects between playback/capture start/stop.
++ *	Maybe we could use finer grained locking (separate locks for pb/cap).
++ *	Control Interface (mixer) support
++ *	Better AC97 support?
++ *	PM support
++ *	MIDI support
++ *	Game Port support
++ *	SG DMA support (this will need *alot* of work)
++ */
++
++#include <linux/init.h>
++#include <linux/pci.h>
++#include <linux/slab.h>
++#include <linux/interrupt.h>
++#include <linux/compiler.h>
++#include <linux/delay.h>
++
++#include <sound/driver.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/initval.h>
++#include <sound/ac97_codec.h>
++
++#ifdef CONFIG_SND_AD1889_OPL3
++#include <sound/opl3.h>
++#endif
++
++#include <asm/io.h>
++
++#include "ad1889.h"
++
++#define	AD1889_DRVVER	"$Revision: 1.21 $"
++
++MODULE_AUTHOR("Kyle McMartin <kyle at parisc-linux.org>, Thibaut Varene <t-bone at parisc-linux.org>");
++MODULE_DESCRIPTION("Analog Devices AD1889 ALSA sound driver");
++MODULE_LICENSE("GPL");
++MODULE_VERSION(AD1889_DRVVER);
++MODULE_SUPPORTED_DEVICE("{{Analog Devices,AD1889}"); /* XXX */
++
++static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;
++module_param_array(index, int, NULL, 0444);
++MODULE_PARM_DESC(index, "Index value for the AD1889 soundcard.");
++
++static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;
++module_param_array(id, charp, NULL, 0444);
++MODULE_PARM_DESC(id, "ID string for the AD1889 soundcard.");
++
++static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP;
++module_param_array(enable, bool, NULL, 0444);
++MODULE_PARM_DESC(enable, "Enable AD1889 soundcard.");
++
++static char *ac97_quirk[SNDRV_CARDS];
++module_param_array(ac97_quirk, charp, NULL, 0444);
++MODULE_PARM_DESC(ac97_quirk, "AC'97 workaround for strange hardware.");
++
++#define DEVNAME "ad1889"
++#define PFX     DEVNAME ": "
++
++/* let's use the global sound debug interfaces */
++#define ad1889_debug(fmt, arg...) snd_printd(KERN_DEBUG fmt, ## arg)
++
++/* keep track of each hw register */
++struct ad1889_register_state {
++	u16 reg;	/* reg setup */
++	u32 addr;	/* dma base address */
++	u16 rate;	/* sample rate */
++	unsigned long pos;	/* last recorded buffer position */
++	unsigned long buf;	/* buffer # */
++	unsigned long size;	/* buffer size */
++	unsigned long count;	/* period size, aka nb bytes sent in the current DMA transfer */
++};
++
++struct snd_ad1889 {
++	snd_card_t *card;
++	struct pci_dev *pci;
++
++	int irq;
++	unsigned long bar;
++	void __iomem *iobase;
++
++#ifdef CONFIG_SND_AD1889_OPL3
++	unsigned long opl3_bar;
++	void __iomem *opl3_iobase;
++
++	opl3_t *opl3;
++	snd_hwdep_t *opl3hwdep;
++#endif
++
++	ac97_t *ac97;
++	ac97_bus_t *ac97_bus;
++	snd_pcm_t *pcm;
++	snd_info_entry_t *proc;
++
++	struct snd_dma_device dma;
++	snd_pcm_substream_t *psubs;
++	snd_pcm_substream_t *csubs;
++
++	/* playback register state */
++	struct ad1889_register_state wave;
++	struct ad1889_register_state ramc;
++
++	struct {
++		unsigned long wav_intr;
++		unsigned long adc_intr;
++		unsigned long syn_intr;
++		unsigned long res_intr;
++	} stats;
++
++	spinlock_t lock;
++};
++
++static inline u16
++ad1889_readw(struct snd_ad1889 *chip, unsigned reg)
++{
++	return ioread16(chip->iobase + reg);
++}
++
++static inline void
++ad1889_writew(struct snd_ad1889 *chip, unsigned reg, u16 val)
++{
++	iowrite16(val, chip->iobase + reg);
++}
++
++static inline u32
++ad1889_readl(struct snd_ad1889 *chip, unsigned reg)
++{
++	return ioread32(chip->iobase + reg);
++}
++
++static inline void
++ad1889_writel(struct snd_ad1889 *chip, unsigned reg, u32 val)
++{
++	iowrite32(val, chip->iobase + reg);
++}
++
++static inline void
++ad1889_unmute(struct snd_ad1889 *chip)
++{
++	u16 st;
++	st = ad1889_readw(chip, AD_DS_WADA) & 
++		~(AD_DS_WADA_RWAM | AD_DS_WADA_LWAM);
++	ad1889_writew(chip, AD_DS_WADA, st);
++	ad1889_readw(chip, AD_DS_WADA);
++}
++
++static inline void
++ad1889_mute(struct snd_ad1889 *chip)
++{
++	u16 st;
++	st = ad1889_readw(chip, AD_DS_WADA) | AD_DS_WADA_RWAM | AD_DS_WADA_LWAM;
++	ad1889_writew(chip, AD_DS_WADA, st);
++	ad1889_readw(chip, AD_DS_WADA);
++}
++
++static inline void
++ad1889_load_adc_count(struct snd_ad1889 *chip, u32 count)
++{
++	ad1889_writel(chip, AD_DMA_ADCBC, count);
++	ad1889_writel(chip, AD_DMA_ADCCC, count);
++	ad1889_writel(chip, AD_DMA_ADCIB, count);
++	ad1889_writel(chip, AD_DMA_ADCIC, count);
++}	
++
++static inline void
++ad1889_load_adc_address(struct snd_ad1889 *chip, u32 addr)
++{
++	ad1889_writel(chip, AD_DMA_ADCBA, addr);
++	ad1889_writel(chip, AD_DMA_ADCCA, addr);
++}
++
++static inline void
++ad1889_load_wave_count(struct snd_ad1889 *chip, u32 count)
++{
++	ad1889_writel(chip, AD_DMA_WAVBC, count);
++	ad1889_writel(chip, AD_DMA_WAVCC, count);
++	ad1889_writel(chip, AD_DMA_WAVIB, count);
++	ad1889_writel(chip, AD_DMA_WAVIC, count);
++}	
++
++static inline void
++ad1889_load_wave_address(struct snd_ad1889 *chip, u32 addr)
++{
++	ad1889_writel(chip, AD_DMA_WAVBA, addr);
++	ad1889_writel(chip, AD_DMA_WAVCA, addr);
++}
++
++static void
++ad1889_channel_reset(struct snd_ad1889 *chip, unsigned int channel)
++{
++	u16 reg;
++	
++	if (channel & AD_CHAN_WAV) {
++		/* Disable wave channel */
++		reg = ad1889_readw(chip, AD_DS_WSMC) & ~AD_DS_WSMC_WAEN;
++		ad1889_writew(chip, AD_DS_WSMC, reg);
++		
++		/* disable IRQs */
++		reg = ad1889_readw(chip, AD_DMA_WAV);
++		reg &= AD_DMA_IM_DIS;
++		reg &= ~AD_DMA_LOOP;
++		ad1889_writew(chip, AD_DMA_WAV, reg);
++
++		/* clear IRQ counters */
++		ad1889_load_wave_count(chip, 0x0);
++		ad1889_load_wave_address(chip, 0x0);
++
++		/* flush */
++		ad1889_readw(chip, AD_DMA_WAV);
++	}
++	
++	if (channel & AD_CHAN_ADC) {
++		/* Disable ADC channel */
++		reg = ad1889_readw(chip, AD_DS_RAMC) & ~AD_DS_RAMC_ADEN;
++		ad1889_writew(chip, AD_DS_RAMC, reg);
++
++		reg = ad1889_readw(chip, AD_DMA_ADC);
++		reg &= AD_DMA_IM_DIS;
++		reg &= ~AD_DMA_LOOP;
++		ad1889_writew(chip, AD_DMA_ADC, reg);
++	
++		ad1889_load_adc_count(chip, 0x0);
++		ad1889_load_adc_address(chip, 0x0);
++
++		/* flush */
++		ad1889_readw(chip, AD_DMA_ADC);
++	}
++}
++
++static inline u16
++snd_ad1889_ac97_read(ac97_t *ac97, unsigned short reg)
++{
++	struct snd_ad1889 *chip = ac97->private_data;
++	return ad1889_readw(chip, AD_AC97_BASE + reg);
++}
++
++static inline void
++snd_ad1889_ac97_write(ac97_t *ac97,
++		      unsigned short reg,
++		      unsigned short val)
++{
++	struct snd_ad1889 *chip = ac97->private_data;
++	ad1889_writew(chip, AD_AC97_BASE + reg, val);
++}
++
++static int
++snd_ad1889_ac97_ready(struct snd_ad1889 *chip)
++{
++	int retry = 400; /* average needs 352 msec */
++	
++	while (!(ad1889_readw(chip, AD_AC97_ACIC) & AD_AC97_ACIC_ACRDY) 
++	       && --retry)
++		mdelay(1);
++	if (!retry) {
++		snd_printk(KERN_ERR PFX "[%s] Link is not ready.\n",
++		       __FUNCTION__);
++		return -EIO;
++	}
++	ad1889_debug("[%s] ready after %d ms\n", __FUNCTION__,
++	       400 - retry);
++
++	return 0;
++}
++
++static int 
++snd_ad1889_hw_params(snd_pcm_substream_t *substream,
++		     snd_pcm_hw_params_t *hw_params)
++{
++	return snd_pcm_lib_malloc_pages(substream, 
++					params_buffer_bytes(hw_params));
++}
++
++static int
++snd_ad1889_hw_free(snd_pcm_substream_t *substream)
++{
++	return snd_pcm_lib_free_pages(substream);
++}
++
++static snd_pcm_hardware_t snd_ad1889_playback_hw = {
++	.info = SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
++		SNDRV_PCM_INFO_MMAP_VALID |
++		SNDRV_PCM_INFO_BLOCK_TRANSFER,
++	.formats = SNDRV_PCM_FMTBIT_S16_LE,
++	.rates = SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
++	.rate_min = 8000,	/* docs says 7000, but we're lazy */
++	.rate_max = 48000,
++	.channels_min = 1,
++	.channels_max = 2,
++	.buffer_bytes_max = DMA_SIZE,	/* max buffer size in bytes */
++	.period_bytes_min = BUF_SIZE,	/* min size of period in bytes */
++	.period_bytes_max = DMA_SIZE,	/* max size of period in bytes */
++	.periods_min = 1,		/* min nb of periods in buffer */
++	.periods_max = MAX_BUFS,
++	/*.fifo_size = 0,*/
++};
++
++static snd_pcm_hardware_t snd_ad1889_capture_hw = {
++	.info = SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
++		SNDRV_PCM_INFO_MMAP_VALID |
++		SNDRV_PCM_INFO_BLOCK_TRANSFER,
++	.formats = SNDRV_PCM_FMTBIT_S16_LE,
++	.rates = SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
++	.rate_min = 8000,	/* docs says 7000, but we're lazy */
++	.rate_max = 48000,
++	.channels_min = 1,
++	.channels_max = 2,
++	.buffer_bytes_max = DMA_SIZE,	/* max buffer size in bytes */
++	.period_bytes_min = BUF_SIZE,	/* min size of period in bytes */
++	.period_bytes_max = DMA_SIZE,	/* max size of period in bytes */
++	.periods_min = 1,		/* min nb of periods in buffer */
++	.periods_max = MAX_BUFS,
++	/*.fifo_size = 0,*/
++};
++
++static int
++snd_ad1889_playback_open(snd_pcm_substream_t *ss)
++{
++	struct snd_ad1889 *chip = snd_pcm_substream_chip(ss);
++	snd_pcm_runtime_t *rt = ss->runtime;
++
++	chip->psubs = ss;
++	rt->hw = snd_ad1889_playback_hw;
++
++	return 0;
++}
++
++static int
++snd_ad1889_capture_open(snd_pcm_substream_t *ss)
++{
++	struct snd_ad1889 *chip = snd_pcm_substream_chip(ss);
++	snd_pcm_runtime_t *rt = ss->runtime;
++
++	chip->csubs = ss;
++	rt->hw = snd_ad1889_capture_hw;
++
++	return 0;
++}
++
++static int
++snd_ad1889_playback_close(snd_pcm_substream_t *ss)
++{
++	struct snd_ad1889 *chip = snd_pcm_substream_chip(ss);
++	chip->psubs = NULL;
++	return 0;
++}
++
++static int
++snd_ad1889_capture_close(snd_pcm_substream_t *ss)
++{
++	struct snd_ad1889 *chip = snd_pcm_substream_chip(ss);
++	chip->csubs = NULL;
++	return 0;
++}
++
++static int
++snd_ad1889_playback_prepare(snd_pcm_substream_t *ss)
++{
++	struct snd_ad1889 *chip = snd_pcm_substream_chip(ss);
++	snd_pcm_runtime_t *rt = ss->runtime;
++	unsigned int size = snd_pcm_lib_buffer_bytes(ss);
++	unsigned int count = snd_pcm_lib_period_bytes(ss);
++	u16 reg;
++
++	ad1889_channel_reset(chip, AD_CHAN_WAV);
++
++	reg = ad1889_readw(chip, AD_DS_WSMC);
++	
++	/* Mask out 16-bit / Stereo */
++	reg &= ~(AD_DS_WSMC_WA16 | AD_DS_WSMC_WAST);
++
++	if (snd_pcm_format_width(rt->format) == 16)
++		reg |= AD_DS_WSMC_WA16;
++
++	if (rt->channels > 1)
++		reg |= AD_DS_WSMC_WAST;
++
++	/* let's make sure we don't clobber ourselves */
++	spin_lock_irq(&chip->lock);
++	
++	chip->wave.size = size;
++	chip->wave.count = count;
++	chip->wave.reg = reg;
++	chip->wave.buf = 0;
++	chip->wave.rate = rt->rate;
++	chip->wave.addr = rt->dma_addr;
++
++	ad1889_writew(chip, AD_DS_WSMC, chip->wave.reg);
++	
++	/* Set sample rates on the codec */
++	ad1889_writew(chip, AD_DS_WAS, chip->wave.rate);
++
++	/* Set up DMA */
++	ad1889_load_wave_address(chip, chip->wave.addr);
++	ad1889_load_wave_count(chip, chip->wave.count);
++
++	/* writes flush */
++	ad1889_readw(chip, AD_DS_WSMC);
++	
++	spin_unlock_irq(&chip->lock);
++	
++	ad1889_debug("prepare: chip->wave.addr = 0x%x, chip->wave.count = %u, "
++		     "chip->wave.size = %u\n", chip->wave.addr,
++		     count, size);
++	return 0;
++}
++
++static int
++snd_ad1889_capture_prepare(snd_pcm_substream_t *ss)
++{
++	struct snd_ad1889 *chip = snd_pcm_substream_chip(ss);
++	snd_pcm_runtime_t *rt = ss->runtime;
++	unsigned int size = snd_pcm_lib_buffer_bytes(ss);
++	unsigned int count = snd_pcm_lib_period_bytes(ss);
++	u16 reg;
++
++	ad1889_channel_reset(chip, AD_CHAN_ADC);
++	
++	reg = ad1889_readw(chip, AD_DS_RAMC);
++
++	/* Mask out 16-bit / Stereo */
++	reg &= ~(AD_DS_RAMC_AD16 | AD_DS_RAMC_ADST);
++
++	if (snd_pcm_format_width(rt->format) == 16)
++		reg |= AD_DS_RAMC_AD16;
++
++	if (rt->channels > 1)
++		reg |= AD_DS_RAMC_ADST;
++
++	/* let's make sure we don't clobber ourselves */
++	spin_lock_irq(&chip->lock);
++	
++	chip->ramc.size = size;
++	chip->ramc.count = count;
++	chip->ramc.reg = reg;
++	chip->ramc.buf = 0;
++	chip->ramc.rate = rt->rate;
++	chip->ramc.addr = rt->dma_addr;
++
++	ad1889_writew(chip, AD_DS_RAMC, chip->ramc.reg);
++
++	/* Set up DMA */
++	ad1889_load_adc_address(chip, chip->ramc.addr);
++	ad1889_load_adc_count(chip, chip->ramc.count);
++
++	/* writes flush */
++	ad1889_readw(chip, AD_DS_RAMC);
++	
++	spin_unlock_irq(&chip->lock);
++	
++	ad1889_debug("prepare: chip->ramc.addr = 0x%x, chip->ramc.count = %u, "
++		     "chip->ramc.size = %u\n", chip->ramc.addr,
++		     count, size);
++	return 0;
++}
++
++/* this is called in atomic context with IRQ disabled.
++   Must be as fast as possible and not sleep.
++   DMA should be *triggered* by this call.
++   The WSMC "WAEN" bit triggers DMA Wave On/Off */
++static int
++snd_ad1889_playback_trigger(snd_pcm_substream_t *ss, int cmd)
++{
++	u16 wsmc;
++	struct snd_ad1889 *chip = snd_pcm_substream_chip(ss);
++	
++	wsmc = ad1889_readw(chip, AD_DS_WSMC);
++
++	switch (cmd) {
++	case SNDRV_PCM_TRIGGER_START:
++		/* enable DMA loop & interrupts */
++		ad1889_writew(chip, AD_DMA_WAV, AD_DMA_LOOP | AD_DMA_IM_CNT);
++		wsmc |= AD_DS_WSMC_WAEN;
++		ad1889_writel(chip, AD_DMA_CHSS, AD_DMA_CHSS_WAVS); /* 1 to clear */
++		ad1889_unmute(chip);
++		break;
++	case SNDRV_PCM_TRIGGER_STOP:
++		ad1889_mute(chip);
++		wsmc &= ~AD_DS_WSMC_WAEN;
++		break;
++	default:
++		snd_BUG();
++		return -EINVAL;
++	}
++	
++	chip->wave.reg = wsmc;
++	ad1889_writew(chip, AD_DS_WSMC, wsmc);	
++	ad1889_readw(chip, AD_DS_WSMC);	/* flush */
++
++	/* reset the chip when STOP - will disable IRQs */
++	if (cmd == SNDRV_PCM_TRIGGER_STOP)
++		ad1889_channel_reset(chip, AD_CHAN_WAV);
++
++	return 0;
++}
++
++/* this is called in atomic context with IRQ disabled.
++   Must be as fast as possible and not sleep */
++static int
++snd_ad1889_capture_trigger(snd_pcm_substream_t *ss, int cmd)
++{
++	u16 ramc;
++	struct snd_ad1889 *chip = snd_pcm_substream_chip(ss);
++
++	ramc = ad1889_readw(chip, AD_DS_RAMC);
++	
++	switch (cmd) {
++	case SNDRV_PCM_TRIGGER_START:
++		/* enable DMA loop & interrupts */
++		ad1889_writew(chip, AD_DMA_ADC, AD_DMA_LOOP | AD_DMA_IM_CNT);
++		ramc |= AD_DS_RAMC_ADEN;
++		ad1889_writel(chip, AD_DMA_CHSS, AD_DMA_CHSS_ADCS); /* 1 to clear */
++		break;
++	case SNDRV_PCM_TRIGGER_STOP:
++		ramc &= ~AD_DS_RAMC_ADEN;
++		break;
++	default:
++		return -EINVAL;
++	}
++	
++	chip->ramc.reg = ramc;
++	ad1889_writew(chip, AD_DS_RAMC, ramc);	
++	ad1889_readw(chip, AD_DS_RAMC);	/* flush */
++	
++	/* reset the chip when STOP - will disable IRQs */
++	if (cmd == SNDRV_PCM_TRIGGER_STOP)
++		ad1889_channel_reset(chip, AD_CHAN_ADC);
++		
++	return 0;
++}
++
++/* Called in atomic context with IRQ disabled */
++static snd_pcm_uframes_t
++snd_ad1889_playback_pointer(snd_pcm_substream_t *ss)
++{
++	size_t ptr = 0;
++	struct snd_ad1889 *chip = snd_pcm_substream_chip(ss);
++
++	if (unlikely(!(chip->wave.reg & AD_DS_WSMC_WAEN)))
++		return 0;
++
++	ptr = ad1889_readl(chip, AD_DMA_WAVCA);
++	ptr -= chip->wave.addr;
++	
++	snd_assert((ptr > 0) && (ptr < chip->wave.size), return 0);
++	
++        return bytes_to_frames(ss->runtime, ptr);
++}
++
++/* Called in atomic context with IRQ disabled */
++static snd_pcm_uframes_t
++snd_ad1889_capture_pointer(snd_pcm_substream_t *ss)
++{
++	size_t ptr = 0;
++	struct snd_ad1889 *chip = snd_pcm_substream_chip(ss);
++
++	if (unlikely(!(chip->ramc.reg & AD_DS_RAMC_ADEN)))
++		return 0;
++
++	ptr = ad1889_readl(chip, AD_DMA_ADCCA);
++	ptr -= chip->ramc.addr;
++
++	snd_assert((ptr > 0) && (ptr < chip->ramc.size), return 0);
++	
++        return bytes_to_frames(ss->runtime, ptr);
++}
++
++static snd_pcm_ops_t snd_ad1889_playback_ops = {
++	.open = snd_ad1889_playback_open,
++	.close = snd_ad1889_playback_close,
++	.ioctl = snd_pcm_lib_ioctl,
++	.hw_params = snd_ad1889_hw_params,
++	.hw_free = snd_ad1889_hw_free,
++	.prepare = snd_ad1889_playback_prepare,
++	.trigger = snd_ad1889_playback_trigger,
++	.pointer = snd_ad1889_playback_pointer, 
++};
++
++static snd_pcm_ops_t snd_ad1889_capture_ops = {
++	.open = snd_ad1889_capture_open,
++	.close = snd_ad1889_capture_close,
++	.ioctl = snd_pcm_lib_ioctl,
++	.hw_params = snd_ad1889_hw_params,
++	.hw_free = snd_ad1889_hw_free,
++	.prepare = snd_ad1889_capture_prepare,
++	.trigger = snd_ad1889_capture_trigger,
++	.pointer = snd_ad1889_capture_pointer, 
++};
++
++static irqreturn_t
++snd_ad1889_interrupt(int irq, 
++		     void *dev_id, 
++		     struct pt_regs *regs)
++{
++	unsigned long st;
++	unsigned long next;
++	struct snd_ad1889 *chip = dev_id;
++
++	st = ad1889_readl(chip, AD_DMA_DISR);
++
++	/* clear ISR */
++	ad1889_writel(chip, AD_DMA_DISR, st);
++
++	st &= AD_INTR_MASK;
++
++	if (unlikely(!st))
++		return IRQ_NONE;
++
++	if (st & (AD_DMA_DISR_PMAI|AD_DMA_DISR_PTAI)) {
++		ad1889_debug("Unexpected master or target abort interrupt!\n");
++	}
++
++	if (chip->pcm && (st & AD_DMA_DISR_WAVI) && chip->psubs) {
++		spin_lock(&chip->lock);
++
++		chip->stats.wav_intr++;
++
++		chip->wave.buf++;
++
++		/* calculate the current position: we get interrupts everytime
++		   the buffer empties, thus every wave.count bytes transfered */
++		chip->wave.pos += chip->wave.count;
++		chip->wave.pos %= chip->wave.size;
++
++		/* the next buffer will thus be current position + wave.count
++		   bytes away */
++		next = chip->wave.pos + chip->wave.count;
++		next %= chip->wave.size;
++		
++		/* Load new DMA parameters (aka "the next chunk" in Base
++		   registers: upon next interrupt, they'll be automatically
++		   loaded in the Current registers, and we'll end up here
++		   preparing the new ones. Since "count" never gets modified
++		   elsewhere than in _prepare, we don't need to rewrite it. */
++		ad1889_writel(chip, AD_DMA_WAVBA, chip->wave.addr + next);
++		
++		ad1889_readl(chip, AD_DMA_WAVBA); /* flush all those writes */
++
++		spin_unlock(&chip->lock);
++
++		snd_pcm_period_elapsed(chip->psubs);
++#if 0
++		ad1889_debug("chip->wave.pos = %d, chip->wave.count = %d, "
++			     "chip->wave.size = %d\n", chip->wave.pos,
++			     chip->wave.count, chip->wave.size);
++		ad1889_debug("chip->wave.addr (0x%lx) + next (0x%lx) = 0x%lx\n",
++			     chip->wave.addr, next, chip->wave.addr + next);
++#endif		
++	}
++
++	if (chip->pcm && (st & AD_DMA_DISR_ADCI) && chip->csubs) {
++		spin_lock(&chip->lock);
++		
++		chip->stats.adc_intr++;
++
++		chip->ramc.buf++;
++		
++		/* calculate the current position: we get interrupts everytime
++		   the buffer empties, thus every wave.count bytes transfered */
++		chip->ramc.pos += chip->ramc.count;
++		chip->ramc.pos %= chip->ramc.size;
++
++		/* the next buffer will thus be current position + wave.count
++		   bytes away */
++		next = chip->ramc.pos + chip->ramc.count;
++		next %= chip->ramc.size;
++
++		/* Load new DMA parameters (aka "the next chunk" in Base
++		   registers: upon next interrupt, they'll be automatically
++		   loaded in the Current registers, and we'll end up here
++		   preparing the new ones. Since "count" never gets modified
++		   elsewhere than in _prepare, we don't need to rewrite it. */
++		ad1889_writel(chip, AD_DMA_ADCBA, chip->ramc.addr + next);
++		
++		ad1889_readl(chip, AD_DMA_ADCBA); /* flush all those writes */
++
++		spin_unlock(&chip->lock);
++		
++		snd_pcm_period_elapsed(chip->csubs);
++#if 0
++		ad1889_debug("chip->ramc.pos = %d, chip->ramc.count = %d, "
++			     "chip->ramc.size = %d\n", chip->ramc.pos,
++			     chip->ramc.count, chip->ramc.size);
++		ad1889_debug("chip->ramc.addr (0x%lx) + next (0x%lx) = 0x%lx\n",
++			     chip->ramc.addr, next, chip->ramc.addr + next);
++#endif		
++	}
++
++	/* XXX under some circumstances the DISR flushing may not happen */
++
++	return IRQ_HANDLED;
++}
++
++static void 
++snd_ad1889_pcm_free(snd_pcm_t *pcm)
++{
++	struct snd_ad1889 *chip = pcm->private_data;
++	chip->pcm = NULL;
++	snd_pcm_lib_preallocate_free_for_all(pcm);
++}
++
++static int __devinit
++snd_ad1889_pcm_init(struct snd_ad1889 *chip, int device, snd_pcm_t **rpcm)
++{
++	int err;
++	snd_pcm_t *pcm;
++
++	if (rpcm)
++		*rpcm = NULL;
++
++	err = snd_pcm_new(chip->card, chip->card->driver, device, 1, 1, &pcm);
++	if (err < 0)
++		return err;
++
++	snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, 
++			&snd_ad1889_playback_ops);
++	snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE,
++			&snd_ad1889_capture_ops);
++
++	pcm->private_data = chip;
++	pcm->private_free = snd_ad1889_pcm_free;
++	pcm->info_flags = 0;
++	strcpy(pcm->name, chip->card->shortname);
++	
++	chip->pcm = pcm;
++	chip->psubs = NULL;
++	chip->csubs = NULL;
++
++	chip->dma.dev = &chip->pci->dev;
++	chip->dma.type = SNDRV_DMA_TYPE_DEV;
++
++	err = snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV,
++						snd_dma_pci_data(chip->pci),
++						DMA_SIZE, DMA_SIZE);
++
++	if (err < 0) {
++		snd_printk(KERN_ERR PFX "buffer allocation error: %d\n", err);
++		return err;
++	}
++	
++	if (rpcm)
++		*rpcm = pcm;
++	
++	return 0;
++}
++
++static void
++snd_ad1889_proc_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer)
++{
++	struct snd_ad1889 *chip = entry->private_data;
++	u16 reg;
++	int tmp;
++
++	reg = ad1889_readw(chip, AD_DS_WSMC);
++	snd_iprintf(buffer, "Wave output: %s\n",
++			(reg & AD_DS_WSMC_WAEN) ? "enabled" : "disabled");
++	snd_iprintf(buffer, "Wave Channels: %s\n",
++			(reg & AD_DS_WSMC_WAST) ? "stereo" : "mono");
++	snd_iprintf(buffer, "Wave Quality: %d-bit linear\n",
++			(reg & AD_DS_WSMC_WA16) ? 16 : 8);
++	
++	/* WARQ is at offset 12 */
++	tmp = (reg & AD_DS_WSMC_WARQ) ?
++			(((reg & AD_DS_WSMC_WARQ >> 12) & 0x01) ? 12 : 18) : 4;
++	tmp /= (reg & AD_DS_WSMC_WAST) ? 2 : 1;
++	
++	snd_iprintf(buffer, "Wave FIFO: %d %s words\n\n", tmp,
++			(reg & AD_DS_WSMC_WAST) ? "stereo" : "mono");
++				
++	
++	snd_iprintf(buffer, "Synthesis output: %s\n\n",
++			reg & AD_DS_WSMC_SYEN ? "enabled" : "disabled");
++	
++	reg = ad1889_readw(chip, AD_DS_RAMC);
++	snd_iprintf(buffer, "ADC input: %s\n",
++			(reg & AD_DS_RAMC_ADEN) ? "enabled" : "disabled");
++	snd_iprintf(buffer, "ADC Channels: %s\n",
++			(reg & AD_DS_RAMC_ADST) ? "stereo" : "mono");
++	snd_iprintf(buffer, "ADC Quality: %d-bit linear\n",
++			(reg & AD_DS_RAMC_AD16) ? 16 : 8);
++	
++	/* ACRQ is at offset 4 */
++	tmp = (reg & AD_DS_RAMC_ACRQ) ?
++			(((reg & AD_DS_RAMC_ACRQ >> 4) & 0x01) ? 12 : 18) : 4;
++	tmp /= (reg & AD_DS_RAMC_ADST) ? 2 : 1;
++	
++	snd_iprintf(buffer, "ADC FIFO: %d %s words\n\n", tmp,
++			(reg & AD_DS_RAMC_ADST) ? "stereo" : "mono");
++	
++	snd_iprintf(buffer, "Resampler input: %s\n",
++			reg & AD_DS_RAMC_REEN ? "enabled" : "disabled");
++			
++	/* RERQ is at offset 12 */
++	tmp = (reg & AD_DS_RAMC_RERQ) ?
++			(((reg & AD_DS_RAMC_RERQ >> 12) & 0x01) ? 12 : 18) : 4;
++	tmp /= (reg & AD_DS_RAMC_ADST) ? 2 : 1;
++	
++	snd_iprintf(buffer, "Resampler FIFO: %d %s words\n\n", tmp,
++			(reg & AD_DS_WSMC_WAST) ? "stereo" : "mono");
++				
++	
++	/* doc says LSB represents -1.5dB, but the max value (-94.5dB)
++	suggests that LSB is -3dB, which is more coherent with the logarithmic
++	nature of the dB scale */
++	reg = ad1889_readw(chip, AD_DS_WADA);
++	snd_iprintf(buffer, "Left: %s, -%d dB\n",
++			(reg & AD_DS_WADA_LWAM) ? "mute" : "unmute",
++			((reg & AD_DS_WADA_LWAA) >> 8) * 3);
++	reg = ad1889_readw(chip, AD_DS_WADA);
++	snd_iprintf(buffer, "Right: %s, -%d dB\n",
++			(reg & AD_DS_WADA_RWAM) ? "mute" : "unmute",
++			((reg & AD_DS_WADA_RWAA) >> 8) * 3);
++	
++	reg = ad1889_readw(chip, AD_DS_WAS);
++	snd_iprintf(buffer, "Wave samplerate: %u Hz\n", reg);
++	reg = ad1889_readw(chip, AD_DS_RES);
++	snd_iprintf(buffer, "Resampler samplerate: %u Hz\n", reg);
++}
++
++static void __devinit
++snd_ad1889_proc_init(struct snd_ad1889 *chip)
++{
++	snd_info_entry_t *entry;
++
++	if (!snd_card_proc_new(chip->card, chip->card->driver, &entry))
++		snd_info_set_text_ops(entry, chip, 1024, snd_ad1889_proc_read);
++}
++
++static struct ac97_quirk ac97_quirks[] = {
++	{	/* FIXME: which codec? */
++		.vendor = 0x11d4,	/* AD */
++		.device = 0x1889,	/* AD1889 */
++		.name = "AD1889",
++		.type = AC97_TUNE_HP_ONLY
++	},
++	{ } /* terminator */
++};
++
++static void __devinit
++snd_ad1889_ac97_xinit(struct snd_ad1889 *chip)
++{
++	u16 reg;
++
++	reg = ad1889_readw(chip, AD_AC97_ACIC);
++	reg |= AD_AC97_ACIC_ACRD;		/* Reset Disable */
++	ad1889_writew(chip, AD_AC97_ACIC, reg);
++	ad1889_readw(chip, AD_AC97_ACIC);	/* flush posted write */
++	udelay(10);
++	/* Interface Enable */
++	reg |= AD_AC97_ACIC_ACIE;
++	ad1889_writew(chip, AD_AC97_ACIC, reg);
++	
++	snd_ad1889_ac97_ready(chip);
++
++	/* Audio Stream Output | Variable Sample Rate Mode */
++	reg = ad1889_readw(chip, AD_AC97_ACIC);
++	reg |= AD_AC97_ACIC_ASOE | AD_AC97_ACIC_VSRM;
++	ad1889_writew(chip, AD_AC97_ACIC, reg);
++	ad1889_readw(chip, AD_AC97_ACIC); /* flush posted write */
++
++}
++
++static void
++snd_ad1889_ac97_bus_free(ac97_bus_t *bus)
++{
++	struct snd_ad1889 *chip = bus->private_data;
++	chip->ac97_bus = NULL;
++}
++
++static void
++snd_ad1889_ac97_free(ac97_t *ac97)
++{
++	struct snd_ad1889 *chip = ac97->private_data;
++	chip->ac97 = NULL;
++}
++
++static int __devinit
++snd_ad1889_ac97_init(struct snd_ad1889 *chip, const char *quirk_override)
++{
++	int err;
++	ac97_template_t ac97;
++	static ac97_bus_ops_t ops = {
++		.write = snd_ad1889_ac97_write,
++		.read = snd_ad1889_ac97_read,
++	};
++
++	/* doing that here, it works. */
++	snd_ad1889_ac97_xinit(chip);
++
++	err = snd_ac97_bus(chip->card, 0, &ops, chip, &chip->ac97_bus);
++	if (err < 0)
++		return err;
++	
++	chip->ac97_bus->private_free = snd_ad1889_ac97_bus_free;
++
++	memset(&ac97, 0, sizeof(ac97));
++	ac97.private_data = chip;
++	ac97.private_free = snd_ad1889_ac97_free;
++	ac97.pci = chip->pci;
++
++	err = snd_ac97_mixer(chip->ac97_bus, &ac97, &chip->ac97);
++	if (err < 0)
++		return err;
++		
++	snd_ac97_tune_hardware(chip->ac97, ac97_quirks, quirk_override);
++	
++	return 0;
++}
++
++static int
++snd_ad1889_free(struct snd_ad1889 *chip)
++{
++	if (chip->irq < 0)
++		goto skip_hw;
++
++	spin_lock_irq(&chip->lock);
++
++	ad1889_mute(chip);
++
++	/* Turn off interrupt on count and zero DMA registers */
++	ad1889_channel_reset(chip, AD_CHAN_WAV | AD_CHAN_ADC);
++
++        /* clear DISR. If we don't, we'd better jump off the Eiffel Tower */
++	ad1889_writel(chip, AD_DMA_DISR, AD_DMA_DISR_PTAI | AD_DMA_DISR_PMAI);
++	ad1889_readl(chip, AD_DMA_DISR);	/* flush, dammit! */
++
++	spin_unlock_irq(&chip->lock);
++
++	synchronize_irq(chip->irq);
++	
++	if (chip->irq >= 0)
++		free_irq(chip->irq, (void*)chip);
++
++skip_hw:
++	if (chip->iobase)
++		iounmap(chip->iobase);
++
++#ifdef CONFIG_SND_AD1889_OPL3
++	if (chip->opl3_iobase)
++		iounmap(chip->opl3_iobase);
++#endif
++	
++	pci_release_regions(chip->pci);
++	pci_disable_device(chip->pci);
++
++	kfree(chip);
++	return 0;
++}
++
++static inline int
++snd_ad1889_dev_free(snd_device_t *device) 
++{
++	struct snd_ad1889 *chip = device->device_data;
++	return snd_ad1889_free(chip);
++}
++
++static int __devinit
++snd_ad1889_init(struct snd_ad1889 *chip) 
++{
++	ad1889_writew(chip, AD_DS_CCS, AD_DS_CCS_CLKEN); /* turn on clock */
++	ad1889_readw(chip, AD_DS_CCS); 	/* flush posted write */
++
++	mdelay(10);
++
++	/* enable Master and Target abort interrupts */
++	ad1889_writel(chip, AD_DMA_DISR, AD_DMA_DISR_PMAE | AD_DMA_DISR_PTAE);
++
++	return 0;
++}
++
++static int __devinit
++snd_ad1889_create(snd_card_t *card,
++		  struct pci_dev *pci,
++		  struct snd_ad1889 **rchip)
++{
++	int err;
++
++	struct snd_ad1889 *chip;
++	static snd_device_ops_t ops = {
++		.dev_free = snd_ad1889_dev_free,
++	};
++
++	*rchip = NULL;
++
++	if ((err = pci_enable_device(pci)) < 0)
++		return err;
++	
++	/* check PCI availability (32bit DMA) */
++	if (pci_set_dma_mask(pci, 0xffffffff) < 0 ||
++	    pci_set_consistent_dma_mask(pci, 0xffffffff) < 0) {
++		printk(KERN_ERR PFX "error setting 32-bit DMA mask.\n");
++		pci_disable_device(pci);
++		return -ENXIO;
++	}
++
++	/* allocate chip specific data with zero-filled memory */
++	if ((chip = kcalloc(1, sizeof(*chip), GFP_KERNEL)) == NULL) {
++		pci_disable_device(pci);
++		return -ENOMEM;
++	}
++
++	chip->card = card;
++	card->private_data = chip;
++	chip->pci = pci;
++	chip->irq = -1;
++
++	/* (1) PCI resource allocation */
++	if ((err = pci_request_regions(pci, card->driver)) < 0)
++		goto free_and_ret;
++
++	chip->bar = pci_resource_start(pci, 0);
++	chip->iobase = ioremap_nocache(chip->bar, pci_resource_len(pci, 0));
++	if (chip->iobase == NULL) {
++		printk(KERN_ERR PFX "unable to reserve region.\n");
++		err = -EBUSY;
++		goto free_and_ret;
++	}
++	
++	pci_set_master(pci);
++
++	spin_lock_init(&chip->lock);	/* only now can we call ad1889_free */
++
++#ifdef CONFIG_SND_AD1889_OPL3
++	chip->opl3_bar = pci_resource_start(pci, 1);
++	chip->opl3_iobase = ioremap_nocache(chip->opl3_bar, 
++					   pci_resource_len(pci, 1));
++	if (chip->opl3_iobase == NULL) {
++		printk(KERN_ERR PFX "unable to reserve region.\n");
++		snd_ad1889_free(chip);
++		return -EBUSY;
++	}
++#endif
++
++	if (request_irq(pci->irq, snd_ad1889_interrupt,
++			SA_INTERRUPT|SA_SHIRQ, card->driver, (void*)chip)) {
++		printk(KERN_ERR PFX "cannot obtain IRQ %d\n", pci->irq);
++		snd_ad1889_free(chip);
++		return -EBUSY;
++	}
++
++	chip->irq = pci->irq;
++	synchronize_irq(chip->irq);
++
++	/* (2) initialization of the chip hardware */
++	if ((err = snd_ad1889_init(chip)) < 0) {
++		snd_ad1889_free(chip);
++		return err;
++	}
++
++	if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) {
++		snd_ad1889_free(chip);
++		return err;
++	}
++
++	snd_card_set_dev(card, &pci->dev);
++
++	*rchip = chip;
++
++	return 0;
++
++free_and_ret:
++	if (chip)
++		kfree(chip);
++	pci_disable_device(pci);
++
++	return err;
++}
++
++static int __devinit
++snd_ad1889_probe(struct pci_dev *pci,
++		 const struct pci_device_id *pci_id)
++{
++	int err;
++	static int devno;
++	snd_card_t *card;
++	struct snd_ad1889 *chip;
++
++	/* (1) */
++	if (devno >= SNDRV_CARDS)
++		return -ENODEV;
++	if (!enable[devno]) {
++		devno++;
++		return -ENOENT;
++	}
++
++	/* (2) */
++	card = snd_card_new(index[devno], id[devno], THIS_MODULE, 0);
++	/* XXX REVISIT: we can probably allocate chip in this call */
++	if (card == NULL)
++		return -ENOMEM;
++
++	strcpy(card->driver, "AD1889");
++	strcpy(card->shortname, "Analog Devices AD1889");
++
++	/* (3) */
++	err = snd_ad1889_create(card, pci, &chip);
++	if (err < 0)
++		goto free_and_ret;
++
++	/* (4) */
++	sprintf(card->longname, "%s at 0x%lx irq %i",
++		card->shortname, chip->bar, chip->irq);
++
++	/* (5) */
++	/* register AC97 mixer */
++	err = snd_ad1889_ac97_init(chip, ac97_quirk[devno]);
++	if (err < 0)
++		goto free_and_ret;
++	
++#ifdef CONFIG_SND_AD1889_OPL3
++	err = snd_opl3_create_mapped(card, chip->opl3_iobase,
++				     chip->opl3_iobase + 2, OPL3_HW_OPL3,
++				     &chip->opl3);
++	if (err) {
++		printk(KERN_ERR PFX "failed to create opl3\n");
++		goto free_and_ret;
++	}
++
++	err = snd_opl3_hwdep_new(chip->opl3, 0, 0, &chip->opl3hwdep);
++	if (err) {
++		printk(KERN_ERR PFX "failed to create opl3hwdep\n");
++		goto free_and_ret;
++	}
++#endif
++
++	err = snd_ad1889_pcm_init(chip, 0, NULL);
++	if (err < 0)
++		goto free_and_ret;
++
++	/* register proc interface */
++	snd_ad1889_proc_init(chip);
++
++	/* (6) */
++	err = snd_card_register(card);
++	if (err < 0)
++		goto free_and_ret;
++
++	/* (7) */
++	pci_set_drvdata(pci, card);
++
++	devno++;
++	return 0;
++
++free_and_ret:
++	snd_card_free(card);
++	return err;
++}
++
++static void __devexit
++snd_ad1889_remove(struct pci_dev *pci)
++{
++	snd_card_free(pci_get_drvdata(pci));
++	pci_set_drvdata(pci, NULL);
++}
++
++static struct pci_device_id snd_ad1889_ids[] = {
++	{ PCI_DEVICE(PCI_VENDOR_ID_ANALOG_DEVICES, PCI_DEVICE_ID_AD1889JS) },
++	{ 0, },
++};
++MODULE_DEVICE_TABLE(pci, snd_ad1889_ids);
++
++static struct pci_driver ad1889_pci = {
++        .name = "AD1889 Audio",
++        .id_table = snd_ad1889_ids,
++        .probe = snd_ad1889_probe,
++        .remove = __devexit_p(snd_ad1889_remove),
++};
++
++static int __init
++alsa_ad1889_init(void)
++{
++	return pci_register_driver(&ad1889_pci);
++}
++
++static void __exit
++alsa_ad1889_fini(void)
++{
++	pci_unregister_driver(&ad1889_pci);
++}
++
++module_init(alsa_ad1889_init);
++module_exit(alsa_ad1889_fini);
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_12/sound/pci/ad1889.h CVS2_6_12_PA2/sound/pci/ad1889.h
+--- LINUS_2_6_12/sound/pci/ad1889.h	1969-12-31 17:00:00.000000000 -0700
++++ CVS2_6_12_PA2/sound/pci/ad1889.h	2005-06-24 19:08:25.000000000 -0600
+@@ -0,0 +1,187 @@
++/* Analog Devices 1889 audio driver
++ * Copyright (C) 2004, Kyle McMartin <kyle at parisc-linux.org>
++ */
++
++#ifndef __AD1889_H__
++#define __AD1889_H__
++
++#define AD_DS_WSMC	0x00 /* wave/synthesis channel mixer control */
++#define  AD_DS_WSMC_SYEN 0x0004 /* synthesis channel enable */
++#define  AD_DS_WSMC_SYRQ 0x0030 /* synth. fifo request point */
++#define  AD_DS_WSMC_WA16 0x0100 /* wave channel 16bit select */
++#define  AD_DS_WSMC_WAST 0x0200 /* wave channel stereo select */
++#define  AD_DS_WSMC_WAEN 0x0400 /* wave channel enable */
++#define  AD_DS_WSMC_WARQ 0x3000 /* wave fifo request point */
++
++#define AD_DS_RAMC	0x02 /* resampler/ADC channel mixer control */
++#define  AD_DS_RAMC_AD16 0x0001 /* ADC channel 16bit select */
++#define  AD_DS_RAMC_ADST 0x0002 /* ADC channel stereo select */
++#define  AD_DS_RAMC_ADEN 0x0004 /* ADC channel enable */
++#define  AD_DS_RAMC_ACRQ 0x0030 /* ADC fifo request point */
++#define  AD_DS_RAMC_REEN 0x0400 /* resampler channel enable */
++#define  AD_DS_RAMC_RERQ 0x3000 /* res. fifo request point */
++
++#define AD_DS_WADA	0x04 /* wave channel mix attenuation */
++#define  AD_DS_WADA_RWAM 0x0080 /* right wave mute */
++#define  AD_DS_WADA_RWAA 0x001f /* right wave attenuation */
++#define  AD_DS_WADA_LWAM 0x8000 /* left wave mute */
++#define  AD_DS_WADA_LWAA 0x3e00 /* left wave attenuation */
++
++#define AD_DS_SYDA	0x06 /* synthesis channel mix attenuation */
++#define  AD_DS_SYDA_RSYM 0x0080 /* right synthesis mute */
++#define  AD_DS_SYDA_RSYA 0x001f /* right synthesis attenuation */
++#define  AD_DS_SYDA_LSYM 0x8000 /* left synthesis mute */
++#define  AD_DS_SYDA_LSYA 0x3e00 /* left synthesis attenuation */
++
++#define AD_DS_WAS	0x08 /* wave channel sample rate */
++#define  AD_DS_WAS_WAS   0xffff /* sample rate mask */
++
++#define AD_DS_RES	0x0a /* resampler channel sample rate */
++#define  AD_DS_RES_RES   0xffff /* sample rate mask */
++
++#define AD_DS_CCS	0x0c /* chip control/status */
++#define  AD_DS_CCS_ADO   0x0001 /* ADC channel overflow */
++#define  AD_DS_CCS_REO   0x0002 /* resampler channel overflow */
++#define  AD_DS_CCS_SYU   0x0004 /* synthesis channel underflow */
++#define  AD_DS_CCS_WAU   0x0008 /* wave channel underflow */
++/* bits 4 -> 7, 9, 11 -> 14 reserved */
++#define  AD_DS_CCS_XTD   0x0100 /* xtd delay control (4096 clock cycles) */
++#define  AD_DS_CCS_PDALL 0x0400 /* power */
++#define  AD_DS_CCS_CLKEN 0x8000 /* clock */
++
++#define AD_DMA_RESBA	0x40 /* RES base address */
++#define AD_DMA_RESCA	0x44 /* RES current address */
++#define AD_DMA_RESBC	0x48 /* RES base count */
++#define AD_DMA_RESCC	0x4c /* RES current count */
++
++#define AD_DMA_ADCBA	0x50 /* ADC base address */
++#define AD_DMA_ADCCA	0x54 /* ADC current address */
++#define AD_DMA_ADCBC	0x58 /* ADC base count */
++#define AD_DMA_ADCCC	0x5c /* ADC current count */
++
++#define AD_DMA_SYNBA	0x60 /* synth base address */
++#define AD_DMA_SYNCA	0x64 /* synth current address */
++#define AD_DMA_SYNBC	0x68 /* synth base count */
++#define AD_DMA_SYNCC	0x6c /* synth current count */
++
++#define AD_DMA_WAVBA	0x70 /* wave base address */
++#define AD_DMA_WAVCA	0x74 /* wave current address */
++#define AD_DMA_WAVBC	0x78 /* wave base count */
++#define AD_DMA_WAVCC	0x7c /* wave current count */
++
++#define AD_DMA_RESIC	0x80 /* RES dma interrupt current byte count */
++#define AD_DMA_RESIB	0x84 /* RES dma interrupt base byte count */
++
++#define AD_DMA_ADCIC	0x88 /* ADC dma interrupt current byte count */
++#define AD_DMA_ADCIB	0x8c /* ADC dma interrupt base byte count */
++
++#define AD_DMA_SYNIC	0x90 /* synth dma interrupt current byte count */
++#define AD_DMA_SYNIB	0x94 /* synth dma interrupt base byte count */
++
++#define AD_DMA_WAVIC	0x98 /* wave dma interrupt current byte count */
++#define AD_DMA_WAVIB	0x9c /* wave dma interrupt base byte count */
++
++#define  AD_DMA_ICC	0xffffff /* current byte count mask */
++#define  AD_DMA_IBC 0xffffff /* base byte count mask */
++/* bits 24 -> 31 reserved */
++
++/* 4 bytes pad */
++#define AD_DMA_ADC	0xa8	/* ADC      dma control and status */
++#define AD_DMA_SYNTH	0xb0	/* Synth    dma control and status */
++#define AD_DMA_WAV	0xb8	/* wave     dma control and status */
++#define AD_DMA_RES	0xa0	/* Resample dma control and status */
++
++#define  AD_DMA_SGDE	0x0001 /* SGD mode enable */
++#define  AD_DMA_LOOP	0x0002 /* loop enable */
++#define  AD_DMA_IM	0x000c /* interrupt mode mask */
++#define  AD_DMA_IM_DIS	(~AD_DMA_IM)	/* disable */
++#define  AD_DMA_IM_CNT	0x0004 /* interrupt on count */
++#define  AD_DMA_IM_SGD	0x0008 /* interrupt on SGD flag */
++#define  AD_DMA_IM_EOL	0x000c /* interrupt on End of Linked List */
++#define  AD_DMA_SGDS	0x0030 /* SGD status */
++#define  AD_DMA_SFLG	0x0040 /* SGD flag */
++#define  AD_DMA_EOL		0x0080 /* SGD end of list */
++/* bits 8 -> 15 reserved */
++
++#define AD_DMA_DISR	0xc0 /* dma interrupt status */
++#define  AD_DMA_DISR_RESI 0x000001 /* resampler channel interrupt */
++#define  AD_DMA_DISR_ADCI 0x000002 /* ADC channel interrupt */
++#define  AD_DMA_DISR_SYNI 0x000004 /* synthesis channel interrupt */
++#define  AD_DMA_DISR_WAVI 0x000008 /* wave channel interrupt */
++/* bits 4, 5 reserved */
++#define  AD_DMA_DISR_SEPS 0x000040 /* serial eeprom status */
++/* bits 7 -> 13 reserved */
++#define  AD_DMA_DISR_PMAI 0x004000 /* pci master abort interrupt */
++#define  AD_DMA_DISR_PTAI 0x008000 /* pci target abort interrupt */
++#define  AD_DMA_DISR_PTAE 0x010000 /* pci target abort interrupt enable */
++#define  AD_DMA_DISR_PMAE 0x020000 /* pci master abort interrupt enable */
++/* bits 19 -> 31 reserved */
++
++/* interrupt mask */
++#define  AD_INTR_MASK     (AD_DMA_DISR_RESI|AD_DMA_DISR_ADCI| \
++                           AD_DMA_DISR_WAVI|AD_DMA_DISR_SYNI| \
++                           AD_DMA_DISR_PMAI|AD_DMA_DISR_PTAI)
++
++#define AD_DMA_CHSS	0xc4 /* dma channel stop status */
++#define  AD_DMA_CHSS_RESS 0x000001 /* resampler channel stopped */
++#define  AD_DMA_CHSS_ADCS 0x000002 /* ADC channel stopped */
++#define  AD_DMA_CHSS_SYNS 0x000004 /* synthesis channel stopped */
++#define  AD_DMA_CHSS_WAVS 0x000008 /* wave channel stopped */
++
++#define AD_GPIO_IPC	0xc8	/* gpio port control */
++#define AD_GPIO_OP	0xca	/* gpio output port status */
++#define AD_GPIO_IP	0xcc	/* gpio  input port status */
++
++#define AD_AC97_BASE	0x100	/* ac97 base register */
++
++#define AD_AC97_RESET   0x100   /* reset */
++
++#define AD_AC97_PWR_CTL	0x126	/* == AC97_POWERDOWN */
++#define  AD_AC97_PWR_ADC 0x0001 /* ADC ready status */
++#define  AD_AC97_PWR_DAC 0x0002 /* DAC ready status */
++#define  AD_AC97_PWR_PR0 0x0100 /* PR0 (ADC) powerdown */
++#define  AD_AC97_PWR_PR1 0x0200 /* PR1 (DAC) powerdown */
++
++#define AD_MISC_CTL     0x176 /* misc control */
++#define  AD_MISC_CTL_DACZ   0x8000 /* set for zero fill, unset for repeat */
++#define  AD_MISC_CTL_ARSR   0x0001 /* set for SR1, unset for SR0 */
++#define  AD_MISC_CTL_ALSR   0x0100
++#define  AD_MISC_CTL_DLSR   0x0400
++#define  AD_MISC_CTL_DRSR   0x0004
++
++#define AD_AC97_SR0     0x178 /* sample rate 0, 0xbb80 == 48K */
++#define  AD_AC97_SR0_48K 0xbb80 /* 48KHz */
++#define AD_AC97_SR1     0x17a /* sample rate 1 */
++
++#define AD_AC97_ACIC	0x180 /* ac97 codec interface control */
++#define  AD_AC97_ACIC_ACIE  0x0001 /* analog codec interface enable */
++#define  AD_AC97_ACIC_ACRD  0x0002 /* analog codec reset disable */
++#define  AD_AC97_ACIC_ASOE  0x0004 /* audio stream output enable */
++#define  AD_AC97_ACIC_VSRM  0x0008 /* variable sample rate mode */
++#define  AD_AC97_ACIC_FSDH  0x0100 /* force SDATA_OUT high */
++#define  AD_AC97_ACIC_FSYH  0x0200 /* force sync high */
++#define  AD_AC97_ACIC_ACRDY 0x8000 /* analog codec ready status */
++/* bits 10 -> 14 reserved */
++
++
++#define AD_DS_MEMSIZE	512
++#define AD_OPL_MEMSIZE	16
++#define AD_MIDI_MEMSIZE	16
++
++#define AD_WAV_STATE	0
++#define AD_ADC_STATE	1
++#define AD_MAX_STATES	2
++
++/* "<ggg> T-Bone: parisc IOMMU can start DMA at any address.
++   But the IOMMU can only map at page size granularity."
++   This affects in particular .period_bytes_min */
++#define BUF_SIZE        PAGE_SIZE
++#define MAX_BUFS        32
++#define DMA_SIZE	(MAX_BUFS*BUF_SIZE)
++
++#define AD_CHAN_WAV	0x0001
++#define AD_CHAN_ADC	0x0002
++#define AD_CHAN_RES	0x0004
++#define AD_CHAN_SYN	0x0008
++
++#endif /* __AD1889_H__ */




More information about the Kernel-svn-changes mailing list