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