[kernel] r5174 - in people/waldi/linux-2.6: . debian debian/arch debian/arch/alpha debian/arch/amd64 debian/arch/arm debian/arch/hppa debian/arch/i386 debian/arch/ia64 debian/arch/m68k debian/arch/powerpc debian/arch/s390 debian/arch/sparc debian/bin debian/patches-arch debian/patches-debian debian/patches-debian/series debian/templates
Bastian Blank
waldi at costa.debian.org
Mon Jan 2 19:33:12 UTC 2006
Author: waldi
Date: Mon Jan 2 19:32:22 2006
New Revision: 5174
Added:
people/waldi/linux-2.6/debian/arch/hppa/config.parisc
people/waldi/linux-2.6/debian/arch/hppa/config.parisc-smp
people/waldi/linux-2.6/debian/arch/hppa/config.parisc64
people/waldi/linux-2.6/debian/arch/hppa/config.parisc64-smp
people/waldi/linux-2.6/debian/arch/i386/config.486
people/waldi/linux-2.6/debian/bin/kconfig.ml (contents, props changed)
people/waldi/linux-2.6/debian/patches-debian/powerpc-mv643xx-spinlock-fix-support.patch
people/waldi/linux-2.6/debian/patches-debian/powerpc-prep-utah-ide-interrupt.patch
people/waldi/linux-2.6/debian/patches-debian/series/2.6.14+2.6.15-rc7-0experimental.1
people/waldi/linux-2.6/debian/patches-debian/series/2.6.14+2.6.15-rc7-0experimental.2
people/waldi/linux-2.6/debian/patches-debian/sparc64-atyfb-xl-gr-final.patch
Removed:
people/waldi/linux-2.6/debian/arch/hppa/config.32
people/waldi/linux-2.6/debian/arch/hppa/config.32-smp
people/waldi/linux-2.6/debian/arch/hppa/config.64
people/waldi/linux-2.6/debian/arch/hppa/config.64-smp
people/waldi/linux-2.6/debian/arch/i386/config.386
people/waldi/linux-2.6/debian/patches-debian/modular-ide.patch
people/waldi/linux-2.6/debian/patches-debian/powerpc64-audit_sysctl-build.patch
people/waldi/linux-2.6/debian/patches-debian/series/2.6.14+2.6.15-rc4-0experimental.1
people/waldi/linux-2.6/debian/patches-debian/sparc64-atyfb-xl-gr.patch
Modified:
people/waldi/linux-2.6/ (props changed)
people/waldi/linux-2.6/debian/README.build
people/waldi/linux-2.6/debian/arch/alpha/config
people/waldi/linux-2.6/debian/arch/alpha/defines
people/waldi/linux-2.6/debian/arch/amd64/config
people/waldi/linux-2.6/debian/arch/arm/config
people/waldi/linux-2.6/debian/arch/arm/config.footbridge
people/waldi/linux-2.6/debian/arch/arm/config.ixp4xx
people/waldi/linux-2.6/debian/arch/arm/config.rpc
people/waldi/linux-2.6/debian/arch/arm/config.s3c2410
people/waldi/linux-2.6/debian/arch/arm/defines
people/waldi/linux-2.6/debian/arch/config
people/waldi/linux-2.6/debian/arch/hppa/config
people/waldi/linux-2.6/debian/arch/hppa/defines
people/waldi/linux-2.6/debian/arch/i386/config
people/waldi/linux-2.6/debian/arch/i386/config.686
people/waldi/linux-2.6/debian/arch/i386/config.686-smp
people/waldi/linux-2.6/debian/arch/i386/config.k7
people/waldi/linux-2.6/debian/arch/i386/config.k7-smp
people/waldi/linux-2.6/debian/arch/i386/defines
people/waldi/linux-2.6/debian/arch/ia64/config
people/waldi/linux-2.6/debian/arch/m68k/config.amiga
people/waldi/linux-2.6/debian/arch/m68k/config.atari
people/waldi/linux-2.6/debian/arch/m68k/config.mac
people/waldi/linux-2.6/debian/arch/m68k/config.q40
people/waldi/linux-2.6/debian/arch/powerpc/config
people/waldi/linux-2.6/debian/arch/powerpc/config.apus
people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc
people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc-miboot
people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc-smp
people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc64
people/waldi/linux-2.6/debian/arch/powerpc/defines
people/waldi/linux-2.6/debian/arch/s390/config
people/waldi/linux-2.6/debian/arch/s390/config.s390
people/waldi/linux-2.6/debian/arch/s390/config.s390-tape
people/waldi/linux-2.6/debian/arch/s390/config.s390x
people/waldi/linux-2.6/debian/arch/sparc/config
people/waldi/linux-2.6/debian/arch/sparc/config.sparc64
people/waldi/linux-2.6/debian/arch/sparc/config.sparc64-smp
people/waldi/linux-2.6/debian/bin/gencontrol.py
people/waldi/linux-2.6/debian/changelog
people/waldi/linux-2.6/debian/patches-arch/hppa.diff
people/waldi/linux-2.6/debian/patches-debian/drivers-scsi-megaraid_splitup.patch
people/waldi/linux-2.6/debian/patches-debian/powerpc-apus.patch
people/waldi/linux-2.6/debian/patches-debian/powerpc-build-links.patch
people/waldi/linux-2.6/debian/patches-debian/powerpc-mv643xx-hotplug-support.patch
people/waldi/linux-2.6/debian/rules.real
people/waldi/linux-2.6/debian/templates/control.extra.in
people/waldi/linux-2.6/debian/templates/control.source.in
Log:
Merge /dists/trunk/linux-2.6.
Modified: people/waldi/linux-2.6/debian/README.build
==============================================================================
--- people/waldi/linux-2.6/debian/README.build (original)
+++ people/waldi/linux-2.6/debian/README.build Mon Jan 2 19:32:22 2006
@@ -15,4 +15,9 @@
options globally (across *all* architectures), for the particular arch
that you're working on, for the particular sub-arch you're working on,
or just for that particular flavour.
-
+6) split-config sometimes create duplicates that are treated wrongly.
+Run trunk/scripts/split-config <arch dir> <flavour> if you made changes
+to your local subarch only.
+Run trunk/scripts/split-config -f <arch dir> <flavour> if you made
+changes either globally generally for your arch (and make sure you agree
+with others if doing so and comitting your changes to SVN).
Modified: people/waldi/linux-2.6/debian/arch/alpha/config
==============================================================================
--- people/waldi/linux-2.6/debian/arch/alpha/config (original)
+++ people/waldi/linux-2.6/debian/arch/alpha/config Mon Jan 2 19:32:22 2006
@@ -208,9 +208,7 @@
CONFIG_BLK_DEV_IDECD=m
CONFIG_BLK_DEV_IDETAPE=m
CONFIG_BLK_DEV_IDEFLOPPY=m
-CONFIG_IDE_TASK_IOCTL=y
CONFIG_IDE_GENERIC=m
-# CONFIG_BLK_DEV_IDEPNP is not set
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
# CONFIG_BLK_DEV_OFFBOARD is not set
@@ -1132,8 +1130,6 @@
CONFIG_VIDEO_ZORAN_DC30=m
CONFIG_VIDEO_ZORAN_LML33=m
CONFIG_VIDEO_ZORAN_LML33R10=m
-CONFIG_VIDEO_SAA7134=m
-CONFIG_VIDEO_SAA7134_DVB=m
CONFIG_VIDEO_MXB=m
CONFIG_VIDEO_DPC=m
CONFIG_VIDEO_HEXIUM_ORION=m
@@ -1446,7 +1442,7 @@
CONFIG_USB=m
# CONFIG_USB_DEBUG is not set
CONFIG_USB_DEVICEFS=y
-CONFIG_USB_BANDWIDTH=y
+# CONFIG_USB_BANDWIDTH is not set
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_OTG is not set
CONFIG_USB_EHCI_HCD=m
@@ -1694,3 +1690,4 @@
# CONFIG_MTD_OTP is not set
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
CONFIG_JFFS2_FS_WRITEBUFFER=y
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
Modified: people/waldi/linux-2.6/debian/arch/alpha/defines
==============================================================================
--- people/waldi/linux-2.6/debian/arch/alpha/defines (original)
+++ people/waldi/linux-2.6/debian/arch/alpha/defines Mon Jan 2 19:32:22 2006
@@ -1,7 +1,6 @@
[base]
flavours: alpha-generic alpha-smp
suggests: aboot, fdutils
-conflicts: initramfs-tools
kernel-arch: alpha
kernel-header-dirs: alpha
Modified: people/waldi/linux-2.6/debian/arch/amd64/config
==============================================================================
--- people/waldi/linux-2.6/debian/arch/amd64/config (original)
+++ people/waldi/linux-2.6/debian/arch/amd64/config Mon Jan 2 19:32:22 2006
@@ -255,7 +255,6 @@
CONFIG_BLK_DEV_IDECD=m
CONFIG_BLK_DEV_IDETAPE=m
CONFIG_BLK_DEV_IDEFLOPPY=m
-# CONFIG_IDE_TASK_IOCTL is not set
CONFIG_IDE_GENERIC=m
CONFIG_BLK_DEV_CMD640=y
# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
@@ -383,92 +382,6 @@
CONFIG_INET_ESP=m
CONFIG_IP_TCPDIAG=m
CONFIG_IP_TCPDIAG_IPV6=y
-CONFIG_IPV6=m
-CONFIG_IPV6_PRIVACY=y
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_BRIDGE_NETFILTER=y
-CONFIG_IP_NF_CT_ACCT=y
-CONFIG_IP_NF_CONNTRACK_MARK=y
-CONFIG_IP_NF_CT_PROTO_SCTP=m
-CONFIG_IP_NF_IRC=m
-CONFIG_IP_NF_TFTP=m
-CONFIG_IP_NF_AMANDA=m
-CONFIG_IP_NF_MATCH_IPRANGE=m
-CONFIG_IP_NF_MATCH_PKTTYPE=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_HELPER=m
-CONFIG_IP_NF_MATCH_CONNTRACK=m
-CONFIG_IP_NF_MATCH_PHYSDEV=m
-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_TARGET_ULOG=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_TFTP=m
-CONFIG_IP_NF_NAT_AMANDA=m
-CONFIG_IP_NF_TARGET_ECN=m
-CONFIG_IP_NF_TARGET_DSCP=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
-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
-CONFIG_DECNET_NF_GRABULATOR=m
-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_IP_SCTP=m
# CONFIG_SCTP_DBG_MSG is not set
# CONFIG_SCTP_DBG_OBJCNT is not set
@@ -1115,8 +1028,6 @@
CONFIG_VIDEO_ZORAN_DC30=m
CONFIG_VIDEO_ZORAN_LML33=m
CONFIG_VIDEO_ZORAN_LML33R10=m
-CONFIG_VIDEO_SAA7134=m
-CONFIG_VIDEO_SAA7134_DVB=m
CONFIG_VIDEO_MXB=m
CONFIG_VIDEO_DPC=m
CONFIG_VIDEO_HEXIUM_ORION=m
@@ -1377,7 +1288,7 @@
CONFIG_USB=y
# CONFIG_USB_DEBUG is not set
CONFIG_USB_DEVICEFS=y
-CONFIG_USB_BANDWIDTH=y
+# CONFIG_USB_BANDWIDTH is not set
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_OTG is not set
CONFIG_USB_EHCI_HCD=m
@@ -1650,3 +1561,4 @@
CONFIG_USB_SUSPEND=y
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_PM_LEGACY=y
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
Modified: people/waldi/linux-2.6/debian/arch/arm/config
==============================================================================
--- people/waldi/linux-2.6/debian/arch/arm/config (original)
+++ people/waldi/linux-2.6/debian/arch/arm/config Mon Jan 2 19:32:22 2006
@@ -15,3 +15,4 @@
CONFIG_ECONET_NATIVE=y
CONFIG_EQUALIZER=m
CONFIG_NET_CLS_ROUTE=y
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
Modified: people/waldi/linux-2.6/debian/arch/arm/config.footbridge
==============================================================================
--- people/waldi/linux-2.6/debian/arch/arm/config.footbridge (original)
+++ people/waldi/linux-2.6/debian/arch/arm/config.footbridge Mon Jan 2 19:32:22 2006
@@ -35,7 +35,6 @@
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
@@ -426,13 +425,11 @@
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_BLK_DEV_IDESCSI is not set
-# CONFIG_IDE_TASK_IOCTL is not set
#
# IDE chipset support/bugfixes
#
CONFIG_IDE_GENERIC=y
-CONFIG_BLK_DEV_IDEPNP=m
# CONFIG_BLK_DEV_IDEPCI is not set
# CONFIG_IDE_ARM is not set
# CONFIG_IDE_CHIPSETS is not set
@@ -808,7 +805,9 @@
#
# Serial drivers
#
-# CONFIG_SERIAL_8250 is not set
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=16
#
# Non-8250 serial port support
@@ -1010,7 +1009,6 @@
# CONFIG_VIDEO_SAA5249 is not set
# CONFIG_TUNER_3036 is not set
# CONFIG_VIDEO_STRADIS is not set
-# CONFIG_VIDEO_SAA7134 is not set
# CONFIG_VIDEO_MXB is not set
# CONFIG_VIDEO_DPC is not set
# CONFIG_VIDEO_HEXIUM_ORION is not set
@@ -1240,9 +1238,13 @@
# File systems
#
CONFIG_EXT2_FS=y
-# CONFIG_EXT2_FS_XATTR is not set
-# CONFIG_EXT2_FS_XIP is not set
-# CONFIG_EXT3_FS is not set
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
# CONFIG_JBD is not set
CONFIG_REISERFS_FS=m
# CONFIG_REISERFS_CHECK is not set
@@ -1495,7 +1497,7 @@
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
# CONFIG_BLK_DEV_OFFBOARD is not set
-CONFIG_BLK_DEV_SL82C105=m
+CONFIG_BLK_DEV_SL82C105=y
# CONFIG_SUNDANCE_MMIO is not set
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_USB_HIDDEV is not set
Modified: people/waldi/linux-2.6/debian/arch/arm/config.ixp4xx
==============================================================================
--- people/waldi/linux-2.6/debian/arch/arm/config.ixp4xx (original)
+++ people/waldi/linux-2.6/debian/arch/arm/config.ixp4xx Mon Jan 2 19:32:22 2006
@@ -35,7 +35,6 @@
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
@@ -593,7 +592,6 @@
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_BLK_DEV_IDESCSI is not set
-# CONFIG_IDE_TASK_IOCTL is not set
#
# IDE chipset support/bugfixes
Modified: people/waldi/linux-2.6/debian/arch/arm/config.rpc
==============================================================================
--- people/waldi/linux-2.6/debian/arch/arm/config.rpc (original)
+++ people/waldi/linux-2.6/debian/arch/arm/config.rpc Mon Jan 2 19:32:22 2006
@@ -37,7 +37,6 @@
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
@@ -333,7 +332,6 @@
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_BLK_DEV_IDESCSI is not set
-# CONFIG_IDE_TASK_IOCTL is not set
#
# IDE chipset support/bugfixes
Modified: people/waldi/linux-2.6/debian/arch/arm/config.s3c2410
==============================================================================
--- people/waldi/linux-2.6/debian/arch/arm/config.s3c2410 (original)
+++ people/waldi/linux-2.6/debian/arch/arm/config.s3c2410 Mon Jan 2 19:32:22 2006
@@ -36,7 +36,6 @@
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
@@ -440,7 +439,6 @@
CONFIG_BLK_DEV_IDETAPE=m
CONFIG_BLK_DEV_IDEFLOPPY=m
# CONFIG_BLK_DEV_IDESCSI is not set
-# CONFIG_IDE_TASK_IOCTL is not set
#
# IDE chipset support/bugfixes
Modified: people/waldi/linux-2.6/debian/arch/arm/defines
==============================================================================
--- people/waldi/linux-2.6/debian/arch/arm/defines (original)
+++ people/waldi/linux-2.6/debian/arch/arm/defines Mon Jan 2 19:32:22 2006
@@ -1,5 +1,4 @@
[base]
-compiler: gcc-4.0
flavours:
footbridge
ixp4xx
@@ -8,3 +7,20 @@
kernel-arch: arm
kernel-header-dirs: arm
suggests: fdutils
+
+[footbridge]
+class: Footbridge based
+longclass: Footbridge (CATS, Netwinder)
+
+[ixp4xx]
+class: IXP4xx
+longclass: IXP4xx based
+
+[rpc]
+class: RiscPC
+longclass: Arcon RiscPC
+
+[s3c2410]
+class: Samsung S3C2410
+longclass: Samsung S3C2410 based (BAST, IPAQ 1940, etc)
+
Modified: people/waldi/linux-2.6/debian/arch/config
==============================================================================
--- people/waldi/linux-2.6/debian/arch/config (original)
+++ people/waldi/linux-2.6/debian/arch/config Mon Jan 2 19:32:22 2006
@@ -110,13 +110,11 @@
CONFIG_TCG_NSC=m
# CONFIG_IP_ROUTE_MULTIPATH_CACHED is not set
CONFIG_6PACK=m
-CONFIG_TCP_CONG_SCALABLE=m
CONFIG_DVB_USB_DTT200U=m
CONFIG_DVB_USB_DIGITV=m
CONFIG_SERIAL_8250_ACCENT=m
CONFIG_FB_ARC=m
CONFIG_FUSION_SPI=m
-# CONFIG_IP_FIB_TRIE is not set
CONFIG_DVB_USB_CXUSB=m
CONFIG_FUSION_FC=m
CONFIG_USB_ACECAD=m
@@ -125,22 +123,18 @@
CONFIG_USB_CXACRU=m
CONFIG_DVB_USB_A800=m
CONFIG_TEXTSEARCH_KMP=m
-CONFIG_TCP_CONG_HTCP=m
CONFIG_BLK_DEV_IT821X=m
CONFIG_TEXTSEARCH=y
CONFIG_DRM_VIA=m
CONFIG_USB_KEYSPAN_REMOTE=m
CONFIG_DVB_S5H1420=m
CONFIG_SND_HDSPM=m
-CONFIG_TCP_CONG_HSTCP=m
CONFIG_SENSORS_PCA9539=m
# CONFIG_HWMON_DEBUG_CHIP is not set
CONFIG_SKGE=m
CONFIG_USB_GADGET_SELECTED=y
-CONFIG_TCP_CONG_VEGAS=m
CONFIG_INFINIBAND_USER_VERBS=m
CONFIG_USB_ITMTOUCH=m
-CONFIG_TCP_CONG_WESTWOOD=m
CONFIG_USB_ISP116X_HCD=m
CONFIG_DVB_LGDT330X=m
CONFIG_SERIAL_8250_HUB6=m
@@ -156,12 +150,9 @@
CONFIG_DVB_BCM3510=m
CONFIG_SENSORS_MAX6875=m
CONFIG_MTD_PLATRAM=m
-CONFIG_IP_FIB_HASH=y
CONFIG_SENSORS_ADM9240=m
-CONFIG_TCP_CONG_HYBLA=m
CONFIG_SENSORS_DS1374=m
CONFIG_USB_XUSBATM=m
-CONFIG_TCP_CONG_ADVANCED=y
CONFIG_PCMCIA_LOAD_CIS=y
CONFIG_DVB_USB=m
CONFIG_USB_LD=m
@@ -739,3 +730,8 @@
# CONFIG_USB_MIDI is not set
CONFIG_OBSOLETE_OSS_USB_DRIVER=y
CONFIG_ATM_DUMMY=m
+# CONFIG_IDE_TASK_IOCTL is not set
+CONFIG_VIDEO_SAA7134_OSS=m
+CONFIG_VIDEO_SAA7134_DVB=m
+CONFIG_VIDEO_SAA7134_ALSA=m
+CONFIG_VIDEO_SAA7134=m
Modified: people/waldi/linux-2.6/debian/arch/hppa/config
==============================================================================
--- people/waldi/linux-2.6/debian/arch/hppa/config (original)
+++ people/waldi/linux-2.6/debian/arch/hppa/config Mon Jan 2 19:32:22 2006
@@ -125,7 +125,6 @@
CONFIG_BLK_DEV_IDECD=m
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
-# CONFIG_IDE_TASK_IOCTL is not set
CONFIG_IDE_GENERIC=m
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
@@ -961,3 +960,13 @@
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_1000 is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_HZ=250
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_MEGARAID_MM=m
+CONFIG_PARPORT_NOT_PC=y
+CONFIG_MEGARAID_MAILBOX=m
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+CONFIG_SCSI_SYM53C8XX_MMIO=y
+CONFIG_SPLIT_PTLOCK_CPUS=4096
Added: people/waldi/linux-2.6/debian/arch/hppa/config.parisc
==============================================================================
--- (empty file)
+++ people/waldi/linux-2.6/debian/arch/hppa/config.parisc Mon Jan 2 19:32:22 2006
@@ -0,0 +1,14 @@
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_PA7000=y
+# CONFIG_PA8X00 is not set
+CONFIG_PA11=y
+# CONFIG_SMP is not set
+# CONFIG_HPUX is not set
+# CONFIG_SCSI_DPT_I2O is not set
+# CONFIG_SCSI_NSP32 is not set
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_NINJA_SCSI=m
+# CONFIG_NI5010 is not set
+# CONFIG_PCMCIA_XIRTULIP is not set
+CONFIG_TLAN=m
+# CONFIG_ARLAN is not set
Added: people/waldi/linux-2.6/debian/arch/hppa/config.parisc-smp
==============================================================================
--- (empty file)
+++ people/waldi/linux-2.6/debian/arch/hppa/config.parisc-smp Mon Jan 2 19:32:22 2006
@@ -0,0 +1,17 @@
+CONFIG_LOCK_KERNEL=y
+# CONFIG_CPUSETS is not set
+CONFIG_STOP_MACHINE=y
+CONFIG_PA7000=y
+# CONFIG_PA8X00 is not set
+CONFIG_PA11=y
+CONFIG_SMP=y
+CONFIG_HOTPLUG_CPU=y
+# CONFIG_HPUX is not set
+CONFIG_NR_CPUS=32
+# CONFIG_SCSI_DPT_I2O is not set
+# CONFIG_SCSI_NSP32 is not set
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_NINJA_SCSI=m
+CONFIG_TLAN=m
+# CONFIG_ARLAN is not set
+# CONFIG_DEBUG_RWLOCK is not set
Added: people/waldi/linux-2.6/debian/arch/hppa/config.parisc64
==============================================================================
--- (empty file)
+++ people/waldi/linux-2.6/debian/arch/hppa/config.parisc64 Mon Jan 2 19:32:22 2006
@@ -0,0 +1,13 @@
+CONFIG_BROKEN_ON_SMP=y
+# CONFIG_PA7000 is not set
+CONFIG_PA8X00=y
+CONFIG_PA20=y
+CONFIG_PREFETCH=y
+CONFIG_64BIT=y
+# CONFIG_SMP is not set
+CONFIG_DISCONTIGMEM=y
+CONFIG_COMPAT=y
+# CONFIG_NI5010 is not set
+# CONFIG_PCMCIA_XIRTULIP is not set
+CONFIG_NEED_MULTIPLE_NODES=y
+# CONFIG_FLATMEM_MANUAL is not set
Added: people/waldi/linux-2.6/debian/arch/hppa/config.parisc64-smp
==============================================================================
--- (empty file)
+++ people/waldi/linux-2.6/debian/arch/hppa/config.parisc64-smp Mon Jan 2 19:32:22 2006
@@ -0,0 +1,16 @@
+CONFIG_LOCK_KERNEL=y
+# CONFIG_CPUSETS is not set
+CONFIG_STOP_MACHINE=y
+# CONFIG_PA7000 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_COMPAT=y
+CONFIG_NR_CPUS=32
+# CONFIG_DEBUG_RWLOCK is not set
+CONFIG_NEED_MULTIPLE_NODES=y
+# CONFIG_FLATMEM_MANUAL is not set
Modified: people/waldi/linux-2.6/debian/arch/hppa/defines
==============================================================================
--- people/waldi/linux-2.6/debian/arch/hppa/defines (original)
+++ people/waldi/linux-2.6/debian/arch/hppa/defines Mon Jan 2 19:32:22 2006
@@ -1,22 +1,22 @@
[base]
flavours:
- 32
- 32-smp
- 64
- 64-smp
+ parisc
+ parisc-smp
+ parisc64
+ parisc64-smp
kernel-arch: parisc
kernel-header-dirs: parisc
suggests: palo
-[32]
+[parisc]
class: 32-bit PA-RISC
-[32-smp]
+[parisc-smp]
class: multi-processor 32-bit PA-RISC
-[64]
+[parisc64]
class: 64-bit PA-RISC
-[64-smp]
+[parisc64-smp]
class: multi-processor 64-bit PA-RISC
Modified: people/waldi/linux-2.6/debian/arch/i386/config
==============================================================================
--- people/waldi/linux-2.6/debian/arch/i386/config (original)
+++ people/waldi/linux-2.6/debian/arch/i386/config Mon Jan 2 19:32:22 2006
@@ -21,7 +21,6 @@
# CONFIG_X86_VISWS is not set
# CONFIG_X86_GENERICARCH is not set
# CONFIG_X86_ES7000 is not set
-# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
@@ -316,7 +315,6 @@
CONFIG_BLK_DEV_IDECD=m
CONFIG_BLK_DEV_IDETAPE=m
CONFIG_BLK_DEV_IDEFLOPPY=m
-# CONFIG_IDE_TASK_IOCTL is not set
CONFIG_IDE_GENERIC=m
CONFIG_BLK_DEV_CMD640=y
# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
@@ -480,92 +478,6 @@
CONFIG_INET_ESP=m
CONFIG_IP_TCPDIAG=m
CONFIG_IP_TCPDIAG_IPV6=y
-CONFIG_IPV6=m
-CONFIG_IPV6_PRIVACY=y
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_BRIDGE_NETFILTER=y
-CONFIG_IP_NF_CT_ACCT=y
-CONFIG_IP_NF_CONNTRACK_MARK=y
-CONFIG_IP_NF_CT_PROTO_SCTP=m
-CONFIG_IP_NF_IRC=m
-CONFIG_IP_NF_TFTP=m
-CONFIG_IP_NF_AMANDA=m
-CONFIG_IP_NF_MATCH_IPRANGE=m
-CONFIG_IP_NF_MATCH_PKTTYPE=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_HELPER=m
-CONFIG_IP_NF_MATCH_CONNTRACK=m
-CONFIG_IP_NF_MATCH_PHYSDEV=m
-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_TARGET_ULOG=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_TFTP=m
-CONFIG_IP_NF_NAT_AMANDA=m
-CONFIG_IP_NF_TARGET_ECN=m
-CONFIG_IP_NF_TARGET_DSCP=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
-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
-CONFIG_DECNET_NF_GRABULATOR=m
-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_IP_SCTP=m
# CONFIG_SCTP_DBG_MSG is not set
# CONFIG_SCTP_DBG_OBJCNT is not set
@@ -1304,8 +1216,6 @@
CONFIG_VIDEO_ZORAN_LML33R10=m
# CONFIG_VIDEO_ZR36120 is not set
CONFIG_VIDEO_MEYE=m
-CONFIG_VIDEO_SAA7134=m
-CONFIG_VIDEO_SAA7134_DVB=m
CONFIG_VIDEO_MXB=m
CONFIG_VIDEO_DPC=m
CONFIG_VIDEO_HEXIUM_ORION=m
@@ -1630,7 +1540,7 @@
CONFIG_USB=m
# CONFIG_USB_DEBUG is not set
CONFIG_USB_DEVICEFS=y
-CONFIG_USB_BANDWIDTH=y
+# CONFIG_USB_BANDWIDTH is not set
# CONFIG_USB_DYNAMIC_MINORS is not set
CONFIG_USB_SUSPEND=y
# CONFIG_USB_OTG is not set
@@ -1912,3 +1822,4 @@
# CONFIG_SPARSEMEM_MANUAL is not set
# CONFIG_DISCONTIGMEM_MANUAL is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
Added: people/waldi/linux-2.6/debian/arch/i386/config.486
==============================================================================
--- (empty file)
+++ people/waldi/linux-2.6/debian/arch/i386/config.486 Mon Jan 2 19:32:22 2006
@@ -0,0 +1,112 @@
+CONFIG_M486=y
+# CONFIG_M686 is not set
+# CONFIG_MK7 is not set
+CONFIG_X86_GENERIC=y
+CONFIG_X86_L1_CACHE_SHIFT=7
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_X86_PPRO_FENCE=y
+CONFIG_X86_F00F_BUG=y
+CONFIG_X86_INTEL_USERCOPY=y
+# CONFIG_SMP is not set
+CONFIG_X86_UP_APIC=y
+CONFIG_X86_UP_IOAPIC=y
+# CONFIG_X86_MCE is not set
+CONFIG_NOHIGHMEM=y
+# CONFIG_HIGHMEM4G is not set
+CONFIG_MATH_EMULATION=y
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+CONFIG_EISA=y
+CONFIG_EISA_VLB_PRIMING=y
+CONFIG_EISA_PCI_EISA=y
+CONFIG_EISA_VIRTUAL_ROOT=y
+CONFIG_EISA_NAMES=y
+CONFIG_MCA=y
+CONFIG_MCA_LEGACY=y
+# CONFIG_MCA_PROC_FS is not set
+CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=y
+# CONFIG_MTD_XIP is not set
+CONFIG_BLK_DEV_PS2=m
+CONFIG_SCSI_FD_MCS=m
+CONFIG_SCSI_IBMMCA=m
+CONFIG_IBMMCA_SCSI_ORDER_STANDARD=y
+# CONFIG_IBMMCA_SCSI_DEV_RESET is not set
+CONFIG_SCSI_NCR_D700=m
+CONFIG_SCSI_NCR_Q720=m
+CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8
+CONFIG_SCSI_NCR53C8XX_MAX_TAGS=4
+CONFIG_SCSI_NCR53C8XX_SYNC=5
+# CONFIG_SCSI_NCR53C8XX_PROFILE is not set
+CONFIG_SCSI_MCA_53C9X=m
+CONFIG_SCSI_SIM710=m
+CONFIG_53C700_IO_MAPPED=y
+CONFIG_SBPCD=m
+CONFIG_CM206=m
+CONFIG_CDU31A=m
+CONFIG_DMASCC=m
+CONFIG_IRPORT_SIR=m
+# CONFIG_DONGLE_OLD is not set
+CONFIG_ELMC=m
+CONFIG_ELMC_II=m
+CONFIG_ULTRAMCA=m
+CONFIG_ULTRA32=m
+CONFIG_NI5010=m
+CONFIG_PCMCIA_XIRTULIP=m
+# CONFIG_SKMC is not set
+CONFIG_NE2_MCA=m
+CONFIG_IBMLANA=m
+CONFIG_LNE390=m
+CONFIG_NE3210=m
+CONFIG_ES3210=m
+CONFIG_MADGEMC=m
+CONFIG_ISDN_DRV_LOOP=m
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_ISDN_DRV_AVMB1_B1ISA=m
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_T1ISA=m
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+CONFIG_COMPUTONE=m
+CONFIG_DIGIEPCA=m
+CONFIG_MOXA_INTELLIO=m
+CONFIG_SX=m
+CONFIG_RIO=m
+CONFIG_RIO_OLDPCI=y
+CONFIG_STALLION=m
+CONFIG_ISTALLION=m
+CONFIG_FTAPE=m
+CONFIG_ZFTAPE=m
+CONFIG_ZFT_DFLT_BLK_SZ=10240
+CONFIG_ZFT_COMPRESSOR=m
+CONFIG_FT_NR_BUFFERS=3
+CONFIG_FT_PROC_FS=y
+CONFIG_FT_NORMAL_DEBUG=y
+# CONFIG_FT_FULL_DEBUG is not set
+# CONFIG_FT_NO_TRACE is not set
+# CONFIG_FT_NO_TRACE_AT_ALL is not set
+CONFIG_FT_STD_FDC=y
+# CONFIG_FT_MACH2 is not set
+# CONFIG_FT_PROBE_FC10 is not set
+# CONFIG_FT_ALT_FDC is not set
+CONFIG_FT_FDC_THR=8
+CONFIG_FT_FDC_MAX_RATE=2000
+CONFIG_FT_ALPHA_CLOCK=0
+CONFIG_I2C_ELEKTOR=m
+CONFIG_I2C_STUB=m
+CONFIG_USB_W9968CF=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_EXT2_FS=y
+CONFIG_FS_MBCACHE=y
+CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_M386 is not set
+CONFIG_X86_POPAD_OK=y
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_X86_BSWAP=y
+CONFIG_X86_XADD=y
+CONFIG_X86_CMPXCHG=y
+CONFIG_X86_ALIGNMENT_16=y
+CONFIG_X86_INVLPG=y
+CONFIG_X86_WP_WORKS_OK=y
Modified: people/waldi/linux-2.6/debian/arch/i386/config.686
==============================================================================
--- people/waldi/linux-2.6/debian/arch/i386/config.686 (original)
+++ people/waldi/linux-2.6/debian/arch/i386/config.686 Mon Jan 2 19:32:22 2006
@@ -1,4 +1,3 @@
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
# CONFIG_M386 is not set
CONFIG_M686=y
# CONFIG_MK7 is not set
@@ -84,3 +83,4 @@
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_DEBUG_HIGHMEM is not set
CONFIG_X86_CMPXCHG64=y
+# CONFIG_M486 is not set
Modified: people/waldi/linux-2.6/debian/arch/i386/config.686-smp
==============================================================================
--- people/waldi/linux-2.6/debian/arch/i386/config.686-smp (original)
+++ people/waldi/linux-2.6/debian/arch/i386/config.686-smp Mon Jan 2 19:32:22 2006
@@ -1,6 +1,5 @@
CONFIG_LOCK_KERNEL=y
# CONFIG_CPUSETS is not set
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_STOP_MACHINE=y
# CONFIG_M386 is not set
CONFIG_M686=y
@@ -70,3 +69,4 @@
CONFIG_X86_HT=y
CONFIG_X86_TRAMPOLINE=y
CONFIG_X86_CMPXCHG64=y
+# CONFIG_M486 is not set
Modified: people/waldi/linux-2.6/debian/arch/i386/config.k7
==============================================================================
--- people/waldi/linux-2.6/debian/arch/i386/config.k7 (original)
+++ people/waldi/linux-2.6/debian/arch/i386/config.k7 Mon Jan 2 19:32:22 2006
@@ -1,4 +1,3 @@
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
# CONFIG_M386 is not set
# CONFIG_M686 is not set
CONFIG_MK7=y
@@ -85,3 +84,4 @@
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_DEBUG_HIGHMEM is not set
CONFIG_X86_CMPXCHG64=y
+# CONFIG_M486 is not set
Modified: people/waldi/linux-2.6/debian/arch/i386/config.k7-smp
==============================================================================
--- people/waldi/linux-2.6/debian/arch/i386/config.k7-smp (original)
+++ people/waldi/linux-2.6/debian/arch/i386/config.k7-smp Mon Jan 2 19:32:22 2006
@@ -1,6 +1,5 @@
CONFIG_LOCK_KERNEL=y
# CONFIG_CPUSETS is not set
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_STOP_MACHINE=y
# CONFIG_M386 is not set
# CONFIG_M686 is not set
@@ -71,3 +70,4 @@
CONFIG_X86_HT=y
CONFIG_X86_TRAMPOLINE=y
CONFIG_X86_CMPXCHG64=y
+# CONFIG_M486 is not set
Modified: people/waldi/linux-2.6/debian/arch/i386/defines
==============================================================================
--- people/waldi/linux-2.6/debian/arch/i386/defines (original)
+++ people/waldi/linux-2.6/debian/arch/i386/defines Mon Jan 2 19:32:22 2006
@@ -1,6 +1,6 @@
[base]
flavours:
- 386
+ 486
686
686-smp
k7
Modified: people/waldi/linux-2.6/debian/arch/ia64/config
==============================================================================
--- people/waldi/linux-2.6/debian/arch/ia64/config (original)
+++ people/waldi/linux-2.6/debian/arch/ia64/config Mon Jan 2 19:32:22 2006
@@ -24,6 +24,8 @@
# CONFIG_IA64_PAGE_SIZE_8KB is not set
CONFIG_IA64_PAGE_SIZE_16KB=y
# CONFIG_IA64_PAGE_SIZE_64KB is not set
+CONFIG_PGTABLE_3=y
+# CONFIG_PGTABLE_4 is not set
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_1000 is not set
@@ -33,8 +35,12 @@
CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
# CONFIG_IA64_CYCLONE is not set
CONFIG_IOSAPIC=y
-# CONFIG_IA64_SGI_SN_XP is not set
-CONFIG_FORCE_MAX_ZONEORDER=18
+CONFIG_SELECT_MEMORY_MODEL=y
+# CONFIG_FLATMEM_MANUAL is not set
+CONFIG_DISCONTIGMEM_MANUAL=y
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_IA64_SGI_SN_XP=m
+CONFIG_FORCE_MAX_ZONEORDER=11
CONFIG_IA32_SUPPORT=y
CONFIG_COMPAT=y
CONFIG_IA64_MCA_RECOVERY=m
@@ -44,6 +50,7 @@
CONFIG_EFI_VARS=m
CONFIG_EFI_PCDP=y
CONFIG_PM=y
+CONFIG_PM_LEGACY=y
CONFIG_ACPI=y
CONFIG_ACPI_BOOT=y
CONFIG_ACPI_INTERPRETER=y
@@ -212,7 +219,6 @@
CONFIG_BLK_DEV_IDECD=m
CONFIG_BLK_DEV_IDETAPE=m
CONFIG_BLK_DEV_IDEFLOPPY=m
-CONFIG_IDE_TASK_IOCTL=y
CONFIG_IDE_GENERIC=m
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
@@ -890,8 +896,6 @@
CONFIG_VIDEO_ZORAN_DC30=m
CONFIG_VIDEO_ZORAN_LML33=m
CONFIG_VIDEO_ZORAN_LML33R10=m
-CONFIG_VIDEO_SAA7134=m
-CONFIG_VIDEO_SAA7134_DVB=m
CONFIG_VIDEO_MXB=m
CONFIG_VIDEO_DPC=m
CONFIG_VIDEO_HEXIUM_ORION=m
@@ -1117,7 +1121,7 @@
CONFIG_USB=m
# CONFIG_USB_DEBUG is not set
CONFIG_USB_DEVICEFS=y
-CONFIG_USB_BANDWIDTH=y
+# CONFIG_USB_BANDWIDTH is not set
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_SUSPEND is not set
# CONFIG_USB_OTG is not set
@@ -1364,3 +1368,4 @@
# CONFIG_PM_DEBUG is not set
CONFIG_DIGIEPCA=m
# CONFIG_CPU_FREQ is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
Modified: people/waldi/linux-2.6/debian/arch/m68k/config.amiga
==============================================================================
--- people/waldi/linux-2.6/debian/arch/m68k/config.amiga (original)
+++ people/waldi/linux-2.6/debian/arch/m68k/config.amiga Mon Jan 2 19:32:22 2006
@@ -42,7 +42,6 @@
CONFIG_BLK_DEV_IDECD=y
CONFIG_BLK_DEV_IDETAPE=m
CONFIG_BLK_DEV_IDEFLOPPY=m
-# CONFIG_IDE_TASK_IOCTL is not set
CONFIG_IDE_GENERIC=y
# CONFIG_IDE_ARM is not set
CONFIG_BLK_DEV_GAYLE=y
Modified: people/waldi/linux-2.6/debian/arch/m68k/config.atari
==============================================================================
--- people/waldi/linux-2.6/debian/arch/m68k/config.atari (original)
+++ people/waldi/linux-2.6/debian/arch/m68k/config.atari Mon Jan 2 19:32:22 2006
@@ -34,7 +34,6 @@
CONFIG_BLK_DEV_IDECD=y
CONFIG_BLK_DEV_IDETAPE=m
CONFIG_BLK_DEV_IDEFLOPPY=m
-# CONFIG_IDE_TASK_IOCTL is not set
CONFIG_IDE_GENERIC=y
# CONFIG_IDE_ARM is not set
CONFIG_BLK_DEV_FALCON_IDE=y
Modified: people/waldi/linux-2.6/debian/arch/m68k/config.mac
==============================================================================
--- people/waldi/linux-2.6/debian/arch/m68k/config.mac (original)
+++ people/waldi/linux-2.6/debian/arch/m68k/config.mac Mon Jan 2 19:32:22 2006
@@ -28,7 +28,6 @@
CONFIG_BLK_DEV_IDECD=y
CONFIG_BLK_DEV_IDETAPE=m
CONFIG_BLK_DEV_IDEFLOPPY=m
-# CONFIG_IDE_TASK_IOCTL is not set
CONFIG_IDE_GENERIC=y
# CONFIG_IDE_ARM is not set
CONFIG_BLK_DEV_MAC_IDE=y
Modified: people/waldi/linux-2.6/debian/arch/m68k/config.q40
==============================================================================
--- people/waldi/linux-2.6/debian/arch/m68k/config.q40 (original)
+++ people/waldi/linux-2.6/debian/arch/m68k/config.q40 Mon Jan 2 19:32:22 2006
@@ -30,7 +30,6 @@
CONFIG_BLK_DEV_IDECD=y
CONFIG_BLK_DEV_IDETAPE=m
CONFIG_BLK_DEV_IDEFLOPPY=m
-# CONFIG_IDE_TASK_IOCTL is not set
CONFIG_IDE_GENERIC=y
# CONFIG_IDE_ARM is not set
CONFIG_BLK_DEV_Q40IDE=y
Modified: people/waldi/linux-2.6/debian/arch/powerpc/config
==============================================================================
--- people/waldi/linux-2.6/debian/arch/powerpc/config (original)
+++ people/waldi/linux-2.6/debian/arch/powerpc/config Mon Jan 2 19:32:22 2006
@@ -2,7 +2,6 @@
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_HAVE_DEC_LOCK=y
CONFIG_PPC=y
-CONFIG_PPC32=y
CONFIG_GENERIC_NVRAM=y
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
CONFIG_CLEAN_COMPILE=y
@@ -44,7 +43,6 @@
CONFIG_PM=y
CONFIG_PPC_STD_MMU=y
CONFIG_PPC_MULTIPLATFORM=y
-# CONFIG_APUS is not set
# CONFIG_KATANA is not set
# CONFIG_WILLOW is not set
# CONFIG_CPCI690 is not set
@@ -141,7 +139,6 @@
CONFIG_BLK_DEV_IDECD=m
CONFIG_BLK_DEV_IDETAPE=m
CONFIG_BLK_DEV_IDEFLOPPY=m
-# CONFIG_IDE_TASK_IOCTL is not set
# CONFIG_IDE_GENERIC is not set
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
@@ -801,8 +798,6 @@
CONFIG_VIDEO_ZORAN_DC30=m
CONFIG_VIDEO_ZORAN_LML33=m
CONFIG_VIDEO_ZORAN_LML33R10=m
-CONFIG_VIDEO_SAA7134=m
-CONFIG_VIDEO_SAA7134_DVB=m
CONFIG_VIDEO_MXB=m
CONFIG_VIDEO_DPC=m
CONFIG_VIDEO_HEXIUM_ORION=m
@@ -875,12 +870,8 @@
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
CONFIG_FB_OF=y
-CONFIG_FB_CONTROL=y
-CONFIG_FB_PLATINUM=y
-CONFIG_FB_VALKYRIE=y
CONFIG_FB_CT65550=y
# CONFIG_FB_ASILIANT is not set
-CONFIG_FB_IMSTT=y
# CONFIG_FB_VGA16 is not set
CONFIG_FB_NVIDIA=y
# CONFIG_FB_RIVA is not set
@@ -1008,7 +999,7 @@
CONFIG_USB=m
# CONFIG_USB_DEBUG is not set
CONFIG_USB_DEVICEFS=y
-CONFIG_USB_BANDWIDTH=y
+# CONFIG_USB_BANDWIDTH is not set
CONFIG_USB_DYNAMIC_MINORS=y
CONFIG_USB_SUSPEND=y
# CONFIG_USB_OTG is not set
@@ -1256,7 +1247,6 @@
CONFIG_PM_LEGACY=y
CONFIG_PPC_I8259=y
CONFIG_WINDFARM=m
-CONFIG_FLATMEM_MANUAL=y
CONFIG_FB_NVIDIA_I2C=y
# CONFIG_SPARSEMEM_MANUAL is not set
# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -1280,5 +1270,6 @@
CONFIG_RTAS_PROC=y
# CONFIG_PPC_52xx is not set
# CONFIG_PPC_83xx is not set
-# CONFIG_PPC64 is not set
CONFIG_XMON=y
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+
Modified: people/waldi/linux-2.6/debian/arch/powerpc/config.apus
==============================================================================
--- people/waldi/linux-2.6/debian/arch/powerpc/config.apus (original)
+++ people/waldi/linux-2.6/debian/arch/powerpc/config.apus Mon Jan 2 19:32:22 2006
@@ -247,7 +247,6 @@
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
CONFIG_BLK_DEV_IDEFLOPPY=y
-# CONFIG_IDE_TASK_IOCTL is not set
#
# IDE chipset support/bugfixes
@@ -1067,3 +1066,7 @@
# CONFIG_HWMON_VID is not set
CONFIG_NFS_ACL_SUPPORT=y
CONFIG_CRYPTO=y
+CONFIG_FLATMEM_MANUAL=y
+
+# CONFIG_SOFTWARE_SUSPEND is not set
+
Modified: people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc
==============================================================================
--- people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc (original)
+++ people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc Mon Jan 2 19:32:22 2006
@@ -1,3 +1,5 @@
+# CONFIG_APUS is not set
+CONFIG_PPC32=y
CONFIG_BROKEN_ON_SMP=y
# CONFIG_SMP is not set
CONFIG_PM_STD_PARTITION=""
@@ -5,3 +7,9 @@
CONFIG_PCMCIA_XIRTULIP=m
# CONFIG_USB_SERIAL_WHITEHEAT is not set
CONFIG_MAC_FLOPPY=y
+CONFIG_FLATMEM_MANUAL=y
+CONFIG_FB_CONTROL=y
+CONFIG_FB_PLATINUM=y
+CONFIG_FB_VALKYRIE=y
+CONFIG_FB_IMSTT=y
+
Modified: people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc-miboot
==============================================================================
--- people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc-miboot (original)
+++ people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc-miboot Mon Jan 2 19:32:22 2006
@@ -1,3 +1,5 @@
+# CONFIG_APUS is not set
+CONFIG_PPC32=y
CONFIG_MAC_FLOPPY=y
# CONFIG_SMP is not set
# CONFIG_BSD_PROCESS_ACCT is not set
@@ -16,8 +18,6 @@
# CONFIG_PROC_DEVICETREE is not set
# CONFIG_PREP_RESIDUAL is not set
# CONFIG_LBD is not set
-# CONFIG_IOSCHED_AS is not set
-# CONFIG_IOSCHED_CFQ is not set
# CONFIG_THERM_WINDTUNNEL is not set
# CONFIG_THERM_ADT746X is not set
# CONFIG_IPV6_TUNNEL is not set
@@ -68,10 +68,23 @@
# CONFIG_IRPORT_SIR is not set
# CONFIG_USB_SERIAL_WHITEHEAT is not set
# CONFIG_PMAC_BACKLIGHT is not set
-
CONFIG_BROKEN_ON_SMP=y
CONFIG_CRYPTO_MD5=y
# CONFIG_SOFTWARE_SUSPEND is not set
-ONFIG_SOFTWARE_SUSPEND=m
CONFIG_DEFAULT_DEADLINE=y
+CONFIG_FLATMEM_MANUAL=y
+CONFIG_IOSCHED_NOOP=y
+# CONFIG_IOSCHED_AS is not set
+CONFIG_IOSCHED_DEADLINE=y
+# CONFIG_IOSCHED_CFQ is not set
+# CONFIG_DEFAULT_AS is not set
+CONFIG_DEFAULT_DEADLINE=y
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="deadline"
+
+CONFIG_FB_CONTROL=y
+CONFIG_FB_PLATINUM=y
+CONFIG_FB_VALKYRIE=y
+CONFIG_FB_IMSTT=y
+
Modified: people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc-smp
==============================================================================
--- people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc-smp (original)
+++ people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc-smp Mon Jan 2 19:32:22 2006
@@ -1,3 +1,5 @@
+# CONFIG_APUS is not set
+CONFIG_PPC32=y
CONFIG_LOCK_KERNEL=y
# CONFIG_CPUSETS is not set
CONFIG_STOP_MACHINE=y
@@ -5,3 +7,9 @@
CONFIG_IRQ_ALL_CPUS=y
CONFIG_NR_CPUS=4
# CONFIG_MAC_FLOPPY is not set
+CONFIG_FLATMEM_MANUAL=y
+CONFIG_FB_CONTROL=y
+CONFIG_FB_PLATINUM=y
+CONFIG_FB_VALKYRIE=y
+CONFIG_FB_IMSTT=y
+
Modified: people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc64
==============================================================================
--- people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc64 (original)
+++ people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc64 Mon Jan 2 19:32:22 2006
@@ -1,3 +1,5 @@
+# CONFIG_APUS is not set
+CONFIG_PPC64=y
CONFIG_64BIT=y
CONFIG_COMPAT=y
CONFIG_CPUSETS=y
@@ -30,8 +32,16 @@
CONFIG_MEGARAID_LEGACY=m
CONFIG_MPIC_BROKEN_U3=y
CONFIG_NR_CPUS=32
-# CONFIG_FLATMEM is not set
-CONFIG_DISCONTIGMEM=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_SELECT_MEMORY_MODEL=y
+# CONFIG_FLATMEM_MANUAL is not set
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPARSEMEM=y
+CONFIG_HAVE_MEMORY_PRESENT=y
+# CONFIG_SPARSEMEM_STATIC is not set
+CONFIG_SPARSEMEM_EXTREME=y
+# CONFIG_MEMORY_HOTPLUG is not set
CONFIG_NUMA=y
# CONFIG_PMAC_BACKLIGHT is not set
# CONFIG_PMAC_PBOOK is not set
@@ -86,9 +96,7 @@
CONFIG_RTAS_ERROR_LOGGING=y
CONFIG_GENERIC_TBSYNC=y
# CONFIG_EMBEDDED6xx is not set
-CONFIG_WINDFARM_PM91=y
CONFIG_ARCH_SPARSEMEM_DEFAULT=y
-CONFIG_WINDFARM_PM81=y
CONFIG_HAVE_MEMORY_PRESENT=y
# CONFIG_PPC_64K_PAGES is not set
CONFIG_SPARSEMEM_EXTREME=y
@@ -100,3 +108,10 @@
CONFIG_POWER3=y
CONFIG_POWER4=y
# CONFIG_FLATMEM_MANUAL is not set
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_WINDFARM_PM91=m
+CONFIG_SPLIT_PTLOCK_CPUS=4096
+CONFIG_WINDFARM_PM81=m
+CONFIG_KERNEL_START=0xc000000000000000
+# CONFIG_MAC_FLOPPY is not set
+
Modified: people/waldi/linux-2.6/debian/arch/powerpc/defines
==============================================================================
--- people/waldi/linux-2.6/debian/arch/powerpc/defines (original)
+++ people/waldi/linux-2.6/debian/arch/powerpc/defines Mon Jan 2 19:32:22 2006
@@ -1,20 +1,25 @@
[base]
flavours:
+ apus
powerpc
powerpc-smp
powerpc-miboot
powerpc64
-kernel-header-dirs: powerpc ppc ppc64 m68k
+kernel-header-dirs: powerpc ppc m68k
kernel-arch: powerpc
-kpkg-subarch: powerpc
+kpkg-subarch: ppc
[apus]
-kernel-arch: ppc
-kpkg-subarch: powerpc32
-depends: mkvmlinuz (>= 15)
+depends: mkvmlinuz (>= 18)
[powerpc]
-depends: mkvmlinuz (>= 15)
+depends: mkvmlinuz (>= 18)
[powerpc-smp]
-depends: mkvmlinuz (>= 15)
+depends: mkvmlinuz (>= 18)
+
+[powerpc-miboot]
+depends: mkvmlinuz (>= 18)
+
+[powerpc64]
+kpkg-subarch: powerpc64
Modified: people/waldi/linux-2.6/debian/arch/s390/config
==============================================================================
--- people/waldi/linux-2.6/debian/arch/s390/config (original)
+++ people/waldi/linux-2.6/debian/arch/s390/config Mon Jan 2 19:32:22 2006
@@ -12,8 +12,7 @@
CONFIG_STOP_MACHINE=y
CONFIG_SMP=y
CONFIG_NR_CPUS=32
-# CONFIG_HOTPLUG_CPU is not set
-# CONFIG_MARCH_Z990 is not set
+CONFIG_HOTPLUG_CPU=y
# CONFIG_PACK_STACK is not set
# CONFIG_CHECK_STACK is not set
# CONFIG_WARN_STACK is not set
@@ -52,6 +51,7 @@
# CONFIG_DASD_PROFILE is not set
CONFIG_DASD_ECKD=m
CONFIG_DASD_FBA=m
+# CONFIG_DASD_DIAG is not set
# CONFIG_DASD_CMB is not set
# CONFIG_ATA_OVER_ETH is not set
# CONFIG_MD_RAID10 is not set
@@ -174,3 +174,4 @@
# CONFIG_CRC_CCITT is not set
CONFIG_CRC32=m
CONFIG_KEXEC=y
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
Modified: people/waldi/linux-2.6/debian/arch/s390/config.s390
==============================================================================
--- people/waldi/linux-2.6/debian/arch/s390/config.s390 (original)
+++ people/waldi/linux-2.6/debian/arch/s390/config.s390 Mon Jan 2 19:32:22 2006
@@ -5,7 +5,7 @@
CONFIG_MATHEMU=y
CONFIG_MARCH_G5=y
# CONFIG_MARCH_Z900 is not set
+# CONFIG_MARCH_Z990 is not set
# CONFIG_IPL_TAPE is not set
CONFIG_IPL_VM=y
# CONFIG_LBD is not set
-# CONFIG_DASD_DIAG is not set
Modified: people/waldi/linux-2.6/debian/arch/s390/config.s390-tape
==============================================================================
--- people/waldi/linux-2.6/debian/arch/s390/config.s390-tape (original)
+++ people/waldi/linux-2.6/debian/arch/s390/config.s390-tape Mon Jan 2 19:32:22 2006
@@ -5,7 +5,7 @@
CONFIG_MATHEMU=y
CONFIG_MARCH_G5=y
# CONFIG_MARCH_Z900 is not set
+# CONFIG_MARCH_Z990 is not set
CONFIG_IPL_TAPE=y
# CONFIG_IPL_VM is not set
# CONFIG_LBD is not set
-# CONFIG_DASD_DIAG is not set
Modified: people/waldi/linux-2.6/debian/arch/s390/config.s390x
==============================================================================
--- people/waldi/linux-2.6/debian/arch/s390/config.s390x (original)
+++ people/waldi/linux-2.6/debian/arch/s390/config.s390x Mon Jan 2 19:32:22 2006
@@ -6,5 +6,6 @@
CONFIG_BINFMT_ELF32=y
# CONFIG_MARCH_G5 is not set
CONFIG_MARCH_Z900=y
+# CONFIG_MARCH_Z990 is not set
# CONFIG_IPL_TAPE is not set
CONFIG_IPL_VM=y
Modified: people/waldi/linux-2.6/debian/arch/sparc/config
==============================================================================
--- people/waldi/linux-2.6/debian/arch/sparc/config (original)
+++ people/waldi/linux-2.6/debian/arch/sparc/config Mon Jan 2 19:32:22 2006
@@ -76,7 +76,6 @@
CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM_SIZE=16384
CONFIG_ATA_OVER_ETH=m
-# CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INIA100 is not set
@@ -470,3 +469,7 @@
# CONFIG_SPARSEMEM_MANUAL is not set
# CONFIG_DISCONTIGMEM_MANUAL is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
Modified: people/waldi/linux-2.6/debian/arch/sparc/config.sparc64
==============================================================================
--- people/waldi/linux-2.6/debian/arch/sparc/config.sparc64 (original)
+++ people/waldi/linux-2.6/debian/arch/sparc/config.sparc64 Mon Jan 2 19:32:22 2006
@@ -66,7 +66,6 @@
CONFIG_BLK_DEV_IDECD=m
CONFIG_BLK_DEV_IDETAPE=m
CONFIG_BLK_DEV_IDEFLOPPY=m
-# CONFIG_IDE_TASK_IOCTL is not set
CONFIG_IDE_GENERIC=m
CONFIG_BLK_DEV_IDEPCI=y
# CONFIG_IDEPCI_SHARE_IRQ is not set
@@ -283,7 +282,6 @@
# CONFIG_TUNER_3036 is not set
# CONFIG_VIDEO_STRADIS is not set
# CONFIG_VIDEO_ZORAN is not set
-CONFIG_VIDEO_SAA7134=m
# CONFIG_VIDEO_MXB is not set
# CONFIG_VIDEO_DPC is not set
# CONFIG_VIDEO_HEXIUM_ORION is not set
Modified: people/waldi/linux-2.6/debian/arch/sparc/config.sparc64-smp
==============================================================================
--- people/waldi/linux-2.6/debian/arch/sparc/config.sparc64-smp (original)
+++ people/waldi/linux-2.6/debian/arch/sparc/config.sparc64-smp Mon Jan 2 19:32:22 2006
@@ -70,7 +70,6 @@
CONFIG_BLK_DEV_IDECD=m
CONFIG_BLK_DEV_IDETAPE=m
CONFIG_BLK_DEV_IDEFLOPPY=m
-# CONFIG_IDE_TASK_IOCTL is not set
CONFIG_IDE_GENERIC=m
CONFIG_BLK_DEV_IDEPCI=y
# CONFIG_IDEPCI_SHARE_IRQ is not set
@@ -287,7 +286,6 @@
# CONFIG_TUNER_3036 is not set
# CONFIG_VIDEO_STRADIS is not set
# CONFIG_VIDEO_ZORAN is not set
-CONFIG_VIDEO_SAA7134=m
# CONFIG_VIDEO_MXB is not set
# CONFIG_VIDEO_DPC is not set
# CONFIG_VIDEO_HEXIUM_ORION is not set
Modified: people/waldi/linux-2.6/debian/bin/gencontrol.py
==============================================================================
--- people/waldi/linux-2.6/debian/bin/gencontrol.py (original)
+++ people/waldi/linux-2.6/debian/bin/gencontrol.py Mon Jan 2 19:32:22 2006
@@ -76,6 +76,7 @@
for i in (
('compiler', 'COMPILER'),
('kernel-header-dirs', 'KERNEL_HEADER_DIRS'),
+ ('kpkg-arch', 'KPKG_ARCH'),
('kpkg-subarch', 'KPKG_SUBARCH'),
('type', 'TYPE'),
):
Added: people/waldi/linux-2.6/debian/bin/kconfig.ml
==============================================================================
--- (empty file)
+++ people/waldi/linux-2.6/debian/bin/kconfig.ml Mon Jan 2 19:32:22 2006
@@ -0,0 +1,135 @@
+#!/usr/bin/ocamlrun /usr/bin/ocaml
+
+let basedir = ref "debian/arch"
+let arch = ref ""
+let subarch = ref ""
+let flavour = ref ""
+let config_name = ref ""
+let verbose = ref false
+let archindir = ref false
+
+let spec = [
+ "-b", Arg.Set_string basedir, "base dir of the arch configurations [default: debian/arch]";
+ "-ba", Arg.Set archindir, "basedir includes arch";
+ "-a", Arg.Set_string arch, "arch";
+ "-s", Arg.Set_string subarch, "subarch";
+ "-f", Arg.Set_string flavour, "flavour";
+ "-v", Arg.Set verbose, "verbose";
+]
+let usage =
+ "./kconfig.ml [ -b basedir ] -a arch [ -s subarch ] -f flavour" ^ "\n" ^
+ "./kconfig.ml config_file"
+
+let () = Arg.parse
+ spec
+ (function s -> config_name := s)
+ usage
+
+let usage () = Arg.usage spec usage
+
+type options =
+ | Config_Yes of string
+ | Config_No of string
+ | Config_Module of string
+ | Config_Value of string * string
+ | Config_Comment of string
+ | Config_Empty
+
+let print_option = function
+ | Config_Yes s -> Printf.printf "CONFIG_%s=y\n" s
+ | Config_No s -> Printf.printf "# CONFIG_%s is not set\n" s
+ | Config_Module s -> Printf.printf "CONFIG_%s=m\n" s
+ | Config_Value (s,v) -> Printf.printf "CONFIG_%s=%s\n" s v
+ | Config_Comment s -> Printf.printf "#%s\n" s
+ | Config_Empty -> Printf.printf "\n"
+
+exception Comment
+
+let parse_line fd =
+ let line = input_line fd in
+ let len = String.length line in
+ if len = 0 then Config_Empty else
+ try
+ if len <= 9 then raise Comment else
+ match line.[0], line.[1], line.[2], line.[3], line.[4], line.[5], line.[6], line.[7], line.[8] with
+ | '#', ' ', 'C', 'O', 'N', 'F', 'I', 'G', '_' ->
+ begin
+ try
+ let space = String.index_from line 8 ' ' in
+ if String.sub line (space + 1) 10 = "is not set" then
+ let o = String.sub line 9 (space - 9) in
+ Config_No o
+ else raise Comment
+ with Not_found | Invalid_argument "String.sub" -> raise Comment
+ end
+ | '#', _, _, _, _, _, _, _, _ -> raise Comment
+ | 'C', 'O', 'N', 'F', 'I', 'G', _, _, _ ->
+ begin
+ try
+ let equal = String.index_from line 6 '=' in
+ let o = String.sub line 7 (equal - 7) in
+ let v = String.sub line (equal + 1) (len - equal - 1) in
+ match v with
+ | "y" -> Config_Yes o
+ | "m" -> Config_Module o
+ | _ -> Config_Value (o,v)
+ with Not_found | Invalid_argument "String.sub" -> raise Comment
+ end
+ | _ -> raise Comment
+ with Comment -> Config_Comment (String.sub line 1 (len - 1))
+
+module C = Map.Make (String)
+
+(* Map.add behavior ensures the latest entry is the one staying *)
+let rec parse_config fd m =
+ try
+ let line = parse_line fd in
+ match line with
+ | Config_Comment _ | Config_Empty -> parse_config fd m
+ | Config_Yes s | Config_No s | Config_Module s | Config_Value (s,_) ->
+ parse_config fd (C.add s line m)
+ with End_of_file -> m
+
+let print_config m = C.iter (function _ -> print_option) m
+
+let parse_config_file name m force =
+ try
+ let config = open_in name in
+ let m = parse_config config m in
+ close_in config;
+ m
+ with Sys_error s ->
+ if force then raise (Sys_error s) else m
+
+let () =
+ begin
+ if !verbose then
+ if !config_name <> "" then
+ Printf.eprintf "Reading config file %s" !config_name
+ else
+ Printf.eprintf "Creating config file for arch %s, subarch %s, flavour %s (basedir is %s)\n" !arch !subarch !flavour !basedir
+ end;
+ if !config_name <> "" then
+ try
+ let config = open_in !config_name in
+ let m = parse_config config C.empty in
+ print_config m;
+ close_in config
+ with Sys_error s -> Printf.eprintf "Error: %s\n" s
+ else if !arch <> "" && !flavour <> "" then
+ try
+ let dir = if !archindir then Filename.dirname !basedir else !basedir in
+ let m = parse_config_file (dir ^ "/config") C.empty false in
+ let archdir = dir ^ "/" ^ !arch in
+ let m = parse_config_file (archdir ^ "/config") m false in
+ let m, archdir =
+ if !subarch <> "" && !subarch <> "none" then
+ let archdir = archdir ^ "/" ^ !subarch in
+ parse_config_file (archdir ^ "/config") m false, archdir
+ else m, archdir
+ in
+ let m = parse_config_file (archdir ^ "/config." ^ !flavour) m true in
+ print_config m;
+ with Sys_error s -> Printf.eprintf "Error: %s\n" s
+ else
+ usage ()
Modified: people/waldi/linux-2.6/debian/changelog
==============================================================================
--- people/waldi/linux-2.6/debian/changelog (original)
+++ people/waldi/linux-2.6/debian/changelog Mon Jan 2 19:32:22 2006
@@ -1,3 +1,96 @@
+linux-2.6 (2.6.14+2.6.15-rc7-0experimental.3) UNRELEASED; urgency=low
+
+ [ Bastian Blank ]
+ * [s390] Update configs.
+
+ -- Bastian Blank <waldi at debian.org> Mon, 02 Jan 2006 11:23:55 +0100
+
+linux-2.6 (2.6.14+2.6.15-rc7-0experimental.2) experimental; urgency=low
+
+ [ Kyle McMartin ]
+ * Snag latest hppa.diff from cvs.parisc-linux.org.
+ * Update configs for 2.6.15.
+
+ [ Frederik Schüler ]
+ * Fix kconfig.ml call in rules.real.
+
+ [ Sven Luther ]
+ * [powerpc] Readded PReP Motorola PowerStack II Utah IDE interrupt
+ (Closes: #345424)
+ * [powerpc] Readded Marvell gigabit ethernet hotplug support which is not
+ yet upstream after all, only went to -mm.
+
+ -- Sven Luther <luther at debian.org> Sun, 1 Jan 2006 16:14:02 +0000
+
+linux-2.6 (2.6.14+2.6.15-rc7-0experimental.1) experimental; urgency=low
+
+ [ Kyle McMartin ]
+ * Change parisc kernel names to something less ambiguous.
+
+ [ dann frazier ]
+ * Update ia64 configs
+
+ [ maximilian attems ]
+ * Drop modular-ide.patch, nacked by ide upstream. Prevents udev to load
+ ide-generic and those successfull boots with initramfs-tools.
+ * Disable CONFIG_USB_BANDWIDTH, causes major trouble for alsa usb cards.
+
+ [ Norbert Tretkowski ]
+ * [alpha] Removed conflict with initramfs-tools, thanks vorlon for finding
+ the klibc bug!
+
+ [ Jonas Smedegaard ]
+ * Adjust short description of transitional package kernel-image-2.6-
+ 486 to mention 2.6 (not 2.6.12).
+ * Clean duplicate Kconfig options.
+
+ [ Frederik Schüler ]
+ * New upstream release cadidate.
+ * Add updated version of drivers-scsi-megaraid_splitup.patch.
+ * Deactivate CONFIG_IDE_TASK_IOCTL on alpha and ia64 and make it a global
+ option.
+ * Make CONFIG_VIDEO_SAA7134 a global option.
+ * New option CONFIG_CC_OPTIMIZE_FOR_SIZE set per-arch.
+
+ [ Sven Luther ]
+ * Added make-kpkg --arch option support to gencontrol.py.
+ * [powerpc] now set --arch kernel-package option correctly.
+ * [powerpc] Fixed apus patch for 2.6.15-rc7 (and beyond hopefully).
+ * [powerpc] Fixed config options, but i guess jonas broke it again with his
+ cleanup, oh well :)
+ * Added debian/bin/kconfig.ml to process config file snipplet, so we can
+ preserve the pre 2.6.15 ordering of config file snipplets. Upto 2.6.15
+ the kernel Kconfig magic apparently kept the later occuring config options,
+ but it seems that this is no more the case. Instead of catting the config
+ files together, not use the kconfig.ml script to read in the files from
+ more generic to more specific, and keep only the more specific.
+
+ [ Martin Michlmayr ]
+ * [arm] Don't define "compiler" since GCC 4.x is the default now anyway.
+ * [arm] Add descriptions for "class" and "longclass".
+ * [arm] Compile CONFIG_BLK_DEV_SL82C105 support into the kernel on
+ Footbridge.
+ * [arm] Compile ext3 support into the kernel on Footbridge.
+ * [arm] Turn on CONFIG_SERIAL_8250 support on Footbridge.
+
+ [ Jurij Smakov ]
+ * [sparc] Correct the patch for the atyfb framebuffer driver
+ (sparc64-atyfb-xl-gr.patch) to finally fix the console and X
+ image defects on Blade 100/150. The new patch is named
+ sparc64-atyfb-xl-gr-final.patch to avoid the confusion.
+ Thanks to Luis F. Ortiz for fixing the patch and Luigi Gangitano
+ for testing it out.
+
+ -- Sven Luther <luther at debian.org> Thu, 29 Dec 2005 09:48:36 +0000
+
+linux-2.6 (2.6.14+2.6.15-rc5-0experimental.1) experimental; urgency=low
+
+ * New upstream release candidate.
+ * Rename i386 368 flavour to 486.
+ * Add myself to uploaders.
+
+ -- Frederik Schüler <fs at debian.org> Fri, 9 Dec 2005 16:30:06 +0000
+
linux-2.6 (2.6.14+2.6.15-rc4-0experimental.1) experimental; urgency=low
[ Frederik Schüler ]
@@ -5,7 +98,14 @@
* Readdition of qla2xxx drivers, as firmware license has been fixed.
* Make CONFIG_PACKET, PACKET_MM and UNIX builtin on all architectures:
statically linked has better performance then modules due to TLB issue.
- * clean up debian-patches dir: remove all obsolete patches.
+ * clean up debian-patches dir: remove all obsolete patches:
+ - alpha-compile-fix.patch: obsolete
+ - amd64-int3-fix.patch: fixed since 2.6.12
+ - net-ipconntrack-nat-fix.patch: merged upstream after 2.6.14 release
+ - net-nf_queue-oops.patch: merged upstream after 2.6.14 release
+ - qla2xxx-removed.patch: obsolete
+ * Drop M386 support remains from the i386 386 flavour: built with M486
+ from now on.
[ Simon Horman ]
* Enable MKISS globally (closes: #340215)
@@ -25,7 +125,7 @@
shutdown on some sparc machines with serial console. Proper fix has
been incorporated upstream.
- -- Frederik Schüler <fs at debian.org> Thu, 1 Dec 2005 22:13:02 +0000
+ -- Frederik Schüler <fs at debian.org> Sun, 4 Dec 2005 12:31:04 +0000
linux-2.6 (2.6.14-3) unstable; urgency=low
Modified: people/waldi/linux-2.6/debian/patches-arch/hppa.diff
==============================================================================
--- people/waldi/linux-2.6/debian/patches-arch/hppa.diff (original)
+++ people/waldi/linux-2.6/debian/patches-arch/hppa.diff Mon Jan 2 19:32:22 2006
@@ -1,39 +1,10 @@
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/CREDITS CVS2_6_14_PA0/CREDITS
---- LINUS_2_6_14/CREDITS 2005-10-27 21:30:30.000000000 -0600
-+++ CVS2_6_14_PA0/CREDITS 2005-10-27 15:47:36.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/
-@@ -3399,6 +3398,15 @@
- S: 10200 Prague 10, Hostivar
- S: Czech Republic
-
-+N: Thibaut Varene
-+E: T-Bone at parisc-linux.org
-+W: http://www.parisc-linux.org/
-+P: 1024D/B7D2F063 E67C 0D43 A75E 12A5 BB1C FA2F 1E32 C3DA B7D2 F063
-+D: PA-RISC port minion, PDC and GSCPS2 drivers, debuglocks and other bits
-+D: Some bits in an ARM port, S1D13XXX FB driver, random patches here and there
-+D: AD1889 sound driver
-+S: Paris, France
-+
- N: Heikki Vatiainen
- E: hessu at cs.tut.fi
- D: Co-author of Multi-Protocol Over ATM (MPOA), some LANE hacks
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/Documentation/parisc/todo CVS2_6_14_PA0/Documentation/parisc/todo
---- LINUS_2_6_14/Documentation/parisc/todo 1969-12-31 17:00:00.000000000 -0700
-+++ CVS2_6_14_PA0/Documentation/parisc/todo 2005-04-27 00:45:20.000000000 -0600
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/Documentation/parisc/todo CVS2_6_15_RC7_PA0/Documentation/parisc/todo
+--- LINUS_2_6_15_RC7/Documentation/parisc/todo 1969-12-31 17:00:00.000000000 -0700
++++ CVS2_6_15_RC7_PA0/Documentation/parisc/todo 2005-10-28 19:28:34.000000000 -0600
@@ -0,0 +1,82 @@
-+Status 2005-03-07 :
++Status 2005-10-28 :
+-------------------
-+ - Merged to 2.6.11
++ - Merged to 2.6.15
+
+Todo:
+-----
@@ -113,28 +84,9 @@
+ - 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_14/MAINTAINERS CVS2_6_14_PA0/MAINTAINERS
---- LINUS_2_6_14/MAINTAINERS 2005-10-27 21:30:30.000000000 -0600
-+++ CVS2_6_14_PA0/MAINTAINERS 2005-10-20 08:42:21.000000000 -0600
-@@ -197,6 +197,15 @@
- W: http://linux.thorsten-knabe.de
- S: Maintained
-
-+AD1889 SOUND DRIVER
-+P: Kyle McMartin
-+M: kyle at parisc-linux.org
-+P: Thibaut Varene
-+M: T-Bone at parisc-linux.org
-+W: http://wiki.parisc-linux.org/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_14/arch/ia64/ia32/ia32_signal.c CVS2_6_14_PA0/arch/ia64/ia32/ia32_signal.c
---- LINUS_2_6_14/arch/ia64/ia32/ia32_signal.c 2005-10-27 21:30:33.000000000 -0600
-+++ CVS2_6_14_PA0/arch/ia64/ia32/ia32_signal.c 2005-09-14 06:54:22.000000000 -0600
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/arch/ia64/ia32/ia32_signal.c CVS2_6_15_RC7_PA0/arch/ia64/ia32/ia32_signal.c
+--- LINUS_2_6_15_RC7/arch/ia64/ia32/ia32_signal.c 2005-12-27 13:25:34.000000000 -0700
++++ CVS2_6_15_RC7_PA0/arch/ia64/ia32/ia32_signal.c 2005-09-14 06:54:22.000000000 -0600
@@ -24,6 +24,7 @@
#include <linux/unistd.h>
#include <linux/wait.h>
@@ -143,9 +95,9 @@
#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_14/arch/ia64/ia32/ia32priv.h CVS2_6_14_PA0/arch/ia64/ia32/ia32priv.h
---- LINUS_2_6_14/arch/ia64/ia32/ia32priv.h 2005-10-27 21:30:33.000000000 -0600
-+++ CVS2_6_14_PA0/arch/ia64/ia32/ia32priv.h 2005-04-12 14:38:26.000000000 -0600
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/arch/ia64/ia32/ia32priv.h CVS2_6_15_RC7_PA0/arch/ia64/ia32/ia32priv.h
+--- LINUS_2_6_15_RC7/arch/ia64/ia32/ia32priv.h 2005-12-27 13:25:34.000000000 -0700
++++ CVS2_6_15_RC7_PA0/arch/ia64/ia32/ia32priv.h 2005-12-19 05:42:13.000000000 -0700
@@ -225,58 +225,6 @@
unsigned int st_ino_hi;
};
@@ -205,10313 +157,3994 @@
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_14/arch/parisc/Kconfig CVS2_6_14_PA0/arch/parisc/Kconfig
---- LINUS_2_6_14/arch/parisc/Kconfig 2005-10-27 21:30:33.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/Kconfig 2005-09-24 17:20:57.000000000 -0600
-@@ -47,10 +47,10 @@
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/arch/parisc/kernel/cache.c CVS2_6_15_RC7_PA0/arch/parisc/kernel/cache.c
+--- LINUS_2_6_15_RC7/arch/parisc/kernel/cache.c 2005-12-27 13:25:34.000000000 -0700
++++ CVS2_6_15_RC7_PA0/arch/parisc/kernel/cache.c 2005-12-17 10:21:16.000000000 -0700
+@@ -29,9 +29,9 @@
+ #include <asm/processor.h>
+ #include <asm/sections.h>
- config ISA_DMA_API
- bool
-- default y
+-int split_tlb;
+-int dcache_stride;
+-int icache_stride;
++int split_tlb __read_mostly;
++int dcache_stride __read_mostly;
++int icache_stride __read_mostly;
+ EXPORT_SYMBOL(dcache_stride);
+
+
+@@ -45,29 +45,29 @@
+ EXPORT_SYMBOL(pa_tlb_lock);
+ #endif
+
+-struct pdc_cache_info cache_info;
++struct pdc_cache_info cache_info __read_mostly;
+ #ifndef CONFIG_PA20
+-static struct pdc_btlb_info btlb_info;
++static struct pdc_btlb_info btlb_info __read_mostly;
+ #endif
- config ARCH_MAY_HAVE_PC_FDC
- bool
-+ depends on BROKEN
- default y
+ #ifdef CONFIG_SMP
+ void
+ flush_data_cache(void)
+ {
+- on_each_cpu((void (*)(void *))flush_data_cache_local, NULL, 1, 1);
++ on_each_cpu(flush_data_cache_local, NULL, 1, 1);
+ }
+ void
+ flush_instruction_cache(void)
+ {
+- on_each_cpu((void (*)(void *))flush_instruction_cache_local, NULL, 1, 1);
++ on_each_cpu(flush_instruction_cache_local, NULL, 1, 1);
+ }
+ #endif
- source "init/Kconfig"
-@@ -154,13 +154,14 @@
+ void
+ flush_cache_all_local(void)
+ {
+- flush_instruction_cache_local();
+- flush_data_cache_local();
++ flush_instruction_cache_local(NULL);
++ flush_data_cache_local(NULL);
+ }
+ EXPORT_SYMBOL(flush_cache_all_local);
- config ARCH_DISCONTIGMEM_ENABLE
- 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)
- or have huge holes in the physical address space for other reasons.
- See <file:Documentation/vm/numa> for more.
-
-+source "kernel/Kconfig.hz"
- source "mm/Kconfig"
-
- config PREEMPT
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/arch/parisc/Makefile CVS2_6_14_PA0/arch/parisc/Makefile
---- LINUS_2_6_14/arch/parisc/Makefile 2005-10-27 21:30:33.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/Makefile 2005-09-14 13:53:57.000000000 -0600
-@@ -20,7 +20,8 @@
- CHECKFLAGS += -D__hppa__=1
-
- ifdef CONFIG_64BIT
--CROSS_COMPILE := hppa64-linux-
-+CROSS_COMPILE := $(shell if [ -x /usr/bin/hppa64-linux-gnu-gcc ]; then \
-+ echo hppa64-linux-gnu-; else echo hppa64-linux-; fi)
- UTS_MACHINE := parisc64
- CHECKFLAGS += -D__LP64__=1 -m64
- else
-@@ -34,6 +35,14 @@
-
- OBJCOPY_FLAGS =-O binary -R .note -R .comment -S
-
-+GCC_VERSION := $(call cc-version)
-+ifneq ($(shell if [ -z $(GCC_VERSION) ] ; then echo "bad"; fi ;),)
-+$(error Sorry, couldn't find ($(cc-version)).)
-+endif
-+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
-@@ -43,7 +52,7 @@
- # Currently we save and restore fpregs on all kernel entry/interruption paths.
- # If that gets optimized, we might need to disable the use of fpregs in the
- # kernel.
--#cflags-y += -mdisable-fpregs
-+cflags-y += -mdisable-fpregs
-
- # Without this, "ld -r" results in .text sections that are too big
- # (> 0x40000) for branches to reach stubs.
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/arch/parisc/configs/712_defconfig CVS2_6_14_PA0/arch/parisc/configs/712_defconfig
---- LINUS_2_6_14/arch/parisc/configs/712_defconfig 2005-10-27 21:30:33.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/configs/712_defconfig 2005-10-21 21:16:47.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.14-rc5-pa1
-+# Fri Oct 21 23:04:34 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_ARCH_MAY_HAVE_PC_FDC=y
-
- #
- # Code maturity level options
-@@ -15,35 +19,40 @@
- # CONFIG_CLEAN_COMPILE is not set
- CONFIG_BROKEN=y
- CONFIG_BROKEN_ON_SMP=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-
- #
- # General setup
- #
- CONFIG_LOCALVERSION=""
-+# CONFIG_LOCALVERSION_AUTO is not set
- CONFIG_SWAP=y
- CONFIG_SYSVIPC=y
- CONFIG_POSIX_MQUEUE=y
- # 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_INITRAMFS_SOURCE=""
- # CONFIG_EMBEDDED is not set
- 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 +74,18 @@
- # 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_HZ_100 is not set
-+CONFIG_HZ_250=y
-+# CONFIG_HZ_1000 is not set
-+CONFIG_HZ=250
-+CONFIG_SELECT_MEMORY_MODEL=y
-+CONFIG_FLATMEM_MANUAL=y
-+# CONFIG_DISCONTIGMEM_MANUAL is not set
-+# CONFIG_SPARSEMEM_MANUAL is not set
-+CONFIG_FLATMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+# CONFIG_SPARSEMEM_STATIC is not set
- # CONFIG_PREEMPT is not set
- # CONFIG_HPUX is not set
-
-@@ -81,8 +99,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 +106,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
-@@ -104,137 +123,7 @@
- CONFIG_BINFMT_MISC=m
-
- #
--# Device Drivers
--#
--
--#
--# Generic Driver Options
--#
--# CONFIG_STANDALONE is not set
--# CONFIG_PREVENT_FIRMWARE_BUILD is not set
--CONFIG_FW_LOADER=y
--# CONFIG_DEBUG_DRIVER is not set
--
--#
--# Memory Technology Devices (MTD)
--#
--# CONFIG_MTD is not set
--
--#
--# Parallel port support
--#
--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
--
--#
--# Plug and Play support
--#
--
--#
--# Block devices
--#
--# CONFIG_BLK_DEV_FD is not set
--# CONFIG_PARIDE is not set
--CONFIG_BLK_DEV_LOOP=y
--CONFIG_BLK_DEV_CRYPTOLOOP=y
--# CONFIG_BLK_DEV_NBD is not set
--CONFIG_BLK_DEV_RAM=y
--CONFIG_BLK_DEV_RAM_COUNT=16
--CONFIG_BLK_DEV_RAM_SIZE=6144
--CONFIG_BLK_DEV_INITRD=y
--CONFIG_INITRAMFS_SOURCE=""
--# CONFIG_CDROM_PKTCDVD is not set
--
--#
--# IO Schedulers
--#
--CONFIG_IOSCHED_NOOP=y
--CONFIG_IOSCHED_AS=y
--CONFIG_IOSCHED_DEADLINE=y
--CONFIG_IOSCHED_CFQ=y
--
--#
--# ATA/ATAPI/MFM/RLL support
--#
--# CONFIG_IDE 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=y
--CONFIG_CHR_DEV_ST=y
--# CONFIG_CHR_DEV_OSST is not set
--CONFIG_BLK_DEV_SR=y
--# CONFIG_BLK_DEV_SR_VENDOR is not set
--CONFIG_CHR_DEV_SG=y
--
--#
--# 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 is not set
--
--#
--# SCSI low-level drivers
--#
--# CONFIG_SCSI_SATA is not set
--# 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
--
--#
--# 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 is not set
--# CONFIG_MD_RAID5 is not set
--# CONFIG_MD_RAID6 is not set
--# CONFIG_MD_MULTIPATH is not set
--# CONFIG_MD_FAULTY is not set
--# CONFIG_BLK_DEV_DM is not set
--
--#
--# Fusion MPT device support
--#
--
--#
--# IEEE 1394 (FireWire) support
--#
--# CONFIG_IEEE1394 is not set
--
--#
--# I2O device support
--#
--
--#
--# Networking support
-+# Networking
- #
- CONFIG_NET=y
-
-@@ -243,12 +132,14 @@
- #
- CONFIG_PACKET=y
- CONFIG_PACKET_MMAP=y
--CONFIG_NETLINK_DEV=y
- CONFIG_UNIX=y
-+CONFIG_XFRM=y
-+CONFIG_XFRM_USER=m
- CONFIG_NET_KEY=m
- CONFIG_INET=y
- CONFIG_IP_MULTICAST=y
- # CONFIG_IP_ADVANCED_ROUTER is not set
-+CONFIG_IP_FIB_HASH=y
- CONFIG_IP_PNP=y
- CONFIG_IP_PNP_DHCP=y
- CONFIG_IP_PNP_BOOTP=y
-@@ -262,8 +153,10 @@
- CONFIG_INET_ESP=m
- # CONFIG_INET_IPCOMP is not set
- CONFIG_INET_TUNNEL=m
--CONFIG_IP_TCPDIAG=y
--# CONFIG_IP_TCPDIAG_IPV6 is not set
-+CONFIG_INET_DIAG=m
-+CONFIG_INET_TCP_DIAG=m
-+# CONFIG_TCP_CONG_ADVANCED is not set
-+CONFIG_TCP_CONG_BIC=y
-
- #
- # IP: Virtual Server Configuration
-@@ -272,6 +165,7 @@
- # CONFIG_IPV6 is not set
- CONFIG_NETFILTER=y
- # CONFIG_NETFILTER_DEBUG is not set
-+# CONFIG_NETFILTER_NETLINK is not set
-
- #
- # IP: Netfilter Configuration
-@@ -279,11 +173,14 @@
- CONFIG_IP_NF_CONNTRACK=m
- # CONFIG_IP_NF_CT_ACCT is not set
- CONFIG_IP_NF_CONNTRACK_MARK=y
-+# CONFIG_IP_NF_CONNTRACK_EVENTS is not set
- CONFIG_IP_NF_CT_PROTO_SCTP=m
- CONFIG_IP_NF_FTP=m
- CONFIG_IP_NF_IRC=m
-+# CONFIG_IP_NF_NETBIOS_NS is not set
- CONFIG_IP_NF_TFTP=m
- CONFIG_IP_NF_AMANDA=m
-+# CONFIG_IP_NF_PPTP is not set
- CONFIG_IP_NF_QUEUE=m
- CONFIG_IP_NF_IPTABLES=m
- CONFIG_IP_NF_MATCH_LIMIT=m
-@@ -307,21 +204,23 @@
- # CONFIG_IP_NF_MATCH_ADDRTYPE is not set
- # CONFIG_IP_NF_MATCH_REALM is not set
- CONFIG_IP_NF_MATCH_SCTP=m
-+# CONFIG_IP_NF_MATCH_DCCP is not set
- CONFIG_IP_NF_MATCH_COMMENT=m
- CONFIG_IP_NF_MATCH_CONNMARK=m
- CONFIG_IP_NF_MATCH_HASHLIMIT=m
-+# CONFIG_IP_NF_MATCH_STRING is not set
- 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_TARGET_NFQUEUE is not set
- 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_LOCAL is not set
- CONFIG_IP_NF_NAT_SNMP_BASIC=m
- CONFIG_IP_NF_NAT_IRC=m
- CONFIG_IP_NF_NAT_FTP=m
-@@ -333,6 +232,7 @@
- CONFIG_IP_NF_TARGET_DSCP=m
- CONFIG_IP_NF_TARGET_MARK=m
- CONFIG_IP_NF_TARGET_CLASSIFY=m
-+# CONFIG_IP_NF_TARGET_TTL is not set
- CONFIG_IP_NF_TARGET_CONNMARK=m
- CONFIG_IP_NF_TARGET_CLUSTERIP=m
- CONFIG_IP_NF_RAW=m
-@@ -340,10 +240,11 @@
- 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
-+
-+#
-+# DCCP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_DCCP is not set
-
- #
- # SCTP Configuration (EXPERIMENTAL)
-@@ -362,10 +263,6 @@
- # 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 is not set
- # CONFIG_NET_CLS_ROUTE is not set
-
-@@ -373,17 +270,162 @@
- # Network testing
- #
- CONFIG_NET_PKTGEN=m
--# CONFIG_NETPOLL is not set
--# CONFIG_NET_POLL_CONTROLLER is not set
- # CONFIG_HAMRADIO is not set
- # CONFIG_IRDA is not set
- # CONFIG_BT is not set
-+# CONFIG_IEEE80211 is not set
-+
-+#
-+# Device Drivers
-+#
-+
-+#
-+# Generic Driver Options
-+#
-+# CONFIG_STANDALONE is not set
-+# CONFIG_PREVENT_FIRMWARE_BUILD is not set
-+CONFIG_FW_LOADER=y
-+# CONFIG_DEBUG_DRIVER is not set
-+
-+#
-+# Connector - unified userspace <-> kernelspace linker
-+#
-+# CONFIG_CONNECTOR is not set
-+
-+#
-+# Memory Technology Devices (MTD)
-+#
-+# CONFIG_MTD is not set
-+
-+#
-+# Parallel port support
-+#
-+CONFIG_PARPORT=y
-+CONFIG_PARPORT_PC=m
-+# CONFIG_PARPORT_PC_FIFO is not set
-+# CONFIG_PARPORT_PC_SUPERIO is not set
-+CONFIG_PARPORT_GSC=y
-+# CONFIG_PARPORT_1284 is not set
-+
-+#
-+# Plug and Play support
-+#
-+
-+#
-+# Block devices
-+#
-+# 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
-+CONFIG_BLK_DEV_RAM=y
-+CONFIG_BLK_DEV_RAM_COUNT=16
-+CONFIG_BLK_DEV_RAM_SIZE=6144
-+CONFIG_BLK_DEV_INITRD=y
-+# CONFIG_CDROM_PKTCDVD 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 is not set
-+
-+#
-+# SCSI device support
-+#
-+# CONFIG_RAID_ATTRS is not set
-+CONFIG_SCSI=y
-+CONFIG_SCSI_PROC_FS=y
-+
-+#
-+# SCSI support type (disk, tape, CD-ROM)
-+#
-+CONFIG_BLK_DEV_SD=y
-+CONFIG_CHR_DEV_ST=y
-+# CONFIG_CHR_DEV_OSST is not set
-+CONFIG_BLK_DEV_SR=y
-+# CONFIG_BLK_DEV_SR_VENDOR is not set
-+CONFIG_CHR_DEV_SG=y
-+# CONFIG_CHR_DEV_SCH is not set
-+
-+#
-+# 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 is not set
-+CONFIG_SCSI_ISCSI_ATTRS=m
-+# CONFIG_SCSI_SAS_ATTRS is not set
-+
-+#
-+# SCSI low-level drivers
-+#
-+# CONFIG_SCSI_SATA is not set
-+# CONFIG_SCSI_PPA is not set
-+# CONFIG_SCSI_IMM is not set
-+CONFIG_SCSI_LASI700=y
-+CONFIG_53C700_LE_ON_BE=y
-+# CONFIG_SCSI_ZALON is not set
-+CONFIG_SCSI_DEBUG=m
-+
-+#
-+# 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 is not set
-+# CONFIG_MD_RAID5 is not set
-+# CONFIG_MD_RAID6 is not set
-+# CONFIG_MD_MULTIPATH is not set
-+# CONFIG_MD_FAULTY is not set
-+# CONFIG_BLK_DEV_DM is not set
-+
-+#
-+# Fusion MPT device support
-+#
-+# CONFIG_FUSION is not set
-+
-+#
-+# IEEE 1394 (FireWire) support
-+#
-+# CONFIG_IEEE1394 is not set
-+
-+#
-+# I2O device support
-+#
-+
-+#
-+# Network device support
-+#
- CONFIG_NETDEVICES=y
- CONFIG_DUMMY=m
- CONFIG_BONDING=m
- # CONFIG_EQUALIZER is not set
- CONFIG_TUN=m
--# CONFIG_ETHERTAP is not set
-+
-+#
-+# PHY device support
-+#
-+# CONFIG_PHYLIB is not set
-
- #
- # Ethernet (10 or 100Mbit)
-@@ -391,6 +433,7 @@
- CONFIG_NET_ETHERNET=y
- CONFIG_MII=m
- CONFIG_LASI_82596=y
-+# CONFIG_NET_POCKET is not set
-
- #
- # Ethernet (1000 Mbit)
-@@ -414,6 +457,7 @@
- #
- # CONFIG_STRIP is not set
- # CONFIG_ATMEL is not set
-+# CONFIG_HOSTAP is not set
-
- #
- # Wan interfaces
-@@ -431,6 +475,8 @@
- # CONFIG_SLIP is not set
- # CONFIG_SHAPER is not set
- # CONFIG_NETCONSOLE is not set
-+# CONFIG_NETPOLL is not set
-+# CONFIG_NET_POLL_CONTROLLER is not set
-
- #
- # ISDN subsystem
-@@ -460,19 +506,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 +516,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 +528,19 @@
- # 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
-+
-+#
- # Character devices
- #
- CONFIG_VT=y
-@@ -511,7 +558,6 @@
- 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
-
- #
-@@ -546,12 +592,14 @@
- #
- # 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
-@@ -562,10 +610,20 @@
- # CONFIG_W1 is not set
-
- #
-+# Hardware Monitoring support
-+#
-+# CONFIG_HWMON is not set
-+# CONFIG_HWMON_VID is not set
-+
-+#
- # Misc devices
- #
-
- #
-+# Multimedia Capabilities Port drivers
-+#
-+
-+#
- # Multimedia devices
- #
- # CONFIG_VIDEO_DEV is not set
-@@ -579,28 +637,36 @@
- # 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
- # CONFIG_FONT_6x11 is not set
-+# CONFIG_FONT_7x14 is not set
- # CONFIG_FONT_PEARL_8x8 is not set
- # CONFIG_FONT_ACORN_8x8 is not set
- # CONFIG_FONT_MINI_4x6 is not set
- # CONFIG_FONT_SUN8x16 is not set
- # CONFIG_FONT_SUN12x22 is not set
-+# CONFIG_FONT_10x18 is not set
-
- #
- # Logo configuration
-@@ -610,6 +676,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 +724,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,10 +734,20 @@
- # CONFIG_MMC is not set
-
- #
-+# InfiniBand support
-+#
-+# CONFIG_INFINIBAND is not set
-+
-+#
-+# SN Devices
-+#
-+
-+#
- # File systems
- #
- CONFIG_EXT2_FS=y
- # CONFIG_EXT2_FS_XATTR is not set
-+# CONFIG_EXT2_FS_XIP is not set
- CONFIG_EXT3_FS=y
- # CONFIG_EXT3_FS_XATTR is not set
- CONFIG_JBD=y
-@@ -682,20 +755,24 @@
- # 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
- CONFIG_XFS_FS=m
--# CONFIG_XFS_RT is not set
-+CONFIG_XFS_EXPORT=y
- # CONFIG_XFS_QUOTA is not set
- # CONFIG_XFS_SECURITY is not set
- # CONFIG_XFS_POSIX_ACL is not set
-+# CONFIG_XFS_RT is not set
- # CONFIG_MINIX_FS is not set
- # CONFIG_ROMFS_FS is not set
-+CONFIG_INOTIFY=y
- # CONFIG_QUOTA is not set
- CONFIG_DNOTIFY=y
- # CONFIG_AUTOFS_FS is not set
- CONFIG_AUTOFS4_FS=y
-+# CONFIG_FUSE_FS is not set
-
- #
- # CD-ROM/DVD Filesystems
-@@ -722,14 +799,11 @@
- CONFIG_PROC_FS=y
- CONFIG_PROC_KCORE=y
- CONFIG_SYSFS=y
--# CONFIG_DEVFS_FS is not set
--# CONFIG_DEVPTS_FS_XATTR is not set
- CONFIG_TMPFS=y
--CONFIG_TMPFS_XATTR=y
--# CONFIG_TMPFS_SECURITY is not set
- # CONFIG_HUGETLBFS is not set
- # CONFIG_HUGETLB_PAGE is not set
- CONFIG_RAMFS=y
-+# CONFIG_RELAYFS_FS is not set
-
- #
- # Miscellaneous filesystems
-@@ -754,16 +828,19 @@
- #
- CONFIG_NFS_FS=y
- CONFIG_NFS_V3=y
-+# CONFIG_NFS_V3_ACL is not set
- CONFIG_NFS_V4=y
- CONFIG_NFS_DIRECTIO=y
- CONFIG_NFSD=m
- CONFIG_NFSD_V3=y
-+# CONFIG_NFSD_V3_ACL is not set
- CONFIG_NFSD_V4=y
- CONFIG_NFSD_TCP=y
- CONFIG_ROOT_NFS=y
- CONFIG_LOCKD=y
- CONFIG_LOCKD_V4=y
- CONFIG_EXPORTFS=m
-+CONFIG_NFS_COMMON=y
- CONFIG_SUNRPC=y
- CONFIG_SUNRPC_GSS=y
- CONFIG_RPCSEC_GSS_KRB5=y
-@@ -778,6 +855,7 @@
- # CONFIG_NCP_FS is not set
- # CONFIG_CODA_FS is not set
- # CONFIG_AFS_FS is not set
-+# CONFIG_9P_FS is not set
-
- #
- # Partition Types
-@@ -838,13 +916,19 @@
- #
- # Kernel hacking
- #
-+# CONFIG_PRINTK_TIME is not set
- CONFIG_DEBUG_KERNEL=y
- CONFIG_MAGIC_SYSRQ=y
-+CONFIG_LOG_BUF_SHIFT=16
-+CONFIG_DETECT_SOFTLOCKUP=y
- # 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 +949,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,9 +967,14 @@
- CONFIG_CRYPTO_TEST=m
-
- #
-+# Hardware crypto devices
-+#
-+
-+#
- # Library routines
- #
- CONFIG_CRC_CCITT=m
-+# CONFIG_CRC16 is not set
- CONFIG_CRC32=y
- CONFIG_LIBCRC32C=m
- CONFIG_ZLIB_INFLATE=m
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/arch/parisc/configs/a500_defconfig CVS2_6_14_PA0/arch/parisc/configs/a500_defconfig
---- LINUS_2_6_14/arch/parisc/configs/a500_defconfig 2005-10-27 21:30:33.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/configs/a500_defconfig 2005-10-21 21:16:47.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.14-rc5-pa1
-+# Fri Oct 21 23:04:54 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_ARCH_MAY_HAVE_PC_FDC=y
-
- #
- # Code maturity level options
-@@ -19,26 +20,32 @@
- CONFIG_BROKEN=y
- CONFIG_BROKEN_ON_SMP=y
- CONFIG_LOCK_KERNEL=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-
- #
- # General setup
- #
- CONFIG_LOCALVERSION=""
-+# CONFIG_LOCALVERSION_AUTO is not set
- CONFIG_SWAP=y
- CONFIG_SYSVIPC=y
- CONFIG_POSIX_MQUEUE=y
- # 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_INITRAMFS_SOURCE=""
- 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 +55,7 @@
- CONFIG_CC_ALIGN_LOOPS=0
- CONFIG_CC_ALIGN_JUMPS=0
- # CONFIG_TINY_SHMEM is not set
-+CONFIG_BASE_SMALL=0
-
- #
- # Loadable module support
-@@ -74,7 +82,19 @@
- CONFIG_64BIT=y
- CONFIG_SMP=y
- CONFIG_HOTPLUG_CPU=y
-+CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
-+# CONFIG_HZ_100 is not set
-+CONFIG_HZ_250=y
-+# CONFIG_HZ_1000 is not set
-+CONFIG_HZ=250
-+CONFIG_SELECT_MEMORY_MODEL=y
-+# CONFIG_FLATMEM_MANUAL is not set
-+CONFIG_DISCONTIGMEM_MANUAL=y
-+# CONFIG_SPARSEMEM_MANUAL is not set
- CONFIG_DISCONTIGMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+CONFIG_NEED_MULTIPLE_NODES=y
-+# CONFIG_SPARSEMEM_STATIC is not set
- # CONFIG_PREEMPT is not set
- CONFIG_COMPAT=y
- CONFIG_NR_CPUS=8
-@@ -85,7 +105,7 @@
- # CONFIG_GSC is not set
- 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
-@@ -96,6 +116,8 @@
- CONFIG_PCCARD=m
- # CONFIG_PCMCIA_DEBUG is not set
- CONFIG_PCMCIA=m
-+# CONFIG_PCMCIA_LOAD_CIS is not set
-+CONFIG_PCMCIA_IOCTL=y
- CONFIG_CARDBUS=y
-
- #
-@@ -104,7 +126,6 @@
- CONFIG_YENTA=m
- CONFIG_PD6729=m
- CONFIG_I82092=m
--CONFIG_TCIC=m
- CONFIG_PCCARD_NONSTATIC=m
-
- #
-@@ -127,6 +148,203 @@
- # CONFIG_BINFMT_MISC is not set
-
- #
-+# Networking
-+#
-+CONFIG_NET=y
-+
-+#
-+# Networking options
-+#
-+CONFIG_PACKET=y
-+CONFIG_PACKET_MMAP=y
-+CONFIG_UNIX=y
-+CONFIG_XFRM=y
-+CONFIG_XFRM_USER=m
-+CONFIG_NET_KEY=m
-+CONFIG_INET=y
-+CONFIG_IP_MULTICAST=y
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+CONFIG_IP_FIB_HASH=y
-+CONFIG_IP_PNP=y
-+CONFIG_IP_PNP_DHCP=y
-+CONFIG_IP_PNP_BOOTP=y
-+# CONFIG_IP_PNP_RARP is not set
-+# CONFIG_NET_IPIP is not set
-+# CONFIG_NET_IPGRE 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 is not set
-+CONFIG_INET_TUNNEL=m
-+CONFIG_INET_DIAG=y
-+CONFIG_INET_TCP_DIAG=y
-+# CONFIG_TCP_CONG_ADVANCED is not set
-+CONFIG_TCP_CONG_BIC=y
-+
-+#
-+# IP: Virtual Server Configuration
-+#
-+# CONFIG_IP_VS is not set
-+CONFIG_IPV6=m
-+# CONFIG_IPV6_PRIVACY is not set
-+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_NETFILTER_NETLINK is not set
-+
-+#
-+# IP: Netfilter Configuration
-+#
-+CONFIG_IP_NF_CONNTRACK=m
-+# CONFIG_IP_NF_CT_ACCT is not set
-+CONFIG_IP_NF_CONNTRACK_MARK=y
-+# CONFIG_IP_NF_CONNTRACK_EVENTS is not set
-+CONFIG_IP_NF_CT_PROTO_SCTP=m
-+CONFIG_IP_NF_FTP=m
-+CONFIG_IP_NF_IRC=m
-+# CONFIG_IP_NF_NETBIOS_NS is not set
-+CONFIG_IP_NF_TFTP=m
-+CONFIG_IP_NF_AMANDA=m
-+# CONFIG_IP_NF_PPTP is not set
-+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_ADDRTYPE is not set
-+# CONFIG_IP_NF_MATCH_REALM is not set
-+CONFIG_IP_NF_MATCH_SCTP=m
-+# CONFIG_IP_NF_MATCH_DCCP is not set
-+CONFIG_IP_NF_MATCH_COMMENT=m
-+CONFIG_IP_NF_MATCH_CONNMARK=m
-+CONFIG_IP_NF_MATCH_HASHLIMIT=m
-+# CONFIG_IP_NF_MATCH_STRING is not set
-+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_TARGET_NFQUEUE is not set
-+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_TTL is not set
-+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 is not set
-+CONFIG_IP6_NF_IPTABLES=m
-+# CONFIG_IP6_NF_MATCH_LIMIT is not set
-+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 is not set
-+# CONFIG_IP6_NF_MATCH_OWNER is not set
-+# CONFIG_IP6_NF_MATCH_MARK is not set
-+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
-+# CONFIG_IP6_NF_MATCH_AHESP is not set
-+# CONFIG_IP6_NF_MATCH_LENGTH is not set
-+# CONFIG_IP6_NF_MATCH_EUI64 is not set
-+CONFIG_IP6_NF_FILTER=m
-+CONFIG_IP6_NF_TARGET_LOG=m
-+CONFIG_IP6_NF_TARGET_REJECT=m
-+# CONFIG_IP6_NF_TARGET_NFQUEUE is not set
-+CONFIG_IP6_NF_MANGLE=m
-+# CONFIG_IP6_NF_TARGET_MARK is not set
-+# CONFIG_IP6_NF_TARGET_HL is not set
-+CONFIG_IP6_NF_RAW=m
-+
-+#
-+# DCCP Configuration (EXPERIMENTAL)
-+#
-+CONFIG_IP_DCCP=m
-+CONFIG_INET_DCCP_DIAG=m
-+
-+#
-+# DCCP CCIDs Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_DCCP_CCID3 is not set
-+
-+#
-+# DCCP Kernel Hacking
-+#
-+# CONFIG_IP_DCCP_DEBUG is not set
-+
-+#
-+# SCTP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_SCTP is not set
-+# CONFIG_ATM is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_VLAN_8021Q is not set
-+# CONFIG_DECNET is not set
-+CONFIG_LLC=m
-+CONFIG_LLC2=m
-+# 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
-+# CONFIG_NET_SCHED is not set
-+# CONFIG_NET_CLS_ROUTE is not set
-+
-+#
-+# Network testing
-+#
-+CONFIG_NET_PKTGEN=m
-+# CONFIG_HAMRADIO is not set
-+# CONFIG_IRDA is not set
-+# CONFIG_BT is not set
-+# CONFIG_IEEE80211 is not set
-+
-+#
- # Device Drivers
- #
-
-@@ -139,6 +357,11 @@
- # CONFIG_DEBUG_DRIVER is not set
-
- #
-+# Connector - unified userspace <-> kernelspace linker
-+#
-+# CONFIG_CONNECTOR is not set
-+
-+#
- # Memory Technology Devices (MTD)
- #
- # CONFIG_MTD is not set
-@@ -169,7 +392,6 @@
- CONFIG_BLK_DEV_RAM_COUNT=16
- CONFIG_BLK_DEV_RAM_SIZE=6144
- CONFIG_BLK_DEV_INITRD=y
--CONFIG_INITRAMFS_SOURCE=""
- # CONFIG_CDROM_PKTCDVD is not set
-
- #
-@@ -189,6 +411,7 @@
- #
- # SCSI device support
- #
-+CONFIG_RAID_ATTRS=m
- CONFIG_SCSI=y
- CONFIG_SCSI_PROC_FS=y
-
-@@ -201,6 +424,7 @@
- CONFIG_BLK_DEV_SR=y
- # CONFIG_BLK_DEV_SR_VENDOR is not set
- CONFIG_CHR_DEV_SG=y
-+# CONFIG_CHR_DEV_SCH is not set
-
- #
- # Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-@@ -215,6 +439,7 @@
- CONFIG_SCSI_SPI_ATTRS=y
- CONFIG_SCSI_FC_ATTRS=m
- CONFIG_SCSI_ISCSI_ATTRS=m
-+CONFIG_SCSI_SAS_ATTRS=m
-
- #
- # SCSI low-level drivers
-@@ -229,14 +454,12 @@
- # CONFIG_SCSI_ADVANSYS is not set
- # CONFIG_MEGARAID_NEWGEN is not set
- # CONFIG_MEGARAID_LEGACY is not set
-+# CONFIG_MEGARAID_SAS is not set
- # CONFIG_SCSI_SATA is not set
--# CONFIG_SCSI_BUSLOGIC is not set
- # CONFIG_SCSI_CPQFCTS is not set
- # CONFIG_SCSI_DMX3191D 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_IPS is not set
- # CONFIG_SCSI_INITIO is not set
- # CONFIG_SCSI_INIA100 is not set
-@@ -246,8 +469,6 @@
- CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
- # CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
- # CONFIG_SCSI_IPR is not set
--# CONFIG_SCSI_PCI2000 is not set
--# CONFIG_SCSI_PCI2220I is not set
- # CONFIG_SCSI_QLOGIC_ISP is not set
- CONFIG_SCSI_QLOGIC_FC=m
- # CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set
-@@ -258,7 +479,9 @@
- # CONFIG_SCSI_QLA22XX is not set
- CONFIG_SCSI_QLA2300=m
- CONFIG_SCSI_QLA2322=m
--CONFIG_SCSI_QLA6312=m
-+# CONFIG_SCSI_QLA6312 is not set
-+# CONFIG_SCSI_QLA24XX is not set
-+# CONFIG_SCSI_LPFC is not set
- # CONFIG_SCSI_DC395x is not set
- # CONFIG_SCSI_DC390T is not set
- CONFIG_SCSI_DEBUG=m
-@@ -288,8 +511,11 @@
- #
- # Fusion MPT device support
- #
--CONFIG_FUSION=m
--CONFIG_FUSION_MAX_SGE=40
-+CONFIG_FUSION=y
-+CONFIG_FUSION_SPI=m
-+CONFIG_FUSION_FC=m
-+# CONFIG_FUSION_SAS is not set
-+CONFIG_FUSION_MAX_SGE=128
- CONFIG_FUSION_CTL=m
-
- #
-@@ -303,153 +529,13 @@
- # CONFIG_I2O is not set
-
- #
--# Networking support
--#
--CONFIG_NET=y
--
--#
--# Networking options
-+# Network device support
- #
--CONFIG_PACKET=y
--CONFIG_PACKET_MMAP=y
--CONFIG_NETLINK_DEV=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=y
--CONFIG_IP_PNP_BOOTP=y
--# CONFIG_IP_PNP_RARP is not set
--# CONFIG_NET_IPIP is not set
--# CONFIG_NET_IPGRE 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 is not set
--CONFIG_INET_TUNNEL=m
--CONFIG_IP_TCPDIAG=y
--# CONFIG_IP_TCPDIAG_IPV6 is not set
--
--#
--# IP: Virtual Server Configuration
--#
--# CONFIG_IP_VS is not set
--# CONFIG_IPV6 is not set
--CONFIG_NETFILTER=y
--# CONFIG_NETFILTER_DEBUG is not set
--
--#
--# IP: Netfilter Configuration
--#
--CONFIG_IP_NF_CONNTRACK=m
--# CONFIG_IP_NF_CT_ACCT is not set
--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_ADDRTYPE is not set
--# CONFIG_IP_NF_MATCH_REALM is not set
--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
--CONFIG_XFRM=y
--CONFIG_XFRM_USER=m
--
--#
--# SCTP Configuration (EXPERIMENTAL)
--#
--# CONFIG_IP_SCTP is not set
--# CONFIG_ATM is not set
--# CONFIG_BRIDGE is not set
--# CONFIG_VLAN_8021Q is not set
--# CONFIG_DECNET is not set
--CONFIG_LLC=m
--CONFIG_LLC2=m
--# 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 is not set
--# CONFIG_NET_CLS_ROUTE is not set
--
--#
--# Network testing
--#
--CONFIG_NET_PKTGEN=m
--# CONFIG_NETPOLL is not set
--# CONFIG_NET_POLL_CONTROLLER is not set
--# CONFIG_HAMRADIO is not set
--# CONFIG_IRDA is not set
--# CONFIG_BT is not set
- CONFIG_NETDEVICES=y
- CONFIG_DUMMY=m
- CONFIG_BONDING=m
- # CONFIG_EQUALIZER is not set
- CONFIG_TUN=m
--# CONFIG_ETHERTAP is not set
-
- #
- # ARCnet devices
-@@ -457,12 +543,18 @@
- # CONFIG_ARCNET is not set
-
- #
-+# PHY device support
-+#
-+# CONFIG_PHYLIB is not set
-+
-+#
- # Ethernet (10 or 100Mbit)
- #
- CONFIG_NET_ETHERNET=y
- CONFIG_MII=m
- # CONFIG_HAPPYMEAL is not set
- # CONFIG_SUNGEM is not set
-+# CONFIG_CASSINI is not set
- CONFIG_NET_VENDOR_3COM=y
- CONFIG_VORTEX=m
- CONFIG_TYPHOON=m
-@@ -479,6 +571,7 @@
- # CONFIG_DE4X5 is not set
- # CONFIG_WINBOND_840 is not set
- # CONFIG_DM9102 is not set
-+# CONFIG_ULI526X is not set
- CONFIG_PCMCIA_XIRCOM=m
- # CONFIG_PCMCIA_XIRTULIP is not set
- CONFIG_HP100=m
-@@ -489,48 +582,43 @@
- # CONFIG_B44 is not set
- # CONFIG_FORCEDETH is not set
- # CONFIG_DGRS is not set
--CONFIG_EEPRO100=m
-+# CONFIG_EEPRO100 is not set
- CONFIG_E100=m
--CONFIG_E100_NAPI=y
- # CONFIG_FEALNX is not set
--CONFIG_NATSEMI=m
-+# CONFIG_NATSEMI is not set
- # CONFIG_NE2K_PCI is not set
- # CONFIG_8139CP is not set
--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_8139TOO is not set
- # CONFIG_SIS900 is not set
--CONFIG_EPIC100=m
-+# CONFIG_EPIC100 is not set
- # CONFIG_SUNDANCE is not set
--CONFIG_VIA_RHINE=m
--CONFIG_VIA_RHINE_MMIO=y
-+# CONFIG_VIA_RHINE is not set
-
- #
- # Ethernet (1000 Mbit)
- #
- CONFIG_ACENIC=m
- CONFIG_ACENIC_OMIT_TIGON_I=y
--CONFIG_DL2K=m
-+# CONFIG_DL2K is not set
- CONFIG_E1000=m
- CONFIG_E1000_NAPI=y
- # CONFIG_NS83820 is not set
- # CONFIG_HAMACHI is not set
- # CONFIG_YELLOWFIN is not set
- # CONFIG_R8169 is not set
-+# CONFIG_SIS190 is not set
-+# CONFIG_SKGE is not set
- # CONFIG_SK98LIN is not set
- # CONFIG_VIA_VELOCITY is not set
- CONFIG_TIGON3=m
-+# CONFIG_BNX2 is not set
-
- #
- # Ethernet (10000 Mbit)
- #
--CONFIG_IXGB=m
--CONFIG_IXGB_NAPI=y
--CONFIG_S2IO=m
--CONFIG_S2IO_NAPI=y
--# CONFIG_2BUFF_MODE is not set
-+# CONFIG_CHELSIO_T1 is not set
-+# CONFIG_IXGB is not set
-+# CONFIG_S2IO is not set
-
- #
- # Token Ring devices
-@@ -560,6 +648,7 @@
- CONFIG_HERMES=m
- CONFIG_PLX_HERMES=m
- CONFIG_TMD_HERMES=m
-+# CONFIG_NORTEL_HERMES is not set
- CONFIG_PCI_HERMES=m
- # CONFIG_ATMEL is not set
-
-@@ -567,6 +656,7 @@
- # Wireless 802.11b Pcmcia/Cardbus cards support
- #
- CONFIG_PCMCIA_HERMES=m
-+# CONFIG_PCMCIA_SPECTRUM is not set
- CONFIG_AIRO_CS=m
- CONFIG_PCMCIA_WL3501=m
-
-@@ -574,6 +664,7 @@
- # Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
- #
- # CONFIG_PRISM54 is not set
-+# CONFIG_HOSTAP is not set
- CONFIG_NET_WIRELESS=y
-
- #
-@@ -607,6 +698,8 @@
- # CONFIG_NET_FC is not set
- # CONFIG_SHAPER is not set
- # CONFIG_NETCONSOLE is not set
-+# CONFIG_NETPOLL is not set
-+# CONFIG_NET_POLL_CONTROLLER is not set
-
- #
- # ISDN subsystem
-@@ -633,13 +726,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 +735,12 @@
- # CONFIG_INPUT_MISC is not set
-
- #
-+# Hardware I/O ports
-+#
-+# CONFIG_SERIO is not set
-+# CONFIG_GAMEPORT is not set
-+
-+#
- # Character devices
- #
- CONFIG_VT=y
-@@ -667,7 +759,6 @@
- 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
-
- #
-@@ -677,6 +768,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 +800,11 @@
- CONFIG_MAX_RAW_DEVS=256
-
- #
-+# TPM devices
-+#
-+# CONFIG_TCG_TPM is not set
-+
-+#
- # I2C support
- #
- # CONFIG_I2C is not set
-@@ -718,10 +815,20 @@
- # CONFIG_W1 is not set
-
- #
-+# Hardware Monitoring support
-+#
-+# CONFIG_HWMON is not set
-+# CONFIG_HWMON_VID is not set
-+
-+#
- # Misc devices
- #
-
- #
-+# Multimedia Capabilities Port drivers
-+#
-+
-+#
- # Multimedia devices
- #
- # CONFIG_VIDEO_DEV is not set
-@@ -742,6 +849,7 @@
- CONFIG_DUMMY_CONSOLE=y
- CONFIG_DUMMY_CONSOLE_COLUMNS=160
- CONFIG_DUMMY_CONSOLE_ROWS=64
-+# CONFIG_STI_CONSOLE is not set
-
- #
- # Sound
-@@ -751,13 +859,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
-@@ -772,17 +876,18 @@
- #
- # 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
-+# CONFIG_INFINIBAND is not set
-+
-+#
-+# SN Devices
-+#
-
- #
- # File systems
- #
- CONFIG_EXT2_FS=y
- # CONFIG_EXT2_FS_XATTR is not set
-+# CONFIG_EXT2_FS_XIP is not set
- CONFIG_EXT3_FS=y
- # CONFIG_EXT3_FS_XATTR is not set
- CONFIG_JBD=y
-@@ -794,22 +899,20 @@
- # 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_XFS_RT is not set
- # CONFIG_MINIX_FS is not set
- # CONFIG_ROMFS_FS is not set
-+CONFIG_INOTIFY=y
- # CONFIG_QUOTA is not set
- CONFIG_DNOTIFY=y
- # CONFIG_AUTOFS_FS is not set
- CONFIG_AUTOFS4_FS=y
-+# CONFIG_FUSE_FS is not set
-
- #
- # CD-ROM/DVD Filesystems
-@@ -836,13 +939,11 @@
- CONFIG_PROC_FS=y
- CONFIG_PROC_KCORE=y
- CONFIG_SYSFS=y
--# CONFIG_DEVFS_FS is not set
--# CONFIG_DEVPTS_FS_XATTR is not set
- CONFIG_TMPFS=y
--# CONFIG_TMPFS_XATTR is not set
- # CONFIG_HUGETLBFS is not set
- # CONFIG_HUGETLB_PAGE is not set
- CONFIG_RAMFS=y
-+# CONFIG_RELAYFS_FS is not set
-
- #
- # Miscellaneous filesystems
-@@ -867,15 +968,18 @@
- #
- CONFIG_NFS_FS=m
- CONFIG_NFS_V3=y
-+# CONFIG_NFS_V3_ACL is not set
- CONFIG_NFS_V4=y
- CONFIG_NFS_DIRECTIO=y
- CONFIG_NFSD=m
- CONFIG_NFSD_V3=y
-+# CONFIG_NFSD_V3_ACL is not set
- CONFIG_NFSD_V4=y
- CONFIG_NFSD_TCP=y
- CONFIG_LOCKD=m
- CONFIG_LOCKD_V4=y
- CONFIG_EXPORTFS=m
-+CONFIG_NFS_COMMON=y
- CONFIG_SUNRPC=m
- CONFIG_SUNRPC_GSS=m
- CONFIG_RPCSEC_GSS_KRB5=m
-@@ -890,6 +994,7 @@
- # CONFIG_NCP_FS is not set
- # CONFIG_CODA_FS is not set
- # CONFIG_AFS_FS is not set
-+# CONFIG_9P_FS is not set
-
- #
- # Partition Types
-@@ -906,15 +1011,15 @@
- # CONFIG_NLS_CODEPAGE_737 is not set
- # CONFIG_NLS_CODEPAGE_775 is not set
- CONFIG_NLS_CODEPAGE_850=m
--CONFIG_NLS_CODEPAGE_852=m
-+# 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=m
-+# CONFIG_NLS_CODEPAGE_863 is not set
- # CONFIG_NLS_CODEPAGE_864 is not set
--CONFIG_NLS_CODEPAGE_865=m
-+# 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
-@@ -926,10 +1031,10 @@
- # 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=m
--CONFIG_NLS_ISO8859_3=m
--CONFIG_NLS_ISO8859_4=m
-+# CONFIG_NLS_ISO8859_1 is not set
-+# 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
-@@ -950,11 +1055,15 @@
- #
- # Kernel hacking
- #
-+# CONFIG_PRINTK_TIME is not set
- CONFIG_DEBUG_KERNEL=y
- CONFIG_MAGIC_SYSRQ=y
-+CONFIG_LOG_BUF_SHIFT=16
-+CONFIG_DETECT_SOFTLOCKUP=y
- # 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
-@@ -974,25 +1083,26 @@
- CONFIG_CRYPTO=y
- CONFIG_CRYPTO_HMAC=y
- CONFIG_CRYPTO_NULL=m
--CONFIG_CRYPTO_MD4=m
--CONFIG_CRYPTO_MD5=m
-+# CONFIG_CRYPTO_MD4 is not set
-+CONFIG_CRYPTO_MD5=y
- CONFIG_CRYPTO_SHA1=m
--CONFIG_CRYPTO_SHA256=m
--CONFIG_CRYPTO_SHA512=m
--CONFIG_CRYPTO_WP512=m
-+# 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=m
- 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_TWOFISH is not set
-+# CONFIG_CRYPTO_SERPENT is not set
-+# CONFIG_CRYPTO_AES is not set
-+# CONFIG_CRYPTO_CAST5 is not set
-+# CONFIG_CRYPTO_CAST6 is not set
-+# CONFIG_CRYPTO_TEA is not set
-+# CONFIG_CRYPTO_ARC4 is not set
-+# CONFIG_CRYPTO_KHAZAD is not set
-+# CONFIG_CRYPTO_ANUBIS is not set
- CONFIG_CRYPTO_DEFLATE=m
--CONFIG_CRYPTO_MICHAEL_MIC=m
-+# CONFIG_CRYPTO_MICHAEL_MIC is not set
- CONFIG_CRYPTO_CRC32C=m
- CONFIG_CRYPTO_TEST=m
-
-@@ -1004,6 +1114,7 @@
- # Library routines
- #
- CONFIG_CRC_CCITT=m
-+# CONFIG_CRC16 is not set
- CONFIG_CRC32=y
- CONFIG_LIBCRC32C=m
- CONFIG_ZLIB_INFLATE=m
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/arch/parisc/configs/b180_defconfig CVS2_6_14_PA0/arch/parisc/configs/b180_defconfig
---- LINUS_2_6_14/arch/parisc/configs/b180_defconfig 2005-10-27 21:30:33.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/configs/b180_defconfig 2005-10-21 21:16:47.000000000 -0600
-@@ -1,12 +1,15 @@
- #
- # 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.14-rc5-pa1
-+# Fri Oct 21 23:06:10 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
-
- #
- # Code maturity level options
-@@ -14,33 +17,39 @@
- # CONFIG_EXPERIMENTAL is not set
- CONFIG_CLEAN_COMPILE=y
- CONFIG_BROKEN_ON_SMP=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-
- #
- # General setup
- #
- CONFIG_LOCALVERSION=""
-+# CONFIG_LOCALVERSION_AUTO is not set
- CONFIG_SWAP=y
- CONFIG_SYSVIPC=y
- # 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_INITRAMFS_SOURCE=""
- # 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,8 +69,14 @@
- # CONFIG_PA7300LC is not set
- # CONFIG_PA8X00 is not set
- CONFIG_PA11=y
--# CONFIG_64BIT is not set
- # CONFIG_SMP is not set
-+# CONFIG_HZ_100 is not set
-+CONFIG_HZ_250=y
-+# CONFIG_HZ_1000 is not set
-+CONFIG_HZ=250
-+CONFIG_FLATMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+# CONFIG_SPARSEMEM_STATIC is not set
- # CONFIG_PREEMPT is not set
- # CONFIG_HPUX is not set
-
-@@ -78,11 +93,25 @@
- 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 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
-@@ -91,6 +120,64 @@
- # CONFIG_BINFMT_MISC is not set
-
- #
-+# Networking
-+#
-+CONFIG_NET=y
-+
-+#
-+# Networking options
-+#
-+CONFIG_PACKET=y
-+CONFIG_PACKET_MMAP=y
-+CONFIG_UNIX=y
-+# CONFIG_NET_KEY is not set
-+CONFIG_INET=y
-+CONFIG_IP_MULTICAST=y
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+CONFIG_IP_FIB_HASH=y
-+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 is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_IP_MROUTE is not set
-+# CONFIG_SYN_COOKIES is not set
-+# CONFIG_INET_AH is not set
-+# CONFIG_INET_ESP is not set
-+# CONFIG_INET_IPCOMP is not set
-+# CONFIG_INET_TUNNEL is not set
-+CONFIG_INET_DIAG=y
-+CONFIG_INET_TCP_DIAG=y
-+# CONFIG_TCP_CONG_ADVANCED is not set
-+CONFIG_TCP_CONG_BIC=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
-+# CONFIG_DECNET is not set
-+# CONFIG_LLC2 is not set
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
-+# CONFIG_NET_SCHED is not set
-+# CONFIG_NET_CLS_ROUTE is not set
-+
-+#
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+# CONFIG_HAMRADIO is not set
-+# CONFIG_IRDA is not set
-+# CONFIG_BT is not set
-+# CONFIG_IEEE80211 is not set
-+
-+#
- # Device Drivers
- #
-
-@@ -99,9 +186,15 @@
- #
- CONFIG_STANDALONE=y
- # CONFIG_PREVENT_FIRMWARE_BUILD is not set
-+# CONFIG_FW_LOADER is not set
- # CONFIG_DEBUG_DRIVER is not set
-
- #
-+# Connector - unified userspace <-> kernelspace linker
-+#
-+# CONFIG_CONNECTOR is not set
-+
-+#
- # Memory Technology Devices (MTD)
- #
- # CONFIG_MTD is not set
-@@ -111,10 +204,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
-
- #
-@@ -125,19 +216,17 @@
- #
- # 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_COW_COMMON is not set
- CONFIG_BLK_DEV_LOOP=y
- CONFIG_BLK_DEV_CRYPTOLOOP=y
- # CONFIG_BLK_DEV_NBD is not set
- # CONFIG_BLK_DEV_SX8 is not set
- # CONFIG_BLK_DEV_RAM is not set
- CONFIG_BLK_DEV_RAM_COUNT=16
--CONFIG_INITRAMFS_SOURCE=""
- CONFIG_CDROM_PKTCDVD=m
- CONFIG_CDROM_PKTCDVD_BUFFERS=8
- # CONFIG_CDROM_PKTCDVD_WCACHE is not set
-@@ -149,6 +238,7 @@
- CONFIG_IOSCHED_AS=y
- CONFIG_IOSCHED_DEADLINE=y
- CONFIG_IOSCHED_CFQ=y
-+CONFIG_ATA_OVER_ETH=y
-
- #
- # ATA/ATAPI/MFM/RLL support
-@@ -158,6 +248,7 @@
- #
- # SCSI device support
- #
-+# CONFIG_RAID_ATTRS is not set
- CONFIG_SCSI=y
- CONFIG_SCSI_PROC_FS=y
-
-@@ -170,6 +261,7 @@
- CONFIG_BLK_DEV_SR=y
- # CONFIG_BLK_DEV_SR_VENDOR is not set
- CONFIG_CHR_DEV_SG=y
-+# CONFIG_CHR_DEV_SCH is not set
-
- #
- # Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-@@ -183,16 +275,16 @@
- #
- CONFIG_SCSI_SPI_ATTRS=y
- # CONFIG_SCSI_FC_ATTRS is not set
-+# CONFIG_SCSI_ISCSI_ATTRS is not set
-+# CONFIG_SCSI_SAS_ATTRS is not set
-
- #
- # 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
-@@ -202,14 +294,11 @@
- # CONFIG_SCSI_IN2000 is not set
- # CONFIG_MEGARAID_NEWGEN is not set
- # CONFIG_MEGARAID_LEGACY is not set
-+# CONFIG_MEGARAID_SAS is not set
- # 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_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
- # CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
- # CONFIG_SCSI_IPS is not set
-@@ -219,7 +308,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 +319,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,12 +327,12 @@
- # 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_QLA24XX 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
- # 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
-
-@@ -263,6 +350,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
-@@ -271,6 +359,9 @@
- # Fusion MPT device support
- #
- # CONFIG_FUSION is not set
-+# CONFIG_FUSION_SPI is not set
-+# CONFIG_FUSION_FC is not set
-+# CONFIG_FUSION_SAS is not set
-
- #
- # IEEE 1394 (FireWire) support
-@@ -283,58 +374,8 @@
- # CONFIG_I2O is not set
-
- #
--# Networking support
--#
--CONFIG_NET=y
--
--#
--# Networking options
--#
--CONFIG_PACKET=y
--CONFIG_PACKET_MMAP=y
--CONFIG_NETLINK_DEV=y
--CONFIG_UNIX=y
--# CONFIG_NET_KEY is not set
--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 is not set
--# CONFIG_NET_IPGRE is not set
--# CONFIG_IP_MROUTE is not set
--# CONFIG_SYN_COOKIES is not set
--# CONFIG_INET_AH is not set
--# CONFIG_INET_ESP is not set
--# CONFIG_INET_IPCOMP is not set
--# CONFIG_INET_TUNNEL is not set
--CONFIG_IP_TCPDIAG=y
--# CONFIG_IP_TCPDIAG_IPV6 is not set
--# CONFIG_NETFILTER is not set
--# CONFIG_BRIDGE is not set
--# CONFIG_VLAN_8021Q is not set
--# CONFIG_DECNET is not set
--# CONFIG_LLC2 is not set
--# CONFIG_IPX is not set
--# CONFIG_ATALK is not set
--
--#
--# QoS and/or fair queueing
--#
--# CONFIG_NET_SCHED is not set
--# CONFIG_NET_CLS_ROUTE is not set
--
--#
--# Network testing
-+# Network device support
- #
--# CONFIG_NET_PKTGEN is not set
--# CONFIG_NETPOLL is not set
--# CONFIG_NET_POLL_CONTROLLER is not set
--# CONFIG_HAMRADIO is not set
--# CONFIG_IRDA is not set
--# CONFIG_BT is not set
- CONFIG_NETDEVICES=y
- # CONFIG_DUMMY is not set
- # CONFIG_BONDING is not set
-@@ -347,6 +388,11 @@
- # CONFIG_ARCNET is not set
-
- #
-+# PHY device support
-+#
-+# CONFIG_PHYLIB is not set
-+
-+#
- # Ethernet (10 or 100Mbit)
- #
- CONFIG_NET_ETHERNET=y
-@@ -354,8 +400,8 @@
- # CONFIG_LASI_82596 is not set
- # CONFIG_HAPPYMEAL is not set
- # CONFIG_SUNGEM is not set
-+# CONFIG_CASSINI is not set
- # CONFIG_NET_VENDOR_3COM is not set
--# CONFIG_LANCE is not set
- # CONFIG_NET_VENDOR_SMC is not set
- # CONFIG_NET_VENDOR_RACAL is not set
-
-@@ -369,6 +415,7 @@
- # CONFIG_DE4X5 is not set
- # CONFIG_WINBOND_840 is not set
- # CONFIG_DM9102 is not set
-+# CONFIG_ULI526X is not set
- # CONFIG_DEPCA is not set
- # CONFIG_HP100 is not set
- # CONFIG_NET_ISA is not set
-@@ -384,12 +431,15 @@
- # CONFIG_NS83820 is not set
- # CONFIG_HAMACHI is not set
- # CONFIG_R8169 is not set
-+# CONFIG_SIS190 is not set
- # CONFIG_SK98LIN is not set
- # CONFIG_TIGON3 is not set
-+# CONFIG_BNX2 is not set
-
- #
- # Ethernet (10000 Mbit)
- #
-+# CONFIG_CHELSIO_T1 is not set
- # CONFIG_IXGB is not set
- # CONFIG_S2IO is not set
-
-@@ -413,12 +463,12 @@
- #
- # Wireless 802.11b ISA/PCI cards support
- #
--# CONFIG_AIRO is not set
- # CONFIG_HERMES is not set
-
- #
- # Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
- #
-+# CONFIG_HOSTAP is not set
- CONFIG_NET_WIRELESS=y
-
- #
-@@ -435,6 +485,8 @@
- # CONFIG_PPP_BSDCOMP is not set
- # CONFIG_SLIP is not set
- # CONFIG_NET_FC is not set
-+# CONFIG_NETPOLL is not set
-+# CONFIG_NET_POLL_CONTROLLER is not set
-
- #
- # ISDN subsystem
-@@ -464,23 +516,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 +529,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 +543,19 @@
- # 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
-+
-+#
- # Character devices
- #
- CONFIG_VT=y
-@@ -519,8 +573,11 @@
- 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
-+# CONFIG_SERIAL_8250_FOURPORT is not set
-+# CONFIG_SERIAL_8250_ACCENT is not set
-+# CONFIG_SERIAL_8250_BOCA is not set
-+# CONFIG_SERIAL_8250_HUB6 is not set
-
- #
- # Non-8250 serial port support
-@@ -529,6 +586,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 +613,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
-@@ -570,10 +631,20 @@
- # CONFIG_W1 is not set
-
- #
-+# Hardware Monitoring support
-+#
-+# CONFIG_HWMON is not set
-+# CONFIG_HWMON_VID is not set
-+
-+#
- # Misc devices
- #
-
- #
-+# Multimedia Capabilities Port drivers
-+#
-+
-+#
- # Multimedia devices
- #
- # CONFIG_VIDEO_DEV is not set
-@@ -587,6 +658,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 +671,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
-@@ -606,18 +683,19 @@
- # CONFIG_FB_KYRO is not set
- # CONFIG_FB_3DFX is not set
- # CONFIG_FB_VOODOO1 is not set
-+# CONFIG_FB_CYBLA 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 +708,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 +718,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,23 +733,36 @@
- # CONFIG_MMC is not set
-
- #
-+# InfiniBand support
-+#
-+# CONFIG_INFINIBAND is not set
-+
-+#
-+# SN Devices
-+#
-+
-+#
- # File systems
- #
- CONFIG_EXT2_FS=y
- # CONFIG_EXT2_FS_XATTR is not set
-+# CONFIG_EXT2_FS_XIP is not set
- CONFIG_EXT3_FS=y
- # CONFIG_EXT3_FS_XATTR is not set
- CONFIG_JBD=y
- # CONFIG_JBD_DEBUG is not set
- # CONFIG_REISERFS_FS is not set
- # CONFIG_JFS_FS is not set
-+# CONFIG_FS_POSIX_ACL is not set
- # CONFIG_XFS_FS is not set
- # CONFIG_MINIX_FS is not set
- # CONFIG_ROMFS_FS is not set
-+CONFIG_INOTIFY=y
- # CONFIG_QUOTA is not set
- CONFIG_DNOTIFY=y
- # CONFIG_AUTOFS_FS is not set
- CONFIG_AUTOFS4_FS=y
-+# CONFIG_FUSE_FS is not set
-
- #
- # CD-ROM/DVD Filesystems
-@@ -697,11 +785,10 @@
- CONFIG_PROC_FS=y
- CONFIG_PROC_KCORE=y
- CONFIG_SYSFS=y
--# 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
-+# CONFIG_RELAYFS_FS is not set
-
- #
- # Miscellaneous filesystems
-@@ -719,15 +806,19 @@
- #
- CONFIG_NFS_FS=y
- CONFIG_NFS_V3=y
-+# CONFIG_NFS_V3_ACL is not set
- CONFIG_NFSD=y
- CONFIG_NFSD_V3=y
-+# CONFIG_NFSD_V3_ACL is not set
- CONFIG_NFSD_TCP=y
- CONFIG_ROOT_NFS=y
- CONFIG_LOCKD=y
- CONFIG_LOCKD_V4=y
- CONFIG_EXPORTFS=y
-+CONFIG_NFS_COMMON=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 +876,19 @@
- #
- # Kernel hacking
- #
-+# CONFIG_PRINTK_TIME is not set
- CONFIG_DEBUG_KERNEL=y
- CONFIG_MAGIC_SYSRQ=y
-+CONFIG_LOG_BUF_SHIFT=16
-+CONFIG_DETECT_SOFTLOCKUP=y
- # 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 +912,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,8 +930,13 @@
- # CONFIG_CRYPTO_TEST is not set
-
- #
-+# Hardware crypto devices
-+#
-+
-+#
- # Library routines
- #
- # CONFIG_CRC_CCITT is not set
-+# CONFIG_CRC16 is not set
- CONFIG_CRC32=y
- # CONFIG_LIBCRC32C is not set
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/arch/parisc/configs/c3000_defconfig CVS2_6_14_PA0/arch/parisc/configs/c3000_defconfig
---- LINUS_2_6_14/arch/parisc/configs/c3000_defconfig 2005-10-27 21:30:33.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/configs/c3000_defconfig 2005-10-21 21:16:47.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.14-rc5-pa1
-+# Fri Oct 21 23:06:31 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_ARCH_MAY_HAVE_PC_FDC=y
-
- #
- # Code maturity level options
-@@ -15,26 +19,31 @@
- # CONFIG_CLEAN_COMPILE is not set
- CONFIG_BROKEN=y
- CONFIG_BROKEN_ON_SMP=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-
- #
- # General setup
- #
- CONFIG_LOCALVERSION=""
-+# CONFIG_LOCALVERSION_AUTO is not set
- CONFIG_SWAP=y
- CONFIG_SYSVIPC=y
- # CONFIG_POSIX_MQUEUE is not set
- # 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_INITRAMFS_SOURCE=""
- 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
-@@ -44,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
-@@ -66,10 +76,19 @@
- 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_HZ_100 is not set
-+CONFIG_HZ_250=y
-+# CONFIG_HZ_1000 is not set
-+CONFIG_HZ=250
-+CONFIG_SELECT_MEMORY_MODEL=y
-+CONFIG_FLATMEM_MANUAL=y
-+# CONFIG_DISCONTIGMEM_MANUAL is not set
-+# CONFIG_SPARSEMEM_MANUAL is not set
-+CONFIG_FLATMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+# CONFIG_SPARSEMEM_STATIC is not set
- # CONFIG_PREEMPT is not set
- # CONFIG_HPUX is not set
-
-@@ -79,13 +98,10 @@
- # CONFIG_GSC is not set
- 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 +109,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
-@@ -108,6 +128,186 @@
- # CONFIG_BINFMT_MISC is not set
-
- #
-+# Networking
-+#
-+CONFIG_NET=y
-+
-+#
-+# Networking options
-+#
-+CONFIG_PACKET=y
-+CONFIG_PACKET_MMAP=y
-+CONFIG_UNIX=y
-+CONFIG_XFRM=y
-+CONFIG_XFRM_USER=m
-+CONFIG_NET_KEY=m
-+CONFIG_INET=y
-+CONFIG_IP_MULTICAST=y
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+CONFIG_IP_FIB_HASH=y
-+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 is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_IP_MROUTE is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_SYN_COOKIES is not set
-+# CONFIG_INET_AH is not set
-+# CONFIG_INET_ESP is not set
-+# CONFIG_INET_IPCOMP is not set
-+# CONFIG_INET_TUNNEL is not set
-+# CONFIG_INET_DIAG is not set
-+# CONFIG_TCP_CONG_ADVANCED is not set
-+CONFIG_TCP_CONG_BIC=y
-+
-+#
-+# IP: Virtual Server Configuration
-+#
-+# CONFIG_IP_VS is not set
-+CONFIG_IPV6=m
-+# CONFIG_IPV6_PRIVACY is not set
-+# CONFIG_INET6_AH is not set
-+# CONFIG_INET6_ESP is not set
-+CONFIG_INET6_IPCOMP=m
-+CONFIG_INET6_TUNNEL=m
-+CONFIG_IPV6_TUNNEL=m
-+CONFIG_NETFILTER=y
-+CONFIG_NETFILTER_DEBUG=y
-+# CONFIG_NETFILTER_NETLINK is not set
-+
-+#
-+# IP: Netfilter Configuration
-+#
-+CONFIG_IP_NF_CONNTRACK=m
-+# CONFIG_IP_NF_CT_ACCT is not set
-+# CONFIG_IP_NF_CONNTRACK_MARK is not set
-+# CONFIG_IP_NF_CONNTRACK_EVENTS is not set
-+# CONFIG_IP_NF_CT_PROTO_SCTP is not set
-+CONFIG_IP_NF_FTP=m
-+CONFIG_IP_NF_IRC=m
-+# CONFIG_IP_NF_NETBIOS_NS is not set
-+CONFIG_IP_NF_TFTP=m
-+CONFIG_IP_NF_AMANDA=m
-+# CONFIG_IP_NF_PPTP is not set
-+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_ADDRTYPE is not set
-+# CONFIG_IP_NF_MATCH_REALM is not set
-+# CONFIG_IP_NF_MATCH_SCTP is not set
-+# CONFIG_IP_NF_MATCH_DCCP is not set
-+# CONFIG_IP_NF_MATCH_COMMENT is not set
-+# CONFIG_IP_NF_MATCH_HASHLIMIT is not set
-+# CONFIG_IP_NF_MATCH_STRING is not set
-+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_TARGET_NFQUEUE is not set
-+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_TTL is not set
-+# CONFIG_IP_NF_RAW is not set
-+CONFIG_IP_NF_ARPTABLES=m
-+CONFIG_IP_NF_ARPFILTER=m
-+CONFIG_IP_NF_ARP_MANGLE=m
-+
-+#
-+# IPv6: Netfilter Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP6_NF_QUEUE is not set
-+CONFIG_IP6_NF_IPTABLES=m
-+# CONFIG_IP6_NF_MATCH_LIMIT is not set
-+CONFIG_IP6_NF_MATCH_MAC=m
-+CONFIG_IP6_NF_MATCH_RT=m
-+# CONFIG_IP6_NF_MATCH_OPTS is not set
-+# CONFIG_IP6_NF_MATCH_FRAG is not set
-+# CONFIG_IP6_NF_MATCH_HL is not set
-+# CONFIG_IP6_NF_MATCH_MULTIPORT is not set
-+CONFIG_IP6_NF_MATCH_OWNER=m
-+# CONFIG_IP6_NF_MATCH_MARK is not set
-+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
-+# CONFIG_IP6_NF_MATCH_AHESP is not set
-+CONFIG_IP6_NF_MATCH_LENGTH=m
-+# CONFIG_IP6_NF_MATCH_EUI64 is not set
-+CONFIG_IP6_NF_FILTER=m
-+CONFIG_IP6_NF_TARGET_LOG=m
-+CONFIG_IP6_NF_TARGET_REJECT=m
-+# CONFIG_IP6_NF_TARGET_NFQUEUE is not set
-+CONFIG_IP6_NF_MANGLE=m
-+# CONFIG_IP6_NF_TARGET_MARK is not set
-+# CONFIG_IP6_NF_TARGET_HL is not set
-+# CONFIG_IP6_NF_RAW is not set
-+
-+#
-+# DCCP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_DCCP is not set
-+
-+#
-+# SCTP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_SCTP is not set
-+# CONFIG_ATM is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_VLAN_8021Q is not set
-+# 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
-+# CONFIG_NET_SCHED is not set
-+# CONFIG_NET_CLS_ROUTE is not set
-+
-+#
-+# Network testing
-+#
-+CONFIG_NET_PKTGEN=m
-+# CONFIG_HAMRADIO is not set
-+# CONFIG_IRDA is not set
-+# CONFIG_BT is not set
-+# CONFIG_IEEE80211 is not set
-+
-+#
- # Device Drivers
- #
-
-@@ -120,6 +320,11 @@
- # CONFIG_DEBUG_DRIVER is not set
-
- #
-+# Connector - unified userspace <-> kernelspace linker
-+#
-+# CONFIG_CONNECTOR is not set
-+
-+#
- # Memory Technology Devices (MTD)
- #
- # CONFIG_MTD is not set
-@@ -141,14 +346,14 @@
- # 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_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 is not set
- CONFIG_BLK_DEV_RAM_COUNT=16
--CONFIG_INITRAMFS_SOURCE=""
- # CONFIG_CDROM_PKTCDVD is not set
-
- #
-@@ -158,6 +363,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
-@@ -201,6 +407,7 @@
- # CONFIG_BLK_DEV_HPT366 is not set
- # CONFIG_BLK_DEV_SC1200 is not set
- # CONFIG_BLK_DEV_PIIX is not set
-+# CONFIG_BLK_DEV_IT821X is not set
- CONFIG_BLK_DEV_NS87415=y
- # CONFIG_BLK_DEV_PDC202XX_OLD is not set
- # CONFIG_BLK_DEV_PDC202XX_NEW is not set
-@@ -218,6 +425,7 @@
- #
- # SCSI device support
- #
-+# CONFIG_RAID_ATTRS is not set
- CONFIG_SCSI=y
- CONFIG_SCSI_PROC_FS=y
-
-@@ -230,6 +438,7 @@
- CONFIG_BLK_DEV_SR=y
- # CONFIG_BLK_DEV_SR_VENDOR is not set
- CONFIG_CHR_DEV_SG=y
-+# CONFIG_CHR_DEV_SCH is not set
-
- #
- # Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-@@ -242,7 +451,9 @@
- # SCSI Transport Attributes
- #
- CONFIG_SCSI_SPI_ATTRS=y
--CONFIG_SCSI_FC_ATTRS=m
-+# CONFIG_SCSI_FC_ATTRS is not set
-+CONFIG_SCSI_ISCSI_ATTRS=m
-+# CONFIG_SCSI_SAS_ATTRS is not set
-
- #
- # SCSI low-level drivers
-@@ -258,25 +469,26 @@
- # CONFIG_SCSI_ADVANSYS is not set
- # CONFIG_MEGARAID_NEWGEN is not set
- # CONFIG_MEGARAID_LEGACY is not set
-+# CONFIG_MEGARAID_SAS is not set
- CONFIG_SCSI_SATA=y
- # CONFIG_SCSI_SATA_AHCI is not set
- # CONFIG_SCSI_SATA_SVW is not set
- CONFIG_SCSI_ATA_PIIX=m
-+# CONFIG_SCSI_SATA_MV is not set
- # 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
- # CONFIG_SCSI_SATA_ULI is not set
- CONFIG_SCSI_SATA_VIA=m
- # CONFIG_SCSI_SATA_VITESSE is not set
--# CONFIG_SCSI_BUSLOGIC is not set
-+CONFIG_SCSI_SATA_INTEL_COMBINED=y
- # CONFIG_SCSI_CPQFCTS is not set
- # CONFIG_SCSI_DMX3191D 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_IPS is not set
- # CONFIG_SCSI_INITIO is not set
- # CONFIG_SCSI_INIA100 is not set
-@@ -286,20 +498,17 @@
- CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
- # CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
- # CONFIG_SCSI_IPR is not set
--# CONFIG_SCSI_PCI2000 is not set
--# CONFIG_SCSI_PCI2220I is not set
- # CONFIG_SCSI_QLOGIC_ISP is not set
--CONFIG_SCSI_QLOGIC_FC=m
--# CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set
--CONFIG_SCSI_QLOGIC_1280=m
--# CONFIG_SCSI_QLOGIC_1280_1040 is not set
-+# CONFIG_SCSI_QLOGIC_FC is not set
-+# CONFIG_SCSI_QLOGIC_1280 is not set
- CONFIG_SCSI_QLA2XXX=y
- # CONFIG_SCSI_QLA21XX is not set
- # CONFIG_SCSI_QLA22XX is not set
--CONFIG_SCSI_QLA2300=m
--CONFIG_SCSI_QLA2322=m
--CONFIG_SCSI_QLA6312=m
--CONFIG_SCSI_QLA6322=m
-+# CONFIG_SCSI_QLA2300 is not set
-+# CONFIG_SCSI_QLA2322 is not set
-+# CONFIG_SCSI_QLA6312 is not set
-+# CONFIG_SCSI_QLA24XX is not set
-+# CONFIG_SCSI_LPFC is not set
- # CONFIG_SCSI_DC395x is not set
- # CONFIG_SCSI_DC390T is not set
- # CONFIG_SCSI_NSP32 is not set
-@@ -316,19 +525,24 @@
- # CONFIG_MD_RAID10 is not set
- # CONFIG_MD_RAID5 is not set
- # CONFIG_MD_RAID6 is not set
--CONFIG_MD_MULTIPATH=y
-+# CONFIG_MD_MULTIPATH is not set
- # CONFIG_MD_FAULTY is not set
--CONFIG_BLK_DEV_DM=y
--# CONFIG_DM_CRYPT is not set
--# CONFIG_DM_SNAPSHOT is not set
--# CONFIG_DM_MIRROR is not set
--# CONFIG_DM_ZERO is not set
-+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 is not set
-
- #
- # Fusion MPT device support
- #
--CONFIG_FUSION=m
--CONFIG_FUSION_MAX_SGE=40
-+CONFIG_FUSION=y
-+CONFIG_FUSION_SPI=m
-+# CONFIG_FUSION_FC is not set
-+# CONFIG_FUSION_SAS is not set
-+CONFIG_FUSION_MAX_SGE=128
- CONFIG_FUSION_CTL=m
-
- #
-@@ -342,151 +556,13 @@
- # CONFIG_I2O is not set
-
- #
--# Networking support
--#
--CONFIG_NET=y
--
--#
--# Networking options
-+# Network device support
- #
--CONFIG_PACKET=y
--CONFIG_PACKET_MMAP=y
--CONFIG_NETLINK_DEV=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 is not set
--# CONFIG_NET_IPGRE 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 is not set
--# CONFIG_INET_TUNNEL is not set
--CONFIG_IP_TCPDIAG=y
--# CONFIG_IP_TCPDIAG_IPV6 is not set
--
--#
--# IP: Virtual Server Configuration
--#
--# CONFIG_IP_VS is not set
--# CONFIG_IPV6 is not set
--CONFIG_NETFILTER=y
--CONFIG_NETFILTER_DEBUG=y
--
--#
--# IP: Netfilter Configuration
--#
--CONFIG_IP_NF_CONNTRACK=m
--# CONFIG_IP_NF_CT_ACCT is not set
--# CONFIG_IP_NF_CONNTRACK_MARK is not set
--# CONFIG_IP_NF_CT_PROTO_SCTP is not set
--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_ADDRTYPE is not set
--# CONFIG_IP_NF_MATCH_REALM is not set
--# CONFIG_IP_NF_MATCH_SCTP is not set
--# CONFIG_IP_NF_MATCH_COMMENT is not set
--# CONFIG_IP_NF_MATCH_HASHLIMIT is not set
--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_RAW is not set
--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
--
--#
--# SCTP Configuration (EXPERIMENTAL)
--#
--# CONFIG_IP_SCTP is not set
--# CONFIG_ATM is not set
--# CONFIG_BRIDGE is not set
--# CONFIG_VLAN_8021Q is not set
--# CONFIG_DECNET is not set
--CONFIG_LLC=m
--CONFIG_LLC2=m
--# 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 is not set
--# CONFIG_NET_CLS_ROUTE is not set
--
--#
--# Network testing
--#
--# CONFIG_NET_PKTGEN is not set
--# CONFIG_NETPOLL is not set
--# CONFIG_NET_POLL_CONTROLLER is not set
--# CONFIG_HAMRADIO is not set
--# CONFIG_IRDA is not set
--# CONFIG_BT is not set
- CONFIG_NETDEVICES=y
- CONFIG_DUMMY=m
- CONFIG_BONDING=m
- # CONFIG_EQUALIZER is not set
- CONFIG_TUN=m
--# CONFIG_ETHERTAP is not set
-
- #
- # ARCnet devices
-@@ -494,12 +570,18 @@
- # CONFIG_ARCNET is not set
-
- #
-+# PHY device support
-+#
-+# CONFIG_PHYLIB is not set
-+
-+#
- # Ethernet (10 or 100Mbit)
- #
- CONFIG_NET_ETHERNET=y
- CONFIG_MII=m
--CONFIG_HAPPYMEAL=m
-+# CONFIG_HAPPYMEAL is not set
- # CONFIG_SUNGEM is not set
-+# CONFIG_CASSINI is not set
- # CONFIG_NET_VENDOR_3COM is not set
-
- #
-@@ -514,28 +596,22 @@
- # CONFIG_DE4X5 is not set
- # CONFIG_WINBOND_840 is not set
- # CONFIG_DM9102 is not set
-+# CONFIG_ULI526X is not set
- # CONFIG_HP100 is not set
- CONFIG_NET_PCI=y
--CONFIG_PCNET32=m
-+# CONFIG_PCNET32 is not set
- # CONFIG_AMD8111_ETH is not set
--CONFIG_ADAPTEC_STARFIRE=m
--# CONFIG_ADAPTEC_STARFIRE_NAPI is not set
--CONFIG_B44=m
-+# CONFIG_ADAPTEC_STARFIRE is not set
-+# CONFIG_B44 is not set
- # CONFIG_FORCEDETH is not set
- # CONFIG_DGRS is not set
--CONFIG_EEPRO100=m
--# CONFIG_EEPRO100_PIO is not set
-+# CONFIG_EEPRO100 is not set
- CONFIG_E100=m
--# CONFIG_E100_NAPI is not set
- # CONFIG_FEALNX is not set
--CONFIG_NATSEMI=m
-+# CONFIG_NATSEMI is not set
- # CONFIG_NE2K_PCI is not set
- # CONFIG_8139CP is not set
--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_8139TOO is not set
- # CONFIG_SIS900 is not set
- # CONFIG_EPIC100 is not set
- # CONFIG_SUNDANCE is not set
-@@ -554,15 +630,18 @@
- # CONFIG_HAMACHI is not set
- # CONFIG_YELLOWFIN is not set
- # CONFIG_R8169 is not set
-+# CONFIG_SIS190 is not set
-+# CONFIG_SKGE is not set
- # CONFIG_SK98LIN is not set
- # CONFIG_VIA_VELOCITY is not set
- CONFIG_TIGON3=m
-+# CONFIG_BNX2 is not set
-
- #
- # Ethernet (10000 Mbit)
- #
--CONFIG_IXGB=y
--CONFIG_IXGB_NAPI=y
-+# CONFIG_CHELSIO_T1 is not set
-+# CONFIG_IXGB is not set
- # CONFIG_S2IO is not set
-
- #
-@@ -593,6 +672,8 @@
- # CONFIG_NET_FC is not set
- # CONFIG_SHAPER is not set
- # CONFIG_NETCONSOLE is not set
-+# CONFIG_NETPOLL is not set
-+# CONFIG_NET_POLL_CONTROLLER is not set
-
- #
- # ISDN subsystem
-@@ -622,16 +703,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 +720,16 @@
- # 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
-+
-+#
- # Character devices
- #
- CONFIG_VT=y
-@@ -666,7 +747,6 @@
- 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
-
- #
-@@ -676,6 +756,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 +779,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
-@@ -714,10 +799,20 @@
- # CONFIG_W1 is not set
-
- #
-+# Hardware Monitoring support
-+#
-+# CONFIG_HWMON is not set
-+# CONFIG_HWMON_VID is not set
-+
-+#
- # Misc devices
- #
-
- #
-+# Multimedia Capabilities Port drivers
-+#
-+
-+#
- # Multimedia devices
- #
- # CONFIG_VIDEO_DEV is not set
-@@ -731,6 +826,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 +839,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
-@@ -751,18 +852,20 @@
- # CONFIG_FB_KYRO is not set
- # CONFIG_FB_3DFX is not set
- # CONFIG_FB_VOODOO1 is not set
-+# CONFIG_FB_CYBLA 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 +878,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
-@@ -784,7 +888,78 @@
- #
- # Advanced Linux Sound Architecture
- #
--# CONFIG_SND is not set
-+CONFIG_SND=y
-+CONFIG_SND_TIMER=y
-+CONFIG_SND_PCM=y
-+CONFIG_SND_SEQUENCER=y
-+# CONFIG_SND_SEQ_DUMMY is not set
-+CONFIG_SND_OSSEMUL=y
-+CONFIG_SND_MIXER_OSS=y
-+CONFIG_SND_PCM_OSS=y
-+CONFIG_SND_SEQUENCER_OSS=y
-+# CONFIG_SND_VERBOSE_PRINTK is not set
-+# CONFIG_SND_DEBUG is not set
-+
-+#
-+# Generic devices
-+#
-+# CONFIG_SND_DUMMY is not set
-+# 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
-+CONFIG_SND_AC97_CODEC=y
-+CONFIG_SND_AC97_BUS=y
-+
-+#
-+# PCI devices
-+#
-+# CONFIG_SND_ALI5451 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_HDSPM is not set
-+# CONFIG_SND_TRIDENT is not set
-+# CONFIG_SND_YMFPCI is not set
-+CONFIG_SND_AD1889=y
-+# CONFIG_SND_AD1889_OPL3 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
-
- #
- # Open Sound System
-@@ -794,6 +969,8 @@
- #
- # USB support
- #
-+CONFIG_USB_ARCH_HAS_HCD=y
-+CONFIG_USB_ARCH_HAS_OHCI=y
- CONFIG_USB=y
- CONFIG_USB_DEBUG=y
-
-@@ -804,23 +981,23 @@
- # 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_ISP116X_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
-
- #
- # USB Device Class drivers
- #
--# CONFIG_USB_AUDIO is not set
-+# CONFIG_OBSOLETE_OSS_USB_DRIVER 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=m
-
-@@ -829,12 +1006,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_DATAFAB is not set
-+# CONFIG_USB_STORAGE_FREECOM is not set
- # 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
-@@ -846,21 +1022,25 @@
- CONFIG_USB_HIDINPUT=y
- # CONFIG_HID_FF is not set
- CONFIG_USB_HIDDEV=y
--CONFIG_USB_AIPTEK=m
--CONFIG_USB_WACOM=m
--CONFIG_USB_KBTAB=m
-+# CONFIG_USB_AIPTEK is not set
-+# CONFIG_USB_WACOM is not set
-+# CONFIG_USB_ACECAD is not set
-+# CONFIG_USB_KBTAB is not set
- # CONFIG_USB_POWERMATE is not set
- # CONFIG_USB_MTOUCH is not set
-+# CONFIG_USB_ITMTOUCH is not set
- # CONFIG_USB_EGALAX is not set
-+# CONFIG_USB_YEALINK is not set
- # CONFIG_USB_XPAD is not set
- # CONFIG_USB_ATI_REMOTE is not set
-+# CONFIG_USB_KEYSPAN_REMOTE is not set
-+# CONFIG_USB_APPLETOUCH is not set
-
- #
- # USB Imaging devices
- #
- CONFIG_USB_MDC800=m
- CONFIG_USB_MICROTEK=m
--CONFIG_USB_HPUSBSCSI=m
-
- #
- # USB Multimedia devices
-@@ -879,6 +1059,7 @@
- # CONFIG_USB_PEGASUS is not set
- # CONFIG_USB_RTL8150 is not set
- # CONFIG_USB_USBNET is not set
-+# CONFIG_USB_MON is not set
-
- #
- # USB port drivers
-@@ -894,7 +1075,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,10 +1083,12 @@
- # 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_LD is not set
- # CONFIG_USB_TEST is not set
-
- #
--# USB ATM/DSL drivers
-+# USB DSL modem support
- #
-
- #
-@@ -920,27 +1102,41 @@
- # CONFIG_MMC is not set
-
- #
-+# InfiniBand support
-+#
-+# CONFIG_INFINIBAND is not set
-+
-+#
-+# SN Devices
-+#
-+
-+#
- # File systems
- #
- CONFIG_EXT2_FS=y
- # CONFIG_EXT2_FS_XATTR is not set
-+# CONFIG_EXT2_FS_XIP is not set
- CONFIG_EXT3_FS=y
- # CONFIG_EXT3_FS_XATTR is not set
- CONFIG_JBD=y
- # CONFIG_JBD_DEBUG is not set
- # CONFIG_REISERFS_FS is not set
- # CONFIG_JFS_FS is not set
-+# CONFIG_FS_POSIX_ACL is not set
- CONFIG_XFS_FS=m
--# CONFIG_XFS_RT is not set
-+CONFIG_XFS_EXPORT=y
- # CONFIG_XFS_QUOTA is not set
- # CONFIG_XFS_SECURITY is not set
- # CONFIG_XFS_POSIX_ACL is not set
-+# CONFIG_XFS_RT is not set
- # CONFIG_MINIX_FS is not set
- # CONFIG_ROMFS_FS is not set
-+CONFIG_INOTIFY=y
- # CONFIG_QUOTA is not set
- CONFIG_DNOTIFY=y
- # CONFIG_AUTOFS_FS is not set
- CONFIG_AUTOFS4_FS=y
-+# CONFIG_FUSE_FS is not set
-
- #
- # CD-ROM/DVD Filesystems
-@@ -966,13 +1162,11 @@
- CONFIG_PROC_FS=y
- CONFIG_PROC_KCORE=y
- CONFIG_SYSFS=y
--# CONFIG_DEVFS_FS is not set
--# CONFIG_DEVPTS_FS_XATTR is not set
- CONFIG_TMPFS=y
--# CONFIG_TMPFS_XATTR is not set
- # CONFIG_HUGETLBFS is not set
- # CONFIG_HUGETLB_PAGE is not set
- CONFIG_RAMFS=y
-+# CONFIG_RELAYFS_FS is not set
-
- #
- # Miscellaneous filesystems
-@@ -996,16 +1190,19 @@
- #
- CONFIG_NFS_FS=y
- CONFIG_NFS_V3=y
-+# CONFIG_NFS_V3_ACL is not set
- # CONFIG_NFS_V4 is not set
- # CONFIG_NFS_DIRECTIO is not set
- CONFIG_NFSD=y
- CONFIG_NFSD_V3=y
-+# CONFIG_NFSD_V3_ACL is not set
- # CONFIG_NFSD_V4 is not set
- # CONFIG_NFSD_TCP is not set
- CONFIG_ROOT_NFS=y
- CONFIG_LOCKD=y
- CONFIG_LOCKD_V4=y
- CONFIG_EXPORTFS=y
-+CONFIG_NFS_COMMON=y
- CONFIG_SUNRPC=y
- # CONFIG_RPCSEC_GSS_KRB5 is not set
- # CONFIG_RPCSEC_GSS_SPKM3 is not set
-@@ -1014,6 +1211,7 @@
- # CONFIG_NCP_FS is not set
- # CONFIG_CODA_FS is not set
- # CONFIG_AFS_FS is not set
-+# CONFIG_9P_FS is not set
-
- #
- # Partition Types
-@@ -1074,13 +1272,19 @@
- #
- # Kernel hacking
- #
-+# CONFIG_PRINTK_TIME is not set
- CONFIG_DEBUG_KERNEL=y
- CONFIG_MAGIC_SYSRQ=y
-+CONFIG_LOG_BUF_SHIFT=16
-+CONFIG_DETECT_SOFTLOCKUP=y
- # 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
-@@ -1092,21 +1296,22 @@
- # Cryptographic options
- #
- CONFIG_CRYPTO=y
--CONFIG_CRYPTO_HMAC=y
-+# CONFIG_CRYPTO_HMAC is not set
- CONFIG_CRYPTO_NULL=m
--CONFIG_CRYPTO_MD4=m
-+# CONFIG_CRYPTO_MD4 is not set
- CONFIG_CRYPTO_MD5=m
--CONFIG_CRYPTO_SHA1=m
--CONFIG_CRYPTO_SHA256=m
-+# CONFIG_CRYPTO_SHA1 is not set
-+# 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=m
- 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_TWOFISH is not set
-+# CONFIG_CRYPTO_SERPENT is not set
-+# CONFIG_CRYPTO_AES is not set
-+# CONFIG_CRYPTO_CAST5 is not set
-+# CONFIG_CRYPTO_CAST6 is not set
- # CONFIG_CRYPTO_TEA is not set
- # CONFIG_CRYPTO_ARC4 is not set
- # CONFIG_CRYPTO_KHAZAD is not set
-@@ -1117,9 +1322,14 @@
- CONFIG_CRYPTO_TEST=m
-
- #
-+# Hardware crypto devices
-+#
-+
-+#
- # Library routines
- #
- CONFIG_CRC_CCITT=m
-+# CONFIG_CRC16 is not set
- CONFIG_CRC32=y
- CONFIG_LIBCRC32C=m
- CONFIG_ZLIB_INFLATE=m
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/arch/parisc/defconfig CVS2_6_14_PA0/arch/parisc/defconfig
---- LINUS_2_6_14/arch/parisc/defconfig 2005-10-27 21:30:33.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/defconfig 2005-10-21 21:16:47.000000000 -0600
-@@ -1,38 +1,56 @@
- #
- # Automatically generated make config: don't edit
-+# Linux kernel version: 2.6.14-rc5-pa1
-+# Fri Oct 21 23:01:33 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
-
- #
- # Code maturity level options
- #
- CONFIG_EXPERIMENTAL=y
- CONFIG_CLEAN_COMPILE=y
--CONFIG_STANDALONE=y
- CONFIG_BROKEN_ON_SMP=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-
- #
- # General setup
- #
-+CONFIG_LOCALVERSION=""
-+# CONFIG_LOCALVERSION_AUTO is not set
- CONFIG_SWAP=y
- CONFIG_SYSVIPC=y
-+# CONFIG_POSIX_MQUEUE is not set
- # CONFIG_BSD_PROCESS_ACCT is not set
- CONFIG_SYSCTL=y
--CONFIG_LOG_BUF_SHIFT=15
-+# CONFIG_AUDIT is not set
- # CONFIG_HOTPLUG is not set
-+CONFIG_KOBJECT_UEVENT=y
- CONFIG_IKCONFIG=y
- CONFIG_IKCONFIG_PROC=y
-+CONFIG_INITRAMFS_SOURCE=""
- # 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_IOSCHED_NOOP=y
--CONFIG_IOSCHED_AS=y
--CONFIG_IOSCHED_DEADLINE=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
-@@ -45,10 +63,21 @@
- 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_64BIT is not set
- # CONFIG_SMP is not set
-+# CONFIG_HZ_100 is not set
-+CONFIG_HZ_250=y
-+# CONFIG_HZ_1000 is not set
-+CONFIG_HZ=250
-+CONFIG_SELECT_MEMORY_MODEL=y
-+CONFIG_FLATMEM_MANUAL=y
-+# CONFIG_DISCONTIGMEM_MANUAL is not set
-+# CONFIG_SPARSEMEM_MANUAL is not set
-+CONFIG_FLATMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+# CONFIG_SPARSEMEM_STATIC is not set
- # CONFIG_PREEMPT is not set
- # CONFIG_HPUX is not set
-
-@@ -65,14 +94,29 @@
- # CONFIG_ISA is not set
- 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 is not set
-+
-+#
-+# 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
-@@ -81,15 +125,97 @@
- # CONFIG_BINFMT_MISC is not set
-
- #
-+# Networking
-+#
-+CONFIG_NET=y
-+
-+#
-+# Networking options
-+#
-+CONFIG_PACKET=y
-+CONFIG_PACKET_MMAP=y
-+CONFIG_UNIX=y
-+# CONFIG_NET_KEY is not set
-+CONFIG_INET=y
-+CONFIG_IP_MULTICAST=y
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+CONFIG_IP_FIB_HASH=y
-+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 is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_IP_MROUTE is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_SYN_COOKIES is not set
-+# CONFIG_INET_AH is not set
-+# CONFIG_INET_ESP is not set
-+# CONFIG_INET_IPCOMP is not set
-+# CONFIG_INET_TUNNEL is not set
-+# CONFIG_INET_DIAG is not set
-+# CONFIG_TCP_CONG_ADVANCED is not set
-+CONFIG_TCP_CONG_BIC=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
-+
-+#
-+# DCCP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_DCCP is not set
-+
-+#
-+# SCTP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_SCTP is not set
-+# CONFIG_ATM is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_VLAN_8021Q is not set
-+# 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
-+# CONFIG_NET_SCHED is not set
-+# CONFIG_NET_CLS_ROUTE is not set
-+
-+#
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+# CONFIG_HAMRADIO is not set
-+# CONFIG_IRDA is not set
-+# CONFIG_BT is not set
-+# CONFIG_IEEE80211 is not set
-+
-+#
- # Device Drivers
- #
-
- #
- # Generic Driver Options
- #
-+CONFIG_STANDALONE=y
-+CONFIG_PREVENT_FIRMWARE_BUILD=y
-+# CONFIG_FW_LOADER is not set
- # CONFIG_DEBUG_DRIVER is not set
-
- #
-+# Connector - unified userspace <-> kernelspace linker
-+#
-+# CONFIG_CONNECTOR is not set
-+
-+#
- # Memory Technology Devices (MTD)
- #
- # CONFIG_MTD is not set
-@@ -99,12 +225,10 @@
- #
- CONFIG_PARPORT=y
- CONFIG_PARPORT_PC=y
--CONFIG_PARPORT_PC_CML1=y
- # CONFIG_PARPORT_SERIAL is not set
- # 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
-
- #
-@@ -114,18 +238,31 @@
- #
- # Block devices
- #
--# CONFIG_BLK_DEV_FD 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=y
- CONFIG_BLK_DEV_CRYPTOLOOP=y
- # 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=4096
- CONFIG_BLK_DEV_INITRD=y
-+# CONFIG_CDROM_PKTCDVD 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 is not set
-
- #
- # ATA/ATAPI/MFM/RLL support
-@@ -135,6 +272,7 @@
- #
- # SCSI device support
- #
-+# CONFIG_RAID_ATTRS is not set
- CONFIG_SCSI=y
- CONFIG_SCSI_PROC_FS=y
-
-@@ -147,53 +285,59 @@
- CONFIG_BLK_DEV_SR=y
- # CONFIG_BLK_DEV_SR_VENDOR is not set
- CONFIG_CHR_DEV_SG=y
-+# CONFIG_CHR_DEV_SCH is not set
-
- #
- # Some SCSI devices (e.g. CD jukebox) support multiple LUNs
- #
- # CONFIG_SCSI_MULTI_LUN is not set
--# CONFIG_SCSI_REPORT_LUNS 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 is not set
-+# CONFIG_SCSI_ISCSI_ATTRS is not set
-+# CONFIG_SCSI_SAS_ATTRS is not set
-+
-+#
- # SCSI low-level drivers
- #
- # CONFIG_BLK_DEV_3W_XXXX_RAID is not set
-+# CONFIG_SCSI_3W_9XXX is not set
- # CONFIG_SCSI_ACARD 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_ADVANSYS is not set
--# CONFIG_SCSI_MEGARAID is not set
-+# CONFIG_SCSI_DPT_I2O is not set
-+# CONFIG_MEGARAID_NEWGEN is not set
-+# CONFIG_MEGARAID_LEGACY is not set
-+# CONFIG_MEGARAID_SAS is not set
- # CONFIG_SCSI_SATA is not set
--# CONFIG_SCSI_BUSLOGIC is not set
--# CONFIG_SCSI_CPQFCTS is not set
- # CONFIG_SCSI_DMX3191D 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_IPS is not set
-+# CONFIG_SCSI_INITIO is not set
- # CONFIG_SCSI_INIA100 is not set
- # 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_SYM53C8XX_2=y
- 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=y
- 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_QLOGIC_ISP is not set
- # CONFIG_SCSI_QLOGIC_FC is not set
- # CONFIG_SCSI_QLOGIC_1280 is not set
- CONFIG_SCSI_QLA2XXX=y
-@@ -202,7 +346,8 @@
- # 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_QLA24XX is not set
-+# CONFIG_SCSI_LPFC is not set
- # CONFIG_SCSI_SIM710 is not set
- # CONFIG_SCSI_DC395x is not set
- # CONFIG_SCSI_DC390T is not set
-@@ -217,15 +362,20 @@
- CONFIG_MD_LINEAR=y
- CONFIG_MD_RAID0=y
- CONFIG_MD_RAID1=y
-+# CONFIG_MD_RAID10 is not set
- CONFIG_MD_RAID5=y
- # CONFIG_MD_RAID6 is not set
- # CONFIG_MD_MULTIPATH is not set
-+# CONFIG_MD_FAULTY is not set
- # CONFIG_BLK_DEV_DM is not set
-
- #
- # Fusion MPT device support
- #
- # CONFIG_FUSION is not set
-+# CONFIG_FUSION_SPI is not set
-+# CONFIG_FUSION_FC is not set
-+# CONFIG_FUSION_SAS is not set
-
- #
- # IEEE 1394 (FireWire) support
-@@ -238,80 +388,23 @@
- # CONFIG_I2O is not set
-
- #
--# Macintosh device drivers
--#
--
--#
--# Networking support
--#
--CONFIG_NET=y
--
--#
--# Networking options
--#
--CONFIG_PACKET=y
--CONFIG_PACKET_MMAP=y
--CONFIG_NETLINK_DEV=y
--CONFIG_UNIX=y
--# CONFIG_NET_KEY is not set
--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 is not set
--# CONFIG_NET_IPGRE is not set
--# CONFIG_IP_MROUTE is not set
--# CONFIG_ARPD is not set
--# CONFIG_INET_ECN is not set
--# CONFIG_SYN_COOKIES is not set
--# CONFIG_INET_AH is not set
--# CONFIG_INET_ESP is not set
--# CONFIG_INET_IPCOMP is not set
--# CONFIG_IPV6 is not set
--# CONFIG_DECNET is not set
--# CONFIG_BRIDGE is not set
--# CONFIG_NETFILTER is not set
--
--#
--# SCTP Configuration (EXPERIMENTAL)
--#
--CONFIG_IPV6_SCTP__=y
--# CONFIG_IP_SCTP is not set
--# CONFIG_ATM is not set
--# CONFIG_VLAN_8021Q 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
--# CONFIG_NET_HW_FLOWCONTROL is not set
--
--#
--# QoS and/or fair queueing
--#
--# CONFIG_NET_SCHED is not set
--
--#
--# Network testing
-+# Network device support
- #
--# CONFIG_NET_PKTGEN is not set
- CONFIG_NETDEVICES=y
-+# CONFIG_DUMMY is not set
-+# CONFIG_BONDING is not set
-+# CONFIG_EQUALIZER is not set
-+# CONFIG_TUN is not set
-
- #
- # ARCnet devices
- #
- # CONFIG_ARCNET is not set
--# CONFIG_DUMMY is not set
--# CONFIG_BONDING is not set
--# CONFIG_EQUALIZER is not set
--# CONFIG_TUN is not set
--# CONFIG_ETHERTAP is not set
-+
-+#
-+# PHY device support
-+#
-+# CONFIG_PHYLIB is not set
-
- #
- # Ethernet (10 or 100Mbit)
-@@ -321,6 +414,7 @@
- CONFIG_LASI_82596=y
- # CONFIG_HAPPYMEAL is not set
- # CONFIG_SUNGEM is not set
-+# CONFIG_CASSINI is not set
- # CONFIG_NET_VENDOR_3COM is not set
- # CONFIG_NET_VENDOR_SMC is not set
-
-@@ -336,6 +430,7 @@
- # CONFIG_DE4X5 is not set
- # CONFIG_WINBOND_840 is not set
- # CONFIG_DM9102 is not set
-+# CONFIG_ULI526X is not set
- # CONFIG_DEPCA is not set
- # CONFIG_HP100 is not set
- CONFIG_NET_PCI=y
-@@ -361,30 +456,37 @@
- # CONFIG_SUNDANCE is not set
- # CONFIG_TLAN is not set
- # CONFIG_VIA_RHINE is not set
-+# CONFIG_NET_POCKET is not set
-
- #
- # Ethernet (1000 Mbit)
- #
--# CONFIG_ACENIC is not set
--CONFIG_DL2K=y
-+CONFIG_ACENIC=y
-+# CONFIG_ACENIC_OMIT_TIGON_I is not set
-+# CONFIG_DL2K is not set
- # CONFIG_E1000 is not set
- # CONFIG_NS83820 is not set
- # CONFIG_HAMACHI is not set
- # CONFIG_YELLOWFIN is not set
- # CONFIG_R8169 is not set
- # CONFIG_SIS190 is not set
-+# CONFIG_SKGE is not set
- # CONFIG_SK98LIN is not set
--# CONFIG_TIGON3 is not set
-+# CONFIG_VIA_VELOCITY is not set
-+CONFIG_TIGON3=y
-+# CONFIG_BNX2 is not set
-
- #
- # Ethernet (10000 Mbit)
- #
-+# CONFIG_CHELSIO_T1 is not set
- # CONFIG_IXGB is not set
--# CONFIG_FDDI is not set
--# CONFIG_HIPPI is not set
--# CONFIG_PLIP is not set
--# CONFIG_PPP is not set
--# CONFIG_SLIP is not set
-+# CONFIG_S2IO is not set
-+
-+#
-+# Token Ring devices
-+#
-+# CONFIG_TR is not set
-
- #
- # Wireless LAN (non-hamradio)
-@@ -399,38 +501,30 @@
- #
- # Wireless 802.11b ISA/PCI cards support
- #
--CONFIG_AIRO=y
- # CONFIG_HERMES is not set
- # CONFIG_ATMEL is not set
--CONFIG_NET_WIRELESS=y
-
- #
--# Token Ring devices
-+# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
- #
--# CONFIG_TR is not set
--# CONFIG_NET_FC is not set
--# CONFIG_RCPCI is not set
--# CONFIG_SHAPER is not set
-+# CONFIG_PRISM54 is not set
-+# CONFIG_HOSTAP is not set
-+CONFIG_NET_WIRELESS=y
-
- #
- # Wan interfaces
- #
- # CONFIG_WAN is not set
--
--#
--# Amateur Radio support
--#
--# CONFIG_HAMRADIO is not set
--
--#
--# IrDA (infrared) support
--#
--# CONFIG_IRDA is not set
--
--#
--# Bluetooth support
--#
--# CONFIG_BT is not set
-+# CONFIG_FDDI is not set
-+# CONFIG_HIPPI is not set
-+# CONFIG_PLIP is not set
-+# CONFIG_PPP is not set
-+# CONFIG_SLIP is not set
-+# CONFIG_NET_FC is not set
-+# CONFIG_SHAPER is not set
-+# CONFIG_NETCONSOLE is not set
-+# CONFIG_NETPOLL is not set
-+# CONFIG_NET_POLL_CONTROLLER is not set
-
- #
- # ISDN subsystem
-@@ -460,51 +554,67 @@
- # 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=y
--CONFIG_HIL_MLC=y
--# CONFIG_SERIO_PCIPS2 is not set
--
--#
- # Input Device Drivers
- #
- CONFIG_INPUT_KEYBOARD=y
- # CONFIG_KEYBOARD_ATKBD 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=y
- CONFIG_KEYBOARD_HIL=y
- CONFIG_INPUT_MOUSE=y
- # CONFIG_MOUSE_PS2 is not set
- # CONFIG_MOUSE_SERIAL is not set
-+# CONFIG_MOUSE_VSXXXAA is not set
- # CONFIG_MOUSE_HIL is not set
- CONFIG_INPUT_JOYSTICK=y
-+# CONFIG_JOYSTICK_ANALOG is not set
-+# CONFIG_JOYSTICK_A3D is not set
-+# CONFIG_JOYSTICK_ADI is not set
-+# CONFIG_JOYSTICK_COBRA is not set
-+# CONFIG_JOYSTICK_GF2K is not set
-+# CONFIG_JOYSTICK_GRIP is not set
-+# CONFIG_JOYSTICK_GRIP_MP is not set
-+# CONFIG_JOYSTICK_GUILLEMOT is not set
-+# CONFIG_JOYSTICK_INTERACT is not set
-+# CONFIG_JOYSTICK_SIDEWINDER is not set
-+# CONFIG_JOYSTICK_TMDC is not set
- # CONFIG_JOYSTICK_IFORCE is not set
- # CONFIG_JOYSTICK_WARRIOR is not set
- # CONFIG_JOYSTICK_MAGELLAN is not set
- # CONFIG_JOYSTICK_SPACEORB is not set
- # CONFIG_JOYSTICK_SPACEBALL is not set
- # CONFIG_JOYSTICK_STINGER is not set
--# CONFIG_JOYSTICK_TWIDDLER is not set
-+# CONFIG_JOYSTICK_TWIDJOY is not set
- # CONFIG_JOYSTICK_DB9 is not set
- # CONFIG_JOYSTICK_GAMECON is not set
- # CONFIG_JOYSTICK_TURBOGRAFX is not set
--# CONFIG_INPUT_JOYDUMP is not set
-+# CONFIG_JOYSTICK_JOYDUMP is not set
- CONFIG_INPUT_TOUCHSCREEN=y
- # CONFIG_TOUCHSCREEN_GUNZE is not set
-+# CONFIG_TOUCHSCREEN_ELO is not set
-+# CONFIG_TOUCHSCREEN_MTOUCH is not set
-+# CONFIG_TOUCHSCREEN_MK712 is not set
- CONFIG_INPUT_MISC=y
--# CONFIG_INPUT_PCSPKR is not set
- # CONFIG_INPUT_UINPUT is not set
- CONFIG_HP_SDC_RTC=y
-
- #
-+# 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=y
-+CONFIG_HIL_MLC=y
-+# CONFIG_SERIO_PCIPS2 is not set
-+# CONFIG_SERIO_RAW is not set
-+# CONFIG_GAMEPORT is not set
-+
-+#
- # Character devices
- #
- CONFIG_VT=y
-@@ -522,16 +632,16 @@
- 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 is not set
--# CONFIG_PDC_CONSOLE is not set
-+CONFIG_SERIAL_MUX=y
-+CONFIG_SERIAL_MUX_CONSOLE=y
- 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
-@@ -541,12 +651,6 @@
- # CONFIG_TIPAR is not set
-
- #
--# Mice
--#
--# CONFIG_BUSMOUSE is not set
--# CONFIG_QIC02_TAPE is not set
--
--#
- # IPMI
- #
- # CONFIG_IPMI_HANDLER is not set
-@@ -555,7 +659,6 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
--# CONFIG_NVRAM is not set
- CONFIG_GEN_RTC=y
- # CONFIG_GEN_RTC_X is not set
- # CONFIG_DTLK is not set
-@@ -565,21 +668,40 @@
- #
- # Ftape, the floppy tape device driver
- #
--# CONFIG_FTAPE is not set
--# CONFIG_AGP is not set
- # CONFIG_DRM is not set
- # CONFIG_RAW_DRIVER is not set
-
- #
-+# TPM devices
-+#
-+# CONFIG_TCG_TPM is not set
-+
-+#
- # I2C support
- #
- # CONFIG_I2C is not set
-
- #
-+# Dallas's 1-wire bus
-+#
-+# CONFIG_W1 is not set
-+
-+#
-+# Hardware Monitoring support
-+#
-+CONFIG_HWMON=y
-+# CONFIG_HWMON_VID is not set
-+# CONFIG_HWMON_DEBUG_CHIP is not set
-+
-+#
- # Misc devices
- #
-
- #
-+# Multimedia Capabilities Port drivers
-+#
-+
-+#
- # Multimedia devices
- #
- # CONFIG_VIDEO_DEV is not set
-@@ -593,34 +715,45 @@
- # 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
- # 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_CYBLA 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_PCI_CONSOLE=y
-+CONFIG_STI_CONSOLE=y
- # CONFIG_FONTS is not set
- CONFIG_FONT_8x8=y
- CONFIG_FONT_8x16=y
-@@ -629,6 +762,7 @@
- # Logo configuration
- #
- # CONFIG_LOGO is not set
-+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
-
- #
- # Sound
-@@ -638,17 +772,94 @@
- #
- # Advanced Linux Sound Architecture
- #
--# CONFIG_SND is not set
-+CONFIG_SND=y
-+CONFIG_SND_TIMER=y
-+CONFIG_SND_PCM=y
-+CONFIG_SND_SEQUENCER=y
-+# CONFIG_SND_SEQ_DUMMY is not set
-+CONFIG_SND_OSSEMUL=y
-+CONFIG_SND_MIXER_OSS=y
-+CONFIG_SND_PCM_OSS=y
-+CONFIG_SND_SEQUENCER_OSS=y
-+# CONFIG_SND_VERBOSE_PRINTK is not set
-+# CONFIG_SND_DEBUG is not set
-+
-+#
-+# Generic devices
-+#
-+# CONFIG_SND_DUMMY is not set
-+# 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
-+CONFIG_SND_AC97_CODEC=y
-+CONFIG_SND_AC97_BUS=y
-+
-+#
-+# PCI devices
-+#
-+# CONFIG_SND_ALI5451 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_HDSPM is not set
-+# CONFIG_SND_TRIDENT is not set
-+# CONFIG_SND_YMFPCI is not set
-+CONFIG_SND_AD1889=y
-+# CONFIG_SND_AD1889_OPL3 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
-+
-+#
-+# GSC devices
-+#
-+CONFIG_SND_HARMONY=y
-
- #
- # Open Sound System
- #
- # CONFIG_SOUND_PRIME is not set
--# CONFIG_SOUND_HARMONY is not set
-
- #
- # USB support
- #
-+CONFIG_USB_ARCH_HAS_HCD=y
-+CONFIG_USB_ARCH_HAS_OHCI=y
- CONFIG_USB=y
- CONFIG_USB_DEBUG=y
-
-@@ -658,26 +869,36 @@
- # 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=y
-+# CONFIG_USB_EHCI_SPLIT_ISO is not set
-+# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-+# CONFIG_USB_ISP116X_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
-
- #
- # USB Device Class drivers
- #
--# CONFIG_USB_AUDIO is not set
-+# CONFIG_OBSOLETE_OSS_USB_DRIVER 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 is not set
-
- #
--# USB Human Interface Devices (HID)
-+# USB Input Devices
- #
- # CONFIG_USB_HID is not set
-
-@@ -688,16 +909,23 @@
- # CONFIG_USB_MOUSE is not set
- # CONFIG_USB_AIPTEK is not set
- # CONFIG_USB_WACOM is not set
-+# CONFIG_USB_ACECAD is not set
- # CONFIG_USB_KBTAB is not set
- # CONFIG_USB_POWERMATE is not set
-+# CONFIG_USB_MTOUCH is not set
-+# CONFIG_USB_ITMTOUCH is not set
-+# CONFIG_USB_EGALAX is not set
-+# CONFIG_USB_YEALINK is not set
- # CONFIG_USB_XPAD is not set
-+# CONFIG_USB_ATI_REMOTE is not set
-+# CONFIG_USB_KEYSPAN_REMOTE is not set
-+# CONFIG_USB_APPLETOUCH is not set
-
- #
- # USB Imaging devices
- #
- # CONFIG_USB_MDC800 is not set
- # CONFIG_USB_MICROTEK is not set
--# CONFIG_USB_HPUSBSCSI is not set
-
- #
- # USB Multimedia devices
-@@ -709,13 +937,15 @@
- #
-
- #
--# USB Network adaptors
-+# 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=y
-
- #
- # USB port drivers
-@@ -732,12 +962,21 @@
- #
- # 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 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
-+# CONFIG_USB_LD is not set
-+
-+#
-+# USB DSL modem support
-+#
-
- #
- # USB Gadget Support
-@@ -745,22 +984,41 @@
- # CONFIG_USB_GADGET is not set
-
- #
-+# MMC/SD Card support
-+#
-+# CONFIG_MMC is not set
-+
-+#
-+# InfiniBand support
-+#
-+# CONFIG_INFINIBAND is not set
-+
-+#
-+# SN Devices
-+#
-+
-+#
- # File systems
- #
- CONFIG_EXT2_FS=y
- # CONFIG_EXT2_FS_XATTR is not set
-+# CONFIG_EXT2_FS_XIP is not set
- CONFIG_EXT3_FS=y
- # CONFIG_EXT3_FS_XATTR is not set
- CONFIG_JBD=y
- # CONFIG_JBD_DEBUG is not set
- # CONFIG_REISERFS_FS is not set
- # CONFIG_JFS_FS is not set
-+# CONFIG_FS_POSIX_ACL is not set
- # CONFIG_XFS_FS is not set
- # CONFIG_MINIX_FS is not set
- # CONFIG_ROMFS_FS is not set
-+CONFIG_INOTIFY=y
- # CONFIG_QUOTA is not set
-+CONFIG_DNOTIFY=y
- # CONFIG_AUTOFS_FS is not set
- # CONFIG_AUTOFS4_FS is not set
-+# CONFIG_FUSE_FS is not set
-
- #
- # CD-ROM/DVD Filesystems
-@@ -773,7 +1031,8 @@
- #
- # DOS/FAT/NT Filesystems
- #
--# CONFIG_FAT_FS is not set
-+# CONFIG_MSDOS_FS is not set
-+# CONFIG_VFAT_FS is not set
- # CONFIG_NTFS_FS is not set
-
- #
-@@ -781,11 +1040,11 @@
- #
- CONFIG_PROC_FS=y
- CONFIG_PROC_KCORE=y
--# CONFIG_DEVFS_FS is not set
--# CONFIG_DEVPTS_FS_XATTR is not set
-+CONFIG_SYSFS=y
- CONFIG_TMPFS=y
- # CONFIG_HUGETLB_PAGE is not set
- CONFIG_RAMFS=y
-+# CONFIG_RELAYFS_FS is not set
-
- #
- # Miscellaneous filesystems
-@@ -809,23 +1068,28 @@
- #
- CONFIG_NFS_FS=y
- CONFIG_NFS_V3=y
-+# CONFIG_NFS_V3_ACL is not set
- # CONFIG_NFS_V4 is not set
- # CONFIG_NFS_DIRECTIO is not set
- CONFIG_NFSD=y
- CONFIG_NFSD_V3=y
-+# CONFIG_NFSD_V3_ACL is not set
- # CONFIG_NFSD_V4 is not set
- CONFIG_NFSD_TCP=y
- CONFIG_ROOT_NFS=y
- CONFIG_LOCKD=y
- CONFIG_LOCKD_V4=y
- CONFIG_EXPORTFS=y
-+CONFIG_NFS_COMMON=y
- CONFIG_SUNRPC=y
--# CONFIG_SUNRPC_GSS is not set
-+# CONFIG_RPCSEC_GSS_KRB5 is not set
-+# CONFIG_RPCSEC_GSS_SPKM3 is not set
- # CONFIG_SMB_FS is not set
- # CONFIG_CIFS is not set
- # CONFIG_NCP_FS is not set
- # CONFIG_CODA_FS is not set
- # CONFIG_AFS_FS is not set
-+# CONFIG_9P_FS is not set
-
- #
- # Partition Types
-@@ -861,6 +1125,7 @@
- # 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 is not set
- # CONFIG_NLS_ISO8859_2 is not set
- # CONFIG_NLS_ISO8859_3 is not set
-@@ -885,17 +1150,24 @@
- #
- # Kernel hacking
- #
-+# CONFIG_PRINTK_TIME is not set
- CONFIG_DEBUG_KERNEL=y
--# CONFIG_DEBUG_SLAB is not set
- CONFIG_MAGIC_SYSRQ=y
-+CONFIG_LOG_BUF_SHIFT=15
-+CONFIG_DETECT_SOFTLOCKUP=y
-+# CONFIG_SCHEDSTATS is not set
-+# CONFIG_DEBUG_SLAB is not set
- # CONFIG_DEBUG_SPINLOCK is not set
--# CONFIG_DEBUG_RWLOCK is not set
--CONFIG_FRAME_POINTER=y
-+# 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 is not set
- # CONFIG_SECURITY is not set
-
- #
-@@ -909,6 +1181,8 @@
- # CONFIG_CRYPTO_SHA1 is not set
- # 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
-@@ -916,11 +1190,23 @@
- # CONFIG_CRYPTO_AES is not set
- # CONFIG_CRYPTO_CAST5 is not set
- # CONFIG_CRYPTO_CAST6 is not set
-+# CONFIG_CRYPTO_TEA is not set
- # CONFIG_CRYPTO_ARC4 is not set
-+# CONFIG_CRYPTO_KHAZAD is not set
-+# CONFIG_CRYPTO_ANUBIS is not set
- # CONFIG_CRYPTO_DEFLATE is not set
-+# CONFIG_CRYPTO_MICHAEL_MIC is not set
-+# CONFIG_CRYPTO_CRC32C is not set
- # CONFIG_CRYPTO_TEST is not set
-
- #
-+# Hardware crypto devices
-+#
-+
-+#
- # Library routines
- #
-+# CONFIG_CRC_CCITT is not set
-+# CONFIG_CRC16 is not set
- CONFIG_CRC32=y
-+# CONFIG_LIBCRC32C is not set
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/arch/parisc/kernel/cache.c CVS2_6_14_PA0/arch/parisc/kernel/cache.c
---- LINUS_2_6_14/arch/parisc/kernel/cache.c 2005-10-27 21:30:34.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/kernel/cache.c 2005-07-21 21:32:43.000000000 -0600
-@@ -27,6 +27,7 @@
- #include <asm/page.h>
- #include <asm/pgalloc.h>
- #include <asm/processor.h>
-+#include <asm/sections.h>
+@@ -332,7 +332,7 @@
+ }
+
+ #define FLUSH_THRESHOLD 0x80000 /* 0.5MB */
+-int parisc_cache_flush_threshold = FLUSH_THRESHOLD;
++int parisc_cache_flush_threshold __read_mostly = FLUSH_THRESHOLD;
- int split_tlb;
- int dcache_stride;
-@@ -207,6 +208,9 @@
-
- /* "New and Improved" version from Jim Hull
- * (1 << (cc_block-1)) * (cc_line << (4 + cnf.cc_shift))
-+ * The following CAFL_STRIDE is an optimized version, see
-+ * http://lists.parisc-linux.org/pipermail/parisc-linux/2004-June/023625.html
-+ * http://lists.parisc-linux.org/pipermail/parisc-linux/2004-June/023671.html
- */
- #define CAFL_STRIDE(cnf) (cnf.cc_line << (3 + cnf.cc_block + cnf.cc_shift))
- dcache_stride = CAFL_STRIDE(cache_info.dc_conf);
-@@ -339,17 +343,15 @@
void parisc_setup_cache_timing(void)
{
- unsigned long rangetime, alltime;
-- extern char _text; /* start of kernel code, defined by linker */
-- extern char _end; /* end of BSS, defined by linker */
- unsigned long size;
-
- alltime = mfctl(16);
- flush_data_cache();
- alltime = mfctl(16) - alltime;
-
-- size = (unsigned long)(&_end - _text);
-+ size = (unsigned long)(_end - _text);
- rangetime = mfctl(16);
-- flush_kernel_dcache_range((unsigned long)&_text, size);
-+ flush_kernel_dcache_range((unsigned long)_text, size);
- rangetime = mfctl(16) - rangetime;
-
- printk(KERN_DEBUG "Whole cache flush %lu cycles, flushing %lu bytes %lu cycles\n",
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/arch/parisc/kernel/drivers.c CVS2_6_14_PA0/arch/parisc/kernel/drivers.c
---- LINUS_2_6_14/arch/parisc/kernel/drivers.c 2005-10-27 21:30:34.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/kernel/drivers.c 2005-09-11 20:36:49.000000000 -0600
-@@ -46,36 +46,51 @@
- .bus_id = "parisc",
- };
-
--#define for_each_padev(padev) \
-- for (padev = next_dev(&root); padev != NULL; \
-- padev = next_dev(&padev->dev))
-+static inline int check_dev(struct device *dev)
-+{
-+ if (dev->bus == &parisc_bus_type) {
-+ struct parisc_device *pdev;
-+ pdev = to_parisc_device(dev);
-+ return pdev->id.hw_type != HPHW_FAULTY;
-+ }
-+ return 1;
-+}
-+
-+static struct device *
-+parse_tree_node(struct device *parent, int index, struct hardware_path *modpath);
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/arch/parisc/kernel/drivers.c CVS2_6_15_RC7_PA0/arch/parisc/kernel/drivers.c
+--- LINUS_2_6_15_RC7/arch/parisc/kernel/drivers.c 2005-12-27 13:25:34.000000000 -0700
++++ CVS2_6_15_RC7_PA0/arch/parisc/kernel/drivers.c 2005-12-17 11:18:59.000000000 -0700
+@@ -39,7 +39,7 @@
+ #include <asm/parisc-device.h>
--#define check_dev(padev) \
-- (padev->id.hw_type != HPHW_FAULTY) ? padev : next_dev(&padev->dev)
-+struct recurse_struct {
-+ void * obj;
-+ int (*fn)(struct device *, void *);
-+};
-+
-+static int descend_children(struct device * dev, void * data)
-+{
-+ struct recurse_struct * recurse_data = (struct recurse_struct *)data;
-+
-+ if (recurse_data->fn(dev, recurse_data->obj))
-+ return 1;
-+ else
-+ return device_for_each_child(dev, recurse_data, descend_children);
-+}
+ /* See comments in include/asm-parisc/pci.h */
+-struct hppa_dma_ops *hppa_dma_ops;
++struct hppa_dma_ops *hppa_dma_ops __read_mostly;
+ EXPORT_SYMBOL(hppa_dma_ops);
+
+ static struct device root = {
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/arch/parisc/kernel/firmware.c CVS2_6_15_RC7_PA0/arch/parisc/kernel/firmware.c
+--- LINUS_2_6_15_RC7/arch/parisc/kernel/firmware.c 2005-12-27 13:25:34.000000000 -0700
++++ CVS2_6_15_RC7_PA0/arch/parisc/kernel/firmware.c 2005-12-17 10:21:16.000000000 -0700
+@@ -80,7 +80,7 @@
+
+ /* Firmware needs to be initially set to narrow to determine the
+ * actual firmware width. */
+-int parisc_narrow_firmware = 1;
++int parisc_narrow_firmware __read_mostly = 1;
+ #endif
+
+ /* On most currently-supported platforms, IODC I/O calls are 32-bit calls
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/arch/parisc/kernel/inventory.c CVS2_6_15_RC7_PA0/arch/parisc/kernel/inventory.c
+--- LINUS_2_6_15_RC7/arch/parisc/kernel/inventory.c 2005-12-27 13:25:34.000000000 -0700
++++ CVS2_6_15_RC7_PA0/arch/parisc/kernel/inventory.c 2005-12-17 10:54:41.000000000 -0700
+@@ -38,7 +38,7 @@
+ */
+ #undef DEBUG_PAT
- /**
-- * next_dev - enumerates registered devices
-- * @dev: the previous device returned from next_dev
-+ * for_each_padev - Iterate over all devices in the tree
-+ * @fn: Function to call for each device.
-+ * @data: Data to pass to the called function.
- *
-- * next_dev does a depth-first search of the tree, returning parents
-- * before children. Returns NULL when there are no more devices.
-+ * This performs a depth-first traversal of the tree, calling the
-+ * function passed for each node. It calls the function for parents
-+ * before children.
- */
--static struct parisc_device *next_dev(struct device *dev)
--{
-- if (!list_empty(&dev->children)) {
-- dev = list_to_dev(dev->children.next);
-- return check_dev(to_parisc_device(dev));
-- }
+-int pdc_type = PDC_TYPE_ILLEGAL;
++int pdc_type __read_mostly = PDC_TYPE_ILLEGAL;
-- while (dev != &root) {
-- if (dev->node.next != &dev->parent->children) {
-- dev = list_to_dev(dev->node.next);
-- return to_parisc_device(dev);
-- }
-- dev = dev->parent;
-- }
--
-- return NULL;
-+static int for_each_padev(int (*fn)(struct device *, void *), void * data)
-+{
-+ struct recurse_struct recurse_data = {
-+ .obj = data,
-+ .fn = fn,
-+ };
-+ return device_for_each_child(&root, &recurse_data, descend_children);
- }
+ void __init setup_pdc(void)
+ {
+@@ -120,8 +120,8 @@
+ * pdc info is bad in this case).
+ */
- /**
-@@ -105,12 +120,6 @@
- return 0;
- }
+- if ( ((start & (PAGE_SIZE - 1)) != 0)
+- || ((pages4k & ((1UL << PDC_PAGE_ADJ_SHIFT) - 1)) != 0) ) {
++ if (unlikely( ((start & (PAGE_SIZE - 1)) != 0)
++ || ((pages4k & ((1UL << PDC_PAGE_ADJ_SHIFT) - 1)) != 0) )) {
+
+ panic("Memory range doesn't align with page size!\n");
+ }
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/arch/parisc/kernel/pci-dma.c CVS2_6_15_RC7_PA0/arch/parisc/kernel/pci-dma.c
+--- LINUS_2_6_15_RC7/arch/parisc/kernel/pci-dma.c 2005-12-27 13:25:34.000000000 -0700
++++ CVS2_6_15_RC7_PA0/arch/parisc/kernel/pci-dma.c 2005-12-17 10:54:41.000000000 -0700
+@@ -33,10 +33,10 @@
+ #include <asm/uaccess.h>
+ #include <asm/tlbflush.h> /* for purge_tlb_*() macros */
--static void claim_device(struct parisc_driver *driver, struct parisc_device *dev)
--{
-- dev->driver = driver;
-- request_mem_region(dev->hpa, 0x1000, driver->name);
--}
--
- static int parisc_driver_probe(struct device *dev)
- {
- int rc;
-@@ -119,8 +128,8 @@
+-static struct proc_dir_entry * proc_gsc_root = NULL;
++static struct proc_dir_entry * proc_gsc_root __read_mostly = NULL;
+ static int pcxl_proc_info(char *buffer, char **start, off_t offset, int length);
+-static unsigned long pcxl_used_bytes = 0;
+-static unsigned long pcxl_used_pages = 0;
++static unsigned long pcxl_used_bytes __read_mostly = 0;
++static unsigned long pcxl_used_pages __read_mostly = 0;
+
+ extern unsigned long pcxl_dma_start; /* Start of pcxl dma mapping area */
+ static spinlock_t pcxl_res_lock;
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/arch/parisc/kernel/pdc_chassis.c CVS2_6_15_RC7_PA0/arch/parisc/kernel/pdc_chassis.c
+--- LINUS_2_6_15_RC7/arch/parisc/kernel/pdc_chassis.c 2005-12-27 13:25:34.000000000 -0700
++++ CVS2_6_15_RC7_PA0/arch/parisc/kernel/pdc_chassis.c 2005-12-17 11:18:59.000000000 -0700
+@@ -30,6 +30,7 @@
+ #include <linux/kernel.h>
+ #include <linux/reboot.h>
+ #include <linux/notifier.h>
++#include <linux/cache.h>
- rc = pa_drv->probe(pa_dev);
+ #include <asm/pdc_chassis.h>
+ #include <asm/processor.h>
+@@ -38,8 +39,8 @@
-- if(!rc)
-- claim_device(pa_drv, pa_dev);
-+ if (!rc)
-+ pa_dev->driver = pa_drv;
- return rc;
- }
-@@ -131,7 +140,6 @@
- struct parisc_driver *pa_drv = to_parisc_driver(dev->driver);
- if (pa_drv->remove)
- pa_drv->remove(pa_dev);
-- release_mem_region(pa_dev->hpa, 0x1000);
+ #ifdef CONFIG_PDC_CHASSIS
+-static int pdc_chassis_old = 0;
+-static unsigned int pdc_chassis_enabled = 1;
++static int pdc_chassis_old __read_mostly = 0;
++static unsigned int pdc_chassis_enabled __read_mostly = 1;
- return 0;
- }
-@@ -173,6 +181,24 @@
- }
- EXPORT_SYMBOL(register_parisc_driver);
-+
-+struct match_count {
-+ struct parisc_driver * driver;
-+ int count;
-+};
-+
-+static int match_and_count(struct device * dev, void * data)
-+{
-+ struct match_count * m = data;
-+ struct parisc_device * pdev = to_parisc_device(dev);
-+
-+ if (check_dev(dev)) {
-+ if (match_device(m->driver, pdev))
-+ m->count++;
-+ }
-+ return 0;
-+}
-+
/**
- * count_parisc_driver - count # of devices this driver would match
- * @driver: the PA-RISC driver to try
-@@ -182,15 +208,14 @@
- */
- int count_parisc_driver(struct parisc_driver *driver)
+@@ -132,7 +133,7 @@
{
-- struct parisc_device *device;
-- int cnt = 0;
-+ struct match_count m = {
-+ .driver = driver,
-+ .count = 0,
-+ };
-
-- for_each_padev(device) {
-- if (match_device(driver, device))
-- cnt++;
-- }
-+ for_each_padev(match_and_count, &m);
-
-- return cnt;
-+ return m.count;
- }
-
+ #ifdef CONFIG_PDC_CHASSIS
+ int handle = 0;
+- if (pdc_chassis_enabled) {
++ if (likely(pdc_chassis_enabled)) {
+ DPRINTK(KERN_DEBUG "%s: parisc_pdc_chassis_init()\n", __FILE__);
+
+ /* Let see if we have something to handle... */
+@@ -142,7 +143,7 @@
+ printk(KERN_INFO "Enabling PDC_PAT chassis codes support.\n");
+ handle = 1;
+ }
+- else if (pdc_chassis_old) {
++ else if (unlikely(pdc_chassis_old)) {
+ printk(KERN_INFO "Enabling old style chassis LED panel support.\n");
+ handle = 1;
+ }
+@@ -178,7 +179,7 @@
+ /* Maybe we should do that in an other way ? */
+ int retval = 0;
+ #ifdef CONFIG_PDC_CHASSIS
+- if (pdc_chassis_enabled) {
++ if (likely(pdc_chassis_enabled)) {
-@@ -206,14 +231,34 @@
- }
- EXPORT_SYMBOL(unregister_parisc_driver);
+ DPRINTK(KERN_DEBUG "%s: pdc_chassis_send_status(%d)\n", __FILE__, message);
--static struct parisc_device *find_device_by_addr(unsigned long hpa)
-+struct find_data {
-+ unsigned long hpa;
-+ struct parisc_device * dev;
-+};
-+
-+static int find_device(struct device * dev, void * data)
- {
-- struct parisc_device *dev;
-- for_each_padev(dev) {
-- if (dev->hpa == hpa)
-- return dev;
-+ struct parisc_device * pdev = to_parisc_device(dev);
-+ struct find_data * d = (struct find_data*)data;
-+
-+ if (check_dev(dev)) {
-+ if (pdev->hpa.start == d->hpa) {
-+ d->dev = pdev;
-+ return 1;
-+ }
- }
-- return NULL;
-+ return 0;
-+}
-+
-+static struct parisc_device *find_device_by_addr(unsigned long hpa)
-+{
-+ struct find_data d = {
-+ .hpa = hpa,
-+ };
-+ int ret;
-+
-+ ret = for_each_padev(find_device, &d);
-+ return ret ? d.dev : NULL;
- }
+@@ -214,7 +215,7 @@
+ }
+ } else retval = -1;
+ #else
+- if (pdc_chassis_old) {
++ if (unlikely(pdc_chassis_old)) {
+ switch (message) {
+ case PDC_CHASSIS_DIRECT_BSTART:
+ case PDC_CHASSIS_DIRECT_BCOMPLETE:
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/arch/parisc/kernel/perf.c CVS2_6_15_RC7_PA0/arch/parisc/kernel/perf.c
+--- LINUS_2_6_15_RC7/arch/parisc/kernel/perf.c 2005-12-27 13:25:34.000000000 -0700
++++ CVS2_6_15_RC7_PA0/arch/parisc/kernel/perf.c 2005-12-17 10:54:41.000000000 -0700
+@@ -66,10 +66,10 @@
+ uint8_t write_control;
+ };
- /**
-@@ -387,6 +432,23 @@
- return dev;
- }
+-static int perf_processor_interface = UNKNOWN_INTF;
+-static int perf_enabled = 0;
++static int perf_processor_interface __read_mostly = UNKNOWN_INTF;
++static int perf_enabled __read_mostly = 0;
+ static spinlock_t perf_lock;
+-struct parisc_device *cpu_device = NULL;
++struct parisc_device *cpu_device __read_mostly = NULL;
+
+ /* RDRs to write for PCX-W */
+ static int perf_rdrs_W[] =
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/arch/parisc/kernel/process.c CVS2_6_15_RC7_PA0/arch/parisc/kernel/process.c
+--- LINUS_2_6_15_RC7/arch/parisc/kernel/process.c 2005-12-27 13:25:34.000000000 -0700
++++ CVS2_6_15_RC7_PA0/arch/parisc/kernel/process.c 2005-12-17 10:54:41.000000000 -0700
+@@ -54,7 +54,7 @@
+ #include <asm/uaccess.h>
+ #include <asm/unwind.h>
-+struct match_id_data {
-+ char id;
-+ struct parisc_device * dev;
-+};
-+
-+static int match_by_id(struct device * dev, void * data)
-+{
-+ struct parisc_device * pdev = to_parisc_device(dev);
-+ struct match_id_data * d = data;
-+
-+ if (pdev->hw_path == d->id) {
-+ d->dev = pdev;
-+ return 1;
-+ }
-+ return 0;
-+}
-+
- /**
- * alloc_tree_node - returns a device entry in the iotree
- * @parent: the parent node in the tree
-@@ -397,15 +459,13 @@
- */
- static struct parisc_device * alloc_tree_node(struct device *parent, char id)
- {
-- struct device *dev;
--
-- list_for_each_entry(dev, &parent->children, node) {
-- struct parisc_device *padev = to_parisc_device(dev);
-- if (padev->hw_path == id)
-- return padev;
-- }
--
-- return create_tree_node(id, parent);
-+ struct match_id_data d = {
-+ .id = id,
-+ };
-+ if (device_for_each_child(parent, &d, match_by_id))
-+ return d.dev;
-+ else
-+ return create_tree_node(id, parent);
- }
+-static int hlt_counter;
++static int hlt_counter __read_mostly;
- static struct parisc_device *create_parisc_device(struct hardware_path *modpath)
-@@ -439,10 +499,8 @@
+ /*
+ * Power off function, if any
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/arch/parisc/kernel/processor.c CVS2_6_15_RC7_PA0/arch/parisc/kernel/processor.c
+--- LINUS_2_6_15_RC7/arch/parisc/kernel/processor.c 2005-12-27 13:25:34.000000000 -0700
++++ CVS2_6_15_RC7_PA0/arch/parisc/kernel/processor.c 2005-12-17 10:21:16.000000000 -0700
+@@ -44,10 +44,10 @@
+ #include <asm/irq.h> /* for struct irq_region */
+ #include <asm/parisc-device.h>
- dev = create_parisc_device(mod_path);
- if (dev->id.hw_type != HPHW_FAULTY) {
-- char p[64];
-- print_pa_hwpath(dev, p);
- printk("Two devices have hardware path %s. Please file a bug with HP.\n"
-- "In the meantime, you could try rearranging your cards.\n", p);
-+ "In the meantime, you could try rearranging your cards.\n", parisc_pathname(dev));
- return NULL;
- }
+-struct system_cpuinfo_parisc boot_cpu_data;
++struct system_cpuinfo_parisc boot_cpu_data __read_mostly;
+ EXPORT_SYMBOL(boot_cpu_data);
-@@ -451,12 +509,27 @@
- dev->id.hversion_rev = iodc_data[1] & 0x0f;
- dev->id.sversion = ((iodc_data[4] & 0x0f) << 16) |
- (iodc_data[5] << 8) | iodc_data[6];
-- dev->hpa = hpa;
-+ dev->hpa.name = parisc_pathname(dev);
-+ dev->hpa.start = hpa;
-+ if (hpa == 0xf4000000 || hpa == 0xf6000000 ||
-+ hpa == 0xf8000000 || hpa == 0xfa000000) {
-+ dev->hpa.end = hpa + 0x01ffffff;
-+ } else {
-+ dev->hpa.end = hpa + 0xfff;
-+ }
-+ dev->hpa.flags = IORESOURCE_MEM;
- name = parisc_hardware_description(&dev->id);
- if (name) {
- strlcpy(dev->name, name, sizeof(dev->name));
- }
+-struct cpuinfo_parisc cpu_data[NR_CPUS];
++struct cpuinfo_parisc cpu_data[NR_CPUS] __read_mostly;
-+ /* Silently fail things like mouse ports which are subsumed within
-+ * the keyboard controller
-+ */
-+ if ((hpa & 0xfff) == 0 && insert_resource(&iomem_resource, &dev->hpa))
-+ printk("Unable to claim HPA %lx for device %s\n",
-+ hpa, name);
-+
- return dev;
+ /*
+ ** PARISC CPU driver - claim "device" and initialize CPU data structures.
+@@ -378,12 +378,12 @@
+ return 0;
}
-@@ -555,6 +628,33 @@
- return (curr->hw_path == id);
- }
+-static struct parisc_device_id processor_tbl[] = {
++static struct parisc_device_id processor_tbl[] __read_mostly = {
+ { HPHW_NPROC, HVERSION_REV_ANY_ID, HVERSION_ANY_ID, SVERSION_ANY_ID },
+ { 0, }
+ };
-+struct parse_tree_data {
-+ int index;
-+ struct hardware_path * modpath;
-+ struct device * dev;
-+};
-+
-+static int check_parent(struct device * dev, void * data)
-+{
-+ struct parse_tree_data * d = data;
-+
-+ if (check_dev(dev)) {
-+ if (dev->bus == &parisc_bus_type) {
-+ if (match_parisc_device(dev, d->index, d->modpath))
-+ d->dev = dev;
-+ } else if (is_pci_dev(dev)) {
-+ if (match_pci_device(dev, d->index, d->modpath))
-+ d->dev = dev;
-+ } else if (dev->bus == NULL) {
-+ /* we are on a bus bridge */
-+ struct device *new = parse_tree_node(dev, d->index, d->modpath);
-+ if (new)
-+ d->dev = new;
-+ }
-+ }
-+ return d->dev != NULL;
-+}
-+
- /**
- * parse_tree_node - returns a device entry in the iotree
- * @parent: the parent node in the tree
-@@ -568,24 +668,18 @@
- static struct device *
- parse_tree_node(struct device *parent, int index, struct hardware_path *modpath)
- {
-- struct device *device;
--
-- list_for_each_entry(device, &parent->children, node) {
-- if (device->bus == &parisc_bus_type) {
-- if (match_parisc_device(device, index, modpath))
-- return device;
-- } else if (is_pci_dev(device)) {
-- if (match_pci_device(device, index, modpath))
-- return device;
-- } else if (device->bus == NULL) {
-- /* we are on a bus bridge */
-- struct device *new = parse_tree_node(device, index, modpath);
-- if (new)
-- return new;
-- }
-- }
-+ struct parse_tree_data d = {
-+ .index = index,
-+ .modpath = modpath,
-+ };
-+
-+ struct recurse_struct recurse_data = {
-+ .obj = &d,
-+ .fn = check_parent,
-+ };
+-static struct parisc_driver cpu_driver = {
++static struct parisc_driver cpu_driver __read_mostly = {
+ .name = "CPU",
+ .id_table = processor_tbl,
+ .probe = processor_probe
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/arch/parisc/kernel/setup.c CVS2_6_15_RC7_PA0/arch/parisc/kernel/setup.c
+--- LINUS_2_6_15_RC7/arch/parisc/kernel/setup.c 2005-12-27 13:25:34.000000000 -0700
++++ CVS2_6_15_RC7_PA0/arch/parisc/kernel/setup.c 2005-12-17 10:54:41.000000000 -0700
+@@ -46,15 +46,15 @@
+ #include <asm/io.h>
+ #include <asm/setup.h>
-- return NULL;
-+ device_for_each_child(parent, &recurse_data, descend_children);
-+ return d.dev;
- }
+-char command_line[COMMAND_LINE_SIZE];
++char command_line[COMMAND_LINE_SIZE] __read_mostly;
- /**
-@@ -636,7 +730,7 @@
- ((dev->id.hw_type == HPHW_IOA) || (dev->id.hw_type == HPHW_BCPORT))
+ /* Intended for ccio/sba/cpu statistics under /proc/bus/{runway|gsc} */
+-struct proc_dir_entry * proc_runway_root = NULL;
+-struct proc_dir_entry * proc_gsc_root = NULL;
+-struct proc_dir_entry * proc_mckinley_root = NULL;
++struct proc_dir_entry * proc_runway_root __read_mostly = NULL;
++struct proc_dir_entry * proc_gsc_root __read_mostly = NULL;
++struct proc_dir_entry * proc_mckinley_root __read_mostly = NULL;
+
+ #if !defined(CONFIG_PA20) && (defined(CONFIG_IOMMU_CCIO) || defined(CONFIG_IOMMU_SBA))
+-int parisc_bus_is_phys = 1; /* Assume no IOMMU is present */
++int parisc_bus_is_phys __read_mostly = 1; /* Assume no IOMMU is present */
+ EXPORT_SYMBOL(parisc_bus_is_phys);
+ #endif
+
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/arch/parisc/kernel/smp.c CVS2_6_15_RC7_PA0/arch/parisc/kernel/smp.c
+--- LINUS_2_6_15_RC7/arch/parisc/kernel/smp.c 2005-12-27 13:25:35.000000000 -0700
++++ CVS2_6_15_RC7_PA0/arch/parisc/kernel/smp.c 2005-12-17 10:54:41.000000000 -0700
+@@ -39,7 +39,7 @@
+ #include <asm/atomic.h>
+ #include <asm/current.h>
+ #include <asm/delay.h>
+-#include <asm/pgalloc.h> /* for flush_tlb_all() proto/macro */
++#include <asm/tlbflush.h>
- #define IS_LOWER_PORT(dev) \
-- ((gsc_readl(dev->hpa + offsetof(struct bc_module, io_status)) \
-+ ((gsc_readl(dev->hpa.start + offsetof(struct bc_module, io_status)) \
- & BC_PORT_MASK) == BC_LOWER_PORT)
-
- #define MAX_NATIVE_DEVICES 64
-@@ -645,8 +739,8 @@
- #define FLEX_MASK F_EXTEND(0xfffc0000)
- #define IO_IO_LOW offsetof(struct bc_module, io_io_low)
- #define IO_IO_HIGH offsetof(struct bc_module, io_io_high)
--#define READ_IO_IO_LOW(dev) (unsigned long)(signed int)gsc_readl(dev->hpa + IO_IO_LOW)
--#define READ_IO_IO_HIGH(dev) (unsigned long)(signed int)gsc_readl(dev->hpa + IO_IO_HIGH)
-+#define READ_IO_IO_LOW(dev) (unsigned long)(signed int)gsc_readl(dev->hpa.start + IO_IO_LOW)
-+#define READ_IO_IO_HIGH(dev) (unsigned long)(signed int)gsc_readl(dev->hpa.start + IO_IO_HIGH)
-
- static void walk_native_bus(unsigned long io_io_low, unsigned long io_io_high,
- struct device *parent);
-@@ -655,10 +749,10 @@
- {
- unsigned long io_io_low, io_io_high;
+ #include <asm/io.h>
+ #include <asm/irq.h> /* for CPU_IRQ_REGION and friends */
+@@ -58,9 +58,9 @@
-- if(!BUS_CONVERTER(dev) || IS_LOWER_PORT(dev))
-+ if (!BUS_CONVERTER(dev) || IS_LOWER_PORT(dev))
- return;
+ volatile struct task_struct *smp_init_current_idle_task;
-- if(dev->id.hw_type == HPHW_IOA) {
-+ if (dev->id.hw_type == HPHW_IOA) {
- io_io_low = (unsigned long)(signed int)(READ_IO_IO_LOW(dev) << 16);
- io_io_high = io_io_low + MAX_NATIVE_DEVICES * NATIVE_DEVICE_OFFSET;
- } else {
-@@ -731,7 +825,7 @@
+-static volatile int cpu_now_booting = 0; /* track which CPU is booting */
++static volatile int cpu_now_booting __read_mostly = 0; /* track which CPU is booting */
- print_pa_hwpath(dev, hw_path);
- printk(KERN_INFO "%d. %s at 0x%lx [%s] { %d, 0x%x, 0x%.3x, 0x%.5x }",
-- ++count, dev->name, dev->hpa, hw_path, dev->id.hw_type,
-+ ++count, dev->name, dev->hpa.start, hw_path, dev->id.hw_type,
- dev->id.hversion_rev, dev->id.hversion, dev->id.sversion);
+-static int parisc_max_cpus = 1;
++static int parisc_max_cpus __read_mostly = 1;
- if (dev->num_addrs) {
-@@ -753,13 +847,20 @@
- get_device(&root);
- }
+ /* online cpus are ones that we've managed to bring up completely
+ * possible cpus are all valid cpu
+@@ -71,8 +71,8 @@
+ * empty in the beginning.
+ */
-+
-+static int print_one_device(struct device * dev, void * data)
-+{
-+ struct parisc_device * pdev = to_parisc_device(dev);
-+
-+ if (check_dev(dev))
-+ print_parisc_device(pdev);
-+ return 0;
-+}
-+
- /**
- * print_parisc_devices - Print out a list of devices found in this system
+-cpumask_t cpu_online_map = CPU_MASK_NONE; /* Bitmap of online CPUs */
+-cpumask_t cpu_possible_map = CPU_MASK_ALL; /* Bitmap of Present CPUs */
++cpumask_t cpu_online_map __read_mostly = CPU_MASK_NONE; /* Bitmap of online CPUs */
++cpumask_t cpu_possible_map __read_mostly = CPU_MASK_ALL; /* Bitmap of Present CPUs */
+
+ EXPORT_SYMBOL(cpu_online_map);
+ EXPORT_SYMBOL(cpu_possible_map);
+@@ -406,12 +406,10 @@
+ * as we want to ensure all TLB's flushed before proceeding.
*/
- void print_parisc_devices(void)
+
+-extern void flush_tlb_all_local(void);
+-
+ void
+ smp_flush_tlb_all(void)
{
-- struct parisc_device *dev;
-- for_each_padev(dev) {
-- print_parisc_device(dev);
-- }
-+ for_each_padev(print_one_device, NULL);
+- on_each_cpu((void (*)(void *))flush_tlb_all_local, NULL, 1, 1);
++ on_each_cpu(flush_tlb_all_local, NULL, 1, 1);
}
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/arch/parisc/kernel/entry.S CVS2_6_14_PA0/arch/parisc/kernel/entry.S
---- LINUS_2_6_14/arch/parisc/kernel/entry.S 2005-10-27 21:30:34.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/kernel/entry.S 2005-10-19 13:36:52.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
+@@ -487,7 +485,7 @@
+ #endif
- /*
- * itlb miss interruption handler (parisc 1.1 - 32 bit)
-@@ -236,7 +239,7 @@
+ flush_cache_all_local(); /* start with known state */
+- flush_tlb_all_local();
++ flush_tlb_all_local(NULL);
- .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
+ local_irq_enable(); /* Interrupts have been off until now */
- 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
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/arch/parisc/kernel/time.c CVS2_6_15_RC7_PA0/arch/parisc/kernel/time.c
+--- LINUS_2_6_15_RC7/arch/parisc/kernel/time.c 2005-12-27 13:25:35.000000000 -0700
++++ CVS2_6_15_RC7_PA0/arch/parisc/kernel/time.c 2005-12-17 10:21:16.000000000 -0700
+@@ -36,8 +36,8 @@
+ /* xtime and wall_jiffies keep wall-clock time */
+ extern unsigned long wall_jiffies;
- 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
+-static long clocktick; /* timer cycles per tick */
+-static long halftick;
++static long clocktick __read_mostly; /* timer cycles per tick */
++static long halftick __read_mostly;
- 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
+ #ifdef CONFIG_SMP
+ extern void smp_do_timer(struct pt_regs *regs);
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/arch/parisc/kernel/topology.c CVS2_6_15_RC7_PA0/arch/parisc/kernel/topology.c
+--- LINUS_2_6_15_RC7/arch/parisc/kernel/topology.c 2005-12-27 13:25:35.000000000 -0700
++++ CVS2_6_15_RC7_PA0/arch/parisc/kernel/topology.c 2005-12-17 11:18:59.000000000 -0700
+@@ -20,8 +20,9 @@
+ #include <linux/init.h>
+ #include <linux/smp.h>
+ #include <linux/cpu.h>
++#include <linux/cache.h>
+
+-static struct cpu cpu_devices[NR_CPUS];
++static struct cpu cpu_devices[NR_CPUS] __read_mostly;
+
+ static int __init topology_init(void)
+ {
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/arch/parisc/kernel/unaligned.c CVS2_6_15_RC7_PA0/arch/parisc/kernel/unaligned.c
+--- LINUS_2_6_15_RC7/arch/parisc/kernel/unaligned.c 2005-12-27 13:25:35.000000000 -0700
++++ CVS2_6_15_RC7_PA0/arch/parisc/kernel/unaligned.c 2005-12-17 10:21:16.000000000 -0700
+@@ -122,7 +122,7 @@
+ #define ERR_NOTHANDLED -1
+ #define ERR_PAGEFAULT -2
- 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
+-int unaligned_enabled = 1;
++int unaligned_enabled __read_mostly = 1;
- .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
+ void die_if_kernel (char *str, struct pt_regs *regs, long err);
- .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
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/arch/parisc/kernel/unwind.c CVS2_6_15_RC7_PA0/arch/parisc/kernel/unwind.c
+--- LINUS_2_6_15_RC7/arch/parisc/kernel/unwind.c 2005-12-27 13:25:35.000000000 -0700
++++ CVS2_6_15_RC7_PA0/arch/parisc/kernel/unwind.c 2005-12-17 10:54:41.000000000 -0700
+@@ -35,7 +35,7 @@
+ * we can call unwind_init as early in the bootup process as
+ * possible (before the slab allocator is initialized)
+ */
+-static struct unwind_table kernel_unwind_table;
++static struct unwind_table kernel_unwind_table __read_mostly;
+ static LIST_HEAD(unwind_tables);
+
+ static inline const struct unwind_table_entry *
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/arch/parisc/kernel/vmlinux.lds.S CVS2_6_15_RC7_PA0/arch/parisc/kernel/vmlinux.lds.S
+--- LINUS_2_6_15_RC7/arch/parisc/kernel/vmlinux.lds.S 2005-12-27 13:25:35.000000000 -0700
++++ CVS2_6_15_RC7_PA0/arch/parisc/kernel/vmlinux.lds.S 2005-12-19 08:10:07.000000000 -0700
+@@ -68,7 +68,7 @@
+ RODATA
+
+ /* writeable */
+- . = ALIGN(4096); /* Make sure this is paged aligned so
++ . = ALIGN(4096); /* Make sure this is page aligned so
+ that we can properly leave these
+ as writable */
+ data_start = .;
+@@ -105,6 +105,10 @@
+ . = ALIGN(16);
+ .data.lock_aligned : { *(.data.lock_aligned) }
+
++ /* rarely changed data like cpu maps */
++ . = ALIGN(16);
++ .data.read_mostly : { *(.data.read_mostly) }
++
+ _edata = .; /* End of data section */
+
+ . = ALIGN(16384); /* init_task */
+@@ -194,14 +198,7 @@
+ #endif
+ }
--#ifndef __LP64__
-+#ifndef CONFIG_64BIT
+- /* Stabs debugging sections. */
+- .stab 0 : { *(.stab) }
+- .stabstr 0 : { *(.stabstr) }
+- .stab.excl 0 : { *(.stab.excl) }
+- .stab.exclstr 0 : { *(.stab.exclstr) }
+- .stab.index 0 : { *(.stab.index) }
+- .stab.indexstr 0 : { *(.stab.indexstr) }
+- .comment 0 : { *(.comment) }
++ STABS_DEBUG
+ .note 0 : { *(.note) }
+
+ }
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/arch/parisc/mm/init.c CVS2_6_15_RC7_PA0/arch/parisc/mm/init.c
+--- LINUS_2_6_15_RC7/arch/parisc/mm/init.c 2005-12-27 13:25:35.000000000 -0700
++++ CVS2_6_15_RC7_PA0/arch/parisc/mm/init.c 2005-12-17 11:04:12.000000000 -0700
+@@ -36,9 +36,9 @@
+ extern char __init_begin, __init_end;
+
+ #ifdef CONFIG_DISCONTIGMEM
+-struct node_map_data node_data[MAX_NUMNODES];
+-bootmem_data_t bmem_data[MAX_NUMNODES];
+-unsigned char pfnnid_map[PFNNID_MAP_MAX];
++struct node_map_data node_data[MAX_NUMNODES] __read_mostly;
++bootmem_data_t bmem_data[MAX_NUMNODES] __read_mostly;
++unsigned char pfnnid_map[PFNNID_MAP_MAX] __read_mostly;
+ #endif
+
+ static struct resource data_resource = {
+@@ -58,14 +58,14 @@
+ .flags = IORESOURCE_BUSY | IORESOURCE_MEM,
+ };
- .export fault_vector_11
-
-@@ -761,7 +764,7 @@
+-static struct resource sysram_resources[MAX_PHYSMEM_RANGES];
++static struct resource sysram_resources[MAX_PHYSMEM_RANGES] __read_mostly;
- 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 @@
+ /* The following array is initialized from the firmware specific
+ * information retrieved in kernel/inventory.c.
+ */
- 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
+-physmem_range_t pmem_ranges[MAX_PHYSMEM_RANGES];
+-int npmem_ranges;
++physmem_range_t pmem_ranges[MAX_PHYSMEM_RANGES] __read_mostly;
++int npmem_ranges __read_mostly;
--#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
+ #ifdef __LP64__
+ #define MAX_MEM (~0UL)
+@@ -73,7 +73,7 @@
+ #define MAX_MEM (3584U*1024U*1024U)
+ #endif /* !__LP64__ */
- .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
-@@ -855,6 +863,7 @@
- _switch_to:
- STREG %r2, -RP_OFFSET(%r30)
-
-+ callee_save_float
- callee_save
-
- load32 _switch_to_ret, %r2
-@@ -871,6 +880,7 @@
- _switch_to_ret:
- mtctl %r0, %cr0 /* Needed for single stepping */
- callee_rest
-+ callee_rest_float
-
- LDREG -RP_OFFSET(%r30), %r2
- bv %r0(%r2)
-@@ -888,9 +898,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.
- */
+-static unsigned long mem_limit = MAX_MEM;
++static unsigned long mem_limit __read_mostly = MAX_MEM;
- .align 4096
-@@ -911,7 +918,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 +962,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
-@@ -963,9 +970,6 @@
- add %r19,%r20,%r19 /* now have &irq_stat[smp_processor_id()] */
- #endif /* CONFIG_SMP */
-
-- LDREG IRQSTAT_SIRQ_PEND(%r19),%r20 /* hardirq.h: unsigned long */
-- cmpib,<>,n 0,%r20,intr_do_softirq /* forward */
--
- intr_check_resched:
-
- /* check for reschedule */
-@@ -985,24 +989,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
+ static void __init mem_limit_func(void)
+ {
+@@ -300,6 +300,13 @@
+ max_pfn = start_pfn + npages;
+ }
-- /* 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.
++ /* IOMMU is always used to access "high mem" on those boxes
++ * that can support enough mem that a PCI device couldn't
++ * directly DMA to any physical addresses.
++ * ISA DMA support will need to revisit this.
+ */
- rest_stack
++ max_low_pfn = max_pfn;
++
+ if ((bootmap_pfn - bootmap_start_pfn) != bootmap_pages) {
+ printk(KERN_WARNING "WARNING! bootmap sizing is messed up!\n");
+ BUG();
+@@ -431,11 +438,11 @@
+ #define SET_MAP_OFFSET(x) ((void *)(((unsigned long)(x) + VM_MAP_OFFSET) \
+ & ~(VM_MAP_OFFSET-1)))
- rfi
-@@ -1015,17 +1014,6 @@
- nop
- nop
-
-- .import do_softirq,code
--intr_do_softirq:
-- bl do_softirq,%r2
--#ifdef __LP64__
-- ldo -16(%r30),%r29 /* Reference param save area */
--#else
-- nop
--#endif
-- b intr_check_resched
-- nop
--
- .import schedule,code
- intr_do_resched:
- /* Only do reschedule if we are returning to user space */
-@@ -1036,12 +1024,17 @@
- CMPIB= 0,%r20,intr_restore /* backward */
- nop
+-void *vmalloc_start;
++void *vmalloc_start __read_mostly;
+ EXPORT_SYMBOL(vmalloc_start);
--#ifdef __LP64__
-+#ifdef CONFIG_64BIT
- ldo -16(%r30),%r29 /* Reference param save area */
+ #ifdef CONFIG_PA11
+-unsigned long pcxl_dma_start;
++unsigned long pcxl_dma_start __read_mostly;
#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
-
+ void __init mem_init(void)
+@@ -475,7 +482,7 @@
+ return 0;
+ }
-@@ -1064,7 +1057,7 @@
+-unsigned long *empty_zero_page;
++unsigned long *empty_zero_page __read_mostly;
- 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 */
+ void show_mem(void)
+ {
+@@ -785,8 +792,6 @@
+ EXPORT_SYMBOL(map_hpux_gateway_page);
#endif
-@@ -1088,7 +1081,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 +1108,7 @@
+-extern void flush_tlb_all_local(void);
+-
+ void __init paging_init(void)
+ {
+ int i;
+@@ -795,7 +800,7 @@
+ pagetable_init();
+ gateway_init();
+ flush_cache_all_local(); /* start with known state */
+- flush_tlb_all_local();
++ flush_tlb_all_local(NULL);
+
+ for (i = 0; i < npmem_ranges; i++) {
+ unsigned long zones_size[MAX_NR_ZONES] = { 0, 0, 0 };
+@@ -986,7 +991,7 @@
+ do_recycle++;
+ }
+ spin_unlock(&sid_lock);
+- on_each_cpu((void (*)(void *))flush_tlb_all_local, NULL, 1, 1);
++ on_each_cpu(flush_tlb_all_local, NULL, 1, 1);
+ if (do_recycle) {
+ spin_lock(&sid_lock);
+ recycle_sids(recycle_ndirty,recycle_dirty_array);
+@@ -998,7 +1003,7 @@
+ void flush_tlb_all(void)
+ {
+ spin_lock(&sid_lock);
+- flush_tlb_all_local();
++ flush_tlb_all_local(NULL);
+ recycle_sids();
+ spin_unlock(&sid_lock);
+ }
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/arch/parisc/mm/ioremap.c CVS2_6_15_RC7_PA0/arch/parisc/mm/ioremap.c
+--- LINUS_2_6_15_RC7/arch/parisc/mm/ioremap.c 2005-12-27 13:25:35.000000000 -0700
++++ CVS2_6_15_RC7_PA0/arch/parisc/mm/ioremap.c 2005-12-23 18:30:19.000000000 -0700
+@@ -1,12 +1,9 @@
+ /*
+ * arch/parisc/mm/ioremap.c
+ *
+- * Re-map IO memory to kernel address space so that we can access it.
+- * This is needed for high PCI addresses that aren't mapped in the
+- * 640k-1MB IO memory area on PC's
+- *
+ * (C) Copyright 1995 1996 Linus Torvalds
+ * (C) Copyright 2001 Helge Deller <deller at gmx.de>
++ * (C) Copyright 2005 Kyle McMartin <kyle at parisc-linux.org>
+ */
- ldil L%intr_return, %r2
+ #include <linux/vmalloc.h>
+@@ -14,81 +11,107 @@
+ #include <linux/module.h>
+ #include <asm/io.h>
+ #include <asm/pgalloc.h>
++#include <asm/tlbflush.h>
++#include <asm/cacheflush.h>
--#ifdef __LP64__
-+#ifdef CONFIG_64BIT
- ldo -16(%r30),%r29 /* Reference param save area */
- #endif
+-static inline void remap_area_pte(pte_t * pte, unsigned long address, unsigned long size,
+- unsigned long phys_addr, unsigned long flags)
+-{
+- unsigned long end;
++static inline void
++remap_area_pte(pte_t *pte, unsigned long address, unsigned long size,
++ unsigned long phys_addr, unsigned long flags)
++{
++ unsigned long end, pfn;
++ pgprot_t pgprot = __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY |
++ _PAGE_ACCESSED | flags);
-@@ -1153,15 +1146,17 @@
-
- CMPIB=,n 6,%r26,skip_save_ior
+ address &= ~PMD_MASK;
++
+ end = address + size;
+ if (end > PMD_SIZE)
+ end = PMD_SIZE;
+- if (address >= end)
+- BUG();
++
++ BUG_ON(address >= end);
++
++ pfn = phys_addr >> PAGE_SHIFT;
+ do {
+- if (!pte_none(*pte)) {
+- printk(KERN_ERR "remap_area_pte: page already exists\n");
+- BUG();
+- }
+- set_pte(pte, mk_pte_phys(phys_addr, __pgprot(_PAGE_PRESENT | _PAGE_RW |
+- _PAGE_DIRTY | _PAGE_ACCESSED | flags)));
++ BUG_ON(!pte_none(*pte));
++
++ set_pte(pte, pfn_pte(pfn, pgprot));
++
+ address += PAGE_SIZE;
+- phys_addr += PAGE_SIZE;
++ pfn++;
+ pte++;
+ } while (address && (address < end));
+ }
-- /* save_specials left ipsw value in r8 for us to test */
+-static inline int remap_area_pmd(pmd_t * pmd, unsigned long address, unsigned long size,
+- unsigned long phys_addr, unsigned long flags)
++static inline int
++remap_area_pmd(pmd_t *pmd, unsigned long address, unsigned long size,
++ unsigned long phys_addr, unsigned long flags)
+ {
+ unsigned long end;
- mfctl %cr20, %r16 /* isr */
-+ nop /* serialize mfctl on PA 2.0 to avoid 4 cycle penalty */
- mfctl %cr21, %r17 /* ior */
+ address &= ~PGDIR_MASK;
++
+ end = address + size;
+ if (end > PGDIR_SIZE)
+ end = PGDIR_SIZE;
++
++ BUG_ON(address >= end);
++
+ phys_addr -= address;
+- if (address >= end)
+- BUG();
+ do {
+- pte_t * pte = pte_alloc_kernel(pmd, address);
++ pte_t *pte = pte_alloc_kernel(pmd, address);
+ if (!pte)
+ return -ENOMEM;
+- remap_area_pte(pte, address, end - address, address + phys_addr, flags);
++
++ remap_area_pte(pte, address, end - address,
++ address + phys_addr, flags);
++
+ address = (address + PMD_SIZE) & PMD_MASK;
+ pmd++;
+ } while (address && (address < end));
++
+ return 0;
+ }
--#ifdef __LP64__
+-#if (USE_HPPA_IOREMAP)
+-static int remap_area_pages(unsigned long address, unsigned long phys_addr,
+- unsigned long size, unsigned long flags)
++#if USE_HPPA_IOREMAP
++static int
++remap_area_pages(unsigned long address, unsigned long phys_addr,
++ unsigned long size, unsigned long flags)
+ {
+- int error;
+- pgd_t * dir;
++ pgd_t *dir;
++ int error = 0;
+ unsigned long end = address + size;
+
++ BUG_ON(address >= end);
++
+ phys_addr -= address;
+- dir = pgd_offset(&init_mm, address);
++ dir = pgd_offset_k(address);
++
+ flush_cache_all();
+- if (address >= end)
+- BUG();
+
-+#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 +1187,7 @@
- loadgp
+ do {
++ pud_t *pud;
+ pmd_t *pmd;
+- pmd = pmd_alloc(&init_mm, dir, address);
++
+ error = -ENOMEM;
++ pud = pud_alloc(&init_mm, dir, address);
++ if (!pud)
++ break;
++
++ pmd = pmd_alloc(&init_mm, pud, address);
+ if (!pmd)
+ break;
++
+ if (remap_area_pmd(pmd, address, end - address,
+- phys_addr + address, flags))
++ phys_addr + address, flags))
+ break;
++
+ error = 0;
+ address = (address + PGDIR_SIZE) & PGDIR_MASK;
+ dir++;
+ } while (address && (address < end));
++
+ flush_tlb_all();
++
+ return error;
+ }
+ #endif /* USE_HPPA_IOREMAP */
+@@ -123,8 +146,7 @@
- copy %r29, %r25 /* arg1 is pt_regs */
--#ifdef __LP64__
-+#ifdef CONFIG_64BIT
- ldo -16(%r30),%r29 /* Reference param save area */
+ /*
+ * Remap an arbitrary physical address space into the kernel virtual
+- * address space. Needed when the kernel wants to access high addresses
+- * directly.
++ * address space.
+ *
+ * NOTE! We need to allow non-page-aligned mappings too: we will obviously
+ * have to convert them into an offset in a page-aligned mapping, but the
+@@ -148,8 +170,8 @@
#endif
-@@ -1230,7 +1225,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 +1482,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 +1516,7 @@
- nop
-
-
--#ifdef __LP64__
-+#ifdef CONFIG_64BIT
- itlb_miss_20w:
+ #else
+- void * addr;
+- struct vm_struct * area;
++ void *addr;
++ struct vm_struct *area;
+ unsigned long offset, last_addr;
+
+ /* Don't allow wraparound or zero size */
+@@ -167,9 +189,11 @@
+ t_addr = __va(phys_addr);
+ t_end = t_addr + (size - 1);
+
+- for(page = virt_to_page(t_addr); page <= virt_to_page(t_end); page++)
++ for (page = virt_to_page(t_addr);
++ page <= virt_to_page(t_end); page++) {
+ if(!PageReserved(page))
+ return NULL;
++ }
+ }
/*
-@@ -1588,7 +1583,7 @@
-
+@@ -185,11 +209,13 @@
+ area = get_vm_area(size, VM_IOREMAP);
+ if (!area)
+ return NULL;
++
+ addr = area->addr;
+ if (remap_area_pages((unsigned long) addr, phys_addr, size, flags)) {
+ vfree(addr);
+ return NULL;
+ }
++
+ return (void __iomem *) (offset + (char *)addr);
#endif
+ }
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/arch/x86_64/ia32/ia32_signal.c CVS2_6_15_RC7_PA0/arch/x86_64/ia32/ia32_signal.c
+--- LINUS_2_6_15_RC7/arch/x86_64/ia32/ia32_signal.c 2005-12-27 13:25:38.000000000 -0700
++++ CVS2_6_15_RC7_PA0/arch/x86_64/ia32/ia32_signal.c 2005-11-12 20:29:21.000000000 -0700
+@@ -23,6 +23,7 @@
+ #include <linux/stddef.h>
+ #include <linux/personality.h>
+ #include <linux/compat.h>
++#include <linux/compat_siginfo.h>
+ #include <asm/ucontext.h>
+ #include <asm/uaccess.h>
+ #include <asm/i387.h>
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/net/tulip/media.c CVS2_6_15_RC7_PA0/drivers/net/tulip/media.c
+--- LINUS_2_6_15_RC7/drivers/net/tulip/media.c 2005-12-27 13:25:46.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/net/tulip/media.c 2005-09-14 06:56:25.000000000 -0600
+@@ -44,8 +44,10 @@
--#ifdef __LP64__
-+#ifdef CONFIG_64BIT
-
- dbit_trap_20w:
- space_adjust spc,va,t0
-@@ -1797,7 +1792,7 @@
+ /* 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.
++ */
- STREG %r2,-RP_OFFSET(%r30)
- ldo FRAME_SIZE(%r30),%r30
--#ifdef __LP64__
-+#ifdef CONFIG_64BIT
- ldo -16(%r30),%r29 /* Reference param save area */
- #endif
+ int tulip_mdio_read(struct net_device *dev, int phy_id, int location)
+ {
+@@ -261,24 +263,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_15_RC7/drivers/net/tulip/tulip.h CVS2_6_15_RC7_PA0/drivers/net/tulip/tulip.h
+--- LINUS_2_6_15_RC7/drivers/net/tulip/tulip.h 2005-12-27 13:25:46.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/net/tulip/tulip.h 2005-09-14 06:56:25.000000000 -0600
+@@ -474,8 +474,11 @@
+ udelay(10);
-@@ -1847,10 +1842,11 @@
+ 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));
+ }
+ }
- STREG %r2,-RP_OFFSET(%r30)
- ldo FRAME_SIZE(%r30),%r30
--#ifdef __LP64__
-+#ifdef CONFIG_64BIT
- ldo -16(%r30),%r29 /* Reference param save area */
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/net/tulip/tulip_core.c CVS2_6_15_RC7_PA0/drivers/net/tulip/tulip_core.c
+--- LINUS_2_6_15_RC7/drivers/net/tulip/tulip_core.c 2005-12-27 13:25:46.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/net/tulip/tulip_core.c 2005-11-11 21:07:59.000000000 -0700
+@@ -22,7 +22,7 @@
+ #else
+ #define DRV_VERSION "1.1.13"
#endif
+-#define DRV_RELDATE "May 11, 2002"
++#define DRV_RELDATE "December 15, 2004"
-+ /* WARNING - Clobbers r19 and r21, userspace must save these! */
- STREG %r2,PT_GR19(%r1) /* save for child */
- STREG %r30,PT_GR21(%r1)
- BL sys_clone,%r2
-@@ -1869,7 +1865,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
+ #include <linux/module.h>
+@@ -148,7 +148,7 @@
+ HAS_MII | HAS_MEDIA_TABLE | CSR12_IN_SROM | HAS_PCI_MWI, tulip_timer },
-@@ -1897,10 +1893,10 @@
+ /* 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 },
- STREG %r2,-RP_OFFSET(%r30)
- ldo FRAME_SIZE(%r30),%r30
--#ifdef __LP64__
-+#ifdef CONFIG_64BIT
- ldo -16(%r30),%r29 /* Reference param save area */
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/parisc/dino.c CVS2_6_15_RC7_PA0/drivers/parisc/dino.c
+--- LINUS_2_6_15_RC7/drivers/parisc/dino.c 2005-12-27 13:25:46.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/parisc/dino.c 2005-12-14 00:49:15.000000000 -0700
+@@ -124,6 +124,7 @@
+
+ #define DINO_IRQS 11 /* bits 0-10 are architected */
+ #define DINO_IRR_MASK 0x5ff /* only 10 bits are implemented */
++#define DINO_LOCAL_IRQS (DINO_IRQS+1)
+
+ #define DINO_MASK_IRQ(x) (1<<(x))
+
+@@ -146,7 +147,7 @@
+ unsigned long txn_addr; /* EIR addr to generate interrupt */
+ u32 txn_data; /* EIR data assign to each dino */
+ u32 imr; /* IRQ's which are enabled */
+- int global_irq[12]; /* map IMR bit to global irq */
++ int global_irq[DINO_LOCAL_IRQS]; /* map IMR bit to global irq */
+ #ifdef DINO_DEBUG
+ unsigned int dino_irr0; /* save most recent IRQ line stat */
#endif
-- bl \execve,%r2
-+ BL \execve,%r2
- copy %r1,%arg0
-
- ldo -FRAME_SIZE(%r30),%r30
-@@ -1923,7 +1919,7 @@
- sys_execve_wrapper:
- execve_wrapper sys_execve
-
--#ifdef __LP64__
-+#ifdef CONFIG_64BIT
- .export sys32_execve_wrapper
- .import sys32_execve
-
-@@ -1937,7 +1933,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 +1964,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 +1978,7 @@
- bv %r0(%r2)
- nop
-
--#ifdef __LP64__
-+#ifdef CONFIG_64BIT
- .export sys32_sigaltstack_wrapper
- sys32_sigaltstack_wrapper:
- /* Get the user stack pointer */
-@@ -2006,7 +2002,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 +2075,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
-@@ -2087,9 +2083,6 @@
- add %r19,%r20,%r19 /* now have &irq_stat[smp_processor_id()] */
- #endif /* CONFIG_SMP */
+@@ -297,7 +298,7 @@
+ static void dino_disable_irq(unsigned int irq)
+ {
+ struct dino_device *dino_dev = irq_desc[irq].handler_data;
+- int local_irq = gsc_find_local_irq(irq, dino_dev->global_irq, irq);
++ int local_irq = gsc_find_local_irq(irq, dino_dev->global_irq, DINO_LOCAL_IRQS);
-- LDREG IRQSTAT_SIRQ_PEND(%r19),%r20 /* hardirq.h: unsigned long */
-- cmpib,<>,n 0,%r20,syscall_do_softirq /* forward */
--
- syscall_check_resched:
+ DBG(KERN_WARNING "%s(0x%p, %d)\n", __FUNCTION__, dino_dev, irq);
- /* check for reschedule */
-@@ -2144,7 +2137,7 @@
+@@ -309,7 +310,7 @@
+ static void dino_enable_irq(unsigned int irq)
+ {
+ struct dino_device *dino_dev = irq_desc[irq].handler_data;
+- int local_irq = gsc_find_local_irq(irq, dino_dev->global_irq, irq);
++ int local_irq = gsc_find_local_irq(irq, dino_dev->global_irq, DINO_LOCAL_IRQS);
+ u32 tmp;
- depi 3,31,2,%r31 /* ensure return to user mode. */
+ DBG(KERN_WARNING "%s(0x%p, %d)\n", __FUNCTION__, dino_dev, irq);
+@@ -435,6 +436,21 @@
+ dino_assign_irq(dino, irq, &dev->irq);
+ }
--#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
-@@ -2227,20 +2220,10 @@
- b intr_restore
- nop
-
-- .import do_softirq,code
--syscall_do_softirq:
-- 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
-- * traced. */
-- b syscall_check_resched
-- ssm PSW_SM_I, %r0 /* do_softirq returns with I bit off */
--
- .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 +2243,7 @@
++
++/*
++ * Cirrus 6832 Cardbus reports wrong irq on RDI Tadpole PARISC Laptop (deller at gmx.de)
++ * (the irqs are off-by-one, not sure yet if this is a cirrus, dino-hardware or dino-driver problem...)
++ */
++static void __devinit quirk_cirrus_cardbus(struct pci_dev *dev)
++{
++ u8 new_irq = dev->irq - 1;
++ printk(KERN_INFO "PCI: Cirrus Cardbus IRQ fixup for %s, from %d to %d\n",
++ pci_name(dev), dev->irq, new_irq);
++ dev->irq = new_irq;
++}
++DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_CIRRUS, PCI_DEVICE_ID_CIRRUS_6832, quirk_cirrus_cardbus );
++
++
+ static void __init
+ dino_bios_init(void)
+ {
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/parisc/eisa.c CVS2_6_15_RC7_PA0/drivers/parisc/eisa.c
+--- LINUS_2_6_15_RC7/drivers/parisc/eisa.c 2005-12-27 13:25:46.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/parisc/eisa.c 2005-12-19 06:48:41.000000000 -0700
+@@ -57,7 +57,7 @@
- ldi 1, %r24 /* unsigned long in_syscall */
+ static DEFINE_SPINLOCK(eisa_irq_lock);
--#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_14/arch/parisc/kernel/firmware.c CVS2_6_14_PA0/arch/parisc/kernel/firmware.c
---- LINUS_2_6_14/arch/parisc/kernel/firmware.c 2005-10-27 21:30:34.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/kernel/firmware.c 2005-08-17 09:52:35.000000000 -0600
-@@ -83,15 +83,15 @@
- int parisc_narrow_firmware = 1;
- #endif
+-void __iomem *eisa_eeprom_addr;
++void __iomem *eisa_eeprom_addr __read_mostly;
--/* on all currently-supported platforms, IODC I/O calls are always
-- * 32-bit calls, and MEM_PDC calls are always the same width as the OS.
-- * This means Cxxx boxes can't run wide kernels right now. -PB
-- *
-- * CONFIG_PDC_NARROW has been added to allow 64-bit kernels to run on
-- * systems with 32-bit MEM_PDC calls. This will allow wide kernels to
-- * run on Cxxx boxes now. -RB
-- *
-- * Note that some PAT boxes may have 64-bit IODC I/O...
-+/* On most currently-supported platforms, IODC I/O calls are 32-bit calls
-+ * and MEM_PDC calls are always the same width as the OS.
-+ * Some PAT boxes may have 64-bit IODC I/O.
-+ *
-+ * Ryan Bradetich added the now obsolete CONFIG_PDC_NARROW to allow
-+ * 64-bit kernels to run on systems with 32-bit MEM_PDC calls.
-+ * This allowed wide kernels to run on Cxxx boxes.
-+ * We now detect 32-bit-only PDC and dynamically switch to 32-bit mode
-+ * when running a 64-bit kernel on such boxes (e.g. C200 or C360).
+ /* We can only have one EISA adapter in the system because neither
+ * implementation can be flexed.
+@@ -141,7 +141,7 @@
+ * in the furure.
*/
-
- #ifdef __LP64__
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/arch/parisc/kernel/head.S CVS2_6_14_PA0/arch/parisc/kernel/head.S
---- LINUS_2_6_14/arch/parisc/kernel/head.S 2005-10-27 21:30:34.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/kernel/head.S 2005-09-14 06:54:53.000000000 -0600
-@@ -12,7 +12,7 @@
- * Initial Version 04-23-1999 by Helge Deller <deller at gmx.de>
+ /* irq 13,8,2,1,0 must be edge */
+-static unsigned int eisa_irq_level; /* default to edge triggered */
++static unsigned int eisa_irq_level __read_mostly; /* default to edge triggered */
+
+
+ /* called by free irq */
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/parisc/eisa_eeprom.c CVS2_6_15_RC7_PA0/drivers/parisc/eisa_eeprom.c
+--- LINUS_2_6_15_RC7/drivers/parisc/eisa_eeprom.c 2005-12-27 13:25:46.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/parisc/eisa_eeprom.c 2005-12-23 19:04:41.000000000 -0700
+@@ -48,7 +48,7 @@
+ }
+
+ static ssize_t eisa_eeprom_read(struct file * file,
+- char *buf, size_t count, loff_t *ppos )
++ char __user *buf, size_t count, loff_t *ppos )
+ {
+ unsigned char *tmp;
+ ssize_t ret;
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/parisc/lasi.c CVS2_6_15_RC7_PA0/drivers/parisc/lasi.c
+--- LINUS_2_6_15_RC7/drivers/parisc/lasi.c 2005-12-27 13:25:46.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/parisc/lasi.c 2005-12-19 06:48:41.000000000 -0700
+@@ -150,7 +150,7 @@
+ *
*/
--#include <linux/autoconf.h> /* for CONFIG_SMP */
-+#include <linux/config.h> /* for CONFIG_SMP */
+-static unsigned long lasi_power_off_hpa;
++static unsigned long lasi_power_off_hpa __read_mostly;
- #include <asm/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 */
+ static void lasi_power_off(void)
+ {
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/parisc/lba_pci.c CVS2_6_15_RC7_PA0/drivers/parisc/lba_pci.c
+--- LINUS_2_6_15_RC7/drivers/parisc/lba_pci.c 2005-12-27 13:25:46.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/parisc/lba_pci.c 2005-12-19 06:48:41.000000000 -0700
+@@ -167,7 +167,7 @@
--#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
+ /* non-postable I/O port space, densely packed */
+ #define LBA_PORT_BASE (PCI_F_EXTEND | 0xfee00000UL)
+-static void __iomem *astro_iop_base;
++static void __iomem *astro_iop_base __read_mostly;
+
+ #define ELROY_HVERS 0x782
+ #define MERCURY_HVERS 0x783
+@@ -695,11 +695,71 @@
+ }
+ }
+ }
++
++
++/*
++ * truncate_pat_collision: Deal with overlaps or outright collisions
++ * between PAT PDC reported ranges.
++ *
++ * Broken PA8800 firmware will report lmmio range that
++ * overlaps with CPU HPA. Just truncate the lmmio range.
++ *
++ * BEWARE: conflicts with this lmmio range may be an
++ * elmmio range which is pointing down another rope.
++ *
++ * FIXME: only deals with one collision per range...theoretically we
++ * could have several. Supporting more than one collision will get messy.
++ */
++static unsigned long
++truncate_pat_collision(struct resource *root, struct resource *new)
++{
++ unsigned long start = new->start;
++ unsigned long end = new->end;
++ struct resource *tmp = root->child;
++
++ if (end <= start || start < root->start || !tmp)
++ return 0;
++
++ /* find first overlap */
++ while (tmp && tmp->end < start)
++ tmp = tmp->sibling;
++
++ /* no entries overlap */
++ if (!tmp) return 0;
++
++ /* found one that starts behind the new one
++ ** Don't need to do anything.
++ */
++ if (tmp->start >= end) return 0;
++
++ if (tmp->start <= start) {
++ /* "front" of new one overlaps */
++ new->start = tmp->end + 1;
++
++ if (tmp->end >= end) {
++ /* AACCKK! totally overlaps! drop this range. */
++ return 1;
++ }
++ }
++
++ if (tmp->end < end ) {
++ /* "end" of new one overlaps */
++ new->end = tmp->start - 1;
++ }
++
++ printk(KERN_WARNING "LBA: Truncating lmmio_space [%lx/%lx] "
++ "to [%lx,%lx]\n",
++ start, end,
++ new->start, new->end );
++
++ return 0; /* truncation successful */
++}
++
#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
+-#define lba_claim_dev_resources(dev)
++#define lba_claim_dev_resources(dev) do { } while (0)
++#define truncate_pat_collision(r,n) (0)
+ #endif
--#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
+ /*
+ ** The algorithm is generic code.
+ ** But it needs to access local data structures to get the IRQ base.
+@@ -747,6 +807,9 @@
+ lba_dump_res(&ioport_resource, 2);
+ BUG();
+ }
++ /* advertize Host bridge resources to PCI bus */
++ bus->resource[0] = &(ldev->hba.io_space);
++ i = 1;
+
+ if (ldev->hba.elmmio_space.start) {
+ err = request_resource(&iomem_resource,
+@@ -760,23 +823,35 @@
+
+ /* lba_dump_res(&iomem_resource, 2); */
+ /* BUG(); */
+- }
++ } else
++ bus->resource[i++] = &(ldev->hba.elmmio_space);
+ }
--$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 */
+- err = request_resource(&iomem_resource, &(ldev->hba.lmmio_space));
+- if (err < 0) {
+- /* FIXME overlaps with elmmio will fail here.
+- * Need to prune (or disable) the distributed range.
+- *
+- * BEWARE: conflicts with this lmmio range may be
+- * elmmio range which is pointing down another rope.
+- */
+
+- printk("FAILED: lba_fixup_bus() request for "
++ /* Overlaps with elmmio can (and should) fail here.
++ * We will prune (or ignore) the distributed range.
++ *
++ * FIXME: SBA code should register all elmmio ranges first.
++ * that would take care of elmmio ranges routed
++ * to a different rope (already discovered) from
++ * getting registered *after* LBA code has already
++ * registered it's distributed lmmio range.
++ */
++ if (truncate_pat_collision(&iomem_resource,
++ &(ldev->hba.lmmio_space))) {
+
-+ 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 */
++ printk(KERN_WARNING "LBA: lmmio_space [%lx/%lx] duplicate!\n",
++ ldev->hba.lmmio_space.start,
++ ldev->hba.lmmio_space.end);
++ } else {
++ err = request_resource(&iomem_resource, &(ldev->hba.lmmio_space));
++ if (err < 0) {
++ printk(KERN_ERR "FAILED: lba_fixup_bus() request for "
+ "lmmio_space [%lx/%lx]\n",
+ ldev->hba.lmmio_space.start,
+ ldev->hba.lmmio_space.end);
+- /* lba_dump_res(&iomem_resource, 2); */
++ } else
++ bus->resource[i++] = &(ldev->hba.lmmio_space);
+ }
--#ifdef __LP64__
-+#ifdef CONFIG_64BIT
- /* Setup PDCE_PROC entry */
- copy %arg0,%r3
- #else
-@@ -373,7 +344,7 @@
+ #ifdef CONFIG_64BIT
+@@ -791,18 +866,10 @@
+ lba_dump_res(&iomem_resource, 2);
+ BUG();
+ }
++ bus->resource[i++] = &(ldev->hba.gmmio_space);
+ }
+ #endif
- .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_14/arch/parisc/kernel/ioctl32.c CVS2_6_14_PA0/arch/parisc/kernel/ioctl32.c
---- LINUS_2_6_14/arch/parisc/kernel/ioctl32.c 2005-10-27 21:30:34.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/kernel/ioctl32.c 2005-04-12 13:17:10.000000000 -0600
-@@ -104,12 +104,9 @@
+- /* advertize Host bridge resources to PCI bus */
+- bus->resource[0] = &(ldev->hba.io_space);
+- bus->resource[1] = &(ldev->hba.lmmio_space);
+- i=2;
+- if (ldev->hba.elmmio_space.start)
+- bus->resource[i++] = &(ldev->hba.elmmio_space);
+- if (ldev->hba.gmmio_space.start)
+- bus->resource[i++] = &(ldev->hba.gmmio_space);
+-
}
- 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;
- }
+ list_for_each(ln, &bus->devices) {
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/parisc/led.c CVS2_6_15_RC7_PA0/drivers/parisc/led.c
+--- LINUS_2_6_15_RC7/drivers/parisc/led.c 2005-12-27 13:25:46.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/parisc/led.c 2005-12-19 06:48:41.000000000 -0700
+@@ -3,7 +3,7 @@
+ *
+ * (c) Copyright 2000 Red Hat Software
+ * (c) Copyright 2000 Helge Deller <hdeller at redhat.com>
+- * (c) Copyright 2001-2004 Helge Deller <deller at gmx.de>
++ * (c) Copyright 2001-2005 Helge Deller <deller at gmx.de>
+ * (c) Copyright 2001 Randolph Chung <tausq at debian.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+@@ -56,13 +56,13 @@
+ relatively large amount of CPU time, some of the calculations can be
+ turned off with the following variables (controlled via procfs) */
-@@ -166,9 +163,7 @@
- ret = -EFAULT;
- }
+-static int led_type = -1;
++static int led_type __read_mostly = -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 unsigned int led_heartbeat __read_mostly = 1;
++static unsigned int led_diskio __read_mostly = 1;
++static unsigned int led_lanrxtx __read_mostly = 1;
++static char lcd_text[32] __read_mostly;
++static char lcd_text_default[32] __read_mostly;
+
+
+ static struct workqueue_struct *led_wq;
+@@ -108,7 +108,7 @@
+ /* lcd_info is pre-initialized to the values needed to program KittyHawk LCD's
+ * HP seems to have used Sharp/Hitachi HD44780 LCDs most of the time. */
+ static struct pdc_chassis_lcd_info_ret_block
+-lcd_info __attribute__((aligned(8))) =
++lcd_info __attribute__((aligned(8))) __read_mostly =
+ {
+ .model = DISPLAY_MODEL_LCD,
+ .lcd_width = 16,
+@@ -144,7 +144,7 @@
+ device_initcall(start_task);
-- if (karg.unique != NULL)
-- kfree(karg.unique);
--
-+ kfree(karg.unique);
- return ret;
- }
+ /* ptr to LCD/LED-specific function */
+-static void (*led_func_ptr) (unsigned char);
++static void (*led_func_ptr) (unsigned char) __read_mostly;
-@@ -265,7 +260,6 @@
- }
+ #ifdef CONFIG_PROC_FS
+ static int led_proc_read(char *page, char **start, off_t off, int count,
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/parisc/pdc_stable.c CVS2_6_15_RC7_PA0/drivers/parisc/pdc_stable.c
+--- LINUS_2_6_15_RC7/drivers/parisc/pdc_stable.c 2005-12-27 13:25:46.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/parisc/pdc_stable.c 2005-12-19 06:48:41.000000000 -0700
+@@ -56,7 +56,7 @@
+ #include <asm/uaccess.h>
+ #include <asm/hardware.h>
- kfree(karg.list);
--
- return ret;
- }
+-#define PDCS_VERSION "0.09"
++#define PDCS_VERSION "0.10"
-@@ -305,7 +299,6 @@
+ #define PDCS_ADDR_PPRI 0x00
+ #define PDCS_ADDR_OSID 0x40
+@@ -70,7 +70,7 @@
+ MODULE_LICENSE("GPL");
+ MODULE_VERSION(PDCS_VERSION);
- out:
- kfree(karg.list);
--
- return ret;
- }
+-static unsigned long pdcs_size = 0;
++static unsigned long pdcs_size __read_mostly;
-@@ -494,15 +487,10 @@
+ /* This struct defines what we need to deal with a parisc pdc path entry */
+ struct pdcspath_entry {
+@@ -194,7 +194,8 @@
+ return -EIO;
}
+
+- entry->ready = 1;
++ /* kobject is already registered */
++ entry->ready = 2;
+
+ DPRINTK("%s: device: 0x%p\n", __func__, entry->dev);
+
+@@ -653,15 +654,21 @@
+ {
+ unsigned short i;
+ struct pdcspath_entry *entry;
++ int err;
+
+ for (i = 0; (entry = pdcspath_entries[i]); i++) {
+ if (pdcspath_fetch(entry) < 0)
+ continue;
+
+- kobject_set_name(&entry->kobj, "%s", entry->name);
++ if ((err = kobject_set_name(&entry->kobj, "%s", entry->name)))
++ return err;
+ kobj_set_kset_s(entry, paths_subsys);
+- kobject_register(&entry->kobj);
+-
++ if ((err = kobject_register(&entry->kobj)))
++ return err;
++
++ /* kobject is now registered */
++ entry->ready = 2;
++
+ if (!entry->dev)
+ continue;
- 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;
+@@ -675,14 +682,14 @@
+ /**
+ * pdcs_unregister_pathentries - Routine called when unregistering the module.
+ */
+-static inline void __exit
++static inline void
+ pdcs_unregister_pathentries(void)
+ {
+ unsigned short i;
+ struct pdcspath_entry *entry;
+
+ for (i = 0; (entry = pdcspath_entries[i]); i++)
+- if (entry->ready)
++ if (entry->ready >= 2)
+ kobject_unregister(&entry->kobj);
+ }
+
+@@ -704,7 +711,7 @@
+
+ /* For now we'll register the pdc subsys within this driver */
+ if ((rc = firmware_register(&pdc_subsys)))
+- return rc;
++ goto fail_firmreg;
+
+ /* Don't forget the info entry */
+ for (i = 0; (attr = pdcs_subsys_attrs[i]) && !error; i++)
+@@ -713,12 +720,25 @@
+
+ /* register the paths subsys as a subsystem of pdc subsys */
+ kset_set_kset_s(&paths_subsys, pdc_subsys);
+- subsystem_register(&paths_subsys);
++ if ((rc= subsystem_register(&paths_subsys)))
++ goto fail_subsysreg;
+
+ /* now we create all "files" for the paths subsys */
+- pdcs_register_pathentries();
++ if ((rc = pdcs_register_pathentries()))
++ goto fail_pdcsreg;
++
++ return rc;
+
+- return 0;
++fail_pdcsreg:
++ pdcs_unregister_pathentries();
++ subsystem_unregister(&paths_subsys);
++
++fail_subsysreg:
++ firmware_unregister(&pdc_subsys);
++
++fail_firmreg:
++ printk(KERN_INFO "PDC Stable Storage bailing out\n");
++ return rc;
}
-@@ -555,9 +543,7 @@
- ret = -EFAULT;
- }
+ static void __exit
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/parisc/power.c CVS2_6_15_RC7_PA0/drivers/parisc/power.c
+--- LINUS_2_6_15_RC7/drivers/parisc/power.c 2005-12-27 13:25:46.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/parisc/power.c 2005-12-19 06:48:41.000000000 -0700
+@@ -2,7 +2,7 @@
+ * linux/arch/parisc/kernel/power.c
+ * HP PARISC soft power switch support driver
+ *
+- * Copyright (c) 2001-2002 Helge Deller <deller at gmx.de>
++ * Copyright (c) 2001-2005 Helge Deller <deller at gmx.de>
+ * All rights reserved.
+ *
+ *
+@@ -102,7 +102,7 @@
-- if (karg.contexts)
-- kfree(karg.contexts);
--
-+ kfree(karg.contexts);
- return ret;
- }
+ static void poweroff(void)
+ {
+- static int powering_off;
++ static int powering_off __read_mostly;
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/arch/parisc/kernel/irq.c CVS2_6_14_PA0/arch/parisc/kernel/irq.c
---- LINUS_2_6_14/arch/parisc/kernel/irq.c 2005-10-27 21:30:34.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/kernel/irq.c 2005-10-21 20:37:07.000000000 -0600
-@@ -30,6 +30,9 @@
- #include <linux/seq_file.h>
- #include <linux/spinlock.h>
- #include <linux/types.h>
-+#include <asm/io.h>
-+
-+#include <asm/smp.h>
+ if (powering_off)
+ return;
+@@ -113,7 +113,7 @@
- #undef PARISC_IRQ_CR16_COUNTS
-@@ -43,26 +46,34 @@
- */
- static volatile unsigned long cpu_eiem = 0;
+ /* local time-counter for shutdown */
+-static int shutdown_timer;
++static int shutdown_timer __read_mostly;
--static void cpu_set_eiem(void *info)
--{
-- set_eiem((unsigned long) info);
--}
--
--static inline void cpu_disable_irq(unsigned int irq)
-+static void cpu_disable_irq(unsigned int irq)
- {
- unsigned long eirr_bit = EIEM_MASK(irq);
+ /* check, give feedback and start shutdown after one second */
+ static void process_shutdown(void)
+@@ -139,7 +139,7 @@
+ DECLARE_TASKLET_DISABLED(power_tasklet, NULL, 0);
- cpu_eiem &= ~eirr_bit;
-- on_each_cpu(cpu_set_eiem, (void *) cpu_eiem, 1, 1);
-+ /* Do nothing on the other CPUs. If they get this interrupt,
-+ * The & cpu_eiem in the do_cpu_irq_mask() ensures they won't
-+ * handle it, and the set_eiem() at the bottom will ensure it
-+ * then gets disabled */
- }
+ /* soft power switch enabled/disabled */
+-int pwrsw_enabled = 1;
++int pwrsw_enabled __read_mostly = 1;
+
+ /*
+ * On gecko style machines (e.g. 712/xx and 715/xx)
+@@ -149,7 +149,7 @@
+ */
+ static void gecko_tasklet_func(unsigned long unused)
+ {
+- if (!pwrsw_enabled)
++ if (unlikely(!pwrsw_enabled))
+ return;
- static void cpu_enable_irq(unsigned int irq)
+ if (__getDIAG(25) & 0x80000000) {
+@@ -173,7 +173,7 @@
{
- unsigned long eirr_bit = EIEM_MASK(irq);
+ unsigned long current_status;
+
+- if (!pwrsw_enabled)
++ if (unlikely(!pwrsw_enabled))
+ return;
+
+ current_status = gsc_readl(soft_power_reg);
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/parport/Kconfig CVS2_6_15_RC7_PA0/drivers/parport/Kconfig
+--- LINUS_2_6_15_RC7/drivers/parport/Kconfig 2005-12-27 13:25:47.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/parport/Kconfig 2005-12-07 14:28:17.000000000 -0700
+@@ -121,6 +121,7 @@
+ tristate
+ default GSC
+ depends on PARPORT
++ select PARPORT_NOT_PC
+
+ config PARPORT_SUNBPP
+ tristate "Sparc hardware (EXPERIMENTAL)"
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/pcmcia/Kconfig CVS2_6_15_RC7_PA0/drivers/pcmcia/Kconfig
+--- LINUS_2_6_15_RC7/drivers/pcmcia/Kconfig 2005-12-27 13:25:47.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/pcmcia/Kconfig 2005-12-11 10:56:12.000000000 -0700
+@@ -200,7 +200,7 @@
+
+ config PCMCIA_PROBE
+ bool
+- default y if ISA && !ARCH_SA1100 && !ARCH_CLPS711X
++ default y if ISA && !ARCH_SA1100 && !ARCH_CLPS711XS && !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_15_RC7/drivers/scsi/53c700.c CVS2_6_15_RC7_PA0/drivers/scsi/53c700.c
+--- LINUS_2_6_15_RC7/drivers/scsi/53c700.c 2005-12-27 13:25:48.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/scsi/53c700.c 2005-11-11 21:08:09.000000000 -0700
+@@ -302,6 +302,7 @@
+ __u8 *memory;
+ __u32 *script;
+ struct Scsi_Host *host;
++ const char *chipname;
+ static int banner = 0;
+ int j;
+
+@@ -402,11 +403,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_15_RC7/drivers/scsi/Kconfig CVS2_6_15_RC7_PA0/drivers/scsi/Kconfig
+--- LINUS_2_6_15_RC7/drivers/scsi/Kconfig 2005-12-27 13:25:48.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/scsi/Kconfig 2005-12-12 09:35:31.000000000 -0700
+@@ -1066,7 +1066,7 @@
+ memory using PCI DAC cycles.
+
+ config SCSI_SYM53C8XX_DEFAULT_TAGS
+- int "default tagged command queue depth"
++ int "Default tagged command queue depth"
+ depends on SCSI_SYM53C8XX_2
+ default "16"
+ help
+@@ -1077,7 +1077,7 @@
+ exceed CONFIG_SCSI_SYM53C8XX_MAX_TAGS.
+
+ config SCSI_SYM53C8XX_MAX_TAGS
+- int "maximum number of queued commands"
++ int "Maximum number of queued commands"
+ depends on SCSI_SYM53C8XX_2
+ default "64"
+ help
+@@ -1086,13 +1086,14 @@
+ possible. The driver supports up to 256 queued commands per device.
+ This value is used as a compiled-in hard limit.
+
+-config SCSI_SYM53C8XX_IOMAPPED
+- bool "use port IO"
++config SCSI_SYM53C8XX_MMIO
++ bool "Use memory mapped IO"
+ depends on SCSI_SYM53C8XX_2
++ default y
+ help
+- If you say Y here, the driver will use port IO to access
+- the card. This is significantly slower then using memory
+- mapped IO. Most people should answer N.
++ Memory mapped IO is faster than Port IO. Most people should
++ answer Y here, but some machines may have problems. If you have
++ to answer N here, please report the problem to the maintainer.
+
+ config SCSI_IPR
+ tristate "IBM Power Linux RAID adapter support"
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/scsi/constants.c CVS2_6_15_RC7_PA0/drivers/scsi/constants.c
+--- LINUS_2_6_15_RC7/drivers/scsi/constants.c 2005-12-27 13:25:48.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/scsi/constants.c 2005-12-12 17:01:16.000000000 -0700
+@@ -114,8 +114,7 @@
+ {0xd, "Report supported task management functions"},
+ {0xe, "Report priority"},
+ };
+-#define MAINT_IN_SZ \
+- (int)(sizeof(maint_in_arr) / sizeof(maint_in_arr[0]))
++#define MAINT_IN_SZ (int)ARRAY_SIZE(maint_in_arr)
+
+ static const struct value_name_pair maint_out_arr[] = {
+ {0x6, "Set device identifier"},
+@@ -123,34 +122,29 @@
+ {0xb, "Change aliases"},
+ {0xe, "Set priority"},
+ };
+-#define MAINT_OUT_SZ \
+- (int)(sizeof(maint_out_arr) / sizeof(maint_out_arr[0]))
++#define MAINT_OUT_SZ (int)ARRAY_SIZE(maint_out_arr)
+
+ static const struct value_name_pair serv_in12_arr[] = {
+ {0x1, "Read media serial number"},
+ };
+-#define SERV_IN12_SZ \
+- (int)(sizeof(serv_in12_arr) / sizeof(serv_in12_arr[0]))
++#define SERV_IN12_SZ (int)ARRAY_SIZE(serv_in12_arr)
+
+ static const struct value_name_pair serv_out12_arr[] = {
+ {-1, "dummy entry"},
+ };
+-#define SERV_OUT12_SZ \
+- (int)(sizeof(serv_out12_arr) / sizeof(serv_in12_arr[0]))
++#define SERV_OUT12_SZ (int)ARRAY_SIZE(serv_out12_arr)
+
+ static const struct value_name_pair serv_in16_arr[] = {
+ {0x10, "Read capacity(16)"},
+ {0x11, "Read long(16)"},
+ };
+-#define SERV_IN16_SZ \
+- (int)(sizeof(serv_in16_arr) / sizeof(serv_in16_arr[0]))
++#define SERV_IN16_SZ (int)ARRAY_SIZE(serv_in16_arr)
+
+ static const struct value_name_pair serv_out16_arr[] = {
+ {0x11, "Write long(16)"},
+ {0x1f, "Notify data transfer device(16)"},
+ };
+-#define SERV_OUT16_SZ \
+- (int)(sizeof(serv_out16_arr) / sizeof(serv_in16_arr[0]))
++#define SERV_OUT16_SZ (int)ARRAY_SIZE(serv_out16_arr)
+
+ static const struct value_name_pair variable_length_arr[] = {
+ {0x1, "Rebuild(32)"},
+@@ -190,8 +184,7 @@
+ {0x8f7e, "Perform SCSI command (osd)"},
+ {0x8f7f, "Perform task management function (osd)"},
+ };
+-#define VARIABLE_LENGTH_SZ \
+- (int)(sizeof(variable_length_arr) / sizeof(variable_length_arr[0]))
++#define VARIABLE_LENGTH_SZ (int)ARRAY_SIZE(variable_length_arr)
+
+ static const char * get_sa_name(const struct value_name_pair * arr,
+ int arr_sz, int service_action)
+@@ -1287,19 +1280,20 @@
+ /* 0x0c */ "Bus device reset", "Abort Tag", "Clear Queue",
+ /* 0x0f */ "Initiate Recovery", "Release Recovery"
+ };
+-#define NO_ONE_BYTE_MSGS (sizeof(one_byte_msgs) / sizeof (const char *))
++#define NO_ONE_BYTE_MSGS ARRAY_SIZE(one_byte_msgs)
+
+ static const char *two_byte_msgs[] = {
+-/* 0x20 */ "Simple Queue Tag", "Head of Queue Tag", "Ordered Queue Tag"
++/* 0x20 */ "Simple Queue Tag", "Head of Queue Tag", "Ordered Queue Tag",
+ /* 0x23 */ "Ignore Wide Residue"
+ };
+-#define NO_TWO_BYTE_MSGS (sizeof(two_byte_msgs) / sizeof (const char *))
++#define NO_TWO_BYTE_MSGS ARRAY_SIZE(two_byte_msgs)
+
+ static const char *extended_msgs[] = {
+ /* 0x00 */ "Modify Data Pointer", "Synchronous Data Transfer Request",
+-/* 0x02 */ "SCSI-I Extended Identify", "Wide Data Transfer Request"
++/* 0x02 */ "SCSI-I Extended Identify", "Wide Data Transfer Request",
++/* 0x04 */ "Parallel Protocol Request"
+ };
+-#define NO_EXTENDED_MSGS (sizeof(two_byte_msgs) / sizeof (const char *))
++#define NO_EXTENDED_MSGS ARRAY_SIZE(extended_msgs)
+
+
+ int scsi_print_msg (const unsigned char *msg)
+@@ -1324,6 +1318,10 @@
+ case EXTENDED_WDTR:
+ printk("width = 2^%d bytes", msg[3]);
+ break;
++ case EXTENDED_PPR:
++ printk("period = %d ns, offset = %d, width = %d",
++ (int) msg[3] * 4, (int) msg[5], 1 << msg[6]);
++ break;
+ default:
+ for (i = 2; i < len; ++i)
+ printk("%02x ", msg[i]);
+@@ -1401,7 +1399,7 @@
+ "DID_OK", "DID_NO_CONNECT", "DID_BUS_BUSY", "DID_TIME_OUT", "DID_BAD_TARGET",
+ "DID_ABORT", "DID_PARITY", "DID_ERROR", "DID_RESET", "DID_BAD_INTR",
+ "DID_PASSTHROUGH", "DID_SOFT_ERROR", "DID_IMM_RETRY"};
+-#define NUM_HOSTBYTE_STRS (sizeof(hostbyte_table) / sizeof(const char *))
++#define NUM_HOSTBYTE_STRS ARRAY_SIZE(hostbyte_table)
+
+ void scsi_print_hostbyte(int scsiresult)
+ {
+@@ -1425,12 +1423,12 @@
+ static const char * driverbyte_table[]={
+ "DRIVER_OK", "DRIVER_BUSY", "DRIVER_SOFT", "DRIVER_MEDIA", "DRIVER_ERROR",
+ "DRIVER_INVALID", "DRIVER_TIMEOUT", "DRIVER_HARD", "DRIVER_SENSE"};
+-#define NUM_DRIVERBYTE_STRS (sizeof(driverbyte_table) / sizeof(const char *))
++#define NUM_DRIVERBYTE_STRS ARRAY_SIZE(driverbyte_table)
+
+ static const char * driversuggest_table[]={"SUGGEST_OK",
+ "SUGGEST_RETRY", "SUGGEST_ABORT", "SUGGEST_REMAP", "SUGGEST_DIE",
+ "SUGGEST_5", "SUGGEST_6", "SUGGEST_7", "SUGGEST_SENSE"};
+-#define NUM_SUGGEST_STRS (sizeof(driversuggest_table) / sizeof(const char *))
++#define NUM_SUGGEST_STRS ARRAY_SIZE(driversuggest_table)
+
+ void scsi_print_driverbyte(int scsiresult)
+ {
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/scsi/ncr53c8xx.c CVS2_6_15_RC7_PA0/drivers/scsi/ncr53c8xx.c
+--- LINUS_2_6_15_RC7/drivers/scsi/ncr53c8xx.c 2005-12-27 13:25:48.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/scsi/ncr53c8xx.c 2005-12-12 12:01:54.000000000 -0700
+@@ -69,6 +69,10 @@
+ ** Low PCI traffic for command handling when on-chip RAM is present.
+ ** Aggressive SCSI SCRIPTS optimizations.
+ **
++** 2005 by Matthew Wilcox and James Bottomley
++** PCI-ectomy. This driver now supports only the 720 chip (see the
++** NCR_Q720 and zalon drivers for the bus probe logic).
++**
+ *******************************************************************************
+ */
+
+@@ -90,13 +94,6 @@
-- mtctl(eirr_bit, 23); /* clear EIRR bit before unmasking */
- cpu_eiem |= eirr_bit;
-- on_each_cpu(cpu_set_eiem, (void *) cpu_eiem, 1, 1);
+ #define SCSI_NCR_DEBUG_FLAGS (0)
+
+-/*==========================================================
+-**
+-** Include files
+-**
+-**==========================================================
+-*/
+-
+ #include <linux/blkdev.h>
+ #include <linux/delay.h>
+ #include <linux/dma-mapping.h>
+@@ -121,6 +118,7 @@
+
+ #include <scsi/scsi.h>
+ #include <scsi/scsi_cmnd.h>
++#include <scsi/scsi_dbg.h>
+ #include <scsi/scsi_device.h>
+ #include <scsi/scsi_tcq.h>
+ #include <scsi/scsi_transport.h>
+@@ -128,10 +126,740 @@
+
+ #include "ncr53c8xx.h"
+
+-#define NAME53C "ncr53c"
+ #define NAME53C8XX "ncr53c8xx"
+
+-#include "sym53c8xx_comm.h"
++/*==========================================================
++**
++** Debugging tags
++**
++**==========================================================
++*/
++
++#define DEBUG_ALLOC (0x0001)
++#define DEBUG_PHASE (0x0002)
++#define DEBUG_QUEUE (0x0008)
++#define DEBUG_RESULT (0x0010)
++#define DEBUG_POINTER (0x0020)
++#define DEBUG_SCRIPT (0x0040)
++#define DEBUG_TINY (0x0080)
++#define DEBUG_TIMING (0x0100)
++#define DEBUG_NEGO (0x0200)
++#define DEBUG_TAGS (0x0400)
++#define DEBUG_SCATTER (0x0800)
++#define DEBUG_IC (0x1000)
+
-+ /* FIXME: while our interrupts aren't nested, we cannot reset
-+ * the eiem mask if we're already in an interrupt. Once we
-+ * implement nested interrupts, this can go away
-+ */
-+ if (!in_interrupt())
-+ set_eiem(cpu_eiem);
++/*
++** Enable/Disable debug messages.
++** Can be changed at runtime too.
++*/
++
++#ifdef SCSI_NCR_DEBUG_INFO_SUPPORT
++static int ncr_debug = SCSI_NCR_DEBUG_FLAGS;
++ #define DEBUG_FLAGS ncr_debug
++#else
++ #define DEBUG_FLAGS SCSI_NCR_DEBUG_FLAGS
++#endif
+
-+ /* This is just a simple NOP IPI. But what it does is cause
-+ * all the other CPUs to do a set_eiem(cpu_eiem) at the end
-+ * of the interrupt handler */
-+ smp_send_all_nop();
- }
-
- static unsigned int cpu_startup_irq(unsigned int irq)
-@@ -74,6 +85,35 @@
- void no_ack_irq(unsigned int irq) { }
- void no_end_irq(unsigned int irq) { }
-
-+#ifdef CONFIG_SMP
-+int cpu_check_affinity(unsigned int irq, cpumask_t *dest)
++static inline struct list_head *ncr_list_pop(struct list_head *head)
+{
-+ int cpu_dest;
++ if (!list_empty(head)) {
++ struct list_head *elem = head->next;
+
-+ /* timer and ipi have to always be received on all CPUs */
-+ if (irq == TIMER_IRQ || irq == IPI_IRQ) {
-+ /* Bad linux design decision. The mask has already
-+ * been set; we must reset it */
-+ irq_affinity[irq] = CPU_MASK_ALL;
-+ return -EINVAL;
++ list_del(elem);
++ return elem;
+ }
+
-+ /* whatever mask they set, we just allow one CPU */
-+ cpu_dest = first_cpu(*dest);
-+ *dest = cpumask_of_cpu(cpu_dest);
++ return NULL;
++}
+
-+ return 0;
++/*==========================================================
++**
++** Simple power of two buddy-like allocator.
++**
++** This simple code is not intended to be fast, but to
++** provide power of 2 aligned memory allocations.
++** Since the SCRIPTS processor only supplies 8 bit
++** arithmetic, this allocator allows simple and fast
++** address calculations from the SCRIPTS code.
++** In addition, cache line alignment is guaranteed for
++** power of 2 cache line size.
++** Enhanced in linux-2.3.44 to provide a memory pool
++** per pcidev to support dynamic dma mapping. (I would
++** have preferred a real bus astraction, btw).
++**
++**==========================================================
++*/
++
++#define MEMO_SHIFT 4 /* 16 bytes minimum memory chunk */
++#if PAGE_SIZE >= 8192
++#define MEMO_PAGE_ORDER 0 /* 1 PAGE maximum */
++#else
++#define MEMO_PAGE_ORDER 1 /* 2 PAGES maximum */
++#endif
++#define MEMO_FREE_UNUSED /* Free unused pages immediately */
++#define MEMO_WARN 1
++#define MEMO_GFP_FLAGS GFP_ATOMIC
++#define MEMO_CLUSTER_SHIFT (PAGE_SHIFT+MEMO_PAGE_ORDER)
++#define MEMO_CLUSTER_SIZE (1UL << MEMO_CLUSTER_SHIFT)
++#define MEMO_CLUSTER_MASK (MEMO_CLUSTER_SIZE-1)
++
++typedef u_long m_addr_t; /* Enough bits to bit-hack addresses */
++typedef struct device *m_bush_t; /* Something that addresses DMAable */
++
++typedef struct m_link { /* Link between free memory chunks */
++ struct m_link *next;
++} m_link_s;
++
++typedef struct m_vtob { /* Virtual to Bus address translation */
++ struct m_vtob *next;
++ m_addr_t vaddr;
++ m_addr_t baddr;
++} m_vtob_s;
++#define VTOB_HASH_SHIFT 5
++#define VTOB_HASH_SIZE (1UL << VTOB_HASH_SHIFT)
++#define VTOB_HASH_MASK (VTOB_HASH_SIZE-1)
++#define VTOB_HASH_CODE(m) \
++ ((((m_addr_t) (m)) >> MEMO_CLUSTER_SHIFT) & VTOB_HASH_MASK)
++
++typedef struct m_pool { /* Memory pool of a given kind */
++ m_bush_t bush;
++ m_addr_t (*getp)(struct m_pool *);
++ void (*freep)(struct m_pool *, m_addr_t);
++ int nump;
++ m_vtob_s *(vtob[VTOB_HASH_SIZE]);
++ struct m_pool *next;
++ struct m_link h[PAGE_SHIFT-MEMO_SHIFT+MEMO_PAGE_ORDER+1];
++} m_pool_s;
++
++static void *___m_alloc(m_pool_s *mp, int size)
++{
++ int i = 0;
++ int s = (1 << MEMO_SHIFT);
++ int j;
++ m_addr_t a;
++ m_link_s *h = mp->h;
++
++ if (size > (PAGE_SIZE << MEMO_PAGE_ORDER))
++ return NULL;
++
++ while (size > s) {
++ s <<= 1;
++ ++i;
++ }
++
++ j = i;
++ while (!h[j].next) {
++ if (s == (PAGE_SIZE << MEMO_PAGE_ORDER)) {
++ h[j].next = (m_link_s *)mp->getp(mp);
++ if (h[j].next)
++ h[j].next->next = NULL;
++ break;
++ }
++ ++j;
++ s <<= 1;
++ }
++ a = (m_addr_t) h[j].next;
++ if (a) {
++ h[j].next = h[j].next->next;
++ while (j > i) {
++ j -= 1;
++ s >>= 1;
++ h[j].next = (m_link_s *) (a+s);
++ h[j].next->next = NULL;
++ }
++ }
++#ifdef DEBUG
++ printk("___m_alloc(%d) = %p\n", size, (void *) a);
++#endif
++ return (void *) a;
+}
+
-+static void cpu_set_affinity_irq(unsigned int irq, cpumask_t dest)
++static void ___m_free(m_pool_s *mp, void *ptr, int size)
+{
-+ if (cpu_check_affinity(irq, &dest))
++ int i = 0;
++ int s = (1 << MEMO_SHIFT);
++ m_link_s *q;
++ m_addr_t a, b;
++ m_link_s *h = mp->h;
++
++#ifdef DEBUG
++ printk("___m_free(%p, %d)\n", ptr, size);
++#endif
++
++ if (size > (PAGE_SIZE << MEMO_PAGE_ORDER))
+ return;
+
-+ irq_affinity[irq] = dest;
++ while (size > s) {
++ s <<= 1;
++ ++i;
++ }
++
++ a = (m_addr_t) ptr;
++
++ while (1) {
++#ifdef MEMO_FREE_UNUSED
++ if (s == (PAGE_SIZE << MEMO_PAGE_ORDER)) {
++ mp->freep(mp, a);
++ break;
++ }
++#endif
++ b = a ^ s;
++ q = &h[i];
++ while (q->next && q->next != (m_link_s *) b) {
++ q = q->next;
++ }
++ if (!q->next) {
++ ((m_link_s *) a)->next = h[i].next;
++ h[i].next = (m_link_s *) a;
++ break;
++ }
++ q->next = q->next->next;
++ a = a & b;
++ s <<= 1;
++ ++i;
++ }
++}
++
++static DEFINE_SPINLOCK(ncr53c8xx_lock);
++
++static void *__m_calloc2(m_pool_s *mp, int size, char *name, int uflags)
++{
++ void *p;
++
++ p = ___m_alloc(mp, size);
++
++ if (DEBUG_FLAGS & DEBUG_ALLOC)
++ printk ("new %-10s[%4d] @%p.\n", name, size, p);
++
++ if (p)
++ memset(p, 0, size);
++ else if (uflags & MEMO_WARN)
++ printk (NAME53C8XX ": failed to allocate %s[%d]\n", name, size);
++
++ return p;
++}
++
++#define __m_calloc(mp, s, n) __m_calloc2(mp, s, n, MEMO_WARN)
++
++static void __m_free(m_pool_s *mp, void *ptr, int size, char *name)
++{
++ if (DEBUG_FLAGS & DEBUG_ALLOC)
++ printk ("freeing %-10s[%4d] @%p.\n", name, size, ptr);
++
++ ___m_free(mp, ptr, size);
++
++}
++
++/*
++ * With pci bus iommu support, we use a default pool of unmapped memory
++ * for memory we donnot need to DMA from/to and one pool per pcidev for
++ * memory accessed by the PCI chip. `mp0' is the default not DMAable pool.
++ */
++
++static m_addr_t ___mp0_getp(m_pool_s *mp)
++{
++ m_addr_t m = __get_free_pages(MEMO_GFP_FLAGS, MEMO_PAGE_ORDER);
++ if (m)
++ ++mp->nump;
++ return m;
++}
++
++static void ___mp0_freep(m_pool_s *mp, m_addr_t m)
++{
++ free_pages(m, MEMO_PAGE_ORDER);
++ --mp->nump;
++}
++
++static m_pool_s mp0 = {NULL, ___mp0_getp, ___mp0_freep};
++
++/*
++ * DMAable pools.
++ */
++
++/*
++ * With pci bus iommu support, we maintain one pool per pcidev and a
++ * hashed reverse table for virtual to bus physical address translations.
++ */
++static m_addr_t ___dma_getp(m_pool_s *mp)
++{
++ m_addr_t vp;
++ m_vtob_s *vbp;
++
++ vbp = __m_calloc(&mp0, sizeof(*vbp), "VTOB");
++ if (vbp) {
++ dma_addr_t daddr;
++ vp = (m_addr_t) dma_alloc_coherent(mp->bush,
++ PAGE_SIZE<<MEMO_PAGE_ORDER,
++ &daddr, GFP_ATOMIC);
++ if (vp) {
++ int hc = VTOB_HASH_CODE(vp);
++ vbp->vaddr = vp;
++ vbp->baddr = daddr;
++ vbp->next = mp->vtob[hc];
++ mp->vtob[hc] = vbp;
++ ++mp->nump;
++ return vp;
++ }
++ }
++ if (vbp)
++ __m_free(&mp0, vbp, sizeof(*vbp), "VTOB");
++ return 0;
++}
++
++static void ___dma_freep(m_pool_s *mp, m_addr_t m)
++{
++ m_vtob_s **vbpp, *vbp;
++ int hc = VTOB_HASH_CODE(m);
++
++ vbpp = &mp->vtob[hc];
++ while (*vbpp && (*vbpp)->vaddr != m)
++ vbpp = &(*vbpp)->next;
++ if (*vbpp) {
++ vbp = *vbpp;
++ *vbpp = (*vbpp)->next;
++ dma_free_coherent(mp->bush, PAGE_SIZE<<MEMO_PAGE_ORDER,
++ (void *)vbp->vaddr, (dma_addr_t)vbp->baddr);
++ __m_free(&mp0, vbp, sizeof(*vbp), "VTOB");
++ --mp->nump;
++ }
++}
++
++static inline m_pool_s *___get_dma_pool(m_bush_t bush)
++{
++ m_pool_s *mp;
++ for (mp = mp0.next; mp && mp->bush != bush; mp = mp->next);
++ return mp;
++}
++
++static m_pool_s *___cre_dma_pool(m_bush_t bush)
++{
++ m_pool_s *mp;
++ mp = __m_calloc(&mp0, sizeof(*mp), "MPOOL");
++ if (mp) {
++ memset(mp, 0, sizeof(*mp));
++ mp->bush = bush;
++ mp->getp = ___dma_getp;
++ mp->freep = ___dma_freep;
++ mp->next = mp0.next;
++ mp0.next = mp;
++ }
++ return mp;
++}
++
++static void ___del_dma_pool(m_pool_s *p)
++{
++ struct m_pool **pp = &mp0.next;
++
++ while (*pp && *pp != p)
++ pp = &(*pp)->next;
++ if (*pp) {
++ *pp = (*pp)->next;
++ __m_free(&mp0, p, sizeof(*p), "MPOOL");
++ }
++}
++
++static void *__m_calloc_dma(m_bush_t bush, int size, char *name)
++{
++ u_long flags;
++ struct m_pool *mp;
++ void *m = NULL;
++
++ spin_lock_irqsave(&ncr53c8xx_lock, flags);
++ mp = ___get_dma_pool(bush);
++ if (!mp)
++ mp = ___cre_dma_pool(bush);
++ if (mp)
++ m = __m_calloc(mp, size, name);
++ if (mp && !mp->nump)
++ ___del_dma_pool(mp);
++ spin_unlock_irqrestore(&ncr53c8xx_lock, flags);
++
++ return m;
++}
++
++static void __m_free_dma(m_bush_t bush, void *m, int size, char *name)
++{
++ u_long flags;
++ struct m_pool *mp;
++
++ spin_lock_irqsave(&ncr53c8xx_lock, flags);
++ mp = ___get_dma_pool(bush);
++ if (mp)
++ __m_free(mp, m, size, name);
++ if (mp && !mp->nump)
++ ___del_dma_pool(mp);
++ spin_unlock_irqrestore(&ncr53c8xx_lock, flags);
++}
++
++static m_addr_t __vtobus(m_bush_t bush, void *m)
++{
++ u_long flags;
++ m_pool_s *mp;
++ int hc = VTOB_HASH_CODE(m);
++ m_vtob_s *vp = NULL;
++ m_addr_t a = ((m_addr_t) m) & ~MEMO_CLUSTER_MASK;
++
++ spin_lock_irqsave(&ncr53c8xx_lock, flags);
++ mp = ___get_dma_pool(bush);
++ if (mp) {
++ vp = mp->vtob[hc];
++ while (vp && (m_addr_t) vp->vaddr != a)
++ vp = vp->next;
++ }
++ spin_unlock_irqrestore(&ncr53c8xx_lock, flags);
++ return vp ? vp->baddr + (((m_addr_t) m) - a) : 0;
++}
++
++#define _m_calloc_dma(np, s, n) __m_calloc_dma(np->dev, s, n)
++#define _m_free_dma(np, p, s, n) __m_free_dma(np->dev, p, s, n)
++#define m_calloc_dma(s, n) _m_calloc_dma(np, s, n)
++#define m_free_dma(p, s, n) _m_free_dma(np, p, s, n)
++#define _vtobus(np, p) __vtobus(np->dev, p)
++#define vtobus(p) _vtobus(np, p)
++
++/*
++ * Deal with DMA mapping/unmapping.
++ */
++
++/* To keep track of the dma mapping (sg/single) that has been set */
++#define __data_mapped SCp.phase
++#define __data_mapping SCp.have_data_in
++
++static void __unmap_scsi_data(struct device *dev, struct scsi_cmnd *cmd)
++{
++ switch(cmd->__data_mapped) {
++ case 2:
++ dma_unmap_sg(dev, cmd->buffer, cmd->use_sg,
++ cmd->sc_data_direction);
++ break;
++ case 1:
++ dma_unmap_single(dev, cmd->__data_mapping,
++ cmd->request_bufflen,
++ cmd->sc_data_direction);
++ break;
++ }
++ cmd->__data_mapped = 0;
++}
++
++static u_long __map_scsi_single_data(struct device *dev, struct scsi_cmnd *cmd)
++{
++ dma_addr_t mapping;
++
++ if (cmd->request_bufflen == 0)
++ return 0;
++
++ mapping = dma_map_single(dev, cmd->request_buffer,
++ cmd->request_bufflen,
++ cmd->sc_data_direction);
++ cmd->__data_mapped = 1;
++ cmd->__data_mapping = mapping;
++
++ return mapping;
++}
++
++static int __map_scsi_sg_data(struct device *dev, struct scsi_cmnd *cmd)
++{
++ int use_sg;
++
++ if (cmd->use_sg == 0)
++ return 0;
++
++ use_sg = dma_map_sg(dev, cmd->buffer, cmd->use_sg,
++ cmd->sc_data_direction);
++ cmd->__data_mapped = 2;
++ cmd->__data_mapping = use_sg;
++
++ return use_sg;
+}
++
++#define unmap_scsi_data(np, cmd) __unmap_scsi_data(np->dev, cmd)
++#define map_scsi_single_data(np, cmd) __map_scsi_single_data(np->dev, cmd)
++#define map_scsi_sg_data(np, cmd) __map_scsi_sg_data(np->dev, cmd)
++
++/*==========================================================
++**
++** Driver setup.
++**
++** This structure is initialized from linux config
++** options. It can be overridden at boot-up by the boot
++** command line.
++**
++**==========================================================
++*/
++static struct ncr_driver_setup
++ driver_setup = SCSI_NCR_DRIVER_SETUP;
++
++#ifdef SCSI_NCR_BOOT_COMMAND_LINE_SUPPORT
++static struct ncr_driver_setup
++ driver_safe_setup __initdata = SCSI_NCR_DRIVER_SAFE_SETUP;
++#endif
++
++#define initverbose (driver_setup.verbose)
++#define bootverbose (np->verbose)
++
++
++/*===================================================================
++**
++** Driver setup from the boot command line
++**
++**===================================================================
++*/
++
++#ifdef MODULE
++#define ARG_SEP ' '
++#else
++#define ARG_SEP ','
+#endif
+
- static struct hw_interrupt_type cpu_interrupt_type = {
- .typename = "CPU",
- .startup = cpu_startup_irq,
-@@ -82,7 +122,9 @@
- .disable = cpu_disable_irq,
- .ack = no_ack_irq,
- .end = no_end_irq,
--// .set_affinity = cpu_set_affinity_irq,
-+#ifdef CONFIG_SMP
-+ .set_affinity = cpu_set_affinity_irq,
++#define OPT_TAGS 1
++#define OPT_MASTER_PARITY 2
++#define OPT_SCSI_PARITY 3
++#define OPT_DISCONNECTION 4
++#define OPT_SPECIAL_FEATURES 5
++#define OPT_UNUSED_1 6
++#define OPT_FORCE_SYNC_NEGO 7
++#define OPT_REVERSE_PROBE 8
++#define OPT_DEFAULT_SYNC 9
++#define OPT_VERBOSE 10
++#define OPT_DEBUG 11
++#define OPT_BURST_MAX 12
++#define OPT_LED_PIN 13
++#define OPT_MAX_WIDE 14
++#define OPT_SETTLE_DELAY 15
++#define OPT_DIFF_SUPPORT 16
++#define OPT_IRQM 17
++#define OPT_PCI_FIX_UP 18
++#define OPT_BUS_CHECK 19
++#define OPT_OPTIMIZE 20
++#define OPT_RECOVERY 21
++#define OPT_SAFE_SETUP 22
++#define OPT_USE_NVRAM 23
++#define OPT_EXCLUDE 24
++#define OPT_HOST_ID 25
++
++#ifdef SCSI_NCR_IARB_SUPPORT
++#define OPT_IARB 26
++#endif
++
++static char setup_token[] __initdata =
++ "tags:" "mpar:"
++ "spar:" "disc:"
++ "specf:" "ultra:"
++ "fsn:" "revprob:"
++ "sync:" "verb:"
++ "debug:" "burst:"
++ "led:" "wide:"
++ "settle:" "diff:"
++ "irqm:" "pcifix:"
++ "buschk:" "optim:"
++ "recovery:"
++ "safe:" "nvram:"
++ "excl:" "hostid:"
++#ifdef SCSI_NCR_IARB_SUPPORT
++ "iarb:"
+#endif
- };
-
- int show_interrupts(struct seq_file *p, void *v)
-@@ -219,6 +261,17 @@
- return -1;
- }
-
++ ; /* DONNOT REMOVE THIS ';' */
+
-+unsigned long txn_affinity_addr(unsigned int irq, int cpu)
-+{
-+#ifdef CONFIG_SMP
-+ irq_affinity[irq] = cpumask_of_cpu(cpu);
++#ifdef MODULE
++#define ARG_SEP ' '
++#else
++#define ARG_SEP ','
+#endif
+
-+ return cpu_data[cpu].txn_addr;
++static int __init get_setup_token(char *p)
++{
++ char *cur = setup_token;
++ char *pc;
++ int i = 0;
++
++ while (cur != NULL && (pc = strchr(cur, ':')) != NULL) {
++ ++pc;
++ ++i;
++ if (!strncmp(p, cur, pc - cur))
++ return i;
++ cur = pc;
++ }
++ return 0;
+}
+
+
- unsigned long txn_alloc_addr(unsigned int virt_irq)
- {
- static int next_cpu = -1;
-@@ -233,7 +286,7 @@
- if (next_cpu >= NR_CPUS)
- next_cpu = 0; /* nothing else, assign monarch */
++static int __init sym53c8xx__setup(char *str)
++{
++#ifdef SCSI_NCR_BOOT_COMMAND_LINE_SUPPORT
++ char *cur = str;
++ char *pc, *pv;
++ int i, val, c;
++ int xi = 0;
++
++ while (cur != NULL && (pc = strchr(cur, ':')) != NULL) {
++ char *pe;
++
++ val = 0;
++ pv = pc;
++ c = *++pv;
++
++ if (c == 'n')
++ val = 0;
++ else if (c == 'y')
++ val = 1;
++ else
++ val = (int) simple_strtoul(pv, &pe, 0);
++
++ switch (get_setup_token(cur)) {
++ case OPT_TAGS:
++ driver_setup.default_tags = val;
++ if (pe && *pe == '/') {
++ i = 0;
++ while (*pe && *pe != ARG_SEP &&
++ i < sizeof(driver_setup.tag_ctrl)-1) {
++ driver_setup.tag_ctrl[i++] = *pe++;
++ }
++ driver_setup.tag_ctrl[i] = '\0';
++ }
++ break;
++ case OPT_MASTER_PARITY:
++ driver_setup.master_parity = val;
++ break;
++ case OPT_SCSI_PARITY:
++ driver_setup.scsi_parity = val;
++ break;
++ case OPT_DISCONNECTION:
++ driver_setup.disconnection = val;
++ break;
++ case OPT_SPECIAL_FEATURES:
++ driver_setup.special_features = val;
++ break;
++ case OPT_FORCE_SYNC_NEGO:
++ driver_setup.force_sync_nego = val;
++ break;
++ case OPT_REVERSE_PROBE:
++ driver_setup.reverse_probe = val;
++ break;
++ case OPT_DEFAULT_SYNC:
++ driver_setup.default_sync = val;
++ break;
++ case OPT_VERBOSE:
++ driver_setup.verbose = val;
++ break;
++ case OPT_DEBUG:
++ driver_setup.debug = val;
++ break;
++ case OPT_BURST_MAX:
++ driver_setup.burst_max = val;
++ break;
++ case OPT_LED_PIN:
++ driver_setup.led_pin = val;
++ break;
++ case OPT_MAX_WIDE:
++ driver_setup.max_wide = val? 1:0;
++ break;
++ case OPT_SETTLE_DELAY:
++ driver_setup.settle_delay = val;
++ break;
++ case OPT_DIFF_SUPPORT:
++ driver_setup.diff_support = val;
++ break;
++ case OPT_IRQM:
++ driver_setup.irqm = val;
++ break;
++ case OPT_PCI_FIX_UP:
++ driver_setup.pci_fix_up = val;
++ break;
++ case OPT_BUS_CHECK:
++ driver_setup.bus_check = val;
++ break;
++ case OPT_OPTIMIZE:
++ driver_setup.optimize = val;
++ break;
++ case OPT_RECOVERY:
++ driver_setup.recovery = val;
++ break;
++ case OPT_USE_NVRAM:
++ driver_setup.use_nvram = val;
++ break;
++ case OPT_SAFE_SETUP:
++ memcpy(&driver_setup, &driver_safe_setup,
++ sizeof(driver_setup));
++ break;
++ case OPT_EXCLUDE:
++ if (xi < SCSI_NCR_MAX_EXCLUDES)
++ driver_setup.excludes[xi++] = val;
++ break;
++ case OPT_HOST_ID:
++ driver_setup.host_id = val;
++ break;
++#ifdef SCSI_NCR_IARB_SUPPORT
++ case OPT_IARB:
++ driver_setup.iarb = val;
++ break;
++#endif
++ default:
++ printk("sym53c8xx_setup: unexpected boot option '%.*s' ignored\n", (int)(pc-cur+1), cur);
++ break;
++ }
++
++ if ((cur = strchr(cur, ARG_SEP)) != NULL)
++ ++cur;
++ }
++#endif /* SCSI_NCR_BOOT_COMMAND_LINE_SUPPORT */
++ return 1;
++}
++
++/*===================================================================
++**
++** Get device queue depth from boot command line.
++**
++**===================================================================
++*/
++#define DEF_DEPTH (driver_setup.default_tags)
++#define ALL_TARGETS -2
++#define NO_TARGET -1
++#define ALL_LUNS -2
++#define NO_LUN -1
++
++static int device_queue_depth(int unit, int target, int lun)
++{
++ int c, h, t, u, v;
++ char *p = driver_setup.tag_ctrl;
++ char *ep;
++
++ h = -1;
++ t = NO_TARGET;
++ u = NO_LUN;
++ while ((c = *p++) != 0) {
++ v = simple_strtoul(p, &ep, 0);
++ switch(c) {
++ case '/':
++ ++h;
++ t = ALL_TARGETS;
++ u = ALL_LUNS;
++ break;
++ case 't':
++ if (t != target)
++ t = (target == v) ? v : NO_TARGET;
++ u = ALL_LUNS;
++ break;
++ case 'u':
++ if (u != lun)
++ u = (lun == v) ? v : NO_LUN;
++ break;
++ case 'q':
++ if (h == unit &&
++ (t == ALL_TARGETS || t == target) &&
++ (u == ALL_LUNS || u == lun))
++ return v;
++ break;
++ case '-':
++ t = ALL_TARGETS;
++ u = ALL_LUNS;
++ break;
++ default:
++ break;
++ }
++ p = ep;
++ }
++ return DEF_DEPTH;
++}
-- return cpu_data[next_cpu].txn_addr;
-+ return txn_affinity_addr(virt_irq, next_cpu);
- }
+ /*==========================================================
+@@ -1379,7 +2107,7 @@
+ */
-@@ -250,10 +303,11 @@
- irq_enter();
+ /*
+- ** The M_REJECT problem seems to be due to a selection
++ ** The MESSAGE_REJECT problem seems to be due to a selection
+ ** timing problem.
+ ** Wait immediately for the selection to complete.
+ ** (2.5x behaves so)
+@@ -1430,7 +2158,7 @@
+ /*
+ ** Selection complete.
+ ** Send the IDENTIFY and SIMPLE_TAG messages
+- ** (and the M_X_SYNC_REQ message)
++ ** (and the EXTENDED_SDTR message)
+ */
+ SCR_MOVE_TBL ^ SCR_MSG_OUT,
+ offsetof (struct dsb, smsg),
+@@ -1459,7 +2187,7 @@
+ /*
+ ** Initialize the msgout buffer with a NOOP message.
+ */
+- SCR_LOAD_REG (scratcha, M_NOOP),
++ SCR_LOAD_REG (scratcha, NOP),
+ 0,
+ SCR_COPY (1),
+ RADDR (scratcha),
+@@ -1611,21 +2339,21 @@
+ /*
+ ** Handle this message.
+ */
+- SCR_JUMP ^ IFTRUE (DATA (M_COMPLETE)),
++ SCR_JUMP ^ IFTRUE (DATA (COMMAND_COMPLETE)),
+ PADDR (complete),
+- SCR_JUMP ^ IFTRUE (DATA (M_DISCONNECT)),
++ SCR_JUMP ^ IFTRUE (DATA (DISCONNECT)),
+ PADDR (disconnect),
+- SCR_JUMP ^ IFTRUE (DATA (M_SAVE_DP)),
++ SCR_JUMP ^ IFTRUE (DATA (SAVE_POINTERS)),
+ PADDR (save_dp),
+- SCR_JUMP ^ IFTRUE (DATA (M_RESTORE_DP)),
++ SCR_JUMP ^ IFTRUE (DATA (RESTORE_POINTERS)),
+ PADDR (restore_dp),
+- SCR_JUMP ^ IFTRUE (DATA (M_EXTENDED)),
++ SCR_JUMP ^ IFTRUE (DATA (EXTENDED_MESSAGE)),
+ PADDRH (msg_extended),
+- SCR_JUMP ^ IFTRUE (DATA (M_NOOP)),
++ SCR_JUMP ^ IFTRUE (DATA (NOP)),
+ PADDR (clrack),
+- SCR_JUMP ^ IFTRUE (DATA (M_REJECT)),
++ SCR_JUMP ^ IFTRUE (DATA (MESSAGE_REJECT)),
+ PADDRH (msg_reject),
+- SCR_JUMP ^ IFTRUE (DATA (M_IGN_RESIDUE)),
++ SCR_JUMP ^ IFTRUE (DATA (IGNORE_WIDE_RESIDUE)),
+ PADDRH (msg_ign_residue),
+ /*
+ ** Rest of the messages left as
+@@ -1640,7 +2368,7 @@
+ */
+ SCR_INT,
+ SIR_REJECT_SENT,
+- SCR_LOAD_REG (scratcha, M_REJECT),
++ SCR_LOAD_REG (scratcha, MESSAGE_REJECT),
+ 0,
+ }/*-------------------------< SETMSG >----------------------*/,{
+ SCR_COPY (1),
+@@ -1832,7 +2560,7 @@
+ /*
+ ** If it was no ABORT message ...
+ */
+- SCR_JUMP ^ IFTRUE (DATA (M_ABORT)),
++ SCR_JUMP ^ IFTRUE (DATA (ABORT_TASK_SET)),
+ PADDRH (msg_out_abort),
+ /*
+ ** ... wait for the next phase
+@@ -1844,7 +2572,7 @@
+ /*
+ ** ... else clear the message ...
+ */
+- SCR_LOAD_REG (scratcha, M_NOOP),
++ SCR_LOAD_REG (scratcha, NOP),
+ 0,
+ SCR_COPY (4),
+ RADDR (scratcha),
+@@ -2303,7 +3031,7 @@
+ */
+ SCR_MOVE_ABS (1) ^ SCR_MSG_IN,
+ NADDR (msgin[2]),
+- SCR_JUMP ^ IFTRUE (DATA (M_X_WIDE_REQ)),
++ SCR_JUMP ^ IFTRUE (DATA (EXTENDED_WDTR)),
+ PADDRH (msg_wdtr),
+ /*
+ ** unknown extended message
+@@ -2337,7 +3065,7 @@
+ }/*-------------------------< SEND_WDTR >----------------*/,{
/*
-- * Only allow interrupt processing to be interrupted by the
-- * timer tick
-+ * Don't allow TIMER or IPI nested interrupts.
-+ * Allowing any single interrupt to nest can lead to that CPU
-+ * handling interrupts with all enabled interrupts unmasked.
- */
-- set_eiem(EIEM_MASK(TIMER_IRQ));
-+ set_eiem(0UL);
+- ** Send the M_X_WIDE_REQ
++ ** Send the EXTENDED_WDTR
+ */
+ SCR_MOVE_ABS (4) ^ SCR_MSG_OUT,
+ NADDR (msgout),
+@@ -2357,7 +3085,7 @@
+ */
+ SCR_MOVE_ABS (1) ^ SCR_MSG_IN,
+ NADDR (msgin[2]),
+- SCR_JUMP ^ IFTRUE (DATA (M_X_SYNC_REQ)),
++ SCR_JUMP ^ IFTRUE (DATA (EXTENDED_SDTR)),
+ PADDRH (msg_sdtr),
+ /*
+ ** unknown extended message
+@@ -2392,7 +3120,7 @@
- /* 1) only process IRQs that are enabled/unmasked (cpu_eiem)
- * 2) We loop here on EIRR contents in order to avoid
-@@ -267,23 +321,41 @@
- if (!eirr_val)
- break;
+ }/*-------------------------< SEND_SDTR >-------------*/,{
+ /*
+- ** Send the M_X_SYNC_REQ
++ ** Send the EXTENDED_SDTR
+ */
+ SCR_MOVE_ABS (5) ^ SCR_MSG_OUT,
+ NADDR (msgout),
+@@ -2470,10 +3198,10 @@
-- if (eirr_val & EIEM_MASK(TIMER_IRQ))
-- set_eiem(0);
+ }/*-------------------------< RESET >----------------------*/,{
+ /*
+- ** Send a M_RESET message if bad IDENTIFY
++ ** Send a TARGET_RESET message if bad IDENTIFY
+ ** received on reselection.
+ */
+- SCR_LOAD_REG (scratcha, M_ABORT_TAG),
++ SCR_LOAD_REG (scratcha, ABORT_TASK),
+ 0,
+ SCR_JUMP,
+ PADDRH (abort_resel),
+@@ -2481,7 +3209,7 @@
+ /*
+ ** Abort a wrong tag received on reselection.
+ */
+- SCR_LOAD_REG (scratcha, M_ABORT_TAG),
++ SCR_LOAD_REG (scratcha, ABORT_TASK),
+ 0,
+ SCR_JUMP,
+ PADDRH (abort_resel),
+@@ -2489,7 +3217,7 @@
+ /*
+ ** Abort a reselection when no active CCB.
+ */
+- SCR_LOAD_REG (scratcha, M_ABORT),
++ SCR_LOAD_REG (scratcha, ABORT_TASK_SET),
+ 0,
+ }/*-------------------------< ABORT_RESEL >----------------*/,{
+ SCR_COPY (1),
+@@ -2601,7 +3329,7 @@
+ ** Read the message, since we got it directly
+ ** from the SCSI BUS data lines.
+ ** Signal problem to C code for logging the event.
+- ** Send a M_ABORT to clear all pending tasks.
++ ** Send an ABORT_TASK_SET to clear all pending tasks.
+ */
+ SCR_INT,
+ SIR_RESEL_BAD_LUN,
+@@ -2613,7 +3341,7 @@
+ /*
+ ** We donnot have a task for that I_T_L.
+ ** Signal problem to C code for logging the event.
+- ** Send a M_ABORT message.
++ ** Send an ABORT_TASK_SET message.
+ */
+ SCR_INT,
+ SIR_RESEL_BAD_I_T_L,
+@@ -2623,7 +3351,7 @@
+ /*
+ ** We donnot have a task that matches the tag.
+ ** Signal problem to C code for logging the event.
+- ** Send a M_ABORTTAG message.
++ ** Send an ABORT_TASK message.
+ */
+ SCR_INT,
+ SIR_RESEL_BAD_I_T_L_Q,
+@@ -2634,7 +3362,7 @@
+ ** We donnot know the target that reselected us.
+ ** Grab the first message if any (IDENTIFY).
+ ** Signal problem to C code for logging the event.
+- ** M_RESET message.
++ ** TARGET_RESET message.
+ */
+ SCR_INT,
+ SIR_RESEL_BAD_TARGET,
+@@ -2971,21 +3699,10 @@
+
+ static void ncr_print_msg(struct ccb *cp, char *label, u_char *msg)
+ {
+- int i;
+ PRINT_ADDR(cp->cmd, "%s: ", label);
+
+- printk ("%x",*msg);
+- if (*msg == M_EXTENDED) {
+- for (i = 1; i < 8; i++) {
+- if (i - 1 > msg[1])
+- break;
+- printk ("-%x",msg[i]);
+- }
+- } else if ((*msg & 0xf0) == 0x20) {
+- printk ("-%x",msg[1]);
+- }
-
- mtctl(eirr_val, 23); /* reset bits we are going to process */
-
- /* Work our way from MSb to LSb...same order we alloc EIRs */
- for (irq = TIMER_IRQ; eirr_val && bit; bit>>=1, irq++) {
-+#ifdef CONFIG_SMP
-+ cpumask_t dest = irq_affinity[irq];
-+#endif
- if (!(bit & eirr_val))
- continue;
-
- /* clear bit in mask - can exit loop sooner */
- eirr_val &= ~bit;
-
-+#ifdef CONFIG_SMP
-+ /* FIXME: because generic set affinity mucks
-+ * with the affinity before sending it to us
-+ * we can get the situation where the affinity is
-+ * wrong for our CPU type interrupts */
-+ if (irq != TIMER_IRQ && irq != IPI_IRQ &&
-+ !cpu_isset(smp_processor_id(), dest)) {
-+ int cpu = first_cpu(dest);
-+
-+ printk(KERN_DEBUG "redirecting irq %d from CPU %d to %d\n",
-+ irq, smp_processor_id(), cpu);
-+ gsc_writel(irq + CPU_IRQ_BASE,
-+ cpu_data[cpu].hpa);
-+ continue;
-+ }
-+#endif
-+
- __do_IRQ(irq, regs);
- }
+- printk(".\n");
++ scsi_print_msg(msg);
++ printk("\n");
+ }
+
+ /*==========================================================
+@@ -3388,16 +4105,16 @@
+
+ switch (nego) {
+ case NS_SYNC:
+- msgptr[msglen++] = M_EXTENDED;
++ msgptr[msglen++] = EXTENDED_MESSAGE;
+ msgptr[msglen++] = 3;
+- msgptr[msglen++] = M_X_SYNC_REQ;
++ msgptr[msglen++] = EXTENDED_SDTR;
+ msgptr[msglen++] = tp->maxoffs ? tp->minsync : 0;
+ msgptr[msglen++] = tp->maxoffs;
+ break;
+ case NS_WIDE:
+- msgptr[msglen++] = M_EXTENDED;
++ msgptr[msglen++] = EXTENDED_MESSAGE;
+ msgptr[msglen++] = 2;
+- msgptr[msglen++] = M_X_WIDE_REQ;
++ msgptr[msglen++] = EXTENDED_WDTR;
+ msgptr[msglen++] = tp->usrwide;
+ break;
}
-- set_eiem(cpu_eiem);
-+
-+ set_eiem(cpu_eiem); /* restore original mask */
- irq_exit();
- }
-
-@@ -291,12 +363,14 @@
- static struct irqaction timer_action = {
- .handler = timer_interrupt,
- .name = "timer",
-+ .flags = SA_INTERRUPT,
- };
-
- #ifdef CONFIG_SMP
- static struct irqaction ipi_action = {
- .handler = ipi_interrupt,
- .name = "IPI",
-+ .flags = SA_INTERRUPT,
- };
- #endif
-
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/arch/parisc/kernel/pacache.S CVS2_6_14_PA0/arch/parisc/kernel/pacache.S
---- LINUS_2_6_14/arch/parisc/kernel/pacache.S 2005-10-27 21:30:34.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/kernel/pacache.S 2005-10-05 22:41:47.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
-@@ -227,7 +227,7 @@
-
- fimanyloop: /* Loop if LOOP >= 2 */
- ADDIB> -1, %r31, fimanyloop /* Adjusted inner loop decr */
-- fice 0(%sr1, %arg0)
-+ fice %r0(%sr1, %arg0)
- fice,m %arg1(%sr1, %arg0) /* Last fice and addr adjust */
- movb,tr %arg3, %r31, fimanyloop /* Re-init inner loop count */
- ADDIB<=,n -1, %arg2, fisync /* Outer loop decr */
-@@ -238,7 +238,7 @@
-
- fisync:
- sync
-- mtsm %r22
-+ mtsm %r22 /* restore I-bit */
- bv %r0(%r2)
- nop
- .exit
-@@ -269,7 +269,7 @@
-
- fdmanyloop: /* Loop if LOOP >= 2 */
- ADDIB> -1, %r31, fdmanyloop /* Adjusted inner loop decr */
-- fdce 0(%sr1, %arg0)
-+ fdce %r0(%sr1, %arg0)
- fdce,m %arg1(%sr1, %arg0) /* Last fdce and addr adjust */
- movb,tr %arg3, %r31, fdmanyloop /* Re-init inner loop count */
- ADDIB<=,n -1, %arg2, fdsync /* Outer loop decr */
-@@ -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
+@@ -3499,7 +4216,7 @@
+ **----------------------------------------------------
+ */
- 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 @@
+- idmsg = M_IDENTIFY | sdev->lun;
++ idmsg = IDENTIFY(0, sdev->lun);
- pdtlb 0(%r28)
+ if (cp ->tag != NO_TAG ||
+ (cp != np->ccb && np->disc && !(tp->usrflag & UF_NODISC)))
+@@ -3518,7 +4235,7 @@
+ */
+ if (lp && time_after(jiffies, lp->tags_stime)) {
+ if (lp->tags_smap) {
+- order = M_ORDERED_TAG;
++ order = ORDERED_QUEUE_TAG;
+ if ((DEBUG_FLAGS & DEBUG_TAGS)||bootverbose>2){
+ PRINT_ADDR(cmd,
+ "ordered tag forced.\n");
+@@ -3536,10 +4253,10 @@
+ case 0x08: /* READ_SMALL (6) */
+ case 0x28: /* READ_BIG (10) */
+ case 0xa8: /* READ_HUGE (12) */
+- order = M_SIMPLE_TAG;
++ order = SIMPLE_QUEUE_TAG;
+ break;
+ default:
+- order = M_ORDERED_TAG;
++ order = ORDERED_QUEUE_TAG;
+ }
+ }
+ msgptr[msglen++] = order;
+@@ -5508,9 +6225,9 @@
+ if (!(dbc & 0xc0000000))
+ phase = (dbc >> 24) & 7;
+ if (phase == 7)
+- msg = M_PARITY;
++ msg = MSG_PARITY_ERROR;
+ else
+- msg = M_ID_ERROR;
++ msg = INITIATOR_ERROR;
--#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
+ /*
+@@ -6074,6 +6791,8 @@
+ /*-----------------------------------------------------------------------------
+ **
+ ** Was Sie schon immer ueber transfermode negotiation wissen wollten ...
++** ("Everything you've always wanted to know about transfer mode
++** negotiation")
+ **
+ ** We try to negotiate sync and wide transfer only after
+ ** a successful inquire command. We look at byte 7 of the
+@@ -6175,8 +6894,8 @@
+ break;
--#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
+ }
+- np->msgin [0] = M_NOOP;
+- np->msgout[0] = M_NOOP;
++ np->msgin [0] = NOP;
++ np->msgout[0] = NOP;
+ cp->nego_status = 0;
+ break;
--#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
+@@ -6270,9 +6989,9 @@
+ spi_offset(starget) = ofs;
+ ncr_setsync(np, cp, scntl3, (fak<<5)|ofs);
+
+- np->msgout[0] = M_EXTENDED;
++ np->msgout[0] = EXTENDED_MESSAGE;
+ np->msgout[1] = 3;
+- np->msgout[2] = M_X_SYNC_REQ;
++ np->msgout[2] = EXTENDED_SDTR;
+ np->msgout[3] = per;
+ np->msgout[4] = ofs;
+
+@@ -6286,7 +7005,7 @@
+ OUTL_DSP (NCB_SCRIPT_PHYS (np, msg_bad));
+ return;
+ }
+- np->msgin [0] = M_NOOP;
++ np->msgin [0] = NOP;
--#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
+ break;
--#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
+@@ -6362,12 +7081,12 @@
+ spi_width(starget) = wide;
+ ncr_setwide(np, cp, wide, 1);
+
+- np->msgout[0] = M_EXTENDED;
++ np->msgout[0] = EXTENDED_MESSAGE;
+ np->msgout[1] = 2;
+- np->msgout[2] = M_X_WIDE_REQ;
++ np->msgout[2] = EXTENDED_WDTR;
+ np->msgout[3] = wide;
+
+- np->msgin [0] = M_NOOP;
++ np->msgin [0] = NOP;
+
+ cp->nego_status = NS_WIDE;
+
+@@ -6386,12 +7105,12 @@
+ case SIR_REJECT_RECEIVED:
+ /*-----------------------------------------------
+ **
+- ** We received a M_REJECT message.
++ ** We received a MESSAGE_REJECT.
+ **
+ **-----------------------------------------------
+ */
- 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
+- PRINT_ADDR(cp->cmd, "M_REJECT received (%x:%x).\n",
++ PRINT_ADDR(cp->cmd, "MESSAGE_REJECT received (%x:%x).\n",
+ (unsigned)scr_to_cpu(np->lastmsg), np->msgout[0]);
+ break;
--#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
+@@ -6403,7 +7122,7 @@
+ **-----------------------------------------------
+ */
--#ifdef __LP64__
-+#ifdef CONFIG_64BIT
- depdi,z 1, 63-PAGE_SHIFT,1, %r25
- #else
- depwi,z 1, 31-PAGE_SHIFT,1, %r25
-@@ -944,23 +949,23 @@
- sub %r25, %r23, %r25
-
-
--1: fic,m %r23(%r26)
-- fic,m %r23(%r26)
-- fic,m %r23(%r26)
-- fic,m %r23(%r26)
-- fic,m %r23(%r26)
-- fic,m %r23(%r26)
-- fic,m %r23(%r26)
-- fic,m %r23(%r26)
-- fic,m %r23(%r26)
-- fic,m %r23(%r26)
-- fic,m %r23(%r26)
-- fic,m %r23(%r26)
-- fic,m %r23(%r26)
-- fic,m %r23(%r26)
-- fic,m %r23(%r26)
-+1: fic,m %r23(%sr4, %r26)
-+ fic,m %r23(%sr4, %r26)
-+ fic,m %r23(%sr4, %r26)
-+ fic,m %r23(%sr4, %r26)
-+ fic,m %r23(%sr4, %r26)
-+ fic,m %r23(%sr4, %r26)
-+ fic,m %r23(%sr4, %r26)
-+ fic,m %r23(%sr4, %r26)
-+ fic,m %r23(%sr4, %r26)
-+ fic,m %r23(%sr4, %r26)
-+ fic,m %r23(%sr4, %r26)
-+ fic,m %r23(%sr4, %r26)
-+ fic,m %r23(%sr4, %r26)
-+ fic,m %r23(%sr4, %r26)
-+ fic,m %r23(%sr4, %r26)
- CMPB<< %r26, %r25, 1b
-- fic,m %r23(%r26)
-+ fic,m %r23(%sr4, %r26)
-
- sync
- bv %r0(%r2)
-@@ -982,17 +987,18 @@
- ANDCM %r26, %r21, %r26
-
- 1: CMPB<<,n %r26, %r25, 1b
-- fic,m %r23(%r26)
-+ fic,m %r23(%sr4, %r26)
-
- sync
- bv %r0(%r2)
- nop
- .exit
--
- .procend
+- ncr_print_msg(cp, "M_REJECT sent for", np->msgin);
++ ncr_print_msg(cp, "MESSAGE_REJECT sent for", np->msgin);
+ break;
-- .align 128
--
-+ /* align should cover use of rfi in disable_sr_hashing_asm and
-+ * srdis_done.
-+ */
-+ .align 256
- .export disable_sr_hashing_asm,code
+ /*--------------------------------------------------------------------
+@@ -6422,7 +7141,7 @@
+ **-----------------------------------------------
+ */
- 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_14/arch/parisc/kernel/pci-dma.c CVS2_6_14_PA0/arch/parisc/kernel/pci-dma.c
---- LINUS_2_6_14/arch/parisc/kernel/pci-dma.c 2005-10-27 21:30:34.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/kernel/pci-dma.c 2005-08-20 18:20:11.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 */
+- PRINT_ADDR(cp->cmd, "M_IGN_RESIDUE received, but not yet "
++ PRINT_ADDR(cp->cmd, "IGNORE_WIDE_RESIDUE received, but not yet "
+ "implemented.\n");
+ break;
+ #if 0
+@@ -6435,7 +7154,7 @@
+ **-----------------------------------------------
+ */
- static struct proc_dir_entry * proc_gsc_root = NULL;
- static int pcxl_proc_info(char *buffer, char **start, off_t offset, int length);
-@@ -333,18 +333,28 @@
- static int __init
- pcxl_dma_init(void)
- {
-- if (pcxl_dma_start == 0)
-- return 0;
-+ if (pcxl_dma_start == 0)
-+ return 0;
+- PRINT_ADDR(cp->cmd, "M_DISCONNECT received, but datapointer "
++ PRINT_ADDR(cp->cmd, "DISCONNECT received, but datapointer "
+ "not saved: data=%x save=%x goal=%x.\n",
+ (unsigned) INL (nc_temp),
+ (unsigned) scr_to_cpu(np->header.savep),
+@@ -7141,7 +7860,7 @@
+ **==========================================================
+ **
+ ** Note: we have to return the correct value.
+-** THERE IS NO SAVE DEFAULT VALUE.
++** THERE IS NO SAFE DEFAULT VALUE.
+ **
+ ** Most NCR/SYMBIOS boards are delivered with a 40 Mhz clock.
+ ** 53C860 and 53C875 rev. 1 support fast20 transfers but
+@@ -7841,7 +8560,7 @@
+
+ /* use SIMPLE TAG messages by default */
+ #ifdef SCSI_NCR_ALWAYS_SIMPLE_TAG
+- np->order = M_SIMPLE_TAG;
++ np->order = SIMPLE_QUEUE_TAG;
+ #endif
+
+ spin_unlock_irqrestore(&np->smp_lock, flags);
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/scsi/ncr53c8xx.h CVS2_6_15_RC7_PA0/drivers/scsi/ncr53c8xx.h
+--- LINUS_2_6_15_RC7/drivers/scsi/ncr53c8xx.h 2005-12-27 13:25:48.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/scsi/ncr53c8xx.h 2005-12-12 12:01:54.000000000 -0700
+@@ -36,6 +36,13 @@
+ ** And has been ported to NetBSD by
+ ** Charles M. Hannum <mycroft at gnu.ai.mit.edu>
+ **
++** Added support for MIPS big endian systems.
++** Carsten Langgaard, carstenl at mips.com
++** Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved.
++**
++** Added support for HP PARISC big endian systems.
++** Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved.
++**
+ *******************************************************************************
+ */
-- spin_lock_init(&pcxl_res_lock);
-- pcxl_res_size = PCXL_DMA_MAP_SIZE >> (PAGE_SHIFT + 3);
-- pcxl_res_hint = 0;
-- pcxl_res_map = (char *)__get_free_pages(GFP_KERNEL,
-+ spin_lock_init(&pcxl_res_lock);
-+ pcxl_res_size = PCXL_DMA_MAP_SIZE >> (PAGE_SHIFT + 3);
-+ pcxl_res_hint = 0;
-+ pcxl_res_map = (char *)__get_free_pages(GFP_KERNEL,
- get_order(pcxl_res_size));
-- memset(pcxl_res_map, 0, pcxl_res_size);
-- proc_gsc_root = proc_mkdir("gsc", 0);
-- create_proc_info_entry("dino", 0, proc_gsc_root, pcxl_proc_info);
-- return 0;
-+ memset(pcxl_res_map, 0, pcxl_res_size);
-+ proc_gsc_root = proc_mkdir("gsc", 0);
-+ if (!proc_gsc_root)
-+ printk(KERN_WARNING
-+ "pcxl_dma_init: Unable to create gsc /proc dir entry\n");
-+ else {
-+ struct proc_dir_entry* ent;
-+ ent = create_proc_info_entry("pcxl_dma", 0,
-+ proc_gsc_root, pcxl_proc_info);
-+ if (!ent)
-+ printk(KERN_WARNING
-+ "pci-dma.c: Unable to create pcxl_dma /proc entry.\n");
-+ }
-+ return 0;
- }
+@@ -44,7 +51,1225 @@
- __initcall(pcxl_dma_init);
-@@ -545,16 +555,16 @@
+ #include <scsi/scsi_host.h>
- static int pcxl_proc_info(char *buf, char **start, off_t offset, int len)
- {
-+#if 0
- u_long i = 0;
- unsigned long *res_ptr = (u_long *)pcxl_res_map;
-- unsigned long total_pages = pcxl_res_size << 3; /* 8 bits per byte */
-+#endif
-+ unsigned long total_pages = pcxl_res_size << 3; /* 8 bits per byte */
-
-- sprintf(buf, "\nDMA Mapping Area size : %d bytes (%d pages)\n",
-- PCXL_DMA_MAP_SIZE,
-- (pcxl_res_size << 3) ); /* 1 bit per page */
-+ sprintf(buf, "\nDMA Mapping Area size : %d bytes (%ld pages)\n",
-+ PCXL_DMA_MAP_SIZE, total_pages);
-
-- sprintf(buf, "%sResource bitmap : %d bytes (%d pages)\n",
-- buf, pcxl_res_size, pcxl_res_size << 3); /* 8 bits per byte */
-+ sprintf(buf, "%sResource bitmap : %d bytes\n", buf, pcxl_res_size);
-
- strcat(buf, " total: free: used: % used:\n");
- sprintf(buf, "%sblocks %8d %8ld %8ld %8ld%%\n", buf, pcxl_res_size,
-@@ -564,7 +574,8 @@
- sprintf(buf, "%spages %8ld %8ld %8ld %8ld%%\n", buf, total_pages,
- total_pages - pcxl_used_pages, pcxl_used_pages,
- (pcxl_used_pages * 100 / total_pages));
--
+-#include "sym53c8xx_defs.h"
++#include <linux/config.h>
+
-+#if 0
- strcat(buf, "\nResource bitmap:");
-
- for(; i < (pcxl_res_size / sizeof(u_long)); ++i, ++res_ptr) {
-@@ -572,6 +583,7 @@
- strcat(buf,"\n ");
- sprintf(buf, "%s %08lx", buf, *res_ptr);
- }
++/*
++** If you want a driver as small as possible, donnot define the
++** following options.
++*/
++#define SCSI_NCR_BOOT_COMMAND_LINE_SUPPORT
++#define SCSI_NCR_DEBUG_INFO_SUPPORT
++
++/*
++** To disable integrity checking, do not define the
++** following option.
++*/
++#ifdef CONFIG_SCSI_NCR53C8XX_INTEGRITY_CHECK
++# define SCSI_NCR_ENABLE_INTEGRITY_CHECK
+#endif
- strcat(buf, "\n");
- return strlen(buf);
- }
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/arch/parisc/kernel/pci.c CVS2_6_14_PA0/arch/parisc/kernel/pci.c
---- LINUS_2_6_14/arch/parisc/kernel/pci.c 2005-10-27 21:30:34.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/kernel/pci.c 2005-08-10 10:33:32.000000000 -0600
-@@ -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_14/arch/parisc/kernel/pdc_cons.c CVS2_6_14_PA0/arch/parisc/kernel/pdc_cons.c
---- LINUS_2_6_14/arch/parisc/kernel/pdc_cons.c 2005-10-27 21:30:34.000000000 -0600
-+++ CVS2_6_14_PA0/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_14/arch/parisc/kernel/perf.c CVS2_6_14_PA0/arch/parisc/kernel/perf.c
---- LINUS_2_6_14/arch/parisc/kernel/perf.c 2005-10-27 21:30:34.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/kernel/perf.c 2005-09-11 19:23:52.000000000 -0600
-@@ -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.start, 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_14/arch/parisc/kernel/process.c CVS2_6_14_PA0/arch/parisc/kernel/process.c
---- LINUS_2_6_14/arch/parisc/kernel/process.c 2005-10-27 21:30:34.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/kernel/process.c 2005-09-14 06:54:53.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>
-@@ -245,7 +245,17 @@
- sys_clone(unsigned long clone_flags, unsigned long usp,
- struct pt_regs *regs)
- {
-- int __user *user_tid = (int __user *)regs->gr[26];
-+ /* Arugments from userspace are:
-+ r26 = Clone flags.
-+ r25 = Child stack.
-+ r24 = parent_tidptr.
-+ r23 = Is the TLS storage descriptor
-+ r22 = child_tidptr
-+
-+ However, these last 3 args are only examined
-+ if the proper flags are set. */
-+ int __user *child_tidptr;
-+ int __user *parent_tidptr;
-
- /* usp must be word aligned. This also prevents users from
- * passing in the value 1 (which is the signal for a special
-@@ -253,10 +263,20 @@
- usp = ALIGN(usp, 4);
-
- /* A zero value for usp means use the current stack */
-- if(usp == 0)
-- usp = regs->gr[30];
-+ if (usp == 0)
-+ usp = regs->gr[30];
-
-- return do_fork(clone_flags, usp, regs, 0, user_tid, NULL);
-+ if (clone_flags & CLONE_PARENT_SETTID)
-+ parent_tidptr = (int __user *)regs->gr[24];
-+ else
-+ parent_tidptr = NULL;
-+
-+ if (clone_flags & (CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID))
-+ child_tidptr = (int __user *)regs->gr[22];
-+ else
-+ child_tidptr = NULL;
++/* ---------------------------------------------------------------------
++** Take into account kernel configured parameters.
++** Most of these options can be overridden at startup by a command line.
++** ---------------------------------------------------------------------
++*/
+
-+ return do_fork(clone_flags, usp, regs, 0, parent_tidptr, child_tidptr);
- }
-
- int
-@@ -332,6 +352,10 @@
- } else {
- cregs->kpc = (unsigned long) &child_return;
- }
-+ /* Setup thread TLS area from the 4th parameter in clone */
-+ if (clone_flags & CLONE_SETTLS)
-+ cregs->cr27 = pregs->gr[23];
-+
- }
-
- return 0;
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/arch/parisc/kernel/processor.c CVS2_6_14_PA0/arch/parisc/kernel/processor.c
---- LINUS_2_6_14/arch/parisc/kernel/processor.c 2005-10-27 21:30:34.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/kernel/processor.c 2005-09-10 12:19:37.000000000 -0600
-@@ -92,7 +92,7 @@
- * May get overwritten by PAT code.
- */
- cpuid = boot_cpu_data.cpu_count;
-- txn_addr = dev->hpa; /* for legacy PDC */
-+ txn_addr = dev->hpa.start; /* for legacy PDC */
-
- #ifdef __LP64__
- if (is_pdc_pat()) {
-@@ -122,7 +122,7 @@
- * boot time (ie shutdown a CPU from an OS perspective).
- */
- /* get the cpu number */
-- status = pdc_pat_cpu_get_number(&cpu_info, dev->hpa);
-+ status = pdc_pat_cpu_get_number(&cpu_info, dev->hpa.start);
-
- BUG_ON(PDC_OK != status);
-
-@@ -130,7 +130,7 @@
- printk(KERN_WARNING "IGNORING CPU at 0x%x,"
- " cpu_slot_id > NR_CPUS"
- " (%ld > %d)\n",
-- dev->hpa, cpu_info.cpu_num, NR_CPUS);
-+ dev->hpa.start, cpu_info.cpu_num, NR_CPUS);
- /* Ignore CPU since it will only crash */
- boot_cpu_data.cpu_count--;
- return 1;
-@@ -149,7 +149,7 @@
-
- p->loops_per_jiffy = loops_per_jiffy;
- p->dev = dev; /* Save IODC data in case we need it */
-- p->hpa = dev->hpa; /* save CPU hpa */
-+ p->hpa = dev->hpa.start; /* save CPU hpa */
- p->cpuid = cpuid; /* save CPU id */
- p->txn_addr = txn_addr; /* save CPU IRQ address */
- #ifdef CONFIG_SMP
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/arch/parisc/kernel/real2.S CVS2_6_14_PA0/arch/parisc/kernel/real2.S
---- LINUS_2_6_14/arch/parisc/kernel/real2.S 2005-10-27 21:30:34.000000000 -0600
-+++ CVS2_6_14_PA0/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>
++/*
++ * For Ultra2 and Ultra3 SCSI support option, use special features.
++ *
++ * Value (default) means:
++ * bit 0 : all features enabled, except:
++ * bit 1 : PCI Write And Invalidate.
++ * bit 2 : Data Phase Mismatch handling from SCRIPTS.
++ *
++ * Use boot options ncr53c8xx=specf:1 if you want all chip features to be
++ * enabled by the driver.
++ */
++#define SCSI_NCR_SETUP_SPECIAL_FEATURES (3)
+
- #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_14/arch/parisc/kernel/signal.c CVS2_6_14_PA0/arch/parisc/kernel/signal.c
---- LINUS_2_6_14/arch/parisc/kernel/signal.c 2005-10-27 21:30:34.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/kernel/signal.c 2005-10-09 09:54:23.000000000 -0600
-@@ -296,7 +296,6 @@
- struct rt_sigframe __user *frame;
- unsigned long rp, usp;
- unsigned long haddr, sigframe_size;
-- struct siginfo si;
- int err = 0;
- #ifdef __LP64__
- compat_int_t compat_val;
-@@ -490,15 +489,7 @@
-
- give_sigsegv:
- DBG(1,"setup_rt_frame: sending SIGSEGV\n");
-- if (sig == SIGSEGV)
-- ka->sa.sa_handler = SIG_DFL;
-- si.si_signo = SIGSEGV;
-- si.si_errno = 0;
-- si.si_code = SI_KERNEL;
-- si.si_pid = current->pid;
-- si.si_uid = current->uid;
-- si.si_addr = frame;
-- force_sig_info(SIGSEGV, &si, current);
-+ force_sigsegv(sig, current);
- return 0;
- }
-
-@@ -633,10 +624,14 @@
- put_user(0xe0008200, &usp[3]);
- put_user(0x34140000, &usp[4]);
-
-- /* Stack is 64-byte aligned, and we only
-- * need to flush 1 cache line */
-- asm("fdc 0(%%sr3, %0)\n"
-- "fic 0(%%sr3, %0)\n"
-+ /* Stack is 64-byte aligned, and we only need
-+ * to flush 1 cache line.
-+ * Flushing one cacheline is cheap.
-+ * "sync" on bigger (> 4 way) boxes is not.
-+ */
-+ asm("fdc %%r0(%%sr3, %0)\n"
-+ "sync\n"
-+ "fic %%r0(%%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_14/arch/parisc/kernel/smp.c CVS2_6_14_PA0/arch/parisc/kernel/smp.c
---- LINUS_2_6_14/arch/parisc/kernel/smp.c 2005-10-27 21:30:34.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/kernel/smp.c 2005-10-18 12:05:46.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>
-@@ -181,12 +181,19 @@
- while (ops) {
- unsigned long which = ffz(~ops);
-
-+ ops &= ~(1 << which);
-+
- switch (which) {
-+ case IPI_NOP:
-+#if (kDEBUG>=100)
-+ printk(KERN_DEBUG "CPU%d IPI_NOP\n",this_cpu);
-+#endif /* kDEBUG */
-+ break;
-+
- case IPI_RESCHEDULE:
- #if (kDEBUG>=100)
- printk(KERN_DEBUG "CPU%d IPI_RESCHEDULE\n",this_cpu);
- #endif /* kDEBUG */
-- ops &= ~(1 << IPI_RESCHEDULE);
- /*
- * Reschedule callback. Everything to be
- * done is done by the interrupt return path.
-@@ -197,7 +204,6 @@
- #if (kDEBUG>=100)
- printk(KERN_DEBUG "CPU%d IPI_CALL_FUNC\n",this_cpu);
- #endif /* kDEBUG */
-- ops &= ~(1 << IPI_CALL_FUNC);
- {
- volatile struct smp_call_struct *data;
- void (*func)(void *info);
-@@ -231,7 +237,6 @@
- #if (kDEBUG>=100)
- printk(KERN_DEBUG "CPU%d IPI_CPU_START\n",this_cpu);
- #endif /* kDEBUG */
-- ops &= ~(1 << IPI_CPU_START);
- #ifdef ENTRY_SYS_CPUS
- p->state = STATE_RUNNING;
- #endif
-@@ -241,7 +246,6 @@
- #if (kDEBUG>=100)
- printk(KERN_DEBUG "CPU%d IPI_CPU_STOP\n",this_cpu);
- #endif /* kDEBUG */
-- ops &= ~(1 << IPI_CPU_STOP);
- #ifdef ENTRY_SYS_CPUS
- #else
- halt_processor();
-@@ -252,13 +256,11 @@
- #if (kDEBUG>=100)
- printk(KERN_DEBUG "CPU%d is alive!\n",this_cpu);
- #endif /* kDEBUG */
-- ops &= ~(1 << IPI_CPU_TEST);
- break;
-
- default:
- printk(KERN_CRIT "Unknown IPI num on CPU%d: %lu\n",
- this_cpu, which);
-- ops &= ~(1 << which);
- return IRQ_NONE;
- } /* Switch */
- } /* while (ops) */
-@@ -312,6 +314,12 @@
- void
- smp_send_reschedule(int cpu) { send_IPI_single(cpu, IPI_RESCHEDULE); }
-
-+void
-+smp_send_all_nop(void)
-+{
-+ send_IPI_allbutself(IPI_NOP);
-+}
++#define SCSI_NCR_MAX_SYNC (80)
+
-
- /**
- * Run a function on all other CPUs.
-@@ -338,6 +346,10 @@
-
- /* Can deadlock when called with interrupts disabled */
- WARN_ON(irqs_disabled());
++/*
++ * Allow tags from 2 to 256, default 8
++ */
++#ifdef CONFIG_SCSI_NCR53C8XX_MAX_TAGS
++#if CONFIG_SCSI_NCR53C8XX_MAX_TAGS < 2
++#define SCSI_NCR_MAX_TAGS (2)
++#elif CONFIG_SCSI_NCR53C8XX_MAX_TAGS > 256
++#define SCSI_NCR_MAX_TAGS (256)
++#else
++#define SCSI_NCR_MAX_TAGS CONFIG_SCSI_NCR53C8XX_MAX_TAGS
++#endif
++#else
++#define SCSI_NCR_MAX_TAGS (8)
++#endif
+
-+ /* can also deadlock if IPIs are disabled */
-+ WARN_ON((get_eiem() & (1UL<<(CPU_IRQ_MAX - IPI_IRQ))) == 0);
++/*
++ * Allow tagged command queuing support if configured with default number
++ * of tags set to max (see above).
++ */
++#ifdef CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS
++#define SCSI_NCR_SETUP_DEFAULT_TAGS CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS
++#elif defined CONFIG_SCSI_NCR53C8XX_TAGGED_QUEUE
++#define SCSI_NCR_SETUP_DEFAULT_TAGS SCSI_NCR_MAX_TAGS
++#else
++#define SCSI_NCR_SETUP_DEFAULT_TAGS (0)
++#endif
+
-
- data.func = func;
- data.info = info;
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/arch/parisc/kernel/syscall.S CVS2_6_14_PA0/arch/parisc/kernel/syscall.S
---- LINUS_2_6_14/arch/parisc/kernel/syscall.S 2005-10-27 21:30:34.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/kernel/syscall.S 2005-09-14 14:58:36.000000000 -0600
-@@ -6,6 +6,7 @@
- * thanks to Philipp Rumpf, Mike Shaver and various others
- * sorry about the wall, puffin..
- */
-+#include <linux/config.h> /* for CONFIG_SMP */
-
- #include <asm/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 */
-@@ -165,7 +164,7 @@
- #endif
- STREG %r2, TASK_PT_GR30(%r1) /* ... and save it */
-
-- STREG %r20, TASK_PT_GR20(%r1)
-+ STREG %r20, TASK_PT_GR20(%r1) /* Syscall number */
- STREG %r21, TASK_PT_GR21(%r1)
- STREG %r22, TASK_PT_GR22(%r1)
- STREG %r23, TASK_PT_GR23(%r1) /* 4th argument */
-@@ -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_14/arch/parisc/kernel/syscall_table.S CVS2_6_14_PA0/arch/parisc/kernel/syscall_table.S
---- LINUS_2_6_14/arch/parisc/kernel/syscall_table.S 2005-10-27 21:30:34.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/kernel/syscall_table.S 2005-09-22 14:03:13.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,11 @@
- 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)
-+ ENTRY_SAME(ioprio_set)
-+ ENTRY_SAME(ioprio_get)
- /* Nothing yet */
-
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/arch/parisc/kernel/time.c CVS2_6_14_PA0/arch/parisc/kernel/time.c
---- LINUS_2_6_14/arch/parisc/kernel/time.c 2005-10-27 21:30:34.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/kernel/time.c 2005-09-14 06:54:53.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;
- }
-
++/*
++ * Immediate arbitration
++ */
++#if defined(CONFIG_SCSI_NCR53C8XX_IARB)
++#define SCSI_NCR_IARB_SUPPORT
++#endif
+
-+unsigned long profile_pc(struct pt_regs *regs)
-+{
-+ unsigned long pc = instruction_pointer(regs);
++/*
++ * Sync transfer frequency at startup.
++ * Allow from 5Mhz to 80Mhz default 20 Mhz.
++ */
++#ifndef CONFIG_SCSI_NCR53C8XX_SYNC
++#define CONFIG_SCSI_NCR53C8XX_SYNC (20)
++#elif CONFIG_SCSI_NCR53C8XX_SYNC > SCSI_NCR_MAX_SYNC
++#undef CONFIG_SCSI_NCR53C8XX_SYNC
++#define CONFIG_SCSI_NCR53C8XX_SYNC SCSI_NCR_MAX_SYNC
++#endif
++
++#if CONFIG_SCSI_NCR53C8XX_SYNC == 0
++#define SCSI_NCR_SETUP_DEFAULT_SYNC (255)
++#elif CONFIG_SCSI_NCR53C8XX_SYNC <= 5
++#define SCSI_NCR_SETUP_DEFAULT_SYNC (50)
++#elif CONFIG_SCSI_NCR53C8XX_SYNC <= 20
++#define SCSI_NCR_SETUP_DEFAULT_SYNC (250/(CONFIG_SCSI_NCR53C8XX_SYNC))
++#elif CONFIG_SCSI_NCR53C8XX_SYNC <= 33
++#define SCSI_NCR_SETUP_DEFAULT_SYNC (11)
++#elif CONFIG_SCSI_NCR53C8XX_SYNC <= 40
++#define SCSI_NCR_SETUP_DEFAULT_SYNC (10)
++#else
++#define SCSI_NCR_SETUP_DEFAULT_SYNC (9)
++#endif
+
-+ if (regs->gr[0] & PSW_N)
-+ pc -= 4;
++/*
++ * Disallow disconnections at boot-up
++ */
++#ifdef CONFIG_SCSI_NCR53C8XX_NO_DISCONNECT
++#define SCSI_NCR_SETUP_DISCONNECTION (0)
++#else
++#define SCSI_NCR_SETUP_DISCONNECTION (1)
++#endif
+
-+#ifdef CONFIG_SMP
-+ if (in_lock_functions(pc))
-+ pc = regs->gr[2];
++/*
++ * Force synchronous negotiation for all targets
++ */
++#ifdef CONFIG_SCSI_NCR53C8XX_FORCE_SYNC_NEGO
++#define SCSI_NCR_SETUP_FORCE_SYNC_NEGO (1)
++#else
++#define SCSI_NCR_SETUP_FORCE_SYNC_NEGO (0)
+#endif
+
-+ return pc;
-+}
-+EXPORT_SYMBOL(profile_pc);
++/*
++ * Disable master parity checking (flawed hardwares need that)
++ */
++#ifdef CONFIG_SCSI_NCR53C8XX_DISABLE_MPARITY_CHECK
++#define SCSI_NCR_SETUP_MASTER_PARITY (0)
++#else
++#define SCSI_NCR_SETUP_MASTER_PARITY (1)
++#endif
+
++/*
++ * Disable scsi parity checking (flawed devices may need that)
++ */
++#ifdef CONFIG_SCSI_NCR53C8XX_DISABLE_PARITY_CHECK
++#define SCSI_NCR_SETUP_SCSI_PARITY (0)
++#else
++#define SCSI_NCR_SETUP_SCSI_PARITY (1)
++#endif
+
- /*** 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_14/arch/parisc/kernel/traps.c CVS2_6_14_PA0/arch/parisc/kernel/traps.c
---- LINUS_2_6_14/arch/parisc/kernel/traps.c 2005-10-27 21:30:34.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/kernel/traps.c 2005-07-23 10:31:43.000000000 -0600
-@@ -74,7 +74,10 @@
- char *level;
- unsigned long cr30;
- unsigned long cr31;
--
-+ /* carlos says that gcc understands better memory in a struct,
-+ * and it makes our life easier with fpregs -- T-Bone */
-+ struct { u32 sw[2]; } s;
-+
- level = user_mode(regs) ? KERN_DEBUG : KERN_CRIT;
-
- printk("%s\n", level); /* don't want to have that pretty register dump messed up */
-@@ -103,11 +106,33 @@
- printk("%s\n", buf);
- }
-
--#if RIDICULOUSLY_VERBOSE
-- for (i = 0; i < 32; i += 2)
-- printk("%sFR%02d : %016lx FR%2d : %016lx", level, i,
-- regs->fr[i], i+1, regs->fr[i+1]);
--#endif
-+ /* FR are 64bit everywhere. Need to use asm to get the content
-+ * of fpsr/fper1, and we assume that we won't have a FP Identify
-+ * in our way, otherwise we're screwed.
-+ * The fldd is used to restore the T-bit if there was one, as the
-+ * store clears it anyway.
-+ * BTW, PA2.0 book says "thou shall not use fstw on FPSR/FPERs". */
-+ __asm__ (
-+ "fstd %%fr0,0(%1) \n\t"
-+ "fldd 0(%1),%%fr0 \n\t"
-+ : "=m" (s) : "r" (&s) : "%r0"
-+ );
-+
-+ printk("%s\n", level);
-+ printk("%s VZOUICununcqcqcqcqcqcrmunTDVZOUI\n", level);
-+ printbinary(buf, s.sw[0], 32);
-+ printk("%sFPSR: %s\n", level, buf);
-+ printk("%sFPER1: %08x\n", level, s.sw[1]);
-+
-+ /* here we'll print fr0 again, tho it'll be meaningless */
-+ for (i = 0; i < 32; i += 4) {
-+ int j;
-+ p = buf;
-+ p += sprintf(p, "%sfr%02d-%02d ", level, i, i + 3);
-+ for (j = 0; j < 4; j++)
-+ p += sprintf(p, " %016llx", (i+j) == 0 ? 0 : regs->fr[i+j]);
-+ printk("%s\n", buf);
-+ }
-
- cr30 = mfctl(30);
- cr31 = mfctl(31);
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/arch/parisc/kernel/unaligned.c CVS2_6_14_PA0/arch/parisc/kernel/unaligned.c
---- LINUS_2_6_14/arch/parisc/kernel/unaligned.c 2005-10-27 21:30:34.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/kernel/unaligned.c 2005-09-14 15:00:31.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;
-+ }
++/*
++ * Settle time after reset at boot-up
++ */
++#define SCSI_NCR_SETUP_SETTLE_TIME (2)
+
-+ if (unaligned_count > 5 && jiffies - last_time > 5*HZ) {
- unaligned_count = 0;
- last_time = jiffies;
- }
-- if (++unaligned_count < 5)
-- {
++/*
++** Bridge quirks work-around option defaulted to 1.
++*/
++#ifndef SCSI_NCR_PCIQ_WORK_AROUND_OPT
++#define SCSI_NCR_PCIQ_WORK_AROUND_OPT 1
++#endif
+
-+ 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
- }
++/*
++** Work-around common bridge misbehaviour.
++**
++** - Do not flush posted writes in the opposite
++** direction on read.
++** - May reorder DMA writes to memory.
++**
++** This option should not affect performances
++** significantly, so it is the default.
++*/
++#if SCSI_NCR_PCIQ_WORK_AROUND_OPT == 1
++#define SCSI_NCR_PCIQ_MAY_NOT_FLUSH_PW_UPSTREAM
++#define SCSI_NCR_PCIQ_MAY_REORDER_WRITES
++#define SCSI_NCR_PCIQ_MAY_MISS_COMPLETIONS
+
- if (!unaligned_enabled)
- goto force_sigbus;
- }
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/arch/parisc/lib/fixup.S CVS2_6_14_PA0/arch/parisc/lib/fixup.S
---- LINUS_2_6_14/arch/parisc/lib/fixup.S 2005-10-27 21:30:34.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/lib/fixup.S 2005-09-25 19:23:05.000000000 -0600
-@@ -35,7 +35,7 @@
- extrd,u \t2,63,32,\t2
- #endif
- /* t2 = &__per_cpu_offset[smp_processor_id()]; */
-- LDREG,s \t2(\t1),\t2
-+ LDREGX \t2(\t1),\t2
- addil LT%per_cpu__exception_data,%r27
- LDREG RT%per_cpu__exception_data(%r1),\t1
- /* t1 = &__get_cpu_var(exception_data) */
-@@ -53,6 +53,8 @@
- .endm
- #endif
-
-+ .level LEVEL
++/*
++** Same as option 1, but also deal with
++** misconfigured interrupts.
++**
++** - Edge triggerred instead of level sensitive.
++** - No interrupt line connected.
++** - IRQ number misconfigured.
++**
++** If no interrupt is delivered, the driver will
++** catch the interrupt conditions 10 times per
++** second. No need to say that this option is
++** not recommended.
++*/
++#elif SCSI_NCR_PCIQ_WORK_AROUND_OPT == 2
++#define SCSI_NCR_PCIQ_MAY_NOT_FLUSH_PW_UPSTREAM
++#define SCSI_NCR_PCIQ_MAY_REORDER_WRITES
++#define SCSI_NCR_PCIQ_MAY_MISS_COMPLETIONS
++#define SCSI_NCR_PCIQ_BROKEN_INTR
+
- .text
- .section .fixup, "ax"
-
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/arch/parisc/lib/memcpy.c CVS2_6_14_PA0/arch/parisc/lib/memcpy.c
---- LINUS_2_6_14/arch/parisc/lib/memcpy.c 2005-10-27 21:30:34.000000000 -0600
-+++ CVS2_6_14_PA0/arch/parisc/lib/memcpy.c 2005-08-02 20:47:39.000000000 -0600
-@@ -339,6 +339,7 @@
- pds = (double *)pcs;
- pdd = (double *)pcd;
-
-+#if 0
- /* Copy 8 doubles at a time */
- while (len >= 8*sizeof(double)) {
- register double r1, r2, r3, r4, r5, r6, r7, r8;
-@@ -366,6 +367,7 @@
- fstdma(d_space, r8, pdd, pmc_store_exc);
- len -= 8*sizeof(double);
- }
++/*
++** Some bridge designers decided to flush
++** everything prior to deliver the interrupt.
++** This option tries to deal with such a
++** behaviour.
++*/
++#elif SCSI_NCR_PCIQ_WORK_AROUND_OPT == 3
++#define SCSI_NCR_PCIQ_SYNC_ON_INTR
+#endif
-
- pws = (unsigned int *)pds;
- pwd = (unsigned int *)pdd;
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/ide/Kconfig CVS2_6_14_PA0/drivers/ide/Kconfig
---- LINUS_2_6_14/drivers/ide/Kconfig 2005-10-27 21:30:36.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/ide/Kconfig 2005-08-28 20:41:00.000000000 -0600
-@@ -616,7 +616,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_14/drivers/ide/ide-lib.c CVS2_6_14_PA0/drivers/ide/ide-lib.c
---- LINUS_2_6_14/drivers/ide/ide-lib.c 2005-10-27 21:30:36.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/ide/ide-lib.c 2005-10-16 17:22:26.000000000 -0600
-@@ -410,10 +410,10 @@
- {
- u64 addr = BLK_BOUNCE_HIGH; /* dma64_addr_t */
-
-- if (on && drive->media == ide_disk) {
-- if (!PCI_DMA_BUS_IS_PHYS)
-- addr = BLK_BOUNCE_ANY;
-- else if (HWIF(drive)->pci_dev)
-+ if (!PCI_DMA_BUS_IS_PHYS) {
-+ addr = BLK_BOUNCE_ANY;
-+ } else if (on && drive->media == ide_disk) {
-+ if (HWIF(drive)->pci_dev)
- addr = HWIF(drive)->pci_dev->dma_mask;
- }
-
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/input/keyboard/hil_kbd.c CVS2_6_14_PA0/drivers/input/keyboard/hil_kbd.c
---- LINUS_2_6_14/drivers/input/keyboard/hil_kbd.c 2005-10-27 21:30:37.000000000 -0600
-+++ CVS2_6_14_PA0/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_14/drivers/input/keyboard/hilkbd.c CVS2_6_14_PA0/drivers/input/keyboard/hilkbd.c
---- LINUS_2_6_14/drivers/input/keyboard/hilkbd.c 2005-10-27 21:30:37.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/input/keyboard/hilkbd.c 2005-09-14 07:17:49.000000000 -0600
-@@ -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>
-
-@@ -278,11 +278,11 @@
- hil_init_chip(struct parisc_device *dev)
- {
- if (!dev->irq) {
-- printk(KERN_WARNING "HIL: IRQ not found for HIL bus at 0x%08lx\n", dev->hpa);
-+ printk(KERN_WARNING "HIL: IRQ not found for HIL bus at 0x%08lx\n", dev->hpa.start);
- return -ENODEV;
- }
-
-- hil_base = dev->hpa;
-+ hil_base = dev->hpa.start;
- hil_irq = dev->irq;
- hil_dev.dev_id = dev;
-
-@@ -299,7 +299,7 @@
- MODULE_DEVICE_TABLE(parisc, hil_tbl);
-
- static struct parisc_driver hil_driver = {
-- .name = "HIL",
-+ .name = "hil",
- .id_table = hil_tbl,
- .probe = hil_init_chip,
- };
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/input/mouse/hil_ptr.c CVS2_6_14_PA0/drivers/input/mouse/hil_ptr.c
---- LINUS_2_6_14/drivers/input/mouse/hil_ptr.c 2005-10-27 21:30:37.000000000 -0600
-+++ CVS2_6_14_PA0/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_14/drivers/input/serio/gscps2.c CVS2_6_14_PA0/drivers/input/serio/gscps2.c
---- LINUS_2_6_14/drivers/input/serio/gscps2.c 2005-10-27 21:30:38.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/input/serio/gscps2.c 2005-09-14 07:17:52.000000000 -0600
-@@ -211,9 +211,6 @@
- writeb(0xff, addr+GSC_RESET);
- gscps2_flush(ps2port);
- spin_unlock_irqrestore(&ps2port->lock, flags);
--
-- /* enable it */
-- gscps2_enable(ps2port, ENABLE);
- }
-
- static LIST_HEAD(ps2port_list);
-@@ -307,6 +304,9 @@
-
- gscps2_reset(ps2port);
-
-+ /* enable it */
-+ gscps2_enable(ps2port, ENABLE);
+
- gscps2_interrupt(0, NULL, NULL);
-
- return 0;
-@@ -331,7 +331,7 @@
- {
- struct gscps2port *ps2port;
- struct serio *serio;
-- unsigned long hpa = dev->hpa;
-+ unsigned long hpa = dev->hpa.start;
- int ret;
-
- if (!dev->irq)
-@@ -370,8 +370,6 @@
- serio->port_data = ps2port;
- serio->dev.parent = &dev->dev;
-
-- list_add_tail(&ps2port->node, &ps2port_list);
--
- ret = -EBUSY;
- if (request_irq(dev->irq, gscps2_interrupt, SA_SHIRQ, ps2port->port->name, ps2port))
- goto fail_miserably;
-@@ -396,15 +394,16 @@
-
- serio_register_port(ps2port->port);
-
-+ list_add_tail(&ps2port->node, &ps2port_list);
++/*
++** Other parameters not configurable with "make config"
++** Avoid to change these constants, unless you know what you are doing.
++*/
++
++#define SCSI_NCR_ALWAYS_SIMPLE_TAG
++#define SCSI_NCR_MAX_SCATTER (127)
++#define SCSI_NCR_MAX_TARGET (16)
+
- return 0;
-
- fail:
- free_irq(dev->irq, ps2port);
-
- fail_miserably:
-- list_del(&ps2port->node);
- iounmap(ps2port->addr);
-- release_mem_region(dev->hpa, GSC_STATUS + 4);
-+ release_mem_region(dev->hpa.start, GSC_STATUS + 4);
-
- fail_nomem:
- kfree(ps2port);
-@@ -444,7 +443,7 @@
- };
-
- static struct parisc_driver parisc_ps2_driver = {
-- .name = "GSC PS2",
-+ .name = "gsc_ps2",
- .id_table = gscps2_device_tbl,
- .probe = gscps2_probe,
- .remove = gscps2_remove,
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/input/serio/hil_mlc.c CVS2_6_14_PA0/drivers/input/serio/hil_mlc.c
---- LINUS_2_6_14/drivers/input/serio/hil_mlc.c 2005-10-27 21:30:38.000000000 -0600
-+++ CVS2_6_14_PA0/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,
-+};
++/*
++** Compute some desirable value for CAN_QUEUE
++** and CMD_PER_LUN.
++** The driver will use lower values if these
++** ones appear to be too large.
++*/
++#define SCSI_NCR_CAN_QUEUE (8*SCSI_NCR_MAX_TAGS + 2*SCSI_NCR_MAX_TARGET)
++#define SCSI_NCR_CMD_PER_LUN (SCSI_NCR_MAX_TAGS)
+
- 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_14/drivers/input/serio/hp_sdc.c CVS2_6_14_PA0/drivers/input/serio/hp_sdc.c
---- LINUS_2_6_14/drivers/input/serio/hp_sdc.c 2005-10-27 21:30:38.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/input/serio/hp_sdc.c 2005-09-14 07:17:52.000000000 -0600
-@@ -764,7 +764,7 @@
- static int __init hp_sdc_init_hppa(struct parisc_device *d);
-
- static struct parisc_driver hp_sdc_driver = {
-- .name = "HP SDC",
-+ .name = "hp_sdc",
- .id_table = hp_sdc_tbl,
- .probe = hp_sdc_init_hppa,
- };
-@@ -875,9 +875,9 @@
- hp_sdc.dev = d;
- hp_sdc.irq = d->irq;
- hp_sdc.nmi = d->aux_irq;
-- hp_sdc.base_io = d->hpa;
-- hp_sdc.data_io = d->hpa + 0x800;
-- hp_sdc.status_io = d->hpa + 0x801;
-+ hp_sdc.base_io = d->hpa.start;
-+ hp_sdc.data_io = d->hpa.start + 0x800;
-+ hp_sdc.status_io = d->hpa.start + 0x801;
-
- return hp_sdc_init();
- }
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/isdn/hisax/Kconfig CVS2_6_14_PA0/drivers/isdn/hisax/Kconfig
---- LINUS_2_6_14/drivers/isdn/hisax/Kconfig 2005-10-27 21:30:38.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/isdn/hisax/Kconfig 2005-08-28 20:41:03.000000000 -0600
-@@ -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.
-@@ -238,7 +238,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.
-@@ -249,7 +249,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.
-@@ -317,7 +317,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.
-
-@@ -344,14 +344,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_14/drivers/isdn/pcbit/Kconfig CVS2_6_14_PA0/drivers/isdn/pcbit/Kconfig
---- LINUS_2_6_14/drivers/isdn/pcbit/Kconfig 2005-10-27 21:30:38.000000000 -0600
-+++ CVS2_6_14_PA0/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_14/drivers/net/lasi_82596.c CVS2_6_14_PA0/drivers/net/lasi_82596.c
---- LINUS_2_6_14/drivers/net/lasi_82596.c 2005-10-27 21:30:39.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/net/lasi_82596.c 2005-09-10 12:21:47.000000000 -0600
-@@ -415,6 +415,10 @@
- static int ticks_limit = 100;
- static int max_cmd_backlog = TX_RING_SIZE-1;
-
-+#ifdef CONFIG_NET_POLL_CONTROLLER
-+static void i596_poll_controller(struct net_device *dev);
++#define SCSI_NCR_SG_TABLESIZE (SCSI_NCR_MAX_SCATTER)
++#define SCSI_NCR_TIMER_INTERVAL (HZ)
++
++#if 1 /* defined CONFIG_SCSI_MULTI_LUN */
++#define SCSI_NCR_MAX_LUN (16)
++#else
++#define SCSI_NCR_MAX_LUN (1)
+#endif
+
-
- static inline void CA(struct net_device *dev)
- {
-@@ -636,11 +640,11 @@
-
- disable_irq(dev->irq); /* disable IRQs from LAN */
- DEB(DEB_INIT,
-- printk("RESET 82596 port: %p (with IRQ %d disabled)\n",
-- (void*)(dev->base_addr + PA_I82596_RESET),
-+ printk("RESET 82596 port: %lx (with IRQ %d disabled)\n",
-+ (dev->base_addr + PA_I82596_RESET),
- dev->irq));
-
-- gsc_writel(0, (void*)(dev->base_addr + PA_I82596_RESET)); /* Hard Reset */
-+ gsc_writel(0, (dev->base_addr + PA_I82596_RESET)); /* Hard Reset */
- udelay(100); /* Wait 100us - seems to help */
-
- /* change the scp address */
-@@ -1209,6 +1213,9 @@
- dev->set_multicast_list = set_multicast_list;
- dev->tx_timeout = i596_tx_timeout;
- dev->watchdog_timeo = TX_TIMEOUT;
-+#ifdef CONFIG_NET_POLL_CONTROLLER
-+ dev->poll_controller = i596_poll_controller;
++/*
++ * IO functions definition for big/little endian CPU support.
++ * For now, the NCR is only supported in little endian addressing mode,
++ */
++
++#ifdef __BIG_ENDIAN
++
++#define inw_l2b inw
++#define inl_l2b inl
++#define outw_b2l outw
++#define outl_b2l outl
++
++#define readb_raw readb
++#define writeb_raw writeb
++
++#if defined(SCSI_NCR_BIG_ENDIAN)
++#define readw_l2b __raw_readw
++#define readl_l2b __raw_readl
++#define writew_b2l __raw_writew
++#define writel_b2l __raw_writel
++#define readw_raw __raw_readw
++#define readl_raw __raw_readl
++#define writew_raw __raw_writew
++#define writel_raw __raw_writel
++#else /* Other big-endian */
++#define readw_l2b readw
++#define readl_l2b readl
++#define writew_b2l writew
++#define writel_b2l writel
++#define readw_raw readw
++#define readl_raw readl
++#define writew_raw writew
++#define writel_raw writel
++#endif
++
++#else /* little endian */
++
++#define inw_raw inw
++#define inl_raw inl
++#define outw_raw outw
++#define outl_raw outl
++
++#define readb_raw readb
++#define readw_raw readw
++#define readl_raw readl
++#define writeb_raw writeb
++#define writew_raw writew
++#define writel_raw writel
++
++#endif
++
++#if !defined(__hppa__) && !defined(__mips__)
++#ifdef SCSI_NCR_BIG_ENDIAN
++#error "The NCR in BIG ENDIAN addressing mode is not (yet) supported"
+#endif
-
- dev->priv = (void *)(dev->mem_start);
-
-@@ -1242,6 +1249,14 @@
- return 0;
- }
-
-+#ifdef CONFIG_NET_POLL_CONTROLLER
-+static void i596_poll_controller(struct net_device *dev)
-+{
-+ disable_irq(dev->irq);
-+ i596_interrupt(dev->irq, dev, NULL);
-+ enable_irq(dev->irq);
-+}
+#endif
-
- static irqreturn_t i596_interrupt(int irq, void *dev_id, struct pt_regs *regs)
- {
-@@ -1528,17 +1543,18 @@
-
- if (!dev->irq) {
- printk(KERN_ERR "%s: IRQ not found for i82596 at 0x%lx\n",
-- __FILE__, dev->hpa);
-+ __FILE__, dev->hpa.start);
- return -ENODEV;
- }
-
-- printk(KERN_INFO "Found i82596 at 0x%lx, IRQ %d\n", dev->hpa, dev->irq);
-+ printk(KERN_INFO "Found i82596 at 0x%lx, IRQ %d\n", dev->hpa.start,
-+ dev->irq);
-
- netdevice = alloc_etherdev(0);
- if (!netdevice)
- return -ENOMEM;
-
-- netdevice->base_addr = dev->hpa;
-+ netdevice->base_addr = dev->hpa.start;
- netdevice->irq = dev->irq;
-
- retval = i82596_probe(netdevice, &dev->dev);
-@@ -1566,7 +1582,7 @@
- MODULE_DEVICE_TABLE(parisc, lan_tbl);
-
- static struct parisc_driver lan_driver = {
-- .name = "Apricot",
-+ .name = "lasi_82596",
- .id_table = lan_tbl,
- .probe = lan_init_chip,
- };
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/net/tulip/media.c CVS2_6_14_PA0/drivers/net/tulip/media.c
---- LINUS_2_6_14/drivers/net/tulip/media.c 2005-10-27 21:30:40.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/net/tulip/media.c 2005-09-14 06:56:25.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)
- {
-@@ -261,24 +263,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);
++#define MEMORY_BARRIER() mb()
+
-+ /* 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);
++/*
++ * If the NCR uses big endian addressing mode over the
++ * PCI, actual io register addresses for byte and word
++ * accesses must be changed according to lane routing.
++ * Btw, ncr_offb() and ncr_offw() macros only apply to
++ * constants and so donnot generate bloated code.
++ */
+
-+ /* flush posted writes */
-+ ioread32(ioaddr + CSR12);
++#if defined(SCSI_NCR_BIG_ENDIAN)
+
-+ /* Sect 3.10.3 in DP83840A.pdf (p39) */
-+ udelay(500);
++#define ncr_offb(o) (((o)&~3)+((~((o)&3))&3))
++#define ncr_offw(o) (((o)&~3)+((~((o)&3))&2))
+
-+ /* 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);
++#else
+
-+ ioread32(ioaddr + CSR12); /* flush posted writes */
- }
++#define ncr_offb(o) (o)
++#define ncr_offw(o) (o)
+
- 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_14/drivers/net/tulip/tulip.h CVS2_6_14_PA0/drivers/net/tulip/tulip.h
---- LINUS_2_6_14/drivers/net/tulip/tulip.h 2005-10-27 21:30:40.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/net/tulip/tulip.h 2005-09-14 06:56:25.000000000 -0600
-@@ -474,8 +474,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_14/drivers/net/tulip/tulip_core.c CVS2_6_14_PA0/drivers/net/tulip/tulip_core.c
---- LINUS_2_6_14/drivers/net/tulip/tulip_core.c 2005-10-27 21:30:40.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/net/tulip/tulip_core.c 2005-09-14 06:56:25.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_14/drivers/parisc/asp.c CVS2_6_14_PA0/drivers/parisc/asp.c
---- LINUS_2_6_14/drivers/parisc/asp.c 2005-10-27 21:30:40.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/parisc/asp.c 2005-09-10 12:19:32.000000000 -0600
-@@ -77,12 +77,12 @@
- struct gsc_irq gsc_irq;
- int ret;
-
-- asp.version = gsc_readb(dev->hpa + ASP_VER_OFFSET) & 0xf;
-+ asp.version = gsc_readb(dev->hpa.start + ASP_VER_OFFSET) & 0xf;
- asp.name = (asp.version == 1) ? "Asp" : "Cutoff";
- asp.hpa = ASP_INTERRUPT_ADDR;
-
- printk(KERN_INFO "%s version %d at 0x%lx found.\n",
-- asp.name, asp.version, dev->hpa);
-+ asp.name, asp.version, dev->hpa.start);
-
- /* the IRQ ASP should use */
- ret = -EBUSY;
-@@ -126,7 +126,7 @@
- };
-
- struct parisc_driver asp_driver = {
-- .name = "Asp",
-+ .name = "asp",
- .id_table = asp_tbl,
- .probe = asp_init_chip,
- };
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/parisc/ccio-dma.c CVS2_6_14_PA0/drivers/parisc/ccio-dma.c
---- LINUS_2_6_14/drivers/parisc/ccio-dma.c 2005-10-27 21:30:40.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/parisc/ccio-dma.c 2005-10-14 00:02:08.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 */
-@@ -595,7 +595,7 @@
- ** Grab virtual index [0:11]
- ** Deposit virt_idx bits into I/O PDIR word
- */
-- asm volatile ("lci 0(%%sr1, %1), %0" : "=r" (ci) : "r" (vba));
-+ asm volatile ("lci %%r0(%%sr1, %1), %0" : "=r" (ci) : "r" (vba));
- asm volatile ("extru %1,19,12,%0" : "+r" (ci) : "r" (ci));
- asm volatile ("depw %1,15,12,%0" : "+r" (pa) : "r" (ci));
-
-@@ -613,7 +613,7 @@
- ** the real mode coherence index generation of U2, the PDIR entry
- ** must be flushed to memory to retain coherence."
- */
-- asm volatile("fdc 0(%0)" : : "r" (pdir_ptr));
-+ asm volatile("fdc %%r0(%0)" : : "r" (pdir_ptr));
- asm volatile("sync");
- }
-
-@@ -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;
- }
-@@ -684,7 +684,7 @@
- ** Hopefully someone figures out how to patch (NOP) the
- ** FDC/SYNC out at boot time.
- */
-- asm volatile("fdc 0(%0)" : : "r" (pdir_ptr[7]));
-+ asm volatile("fdc %%r0(%0)" : : "r" (pdir_ptr[7]));
-
- iovp += IOVP_SIZE;
- byte_cnt -= IOVP_SIZE;
-@@ -1251,7 +1251,7 @@
- static int ccio_probe(struct parisc_device *dev);
-
- static struct parisc_driver ccio_driver = {
-- .name = "U2:Uturn",
-+ .name = "ccio",
- .id_table = ccio_tbl,
- .probe = ccio_probe,
- };
-@@ -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,58 @@
- ** 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);
++#endif
+
-+ /* On some platforms (e.g. K-Class), we have already registered
-+ * resources for devices reported by firmware. Some are children
-+ * of ccio.
-+ * "insert" ccio ranges in the mmio hierarchy (/proc/iomem).
-+ */
-+ result = insert_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 +1425,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,
-@@ -1427,7 +1437,12 @@
-
- res->start = (max - size + 1) &~ (align - 1);
- res->end = res->start + size;
-- if (!request_resource(&iomem_resource, res))
-+
-+ /* We might be trying to expand the MMIO range to include
-+ * a child device that has already registered it's MMIO space.
-+ * Use "insert" instead of request_resource().
-+ */
-+ if (!insert_resource(&iomem_resource, res))
- return 0;
-
- return new_ioc_area(res, size, min, max - size, align);
-@@ -1486,15 +1501,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;
- }
-@@ -1521,7 +1536,12 @@
- return -EBUSY;
- }
-
-- return request_resource(parent, res);
-+ /* "transparent" bus bridges need to register MMIO resources
-+ * firmware assigned them. e.g. children of hppb.c (e.g. K-class)
-+ * registered their resources in the PDC "bus walk" (See
-+ * arch/parisc/kernel/inventory.c).
-+ */
-+ return insert_resource(parent, res);
- }
-
- /**
-@@ -1546,7 +1566,7 @@
-
- ioc->name = dev->id.hversion == U2_IOA_RUNWAY ? "U2" : "UTurn";
-
-- printk(KERN_INFO "Found %s at 0x%lx\n", ioc->name, dev->hpa);
-+ printk(KERN_INFO "Found %s at 0x%lx\n", ioc->name, dev->hpa.start);
-
- for (i = 0; i < ioc_count; i++) {
- ioc_p = &(*ioc_p)->next;
-@@ -1554,7 +1574,7 @@
- *ioc_p = ioc;
-
- ioc->hw_path = dev->hw_path;
-- ioc->ioc_hpa = (struct ioa_registers *)dev->hpa;
-+ ioc->ioc_regs = ioremap(dev->hpa.start, 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_14/drivers/parisc/ccio-rm-dma.c CVS2_6_14_PA0/drivers/parisc/ccio-rm-dma.c
---- LINUS_2_6_14/drivers/parisc/ccio-rm-dma.c 2005-10-27 21:30:40.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/parisc/ccio-rm-dma.c 2005-09-10 12:19:32.000000000 -0600
-@@ -167,7 +167,7 @@
- {
- printk(KERN_INFO "%s found %s at 0x%lx\n", MODULE_NAME,
- dev->id.hversion == U2_BC_GSC ? "U2" : "UTurn",
-- dev->hpa);
-+ dev->hpa.start);
-
- /*
- ** FIXME - should check U2 registers to verify it's really running
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/parisc/dino.c CVS2_6_14_PA0/drivers/parisc/dino.c
---- LINUS_2_6_14/drivers/parisc/dino.c 2005-10-27 21:30:40.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/parisc/dino.c 2005-09-10 21:55:28.000000000 -0600
-@@ -178,6 +178,8 @@
- void __iomem *base_addr = d->hba.base_addr;
- unsigned long flags;
-
-+ DBG("%s: %p, %d, %d, %d\n", __FUNCTION__, base_addr, devfn, where,
-+ size);
- spin_lock_irqsave(&d->dinosaur_pen, flags);
-
- /* tell HW which CFG address */
-@@ -211,6 +213,8 @@
- void __iomem *base_addr = d->hba.base_addr;
- unsigned long flags;
-
-+ DBG("%s: %p, %d, %d, %d\n", __FUNCTION__, base_addr, devfn, where,
-+ size);
- spin_lock_irqsave(&d->dinosaur_pen, flags);
-
- /* avoid address stepping feature */
-@@ -295,7 +299,7 @@
- struct dino_device *dino_dev = irq_desc[irq].handler_data;
- int local_irq = gsc_find_local_irq(irq, dino_dev->global_irq, irq);
-
-- DBG(KERN_WARNING "%s(0x%p, %d)\n", __FUNCTION__, irq_dev, irq);
-+ DBG(KERN_WARNING "%s(0x%p, %d)\n", __FUNCTION__, dino_dev, irq);
-
- /* Clear the matching bit in the IMR register */
- dino_dev->imr &= ~(DINO_MASK_IRQ(local_irq));
-@@ -308,7 +312,7 @@
- int local_irq = gsc_find_local_irq(irq, dino_dev->global_irq, irq);
- u32 tmp;
-
-- DBG(KERN_WARNING "%s(0x%p, %d)\n", __FUNCTION__, irq_dev, irq);
-+ DBG(KERN_WARNING "%s(0x%p, %d)\n", __FUNCTION__, dino_dev, irq);
-
- /*
- ** clear pending IRQ bits
-@@ -490,7 +494,7 @@
- if (res->start == F_EXTEND(0xf0000000UL | (i * _8MB)))
- break;
- }
-- DBG("DINO GSC WRITE i=%d, start=%lx, dino addr = %lx\n",
-+ DBG("DINO GSC WRITE i=%d, start=%lx, dino addr = %p\n",
- i, res->start, base_addr + DINO_IO_ADDR_EN);
- __raw_writel(1 << i, base_addr + DINO_IO_ADDR_EN);
- }
-@@ -683,6 +687,14 @@
- dino_card_init(struct dino_device *dino_dev)
- {
- u32 brdg_feat = 0x00784e05;
-+ unsigned long status;
-+
-+ status = __raw_readl(dino_dev->hba.base_addr+DINO_IO_STATUS);
-+ if (status & 0x0000ff80) {
-+ __raw_writel(0x00000005,
-+ dino_dev->hba.base_addr+DINO_IO_COMMAND);
-+ udelay(1);
-+ }
-
- __raw_writel(0x00000000, dino_dev->hba.base_addr+DINO_GMASK);
- __raw_writel(0x00000001, dino_dev->hba.base_addr+DINO_IO_FBB_EN);
-@@ -902,15 +914,15 @@
- ** If so, initialize the chip appropriately (card-mode vs bridge mode).
- ** Much of the initialization is common though.
- */
--static int __init
--dino_driver_callback(struct parisc_device *dev)
-+static int __init dino_probe(struct parisc_device *dev)
- {
- struct dino_device *dino_dev; // Dino specific control struct
- const char *version = "unknown";
- char *name;
- int is_cujo = 0;
- struct pci_bus *bus;
--
-+ unsigned long hpa = dev->hpa.start;
++/*
++ * If the CPU and the NCR use same endian-ness addressing,
++ * no byte reordering is needed for script patching.
++ * Macro cpu_to_scr() is to be used for script patching.
++ * Macro scr_to_cpu() is to be used for getting a DWORD
++ * from the script.
++ */
+
- name = "Dino";
- if (is_card_dino(&dev->id)) {
- version = "3.x (card mode)";
-@@ -928,11 +940,11 @@
- }
- }
-
-- printk("%s version %s found at 0x%lx\n", name, version, dev->hpa);
-+ printk("%s version %s found at 0x%lx\n", name, version, hpa);
-
-- if (!request_mem_region(dev->hpa, PAGE_SIZE, name)) {
-+ if (!request_mem_region(hpa, PAGE_SIZE, name)) {
- printk(KERN_ERR "DINO: Hey! Someone took my MMIO space (0x%ld)!\n",
-- dev->hpa);
-+ hpa);
- return 1;
- }
-
-@@ -940,12 +952,12 @@
- if (is_cujo && dev->id.hversion_rev == 1) {
- #ifdef CONFIG_IOMMU_CCIO
- printk(KERN_WARNING "Enabling Cujo 2.0 bug workaround\n");
-- if (dev->hpa == (unsigned long)CUJO_RAVEN_ADDR) {
-+ if (hpa == (unsigned long)CUJO_RAVEN_ADDR) {
- ccio_cujo20_fixup(dev, CUJO_RAVEN_BADPAGE);
-- } else if (dev->hpa == (unsigned long)CUJO_FIREHAWK_ADDR) {
-+ } else if (hpa == (unsigned long)CUJO_FIREHAWK_ADDR) {
- ccio_cujo20_fixup(dev, CUJO_FIREHAWK_BADPAGE);
- } else {
-- printk("Don't recognise Cujo at address 0x%lx, not enabling workaround\n", dev->hpa);
-+ printk("Don't recognise Cujo at address 0x%lx, not enabling workaround\n", hpa);
- }
- #endif
- } else if (!is_cujo && !is_card_dino(&dev->id) &&
-@@ -970,7 +982,7 @@
- memset(dino_dev, 0, sizeof(struct dino_device));
-
- dino_dev->hba.dev = dev;
-- dino_dev->hba.base_addr = ioremap(dev->hpa, 4096); /* faster access */
-+ dino_dev->hba.base_addr = ioremap(hpa, 4096);
- dino_dev->hba.lmmio_space_offset = 0; /* CPU addrs == bus addrs */
- spin_lock_init(&dino_dev->dinosaur_pen);
- dino_dev->hba.iommu = ccio_get_iommu(dev);
-@@ -1027,9 +1039,9 @@
- };
-
- static struct parisc_driver dino_driver = {
-- .name = "Dino",
-+ .name = "dino",
- .id_table = dino_tbl,
-- .probe = dino_driver_callback,
-+ .probe = dino_probe,
- };
-
- /*
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/parisc/eisa.c CVS2_6_14_PA0/drivers/parisc/eisa.c
---- LINUS_2_6_14/drivers/parisc/eisa.c 2005-10-27 21:30:40.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/parisc/eisa.c 2005-09-10 12:19:32.000000000 -0600
-@@ -315,7 +315,7 @@
- char *name = is_mongoose(dev) ? "Mongoose" : "Wax";
-
- printk(KERN_INFO "%s EISA Adapter found at 0x%08lx\n",
-- name, dev->hpa);
-+ name, dev->hpa.start);
-
- eisa_dev.hba.dev = dev;
- eisa_dev.hba.iommu = ccio_get_iommu(dev);
-@@ -397,7 +397,7 @@
- MODULE_DEVICE_TABLE(parisc, eisa_tbl);
-
- static struct parisc_driver eisa_driver = {
-- .name = "EISA Bus Adapter",
-+ .name = "eisa_ba",
- .id_table = eisa_tbl,
- .probe = eisa_probe,
- };
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/parisc/gsc.c CVS2_6_14_PA0/drivers/parisc/gsc.c
---- LINUS_2_6_14/drivers/parisc/gsc.c 2005-10-27 21:30:40.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/parisc/gsc.c 2005-07-28 12:16:52.000000000 -0600
-@@ -183,12 +183,20 @@
- *irqp = irq;
- }
-
-+static struct device *next_device(struct klist_iter *i)
-+{
-+ struct klist_node * n = klist_next(i);
-+ return n ? container_of(n, struct device, knode_parent) : NULL;
-+}
++#if defined(__BIG_ENDIAN) && !defined(SCSI_NCR_BIG_ENDIAN)
+
- void gsc_fixup_irqs(struct parisc_device *parent, void *ctrl,
- void (*choose_irq)(struct parisc_device *, void *))
- {
- struct device *dev;
-+ struct klist_iter i;
-
-- list_for_each_entry(dev, &parent->dev.children, node) {
-+ klist_iter_init(&parent->dev.klist_children, &i);
-+ while ((dev = next_device(&i))) {
- struct parisc_device *padev = to_parisc_device(dev);
-
- /* work-around for 715/64 and others which have parent
-@@ -197,6 +205,7 @@
- return gsc_fixup_irqs(padev, ctrl, choose_irq);
- choose_irq(padev, ctrl);
- }
-+ klist_iter_exit(&i);
- }
-
- int gsc_common_setup(struct parisc_device *parent, struct gsc_asic *gsc_asic)
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/parisc/hppb.c CVS2_6_14_PA0/drivers/parisc/hppb.c
---- LINUS_2_6_14/drivers/parisc/hppb.c 2005-10-27 21:30:40.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/parisc/hppb.c 2005-09-10 12:25:41.000000000 -0600
-@@ -68,14 +68,14 @@
- memset(card->next, '\0', sizeof(struct hppb_card));
- card = card->next;
- }
-- printk(KERN_INFO "Found GeckoBoa at 0x%lx\n", dev->hpa);
-+ printk(KERN_INFO "Found GeckoBoa at 0x%lx\n", dev->hpa.start);
-
-- card->hpa = dev->hpa;
-+ card->hpa = dev->hpa.start;
- card->mmio_region.name = "HP-PB Bus";
- card->mmio_region.flags = IORESOURCE_MEM;
-
-- card->mmio_region.start = __raw_readl(dev->hpa + IO_IO_LOW);
-- card->mmio_region.end = __raw_readl(dev->hpa + IO_IO_HIGH) - 1;
-+ card->mmio_region.start = gsc_readl(dev->hpa.start + IO_IO_LOW);
-+ card->mmio_region.end = gsc_readl(dev->hpa.start + IO_IO_HIGH) - 1;
-
- status = ccio_request_resource(dev, &card->mmio_region);
- if(status < 0) {
-@@ -93,7 +93,7 @@
- };
-
- static struct parisc_driver hppb_driver = {
-- .name = "Gecko Boa",
-+ .name = "gecko_boa",
- .id_table = hppb_tbl,
- .probe = hppb_probe,
- };
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/parisc/iosapic.c CVS2_6_14_PA0/drivers/parisc/iosapic.c
---- LINUS_2_6_14/drivers/parisc/iosapic.c 2005-10-27 21:30:40.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/parisc/iosapic.c 2005-10-19 13:55:31.000000000 -0600
-@@ -244,7 +244,7 @@
- * 4-byte alignment on 32-bit kernels
- */
- a = (unsigned long)kmalloc(sizeof(struct irt_entry) * num_entries + 8, GFP_KERNEL);
-- a = (a + 7) & ~7;
-+ a = (a + 7UL) & ~7UL;
- return (struct irt_entry *)a;
- }
-
-@@ -700,6 +700,28 @@
- return 0;
- }
-
-+#ifdef CONFIG_SMP
-+static void iosapic_set_affinity_irq(unsigned int irq, cpumask_t dest)
-+{
-+ struct vector_info *vi = iosapic_get_vector(irq);
-+ u32 d0, d1, dummy_d0;
-+ unsigned long flags;
++#define cpu_to_scr(dw) cpu_to_le32(dw)
++#define scr_to_cpu(dw) le32_to_cpu(dw)
+
-+ if (cpu_check_affinity(irq, &dest))
-+ return;
++#elif defined(__LITTLE_ENDIAN) && defined(SCSI_NCR_BIG_ENDIAN)
+
-+ vi->txn_addr = txn_affinity_addr(irq, first_cpu(dest));
++#define cpu_to_scr(dw) cpu_to_be32(dw)
++#define scr_to_cpu(dw) be32_to_cpu(dw)
+
-+ spin_lock_irqsave(&iosapic_lock, flags);
-+ /* d1 contains the destination CPU, so only want to set that
-+ * entry */
-+ iosapic_rd_irt_entry(vi, &d0, &d1);
-+ iosapic_set_irt_data(vi, &dummy_d0, &d1);
-+ iosapic_wr_irt_entry(vi, d0, d1);
-+ spin_unlock_irqrestore(&iosapic_lock, flags);
-+}
-+#endif
++#else
++
++#define cpu_to_scr(dw) (dw)
++#define scr_to_cpu(dw) (dw)
+
- static struct hw_interrupt_type iosapic_interrupt_type = {
- .typename = "IO-SAPIC-level",
- .startup = iosapic_startup_irq,
-@@ -708,7 +730,9 @@
- .disable = iosapic_disable_irq,
- .ack = no_ack_irq,
- .end = iosapic_end_irq,
--// .set_affinity = iosapic_set_affinity_irq,
-+#ifdef CONFIG_SMP
-+ .set_affinity = iosapic_set_affinity_irq,
+#endif
- };
-
- int iosapic_fixup_irq(void *isi_obj, struct pci_dev *pcidev)
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/parisc/lasi.c CVS2_6_14_PA0/drivers/parisc/lasi.c
---- LINUS_2_6_14/drivers/parisc/lasi.c 2005-10-27 21:30:40.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/parisc/lasi.c 2005-09-14 06:56:31.000000000 -0600
-@@ -175,7 +175,7 @@
- return -ENOMEM;
-
- lasi->name = "Lasi";
-- lasi->hpa = dev->hpa;
-+ lasi->hpa = dev->hpa.start;
-
- /* Check the 4-bit (yes, only 4) version register */
- lasi->version = gsc_readl(lasi->hpa + LASI_VER) & 0xf;
-@@ -233,7 +233,7 @@
- };
-
- struct parisc_driver lasi_driver = {
-- .name = "Lasi",
-+ .name = "lasi",
- .id_table = lasi_tbl,
- .probe = lasi_init_chip,
- };
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/parisc/lba_pci.c CVS2_6_14_PA0/drivers/parisc/lba_pci.c
---- LINUS_2_6_14/drivers/parisc/lba_pci.c 2005-10-27 21:30:40.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/parisc/lba_pci.c 2005-09-10 12:19:32.000000000 -0600
-@@ -1288,7 +1288,7 @@
- ** Adjust "window" for this rope.
- */
- rsize /= ROPES_PER_IOC;
-- r->start += (rsize + 1) * LBA_NUM(pa_dev->hpa);
-+ r->start += (rsize + 1) * LBA_NUM(pa_dev->hpa.start);
- r->end = r->start + rsize;
- } else {
- r->end = r->start = 0; /* Not enabled. */
-@@ -1458,7 +1458,7 @@
- u32 func_class;
- void *tmp_obj;
- char *version;
-- void __iomem *addr = ioremap(dev->hpa, 4096);
-+ void __iomem *addr = ioremap(dev->hpa.start, 4096);
-
- /* Read HW Rev First */
- func_class = READ_REG32(addr + LBA_FCLASS);
-@@ -1476,7 +1476,7 @@
- }
-
- printk(KERN_INFO "%s version %s (0x%x) found at 0x%lx\n",
-- MODULE_NAME, version, func_class & 0xf, dev->hpa);
-+ MODULE_NAME, version, func_class & 0xf, dev->hpa.start);
-
- if (func_class < 2) {
- printk(KERN_WARNING "Can't support LBA older than "
-@@ -1503,17 +1503,17 @@
- * but for the mask for func_class.
- */
- printk(KERN_INFO "%s version %s (0x%x) found at 0x%lx\n",
-- MODULE_NAME, version, func_class & 0xff, dev->hpa);
-+ MODULE_NAME, version, func_class & 0xff, dev->hpa.start);
- cfg_ops = &mercury_cfg_ops;
- } else {
-- printk(KERN_ERR "Unknown LBA found at 0x%lx\n", dev->hpa);
-+ printk(KERN_ERR "Unknown LBA found at 0x%lx\n", dev->hpa.start);
- return -ENODEV;
- }
-
- /*
- ** Tell I/O SAPIC driver we have a IRQ handler/region.
- */
-- tmp_obj = iosapic_register(dev->hpa + LBA_IOSAPIC_BASE);
-+ tmp_obj = iosapic_register(dev->hpa.start + LBA_IOSAPIC_BASE);
-
- /* NOTE: PCI devices (e.g. 103c:1005 graphics card) which don't
- ** have an IRT entry will get NULL back from iosapic code.
-@@ -1635,7 +1635,7 @@
- */
- void lba_set_iregs(struct parisc_device *lba, u32 ibase, u32 imask)
- {
-- void __iomem * base_addr = ioremap(lba->hpa, 4096);
-+ void __iomem * base_addr = ioremap(lba->hpa.start, 4096);
-
- imask <<= 2; /* adjust for hints - 2 more bits */
-
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/parisc/led.c CVS2_6_14_PA0/drivers/parisc/led.c
---- LINUS_2_6_14/drivers/parisc/led.c 2005-10-27 21:30:40.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/parisc/led.c 2005-10-20 08:43:10.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 <linux/rcupdate.h>
- #include <asm/io.h>
- #include <asm/processor.h>
-@@ -47,25 +51,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);
++/*
++ * Access to the controller chip.
++ *
++ * If the CPU and the NCR use same endian-ness addressing,
++ * no byte reordering is needed for accessing chip io
++ * registers. Functions suffixed by '_raw' are assumed
++ * to access the chip over the PCI without doing byte
++ * reordering. Functions suffixed by '_l2b' are
++ * assumed to perform little-endian to big-endian byte
++ * reordering, those suffixed by '_b2l' blah, blah,
++ * blah, ...
++ */
+
- #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 */
-@@ -116,12 +125,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);
++/*
++ * MEMORY mapped IO input / output
++ */
+
-+ return 0;
-+}
++#define INB_OFF(o) readb_raw((char __iomem *)np->reg + ncr_offb(o))
++#define OUTB_OFF(o, val) writeb_raw((val), (char __iomem *)np->reg + ncr_offb(o))
+
-+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)
-@@ -286,52 +310,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);
-+ }
- }
- }
-
-@@ -356,7 +363,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);
- rcu_read_lock();
-@@ -405,7 +412,7 @@
- static unsigned long last_pgpgin, last_pgpgout;
- struct page_state pgstat;
- int changed;
--
++#if defined(__BIG_ENDIAN) && !defined(SCSI_NCR_BIG_ENDIAN)
+
- get_full_page_state(&pgstat); /* get no of sectors in & out */
-
- /* Just use a very simple calculation here. Do not care about overflow,
-@@ -413,86 +420,70 @@
- changed = (pgstat.pgpgin != last_pgpgin) || (pgstat.pgpgout != last_pgpgout);
- last_pgpgin = pgstat.pgpgin;
- last_pgpgout = pgstat.pgpgout;
--
++#define INW_OFF(o) readw_l2b((char __iomem *)np->reg + ncr_offw(o))
++#define INL_OFF(o) readl_l2b((char __iomem *)np->reg + (o))
+
- 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()
-@@ -522,9 +513,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
-@@ -559,7 +554,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;
-
-@@ -589,9 +583,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);
-+ }
++#define OUTW_OFF(o, val) writew_b2l((val), (char __iomem *)np->reg + ncr_offw(o))
++#define OUTL_OFF(o, val) writel_b2l((val), (char __iomem *)np->reg + (o))
+
- return 0;
- }
-
-@@ -626,8 +622,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 )
-@@ -637,12 +633,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));
--
++#elif defined(__LITTLE_ENDIAN) && defined(SCSI_NCR_BIG_ENDIAN)
+
- /* Set LCD Cursor to 1st character */
- gsc_writeb(lcd_info.reset_cmd1, LCD_CMD_REG);
- udelay(lcd_info.min_cmd_delay);
-@@ -656,8 +653,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_14/drivers/parisc/pdc_stable.c CVS2_6_14_PA0/drivers/parisc/pdc_stable.c
---- LINUS_2_6_14/drivers/parisc/pdc_stable.c 2005-10-27 21:30:40.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/parisc/pdc_stable.c 2005-07-31 23:19:54.000000000 -0600
-@@ -536,7 +536,7 @@
-
- out += sprintf(out, "Memory tested: ");
- if ((result & 0x0F) < 0x0E)
-- out += sprintf(out, "%.3f MB", 0.256*(1<<(result & 0x0F)));
-+ out += sprintf(out, "%d kB", (1<<(result & 0x0F))*256);
- else
- out += sprintf(out, "All");
- out += sprintf(out, "\n");
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/parisc/sba_iommu.c CVS2_6_14_PA0/drivers/parisc/sba_iommu.c
---- LINUS_2_6_14/drivers/parisc/sba_iommu.c 2005-10-27 21:30:40.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/parisc/sba_iommu.c 2005-10-14 00:02:08.000000000 -0600
-@@ -91,8 +91,8 @@
- #define DBG_RES(x...)
- #endif
-
--#if defined(__LP64__) && !defined(CONFIG_PDC_NARROW)
--/* "low end" PA8800 machines use ZX1 chipset */
-+#if defined(CONFIG_64BIT)
-+/* "low end" PA8800 machines use ZX1 chipset: PAT PDC and only run 64-bit */
- #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
-
-@@ -743,9 +743,8 @@
- * (bit #61, big endian), we have to flush and sync every time
- * IO-PDIR is changed in Ike/Astro.
- */
-- if (ioc_needs_fdc) {
-- asm volatile("fdc 0(%%sr1,%0)\n\tsync" : : "r" (pdir_ptr));
-- }
-+ if (ioc_needs_fdc)
-+ asm volatile("fdc %%r0(%0)" : : "r" (pdir_ptr));
- }
-
-
-@@ -769,42 +768,57 @@
- sba_mark_invalid(struct ioc *ioc, dma_addr_t iova, size_t byte_cnt)
- {
- u32 iovp = (u32) SBA_IOVP(ioc,iova);
--
-- /* Even though this is a big-endian machine, the entries
-- ** in the iopdir are little endian. That's why we clear the byte
-- ** at +7 instead of at +0.
-- */
-- int off = PDIR_INDEX(iovp)*sizeof(u64)+7;
-+ u64 *pdir_ptr = &ioc->pdir_base[PDIR_INDEX(iovp)];
-
- #ifdef ASSERT_PDIR_SANITY
-- /* Assert first pdir entry is set */
-- if (0x80 != (((u8 *) ioc->pdir_base)[off])) {
-+ /* Assert first pdir entry is set.
-+ **
-+ ** Even though this is a big-endian machine, the entries
-+ ** in the iopdir are little endian. That's why we look at
-+ ** the byte at +7 instead of at +0.
-+ */
-+ if (0x80 != (((u8 *) pdir_ptr)[7])) {
- sba_dump_pdir_entry(ioc,"sba_mark_invalid()", PDIR_INDEX(iovp));
- }
- #endif
-
-- if (byte_cnt <= IOVP_SIZE)
-+ if (byte_cnt > IOVP_SIZE)
- {
-- iovp |= IOVP_SHIFT; /* set "size" field for PCOM */
-+#if 0
-+ unsigned long entries_per_cacheline = ioc_needs_fdc ?
-+ L1_CACHE_ALIGN(((unsigned long) pdir_ptr))
-+ - (unsigned long) pdir_ptr;
-+ : 262144;
-+#endif
-
-- /*
-- ** clear I/O PDIR entry "valid" bit
-- ** Do NOT clear the rest - save it for debugging.
-- ** We should only clear bits that have previously
-- ** been enabled.
-- */
-- ((u8 *)(ioc->pdir_base))[off] = 0;
-- } else {
-- u32 t = get_order(byte_cnt) + PAGE_SHIFT;
-+ /* set "size" field for PCOM */
-+ iovp |= get_order(byte_cnt) + PAGE_SHIFT;
-
-- iovp |= t;
- do {
- /* clear I/O Pdir entry "valid" bit first */
-- ((u8 *)(ioc->pdir_base))[off] = 0;
-- off += sizeof(u64);
-+ ((u8 *) pdir_ptr)[7] = 0;
-+ if (ioc_needs_fdc) {
-+ asm volatile("fdc %%r0(%0)" : : "r" (pdir_ptr));
-+#if 0
-+ entries_per_cacheline = L1_CACHE_SHIFT - 3;
++#define INW_OFF(o) readw_b2l((char __iomem *)np->reg + ncr_offw(o))
++#define INL_OFF(o) readl_b2l((char __iomem *)np->reg + (o))
++
++#define OUTW_OFF(o, val) writew_l2b((val), (char __iomem *)np->reg + ncr_offw(o))
++#define OUTL_OFF(o, val) writel_l2b((val), (char __iomem *)np->reg + (o))
++
++#else
++
++#ifdef CONFIG_SCSI_NCR53C8XX_NO_WORD_TRANSFERS
++/* Only 8 or 32 bit transfers allowed */
++#define INW_OFF(o) (readb((char __iomem *)np->reg + ncr_offw(o)) << 8 | readb((char __iomem *)np->reg + ncr_offw(o) + 1))
++#else
++#define INW_OFF(o) readw_raw((char __iomem *)np->reg + ncr_offw(o))
+#endif
-+ }
-+ pdir_ptr++;
- byte_cnt -= IOVP_SIZE;
-- } while (byte_cnt > 0);
-- }
-+ } while (byte_cnt > IOVP_SIZE);
-+ } else
-+ iovp |= IOVP_SHIFT; /* set "size" field for PCOM */
++#define INL_OFF(o) readl_raw((char __iomem *)np->reg + (o))
+
-+ /*
-+ ** clear I/O PDIR entry "valid" bit.
-+ ** We have to R/M/W the cacheline regardless how much of the
-+ ** pdir entry that we clobber.
-+ ** The rest of the entry would be useful for debugging if we
-+ ** could dump core on HPMC.
-+ */
-+ ((u8 *) pdir_ptr)[7] = 0;
-+ if (ioc_needs_fdc)
-+ asm volatile("fdc %%r0(%0)" : : "r" (pdir_ptr));
-
- WRITE_REG( SBA_IOVA(ioc, iovp, 0, 0), ioc->ioc_hpa+IOC_PCOM);
- }
-@@ -819,18 +833,29 @@
- static int sba_dma_supported( struct device *dev, u64 mask)
- {
- struct ioc *ioc;
++#ifdef CONFIG_SCSI_NCR53C8XX_NO_WORD_TRANSFERS
++/* Only 8 or 32 bit transfers allowed */
++#define OUTW_OFF(o, val) do { writeb((char)((val) >> 8), (char __iomem *)np->reg + ncr_offw(o)); writeb((char)(val), (char __iomem *)np->reg + ncr_offw(o) + 1); } while (0)
++#else
++#define OUTW_OFF(o, val) writew_raw((val), (char __iomem *)np->reg + ncr_offw(o))
++#endif
++#define OUTL_OFF(o, val) writel_raw((val), (char __iomem *)np->reg + (o))
+
- 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) )));
- }
-
-
-@@ -898,11 +923,17 @@
- size -= IOVP_SIZE;
- pdir_start++;
- }
-- /* form complete address */
++#endif
+
-+ /* force FDC ops in io_pdir_entry() to be visible to IOMMU */
-+ if (ioc_needs_fdc)
-+ asm volatile("sync" : : );
++#define INB(r) INB_OFF (offsetof(struct ncr_reg,r))
++#define INW(r) INW_OFF (offsetof(struct ncr_reg,r))
++#define INL(r) INL_OFF (offsetof(struct ncr_reg,r))
+
- #ifdef ASSERT_PDIR_SANITY
- sba_check_pdir(ioc,"Check after sba_map_single()");
- #endif
- spin_unlock_irqrestore(&ioc->res_lock, flags);
++#define OUTB(r, val) OUTB_OFF (offsetof(struct ncr_reg,r), (val))
++#define OUTW(r, val) OUTW_OFF (offsetof(struct ncr_reg,r), (val))
++#define OUTL(r, val) OUTL_OFF (offsetof(struct ncr_reg,r), (val))
+
-+ /* form complete address */
- return SBA_IOVA(ioc, iovp, offset, DEFAULT_DMA_HINT_REG);
- }
-
-@@ -958,12 +989,19 @@
- d--;
- }
- ioc->saved_cnt = 0;
++/*
++ * Set bit field ON, OFF
++ */
+
- READ_REG(ioc->ioc_hpa+IOC_PCOM); /* flush purges */
- }
- #else /* DELAYED_RESOURCE_CNT == 0 */
- sba_free_range(ioc, iova, size);
++#define OUTONB(r, m) OUTB(r, INB(r) | (m))
++#define OUTOFFB(r, m) OUTB(r, INB(r) & ~(m))
++#define OUTONW(r, m) OUTW(r, INW(r) | (m))
++#define OUTOFFW(r, m) OUTW(r, INW(r) & ~(m))
++#define OUTONL(r, m) OUTL(r, INL(r) | (m))
++#define OUTOFFL(r, m) OUTL(r, INL(r) & ~(m))
+
-+ /* If fdc's were issued, force fdc's to be visible now */
-+ if (ioc_needs_fdc)
-+ asm volatile("sync" : : );
++/*
++ * We normally want the chip to have a consistent view
++ * of driver internal data structures when we restart it.
++ * Thus these macros.
++ */
++#define OUTL_DSP(v) \
++ do { \
++ MEMORY_BARRIER(); \
++ OUTL (nc_dsp, (v)); \
++ } while (0)
++
++#define OUTONB_STD() \
++ do { \
++ MEMORY_BARRIER(); \
++ OUTONB (nc_dcntl, (STD|NOCOM)); \
++ } while (0)
+
- READ_REG(ioc->ioc_hpa+IOC_PCOM); /* flush purges */
- #endif /* DELAYED_RESOURCE_CNT == 0 */
+
- spin_unlock_irqrestore(&ioc->res_lock, flags);
-
- /* XXX REVISIT for 2.5 Linux - need syncdma for zero-copy support.
-@@ -1106,6 +1144,10 @@
- */
- filled = iommu_fill_pdir(ioc, sglist, nents, 0, sba_io_pdir_entry);
-
-+ /* force FDC ops in io_pdir_entry() to be visible to IOMMU */
-+ if (ioc_needs_fdc)
-+ asm volatile("sync" : : );
-+
- #ifdef ASSERT_PDIR_SANITY
- if (sba_check_pdir(ioc,"Check after sba_map_sg()"))
- {
-@@ -1234,8 +1276,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
-@@ -1322,19 +1366,29 @@
- return (void *) pdir_base;
- }
-
-+static struct device *next_device(struct klist_iter *i)
-+{
-+ struct klist_node * n = klist_next(i);
-+ return n ? container_of(n, struct device, knode_parent) : NULL;
++/*
++** NCR53C8XX devices features table.
++*/
++struct ncr_chip {
++ unsigned short revision_id;
++ unsigned char burst_max; /* log-base-2 of max burst */
++ unsigned char offset_max;
++ unsigned char nr_divisor;
++ unsigned int features;
++#define FE_LED0 (1<<0)
++#define FE_WIDE (1<<1) /* Wide data transfers */
++#define FE_ULTRA (1<<2) /* Ultra speed 20Mtrans/sec */
++#define FE_DBLR (1<<4) /* Clock doubler present */
++#define FE_QUAD (1<<5) /* Clock quadrupler present */
++#define FE_ERL (1<<6) /* Enable read line */
++#define FE_CLSE (1<<7) /* Cache line size enable */
++#define FE_WRIE (1<<8) /* Write & Invalidate enable */
++#define FE_ERMP (1<<9) /* Enable read multiple */
++#define FE_BOF (1<<10) /* Burst opcode fetch */
++#define FE_DFS (1<<11) /* DMA fifo size */
++#define FE_PFEN (1<<12) /* Prefetch enable */
++#define FE_LDSTR (1<<13) /* Load/Store supported */
++#define FE_RAM (1<<14) /* On chip RAM present */
++#define FE_VARCLK (1<<15) /* SCSI clock may vary */
++#define FE_RAM8K (1<<16) /* On chip RAM sized 8Kb */
++#define FE_64BIT (1<<17) /* Have a 64-bit PCI interface */
++#define FE_IO256 (1<<18) /* Requires full 256 bytes in PCI space */
++#define FE_NOPM (1<<19) /* Scripts handles phase mismatch */
++#define FE_LEDC (1<<20) /* Hardware control of LED */
++#define FE_DIFF (1<<21) /* Support Differential SCSI */
++#define FE_66MHZ (1<<23) /* 66MHz PCI Support */
++#define FE_DAC (1<<24) /* Support DAC cycles (64 bit addressing) */
++#define FE_ISTAT1 (1<<25) /* Have ISTAT1, MBOX0, MBOX1 registers */
++#define FE_DAC_IN_USE (1<<26) /* Platform does DAC cycles */
++#define FE_EHP (1<<27) /* 720: Even host parity */
++#define FE_MUX (1<<28) /* 720: Multiplexed bus */
++#define FE_EA (1<<29) /* 720: Enable Ack */
++
++#define FE_CACHE_SET (FE_ERL|FE_CLSE|FE_WRIE|FE_ERMP)
++#define FE_SCSI_SET (FE_WIDE|FE_ULTRA|FE_DBLR|FE_QUAD|F_CLK80)
++#define FE_SPECIAL_SET (FE_CACHE_SET|FE_BOF|FE_DFS|FE_LDSTR|FE_PFEN|FE_RAM)
++};
++
++
++/*
++** Driver setup structure.
++**
++** This structure is initialized from linux config options.
++** It can be overridden at boot-up by the boot command line.
++*/
++#define SCSI_NCR_MAX_EXCLUDES 8
++struct ncr_driver_setup {
++ u8 master_parity;
++ u8 scsi_parity;
++ u8 disconnection;
++ u8 special_features;
++ u8 force_sync_nego;
++ u8 reverse_probe;
++ u8 pci_fix_up;
++ u8 use_nvram;
++ u8 verbose;
++ u8 default_tags;
++ u16 default_sync;
++ u16 debug;
++ u8 burst_max;
++ u8 led_pin;
++ u8 max_wide;
++ u8 settle_delay;
++ u8 diff_support;
++ u8 irqm;
++ u8 bus_check;
++ u8 optimize;
++ u8 recovery;
++ u8 host_id;
++ u16 iarb;
++ u32 excludes[SCSI_NCR_MAX_EXCLUDES];
++ char tag_ctrl[100];
++};
++
++/*
++** Initial setup.
++** Can be overriden at startup by a command line.
++*/
++#define SCSI_NCR_DRIVER_SETUP \
++{ \
++ SCSI_NCR_SETUP_MASTER_PARITY, \
++ SCSI_NCR_SETUP_SCSI_PARITY, \
++ SCSI_NCR_SETUP_DISCONNECTION, \
++ SCSI_NCR_SETUP_SPECIAL_FEATURES, \
++ SCSI_NCR_SETUP_FORCE_SYNC_NEGO, \
++ 0, \
++ 0, \
++ 1, \
++ 0, \
++ SCSI_NCR_SETUP_DEFAULT_TAGS, \
++ SCSI_NCR_SETUP_DEFAULT_SYNC, \
++ 0x00, \
++ 7, \
++ 0, \
++ 1, \
++ SCSI_NCR_SETUP_SETTLE_TIME, \
++ 0, \
++ 0, \
++ 1, \
++ 0, \
++ 0, \
++ 255, \
++ 0x00 \
+}
+
- /* setup Mercury or Elroy IBASE/IMASK registers. */
--static void setup_ibase_imask(struct parisc_device *sba, struct ioc *ioc, int ioc_num)
-+static void
-+setup_ibase_imask(struct parisc_device *sba, struct ioc *ioc, int ioc_num)
- {
-- /* lba_set_iregs() is in drivers/parisc/lba_pci.c */
-+ /* lba_set_iregs() is in drivers/parisc/lba_pci.c */
- extern void lba_set_iregs(struct parisc_device *, u32, u32);
- struct device *dev;
-+ struct klist_iter i;
-
-- list_for_each_entry(dev, &sba->dev.children, node) {
-+ klist_iter_init(&sba->dev.klist_children, &i);
-+ while ((dev = next_device(&i))) {
- struct parisc_device *lba = to_parisc_device(dev);
-- int rope_num = (lba->hpa >> 13) & 0xf;
-+ int rope_num = (lba->hpa.start >> 13) & 0xf;
- if (rope_num >> 3 == ioc_num)
- lba_set_iregs(lba, ioc->ibase, ioc->imask);
- }
-+ klist_iter_exit(&i);
- }
-
- static void
-@@ -1343,7 +1397,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 +1434,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 +1458,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 +1491,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 +1543,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 +1571,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));
-@@ -1590,7 +1642,7 @@
-
- static void __iomem *ioc_remap(struct sba_device *sba_dev, int offset)
- {
-- return ioremap(sba_dev->dev->hpa + offset, SBA_FUNC_SIZE);
-+ return ioremap(sba_dev->dev->hpa.start + offset, SBA_FUNC_SIZE);
- }
-
- static void sba_hw_init(struct sba_device *sba_dev)
-@@ -1968,7 +2020,7 @@
- u32 func_class;
- int i;
- char *version;
-- void __iomem *sba_addr = ioremap(dev->hpa, SBA_FUNC_SIZE);
-+ void __iomem *sba_addr = ioremap(dev->hpa.start, SBA_FUNC_SIZE);
-
- sba_dump_ranges(sba_addr);
-
-@@ -2010,7 +2062,7 @@
- }
-
- printk(KERN_INFO "%s found %s at 0x%lx\n",
-- MODULE_NAME, version, dev->hpa);
-+ MODULE_NAME, version, dev->hpa.start);
-
- sba_dev = kmalloc(sizeof(struct sba_device), GFP_KERNEL);
- if (!sba_dev) {
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/parisc/superio.c CVS2_6_14_PA0/drivers/parisc/superio.c
---- LINUS_2_6_14/drivers/parisc/superio.c 2005-10-27 21:30:40.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/parisc/superio.c 2005-08-02 20:38:20.000000000 -0600
-@@ -11,6 +11,7 @@
- * (C) Copyright 2000 Alex deVries <alex at onefishtwo.ca>
- * (C) Copyright 2001 John Marvin <jsm fc hp com>
- * (C) Copyright 2003 Grant Grundler <grundler parisc-linux org>
-+ * (C) Copyright 2005 Kyle McMartin <kyle at parisc-linux.org>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
-@@ -405,6 +406,7 @@
-
- serial[0].iobase = sio_dev.sp1_base;
- serial[0].irq = SP1_IRQ;
-+ spin_lock_init(&serial[0].lock);
-
- retval = early_serial_setup(&serial[0]);
- if (retval < 0) {
-@@ -414,6 +416,7 @@
-
- serial[1].iobase = sio_dev.sp2_base;
- serial[1].irq = SP2_IRQ;
-+ spin_lock_init(&serial[1].lock);
- retval = early_serial_setup(&serial[1]);
-
- if (retval < 0)
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/parisc/wax.c CVS2_6_14_PA0/drivers/parisc/wax.c
---- LINUS_2_6_14/drivers/parisc/wax.c 2005-10-27 21:30:40.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/parisc/wax.c 2005-09-10 12:19:32.000000000 -0600
-@@ -81,7 +81,7 @@
- return -ENOMEM;
-
- wax->name = "wax";
-- wax->hpa = dev->hpa;
-+ wax->hpa = dev->hpa.start;
-
- wax->version = 0; /* gsc_readb(wax->hpa+WAX_VER); */
- printk(KERN_INFO "%s at 0x%lx found.\n", wax->name, wax->hpa);
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/parport/parport_gsc.c CVS2_6_14_PA0/drivers/parport/parport_gsc.c
---- LINUS_2_6_14/drivers/parport/parport_gsc.c 2005-10-27 21:30:41.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/parport/parport_gsc.c 2005-09-10 12:19:34.000000000 -0600
-@@ -359,11 +359,12 @@
- unsigned long port;
-
- if (!dev->irq) {
-- printk("IRQ not found for parallel device at 0x%lx\n", dev->hpa);
-+ printk(KERN_WARNING "IRQ not found for parallel device at 0x%lx\n",
-+ dev->hpa.start);
- return -ENODEV;
- }
-
-- port = dev->hpa + PARPORT_GSC_OFFSET;
-+ port = dev->hpa.start + PARPORT_GSC_OFFSET;
-
- /* some older machines with ASP-chip don't support
- * the enhanced parport modes.
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/pcmcia/Kconfig CVS2_6_14_PA0/drivers/pcmcia/Kconfig
---- LINUS_2_6_14/drivers/pcmcia/Kconfig 2005-10-27 21:30:41.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/pcmcia/Kconfig 2005-10-20 08:43:11.000000000 -0600
-@@ -190,7 +190,11 @@
-
- config PCMCIA_PROBE
- bool
-- default y if ISA && !ARCH_SA1100 && !ARCH_CLPS711X
-+ default y if ISA && !ARCH_SA1100 && !ARCH_CLPS711X && !PARISC
++/*
++** Boot fail safe setup.
++** Override initial setup from boot command line:
++** ncr53c8xx=safe:y
++*/
++#define SCSI_NCR_DRIVER_SAFE_SETUP \
++{ \
++ 0, \
++ 1, \
++ 0, \
++ 0, \
++ 0, \
++ 0, \
++ 0, \
++ 1, \
++ 2, \
++ 0, \
++ 255, \
++ 0x00, \
++ 255, \
++ 0, \
++ 0, \
++ 10, \
++ 1, \
++ 1, \
++ 1, \
++ 0, \
++ 0, \
++ 255 \
++}
+
-+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_14/drivers/pcmcia/rsrc_nonstatic.c CVS2_6_14_PA0/drivers/pcmcia/rsrc_nonstatic.c
---- LINUS_2_6_14/drivers/pcmcia/rsrc_nonstatic.c 2005-10-27 21:30:41.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/pcmcia/rsrc_nonstatic.c 2005-10-20 08:43:11.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? */
++/**************** ORIGINAL CONTENT of ncrreg.h from FreeBSD ******************/
++
++/*-----------------------------------------------------------------
++**
++** The ncr 53c810 register structure.
++**
++**-----------------------------------------------------------------
++*/
++
++struct ncr_reg {
++/*00*/ u8 nc_scntl0; /* full arb., ena parity, par->ATN */
++
++/*01*/ u8 nc_scntl1; /* no reset */
++ #define ISCON 0x10 /* connected to scsi */
++ #define CRST 0x08 /* force reset */
++ #define IARB 0x02 /* immediate arbitration */
++
++/*02*/ u8 nc_scntl2; /* no disconnect expected */
++ #define SDU 0x80 /* cmd: disconnect will raise error */
++ #define CHM 0x40 /* sta: chained mode */
++ #define WSS 0x08 /* sta: wide scsi send [W]*/
++ #define WSR 0x01 /* sta: wide scsi received [W]*/
++
++/*03*/ u8 nc_scntl3; /* cnf system clock dependent */
++ #define EWS 0x08 /* cmd: enable wide scsi [W]*/
++ #define ULTRA 0x80 /* cmd: ULTRA enable */
++ /* bits 0-2, 7 rsvd for C1010 */
++
++/*04*/ u8 nc_scid; /* cnf host adapter scsi address */
++ #define RRE 0x40 /* r/w:e enable response to resel. */
++ #define SRE 0x20 /* r/w:e enable response to select */
++
++/*05*/ u8 nc_sxfer; /* ### Sync speed and count */
++ /* bits 6-7 rsvd for C1010 */
++
++/*06*/ u8 nc_sdid; /* ### Destination-ID */
++
++/*07*/ u8 nc_gpreg; /* ??? IO-Pins */
++
++/*08*/ u8 nc_sfbr; /* ### First byte in phase */
++
++/*09*/ u8 nc_socl;
++ #define CREQ 0x80 /* r/w: SCSI-REQ */
++ #define CACK 0x40 /* r/w: SCSI-ACK */
++ #define CBSY 0x20 /* r/w: SCSI-BSY */
++ #define CSEL 0x10 /* r/w: SCSI-SEL */
++ #define CATN 0x08 /* r/w: SCSI-ATN */
++ #define CMSG 0x04 /* r/w: SCSI-MSG */
++ #define CC_D 0x02 /* r/w: SCSI-C_D */
++ #define CI_O 0x01 /* r/w: SCSI-I_O */
++
++/*0a*/ u8 nc_ssid;
++
++/*0b*/ u8 nc_sbcl;
++
++/*0c*/ u8 nc_dstat;
++ #define DFE 0x80 /* sta: dma fifo empty */
++ #define MDPE 0x40 /* int: master data parity error */
++ #define BF 0x20 /* int: script: bus fault */
++ #define ABRT 0x10 /* int: script: command aborted */
++ #define SSI 0x08 /* int: script: single step */
++ #define SIR 0x04 /* int: script: interrupt instruct. */
++ #define IID 0x01 /* int: script: illegal instruct. */
++
++/*0d*/ u8 nc_sstat0;
++ #define ILF 0x80 /* sta: data in SIDL register lsb */
++ #define ORF 0x40 /* sta: data in SODR register lsb */
++ #define OLF 0x20 /* sta: data in SODL register lsb */
++ #define AIP 0x10 /* sta: arbitration in progress */
++ #define LOA 0x08 /* sta: arbitration lost */
++ #define WOA 0x04 /* sta: arbitration won */
++ #define IRST 0x02 /* sta: scsi reset signal */
++ #define SDP 0x01 /* sta: scsi parity signal */
++
++/*0e*/ u8 nc_sstat1;
++ #define FF3210 0xf0 /* sta: bytes in the scsi fifo */
++
++/*0f*/ u8 nc_sstat2;
++ #define ILF1 0x80 /* sta: data in SIDL register msb[W]*/
++ #define ORF1 0x40 /* sta: data in SODR register msb[W]*/
++ #define OLF1 0x20 /* sta: data in SODL register msb[W]*/
++ #define DM 0x04 /* sta: DIFFSENS mismatch (895/6 only) */
++ #define LDSC 0x02 /* sta: disconnect & reconnect */
++
++/*10*/ u8 nc_dsa; /* --> Base page */
++/*11*/ u8 nc_dsa1;
++/*12*/ u8 nc_dsa2;
++/*13*/ u8 nc_dsa3;
++
++/*14*/ u8 nc_istat; /* --> Main Command and status */
++ #define CABRT 0x80 /* cmd: abort current operation */
++ #define SRST 0x40 /* mod: reset chip */
++ #define SIGP 0x20 /* r/w: message from host to ncr */
++ #define SEM 0x10 /* r/w: message between host + ncr */
++ #define CON 0x08 /* sta: connected to scsi */
++ #define INTF 0x04 /* sta: int on the fly (reset by wr)*/
++ #define SIP 0x02 /* sta: scsi-interrupt */
++ #define DIP 0x01 /* sta: host/script interrupt */
++
++/*15*/ u8 nc_istat1; /* 896 and later cores only */
++ #define FLSH 0x04 /* sta: chip is flushing */
++ #define SRUN 0x02 /* sta: scripts are running */
++ #define SIRQD 0x01 /* r/w: disable INT pin */
++
++/*16*/ u8 nc_mbox0; /* 896 and later cores only */
++/*17*/ u8 nc_mbox1; /* 896 and later cores only */
++
++/*18*/ u8 nc_ctest0;
++ #define EHP 0x04 /* 720 even host parity */
++/*19*/ u8 nc_ctest1;
++
++/*1a*/ u8 nc_ctest2;
++ #define CSIGP 0x40
++ /* bits 0-2,7 rsvd for C1010 */
++
++/*1b*/ u8 nc_ctest3;
++ #define FLF 0x08 /* cmd: flush dma fifo */
++ #define CLF 0x04 /* cmd: clear dma fifo */
++ #define FM 0x02 /* mod: fetch pin mode */
++ #define WRIE 0x01 /* mod: write and invalidate enable */
++ /* bits 4-7 rsvd for C1010 */
++
++/*1c*/ u32 nc_temp; /* ### Temporary stack */
++
++/*20*/ u8 nc_dfifo;
++/*21*/ u8 nc_ctest4;
++ #define MUX 0x80 /* 720 host bus multiplex mode */
++ #define BDIS 0x80 /* mod: burst disable */
++ #define MPEE 0x08 /* mod: master parity error enable */
++
++/*22*/ u8 nc_ctest5;
++ #define DFS 0x20 /* mod: dma fifo size */
++ /* bits 0-1, 3-7 rsvd for C1010 */
++/*23*/ u8 nc_ctest6;
++
++/*24*/ u32 nc_dbc; /* ### Byte count and command */
++/*28*/ u32 nc_dnad; /* ### Next command register */
++/*2c*/ u32 nc_dsp; /* --> Script Pointer */
++/*30*/ u32 nc_dsps; /* --> Script pointer save/opcode#2 */
++
++/*34*/ u8 nc_scratcha; /* Temporary register a */
++/*35*/ u8 nc_scratcha1;
++/*36*/ u8 nc_scratcha2;
++/*37*/ u8 nc_scratcha3;
++
++/*38*/ u8 nc_dmode;
++ #define BL_2 0x80 /* mod: burst length shift value +2 */
++ #define BL_1 0x40 /* mod: burst length shift value +1 */
++ #define ERL 0x08 /* mod: enable read line */
++ #define ERMP 0x04 /* mod: enable read multiple */
++ #define BOF 0x02 /* mod: burst op code fetch */
++
++/*39*/ u8 nc_dien;
++/*3a*/ u8 nc_sbr;
++
++/*3b*/ u8 nc_dcntl; /* --> Script execution control */
++ #define CLSE 0x80 /* mod: cache line size enable */
++ #define PFF 0x40 /* cmd: pre-fetch flush */
++ #define PFEN 0x20 /* mod: pre-fetch enable */
++ #define EA 0x20 /* mod: 720 enable-ack */
++ #define SSM 0x10 /* mod: single step mode */
++ #define IRQM 0x08 /* mod: irq mode (1 = totem pole !) */
++ #define STD 0x04 /* cmd: start dma mode */
++ #define IRQD 0x02 /* mod: irq disable */
++ #define NOCOM 0x01 /* cmd: protect sfbr while reselect */
++ /* bits 0-1 rsvd for C1010 */
++
++/*3c*/ u32 nc_adder;
++
++/*40*/ u16 nc_sien; /* -->: interrupt enable */
++/*42*/ u16 nc_sist; /* <--: interrupt status */
++ #define SBMC 0x1000/* sta: SCSI Bus Mode Change (895/6 only) */
++ #define STO 0x0400/* sta: timeout (select) */
++ #define GEN 0x0200/* sta: timeout (general) */
++ #define HTH 0x0100/* sta: timeout (handshake) */
++ #define MA 0x80 /* sta: phase mismatch */
++ #define CMP 0x40 /* sta: arbitration complete */
++ #define SEL 0x20 /* sta: selected by another device */
++ #define RSL 0x10 /* sta: reselected by another device*/
++ #define SGE 0x08 /* sta: gross error (over/underflow)*/
++ #define UDC 0x04 /* sta: unexpected disconnect */
++ #define RST 0x02 /* sta: scsi bus reset detected */
++ #define PAR 0x01 /* sta: scsi parity error */
++
++/*44*/ u8 nc_slpar;
++/*45*/ u8 nc_swide;
++/*46*/ u8 nc_macntl;
++/*47*/ u8 nc_gpcntl;
++/*48*/ u8 nc_stime0; /* cmd: timeout for select&handshake*/
++/*49*/ u8 nc_stime1; /* cmd: timeout user defined */
++/*4a*/ u16 nc_respid; /* sta: Reselect-IDs */
++
++/*4c*/ u8 nc_stest0;
++
++/*4d*/ u8 nc_stest1;
++ #define SCLK 0x80 /* Use the PCI clock as SCSI clock */
++ #define DBLEN 0x08 /* clock doubler running */
++ #define DBLSEL 0x04 /* clock doubler selected */
++
++
++/*4e*/ u8 nc_stest2;
++ #define ROF 0x40 /* reset scsi offset (after gross error!) */
++ #define DIF 0x20 /* 720 SCSI differential mode */
++ #define EXT 0x02 /* extended filtering */
++
++/*4f*/ u8 nc_stest3;
++ #define TE 0x80 /* c: tolerAnt enable */
++ #define HSC 0x20 /* c: Halt SCSI Clock */
++ #define CSF 0x02 /* c: clear scsi fifo */
++
++/*50*/ u16 nc_sidl; /* Lowlevel: latched from scsi data */
++/*52*/ u8 nc_stest4;
++ #define SMODE 0xc0 /* SCSI bus mode (895/6 only) */
++ #define SMODE_HVD 0x40 /* High Voltage Differential */
++ #define SMODE_SE 0x80 /* Single Ended */
++ #define SMODE_LVD 0xc0 /* Low Voltage Differential */
++ #define LCKFRQ 0x20 /* Frequency Lock (895/6 only) */
++ /* bits 0-5 rsvd for C1010 */
++
++/*53*/ u8 nc_53_;
++/*54*/ u16 nc_sodl; /* Lowlevel: data out to scsi data */
++/*56*/ u8 nc_ccntl0; /* Chip Control 0 (896) */
++ #define ENPMJ 0x80 /* Enable Phase Mismatch Jump */
++ #define PMJCTL 0x40 /* Phase Mismatch Jump Control */
++ #define ENNDJ 0x20 /* Enable Non Data PM Jump */
++ #define DISFC 0x10 /* Disable Auto FIFO Clear */
++ #define DILS 0x02 /* Disable Internal Load/Store */
++ #define DPR 0x01 /* Disable Pipe Req */
++
++/*57*/ u8 nc_ccntl1; /* Chip Control 1 (896) */
++ #define ZMOD 0x80 /* High Impedance Mode */
++ #define DIC 0x10 /* Disable Internal Cycles */
++ #define DDAC 0x08 /* Disable Dual Address Cycle */
++ #define XTIMOD 0x04 /* 64-bit Table Ind. Indexing Mode */
++ #define EXTIBMV 0x02 /* Enable 64-bit Table Ind. BMOV */
++ #define EXDBMV 0x01 /* Enable 64-bit Direct BMOV */
++
++/*58*/ u16 nc_sbdl; /* Lowlevel: data from scsi data */
++/*5a*/ u16 nc_5a_;
++
++/*5c*/ u8 nc_scr0; /* Working register B */
++/*5d*/ u8 nc_scr1; /* */
++/*5e*/ u8 nc_scr2; /* */
++/*5f*/ u8 nc_scr3; /* */
++
++/*60*/ u8 nc_scrx[64]; /* Working register C-R */
++/*a0*/ u32 nc_mmrs; /* Memory Move Read Selector */
++/*a4*/ u32 nc_mmws; /* Memory Move Write Selector */
++/*a8*/ u32 nc_sfs; /* Script Fetch Selector */
++/*ac*/ u32 nc_drs; /* DSA Relative Selector */
++/*b0*/ u32 nc_sbms; /* Static Block Move Selector */
++/*b4*/ u32 nc_dbms; /* Dynamic Block Move Selector */
++/*b8*/ u32 nc_dnad64; /* DMA Next Address 64 */
++/*bc*/ u16 nc_scntl4; /* C1010 only */
++ #define U3EN 0x80 /* Enable Ultra 3 */
++ #define AIPEN 0x40 /* Allow check upper byte lanes */
++ #define XCLKH_DT 0x08 /* Extra clock of data hold on DT
++ transfer edge */
++ #define XCLKH_ST 0x04 /* Extra clock of data hold on ST
++ transfer edge */
++
++/*be*/ u8 nc_aipcntl0; /* Epat Control 1 C1010 only */
++/*bf*/ u8 nc_aipcntl1; /* AIP Control C1010_66 Only */
++
++/*c0*/ u32 nc_pmjad1; /* Phase Mismatch Jump Address 1 */
++/*c4*/ u32 nc_pmjad2; /* Phase Mismatch Jump Address 2 */
++/*c8*/ u8 nc_rbc; /* Remaining Byte Count */
++/*c9*/ u8 nc_rbc1; /* */
++/*ca*/ u8 nc_rbc2; /* */
++/*cb*/ u8 nc_rbc3; /* */
++
++/*cc*/ u8 nc_ua; /* Updated Address */
++/*cd*/ u8 nc_ua1; /* */
++/*ce*/ u8 nc_ua2; /* */
++/*cf*/ u8 nc_ua3; /* */
++/*d0*/ u32 nc_esa; /* Entry Storage Address */
++/*d4*/ u8 nc_ia; /* Instruction Address */
++/*d5*/ u8 nc_ia1;
++/*d6*/ u8 nc_ia2;
++/*d7*/ u8 nc_ia3;
++/*d8*/ u32 nc_sbc; /* SCSI Byte Count (3 bytes only) */
++/*dc*/ u32 nc_csbc; /* Cumulative SCSI Byte Count */
++
++ /* Following for C1010 only */
++/*e0*/ u16 nc_crcpad; /* CRC Value */
++/*e2*/ u8 nc_crccntl0; /* CRC control register */
++ #define SNDCRC 0x10 /* Send CRC Request */
++/*e3*/ u8 nc_crccntl1; /* CRC control register */
++/*e4*/ u32 nc_crcdata; /* CRC data register */
++/*e8*/ u32 nc_e8_; /* rsvd */
++/*ec*/ u32 nc_ec_; /* rsvd */
++/*f0*/ u16 nc_dfbc; /* DMA FIFO byte count */
++
++};
++
++/*-----------------------------------------------------------
++**
++** Utility macros for the script.
++**
++**-----------------------------------------------------------
++*/
++
++#define REGJ(p,r) (offsetof(struct ncr_reg, p ## r))
++#define REG(r) REGJ (nc_, r)
++
++typedef u32 ncrcmd;
++
++/*-----------------------------------------------------------
++**
++** SCSI phases
++**
++** DT phases illegal for ncr driver.
++**
++**-----------------------------------------------------------
++*/
++
++#define SCR_DATA_OUT 0x00000000
++#define SCR_DATA_IN 0x01000000
++#define SCR_COMMAND 0x02000000
++#define SCR_STATUS 0x03000000
++#define SCR_DT_DATA_OUT 0x04000000
++#define SCR_DT_DATA_IN 0x05000000
++#define SCR_MSG_OUT 0x06000000
++#define SCR_MSG_IN 0x07000000
++
++#define SCR_ILG_OUT 0x04000000
++#define SCR_ILG_IN 0x05000000
++
++/*-----------------------------------------------------------
++**
++** Data transfer via SCSI.
++**
++**-----------------------------------------------------------
++**
++** MOVE_ABS (LEN)
++** <<start address>>
++**
++** MOVE_IND (LEN)
++** <<dnad_offset>>
++**
++** MOVE_TBL
++** <<dnad_offset>>
++**
++**-----------------------------------------------------------
++*/
++
++#define OPC_MOVE 0x08000000
++
++#define SCR_MOVE_ABS(l) ((0x00000000 | OPC_MOVE) | (l))
++#define SCR_MOVE_IND(l) ((0x20000000 | OPC_MOVE) | (l))
++#define SCR_MOVE_TBL (0x10000000 | OPC_MOVE)
++
++#define SCR_CHMOV_ABS(l) ((0x00000000) | (l))
++#define SCR_CHMOV_IND(l) ((0x20000000) | (l))
++#define SCR_CHMOV_TBL (0x10000000)
++
++struct scr_tblmove {
++ u32 size;
++ u32 addr;
++};
++
++/*-----------------------------------------------------------
++**
++** Selection
++**
++**-----------------------------------------------------------
++**
++** SEL_ABS | SCR_ID (0..15) [ | REL_JMP]
++** <<alternate_address>>
++**
++** SEL_TBL | << dnad_offset>> [ | REL_JMP]
++** <<alternate_address>>
++**
++**-----------------------------------------------------------
++*/
++
++#define SCR_SEL_ABS 0x40000000
++#define SCR_SEL_ABS_ATN 0x41000000
++#define SCR_SEL_TBL 0x42000000
++#define SCR_SEL_TBL_ATN 0x43000000
++
++
++#ifdef SCSI_NCR_BIG_ENDIAN
++struct scr_tblsel {
++ u8 sel_scntl3;
++ u8 sel_id;
++ u8 sel_sxfer;
++ u8 sel_scntl4;
++};
+#else
-+INT_MODULE_PARM(probe_mem, 0); /* memory probe? */
++struct scr_tblsel {
++ u8 sel_scntl4;
++ u8 sel_sxfer;
++ u8 sel_id;
++ u8 sel_scntl3;
++};
+#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_14/drivers/scsi/53c700.c CVS2_6_14_PA0/drivers/scsi/53c700.c
---- LINUS_2_6_14/drivers/scsi/53c700.c 2005-10-27 21:30:42.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/scsi/53c700.c 2005-06-30 08:25:53.000000000 -0600
-@@ -301,6 +301,7 @@
- __u8 *memory;
- __u32 *script;
- struct Scsi_Host *host;
-+ const char *chipname;
- static int banner = 0;
- int j;
-
-@@ -401,11 +402,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);
++
++#define SCR_JMP_REL 0x04000000
++#define SCR_ID(id) (((u32)(id)) << 16)
++
++/*-----------------------------------------------------------
++**
++** Waiting for Disconnect or Reselect
++**
++**-----------------------------------------------------------
++**
++** WAIT_DISC
++** dummy: <<alternate_address>>
++**
++** WAIT_RESEL
++** <<alternate_address>>
++**
++**-----------------------------------------------------------
++*/
++
++#define SCR_WAIT_DISC 0x48000000
++#define SCR_WAIT_RESEL 0x50000000
++
++/*-----------------------------------------------------------
++**
++** Bit Set / Reset
++**
++**-----------------------------------------------------------
++**
++** SET (flags {|.. })
++**
++** CLR (flags {|.. })
++**
++**-----------------------------------------------------------
++*/
++
++#define SCR_SET(f) (0x58000000 | (f))
++#define SCR_CLR(f) (0x60000000 | (f))
++
++#define SCR_CARRY 0x00000400
++#define SCR_TRG 0x00000200
++#define SCR_ACK 0x00000040
++#define SCR_ATN 0x00000008
++
++
++
++
++/*-----------------------------------------------------------
++**
++** Memory to memory move
++**
++**-----------------------------------------------------------
++**
++** COPY (bytecount)
++** << source_address >>
++** << destination_address >>
++**
++** SCR_COPY sets the NO FLUSH option by default.
++** SCR_COPY_F does not set this option.
++**
++** For chips which do not support this option,
++** ncr_copy_and_bind() will remove this bit.
++**-----------------------------------------------------------
++*/
++
++#define SCR_NO_FLUSH 0x01000000
++
++#define SCR_COPY(n) (0xc0000000 | SCR_NO_FLUSH | (n))
++#define SCR_COPY_F(n) (0xc0000000 | (n))
++
++/*-----------------------------------------------------------
++**
++** Register move and binary operations
++**
++**-----------------------------------------------------------
++**
++** SFBR_REG (reg, op, data) reg = SFBR op data
++** << 0 >>
++**
++** REG_SFBR (reg, op, data) SFBR = reg op data
++** << 0 >>
++**
++** REG_REG (reg, op, data) reg = reg op data
++** << 0 >>
++**
++**-----------------------------------------------------------
++** On 810A, 860, 825A, 875, 895 and 896 chips the content
++** of SFBR register can be used as data (SCR_SFBR_DATA).
++** The 896 has additionnal IO registers starting at
++** offset 0x80. Bit 7 of register offset is stored in
++** bit 7 of the SCRIPTS instruction first DWORD.
++**-----------------------------------------------------------
++*/
++
++#define SCR_REG_OFS(ofs) ((((ofs) & 0x7f) << 16ul) + ((ofs) & 0x80))
++
++#define SCR_SFBR_REG(reg,op,data) \
++ (0x68000000 | (SCR_REG_OFS(REG(reg))) | (op) | (((data)&0xff)<<8ul))
++
++#define SCR_REG_SFBR(reg,op,data) \
++ (0x70000000 | (SCR_REG_OFS(REG(reg))) | (op) | (((data)&0xff)<<8ul))
++
++#define SCR_REG_REG(reg,op,data) \
++ (0x78000000 | (SCR_REG_OFS(REG(reg))) | (op) | (((data)&0xff)<<8ul))
++
++
++#define SCR_LOAD 0x00000000
++#define SCR_SHL 0x01000000
++#define SCR_OR 0x02000000
++#define SCR_XOR 0x03000000
++#define SCR_AND 0x04000000
++#define SCR_SHR 0x05000000
++#define SCR_ADD 0x06000000
++#define SCR_ADDC 0x07000000
++
++#define SCR_SFBR_DATA (0x00800000>>8ul) /* Use SFBR as data */
++
++/*-----------------------------------------------------------
++**
++** FROM_REG (reg) SFBR = reg
++** << 0 >>
++**
++** TO_REG (reg) reg = SFBR
++** << 0 >>
++**
++** LOAD_REG (reg, data) reg = <data>
++** << 0 >>
++**
++** LOAD_SFBR(data) SFBR = <data>
++** << 0 >>
++**
++**-----------------------------------------------------------
++*/
++
++#define SCR_FROM_REG(reg) \
++ SCR_REG_SFBR(reg,SCR_OR,0)
++
++#define SCR_TO_REG(reg) \
++ SCR_SFBR_REG(reg,SCR_OR,0)
++
++#define SCR_LOAD_REG(reg,data) \
++ SCR_REG_REG(reg,SCR_LOAD,data)
++
++#define SCR_LOAD_SFBR(data) \
++ (SCR_REG_SFBR (gpreg, SCR_LOAD, data))
++
++/*-----------------------------------------------------------
++**
++** LOAD from memory to register.
++** STORE from register to memory.
++**
++** Only supported by 810A, 860, 825A, 875, 895 and 896.
++**
++**-----------------------------------------------------------
++**
++** LOAD_ABS (LEN)
++** <<start address>>
++**
++** LOAD_REL (LEN) (DSA relative)
++** <<dsa_offset>>
++**
++**-----------------------------------------------------------
++*/
++
++#define SCR_REG_OFS2(ofs) (((ofs) & 0xff) << 16ul)
++#define SCR_NO_FLUSH2 0x02000000
++#define SCR_DSA_REL2 0x10000000
++
++#define SCR_LOAD_R(reg, how, n) \
++ (0xe1000000 | how | (SCR_REG_OFS2(REG(reg))) | (n))
++
++#define SCR_STORE_R(reg, how, n) \
++ (0xe0000000 | how | (SCR_REG_OFS2(REG(reg))) | (n))
++
++#define SCR_LOAD_ABS(reg, n) SCR_LOAD_R(reg, SCR_NO_FLUSH2, n)
++#define SCR_LOAD_REL(reg, n) SCR_LOAD_R(reg, SCR_NO_FLUSH2|SCR_DSA_REL2, n)
++#define SCR_LOAD_ABS_F(reg, n) SCR_LOAD_R(reg, 0, n)
++#define SCR_LOAD_REL_F(reg, n) SCR_LOAD_R(reg, SCR_DSA_REL2, n)
++
++#define SCR_STORE_ABS(reg, n) SCR_STORE_R(reg, SCR_NO_FLUSH2, n)
++#define SCR_STORE_REL(reg, n) SCR_STORE_R(reg, SCR_NO_FLUSH2|SCR_DSA_REL2,n)
++#define SCR_STORE_ABS_F(reg, n) SCR_STORE_R(reg, 0, n)
++#define SCR_STORE_REL_F(reg, n) SCR_STORE_R(reg, SCR_DSA_REL2, n)
++
++
++/*-----------------------------------------------------------
++**
++** Waiting for Disconnect or Reselect
++**
++**-----------------------------------------------------------
++**
++** JUMP [ | IFTRUE/IFFALSE ( ... ) ]
++** <<address>>
++**
++** JUMPR [ | IFTRUE/IFFALSE ( ... ) ]
++** <<distance>>
++**
++** CALL [ | IFTRUE/IFFALSE ( ... ) ]
++** <<address>>
++**
++** CALLR [ | IFTRUE/IFFALSE ( ... ) ]
++** <<distance>>
++**
++** RETURN [ | IFTRUE/IFFALSE ( ... ) ]
++** <<dummy>>
++**
++** INT [ | IFTRUE/IFFALSE ( ... ) ]
++** <<ident>>
++**
++** INT_FLY [ | IFTRUE/IFFALSE ( ... ) ]
++** <<ident>>
++**
++** Conditions:
++** WHEN (phase)
++** IF (phase)
++** CARRYSET
++** DATA (data, mask)
++**
++**-----------------------------------------------------------
++*/
++
++#define SCR_NO_OP 0x80000000
++#define SCR_JUMP 0x80080000
++#define SCR_JUMP64 0x80480000
++#define SCR_JUMPR 0x80880000
++#define SCR_CALL 0x88080000
++#define SCR_CALLR 0x88880000
++#define SCR_RETURN 0x90080000
++#define SCR_INT 0x98080000
++#define SCR_INT_FLY 0x98180000
++
++#define IFFALSE(arg) (0x00080000 | (arg))
++#define IFTRUE(arg) (0x00000000 | (arg))
++
++#define WHEN(phase) (0x00030000 | (phase))
++#define IF(phase) (0x00020000 | (phase))
++
++#define DATA(D) (0x00040000 | ((D) & 0xff))
++#define MASK(D,M) (0x00040000 | (((M ^ 0xff) & 0xff) << 8ul)|((D) & 0xff))
++
++#define CARRYSET (0x00200000)
++
++/*-----------------------------------------------------------
++**
++** SCSI constants.
++**
++**-----------------------------------------------------------
++*/
++
++/*
++** Status
++*/
++
++#define S_GOOD (0x00)
++#define S_CHECK_COND (0x02)
++#define S_COND_MET (0x04)
++#define S_BUSY (0x08)
++#define S_INT (0x10)
++#define S_INT_COND_MET (0x14)
++#define S_CONFLICT (0x18)
++#define S_TERMINATED (0x20)
++#define S_QUEUE_FULL (0x28)
++#define S_ILLEGAL (0xff)
++#define S_SENSE (0x80)
++
++/*
++ * End of ncrreg from FreeBSD
++ */
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/scsi/lasi700.c CVS2_6_14_PA0/drivers/scsi/lasi700.c
---- LINUS_2_6_14/drivers/scsi/lasi700.c 2005-10-27 21:30:42.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/scsi/lasi700.c 2005-09-10 12:19:41.000000000 -0600
-@@ -98,7 +98,7 @@
- static int __init
- lasi700_probe(struct parisc_device *dev)
- {
-- unsigned long base = dev->hpa + LASI_SCSI_CORE_OFFSET;
-+ unsigned long base = dev->hpa.start + LASI_SCSI_CORE_OFFSET;
- struct NCR_700_Host_Parameters *hostdata;
- struct Scsi_Host *host;
+ /*
+ Build a scatter/gather entry.
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_2/sym_defs.h CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_2/sym_defs.h
+--- LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_2/sym_defs.h 2005-12-27 13:25:49.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_2/sym_defs.h 2005-12-12 09:00:09.000000000 -0700
+@@ -40,7 +40,7 @@
+ #ifndef SYM_DEFS_H
+ #define SYM_DEFS_H
-@@ -125,8 +125,6 @@
- hostdata->dmode_extra = DMODE_FC2;
- }
+-#define SYM_VERSION "2.2.1"
++#define SYM_VERSION "2.2.2"
+ #define SYM_DRIVER_NAME "sym-" SYM_VERSION
-- NCR_700_set_mem_mapped(hostdata);
--
- host = NCR_700_detect(&lasi700_template, hostdata, &dev->dev);
- if (!host)
- goto out_kfree;
-@@ -168,7 +166,7 @@
- }
-
- static struct parisc_driver lasi700_driver = {
-- .name = "Lasi SCSI",
-+ .name = "lasi_scsi",
- .id_table = lasi700_ids,
- .probe = lasi700_probe,
- .remove = __devexit_p(lasi700_driver_remove),
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/scsi/sym53c8xx_2/sym_fw.c CVS2_6_14_PA0/drivers/scsi/sym53c8xx_2/sym_fw.c
---- LINUS_2_6_14/drivers/scsi/sym53c8xx_2/sym_fw.c 2005-10-27 21:30:42.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/scsi/sym53c8xx_2/sym_fw.c 2005-09-27 08:18:02.000000000 -0600
+ /*
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_2/sym_fw.c CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_2/sym_fw.c
+--- LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_2/sym_fw.c 2005-12-27 13:25:49.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_2/sym_fw.c 2005-09-27 08:18:02.000000000 -0600
@@ -37,11 +37,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
@@ -10564,9 +4197,9 @@
SYM_GEN_B(struct SYM_FWB_SCR, start64)
SYM_GEN_B(struct SYM_FWB_SCR, pm_handle)
};
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/scsi/sym53c8xx_2/sym_fw.h CVS2_6_14_PA0/drivers/scsi/sym53c8xx_2/sym_fw.h
---- LINUS_2_6_14/drivers/scsi/sym53c8xx_2/sym_fw.h 2005-10-27 21:30:42.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/scsi/sym53c8xx_2/sym_fw.h 2005-09-27 08:18:02.000000000 -0600
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_2/sym_fw.h CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_2/sym_fw.h
+--- LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_2/sym_fw.h 2005-12-27 13:25:49.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_2/sym_fw.h 2005-09-27 08:18:02.000000000 -0600
@@ -92,9 +92,6 @@
};
struct sym_fwb_ofs {
@@ -10587,9 +4220,9 @@
SYM_GEN_B(u32, start64);
SYM_GEN_B(u32, pm_handle);
};
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/scsi/sym53c8xx_2/sym_fw1.h CVS2_6_14_PA0/drivers/scsi/sym53c8xx_2/sym_fw1.h
---- LINUS_2_6_14/drivers/scsi/sym53c8xx_2/sym_fw1.h 2005-10-27 21:30:43.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/scsi/sym53c8xx_2/sym_fw1.h 2005-09-27 08:18:02.000000000 -0600
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_2/sym_fw1.h CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_2/sym_fw1.h
+--- LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_2/sym_fw1.h 2005-12-27 13:25:49.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_2/sym_fw1.h 2005-09-27 08:18:02.000000000 -0600
@@ -197,12 +197,6 @@
u32 bad_status [ 7];
u32 wsr_ma_helper [ 4];
@@ -10652,9 +4285,9 @@
}/*-------------------------< ZERO >-----------------------------*/,{
SCR_DATA_ZERO,
}/*-------------------------< SCRATCH >--------------------------*/,{
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/scsi/sym53c8xx_2/sym_fw2.h CVS2_6_14_PA0/drivers/scsi/sym53c8xx_2/sym_fw2.h
---- LINUS_2_6_14/drivers/scsi/sym53c8xx_2/sym_fw2.h 2005-10-27 21:30:43.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/scsi/sym53c8xx_2/sym_fw2.h 2005-09-27 08:18:02.000000000 -0600
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_2/sym_fw2.h CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_2/sym_fw2.h
+--- LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_2/sym_fw2.h 2005-12-27 13:25:49.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_2/sym_fw2.h 2005-09-27 08:18:02.000000000 -0600
@@ -191,13 +191,6 @@
u32 pm_wsr_handle [ 38];
u32 wsr_ma_helper [ 4];
@@ -10721,22 +4354,67 @@
}/*-------------------------< ZERO >-----------------------------*/,{
SCR_DATA_ZERO,
}/*-------------------------< SCRATCH >--------------------------*/,{
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/scsi/sym53c8xx_2/sym_glue.c CVS2_6_14_PA0/drivers/scsi/sym53c8xx_2/sym_glue.c
---- LINUS_2_6_14/drivers/scsi/sym53c8xx_2/sym_glue.c 2005-10-27 21:30:43.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/scsi/sym53c8xx_2/sym_glue.c 2005-09-27 08:18:02.000000000 -0600
-@@ -514,9 +514,10 @@
- */
- int sym_setup_data_and_start(struct sym_hcb *np, struct scsi_cmnd *cmd, struct sym_ccb *cp)
- {
-- int dir;
- struct sym_tcb *tp = &np->target[cp->target];
- struct sym_lcb *lp = sym_lp(tp, cp->lun);
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_2/sym_glue.c CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_2/sym_glue.c
+--- LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_2/sym_glue.c 2005-12-27 13:25:49.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_2/sym_glue.c 2005-12-18 08:29:09.000000000 -0700
+@@ -134,45 +134,6 @@
+ }
+ }
+
+-/*
+- * We used to try to deal with 64-bit BARs here, but don't any more.
+- * There are many parts of this driver which would need to be modified
+- * to handle a 64-bit base address, including scripts. I'm uncomfortable
+- * with making those changes when I have no way of testing it, so I'm
+- * just going to disable it.
+- *
+- * Note that some machines (eg HP rx8620 and Superdome) have bus addresses
+- * below 4GB and physical addresses above 4GB. These will continue to work.
+- */
+-static int __devinit
+-pci_get_base_address(struct pci_dev *pdev, int index, unsigned long *basep)
+-{
+- u32 tmp;
+- unsigned long base;
+-#define PCI_BAR_OFFSET(index) (PCI_BASE_ADDRESS_0 + (index<<2))
+-
+- pci_read_config_dword(pdev, PCI_BAR_OFFSET(index++), &tmp);
+- base = tmp;
+- if ((tmp & 0x7) == PCI_BASE_ADDRESS_MEM_TYPE_64) {
+- pci_read_config_dword(pdev, PCI_BAR_OFFSET(index++), &tmp);
+- if (tmp > 0) {
+- dev_err(&pdev->dev,
+- "BAR %d is 64-bit, disabling\n", index - 1);
+- base = 0;
+- }
+- }
+-
+- if ((base & PCI_BASE_ADDRESS_SPACE) == PCI_BASE_ADDRESS_SPACE_IO) {
+- base &= PCI_BASE_ADDRESS_IO_MASK;
+- } else {
+- base &= PCI_BASE_ADDRESS_MEM_MASK;
+- }
+-
+- *basep = base;
+- return index;
+-#undef PCI_BAR_OFFSET
+-}
+-
+ static struct scsi_transport_template *sym2_transport_template = NULL;
+
+ /*
+@@ -514,9 +475,8 @@
+ */
+ int sym_setup_data_and_start(struct sym_hcb *np, struct scsi_cmnd *cmd, struct sym_ccb *cp)
+ {
+ u32 lastp, goalp;
-+ int dir;
+ int dir;
+- struct sym_tcb *tp = &np->target[cp->target];
+- struct sym_lcb *lp = sym_lp(tp, cp->lun);
/*
* Build the CDB.
-@@ -534,15 +535,47 @@
+@@ -534,15 +494,47 @@
sym_set_cam_status(cmd, DID_ERROR);
goto out_abort;
}
@@ -10754,8 +4432,7 @@
/*
- * Set data pointers.
+ * Set the data pointer.
- */
-- sym_setup_data_pointers(np, cp, dir);
++ */
+ switch (dir) {
+ case DMA_BIDIRECTIONAL:
+ printk("%s: got DMA_BIDIRECTIONAL command", sym_name(np));
@@ -10778,7 +4455,8 @@
+
+ /*
+ * Set all pointers values needed by SCRIPTS.
-+ */
+ */
+- sym_setup_data_pointers(np, cp, dir);
+ cp->phys.head.lastp = cpu_to_scr(lastp);
+ cp->phys.head.savep = cpu_to_scr(lastp);
+ cp->startp = cp->phys.head.savep;
@@ -10786,7 +4464,7 @@
/*
* When `#ifed 1', the code below makes the driver
-@@ -563,10 +596,7 @@
+@@ -563,10 +555,7 @@
/*
* activate this job.
*/
@@ -10794,11 +4472,134 @@
- sym_start_next_ccbs(np, lp, 2);
- else
- sym_put_start_queue(np, cp);
-+ sym_start_next_ccbs(np, lp, 2);
++ sym_put_start_queue(np, cp);
return 0;
out_abort:
-@@ -981,15 +1011,13 @@
+@@ -721,7 +710,6 @@
+ * What we will do regarding the involved SCSI command.
+ */
+ #define SYM_EH_DO_IGNORE 0
+-#define SYM_EH_DO_COMPLETE 1
+ #define SYM_EH_DO_WAIT 2
+
+ /*
+@@ -773,25 +761,18 @@
+
+ dev_warn(&cmd->device->sdev_gendev, "%s operation started.\n", opname);
+
++ spin_lock_irq(cmd->device->host->host_lock);
+ /* This one is queued in some place -> to wait for completion */
+ FOR_EACH_QUEUED_ELEMENT(&np->busy_ccbq, qp) {
+ struct sym_ccb *cp = sym_que_entry(qp, struct sym_ccb, link_ccbq);
+ if (cp->cmd == cmd) {
+ to_do = SYM_EH_DO_WAIT;
+- goto prepare;
++ break;
+ }
+ }
+
+-prepare:
+- /* Prepare stuff to either ignore, complete or wait for completion */
+- switch(to_do) {
+- default:
+- case SYM_EH_DO_IGNORE:
+- break;
+- case SYM_EH_DO_WAIT:
++ if (to_do == SYM_EH_DO_WAIT) {
+ init_completion(&ep->done);
+- /* fall through */
+- case SYM_EH_DO_COMPLETE:
+ ep->old_done = cmd->scsi_done;
+ cmd->scsi_done = sym_eh_done;
+ SYM_UCMD_PTR(cmd)->eh_wait = ep;
+@@ -827,9 +808,6 @@
+ }
+
+ 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, DID_ABORT);
+
+ /* Wait for completion with locks released, as required by kernel */
+ if (to_do == SYM_EH_DO_WAIT) {
+@@ -845,6 +823,7 @@
+ if (ep->timed_out)
+ sts = -2;
+ }
++ spin_unlock_irq(cmd->device->host->host_lock);
+ dev_warn(&cmd->device->sdev_gendev, "%s operation %s.\n", opname,
+ sts==0 ? "complete" :sts==-2 ? "timed-out" : "failed");
+ return sts ? SCSI_FAILED : SCSI_SUCCESS;
+@@ -856,46 +835,22 @@
+ */
+ static int sym53c8xx_eh_abort_handler(struct scsi_cmnd *cmd)
+ {
+- int rc;
+-
+- spin_lock_irq(cmd->device->host->host_lock);
+- rc = sym_eh_handler(SYM_EH_ABORT, "ABORT", cmd);
+- spin_unlock_irq(cmd->device->host->host_lock);
+-
+- return rc;
++ return sym_eh_handler(SYM_EH_ABORT, "ABORT", cmd);
+ }
+
+ static int sym53c8xx_eh_device_reset_handler(struct scsi_cmnd *cmd)
+ {
+- int rc;
+-
+- spin_lock_irq(cmd->device->host->host_lock);
+- rc = sym_eh_handler(SYM_EH_DEVICE_RESET, "DEVICE RESET", cmd);
+- spin_unlock_irq(cmd->device->host->host_lock);
+-
+- return rc;
++ return sym_eh_handler(SYM_EH_DEVICE_RESET, "DEVICE RESET", cmd);
+ }
+
+ static int sym53c8xx_eh_bus_reset_handler(struct scsi_cmnd *cmd)
+ {
+- int rc;
+-
+- spin_lock_irq(cmd->device->host->host_lock);
+- rc = sym_eh_handler(SYM_EH_BUS_RESET, "BUS RESET", cmd);
+- spin_unlock_irq(cmd->device->host->host_lock);
+-
+- return rc;
++ return sym_eh_handler(SYM_EH_BUS_RESET, "BUS RESET", cmd);
+ }
+
+ static int sym53c8xx_eh_host_reset_handler(struct scsi_cmnd *cmd)
+ {
+- int rc;
+-
+- spin_lock_irq(cmd->device->host->host_lock);
+- rc = sym_eh_handler(SYM_EH_HOST_RESET, "HOST RESET", cmd);
+- spin_unlock_irq(cmd->device->host->host_lock);
+-
+- return rc;
++ return sym_eh_handler(SYM_EH_HOST_RESET, "HOST RESET", cmd);
+ }
+
+ /*
+@@ -914,15 +869,12 @@
+ if (reqtags > lp->s.scdev_depth)
+ reqtags = lp->s.scdev_depth;
+
+- lp->started_limit = reqtags ? reqtags : 2;
+- lp->started_max = 1;
+ lp->s.reqtags = reqtags;
+
+ if (reqtags != oldtags) {
+ dev_info(&tp->starget->dev,
+ "tagged command queuing %s, command queue depth %d.\n",
+- lp->s.reqtags ? "enabled" : "disabled",
+- lp->started_limit);
++ lp->s.reqtags ? "enabled" : "disabled", reqtags);
+ }
+ }
+
+@@ -981,15 +933,14 @@
static int sym53c8xx_slave_alloc(struct scsi_device *sdev)
{
@@ -10814,21 +4615,41 @@
- np = sym_get_hcb(sdev->host);
- tp = &np->target[sdev->id];
-
++ tp->starget = sdev->sdev_target;
/*
* Fail the device init if the device is flagged NOSCAN at BOOT in
* the NVRAM. This may speed up boot and maintain coherency with
-@@ -1005,6 +1033,10 @@
+@@ -999,35 +950,41 @@
+ * 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)) {
++ if (tp->usrflags & SYM_SCAN_BOOT_DISABLED) {
+ tp->usrflags &= ~SYM_SCAN_BOOT_DISABLED;
++ starget_printk(KERN_INFO, tp->starget,
++ "Scan at boot disabled in NVRAM\n");
return -ENXIO;
}
+- tp->starget = sdev->sdev_target;
++ if (tp->usrflags & SYM_SCAN_LUNS_DISABLED) {
++ if (sdev->lun != 0)
++ return -ENXIO;
++ starget_printk(KERN_INFO, tp->starget,
++ "Multiple LUNs disabled in NVRAM\n");
++ }
++
+ lp = sym_alloc_lcb(np, sdev->id, sdev->lun);
+ if (!lp)
+ return -ENOMEM;
+
- tp->starget = sdev->sdev_target;
++ spi_min_period(tp->starget) = tp->usr_period;
++ spi_max_width(tp->starget) = tp->usr_width;
++
return 0;
}
-@@ -1012,22 +1044,14 @@
+
/*
* Linux entry point for device queue sizing.
*/
@@ -10855,7 +4676,7 @@
* Get user flags.
*/
lp->curr_flags = lp->user_flags;
-@@ -1038,10 +1062,10 @@
+@@ -1038,10 +995,10 @@
* Use at least 2.
* Donnot use more than our maximum.
*/
@@ -10868,7 +4689,7 @@
reqtags = 0;
#if 1 /* Avoid to locally queue commands for no good reasons */
if (reqtags > SYM_CONF_MAX_TAG)
-@@ -1050,19 +1074,30 @@
+@@ -1050,19 +1007,30 @@
#else
depth_to_use = (reqtags ? SYM_CONF_MAX_TAG : 2);
#endif
@@ -10904,7 +4725,46 @@
/*
* Linux entry point for info() function
*/
-@@ -1926,6 +1961,7 @@
+@@ -1497,7 +1465,7 @@
+ {
+ #if SYM_CONF_DMA_ADDRESSING_MODE > 0
+ #if SYM_CONF_DMA_ADDRESSING_MODE == 1
+-#define DMA_DAC_MASK 0x000000ffffffffffULL /* 40-bit */
++#define DMA_DAC_MASK DMA_40BIT_MASK
+ #elif SYM_CONF_DMA_ADDRESSING_MODE == 2
+ #define DMA_DAC_MASK DMA_64BIT_MASK
+ #endif
+@@ -1820,15 +1788,25 @@
+ static void __devinit
+ sym_init_device(struct pci_dev *pdev, struct sym_device *device)
+ {
+- int i;
++ int i = 2;
++ struct pci_bus_region bus_addr;
+
+ device->host_id = SYM_SETUP_HOST_ID;
+ device->pdev = pdev;
+
+- i = pci_get_base_address(pdev, 1, &device->mmio_base);
+- pci_get_base_address(pdev, i, &device->ram_base);
++ pcibios_resource_to_bus(pdev, &bus_addr, &pdev->resource[1]);
++ device->mmio_base = bus_addr.start;
++
++ /*
++ * If the BAR is 64-bit, resource 2 will be occupied by the
++ * upper 32 bits
++ */
++ if (!pdev->resource[i].flags)
++ i++;
++ pcibios_resource_to_bus(pdev, &bus_addr, &pdev->resource[i]);
++ device->ram_base = bus_addr.start;
+
+-#ifndef CONFIG_SCSI_SYM53C8XX_IOMAPPED
++#ifdef CONFIG_SCSI_SYM53C8XX_MMIO
+ if (device->mmio_base)
+ device->s.ioaddr = pci_iomap(pdev, 1,
+ pci_resource_len(pdev, 1));
+@@ -1926,6 +1904,7 @@
.queuecommand = sym53c8xx_queue_command,
.slave_alloc = sym53c8xx_slave_alloc,
.slave_configure = sym53c8xx_slave_configure,
@@ -10912,17 +4772,19 @@
.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_14/drivers/scsi/sym53c8xx_2/sym_glue.h CVS2_6_14_PA0/drivers/scsi/sym53c8xx_2/sym_glue.h
---- LINUS_2_6_14/drivers/scsi/sym53c8xx_2/sym_glue.h 2005-10-27 21:30:43.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/scsi/sym53c8xx_2/sym_glue.h 2005-09-27 08:18:02.000000000 -0600
-@@ -68,7 +68,6 @@
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_2/sym_glue.h CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_2/sym_glue.h
+--- LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_2/sym_glue.h 2005-12-27 13:25:49.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_2/sym_glue.h 2005-12-18 08:29:09.000000000 -0700
+@@ -68,8 +68,7 @@
*/
#define SYM_CONF_TIMER_INTERVAL ((HZ+1)/2)
-#define SYM_OPT_HANDLE_DIR_UNKNOWN
- #define SYM_OPT_HANDLE_DEVICE_QUEUEING
+-#define SYM_OPT_HANDLE_DEVICE_QUEUEING
++#undef SYM_OPT_HANDLE_DEVICE_QUEUEING
#define SYM_OPT_LIMIT_COMMAND_REORDERING
+ /*
@@ -268,6 +267,5 @@
void sym_xpt_async_sent_bdr(struct sym_hcb *np, int target);
int sym_setup_data_and_start (struct sym_hcb *np, struct scsi_cmnd *csio, struct sym_ccb *cp);
@@ -10930,19 +4792,172 @@
-void sym_sniff_inquiry(struct sym_hcb *np, struct scsi_cmnd *cmd, int resid);
#endif /* SYM_GLUE_H */
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/scsi/sym53c8xx_2/sym_hipd.c CVS2_6_14_PA0/drivers/scsi/sym53c8xx_2/sym_hipd.c
---- LINUS_2_6_14/drivers/scsi/sym53c8xx_2/sym_hipd.c 2005-10-27 21:30:43.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/scsi/sym53c8xx_2/sym_hipd.c 2005-09-27 08:18:02.000000000 -0600
-@@ -1519,7 +1519,7 @@
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_2/sym_hipd.c CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_2/sym_hipd.c
+--- LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_2/sym_hipd.c 2005-12-27 13:25:49.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_2/sym_hipd.c 2005-12-18 08:29:09.000000000 -0700
+@@ -40,6 +40,7 @@
+
+ #include <linux/slab.h>
+ #include <asm/param.h> /* for timeouts in units of HZ */
++#include <scsi/scsi_dbg.h>
+
+ #include "sym_glue.h"
+ #include "sym_nvram.h"
+@@ -70,32 +71,12 @@
+ printf (".\n");
+ }
+
+-/*
+- * Print out the content of a SCSI message.
+- */
+-static int sym_show_msg (u_char * msg)
+-{
+- u_char i;
+- printf ("%x",*msg);
+- if (*msg==M_EXTENDED) {
+- for (i=1;i<8;i++) {
+- if (i-1>msg[1]) break;
+- printf ("-%x",msg[i]);
+- }
+- return (i+1);
+- } else if ((*msg & 0xf0) == 0x20) {
+- printf ("-%x",msg[1]);
+- return (2);
+- }
+- return (1);
+-}
+-
+ static void sym_print_msg(struct sym_ccb *cp, char *label, u_char *msg)
+ {
+ sym_print_addr(cp->cmd, "%s: ", label);
+
+- sym_show_msg(msg);
+- printf(".\n");
++ scsi_print_msg(msg);
++ printf("\n");
+ }
+
+ static void sym_print_nego_msg(struct sym_hcb *np, int target, char *label, u_char *msg)
+@@ -103,8 +84,8 @@
+ struct sym_tcb *tp = &np->target[target];
+ dev_info(&tp->starget->dev, "%s: ", label);
+
+- sym_show_msg(msg);
+- printf(".\n");
++ scsi_print_msg(msg);
++ printf("\n");
+ }
+
+ /*
+@@ -635,29 +616,6 @@
+ }
+ }
+
+-
+-/*
+- * Print out the list of targets that have some flag disabled by user.
+- */
+-static void sym_print_targets_flag(struct sym_hcb *np, int mask, char *msg)
+-{
+- int cnt;
+- int i;
+-
+- for (cnt = 0, i = 0 ; i < SYM_CONF_MAX_TARGET ; i++) {
+- if (i == np->myaddr)
+- continue;
+- if (np->target[i].usrflags & mask) {
+- if (!cnt++)
+- printf("%s: %s disabled for targets",
+- sym_name(np), msg);
+- printf(" %d", i);
+- }
+- }
+- if (cnt)
+- printf(".\n");
+-}
+-
/*
- * Insert a job into the start queue.
+ * Save initial settings of some IO registers.
+ * Assumed to have been set by BIOS.
+@@ -962,7 +920,7 @@
+ tp->usrflags |= (SYM_DISC_ENABLED | SYM_TAGS_ENABLED);
+ tp->usrtags = SYM_SETUP_MAX_TAG;
+
+- sym_nvram_setup_target(np, i, nvram);
++ sym_nvram_setup_target(tp, i, nvram);
+
+ if (!tp->usrtags)
+ tp->usrflags &= ~SYM_TAGS_ENABLED;
+@@ -1005,13 +963,6 @@
+ sym_name(np), np->rv_scntl3, np->rv_dmode, np->rv_dcntl,
+ np->rv_ctest3, np->rv_ctest4, np->rv_ctest5);
+ }
+- /*
+- * Let user be aware of targets that have some disable flags set.
+- */
+- sym_print_targets_flag(np, SYM_SCAN_BOOT_DISABLED, "SCAN AT BOOT");
+- if (sym_verbose)
+- sym_print_targets_flag(np, SYM_SCAN_LUNS_DISABLED,
+- "SCAN FOR LUNS");
+
+ return 0;
+ }
+@@ -1021,8 +972,8 @@
+ *
+ * Has to be called with interrupts disabled.
*/
--void sym_put_start_queue(struct sym_hcb *np, struct sym_ccb *cp)
-+static void sym_put_start_queue(struct sym_hcb *np, struct sym_ccb *cp)
+-#ifndef CONFIG_SCSI_SYM53C8XX_IOMAPPED
+-static int sym_regtest (struct sym_hcb *np)
++#ifdef CONFIG_SCSI_SYM53C8XX_MMIO
++static int sym_regtest(struct sym_hcb *np)
+ {
+ register volatile u32 data;
+ /*
+@@ -1040,20 +991,25 @@
+ #endif
+ printf ("CACHE TEST FAILED: reg dstat-sstat2 readback %x.\n",
+ (unsigned) data);
+- return (0x10);
++ return 0x10;
+ }
+- return (0);
++ return 0;
++}
++#else
++static inline int sym_regtest(struct sym_hcb *np)
++{
++ return 0;
+ }
+ #endif
+
+-static int sym_snooptest (struct sym_hcb *np)
++static int sym_snooptest(struct sym_hcb *np)
{
- u_short qidx;
+- u32 sym_rd, sym_wr, sym_bk, host_rd, host_wr, pc, dstat;
+- int i, err=0;
+-#ifndef CONFIG_SCSI_SYM53C8XX_IOMAPPED
+- err |= sym_regtest (np);
+- if (err) return (err);
+-#endif
++ u32 sym_rd, sym_wr, sym_bk, host_rd, host_wr, pc, dstat;
++ int i, err;
++
++ err = sym_regtest(np);
++ if (err)
++ return err;
+ restart_test:
+ /*
+ * Enable Master Parity Checking as we intend
+@@ -1142,7 +1098,7 @@
+ err |= 4;
+ }
+
+- return (err);
++ return err;
+ }
-@@ -3650,7 +3650,7 @@
+ /*
+@@ -3654,7 +3610,7 @@
* If result is dp_sg = SYM_CONF_MAX_SG, then we are at the
* end of the data.
*/
@@ -10951,7 +4966,7 @@
dp_sg = SYM_CONF_MAX_SG;
if (dp_scr != tmp)
dp_sg -= (tmp - 8 - (int)dp_scr) / (2*4);
-@@ -3757,7 +3757,7 @@
+@@ -3761,7 +3717,7 @@
* And our alchemy:) allows to easily calculate the data
* script address we want to return for the next data phase.
*/
@@ -10960,7 +4975,7 @@
dp_ret = dp_ret - 8 - (SYM_CONF_MAX_SG - dp_sg) * (2*4);
/*
-@@ -3853,7 +3853,7 @@
+@@ -3857,7 +3813,7 @@
* If all data has been transferred,
* there is no residual.
*/
@@ -10969,7 +4984,7 @@
return resid;
/*
-@@ -4660,30 +4660,7 @@
+@@ -4664,30 +4620,7 @@
goto out;
cp = sym_que_entry(qp, struct sym_ccb, link_ccbq);
@@ -11001,7 +5016,27 @@
/*
* If we have been asked for a tagged command.
*/
-@@ -4836,12 +4813,6 @@
+@@ -4696,7 +4629,8 @@
+ * Debugging purpose.
+ */
+ #ifndef SYM_OPT_HANDLE_DEVICE_QUEUEING
+- assert(lp->busy_itl == 0);
++ if (lp->busy_itl != 0)
++ goto out_free;
+ #endif
+ /*
+ * Allocate resources for tags if not yet.
+@@ -4741,7 +4675,8 @@
+ * Debugging purpose.
+ */
+ #ifndef SYM_OPT_HANDLE_DEVICE_QUEUEING
+- assert(lp->busy_itl == 0 && lp->busy_itlq == 0);
++ if (lp->busy_itl != 0 || lp->busy_itlq != 0)
++ goto out_free;
+ #endif
+ /*
+ * Count this nexus for this LUN.
+@@ -4840,12 +4775,6 @@
lp->head.resel_sa =
cpu_to_scr(SCRIPTB_BA(np, resel_bad_lun));
}
@@ -11014,7 +5049,7 @@
/*
* We donnot queue more than 1 ccb per target
-@@ -4993,20 +4964,7 @@
+@@ -4997,20 +4926,7 @@
struct sym_lcb *sym_alloc_lcb (struct sym_hcb *np, u_char tn, u_char ln)
{
struct sym_tcb *tp = &np->target[tn];
@@ -11036,7 +5071,7 @@
/*
* Initialize the target control block if not yet.
-@@ -5078,13 +5036,7 @@
+@@ -5082,13 +4998,7 @@
lp->started_max = SYM_CONF_MAX_TASK;
lp->started_limit = SYM_CONF_MAX_TASK;
#endif
@@ -11051,7 +5086,7 @@
fail:
return lp;
}
-@@ -5099,12 +5051,6 @@
+@@ -5103,12 +5013,6 @@
int i;
/*
@@ -11064,7 +5099,7 @@
* Allocate the task table and and the tag allocation
* circular buffer. We want both or none.
*/
-@@ -5477,8 +5423,7 @@
+@@ -5481,8 +5385,7 @@
/*
* Donnot start more than 1 command after an error.
*/
@@ -11074,7 +5109,7 @@
#endif
}
-@@ -5517,17 +5462,11 @@
+@@ -5521,17 +5424,11 @@
lp = sym_lp(tp, cp->lun);
/*
@@ -11093,7 +5128,7 @@
resid = sym_compute_residual(np, cp);
/*
-@@ -5547,15 +5486,6 @@
+@@ -5551,15 +5448,6 @@
*/
sym_set_cam_result_ok(cp, cmd, resid);
@@ -11109,7 +5144,7 @@
#ifdef SYM_OPT_HANDLE_DEVICE_QUEUEING
/*
* If max number of started ccbs had been reduced,
-@@ -5583,7 +5513,7 @@
+@@ -5587,7 +5475,7 @@
/*
* Requeue a couple of awaiting scsi commands.
*/
@@ -11118,7 +5153,7 @@
sym_start_next_ccbs(np, lp, 2);
#endif
/*
-@@ -5826,8 +5756,7 @@
+@@ -5830,8 +5718,7 @@
SYM_QUEHEAD *qp;
struct sym_ccb *cp;
struct sym_tcb *tp;
@@ -11128,7 +5163,7 @@
if (np->scriptz0)
sym_mfree_dma(np->scriptz0, np->scriptz_sz, "SCRIPTZ0");
-@@ -5853,16 +5782,6 @@
+@@ -5857,16 +5744,6 @@
for (target = 0; target < SYM_CONF_MAX_TARGET ; target++) {
tp = &np->target[target];
@@ -11145,10 +5180,10 @@
#if SYM_CONF_MAX_LUN > 1
kfree(tp->lunmp);
#endif
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/scsi/sym53c8xx_2/sym_hipd.h CVS2_6_14_PA0/drivers/scsi/sym53c8xx_2/sym_hipd.h
---- LINUS_2_6_14/drivers/scsi/sym53c8xx_2/sym_hipd.h 2005-10-27 21:30:43.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/scsi/sym53c8xx_2/sym_hipd.h 2005-09-27 08:18:02.000000000 -0600
-@@ -46,12 +46,6 @@
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_2/sym_hipd.h CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_2/sym_hipd.h
+--- LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_2/sym_hipd.h 2005-12-27 13:25:49.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_2/sym_hipd.h 2005-12-18 08:29:09.000000000 -0700
+@@ -48,12 +48,6 @@
* They may be defined in platform specific headers, if they
* are useful.
*
@@ -11161,7 +5196,7 @@
* SYM_OPT_HANDLE_DEVICE_QUEUEING
* When this option is set, the driver will use a queue per
* device and handle QUEUE FULL status requeuing internally.
-@@ -62,7 +56,6 @@
+@@ -64,7 +58,6 @@
* (set for Linux)
*/
#if 0
@@ -11169,7 +5204,7 @@
#define SYM_OPT_HANDLE_DEVICE_QUEUEING
#define SYM_OPT_LIMIT_COMMAND_REORDERING
#endif
-@@ -414,19 +407,6 @@
+@@ -416,19 +409,6 @@
struct sym_lcb **lunmp; /* Other LCBs [1..MAX_LUN] */
#endif
@@ -11180,245 +5215,2374 @@
- */
- u32 lun_map[(SYM_CONF_MAX_LUN+31)/32];
-
-- /*
-- * Bitmap that tells about LUNs that haven't yet an LCB
-- * allocated (not discovered or LCB allocation failed).
-- */
-- u32 busy0_map[(SYM_CONF_MAX_LUN+31)/32];
+- /*
+- * Bitmap that tells about LUNs that haven't yet an LCB
+- * allocated (not discovered or LCB allocation failed).
+- */
+- u32 busy0_map[(SYM_CONF_MAX_LUN+31)/32];
+-
+ #ifdef SYM_HAVE_STCB
+ /*
+ * O/S specific data structure.
+@@ -454,8 +434,10 @@
+ * Other user settable limits and options.
+ * These limits are read from the NVRAM if present.
+ */
+- u_char usrflags;
+- u_short usrtags;
++ unsigned char usrflags;
++ unsigned char usr_period;
++ unsigned char usr_width;
++ unsigned short usrtags;
+ struct scsi_target *starget;
+ };
+
+@@ -672,9 +654,6 @@
+ */
+ u32 savep; /* Jump address to saved data pointer */
+ u32 lastp; /* SCRIPTS address at end of data */
+-#ifdef SYM_OPT_HANDLE_DIR_UNKNOWN
+- u32 wlastp;
+-#endif
+
+ /*
+ * Status fields.
+@@ -804,9 +783,6 @@
+ SYM_QUEHEAD link_ccbq; /* Link to free/busy CCB queue */
+ u32 startp; /* Initial data pointer */
+ u32 goalp; /* Expected last data pointer */
+-#ifdef SYM_OPT_HANDLE_DIR_UNKNOWN
+- u32 wgoalp;
+-#endif
+ int ext_sg; /* Extreme data pointer, used */
+ int ext_ofs; /* to calculate the residual. */
+ #ifdef SYM_OPT_HANDLE_DEVICE_QUEUEING
+@@ -821,12 +797,6 @@
+
+ #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)
+-#else
+-#define sym_goalp(cp) (cp->goalp)
+-#endif
+-
+ typedef struct device *m_pool_ident_t;
+
+ /*
+@@ -1077,9 +1047,10 @@
+ void sym_print_xerr(struct scsi_cmnd *cmd, int x_status);
+ int sym_reset_scsi_bus(struct sym_hcb *np, int enab_int);
+ struct sym_chip *sym_lookup_chip_table(u_short device_id, u_char revision);
+-void sym_put_start_queue(struct sym_hcb *np, struct sym_ccb *cp);
+ #ifdef SYM_OPT_HANDLE_DEVICE_QUEUEING
+ void sym_start_next_ccbs(struct sym_hcb *np, struct sym_lcb *lp, int maxn);
++#else
++void sym_put_start_queue(struct sym_hcb *np, struct sym_ccb *cp);
+ #endif
+ void sym_start_up(struct sym_hcb *np, int reason);
+ void sym_interrupt(struct sym_hcb *np);
+@@ -1136,71 +1107,6 @@
+ #endif
+
+ /*
+- * Set up data pointers used by SCRIPTS.
+- * Called from O/S specific code.
+- */
+-static inline void sym_setup_data_pointers(struct sym_hcb *np,
+- struct sym_ccb *cp, int dir)
+-{
+- u32 lastp, goalp;
+-
+- /*
+- * No segments means no data.
+- */
+- if (!cp->segments)
+- dir = DMA_NONE;
+-
+- /*
+- * Set the data pointer.
+- */
+- switch(dir) {
+-#ifdef SYM_OPT_HANDLE_DIR_UNKNOWN
+- case DMA_BIDIRECTIONAL:
+-#endif
+- 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 != DMA_BIDIRECTIONAL)
+- break;
+- cp->phys.head.wlastp = cpu_to_scr(lastp);
+- /* fall through */
+-#else
+- break;
+-#endif
+- 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 DMA_NONE:
+- default:
+-#ifdef SYM_OPT_HANDLE_DIR_UNKNOWN
+- cp->host_flags |= HF_DATA_IN;
+-#endif
+- lastp = goalp = SCRIPTB_BA(np, no_data);
+- break;
+- }
+-
+- /*
+- * Set all pointers values needed by SCRIPTS.
+- */
+- cp->phys.head.lastp = cpu_to_scr(lastp);
+- cp->phys.head.savep = cpu_to_scr(lastp);
+- cp->startp = cp->phys.head.savep;
+- cp->goalp = cpu_to_scr(goalp);
+-
+-#ifdef SYM_OPT_HANDLE_DIR_UNKNOWN
+- /*
+- * If direction is unknown, start at data_io.
+- */
+- if (dir == DMA_BIDIRECTIONAL)
+- cp->phys.head.savep = cpu_to_scr(SCRIPTB_BA(np, data_io));
+-#endif
+-}
+-
+-/*
+ * MEMORY ALLOCATOR.
+ */
+
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_2/sym_malloc.c CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_2/sym_malloc.c
+--- LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_2/sym_malloc.c 2005-12-27 13:25:49.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_2/sym_malloc.c 2005-09-27 06:03:22.000000000 -0600
+@@ -37,11 +37,7 @@
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+-#ifdef __FreeBSD__
+-#include <dev/sym/sym_glue.h>
+-#else
+ #include "sym_glue.h"
+-#endif
+
+ /*
+ * Simple power of two buddy-like generic allocator.
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_2/sym_nvram.c CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_2/sym_nvram.c
+--- LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_2/sym_nvram.c 2005-12-27 13:25:49.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_2/sym_nvram.c 2005-12-12 09:00:09.000000000 -0700
+@@ -92,29 +92,32 @@
+ * Get target set-up from Symbios format NVRAM.
+ */
+ static void
+-sym_Symbios_setup_target(struct sym_hcb *np, int target, Symbios_nvram *nvram)
++sym_Symbios_setup_target(struct sym_tcb *tp, int target, Symbios_nvram *nvram)
+ {
+- struct sym_tcb *tp = &np->target[target];
+ Symbios_target *tn = &nvram->target[target];
+
+- tp->usrtags =
+- (tn->flags & SYMBIOS_QUEUE_TAGS_ENABLED)? SYM_SETUP_MAX_TAG : 0;
+-
++ if (!(tn->flags & SYMBIOS_QUEUE_TAGS_ENABLED))
++ tp->usrtags = 0;
+ if (!(tn->flags & SYMBIOS_DISCONNECT_ENABLE))
+ tp->usrflags &= ~SYM_DISC_ENABLED;
+ if (!(tn->flags & SYMBIOS_SCAN_AT_BOOT_TIME))
+ tp->usrflags |= SYM_SCAN_BOOT_DISABLED;
+ if (!(tn->flags & SYMBIOS_SCAN_LUNS))
+ tp->usrflags |= SYM_SCAN_LUNS_DISABLED;
++ tp->usr_period = (tn->sync_period + 3) / 4;
++ tp->usr_width = (tn->bus_width == 0x8) ? 0 : 1;
+ }
+
++static const unsigned char Tekram_sync[16] = {
++ 25, 31, 37, 43, 50, 62, 75, 125, 12, 15, 18, 21, 6, 7, 9, 10
++};
++
+ /*
+ * Get target set-up from Tekram format NVRAM.
+ */
+ static void
+-sym_Tekram_setup_target(struct sym_hcb *np, int target, Tekram_nvram *nvram)
++sym_Tekram_setup_target(struct sym_tcb *tp, int target, Tekram_nvram *nvram)
+ {
+- struct sym_tcb *tp = &np->target[target];
+ struct Tekram_target *tn = &nvram->target[target];
+
+ if (tn->flags & TEKRAM_TAGGED_COMMANDS) {
+@@ -124,22 +127,22 @@
+ if (tn->flags & TEKRAM_DISCONNECT_ENABLE)
+ tp->usrflags |= SYM_DISC_ENABLED;
+
+- /* If any device does not support parity, we will not use this option */
+- if (!(tn->flags & TEKRAM_PARITY_CHECK))
+- np->rv_scntl0 &= ~0x0a; /* SCSI parity checking disabled */
++ if (tn->flags & TEKRAM_SYNC_NEGO)
++ tp->usr_period = Tekram_sync[tn->sync_index & 0xf];
++ tp->usr_width = (tn->flags & TEKRAM_WIDE_NEGO) ? 1 : 0;
+ }
+
+ /*
+ * Get target setup from NVRAM.
+ */
+-void sym_nvram_setup_target(struct sym_hcb *np, int target, struct sym_nvram *nvp)
++void sym_nvram_setup_target(struct sym_tcb *tp, int target, struct sym_nvram *nvp)
+ {
+ switch (nvp->type) {
+ case SYM_SYMBIOS_NVRAM:
+- sym_Symbios_setup_target(np, target, &nvp->data.Symbios);
++ sym_Symbios_setup_target(tp, target, &nvp->data.Symbios);
+ break;
+ case SYM_TEKRAM_NVRAM:
+- sym_Tekram_setup_target(np, target, &nvp->data.Tekram);
++ sym_Tekram_setup_target(tp, target, &nvp->data.Tekram);
+ break;
+ default:
+ break;
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_2/sym_nvram.h CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_2/sym_nvram.h
+--- LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_2/sym_nvram.h 2005-12-27 13:25:49.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_2/sym_nvram.h 2005-12-12 09:00:09.000000000 -0700
+@@ -194,12 +194,12 @@
+
+ #if SYM_CONF_NVRAM_SUPPORT
+ void sym_nvram_setup_host(struct Scsi_Host *shost, struct sym_hcb *np, struct sym_nvram *nvram);
+-void sym_nvram_setup_target (struct sym_hcb *np, int target, struct sym_nvram *nvp);
++void sym_nvram_setup_target (struct sym_tcb *tp, int target, struct sym_nvram *nvp);
+ int sym_read_nvram (struct sym_device *np, struct sym_nvram *nvp);
+ char *sym_nvram_type(struct sym_nvram *nvp);
+ #else
+ static inline void sym_nvram_setup_host(struct Scsi_Host *shost, struct sym_hcb *np, struct sym_nvram *nvram) { }
+-static inline void sym_nvram_setup_target(struct sym_hcb *np, struct sym_nvram *nvram) { }
++static inline void sym_nvram_setup_target(struct sym_tcb *tp, struct sym_nvram *nvram) { }
+ static inline int sym_read_nvram(struct sym_device *np, struct sym_nvram *nvp)
+ {
+ nvp->type = 0;
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_comm.h CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_comm.h
+--- LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_comm.h 2005-12-27 13:25:48.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_comm.h 1969-12-31 17:00:00.000000000 -0700
+@@ -1,792 +0,0 @@
+-/******************************************************************************
+-** High Performance device driver for the Symbios 53C896 controller.
+-**
+-** Copyright (C) 1998-2001 Gerard Roudier <groudier at free.fr>
+-**
+-** This driver also supports all the Symbios 53C8XX controller family,
+-** except 53C810 revisions < 16, 53C825 revisions < 16 and all
+-** revisions of 53C815 controllers.
+-**
+-** This driver is based on the Linux port of the FreeBSD ncr driver.
+-**
+-** Copyright (C) 1994 Wolfgang Stanglmeier
+-**
+-**-----------------------------------------------------------------------------
+-**
+-** 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. 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.
+-**
+-**-----------------------------------------------------------------------------
+-**
+-** The Linux port of the FreeBSD ncr driver has been achieved in
+-** november 1995 by:
+-**
+-** Gerard Roudier <groudier at free.fr>
+-**
+-** Being given that this driver originates from the FreeBSD version, and
+-** in order to keep synergy on both, any suggested enhancements and corrections
+-** received on Linux are automatically a potential candidate for the FreeBSD
+-** version.
+-**
+-** The original driver has been written for 386bsd and FreeBSD by
+-** Wolfgang Stanglmeier <wolf at cologne.de>
+-** Stefan Esser <se at mi.Uni-Koeln.de>
+-**
+-**-----------------------------------------------------------------------------
+-**
+-** Major contributions:
+-** --------------------
+-**
+-** NVRAM detection and reading.
+-** Copyright (C) 1997 Richard Waltham <dormouse at farsrobt.demon.co.uk>
+-**
+-*******************************************************************************
+-*/
+-
+-/*==========================================================
+-**
+-** Debugging tags
+-**
+-**==========================================================
+-*/
+-
+-#define DEBUG_ALLOC (0x0001)
+-#define DEBUG_PHASE (0x0002)
+-#define DEBUG_QUEUE (0x0008)
+-#define DEBUG_RESULT (0x0010)
+-#define DEBUG_POINTER (0x0020)
+-#define DEBUG_SCRIPT (0x0040)
+-#define DEBUG_TINY (0x0080)
+-#define DEBUG_TIMING (0x0100)
+-#define DEBUG_NEGO (0x0200)
+-#define DEBUG_TAGS (0x0400)
+-#define DEBUG_SCATTER (0x0800)
+-#define DEBUG_IC (0x1000)
+-
+-/*
+-** Enable/Disable debug messages.
+-** Can be changed at runtime too.
+-*/
+-
+-#ifdef SCSI_NCR_DEBUG_INFO_SUPPORT
+-static int ncr_debug = SCSI_NCR_DEBUG_FLAGS;
+- #define DEBUG_FLAGS ncr_debug
+-#else
+- #define DEBUG_FLAGS SCSI_NCR_DEBUG_FLAGS
+-#endif
+-
+-static inline struct list_head *ncr_list_pop(struct list_head *head)
+-{
+- if (!list_empty(head)) {
+- struct list_head *elem = head->next;
+-
+- list_del(elem);
+- return elem;
+- }
+-
+- return NULL;
+-}
+-
+-#ifdef __sparc__
+-#include <asm/irq.h>
+-#endif
+-
+-/*==========================================================
+-**
+-** Simple power of two buddy-like allocator.
+-**
+-** This simple code is not intended to be fast, but to
+-** provide power of 2 aligned memory allocations.
+-** Since the SCRIPTS processor only supplies 8 bit
+-** arithmetic, this allocator allows simple and fast
+-** address calculations from the SCRIPTS code.
+-** In addition, cache line alignment is guaranteed for
+-** power of 2 cache line size.
+-** Enhanced in linux-2.3.44 to provide a memory pool
+-** per pcidev to support dynamic dma mapping. (I would
+-** have preferred a real bus astraction, btw).
+-**
+-**==========================================================
+-*/
+-
+-#define MEMO_SHIFT 4 /* 16 bytes minimum memory chunk */
+-#if PAGE_SIZE >= 8192
+-#define MEMO_PAGE_ORDER 0 /* 1 PAGE maximum */
+-#else
+-#define MEMO_PAGE_ORDER 1 /* 2 PAGES maximum */
+-#endif
+-#define MEMO_FREE_UNUSED /* Free unused pages immediately */
+-#define MEMO_WARN 1
+-#define MEMO_GFP_FLAGS GFP_ATOMIC
+-#define MEMO_CLUSTER_SHIFT (PAGE_SHIFT+MEMO_PAGE_ORDER)
+-#define MEMO_CLUSTER_SIZE (1UL << MEMO_CLUSTER_SHIFT)
+-#define MEMO_CLUSTER_MASK (MEMO_CLUSTER_SIZE-1)
+-
+-typedef u_long m_addr_t; /* Enough bits to bit-hack addresses */
+-typedef struct device *m_bush_t; /* Something that addresses DMAable */
+-
+-typedef struct m_link { /* Link between free memory chunks */
+- struct m_link *next;
+-} m_link_s;
+-
+-typedef struct m_vtob { /* Virtual to Bus address translation */
+- struct m_vtob *next;
+- m_addr_t vaddr;
+- m_addr_t baddr;
+-} m_vtob_s;
+-#define VTOB_HASH_SHIFT 5
+-#define VTOB_HASH_SIZE (1UL << VTOB_HASH_SHIFT)
+-#define VTOB_HASH_MASK (VTOB_HASH_SIZE-1)
+-#define VTOB_HASH_CODE(m) \
+- ((((m_addr_t) (m)) >> MEMO_CLUSTER_SHIFT) & VTOB_HASH_MASK)
+-
+-typedef struct m_pool { /* Memory pool of a given kind */
+- m_bush_t bush;
+- m_addr_t (*getp)(struct m_pool *);
+- void (*freep)(struct m_pool *, m_addr_t);
+- int nump;
+- m_vtob_s *(vtob[VTOB_HASH_SIZE]);
+- struct m_pool *next;
+- struct m_link h[PAGE_SHIFT-MEMO_SHIFT+MEMO_PAGE_ORDER+1];
+-} m_pool_s;
+-
+-static void *___m_alloc(m_pool_s *mp, int size)
+-{
+- int i = 0;
+- int s = (1 << MEMO_SHIFT);
+- int j;
+- m_addr_t a;
+- m_link_s *h = mp->h;
+-
+- if (size > (PAGE_SIZE << MEMO_PAGE_ORDER))
+- return NULL;
+-
+- while (size > s) {
+- s <<= 1;
+- ++i;
+- }
+-
+- j = i;
+- while (!h[j].next) {
+- if (s == (PAGE_SIZE << MEMO_PAGE_ORDER)) {
+- h[j].next = (m_link_s *)mp->getp(mp);
+- if (h[j].next)
+- h[j].next->next = NULL;
+- break;
+- }
+- ++j;
+- s <<= 1;
+- }
+- a = (m_addr_t) h[j].next;
+- if (a) {
+- h[j].next = h[j].next->next;
+- while (j > i) {
+- j -= 1;
+- s >>= 1;
+- h[j].next = (m_link_s *) (a+s);
+- h[j].next->next = NULL;
+- }
+- }
+-#ifdef DEBUG
+- printk("___m_alloc(%d) = %p\n", size, (void *) a);
+-#endif
+- return (void *) a;
+-}
+-
+-static void ___m_free(m_pool_s *mp, void *ptr, int size)
+-{
+- int i = 0;
+- int s = (1 << MEMO_SHIFT);
+- m_link_s *q;
+- m_addr_t a, b;
+- m_link_s *h = mp->h;
+-
+-#ifdef DEBUG
+- printk("___m_free(%p, %d)\n", ptr, size);
+-#endif
+-
+- if (size > (PAGE_SIZE << MEMO_PAGE_ORDER))
+- return;
+-
+- while (size > s) {
+- s <<= 1;
+- ++i;
+- }
+-
+- a = (m_addr_t) ptr;
+-
+- while (1) {
+-#ifdef MEMO_FREE_UNUSED
+- if (s == (PAGE_SIZE << MEMO_PAGE_ORDER)) {
+- mp->freep(mp, a);
+- break;
+- }
+-#endif
+- b = a ^ s;
+- q = &h[i];
+- while (q->next && q->next != (m_link_s *) b) {
+- q = q->next;
+- }
+- if (!q->next) {
+- ((m_link_s *) a)->next = h[i].next;
+- h[i].next = (m_link_s *) a;
+- break;
+- }
+- q->next = q->next->next;
+- a = a & b;
+- s <<= 1;
+- ++i;
+- }
+-}
+-
+-static DEFINE_SPINLOCK(ncr53c8xx_lock);
+-
+-static void *__m_calloc2(m_pool_s *mp, int size, char *name, int uflags)
+-{
+- void *p;
+-
+- p = ___m_alloc(mp, size);
+-
+- if (DEBUG_FLAGS & DEBUG_ALLOC)
+- printk ("new %-10s[%4d] @%p.\n", name, size, p);
+-
+- if (p)
+- memset(p, 0, size);
+- else if (uflags & MEMO_WARN)
+- printk (NAME53C8XX ": failed to allocate %s[%d]\n", name, size);
+-
+- return p;
+-}
+-
+-#define __m_calloc(mp, s, n) __m_calloc2(mp, s, n, MEMO_WARN)
+-
+-static void __m_free(m_pool_s *mp, void *ptr, int size, char *name)
+-{
+- if (DEBUG_FLAGS & DEBUG_ALLOC)
+- printk ("freeing %-10s[%4d] @%p.\n", name, size, ptr);
+-
+- ___m_free(mp, ptr, size);
+-
+-}
+-
+-/*
+- * With pci bus iommu support, we use a default pool of unmapped memory
+- * for memory we donnot need to DMA from/to and one pool per pcidev for
+- * memory accessed by the PCI chip. `mp0' is the default not DMAable pool.
+- */
+-
+-static m_addr_t ___mp0_getp(m_pool_s *mp)
+-{
+- m_addr_t m = __get_free_pages(MEMO_GFP_FLAGS, MEMO_PAGE_ORDER);
+- if (m)
+- ++mp->nump;
+- return m;
+-}
+-
+-static void ___mp0_freep(m_pool_s *mp, m_addr_t m)
+-{
+- free_pages(m, MEMO_PAGE_ORDER);
+- --mp->nump;
+-}
+-
+-static m_pool_s mp0 = {NULL, ___mp0_getp, ___mp0_freep};
+-
+-/*
+- * DMAable pools.
+- */
+-
+-/*
+- * With pci bus iommu support, we maintain one pool per pcidev and a
+- * hashed reverse table for virtual to bus physical address translations.
+- */
+-static m_addr_t ___dma_getp(m_pool_s *mp)
+-{
+- m_addr_t vp;
+- m_vtob_s *vbp;
+-
+- vbp = __m_calloc(&mp0, sizeof(*vbp), "VTOB");
+- if (vbp) {
+- dma_addr_t daddr;
+- vp = (m_addr_t) dma_alloc_coherent(mp->bush,
+- PAGE_SIZE<<MEMO_PAGE_ORDER,
+- &daddr, GFP_ATOMIC);
+- if (vp) {
+- int hc = VTOB_HASH_CODE(vp);
+- vbp->vaddr = vp;
+- vbp->baddr = daddr;
+- vbp->next = mp->vtob[hc];
+- mp->vtob[hc] = vbp;
+- ++mp->nump;
+- return vp;
+- }
+- }
+- if (vbp)
+- __m_free(&mp0, vbp, sizeof(*vbp), "VTOB");
+- return 0;
+-}
+-
+-static void ___dma_freep(m_pool_s *mp, m_addr_t m)
+-{
+- m_vtob_s **vbpp, *vbp;
+- int hc = VTOB_HASH_CODE(m);
+-
+- vbpp = &mp->vtob[hc];
+- while (*vbpp && (*vbpp)->vaddr != m)
+- vbpp = &(*vbpp)->next;
+- if (*vbpp) {
+- vbp = *vbpp;
+- *vbpp = (*vbpp)->next;
+- dma_free_coherent(mp->bush, PAGE_SIZE<<MEMO_PAGE_ORDER,
+- (void *)vbp->vaddr, (dma_addr_t)vbp->baddr);
+- __m_free(&mp0, vbp, sizeof(*vbp), "VTOB");
+- --mp->nump;
+- }
+-}
+-
+-static inline m_pool_s *___get_dma_pool(m_bush_t bush)
+-{
+- m_pool_s *mp;
+- for (mp = mp0.next; mp && mp->bush != bush; mp = mp->next);
+- return mp;
+-}
+-
+-static m_pool_s *___cre_dma_pool(m_bush_t bush)
+-{
+- m_pool_s *mp;
+- mp = __m_calloc(&mp0, sizeof(*mp), "MPOOL");
+- if (mp) {
+- memset(mp, 0, sizeof(*mp));
+- mp->bush = bush;
+- mp->getp = ___dma_getp;
+- mp->freep = ___dma_freep;
+- mp->next = mp0.next;
+- mp0.next = mp;
+- }
+- return mp;
+-}
+-
+-static void ___del_dma_pool(m_pool_s *p)
+-{
+- struct m_pool **pp = &mp0.next;
+-
+- while (*pp && *pp != p)
+- pp = &(*pp)->next;
+- if (*pp) {
+- *pp = (*pp)->next;
+- __m_free(&mp0, p, sizeof(*p), "MPOOL");
+- }
+-}
+-
+-static void *__m_calloc_dma(m_bush_t bush, int size, char *name)
+-{
+- u_long flags;
+- struct m_pool *mp;
+- void *m = NULL;
+-
+- spin_lock_irqsave(&ncr53c8xx_lock, flags);
+- mp = ___get_dma_pool(bush);
+- if (!mp)
+- mp = ___cre_dma_pool(bush);
+- if (mp)
+- m = __m_calloc(mp, size, name);
+- if (mp && !mp->nump)
+- ___del_dma_pool(mp);
+- spin_unlock_irqrestore(&ncr53c8xx_lock, flags);
+-
+- return m;
+-}
+-
+-static void __m_free_dma(m_bush_t bush, void *m, int size, char *name)
+-{
+- u_long flags;
+- struct m_pool *mp;
+-
+- spin_lock_irqsave(&ncr53c8xx_lock, flags);
+- mp = ___get_dma_pool(bush);
+- if (mp)
+- __m_free(mp, m, size, name);
+- if (mp && !mp->nump)
+- ___del_dma_pool(mp);
+- spin_unlock_irqrestore(&ncr53c8xx_lock, flags);
+-}
+-
+-static m_addr_t __vtobus(m_bush_t bush, void *m)
+-{
+- u_long flags;
+- m_pool_s *mp;
+- int hc = VTOB_HASH_CODE(m);
+- m_vtob_s *vp = NULL;
+- m_addr_t a = ((m_addr_t) m) & ~MEMO_CLUSTER_MASK;
+-
+- spin_lock_irqsave(&ncr53c8xx_lock, flags);
+- mp = ___get_dma_pool(bush);
+- if (mp) {
+- vp = mp->vtob[hc];
+- while (vp && (m_addr_t) vp->vaddr != a)
+- vp = vp->next;
+- }
+- spin_unlock_irqrestore(&ncr53c8xx_lock, flags);
+- return vp ? vp->baddr + (((m_addr_t) m) - a) : 0;
+-}
+-
+-#define _m_calloc_dma(np, s, n) __m_calloc_dma(np->dev, s, n)
+-#define _m_free_dma(np, p, s, n) __m_free_dma(np->dev, p, s, n)
+-#define m_calloc_dma(s, n) _m_calloc_dma(np, s, n)
+-#define m_free_dma(p, s, n) _m_free_dma(np, p, s, n)
+-#define _vtobus(np, p) __vtobus(np->dev, p)
+-#define vtobus(p) _vtobus(np, p)
+-
+-/*
+- * Deal with DMA mapping/unmapping.
+- */
+-
+-/* To keep track of the dma mapping (sg/single) that has been set */
+-#define __data_mapped SCp.phase
+-#define __data_mapping SCp.have_data_in
+-
+-static void __unmap_scsi_data(struct device *dev, struct scsi_cmnd *cmd)
+-{
+- switch(cmd->__data_mapped) {
+- case 2:
+- dma_unmap_sg(dev, cmd->buffer, cmd->use_sg,
+- cmd->sc_data_direction);
+- break;
+- case 1:
+- dma_unmap_single(dev, cmd->__data_mapping,
+- cmd->request_bufflen,
+- cmd->sc_data_direction);
+- break;
+- }
+- cmd->__data_mapped = 0;
+-}
+-
+-static u_long __map_scsi_single_data(struct device *dev, struct scsi_cmnd *cmd)
+-{
+- dma_addr_t mapping;
+-
+- if (cmd->request_bufflen == 0)
+- return 0;
+-
+- mapping = dma_map_single(dev, cmd->request_buffer,
+- cmd->request_bufflen,
+- cmd->sc_data_direction);
+- cmd->__data_mapped = 1;
+- cmd->__data_mapping = mapping;
+-
+- return mapping;
+-}
+-
+-static int __map_scsi_sg_data(struct device *dev, struct scsi_cmnd *cmd)
+-{
+- int use_sg;
+-
+- if (cmd->use_sg == 0)
+- return 0;
+-
+- use_sg = dma_map_sg(dev, cmd->buffer, cmd->use_sg,
+- cmd->sc_data_direction);
+- cmd->__data_mapped = 2;
+- cmd->__data_mapping = use_sg;
+-
+- return use_sg;
+-}
+-
+-#define unmap_scsi_data(np, cmd) __unmap_scsi_data(np->dev, cmd)
+-#define map_scsi_single_data(np, cmd) __map_scsi_single_data(np->dev, cmd)
+-#define map_scsi_sg_data(np, cmd) __map_scsi_sg_data(np->dev, cmd)
+-
+-/*==========================================================
+-**
+-** Driver setup.
+-**
+-** This structure is initialized from linux config
+-** options. It can be overridden at boot-up by the boot
+-** command line.
+-**
+-**==========================================================
+-*/
+-static struct ncr_driver_setup
+- driver_setup = SCSI_NCR_DRIVER_SETUP;
+-
+-#ifdef SCSI_NCR_BOOT_COMMAND_LINE_SUPPORT
+-static struct ncr_driver_setup
+- driver_safe_setup __initdata = SCSI_NCR_DRIVER_SAFE_SETUP;
+-#endif
+-
+-#define initverbose (driver_setup.verbose)
+-#define bootverbose (np->verbose)
+-
+-
+-/*===================================================================
+-**
+-** Driver setup from the boot command line
+-**
+-**===================================================================
+-*/
+-
+-#ifdef MODULE
+-#define ARG_SEP ' '
+-#else
+-#define ARG_SEP ','
+-#endif
+-
+-#define OPT_TAGS 1
+-#define OPT_MASTER_PARITY 2
+-#define OPT_SCSI_PARITY 3
+-#define OPT_DISCONNECTION 4
+-#define OPT_SPECIAL_FEATURES 5
+-#define OPT_UNUSED_1 6
+-#define OPT_FORCE_SYNC_NEGO 7
+-#define OPT_REVERSE_PROBE 8
+-#define OPT_DEFAULT_SYNC 9
+-#define OPT_VERBOSE 10
+-#define OPT_DEBUG 11
+-#define OPT_BURST_MAX 12
+-#define OPT_LED_PIN 13
+-#define OPT_MAX_WIDE 14
+-#define OPT_SETTLE_DELAY 15
+-#define OPT_DIFF_SUPPORT 16
+-#define OPT_IRQM 17
+-#define OPT_PCI_FIX_UP 18
+-#define OPT_BUS_CHECK 19
+-#define OPT_OPTIMIZE 20
+-#define OPT_RECOVERY 21
+-#define OPT_SAFE_SETUP 22
+-#define OPT_USE_NVRAM 23
+-#define OPT_EXCLUDE 24
+-#define OPT_HOST_ID 25
+-
+-#ifdef SCSI_NCR_IARB_SUPPORT
+-#define OPT_IARB 26
+-#endif
+-
+-static char setup_token[] __initdata =
+- "tags:" "mpar:"
+- "spar:" "disc:"
+- "specf:" "ultra:"
+- "fsn:" "revprob:"
+- "sync:" "verb:"
+- "debug:" "burst:"
+- "led:" "wide:"
+- "settle:" "diff:"
+- "irqm:" "pcifix:"
+- "buschk:" "optim:"
+- "recovery:"
+- "safe:" "nvram:"
+- "excl:" "hostid:"
+-#ifdef SCSI_NCR_IARB_SUPPORT
+- "iarb:"
+-#endif
+- ; /* DONNOT REMOVE THIS ';' */
+-
+-#ifdef MODULE
+-#define ARG_SEP ' '
+-#else
+-#define ARG_SEP ','
+-#endif
+-
+-static int __init get_setup_token(char *p)
+-{
+- char *cur = setup_token;
+- char *pc;
+- int i = 0;
+-
+- while (cur != NULL && (pc = strchr(cur, ':')) != NULL) {
+- ++pc;
+- ++i;
+- if (!strncmp(p, cur, pc - cur))
+- return i;
+- cur = pc;
+- }
+- return 0;
+-}
+-
+-
+-static int __init sym53c8xx__setup(char *str)
+-{
+-#ifdef SCSI_NCR_BOOT_COMMAND_LINE_SUPPORT
+- char *cur = str;
+- char *pc, *pv;
+- int i, val, c;
+- int xi = 0;
+-
+- while (cur != NULL && (pc = strchr(cur, ':')) != NULL) {
+- char *pe;
+-
+- val = 0;
+- pv = pc;
+- c = *++pv;
+-
+- if (c == 'n')
+- val = 0;
+- else if (c == 'y')
+- val = 1;
+- else
+- val = (int) simple_strtoul(pv, &pe, 0);
+-
+- switch (get_setup_token(cur)) {
+- case OPT_TAGS:
+- driver_setup.default_tags = val;
+- if (pe && *pe == '/') {
+- i = 0;
+- while (*pe && *pe != ARG_SEP &&
+- i < sizeof(driver_setup.tag_ctrl)-1) {
+- driver_setup.tag_ctrl[i++] = *pe++;
+- }
+- driver_setup.tag_ctrl[i] = '\0';
+- }
+- break;
+- case OPT_MASTER_PARITY:
+- driver_setup.master_parity = val;
+- break;
+- case OPT_SCSI_PARITY:
+- driver_setup.scsi_parity = val;
+- break;
+- case OPT_DISCONNECTION:
+- driver_setup.disconnection = val;
+- break;
+- case OPT_SPECIAL_FEATURES:
+- driver_setup.special_features = val;
+- break;
+- case OPT_FORCE_SYNC_NEGO:
+- driver_setup.force_sync_nego = val;
+- break;
+- case OPT_REVERSE_PROBE:
+- driver_setup.reverse_probe = val;
+- break;
+- case OPT_DEFAULT_SYNC:
+- driver_setup.default_sync = val;
+- break;
+- case OPT_VERBOSE:
+- driver_setup.verbose = val;
+- break;
+- case OPT_DEBUG:
+- driver_setup.debug = val;
+- break;
+- case OPT_BURST_MAX:
+- driver_setup.burst_max = val;
+- break;
+- case OPT_LED_PIN:
+- driver_setup.led_pin = val;
+- break;
+- case OPT_MAX_WIDE:
+- driver_setup.max_wide = val? 1:0;
+- break;
+- case OPT_SETTLE_DELAY:
+- driver_setup.settle_delay = val;
+- break;
+- case OPT_DIFF_SUPPORT:
+- driver_setup.diff_support = val;
+- break;
+- case OPT_IRQM:
+- driver_setup.irqm = val;
+- break;
+- case OPT_PCI_FIX_UP:
+- driver_setup.pci_fix_up = val;
+- break;
+- case OPT_BUS_CHECK:
+- driver_setup.bus_check = val;
+- break;
+- case OPT_OPTIMIZE:
+- driver_setup.optimize = val;
+- break;
+- case OPT_RECOVERY:
+- driver_setup.recovery = val;
+- break;
+- case OPT_USE_NVRAM:
+- driver_setup.use_nvram = val;
+- break;
+- case OPT_SAFE_SETUP:
+- memcpy(&driver_setup, &driver_safe_setup,
+- sizeof(driver_setup));
+- break;
+- case OPT_EXCLUDE:
+- if (xi < SCSI_NCR_MAX_EXCLUDES)
+- driver_setup.excludes[xi++] = val;
+- break;
+- case OPT_HOST_ID:
+- driver_setup.host_id = val;
+- break;
+-#ifdef SCSI_NCR_IARB_SUPPORT
+- case OPT_IARB:
+- driver_setup.iarb = val;
+- break;
+-#endif
+- default:
+- printk("sym53c8xx_setup: unexpected boot option '%.*s' ignored\n", (int)(pc-cur+1), cur);
+- break;
+- }
+-
+- if ((cur = strchr(cur, ARG_SEP)) != NULL)
+- ++cur;
+- }
+-#endif /* SCSI_NCR_BOOT_COMMAND_LINE_SUPPORT */
+- return 1;
+-}
+-
+-/*===================================================================
+-**
+-** Get device queue depth from boot command line.
+-**
+-**===================================================================
+-*/
+-#define DEF_DEPTH (driver_setup.default_tags)
+-#define ALL_TARGETS -2
+-#define NO_TARGET -1
+-#define ALL_LUNS -2
+-#define NO_LUN -1
+-
+-static int device_queue_depth(int unit, int target, int lun)
+-{
+- int c, h, t, u, v;
+- char *p = driver_setup.tag_ctrl;
+- char *ep;
+-
+- h = -1;
+- t = NO_TARGET;
+- u = NO_LUN;
+- while ((c = *p++) != 0) {
+- v = simple_strtoul(p, &ep, 0);
+- switch(c) {
+- case '/':
+- ++h;
+- t = ALL_TARGETS;
+- u = ALL_LUNS;
+- break;
+- case 't':
+- if (t != target)
+- t = (target == v) ? v : NO_TARGET;
+- u = ALL_LUNS;
+- break;
+- case 'u':
+- if (u != lun)
+- u = (lun == v) ? v : NO_LUN;
+- break;
+- case 'q':
+- if (h == unit &&
+- (t == ALL_TARGETS || t == target) &&
+- (u == ALL_LUNS || u == lun))
+- return v;
+- break;
+- case '-':
+- t = ALL_TARGETS;
+- u = ALL_LUNS;
+- break;
+- default:
+- break;
+- }
+- p = ep;
+- }
+- return DEF_DEPTH;
+-}
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_defs.h CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_defs.h
+--- LINUS_2_6_15_RC7/drivers/scsi/sym53c8xx_defs.h 2005-12-27 13:25:48.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/scsi/sym53c8xx_defs.h 1969-12-31 17:00:00.000000000 -0700
+@@ -1,1320 +0,0 @@
+-/******************************************************************************
+-** High Performance device driver for the Symbios 53C896 controller.
+-**
+-** Copyright (C) 1998-2001 Gerard Roudier <groudier at free.fr>
+-**
+-** This driver also supports all the Symbios 53C8XX controller family,
+-** except 53C810 revisions < 16, 53C825 revisions < 16 and all
+-** revisions of 53C815 controllers.
+-**
+-** This driver is based on the Linux port of the FreeBSD ncr driver.
+-**
+-** Copyright (C) 1994 Wolfgang Stanglmeier
+-**
+-**-----------------------------------------------------------------------------
+-**
+-** 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. 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.
+-**
+-**-----------------------------------------------------------------------------
+-**
+-** The Linux port of the FreeBSD ncr driver has been achieved in
+-** november 1995 by:
+-**
+-** Gerard Roudier <groudier at free.fr>
+-**
+-** Being given that this driver originates from the FreeBSD version, and
+-** in order to keep synergy on both, any suggested enhancements and corrections
+-** received on Linux are automatically a potential candidate for the FreeBSD
+-** version.
+-**
+-** The original driver has been written for 386bsd and FreeBSD by
+-** Wolfgang Stanglmeier <wolf at cologne.de>
+-** Stefan Esser <se at mi.Uni-Koeln.de>
+-**
+-**-----------------------------------------------------------------------------
+-**
+-** Major contributions:
+-** --------------------
+-**
+-** NVRAM detection and reading.
+-** Copyright (C) 1997 Richard Waltham <dormouse at farsrobt.demon.co.uk>
+-**
+-** Added support for MIPS big endian systems.
+-** Carsten Langgaard, carstenl at mips.com
+-** Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved.
+-**
+-** Added support for HP PARISC big endian systems.
+-** Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved.
+-**
+-*******************************************************************************
+-*/
+-
+-#ifndef SYM53C8XX_DEFS_H
+-#define SYM53C8XX_DEFS_H
+-
+-#include <linux/config.h>
+-
+-/*
+-** If you want a driver as small as possible, donnot define the
+-** following options.
+-*/
+-#define SCSI_NCR_BOOT_COMMAND_LINE_SUPPORT
+-#define SCSI_NCR_DEBUG_INFO_SUPPORT
+-
+-/*
+-** To disable integrity checking, do not define the
+-** following option.
+-*/
+-#ifdef CONFIG_SCSI_NCR53C8XX_INTEGRITY_CHECK
+-# define SCSI_NCR_ENABLE_INTEGRITY_CHECK
+-#endif
+-
+-/* ---------------------------------------------------------------------
+-** Take into account kernel configured parameters.
+-** Most of these options can be overridden at startup by a command line.
+-** ---------------------------------------------------------------------
+-*/
+-
+-/*
+- * For Ultra2 and Ultra3 SCSI support option, use special features.
+- *
+- * Value (default) means:
+- * bit 0 : all features enabled, except:
+- * bit 1 : PCI Write And Invalidate.
+- * bit 2 : Data Phase Mismatch handling from SCRIPTS.
+- *
+- * Use boot options ncr53c8xx=specf:1 if you want all chip features to be
+- * enabled by the driver.
+- */
+-#define SCSI_NCR_SETUP_SPECIAL_FEATURES (3)
+-
+-#define SCSI_NCR_MAX_SYNC (80)
+-
+-/*
+- * Allow tags from 2 to 256, default 8
+- */
+-#ifdef CONFIG_SCSI_NCR53C8XX_MAX_TAGS
+-#if CONFIG_SCSI_NCR53C8XX_MAX_TAGS < 2
+-#define SCSI_NCR_MAX_TAGS (2)
+-#elif CONFIG_SCSI_NCR53C8XX_MAX_TAGS > 256
+-#define SCSI_NCR_MAX_TAGS (256)
+-#else
+-#define SCSI_NCR_MAX_TAGS CONFIG_SCSI_NCR53C8XX_MAX_TAGS
+-#endif
+-#else
+-#define SCSI_NCR_MAX_TAGS (8)
+-#endif
+-
+-/*
+- * Allow tagged command queuing support if configured with default number
+- * of tags set to max (see above).
+- */
+-#ifdef CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS
+-#define SCSI_NCR_SETUP_DEFAULT_TAGS CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS
+-#elif defined CONFIG_SCSI_NCR53C8XX_TAGGED_QUEUE
+-#define SCSI_NCR_SETUP_DEFAULT_TAGS SCSI_NCR_MAX_TAGS
+-#else
+-#define SCSI_NCR_SETUP_DEFAULT_TAGS (0)
+-#endif
+-
+-/*
+- * Immediate arbitration
+- */
+-#if defined(CONFIG_SCSI_NCR53C8XX_IARB)
+-#define SCSI_NCR_IARB_SUPPORT
+-#endif
+-
+-/*
+- * Sync transfer frequency at startup.
+- * Allow from 5Mhz to 80Mhz default 20 Mhz.
+- */
+-#ifndef CONFIG_SCSI_NCR53C8XX_SYNC
+-#define CONFIG_SCSI_NCR53C8XX_SYNC (20)
+-#elif CONFIG_SCSI_NCR53C8XX_SYNC > SCSI_NCR_MAX_SYNC
+-#undef CONFIG_SCSI_NCR53C8XX_SYNC
+-#define CONFIG_SCSI_NCR53C8XX_SYNC SCSI_NCR_MAX_SYNC
+-#endif
+-
+-#if CONFIG_SCSI_NCR53C8XX_SYNC == 0
+-#define SCSI_NCR_SETUP_DEFAULT_SYNC (255)
+-#elif CONFIG_SCSI_NCR53C8XX_SYNC <= 5
+-#define SCSI_NCR_SETUP_DEFAULT_SYNC (50)
+-#elif CONFIG_SCSI_NCR53C8XX_SYNC <= 20
+-#define SCSI_NCR_SETUP_DEFAULT_SYNC (250/(CONFIG_SCSI_NCR53C8XX_SYNC))
+-#elif CONFIG_SCSI_NCR53C8XX_SYNC <= 33
+-#define SCSI_NCR_SETUP_DEFAULT_SYNC (11)
+-#elif CONFIG_SCSI_NCR53C8XX_SYNC <= 40
+-#define SCSI_NCR_SETUP_DEFAULT_SYNC (10)
+-#else
+-#define SCSI_NCR_SETUP_DEFAULT_SYNC (9)
+-#endif
+-
+-/*
+- * Disallow disconnections at boot-up
+- */
+-#ifdef CONFIG_SCSI_NCR53C8XX_NO_DISCONNECT
+-#define SCSI_NCR_SETUP_DISCONNECTION (0)
+-#else
+-#define SCSI_NCR_SETUP_DISCONNECTION (1)
+-#endif
+-
+-/*
+- * Force synchronous negotiation for all targets
+- */
+-#ifdef CONFIG_SCSI_NCR53C8XX_FORCE_SYNC_NEGO
+-#define SCSI_NCR_SETUP_FORCE_SYNC_NEGO (1)
+-#else
+-#define SCSI_NCR_SETUP_FORCE_SYNC_NEGO (0)
+-#endif
+-
+-/*
+- * Disable master parity checking (flawed hardwares need that)
+- */
+-#ifdef CONFIG_SCSI_NCR53C8XX_DISABLE_MPARITY_CHECK
+-#define SCSI_NCR_SETUP_MASTER_PARITY (0)
+-#else
+-#define SCSI_NCR_SETUP_MASTER_PARITY (1)
+-#endif
+-
+-/*
+- * Disable scsi parity checking (flawed devices may need that)
+- */
+-#ifdef CONFIG_SCSI_NCR53C8XX_DISABLE_PARITY_CHECK
+-#define SCSI_NCR_SETUP_SCSI_PARITY (0)
+-#else
+-#define SCSI_NCR_SETUP_SCSI_PARITY (1)
+-#endif
-
- #ifdef SYM_HAVE_STCB
- /*
- * O/S specific data structure.
-@@ -670,9 +650,6 @@
- */
- u32 savep; /* Jump address to saved data pointer */
- u32 lastp; /* SCRIPTS address at end of data */
--#ifdef SYM_OPT_HANDLE_DIR_UNKNOWN
-- u32 wlastp;
+-/*
+- * Settle time after reset at boot-up
+- */
+-#define SCSI_NCR_SETUP_SETTLE_TIME (2)
+-
+-/*
+-** Bridge quirks work-around option defaulted to 1.
+-*/
+-#ifndef SCSI_NCR_PCIQ_WORK_AROUND_OPT
+-#define SCSI_NCR_PCIQ_WORK_AROUND_OPT 1
-#endif
-
- /*
- * Status fields.
-@@ -802,9 +779,6 @@
- SYM_QUEHEAD link_ccbq; /* Link to free/busy CCB queue */
- u32 startp; /* Initial data pointer */
- u32 goalp; /* Expected last data pointer */
--#ifdef SYM_OPT_HANDLE_DIR_UNKNOWN
-- u32 wgoalp;
+-
+-/*
+-** Work-around common bridge misbehaviour.
+-**
+-** - Do not flush posted writes in the opposite
+-** direction on read.
+-** - May reorder DMA writes to memory.
+-**
+-** This option should not affect performances
+-** significantly, so it is the default.
+-*/
+-#if SCSI_NCR_PCIQ_WORK_AROUND_OPT == 1
+-#define SCSI_NCR_PCIQ_MAY_NOT_FLUSH_PW_UPSTREAM
+-#define SCSI_NCR_PCIQ_MAY_REORDER_WRITES
+-#define SCSI_NCR_PCIQ_MAY_MISS_COMPLETIONS
+-
+-/*
+-** Same as option 1, but also deal with
+-** misconfigured interrupts.
+-**
+-** - Edge triggerred instead of level sensitive.
+-** - No interrupt line connected.
+-** - IRQ number misconfigured.
+-**
+-** If no interrupt is delivered, the driver will
+-** catch the interrupt conditions 10 times per
+-** second. No need to say that this option is
+-** not recommended.
+-*/
+-#elif SCSI_NCR_PCIQ_WORK_AROUND_OPT == 2
+-#define SCSI_NCR_PCIQ_MAY_NOT_FLUSH_PW_UPSTREAM
+-#define SCSI_NCR_PCIQ_MAY_REORDER_WRITES
+-#define SCSI_NCR_PCIQ_MAY_MISS_COMPLETIONS
+-#define SCSI_NCR_PCIQ_BROKEN_INTR
+-
+-/*
+-** Some bridge designers decided to flush
+-** everything prior to deliver the interrupt.
+-** This option tries to deal with such a
+-** behaviour.
+-*/
+-#elif SCSI_NCR_PCIQ_WORK_AROUND_OPT == 3
+-#define SCSI_NCR_PCIQ_SYNC_ON_INTR
-#endif
- int ext_sg; /* Extreme data pointer, used */
- int ext_ofs; /* to calculate the residual. */
- #ifdef SYM_OPT_HANDLE_DEVICE_QUEUEING
-@@ -819,12 +793,6 @@
-
- #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)
+-
+-/*
+-** Other parameters not configurable with "make config"
+-** Avoid to change these constants, unless you know what you are doing.
+-*/
+-
+-#define SCSI_NCR_ALWAYS_SIMPLE_TAG
+-#define SCSI_NCR_MAX_SCATTER (127)
+-#define SCSI_NCR_MAX_TARGET (16)
+-
+-/*
+-** Compute some desirable value for CAN_QUEUE
+-** and CMD_PER_LUN.
+-** The driver will use lower values if these
+-** ones appear to be too large.
+-*/
+-#define SCSI_NCR_CAN_QUEUE (8*SCSI_NCR_MAX_TAGS + 2*SCSI_NCR_MAX_TARGET)
+-#define SCSI_NCR_CMD_PER_LUN (SCSI_NCR_MAX_TAGS)
+-
+-#define SCSI_NCR_SG_TABLESIZE (SCSI_NCR_MAX_SCATTER)
+-#define SCSI_NCR_TIMER_INTERVAL (HZ)
+-
+-#if 1 /* defined CONFIG_SCSI_MULTI_LUN */
+-#define SCSI_NCR_MAX_LUN (16)
-#else
--#define sym_goalp(cp) (cp->goalp)
+-#define SCSI_NCR_MAX_LUN (1)
-#endif
-
- typedef struct device *m_pool_ident_t;
-
- /*
-@@ -1075,7 +1043,6 @@
- void sym_print_xerr(struct scsi_cmnd *cmd, int x_status);
- int sym_reset_scsi_bus(struct sym_hcb *np, int enab_int);
- struct sym_chip *sym_lookup_chip_table(u_short device_id, u_char revision);
--void sym_put_start_queue(struct sym_hcb *np, struct sym_ccb *cp);
- #ifdef SYM_OPT_HANDLE_DEVICE_QUEUEING
- void sym_start_next_ccbs(struct sym_hcb *np, struct sym_lcb *lp, int maxn);
- #endif
-@@ -1134,71 +1101,6 @@
- #endif
-
- /*
-- * Set up data pointers used by SCRIPTS.
-- * Called from O/S specific code.
+-/*
+- * IO functions definition for big/little endian CPU support.
+- * For now, the NCR is only supported in little endian addressing mode,
- */
--static inline void sym_setup_data_pointers(struct sym_hcb *np,
-- struct sym_ccb *cp, int dir)
--{
-- u32 lastp, goalp;
-
-- /*
-- * No segments means no data.
-- */
-- if (!cp->segments)
-- dir = DMA_NONE;
+-#ifdef __BIG_ENDIAN
-
-- /*
-- * Set the data pointer.
-- */
-- switch(dir) {
--#ifdef SYM_OPT_HANDLE_DIR_UNKNOWN
-- case DMA_BIDIRECTIONAL:
+-#define inw_l2b inw
+-#define inl_l2b inl
+-#define outw_b2l outw
+-#define outl_b2l outl
+-
+-#define readb_raw readb
+-#define writeb_raw writeb
+-
+-#if defined(SCSI_NCR_BIG_ENDIAN)
+-#define readw_l2b __raw_readw
+-#define readl_l2b __raw_readl
+-#define writew_b2l __raw_writew
+-#define writel_b2l __raw_writel
+-#define readw_raw __raw_readw
+-#define readl_raw __raw_readl
+-#define writew_raw __raw_writew
+-#define writel_raw __raw_writel
+-#else /* Other big-endian */
+-#define readw_l2b readw
+-#define readl_l2b readl
+-#define writew_b2l writew
+-#define writel_b2l writel
+-#define readw_raw readw
+-#define readl_raw readl
+-#define writew_raw writew
+-#define writel_raw writel
-#endif
-- 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 != DMA_BIDIRECTIONAL)
-- break;
-- cp->phys.head.wlastp = cpu_to_scr(lastp);
-- /* fall through */
+-
+-#else /* little endian */
+-
+-#define inw_raw inw
+-#define inl_raw inl
+-#define outw_raw outw
+-#define outl_raw outl
+-
+-#define readb_raw readb
+-#define readw_raw readw
+-#define readl_raw readl
+-#define writeb_raw writeb
+-#define writew_raw writew
+-#define writel_raw writel
+-
+-#endif
+-
+-#if !defined(__hppa__) && !defined(__mips__)
+-#ifdef SCSI_NCR_BIG_ENDIAN
+-#error "The NCR in BIG ENDIAN addressing mode is not (yet) supported"
+-#endif
+-#endif
+-
+-#define MEMORY_BARRIER() mb()
+-
+-
+-/*
+- * If the NCR uses big endian addressing mode over the
+- * PCI, actual io register addresses for byte and word
+- * accesses must be changed according to lane routing.
+- * Btw, ncr_offb() and ncr_offw() macros only apply to
+- * constants and so donnot generate bloated code.
+- */
+-
+-#if defined(SCSI_NCR_BIG_ENDIAN)
+-
+-#define ncr_offb(o) (((o)&~3)+((~((o)&3))&3))
+-#define ncr_offw(o) (((o)&~3)+((~((o)&3))&2))
+-
-#else
-- break;
+-
+-#define ncr_offb(o) (o)
+-#define ncr_offw(o) (o)
+-
-#endif
-- 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 DMA_NONE:
-- default:
--#ifdef SYM_OPT_HANDLE_DIR_UNKNOWN
-- cp->host_flags |= HF_DATA_IN;
+-
+-/*
+- * If the CPU and the NCR use same endian-ness addressing,
+- * no byte reordering is needed for script patching.
+- * Macro cpu_to_scr() is to be used for script patching.
+- * Macro scr_to_cpu() is to be used for getting a DWORD
+- * from the script.
+- */
+-
+-#if defined(__BIG_ENDIAN) && !defined(SCSI_NCR_BIG_ENDIAN)
+-
+-#define cpu_to_scr(dw) cpu_to_le32(dw)
+-#define scr_to_cpu(dw) le32_to_cpu(dw)
+-
+-#elif defined(__LITTLE_ENDIAN) && defined(SCSI_NCR_BIG_ENDIAN)
+-
+-#define cpu_to_scr(dw) cpu_to_be32(dw)
+-#define scr_to_cpu(dw) be32_to_cpu(dw)
+-
+-#else
+-
+-#define cpu_to_scr(dw) (dw)
+-#define scr_to_cpu(dw) (dw)
+-
-#endif
-- lastp = goalp = SCRIPTB_BA(np, no_data);
-- break;
-- }
-
-- /*
-- * Set all pointers values needed by SCRIPTS.
-- */
-- cp->phys.head.lastp = cpu_to_scr(lastp);
-- cp->phys.head.savep = cpu_to_scr(lastp);
-- cp->startp = cp->phys.head.savep;
-- cp->goalp = cpu_to_scr(goalp);
+-/*
+- * Access to the controller chip.
+- *
+- * If the CPU and the NCR use same endian-ness addressing,
+- * no byte reordering is needed for accessing chip io
+- * registers. Functions suffixed by '_raw' are assumed
+- * to access the chip over the PCI without doing byte
+- * reordering. Functions suffixed by '_l2b' are
+- * assumed to perform little-endian to big-endian byte
+- * reordering, those suffixed by '_b2l' blah, blah,
+- * blah, ...
+- */
-
--#ifdef SYM_OPT_HANDLE_DIR_UNKNOWN
-- /*
-- * If direction is unknown, start at data_io.
-- */
-- if (dir == DMA_BIDIRECTIONAL)
-- cp->phys.head.savep = cpu_to_scr(SCRIPTB_BA(np, data_io));
+-/*
+- * MEMORY mapped IO input / output
+- */
+-
+-#define INB_OFF(o) readb_raw((char __iomem *)np->reg + ncr_offb(o))
+-#define OUTB_OFF(o, val) writeb_raw((val), (char __iomem *)np->reg + ncr_offb(o))
+-
+-#if defined(__BIG_ENDIAN) && !defined(SCSI_NCR_BIG_ENDIAN)
+-
+-#define INW_OFF(o) readw_l2b((char __iomem *)np->reg + ncr_offw(o))
+-#define INL_OFF(o) readl_l2b((char __iomem *)np->reg + (o))
+-
+-#define OUTW_OFF(o, val) writew_b2l((val), (char __iomem *)np->reg + ncr_offw(o))
+-#define OUTL_OFF(o, val) writel_b2l((val), (char __iomem *)np->reg + (o))
+-
+-#elif defined(__LITTLE_ENDIAN) && defined(SCSI_NCR_BIG_ENDIAN)
+-
+-#define INW_OFF(o) readw_b2l((char __iomem *)np->reg + ncr_offw(o))
+-#define INL_OFF(o) readl_b2l((char __iomem *)np->reg + (o))
+-
+-#define OUTW_OFF(o, val) writew_l2b((val), (char __iomem *)np->reg + ncr_offw(o))
+-#define OUTL_OFF(o, val) writel_l2b((val), (char __iomem *)np->reg + (o))
+-
+-#else
+-
+-#ifdef CONFIG_SCSI_NCR53C8XX_NO_WORD_TRANSFERS
+-/* Only 8 or 32 bit transfers allowed */
+-#define INW_OFF(o) (readb((char __iomem *)np->reg + ncr_offw(o)) << 8 | readb((char __iomem *)np->reg + ncr_offw(o) + 1))
+-#else
+-#define INW_OFF(o) readw_raw((char __iomem *)np->reg + ncr_offw(o))
+-#endif
+-#define INL_OFF(o) readl_raw((char __iomem *)np->reg + (o))
+-
+-#ifdef CONFIG_SCSI_NCR53C8XX_NO_WORD_TRANSFERS
+-/* Only 8 or 32 bit transfers allowed */
+-#define OUTW_OFF(o, val) do { writeb((char)((val) >> 8), (char __iomem *)np->reg + ncr_offw(o)); writeb((char)(val), (char __iomem *)np->reg + ncr_offw(o) + 1); } while (0)
+-#else
+-#define OUTW_OFF(o, val) writew_raw((val), (char __iomem *)np->reg + ncr_offw(o))
-#endif
+-#define OUTL_OFF(o, val) writel_raw((val), (char __iomem *)np->reg + (o))
+-
+-#endif
+-
+-#define INB(r) INB_OFF (offsetof(struct ncr_reg,r))
+-#define INW(r) INW_OFF (offsetof(struct ncr_reg,r))
+-#define INL(r) INL_OFF (offsetof(struct ncr_reg,r))
+-
+-#define OUTB(r, val) OUTB_OFF (offsetof(struct ncr_reg,r), (val))
+-#define OUTW(r, val) OUTW_OFF (offsetof(struct ncr_reg,r), (val))
+-#define OUTL(r, val) OUTL_OFF (offsetof(struct ncr_reg,r), (val))
+-
+-/*
+- * Set bit field ON, OFF
+- */
+-
+-#define OUTONB(r, m) OUTB(r, INB(r) | (m))
+-#define OUTOFFB(r, m) OUTB(r, INB(r) & ~(m))
+-#define OUTONW(r, m) OUTW(r, INW(r) | (m))
+-#define OUTOFFW(r, m) OUTW(r, INW(r) & ~(m))
+-#define OUTONL(r, m) OUTL(r, INL(r) | (m))
+-#define OUTOFFL(r, m) OUTL(r, INL(r) & ~(m))
+-
+-/*
+- * We normally want the chip to have a consistent view
+- * of driver internal data structures when we restart it.
+- * Thus these macros.
+- */
+-#define OUTL_DSP(v) \
+- do { \
+- MEMORY_BARRIER(); \
+- OUTL (nc_dsp, (v)); \
+- } while (0)
+-
+-#define OUTONB_STD() \
+- do { \
+- MEMORY_BARRIER(); \
+- OUTONB (nc_dcntl, (STD|NOCOM)); \
+- } while (0)
+-
+-
+-/*
+-** NCR53C8XX devices features table.
+-*/
+-struct ncr_chip {
+- unsigned short revision_id;
+- unsigned char burst_max; /* log-base-2 of max burst */
+- unsigned char offset_max;
+- unsigned char nr_divisor;
+- unsigned int features;
+-#define FE_LED0 (1<<0)
+-#define FE_WIDE (1<<1) /* Wide data transfers */
+-#define FE_ULTRA (1<<2) /* Ultra speed 20Mtrans/sec */
+-#define FE_DBLR (1<<4) /* Clock doubler present */
+-#define FE_QUAD (1<<5) /* Clock quadrupler present */
+-#define FE_ERL (1<<6) /* Enable read line */
+-#define FE_CLSE (1<<7) /* Cache line size enable */
+-#define FE_WRIE (1<<8) /* Write & Invalidate enable */
+-#define FE_ERMP (1<<9) /* Enable read multiple */
+-#define FE_BOF (1<<10) /* Burst opcode fetch */
+-#define FE_DFS (1<<11) /* DMA fifo size */
+-#define FE_PFEN (1<<12) /* Prefetch enable */
+-#define FE_LDSTR (1<<13) /* Load/Store supported */
+-#define FE_RAM (1<<14) /* On chip RAM present */
+-#define FE_VARCLK (1<<15) /* SCSI clock may vary */
+-#define FE_RAM8K (1<<16) /* On chip RAM sized 8Kb */
+-#define FE_64BIT (1<<17) /* Have a 64-bit PCI interface */
+-#define FE_IO256 (1<<18) /* Requires full 256 bytes in PCI space */
+-#define FE_NOPM (1<<19) /* Scripts handles phase mismatch */
+-#define FE_LEDC (1<<20) /* Hardware control of LED */
+-#define FE_DIFF (1<<21) /* Support Differential SCSI */
+-#define FE_66MHZ (1<<23) /* 66MHz PCI Support */
+-#define FE_DAC (1<<24) /* Support DAC cycles (64 bit addressing) */
+-#define FE_ISTAT1 (1<<25) /* Have ISTAT1, MBOX0, MBOX1 registers */
+-#define FE_DAC_IN_USE (1<<26) /* Platform does DAC cycles */
+-#define FE_EHP (1<<27) /* 720: Even host parity */
+-#define FE_MUX (1<<28) /* 720: Multiplexed bus */
+-#define FE_EA (1<<29) /* 720: Enable Ack */
+-
+-#define FE_CACHE_SET (FE_ERL|FE_CLSE|FE_WRIE|FE_ERMP)
+-#define FE_SCSI_SET (FE_WIDE|FE_ULTRA|FE_DBLR|FE_QUAD|F_CLK80)
+-#define FE_SPECIAL_SET (FE_CACHE_SET|FE_BOF|FE_DFS|FE_LDSTR|FE_PFEN|FE_RAM)
+-};
+-
+-
+-/*
+-** Driver setup structure.
+-**
+-** This structure is initialized from linux config options.
+-** It can be overridden at boot-up by the boot command line.
+-*/
+-#define SCSI_NCR_MAX_EXCLUDES 8
+-struct ncr_driver_setup {
+- u8 master_parity;
+- u8 scsi_parity;
+- u8 disconnection;
+- u8 special_features;
+- u8 force_sync_nego;
+- u8 reverse_probe;
+- u8 pci_fix_up;
+- u8 use_nvram;
+- u8 verbose;
+- u8 default_tags;
+- u16 default_sync;
+- u16 debug;
+- u8 burst_max;
+- u8 led_pin;
+- u8 max_wide;
+- u8 settle_delay;
+- u8 diff_support;
+- u8 irqm;
+- u8 bus_check;
+- u8 optimize;
+- u8 recovery;
+- u8 host_id;
+- u16 iarb;
+- u32 excludes[SCSI_NCR_MAX_EXCLUDES];
+- char tag_ctrl[100];
+-};
+-
+-/*
+-** Initial setup.
+-** Can be overriden at startup by a command line.
+-*/
+-#define SCSI_NCR_DRIVER_SETUP \
+-{ \
+- SCSI_NCR_SETUP_MASTER_PARITY, \
+- SCSI_NCR_SETUP_SCSI_PARITY, \
+- SCSI_NCR_SETUP_DISCONNECTION, \
+- SCSI_NCR_SETUP_SPECIAL_FEATURES, \
+- SCSI_NCR_SETUP_FORCE_SYNC_NEGO, \
+- 0, \
+- 0, \
+- 1, \
+- 0, \
+- SCSI_NCR_SETUP_DEFAULT_TAGS, \
+- SCSI_NCR_SETUP_DEFAULT_SYNC, \
+- 0x00, \
+- 7, \
+- 0, \
+- 1, \
+- SCSI_NCR_SETUP_SETTLE_TIME, \
+- 0, \
+- 0, \
+- 1, \
+- 0, \
+- 0, \
+- 255, \
+- 0x00 \
-}
-
-/*
- * MEMORY ALLOCATOR.
- */
-
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/scsi/sym53c8xx_2/sym_malloc.c CVS2_6_14_PA0/drivers/scsi/sym53c8xx_2/sym_malloc.c
---- LINUS_2_6_14/drivers/scsi/sym53c8xx_2/sym_malloc.c 2005-10-27 21:30:43.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/scsi/sym53c8xx_2/sym_malloc.c 2005-09-27 06:03:22.000000000 -0600
-@@ -37,11 +37,7 @@
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
--#ifdef __FreeBSD__
--#include <dev/sym/sym_glue.h>
+-** Boot fail safe setup.
+-** Override initial setup from boot command line:
+-** ncr53c8xx=safe:y
+-*/
+-#define SCSI_NCR_DRIVER_SAFE_SETUP \
+-{ \
+- 0, \
+- 1, \
+- 0, \
+- 0, \
+- 0, \
+- 0, \
+- 0, \
+- 1, \
+- 2, \
+- 0, \
+- 255, \
+- 0x00, \
+- 255, \
+- 0, \
+- 0, \
+- 10, \
+- 1, \
+- 1, \
+- 1, \
+- 0, \
+- 0, \
+- 255 \
+-}
+-
+-/**************** ORIGINAL CONTENT of ncrreg.h from FreeBSD ******************/
+-
+-/*-----------------------------------------------------------------
+-**
+-** The ncr 53c810 register structure.
+-**
+-**-----------------------------------------------------------------
+-*/
+-
+-struct ncr_reg {
+-/*00*/ u8 nc_scntl0; /* full arb., ena parity, par->ATN */
+-
+-/*01*/ u8 nc_scntl1; /* no reset */
+- #define ISCON 0x10 /* connected to scsi */
+- #define CRST 0x08 /* force reset */
+- #define IARB 0x02 /* immediate arbitration */
+-
+-/*02*/ u8 nc_scntl2; /* no disconnect expected */
+- #define SDU 0x80 /* cmd: disconnect will raise error */
+- #define CHM 0x40 /* sta: chained mode */
+- #define WSS 0x08 /* sta: wide scsi send [W]*/
+- #define WSR 0x01 /* sta: wide scsi received [W]*/
+-
+-/*03*/ u8 nc_scntl3; /* cnf system clock dependent */
+- #define EWS 0x08 /* cmd: enable wide scsi [W]*/
+- #define ULTRA 0x80 /* cmd: ULTRA enable */
+- /* bits 0-2, 7 rsvd for C1010 */
+-
+-/*04*/ u8 nc_scid; /* cnf host adapter scsi address */
+- #define RRE 0x40 /* r/w:e enable response to resel. */
+- #define SRE 0x20 /* r/w:e enable response to select */
+-
+-/*05*/ u8 nc_sxfer; /* ### Sync speed and count */
+- /* bits 6-7 rsvd for C1010 */
+-
+-/*06*/ u8 nc_sdid; /* ### Destination-ID */
+-
+-/*07*/ u8 nc_gpreg; /* ??? IO-Pins */
+-
+-/*08*/ u8 nc_sfbr; /* ### First byte in phase */
+-
+-/*09*/ u8 nc_socl;
+- #define CREQ 0x80 /* r/w: SCSI-REQ */
+- #define CACK 0x40 /* r/w: SCSI-ACK */
+- #define CBSY 0x20 /* r/w: SCSI-BSY */
+- #define CSEL 0x10 /* r/w: SCSI-SEL */
+- #define CATN 0x08 /* r/w: SCSI-ATN */
+- #define CMSG 0x04 /* r/w: SCSI-MSG */
+- #define CC_D 0x02 /* r/w: SCSI-C_D */
+- #define CI_O 0x01 /* r/w: SCSI-I_O */
+-
+-/*0a*/ u8 nc_ssid;
+-
+-/*0b*/ u8 nc_sbcl;
+-
+-/*0c*/ u8 nc_dstat;
+- #define DFE 0x80 /* sta: dma fifo empty */
+- #define MDPE 0x40 /* int: master data parity error */
+- #define BF 0x20 /* int: script: bus fault */
+- #define ABRT 0x10 /* int: script: command aborted */
+- #define SSI 0x08 /* int: script: single step */
+- #define SIR 0x04 /* int: script: interrupt instruct. */
+- #define IID 0x01 /* int: script: illegal instruct. */
+-
+-/*0d*/ u8 nc_sstat0;
+- #define ILF 0x80 /* sta: data in SIDL register lsb */
+- #define ORF 0x40 /* sta: data in SODR register lsb */
+- #define OLF 0x20 /* sta: data in SODL register lsb */
+- #define AIP 0x10 /* sta: arbitration in progress */
+- #define LOA 0x08 /* sta: arbitration lost */
+- #define WOA 0x04 /* sta: arbitration won */
+- #define IRST 0x02 /* sta: scsi reset signal */
+- #define SDP 0x01 /* sta: scsi parity signal */
+-
+-/*0e*/ u8 nc_sstat1;
+- #define FF3210 0xf0 /* sta: bytes in the scsi fifo */
+-
+-/*0f*/ u8 nc_sstat2;
+- #define ILF1 0x80 /* sta: data in SIDL register msb[W]*/
+- #define ORF1 0x40 /* sta: data in SODR register msb[W]*/
+- #define OLF1 0x20 /* sta: data in SODL register msb[W]*/
+- #define DM 0x04 /* sta: DIFFSENS mismatch (895/6 only) */
+- #define LDSC 0x02 /* sta: disconnect & reconnect */
+-
+-/*10*/ u8 nc_dsa; /* --> Base page */
+-/*11*/ u8 nc_dsa1;
+-/*12*/ u8 nc_dsa2;
+-/*13*/ u8 nc_dsa3;
+-
+-/*14*/ u8 nc_istat; /* --> Main Command and status */
+- #define CABRT 0x80 /* cmd: abort current operation */
+- #define SRST 0x40 /* mod: reset chip */
+- #define SIGP 0x20 /* r/w: message from host to ncr */
+- #define SEM 0x10 /* r/w: message between host + ncr */
+- #define CON 0x08 /* sta: connected to scsi */
+- #define INTF 0x04 /* sta: int on the fly (reset by wr)*/
+- #define SIP 0x02 /* sta: scsi-interrupt */
+- #define DIP 0x01 /* sta: host/script interrupt */
+-
+-/*15*/ u8 nc_istat1; /* 896 and later cores only */
+- #define FLSH 0x04 /* sta: chip is flushing */
+- #define SRUN 0x02 /* sta: scripts are running */
+- #define SIRQD 0x01 /* r/w: disable INT pin */
+-
+-/*16*/ u8 nc_mbox0; /* 896 and later cores only */
+-/*17*/ u8 nc_mbox1; /* 896 and later cores only */
+-
+-/*18*/ u8 nc_ctest0;
+- #define EHP 0x04 /* 720 even host parity */
+-/*19*/ u8 nc_ctest1;
+-
+-/*1a*/ u8 nc_ctest2;
+- #define CSIGP 0x40
+- /* bits 0-2,7 rsvd for C1010 */
+-
+-/*1b*/ u8 nc_ctest3;
+- #define FLF 0x08 /* cmd: flush dma fifo */
+- #define CLF 0x04 /* cmd: clear dma fifo */
+- #define FM 0x02 /* mod: fetch pin mode */
+- #define WRIE 0x01 /* mod: write and invalidate enable */
+- /* bits 4-7 rsvd for C1010 */
+-
+-/*1c*/ u32 nc_temp; /* ### Temporary stack */
+-
+-/*20*/ u8 nc_dfifo;
+-/*21*/ u8 nc_ctest4;
+- #define MUX 0x80 /* 720 host bus multiplex mode */
+- #define BDIS 0x80 /* mod: burst disable */
+- #define MPEE 0x08 /* mod: master parity error enable */
+-
+-/*22*/ u8 nc_ctest5;
+- #define DFS 0x20 /* mod: dma fifo size */
+- /* bits 0-1, 3-7 rsvd for C1010 */
+-/*23*/ u8 nc_ctest6;
+-
+-/*24*/ u32 nc_dbc; /* ### Byte count and command */
+-/*28*/ u32 nc_dnad; /* ### Next command register */
+-/*2c*/ u32 nc_dsp; /* --> Script Pointer */
+-/*30*/ u32 nc_dsps; /* --> Script pointer save/opcode#2 */
+-
+-/*34*/ u8 nc_scratcha; /* Temporary register a */
+-/*35*/ u8 nc_scratcha1;
+-/*36*/ u8 nc_scratcha2;
+-/*37*/ u8 nc_scratcha3;
+-
+-/*38*/ u8 nc_dmode;
+- #define BL_2 0x80 /* mod: burst length shift value +2 */
+- #define BL_1 0x40 /* mod: burst length shift value +1 */
+- #define ERL 0x08 /* mod: enable read line */
+- #define ERMP 0x04 /* mod: enable read multiple */
+- #define BOF 0x02 /* mod: burst op code fetch */
+-
+-/*39*/ u8 nc_dien;
+-/*3a*/ u8 nc_sbr;
+-
+-/*3b*/ u8 nc_dcntl; /* --> Script execution control */
+- #define CLSE 0x80 /* mod: cache line size enable */
+- #define PFF 0x40 /* cmd: pre-fetch flush */
+- #define PFEN 0x20 /* mod: pre-fetch enable */
+- #define EA 0x20 /* mod: 720 enable-ack */
+- #define SSM 0x10 /* mod: single step mode */
+- #define IRQM 0x08 /* mod: irq mode (1 = totem pole !) */
+- #define STD 0x04 /* cmd: start dma mode */
+- #define IRQD 0x02 /* mod: irq disable */
+- #define NOCOM 0x01 /* cmd: protect sfbr while reselect */
+- /* bits 0-1 rsvd for C1010 */
+-
+-/*3c*/ u32 nc_adder;
+-
+-/*40*/ u16 nc_sien; /* -->: interrupt enable */
+-/*42*/ u16 nc_sist; /* <--: interrupt status */
+- #define SBMC 0x1000/* sta: SCSI Bus Mode Change (895/6 only) */
+- #define STO 0x0400/* sta: timeout (select) */
+- #define GEN 0x0200/* sta: timeout (general) */
+- #define HTH 0x0100/* sta: timeout (handshake) */
+- #define MA 0x80 /* sta: phase mismatch */
+- #define CMP 0x40 /* sta: arbitration complete */
+- #define SEL 0x20 /* sta: selected by another device */
+- #define RSL 0x10 /* sta: reselected by another device*/
+- #define SGE 0x08 /* sta: gross error (over/underflow)*/
+- #define UDC 0x04 /* sta: unexpected disconnect */
+- #define RST 0x02 /* sta: scsi bus reset detected */
+- #define PAR 0x01 /* sta: scsi parity error */
+-
+-/*44*/ u8 nc_slpar;
+-/*45*/ u8 nc_swide;
+-/*46*/ u8 nc_macntl;
+-/*47*/ u8 nc_gpcntl;
+-/*48*/ u8 nc_stime0; /* cmd: timeout for select&handshake*/
+-/*49*/ u8 nc_stime1; /* cmd: timeout user defined */
+-/*4a*/ u16 nc_respid; /* sta: Reselect-IDs */
+-
+-/*4c*/ u8 nc_stest0;
+-
+-/*4d*/ u8 nc_stest1;
+- #define SCLK 0x80 /* Use the PCI clock as SCSI clock */
+- #define DBLEN 0x08 /* clock doubler running */
+- #define DBLSEL 0x04 /* clock doubler selected */
+-
+-
+-/*4e*/ u8 nc_stest2;
+- #define ROF 0x40 /* reset scsi offset (after gross error!) */
+- #define DIF 0x20 /* 720 SCSI differential mode */
+- #define EXT 0x02 /* extended filtering */
+-
+-/*4f*/ u8 nc_stest3;
+- #define TE 0x80 /* c: tolerAnt enable */
+- #define HSC 0x20 /* c: Halt SCSI Clock */
+- #define CSF 0x02 /* c: clear scsi fifo */
+-
+-/*50*/ u16 nc_sidl; /* Lowlevel: latched from scsi data */
+-/*52*/ u8 nc_stest4;
+- #define SMODE 0xc0 /* SCSI bus mode (895/6 only) */
+- #define SMODE_HVD 0x40 /* High Voltage Differential */
+- #define SMODE_SE 0x80 /* Single Ended */
+- #define SMODE_LVD 0xc0 /* Low Voltage Differential */
+- #define LCKFRQ 0x20 /* Frequency Lock (895/6 only) */
+- /* bits 0-5 rsvd for C1010 */
+-
+-/*53*/ u8 nc_53_;
+-/*54*/ u16 nc_sodl; /* Lowlevel: data out to scsi data */
+-/*56*/ u8 nc_ccntl0; /* Chip Control 0 (896) */
+- #define ENPMJ 0x80 /* Enable Phase Mismatch Jump */
+- #define PMJCTL 0x40 /* Phase Mismatch Jump Control */
+- #define ENNDJ 0x20 /* Enable Non Data PM Jump */
+- #define DISFC 0x10 /* Disable Auto FIFO Clear */
+- #define DILS 0x02 /* Disable Internal Load/Store */
+- #define DPR 0x01 /* Disable Pipe Req */
+-
+-/*57*/ u8 nc_ccntl1; /* Chip Control 1 (896) */
+- #define ZMOD 0x80 /* High Impedance Mode */
+- #define DIC 0x10 /* Disable Internal Cycles */
+- #define DDAC 0x08 /* Disable Dual Address Cycle */
+- #define XTIMOD 0x04 /* 64-bit Table Ind. Indexing Mode */
+- #define EXTIBMV 0x02 /* Enable 64-bit Table Ind. BMOV */
+- #define EXDBMV 0x01 /* Enable 64-bit Direct BMOV */
+-
+-/*58*/ u16 nc_sbdl; /* Lowlevel: data from scsi data */
+-/*5a*/ u16 nc_5a_;
+-
+-/*5c*/ u8 nc_scr0; /* Working register B */
+-/*5d*/ u8 nc_scr1; /* */
+-/*5e*/ u8 nc_scr2; /* */
+-/*5f*/ u8 nc_scr3; /* */
+-
+-/*60*/ u8 nc_scrx[64]; /* Working register C-R */
+-/*a0*/ u32 nc_mmrs; /* Memory Move Read Selector */
+-/*a4*/ u32 nc_mmws; /* Memory Move Write Selector */
+-/*a8*/ u32 nc_sfs; /* Script Fetch Selector */
+-/*ac*/ u32 nc_drs; /* DSA Relative Selector */
+-/*b0*/ u32 nc_sbms; /* Static Block Move Selector */
+-/*b4*/ u32 nc_dbms; /* Dynamic Block Move Selector */
+-/*b8*/ u32 nc_dnad64; /* DMA Next Address 64 */
+-/*bc*/ u16 nc_scntl4; /* C1010 only */
+- #define U3EN 0x80 /* Enable Ultra 3 */
+- #define AIPEN 0x40 /* Allow check upper byte lanes */
+- #define XCLKH_DT 0x08 /* Extra clock of data hold on DT
+- transfer edge */
+- #define XCLKH_ST 0x04 /* Extra clock of data hold on ST
+- transfer edge */
+-
+-/*be*/ u8 nc_aipcntl0; /* Epat Control 1 C1010 only */
+-/*bf*/ u8 nc_aipcntl1; /* AIP Control C1010_66 Only */
+-
+-/*c0*/ u32 nc_pmjad1; /* Phase Mismatch Jump Address 1 */
+-/*c4*/ u32 nc_pmjad2; /* Phase Mismatch Jump Address 2 */
+-/*c8*/ u8 nc_rbc; /* Remaining Byte Count */
+-/*c9*/ u8 nc_rbc1; /* */
+-/*ca*/ u8 nc_rbc2; /* */
+-/*cb*/ u8 nc_rbc3; /* */
+-
+-/*cc*/ u8 nc_ua; /* Updated Address */
+-/*cd*/ u8 nc_ua1; /* */
+-/*ce*/ u8 nc_ua2; /* */
+-/*cf*/ u8 nc_ua3; /* */
+-/*d0*/ u32 nc_esa; /* Entry Storage Address */
+-/*d4*/ u8 nc_ia; /* Instruction Address */
+-/*d5*/ u8 nc_ia1;
+-/*d6*/ u8 nc_ia2;
+-/*d7*/ u8 nc_ia3;
+-/*d8*/ u32 nc_sbc; /* SCSI Byte Count (3 bytes only) */
+-/*dc*/ u32 nc_csbc; /* Cumulative SCSI Byte Count */
+-
+- /* Following for C1010 only */
+-/*e0*/ u16 nc_crcpad; /* CRC Value */
+-/*e2*/ u8 nc_crccntl0; /* CRC control register */
+- #define SNDCRC 0x10 /* Send CRC Request */
+-/*e3*/ u8 nc_crccntl1; /* CRC control register */
+-/*e4*/ u32 nc_crcdata; /* CRC data register */
+-/*e8*/ u32 nc_e8_; /* rsvd */
+-/*ec*/ u32 nc_ec_; /* rsvd */
+-/*f0*/ u16 nc_dfbc; /* DMA FIFO byte count */
+-
+-};
+-
+-/*-----------------------------------------------------------
+-**
+-** Utility macros for the script.
+-**
+-**-----------------------------------------------------------
+-*/
+-
+-#define REGJ(p,r) (offsetof(struct ncr_reg, p ## r))
+-#define REG(r) REGJ (nc_, r)
+-
+-typedef u32 ncrcmd;
+-
+-/*-----------------------------------------------------------
+-**
+-** SCSI phases
+-**
+-** DT phases illegal for ncr driver.
+-**
+-**-----------------------------------------------------------
+-*/
+-
+-#define SCR_DATA_OUT 0x00000000
+-#define SCR_DATA_IN 0x01000000
+-#define SCR_COMMAND 0x02000000
+-#define SCR_STATUS 0x03000000
+-#define SCR_DT_DATA_OUT 0x04000000
+-#define SCR_DT_DATA_IN 0x05000000
+-#define SCR_MSG_OUT 0x06000000
+-#define SCR_MSG_IN 0x07000000
+-
+-#define SCR_ILG_OUT 0x04000000
+-#define SCR_ILG_IN 0x05000000
+-
+-/*-----------------------------------------------------------
+-**
+-** Data transfer via SCSI.
+-**
+-**-----------------------------------------------------------
+-**
+-** MOVE_ABS (LEN)
+-** <<start address>>
+-**
+-** MOVE_IND (LEN)
+-** <<dnad_offset>>
+-**
+-** MOVE_TBL
+-** <<dnad_offset>>
+-**
+-**-----------------------------------------------------------
+-*/
+-
+-#define OPC_MOVE 0x08000000
+-
+-#define SCR_MOVE_ABS(l) ((0x00000000 | OPC_MOVE) | (l))
+-#define SCR_MOVE_IND(l) ((0x20000000 | OPC_MOVE) | (l))
+-#define SCR_MOVE_TBL (0x10000000 | OPC_MOVE)
+-
+-#define SCR_CHMOV_ABS(l) ((0x00000000) | (l))
+-#define SCR_CHMOV_IND(l) ((0x20000000) | (l))
+-#define SCR_CHMOV_TBL (0x10000000)
+-
+-struct scr_tblmove {
+- u32 size;
+- u32 addr;
+-};
+-
+-/*-----------------------------------------------------------
+-**
+-** Selection
+-**
+-**-----------------------------------------------------------
+-**
+-** SEL_ABS | SCR_ID (0..15) [ | REL_JMP]
+-** <<alternate_address>>
+-**
+-** SEL_TBL | << dnad_offset>> [ | REL_JMP]
+-** <<alternate_address>>
+-**
+-**-----------------------------------------------------------
+-*/
+-
+-#define SCR_SEL_ABS 0x40000000
+-#define SCR_SEL_ABS_ATN 0x41000000
+-#define SCR_SEL_TBL 0x42000000
+-#define SCR_SEL_TBL_ATN 0x43000000
+-
+-
+-#ifdef SCSI_NCR_BIG_ENDIAN
+-struct scr_tblsel {
+- u8 sel_scntl3;
+- u8 sel_id;
+- u8 sel_sxfer;
+- u8 sel_scntl4;
+-};
-#else
- #include "sym_glue.h"
+-struct scr_tblsel {
+- u8 sel_scntl4;
+- u8 sel_sxfer;
+- u8 sel_id;
+- u8 sel_scntl3;
+-};
-#endif
-
- /*
- * Simple power of two buddy-like generic allocator.
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/scsi/zalon.c CVS2_6_14_PA0/drivers/scsi/zalon.c
---- LINUS_2_6_14/drivers/scsi/zalon.c 2005-10-27 21:30:42.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/scsi/zalon.c 2005-09-10 12:19:41.000000000 -0600
-@@ -88,7 +88,7 @@
- struct gsc_irq gsc_irq;
- u32 zalon_vers;
- int error = -ENODEV;
-- void __iomem *zalon = ioremap(dev->hpa, 4096);
-+ void __iomem *zalon = ioremap(dev->hpa.start, 4096);
- void __iomem *io_port = zalon + GSC_SCSI_ZALON_OFFSET;
- static int unit = 0;
- struct Scsi_Host *host;
-@@ -127,7 +127,7 @@
- device.chip = zalon720_chip;
- device.host_id = 7;
- device.dev = &dev->dev;
-- device.slot.base = dev->hpa + GSC_SCSI_ZALON_OFFSET;
-+ device.slot.base = dev->hpa.start + GSC_SCSI_ZALON_OFFSET;
- device.slot.base_v = io_port;
- device.slot.irq = dev->irq;
- device.differential = 2;
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/serial/8250_gsc.c CVS2_6_14_PA0/drivers/serial/8250_gsc.c
---- LINUS_2_6_14/drivers/serial/8250_gsc.c 2005-10-27 21:30:43.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/serial/8250_gsc.c 2005-09-10 12:26:14.000000000 -0600
-@@ -29,7 +29,6 @@
- static int __init
- serial_init_chip(struct parisc_device *dev)
- {
-- static int serial_line_nr;
- struct uart_port port;
- unsigned long address;
- int err;
-@@ -42,12 +41,13 @@
- */
- if (parisc_parent(dev)->id.hw_type != HPHW_IOA) {
- printk(KERN_INFO "Serial: device 0x%lx not configured.\n"
-- "Enable support for Wax, Lasi, Asp or Dino.\n", dev->hpa);
-+ "Enable support for Wax, Lasi, Asp or Dino.\n",
-+ dev->hpa.start);
- }
- return -ENODEV;
- }
-
-- address = dev->hpa;
-+ address = dev->hpa.start;
- if (dev->id.sversion != 0x8d) {
- address += 0x800;
- }
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/serial/mux.c CVS2_6_14_PA0/drivers/serial/mux.c
---- LINUS_2_6_14/drivers/serial/mux.c 2005-10-27 21:30:43.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/serial/mux.c 2005-09-14 06:56:44.000000000 -0600
-@@ -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
-@@ -444,7 +445,7 @@
- unsigned long bytecnt;
- struct uart_port *port;
-
-- status = pdc_iodc_read(&bytecnt, dev->hpa, 0, iodc_data, 32);
-+ status = pdc_iodc_read(&bytecnt, dev->hpa.start, 0, iodc_data, 32);
- if(status != PDC_OK) {
- printk(KERN_ERR "Serial mux: Unable to read IODC.\n");
- return 1;
-@@ -469,16 +470,18 @@
- for(i = 0; i < ports; ++i, ++port_cnt) {
- port = &mux_ports[port_cnt];
- port->iobase = 0;
-- port->mapbase = dev->hpa + MUX_OFFSET + (i * MUX_LINE_OFFSET);
-+ port->mapbase = dev->hpa.start + MUX_OFFSET +
-+ (i * MUX_LINE_OFFSET);
- 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;
- port->flags = UPF_BOOT_AUTOCONF;
- port->line = port_cnt;
-+ spin_lock_init(&port->lock);
- status = uart_add_one_port(&mux_driver, port);
- BUG_ON(status);
- }
-@@ -497,7 +500,7 @@
- MODULE_DEVICE_TABLE(parisc, mux_tbl);
-
- static struct parisc_driver serial_mux_driver = {
-- .name = "Serial MUX",
-+ .name = "serial_mux",
- .id_table = mux_tbl,
- .probe = mux_probe,
- };
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/serial/serial_core.c CVS2_6_14_PA0/drivers/serial/serial_core.c
---- LINUS_2_6_14/drivers/serial/serial_core.c 2005-10-27 21:30:43.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/serial/serial_core.c 2005-09-14 06:56:44.000000000 -0600
-@@ -1948,6 +1948,7 @@
+-
+-#define SCR_JMP_REL 0x04000000
+-#define SCR_ID(id) (((u32)(id)) << 16)
+-
+-/*-----------------------------------------------------------
+-**
+-** Waiting for Disconnect or Reselect
+-**
+-**-----------------------------------------------------------
+-**
+-** WAIT_DISC
+-** dummy: <<alternate_address>>
+-**
+-** WAIT_RESEL
+-** <<alternate_address>>
+-**
+-**-----------------------------------------------------------
+-*/
+-
+-#define SCR_WAIT_DISC 0x48000000
+-#define SCR_WAIT_RESEL 0x50000000
+-
+-/*-----------------------------------------------------------
+-**
+-** Bit Set / Reset
+-**
+-**-----------------------------------------------------------
+-**
+-** SET (flags {|.. })
+-**
+-** CLR (flags {|.. })
+-**
+-**-----------------------------------------------------------
+-*/
+-
+-#define SCR_SET(f) (0x58000000 | (f))
+-#define SCR_CLR(f) (0x60000000 | (f))
+-
+-#define SCR_CARRY 0x00000400
+-#define SCR_TRG 0x00000200
+-#define SCR_ACK 0x00000040
+-#define SCR_ATN 0x00000008
+-
+-
+-
+-
+-/*-----------------------------------------------------------
+-**
+-** Memory to memory move
+-**
+-**-----------------------------------------------------------
+-**
+-** COPY (bytecount)
+-** << source_address >>
+-** << destination_address >>
+-**
+-** SCR_COPY sets the NO FLUSH option by default.
+-** SCR_COPY_F does not set this option.
+-**
+-** For chips which do not support this option,
+-** ncr_copy_and_bind() will remove this bit.
+-**-----------------------------------------------------------
+-*/
+-
+-#define SCR_NO_FLUSH 0x01000000
+-
+-#define SCR_COPY(n) (0xc0000000 | SCR_NO_FLUSH | (n))
+-#define SCR_COPY_F(n) (0xc0000000 | (n))
+-
+-/*-----------------------------------------------------------
+-**
+-** Register move and binary operations
+-**
+-**-----------------------------------------------------------
+-**
+-** SFBR_REG (reg, op, data) reg = SFBR op data
+-** << 0 >>
+-**
+-** REG_SFBR (reg, op, data) SFBR = reg op data
+-** << 0 >>
+-**
+-** REG_REG (reg, op, data) reg = reg op data
+-** << 0 >>
+-**
+-**-----------------------------------------------------------
+-** On 810A, 860, 825A, 875, 895 and 896 chips the content
+-** of SFBR register can be used as data (SCR_SFBR_DATA).
+-** The 896 has additionnal IO registers starting at
+-** offset 0x80. Bit 7 of register offset is stored in
+-** bit 7 of the SCRIPTS instruction first DWORD.
+-**-----------------------------------------------------------
+-*/
+-
+-#define SCR_REG_OFS(ofs) ((((ofs) & 0x7f) << 16ul) + ((ofs) & 0x80))
+-
+-#define SCR_SFBR_REG(reg,op,data) \
+- (0x68000000 | (SCR_REG_OFS(REG(reg))) | (op) | (((data)&0xff)<<8ul))
+-
+-#define SCR_REG_SFBR(reg,op,data) \
+- (0x70000000 | (SCR_REG_OFS(REG(reg))) | (op) | (((data)&0xff)<<8ul))
+-
+-#define SCR_REG_REG(reg,op,data) \
+- (0x78000000 | (SCR_REG_OFS(REG(reg))) | (op) | (((data)&0xff)<<8ul))
+-
+-
+-#define SCR_LOAD 0x00000000
+-#define SCR_SHL 0x01000000
+-#define SCR_OR 0x02000000
+-#define SCR_XOR 0x03000000
+-#define SCR_AND 0x04000000
+-#define SCR_SHR 0x05000000
+-#define SCR_ADD 0x06000000
+-#define SCR_ADDC 0x07000000
+-
+-#define SCR_SFBR_DATA (0x00800000>>8ul) /* Use SFBR as data */
+-
+-/*-----------------------------------------------------------
+-**
+-** FROM_REG (reg) SFBR = reg
+-** << 0 >>
+-**
+-** TO_REG (reg) reg = SFBR
+-** << 0 >>
+-**
+-** LOAD_REG (reg, data) reg = <data>
+-** << 0 >>
+-**
+-** LOAD_SFBR(data) SFBR = <data>
+-** << 0 >>
+-**
+-**-----------------------------------------------------------
+-*/
+-
+-#define SCR_FROM_REG(reg) \
+- SCR_REG_SFBR(reg,SCR_OR,0)
+-
+-#define SCR_TO_REG(reg) \
+- SCR_SFBR_REG(reg,SCR_OR,0)
+-
+-#define SCR_LOAD_REG(reg,data) \
+- SCR_REG_REG(reg,SCR_LOAD,data)
+-
+-#define SCR_LOAD_SFBR(data) \
+- (SCR_REG_SFBR (gpreg, SCR_LOAD, data))
+-
+-/*-----------------------------------------------------------
+-**
+-** LOAD from memory to register.
+-** STORE from register to memory.
+-**
+-** Only supported by 810A, 860, 825A, 875, 895 and 896.
+-**
+-**-----------------------------------------------------------
+-**
+-** LOAD_ABS (LEN)
+-** <<start address>>
+-**
+-** LOAD_REL (LEN) (DSA relative)
+-** <<dsa_offset>>
+-**
+-**-----------------------------------------------------------
+-*/
+-
+-#define SCR_REG_OFS2(ofs) (((ofs) & 0xff) << 16ul)
+-#define SCR_NO_FLUSH2 0x02000000
+-#define SCR_DSA_REL2 0x10000000
+-
+-#define SCR_LOAD_R(reg, how, n) \
+- (0xe1000000 | how | (SCR_REG_OFS2(REG(reg))) | (n))
+-
+-#define SCR_STORE_R(reg, how, n) \
+- (0xe0000000 | how | (SCR_REG_OFS2(REG(reg))) | (n))
+-
+-#define SCR_LOAD_ABS(reg, n) SCR_LOAD_R(reg, SCR_NO_FLUSH2, n)
+-#define SCR_LOAD_REL(reg, n) SCR_LOAD_R(reg, SCR_NO_FLUSH2|SCR_DSA_REL2, n)
+-#define SCR_LOAD_ABS_F(reg, n) SCR_LOAD_R(reg, 0, n)
+-#define SCR_LOAD_REL_F(reg, n) SCR_LOAD_R(reg, SCR_DSA_REL2, n)
+-
+-#define SCR_STORE_ABS(reg, n) SCR_STORE_R(reg, SCR_NO_FLUSH2, n)
+-#define SCR_STORE_REL(reg, n) SCR_STORE_R(reg, SCR_NO_FLUSH2|SCR_DSA_REL2,n)
+-#define SCR_STORE_ABS_F(reg, n) SCR_STORE_R(reg, 0, n)
+-#define SCR_STORE_REL_F(reg, n) SCR_STORE_R(reg, SCR_DSA_REL2, n)
+-
+-
+-/*-----------------------------------------------------------
+-**
+-** Waiting for Disconnect or Reselect
+-**
+-**-----------------------------------------------------------
+-**
+-** JUMP [ | IFTRUE/IFFALSE ( ... ) ]
+-** <<address>>
+-**
+-** JUMPR [ | IFTRUE/IFFALSE ( ... ) ]
+-** <<distance>>
+-**
+-** CALL [ | IFTRUE/IFFALSE ( ... ) ]
+-** <<address>>
+-**
+-** CALLR [ | IFTRUE/IFFALSE ( ... ) ]
+-** <<distance>>
+-**
+-** RETURN [ | IFTRUE/IFFALSE ( ... ) ]
+-** <<dummy>>
+-**
+-** INT [ | IFTRUE/IFFALSE ( ... ) ]
+-** <<ident>>
+-**
+-** INT_FLY [ | IFTRUE/IFFALSE ( ... ) ]
+-** <<ident>>
+-**
+-** Conditions:
+-** WHEN (phase)
+-** IF (phase)
+-** CARRYSET
+-** DATA (data, mask)
+-**
+-**-----------------------------------------------------------
+-*/
+-
+-#define SCR_NO_OP 0x80000000
+-#define SCR_JUMP 0x80080000
+-#define SCR_JUMP64 0x80480000
+-#define SCR_JUMPR 0x80880000
+-#define SCR_CALL 0x88080000
+-#define SCR_CALLR 0x88880000
+-#define SCR_RETURN 0x90080000
+-#define SCR_INT 0x98080000
+-#define SCR_INT_FLY 0x98180000
+-
+-#define IFFALSE(arg) (0x00080000 | (arg))
+-#define IFTRUE(arg) (0x00000000 | (arg))
+-
+-#define WHEN(phase) (0x00030000 | (phase))
+-#define IF(phase) (0x00020000 | (phase))
+-
+-#define DATA(D) (0x00040000 | ((D) & 0xff))
+-#define MASK(D,M) (0x00040000 | (((M ^ 0xff) & 0xff) << 8ul)|((D) & 0xff))
+-
+-#define CARRYSET (0x00200000)
+-
+-/*-----------------------------------------------------------
+-**
+-** SCSI constants.
+-**
+-**-----------------------------------------------------------
+-*/
+-
+-/*
+-** Messages
+-*/
+-
+-#define M_COMPLETE COMMAND_COMPLETE
+-#define M_EXTENDED EXTENDED_MESSAGE
+-#define M_SAVE_DP SAVE_POINTERS
+-#define M_RESTORE_DP RESTORE_POINTERS
+-#define M_DISCONNECT DISCONNECT
+-#define M_ID_ERROR INITIATOR_ERROR
+-#define M_ABORT ABORT_TASK_SET
+-#define M_REJECT MESSAGE_REJECT
+-#define M_NOOP NOP
+-#define M_PARITY MSG_PARITY_ERROR
+-#define M_LCOMPLETE LINKED_CMD_COMPLETE
+-#define M_FCOMPLETE LINKED_FLG_CMD_COMPLETE
+-#define M_RESET TARGET_RESET
+-#define M_ABORT_TAG ABORT_TASK
+-#define M_CLEAR_QUEUE CLEAR_TASK_SET
+-#define M_INIT_REC INITIATE_RECOVERY
+-#define M_REL_REC RELEASE_RECOVERY
+-#define M_TERMINATE (0x11)
+-#define M_SIMPLE_TAG SIMPLE_QUEUE_TAG
+-#define M_HEAD_TAG HEAD_OF_QUEUE_TAG
+-#define M_ORDERED_TAG ORDERED_QUEUE_TAG
+-#define M_IGN_RESIDUE IGNORE_WIDE_RESIDUE
+-#define M_IDENTIFY (0x80)
+-
+-#define M_X_MODIFY_DP EXTENDED_MODIFY_DATA_POINTER
+-#define M_X_SYNC_REQ EXTENDED_SDTR
+-#define M_X_WIDE_REQ EXTENDED_WDTR
+-#define M_X_PPR_REQ EXTENDED_PPR
+-
+-/*
+-** Status
+-*/
+-
+-#define S_GOOD (0x00)
+-#define S_CHECK_COND (0x02)
+-#define S_COND_MET (0x04)
+-#define S_BUSY (0x08)
+-#define S_INT (0x10)
+-#define S_INT_COND_MET (0x14)
+-#define S_CONFLICT (0x18)
+-#define S_TERMINATED (0x20)
+-#define S_QUEUE_FULL (0x28)
+-#define S_ILLEGAL (0xff)
+-#define S_SENSE (0x80)
+-
+-/*
+- * End of ncrreg from FreeBSD
+- */
+-
+-#endif /* defined SYM53C8XX_DEFS_H */
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/serial/serial_core.c CVS2_6_15_RC7_PA0/drivers/serial/serial_core.c
+--- LINUS_2_6_15_RC7/drivers/serial/serial_core.c 2005-12-27 13:25:49.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/serial/serial_core.c 2005-11-29 11:03:08.000000000 -0700
+@@ -1961,6 +1961,7 @@
uart_report_port(struct uart_driver *drv, struct uart_port *port)
{
char address[64];
@@ -11426,12 +7590,11 @@
switch (port->iotype) {
case UPIO_PORT:
-@@ -1968,8 +1969,17 @@
+@@ -1982,10 +1983,19 @@
break;
}
-- printk(KERN_INFO "%s%d at %s (irq = %d) is a %s\n",
-- drv->dev_name, port->line, address, port->irq, uart_type(port));
+- printk(KERN_INFO "%s%s%s%d at %s (irq = %d) is a %s\n",
+#ifndef NO_IRQ
+#define NO_IRQ (-1)
+#endif
@@ -11441,14 +7604,17 @@
+ snprintf(irq, sizeof(irq), "irq = %d", port->irq);
+ }
+
-+ printk(KERN_INFO "%s%d at %s (%s) is a %s\n",
++ printk(KERN_INFO "%s%s%s%d at %s (%s) is a %s\n",
+ port->dev ? port->dev->bus_id : "",
+ port->dev ? ": " : "",
+- drv->dev_name, port->line, address, port->irq, uart_type(port));
+ drv->dev_name, port->line, address, irq, uart_type(port));
}
static void
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/drivers/usb/input/hid-core.c CVS2_6_14_PA0/drivers/usb/input/hid-core.c
---- LINUS_2_6_14/drivers/usb/input/hid-core.c 2005-10-27 21:30:43.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/usb/input/hid-core.c 2005-10-20 08:43:18.000000000 -0600
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/usb/input/hid-core.c CVS2_6_15_RC7_PA0/drivers/usb/input/hid-core.c
+--- LINUS_2_6_15_RC7/drivers/usb/input/hid-core.c 2005-12-27 13:25:50.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/usb/input/hid-core.c 2005-12-19 05:42:37.000000000 -0700
@@ -760,21 +760,31 @@
}
@@ -11483,310 +7649,171 @@
+ 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_14/drivers/video/console/Kconfig CVS2_6_14_PA0/drivers/video/console/Kconfig
---- LINUS_2_6_14/drivers/video/console/Kconfig 2005-10-27 21:30:44.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/video/console/Kconfig 2005-09-14 06:56:57.000000000 -0600
-@@ -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 || USB_SISUSBVGA_CON
-+ depends on FRAMEBUFFER_CONSOLE || SGI_NEWPORT_CONSOLE=y || STI_CONSOLE || USB_SISUSBVGA_CON
- 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_14/drivers/video/console/sticore.c CVS2_6_14_PA0/drivers/video/console/sticore.c
---- LINUS_2_6_14/drivers/video/console/sticore.c 2005-10-27 21:30:44.000000000 -0600
-+++ CVS2_6_14_PA0/drivers/video/console/sticore.c 2005-09-10 12:30:10.000000000 -0600
-@@ -511,12 +511,12 @@
- struct sti_cooked_font *cooked_font;
-
- if (!fbfont_name || !strlen(fbfont_name))
-- return NULL;
-+ return NULL;
- fbfont = find_font(fbfont_name);
- if (!fbfont)
-- fbfont = get_default_font(1024,768);
-+ fbfont = get_default_font(1024,768);
- if (!fbfont)
-- return NULL;
-+ return NULL;
-
- DPRINTK((KERN_DEBUG "selected %dx%d fb-font %s\n",
- fbfont->width, fbfont->height, fbfont->name));
-@@ -527,7 +527,7 @@
-
- nf = kmalloc(size, GFP_KERNEL);
- if (!nf)
-- return NULL;
-+ return NULL;
- memset(nf, 0, size);
-
- nf->first_char = 0;
-@@ -546,8 +546,8 @@
-
- cooked_font = kmalloc(sizeof(*cooked_font), GFP_KERNEL);
- if (!cooked_font) {
-- kfree(nf);
-- return NULL;
-+ kfree(nf);
-+ return NULL;
- }
-
- cooked_font->raw = nf;
-@@ -595,7 +595,7 @@
- static void __init
- sti_dump_rom(struct sti_rom *rom)
- {
-- printk(KERN_INFO " id %04x-%04x, conforms to spec rev. %d.%02x\n",
-+ printk(KERN_INFO " id %04x-%04x, conforms to spec rev. %d.%02x\n",
- rom->graphics_id[0],
- rom->graphics_id[1],
- rom->revno[0] >> 4,
-@@ -651,15 +651,16 @@
- struct sti_cooked_font *font;
- int i = 0;
-
-- for(font = rom->font_start; font; font = font->next_font, i++) {
-- if((font->raw->width == width) && (font->raw->height == height))
-+ for (font = rom->font_start; font; font = font->next_font, i++) {
-+ if ((font->raw->width == width) &&
-+ (font->raw->height == height))
- return i;
- }
- return 0;
- }
-
--#define BMODE_RELOCATE(offset) offset = (offset) / 4;
--#define BMODE_LAST_ADDR_OFFS 0x50
-+#define BMODE_RELOCATE(offset) offset = (offset) / 4;
-+#define BMODE_LAST_ADDR_OFFS 0x50
-
- static void * __init
- sti_bmode_font_raw(struct sti_cooked_font *f)
-@@ -700,35 +701,35 @@
- {
- struct sti_rom *raw;
- u32 size;
-- struct sti_rom_font *raw_font, *font_start;
--
-+ struct sti_rom_font *raw_font, *font_start;
-+
- sti_bmode_rom_copy(address + BMODE_LAST_ADDR_OFFS, sizeof(size), &size);
--
-- size = (size+3) / 4;
-+
-+ size = (size+3) / 4;
- raw = kmalloc(size, GFP_KERNEL);
- if (raw) {
-- sti_bmode_rom_copy(address, size, raw);
-- memmove (&raw->res004, &raw->type[0], 0x3c);
-- raw->type[3] = raw->res004;
--
-- BMODE_RELOCATE (raw->region_list);
-- BMODE_RELOCATE (raw->font_start);
--
-- BMODE_RELOCATE (raw->init_graph);
-- BMODE_RELOCATE (raw->state_mgmt);
-- BMODE_RELOCATE (raw->font_unpmv);
-- BMODE_RELOCATE (raw->block_move);
-- BMODE_RELOCATE (raw->inq_conf);
-+ sti_bmode_rom_copy(address, size, raw);
-+ memmove (&raw->res004, &raw->type[0], 0x3c);
-+ raw->type[3] = raw->res004;
-+
-+ BMODE_RELOCATE (raw->region_list);
-+ BMODE_RELOCATE (raw->font_start);
-+
-+ BMODE_RELOCATE (raw->init_graph);
-+ BMODE_RELOCATE (raw->state_mgmt);
-+ BMODE_RELOCATE (raw->font_unpmv);
-+ BMODE_RELOCATE (raw->block_move);
-+ BMODE_RELOCATE (raw->inq_conf);
-
-- raw_font = ((void *)raw) + raw->font_start;
-- font_start = raw_font;
-+ raw_font = ((void *)raw) + raw->font_start;
-+ font_start = raw_font;
-
-- while (raw_font->next_font) {
-- BMODE_RELOCATE (raw_font->next_font);
-- raw_font = ((void *)font_start) + raw_font->next_font;
-- }
-+ while (raw_font->next_font) {
-+ BMODE_RELOCATE (raw_font->next_font);
-+ raw_font = ((void *)font_start) + raw_font->next_font;
-+ }
- }
-- return raw;
-+ return raw;
++ x |= cpu_to_le32(value << offset);
++ put_unaligned(x,(u32 *)report);
}
- struct sti_rom * __init
-@@ -736,15 +737,15 @@
- {
- struct sti_rom *raw;
- unsigned long size;
--
+ /*
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/drivers/video/stifb.c CVS2_6_15_RC7_PA0/drivers/video/stifb.c
+--- LINUS_2_6_15_RC7/drivers/video/stifb.c 2005-12-27 13:25:50.000000000 -0700
++++ CVS2_6_15_RC7_PA0/drivers/video/stifb.c 2005-12-19 08:32:13.000000000 -0700
+@@ -3,7 +3,7 @@
+ * Low level Frame buffer driver for HP workstations with
+ * STI (standard text interface) video firmware.
+ *
+- * Copyright (C) 2001-2004 Helge Deller <deller at gmx.de>
++ * Copyright (C) 2001-2005 Helge Deller <deller at gmx.de>
+ * Portions Copyright (C) 2001 Thomas Bogendoerfer <tsbogend at alpha.franken.de>
+ *
+ * Based on:
+@@ -73,16 +73,13 @@
+ #include "sticore.h"
+
+ /* REGION_BASE(fb_info, index) returns the virtual address for region <index> */
+-#ifdef __LP64__
+- #define REGION_BASE(fb_info, index) \
+- (fb_info->sti->glob_cfg->region_ptrs[index] | 0xffffffff00000000)
+-#else
+- #define REGION_BASE(fb_info, index) \
+- fb_info->sti->glob_cfg->region_ptrs[index]
+-#endif
++#define REGION_BASE(fb_info, index) \
++ F_EXTEND(fb_info->sti->glob_cfg->region_ptrs[index])
+
+ #define NGLEDEVDEPROM_CRT_REGION 1
+
++#define NR_PALETTE 256
+
- /* read the ROM size directly from the struct in ROM */
- size = gsc_readl(address + offsetof(struct sti_rom,last_addr));
+ typedef struct {
+ __s32 video_config_reg;
+ __s32 misc_video_start;
+@@ -112,7 +109,7 @@
+ ngle_rom_t ngle_rom;
+ struct sti_struct *sti;
+ int deviceSpecificConfig;
+- u32 pseudo_palette[256];
++ u32 pseudo_palette[16];
+ };
- raw = kmalloc(size, GFP_KERNEL);
-- if(raw)
-- sti_rom_copy(address, size, raw);
-+ if (raw)
-+ sti_rom_copy(address, size, raw);
+ static int __initdata stifb_bpp_pref[MAX_STI_ROMS];
+@@ -352,10 +349,10 @@
+ #define IS_888_DEVICE(fb) \
+ (!(IS_24_DEVICE(fb)))
+
+-#define GET_FIFO_SLOTS(fb, cnt, numslots) \
+-{ while (cnt < numslots) \
++#define GET_FIFO_SLOTS(fb, cnt, numslots) \
++{ while (cnt < numslots) \
+ cnt = READ_WORD(fb, REG_34); \
+- cnt -= numslots; \
++ cnt -= numslots; \
+ }
+
+ #define IndexedDcd 0 /* Pixel data is indexed (pseudo) color */
+@@ -995,7 +992,7 @@
+ struct stifb_info *fb = (struct stifb_info *) info;
+ u32 color;
-- return raw;
-+ return raw;
- }
+- if (regno >= 256) /* no. of hw registers */
++ if (regno >= NR_PALETTE)
+ return 1;
- int __init
-@@ -757,14 +758,14 @@
- if (!cooked)
- goto out_err;
+ red >>= 8;
+@@ -1005,8 +1002,8 @@
+ DEBUG_OFF();
-- if (wordmode)
-- raw = sti_get_wmode_rom (address);
-- else
-- raw = sti_get_bmode_rom (address);
--
-- if (!raw)
-- goto out_err;
--
-+ if (wordmode)
-+ raw = sti_get_wmode_rom (address);
-+ else
-+ raw = sti_get_bmode_rom (address);
-+
-+ if (!raw)
-+ goto out_err;
+ START_IMAGE_COLORMAP_ACCESS(fb);
+-
+- if (fb->info.var.grayscale) {
+
- if (!sti_cook_fonts(cooked, raw)) {
- printk(KERN_ERR "No font found for STI at %08lx\n", address);
- goto out_err;
-@@ -787,7 +788,7 @@
- sti->font_width = sti->font->raw->width;
- sti->font_height = sti->font->raw->height;
- if (!wordmode)
-- sti->font->raw = sti_bmode_font_raw(sti->font);
-+ sti->font->raw = sti_bmode_font_raw(sti->font);
-
- sti->sti_mem_request = raw->sti_mem_req;
- sti->graphics_id[0] = raw->graphics_id[0];
-@@ -811,16 +812,16 @@
- u32 sig;
-
- if (num_sti_roms >= MAX_STI_ROMS) {
-- printk(KERN_WARNING "maximum number of STI ROMS reached !\n");
-- return NULL;
-+ printk(KERN_WARNING "maximum number of STI ROMS reached !\n");
-+ return NULL;
++ if (unlikely(fb->info.var.grayscale)) {
+ /* gray = 0.30*R + 0.59*G + 0.11*B */
+ color = ((red * 77) +
+ (green * 151) +
+@@ -1017,17 +1014,17 @@
+ (blue));
}
-
- sti = kmalloc(sizeof(*sti), GFP_KERNEL);
- if (!sti) {
-- printk(KERN_ERR "Not enough memory !\n");
-- return NULL;
-+ printk(KERN_ERR "Not enough memory !\n");
-+ return NULL;
+
+- if (info->var.bits_per_pixel == 32) {
+- ((u32 *)(info->pseudo_palette))[regno] =
+- (red << info->var.red.offset) |
+- (green << info->var.green.offset) |
+- (blue << info->var.blue.offset);
+- } else {
+- ((u32 *)(info->pseudo_palette))[regno] = regno;
++ if (fb->info.fix.visual == FB_VISUAL_DIRECTCOLOR) {
++ struct fb_var_screeninfo *var = &fb->info.var;
++ if (regno < 16)
++ ((u32 *)fb->info.pseudo_palette)[regno] =
++ regno << var->red.offset |
++ regno << var->green.offset |
++ regno << var->blue.offset;
}
--
-+
- memset(sti, 0, sizeof(*sti));
- spin_lock_init(&sti->lock);
-@@ -932,28 +933,21 @@
- */
- static int __init sticore_pa_init(struct parisc_device *dev)
- {
-- unsigned long rom = 0;
- char pa_path[21];
- struct sti_struct *sti = NULL;
--
-- if(dev->num_addrs) {
-- rom = dev->addr[0];
-- }
-- if (!rom) {
-- rom = dev->hpa;
-- DPRINTK((KERN_DEBUG "Trying STI ROM at %08lx, hpa at %08lx\n", rom, dev->hpa));
-- sti = sti_try_rom_generic(rom, dev->hpa, NULL);
-- rom = PAGE0->proc_sti;
-- }
-- if (!sti) {
-- DPRINTK((KERN_DEBUG "Trying STI ROM at %08lx, hpa at %08lx\n", rom, dev->hpa));
-- sti = sti_try_rom_generic(rom, dev->hpa, NULL);
-- }
-+ int hpa = dev->hpa.start;
-+
-+ if (dev->num_addrs && dev->addr[0])
-+ sti = sti_try_rom_generic(dev->addr[0], hpa, NULL);
-+ if (!sti)
-+ sti = sti_try_rom_generic(hpa, hpa, NULL);
-+ if (!sti)
-+ sti = sti_try_rom_generic(PAGE0->proc_sti, hpa, NULL);
- if (!sti)
- return 1;
+ WRITE_IMAGE_COLOR(fb, regno, color);
-
+
- print_pa_hwpath(dev, pa_path);
-- sticore_check_for_default_sti (sti, pa_path);
-+ sticore_check_for_default_sti(sti, pa_path);
- return 0;
- }
+ if (fb->id == S9000_ID_HCRX) {
+ NgleLutBltCtl lutBltCtl;
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/fs/ioctl.c CVS2_6_14_PA0/fs/ioctl.c
---- LINUS_2_6_14/fs/ioctl.c 2005-10-27 21:30:44.000000000 -0600
-+++ CVS2_6_14_PA0/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_14/include/asm-generic/compat_signal.h CVS2_6_14_PA0/include/asm-generic/compat_signal.h
---- LINUS_2_6_14/include/asm-generic/compat_signal.h 1969-12-31 17:00:00.000000000 -0700
-+++ CVS2_6_14_PA0/include/asm-generic/compat_signal.h 2004-01-27 22:12:47.000000000 -0700
+@@ -1066,9 +1063,9 @@
+ case S9000_ID_HCRX:
+ HYPER_ENABLE_DISABLE_DISPLAY(fb, enable);
+ break;
+- case S9000_ID_A1659A:; /* fall through */
+- case S9000_ID_TIMBER:;
+- case CRX24_OVERLAY_PLANES:;
++ case S9000_ID_A1659A: /* fall through */
++ case S9000_ID_TIMBER:
++ case CRX24_OVERLAY_PLANES:
+ default:
+ ENABLE_DISABLE_DISPLAY(fb, enable);
+ break;
+@@ -1250,12 +1247,10 @@
+ memset(&fb->ngle_rom, 0, sizeof(fb->ngle_rom));
+ if ((fb->sti->regions_phys[0] & 0xfc000000) ==
+ (fb->sti->regions_phys[2] & 0xfc000000))
+- sti_rom_address = fb->sti->regions_phys[0];
++ sti_rom_address = F_EXTEND(fb->sti->regions_phys[0]);
+ else
+- sti_rom_address = fb->sti->regions_phys[1];
+-#ifdef __LP64__
+- sti_rom_address |= 0xffffffff00000000;
+-#endif
++ sti_rom_address = F_EXTEND(fb->sti->regions_phys[1]);
++
+ fb->deviceSpecificConfig = gsc_readl(sti_rom_address);
+ if (IS_24_DEVICE(fb)) {
+ if (bpp_pref == 8 || bpp_pref == 32)
+@@ -1315,7 +1310,7 @@
+ break;
+ case 32:
+ fix->type = FB_TYPE_PACKED_PIXELS;
+- fix->visual = FB_VISUAL_TRUECOLOR;
++ fix->visual = FB_VISUAL_DIRECTCOLOR;
+ var->red.length = var->green.length = var->blue.length = var->transp.length = 8;
+ var->blue.offset = 0;
+ var->green.offset = 8;
+@@ -1337,7 +1332,7 @@
+ info->pseudo_palette = &fb->pseudo_palette;
+
+ /* This has to been done !!! */
+- fb_alloc_cmap(&info->cmap, 256, 0);
++ fb_alloc_cmap(&info->cmap, NR_PALETTE, 0);
+ stifb_init_display(fb);
+
+ if (!request_mem_region(fix->smem_start, fix->smem_len, "stifb fb")) {
+@@ -1488,7 +1483,3 @@
+ MODULE_AUTHOR("Helge Deller <deller at gmx.de>, Thomas Bogendoerfer <tsbogend at alpha.franken.de>");
+ MODULE_DESCRIPTION("Framebuffer driver for HP's NGLE series graphics cards in HP PARISC machines");
+ MODULE_LICENSE("GPL v2");
+-
+-MODULE_PARM(bpp, "i");
+-MODULE_PARM_DESC(mem, "Bits per pixel (default: 8)");
+-
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/include/asm-generic/compat_signal.h CVS2_6_15_RC7_PA0/include/asm-generic/compat_signal.h
+--- LINUS_2_6_15_RC7/include/asm-generic/compat_signal.h 1969-12-31 17:00:00.000000000 -0700
++++ CVS2_6_15_RC7_PA0/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
@@ -11813,9 +7840,9 @@
+
+#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_14/include/asm-ia64/compat.h CVS2_6_14_PA0/include/asm-ia64/compat.h
---- LINUS_2_6_14/include/asm-ia64/compat.h 2005-10-27 21:30:46.000000000 -0600
-+++ CVS2_6_14_PA0/include/asm-ia64/compat.h 2005-09-14 06:57:31.000000000 -0600
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/include/asm-ia64/compat.h CVS2_6_15_RC7_PA0/include/asm-ia64/compat.h
+--- LINUS_2_6_15_RC7/include/asm-ia64/compat.h 2005-12-27 13:25:53.000000000 -0700
++++ CVS2_6_15_RC7_PA0/include/asm-ia64/compat.h 2005-09-14 06:57:31.000000000 -0600
@@ -15,6 +15,9 @@
typedef s32 compat_pid_t;
typedef u16 __compat_uid_t;
@@ -11826,1143 +7853,122 @@
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_14/include/asm-parisc/assembly.h CVS2_6_14_PA0/include/asm-parisc/assembly.h
---- LINUS_2_6_14/include/asm-parisc/assembly.h 2005-10-27 21:30:46.000000000 -0600
-+++ CVS2_6_14_PA0/include/asm-parisc/assembly.h 2005-09-25 19:23:05.000000000 -0600
-@@ -21,7 +21,9 @@
- #ifndef _PARISC_ASSEMBLY_H
- #define _PARISC_ASSEMBLY_H
-
--#ifdef __LP64__
-+#define CALLEE_FLOAT_FRAME_SIZE 80
-+
-+#ifdef CONFIG_64BIT
- #define LDREG ldd
- #define STREG std
- #define LDREGX ldd,s
-@@ -30,8 +32,8 @@
- #define SHRREG shrd
- #define RP_OFFSET 16
- #define FRAME_SIZE 128
--#define CALLEE_SAVE_FRAME_SIZE 144
--#else
-+#define CALLEE_REG_FRAME_SIZE 144
-+#else /* CONFIG_64BIT */
- #define LDREG ldw
- #define STREG stw
- #define LDREGX ldwx,s
-@@ -40,9 +42,11 @@
- #define SHRREG shr
- #define RP_OFFSET 20
- #define FRAME_SIZE 64
--#define CALLEE_SAVE_FRAME_SIZE 128
-+#define CALLEE_REG_FRAME_SIZE 128
- #endif
-
-+#define CALLEE_SAVE_FRAME_SIZE (CALLEE_REG_FRAME_SIZE + CALLEE_FLOAT_FRAME_SIZE)
-+
- #ifdef CONFIG_PA20
- #define BL b,l
- # ifdef CONFIG_64BIT
-@@ -300,9 +304,35 @@
- fldd,mb -8(\regs), %fr0
- .endm
-
-+ .macro callee_save_float
-+ fstd,ma %fr12, 8(%r30)
-+ fstd,ma %fr13, 8(%r30)
-+ fstd,ma %fr14, 8(%r30)
-+ fstd,ma %fr15, 8(%r30)
-+ fstd,ma %fr16, 8(%r30)
-+ fstd,ma %fr17, 8(%r30)
-+ fstd,ma %fr18, 8(%r30)
-+ fstd,ma %fr19, 8(%r30)
-+ fstd,ma %fr20, 8(%r30)
-+ fstd,ma %fr21, 8(%r30)
-+ .endm
-+
-+ .macro callee_rest_float
-+ fldd,mb -8(%r30), %fr21
-+ fldd,mb -8(%r30), %fr20
-+ fldd,mb -8(%r30), %fr19
-+ fldd,mb -8(%r30), %fr18
-+ fldd,mb -8(%r30), %fr17
-+ fldd,mb -8(%r30), %fr16
-+ fldd,mb -8(%r30), %fr15
-+ fldd,mb -8(%r30), %fr14
-+ fldd,mb -8(%r30), %fr13
-+ fldd,mb -8(%r30), %fr12
-+ .endm
-+
- #ifdef __LP64__
- .macro callee_save
-- std,ma %r3, CALLEE_SAVE_FRAME_SIZE(%r30)
-+ std,ma %r3, CALLEE_REG_FRAME_SIZE(%r30)
- mfctl %cr27, %r3
- std %r4, -136(%r30)
- std %r5, -128(%r30)
-@@ -340,13 +370,13 @@
- ldd -128(%r30), %r5
- ldd -136(%r30), %r4
- mtctl %r3, %cr27
-- ldd,mb -CALLEE_SAVE_FRAME_SIZE(%r30), %r3
-+ ldd,mb -CALLEE_REG_FRAME_SIZE(%r30), %r3
- .endm
-
- #else /* ! __LP64__ */
-
- .macro callee_save
-- stw,ma %r3, CALLEE_SAVE_FRAME_SIZE(%r30)
-+ stw,ma %r3, CALLEE_REG_FRAME_SIZE(%r30)
- mfctl %cr27, %r3
- stw %r4, -124(%r30)
- stw %r5, -120(%r30)
-@@ -384,7 +414,7 @@
- ldw -120(%r30), %r5
- ldw -124(%r30), %r4
- mtctl %r3, %cr27
-- ldw,mb -CALLEE_SAVE_FRAME_SIZE(%r30), %r3
-+ ldw,mb -CALLEE_REG_FRAME_SIZE(%r30), %r3
- .endm
- #endif /* ! __LP64__ */
-
-@@ -450,5 +480,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_14/include/asm-parisc/bitops.h CVS2_6_14_PA0/include/asm-parisc/bitops.h
---- LINUS_2_6_14/include/asm-parisc/bitops.h 2005-10-27 21:30:46.000000000 -0600
-+++ CVS2_6_14_PA0/include/asm-parisc/bitops.h 2005-09-14 07:22:22.000000000 -0600
-@@ -2,7 +2,7 @@
- #define _PARISC_BITOPS_H
-
- #include <linux/compiler.h>
--#include <asm/spinlock.h>
-+#include <asm/types.h> /* for BITS_PER_LONG/SHIFT_PER_LONG */
- #include <asm/byteorder.h>
- #include <asm/atomic.h>
-
-@@ -12,193 +12,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 +193,7 @@
- unsigned long ret;
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/include/asm-parisc/cache.h CVS2_6_15_RC7_PA0/include/asm-parisc/cache.h
+--- LINUS_2_6_15_RC7/include/asm-parisc/cache.h 2005-12-27 13:25:54.000000000 -0700
++++ CVS2_6_15_RC7_PA0/include/asm-parisc/cache.h 2005-12-16 06:02:55.000000000 -0700
+@@ -30,14 +30,14 @@
+ #define SMP_CACHE_BYTES L1_CACHE_BYTES
+ #define L1_CACHE_SHIFT_MAX 5 /* largest L1 which this arch supports */
- __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 +268,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 +281,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 +297,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;
+-extern void flush_data_cache_local(void); /* flushes local data-cache only */
+-extern void flush_instruction_cache_local(void); /* flushes local code-cache only */
++extern void flush_data_cache_local(void *); /* flushes local data-cache only */
++extern void flush_instruction_cache_local(void *); /* flushes local code-cache only */
+ #ifdef CONFIG_SMP
+ extern void flush_data_cache(void); /* flushes data-cache only (all processors) */
+ extern void flush_instruction_cache(void); /* flushes i-cache only (all processors) */
+ #else
+-#define flush_data_cache flush_data_cache_local
+-#define flush_instruction_cache flush_instruction_cache_local
++#define flush_data_cache() flush_data_cache_local(NULL)
++#define flush_instruction_cache() flush_instruction_cache_local(NULL)
#endif
- }
-
-@@ -391,7 +346,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 +400,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_14/include/asm-parisc/errno.h CVS2_6_14_PA0/include/asm-parisc/errno.h
---- LINUS_2_6_14/include/asm-parisc/errno.h 2005-10-27 21:30:46.000000000 -0600
-+++ CVS2_6_14_PA0/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_14/include/asm-parisc/grfioctl.h CVS2_6_14_PA0/include/asm-parisc/grfioctl.h
---- LINUS_2_6_14/include/asm-parisc/grfioctl.h 2005-10-27 21:30:46.000000000 -0600
-+++ CVS2_6_14_PA0/include/asm-parisc/grfioctl.h 2005-07-31 16:24:55.000000000 -0600
-@@ -69,6 +69,8 @@
- #define CRT_ID_TVRX S9000_ID_98765 /* TVRX (gto/falcon) */
- #define CRT_ID_ARTIST S9000_ID_ARTIST /* Artist */
- #define CRT_ID_SUMMIT 0x2FC1066B /* Summit FX2, FX4, FX6 ... */
-+#define CRT_ID_LEGO 0x35ACDA30 /* Lego FX5, FX10 ... */
-+#define CRT_ID_PINNACLE 0x35ACDA16 /* Pinnacle FXe */
-
- /* structure for ioctl(GCDESCRIBE) */
-
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/include/asm-parisc/irq.h CVS2_6_14_PA0/include/asm-parisc/irq.h
---- LINUS_2_6_14/include/asm-parisc/irq.h 2005-10-27 21:30:46.000000000 -0600
-+++ CVS2_6_14_PA0/include/asm-parisc/irq.h 2005-10-19 13:55:33.000000000 -0600
-@@ -8,6 +8,7 @@
- #define _ASM_PARISC_IRQ_H
-
- #include <linux/config.h>
-+#include <linux/cpumask.h>
- #include <asm/types.h>
- #define NO_IRQ (-1)
-@@ -49,10 +50,10 @@
- extern int txn_claim_irq(int);
- extern unsigned int txn_alloc_data(unsigned int);
- extern unsigned long txn_alloc_addr(unsigned int);
-+extern unsigned long txn_affinity_addr(unsigned int irq, int cpu);
-
- extern int cpu_claim_irq(unsigned int irq, struct hw_interrupt_type *, void *);
--
--extern int cpu_claim_irq(unsigned int irq, struct hw_interrupt_type *, void *);
-+extern int cpu_check_affinity(unsigned int irq, cpumask_t *dest);
-
- /* soft power switch support (power.c) */
- extern struct tasklet_struct power_tasklet;
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/include/asm-parisc/led.h CVS2_6_14_PA0/include/asm-parisc/led.h
---- LINUS_2_6_14/include/asm-parisc/led.h 2005-10-27 21:30:46.000000000 -0600
-+++ CVS2_6_14_PA0/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_14/include/asm-parisc/parisc-device.h CVS2_6_14_PA0/include/asm-parisc/parisc-device.h
---- LINUS_2_6_14/include/asm-parisc/parisc-device.h 2005-10-27 21:30:46.000000000 -0600
-+++ CVS2_6_14_PA0/include/asm-parisc/parisc-device.h 2005-09-10 12:12:02.000000000 -0600
-@@ -1,7 +1,7 @@
- #include <linux/device.h>
-
- struct parisc_device {
-- unsigned long hpa; /* Hard Physical Address */
-+ struct resource hpa; /* Hard Physical Address */
- struct parisc_device_id id;
- struct parisc_driver *driver; /* Driver for this device */
- char name[80]; /* The hardware description */
-@@ -39,6 +39,11 @@
- #define to_parisc_driver(d) container_of(d, struct parisc_driver, drv)
- #define parisc_parent(d) to_parisc_device(d->dev.parent)
+ extern void parisc_cache_init(void); /* initializes cache-flushing */
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/include/asm-parisc/io.h CVS2_6_15_RC7_PA0/include/asm-parisc/io.h
+--- LINUS_2_6_15_RC7/include/asm-parisc/io.h 2005-12-27 13:25:54.000000000 -0700
++++ CVS2_6_15_RC7_PA0/include/asm-parisc/io.h 2005-12-23 19:01:55.000000000 -0700
+@@ -41,7 +41,7 @@
+ #define __raw_check_addr(addr) \
+ if (((unsigned long)addr >> NYBBLE_SHIFT) != 0xe) \
+ __raw_bad_addr(addr); \
+- addr = (void *)((unsigned long)addr | (0xfUL << NYBBLE_SHIFT));
++ addr = (void __iomem *)((unsigned long)addr | (0xfUL << NYBBLE_SHIFT));
+ #else
+ #define gsc_check_addr(addr)
+ #define __raw_check_addr(addr)
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/include/asm-parisc/page.h CVS2_6_15_RC7_PA0/include/asm-parisc/page.h
+--- LINUS_2_6_15_RC7/include/asm-parisc/page.h 2005-12-27 13:25:54.000000000 -0700
++++ CVS2_6_15_RC7_PA0/include/asm-parisc/page.h 2005-12-12 14:28:25.000000000 -0700
+@@ -135,6 +135,13 @@
+ #define pfn_valid(pfn) ((pfn) < max_mapnr)
+ #endif /* CONFIG_DISCONTIGMEM */
+
++#ifdef CONFIG_HUGETLB_PAGE
++#define HPAGE_SHIFT 22 /* 4MB (is this fixed?) */
++#define HPAGE_SIZE ((1UL) << HPAGE_SHIFT)
++#define HPAGE_MASK (~(HPAGE_SIZE - 1))
++#define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT)
++#endif
++
+ #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT)
+
+ #define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT)
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/include/asm-parisc/pci.h CVS2_6_15_RC7_PA0/include/asm-parisc/pci.h
+--- LINUS_2_6_15_RC7/include/asm-parisc/pci.h 2005-12-27 13:25:54.000000000 -0700
++++ CVS2_6_15_RC7_PA0/include/asm-parisc/pci.h 2005-12-15 12:34:46.000000000 -0700
+@@ -84,11 +84,17 @@
+ /*
+ ** Convert between PCI (IO_VIEW) addresses and processor (PA_VIEW) addresses.
+ ** See pcibios.c for more conversions used by Generic PCI code.
++**
++** Platform characteristics/firmware guarantee that
++** (1) PA_VIEW - IO_VIEW = lmmio_offset for both LMMIO and ELMMIO
++** (2) PA_VIEW == IO_VIEW for GMMIO
+ */
+ #define PCI_BUS_ADDR(hba,a) (PCI_IS_LMMIO(hba,a) \
+ ? ((a) - hba->lmmio_space_offset) /* mangle LMMIO */ \
+ : (a)) /* GMMIO */
+-#define PCI_HOST_ADDR(hba,a) ((a) + hba->lmmio_space_offset)
++#define PCI_HOST_ADDR(hba,a) (((a) & PCI_F_EXTEND) == 0 \
++ ? (a) + hba->lmmio_space_offset \
++ : (a))
+
+ #else /* !CONFIG_64BIT */
+
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/include/asm-parisc/processor.h CVS2_6_15_RC7_PA0/include/asm-parisc/processor.h
+--- LINUS_2_6_15_RC7/include/asm-parisc/processor.h 2005-12-27 13:25:54.000000000 -0700
++++ CVS2_6_15_RC7_PA0/include/asm-parisc/processor.h 2005-12-23 19:03:24.000000000 -0700
+@@ -144,16 +144,16 @@
+ })
-+static inline char *parisc_pathname(struct parisc_device *d)
-+{
-+ return d->dev.bus_id;
-+}
-+
- static inline void
- parisc_set_drvdata(struct parisc_device *d, void *p)
- {
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/include/asm-parisc/pci.h CVS2_6_14_PA0/include/asm-parisc/pci.h
---- LINUS_2_6_14/include/asm-parisc/pci.h 2005-10-27 21:30:46.000000000 -0600
-+++ CVS2_6_14_PA0/include/asm-parisc/pci.h 2005-09-14 07:21:28.000000000 -0600
-@@ -69,7 +69,7 @@
- #define PCI_PORT_HBA(a) ((a) >> HBA_PORT_SPACE_BITS)
- #define PCI_PORT_ADDR(a) ((a) & (HBA_PORT_SPACE_SIZE - 1))
-
--#if CONFIG_64BIT
-+#ifdef CONFIG_64BIT
- #define PCI_F_EXTEND 0xffffffff00000000UL
- #define PCI_IS_LMMIO(hba,a) pci_is_lmmio(hba,a)
-
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/include/asm-parisc/pgtable.h CVS2_6_14_PA0/include/asm-parisc/pgtable.h
---- LINUS_2_6_14/include/asm-parisc/pgtable.h 2005-10-27 21:30:46.000000000 -0600
-+++ CVS2_6_14_PA0/include/asm-parisc/pgtable.h 2005-09-23 21:43:51.000000000 -0600
-@@ -501,6 +501,8 @@
- #define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
- remap_pfn_range(vma, vaddr, pfn, size, prot)
-
-+#define pgprot_noncached(prot) __pgprot(pgprot_val(prot) | _PAGE_NO_CACHE)
-+
- #define MK_IOSPACE_PFN(space, pfn) (pfn)
- #define GET_IOSPACE(pfn) 0
- #define GET_PFN(pfn) (pfn)
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/include/asm-parisc/processor.h CVS2_6_14_PA0/include/asm-parisc/processor.h
---- LINUS_2_6_14/include/asm-parisc/processor.h 2005-10-27 21:30:46.000000000 -0600
-+++ CVS2_6_14_PA0/include/asm-parisc/processor.h 2005-09-14 06:57:40.000000000 -0600
-@@ -122,8 +122,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_14/include/asm-parisc/psw.h CVS2_6_14_PA0/include/asm-parisc/psw.h
---- LINUS_2_6_14/include/asm-parisc/psw.h 2005-10-27 21:30:46.000000000 -0600
-+++ CVS2_6_14_PA0/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_14/include/asm-parisc/ptrace.h CVS2_6_14_PA0/include/asm-parisc/ptrace.h
---- LINUS_2_6_14/include/asm-parisc/ptrace.h 2005-10-27 21:30:46.000000000 -0600
-+++ CVS2_6_14_PA0/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_14/include/asm-parisc/smp.h CVS2_6_14_PA0/include/asm-parisc/smp.h
---- LINUS_2_6_14/include/asm-parisc/smp.h 2005-10-27 21:30:46.000000000 -0600
-+++ CVS2_6_14_PA0/include/asm-parisc/smp.h 2005-10-18 18:30:05.000000000 -0600
-@@ -29,6 +29,7 @@
- #define cpu_logical_map(cpu) (cpu)
-
- extern void smp_send_reschedule(int cpu);
-+extern void smp_send_all_nop(void);
-
- #endif /* !ASSEMBLY */
-
-@@ -53,7 +54,11 @@
-
- #define raw_smp_processor_id() (current_thread_info()->cpu)
-
--#endif /* CONFIG_SMP */
-+#else /* CONFIG_SMP */
-+
-+static inline void smp_send_all_nop(void) { return; }
-+
-+#endif
-
- #define NO_PROC_ID 0xFF /* No processor magic marker */
- #define ANY_PROC_ID 0xFF /* Any processor magic marker */
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/include/asm-parisc/spinlock.h CVS2_6_14_PA0/include/asm-parisc/spinlock.h
---- LINUS_2_6_14/include/asm-parisc/spinlock.h 2005-10-27 21:30:46.000000000 -0600
-+++ CVS2_6_14_PA0/include/asm-parisc/spinlock.h 2005-10-20 10:07:04.000000000 -0600
-@@ -5,29 +5,31 @@
- #include <asm/processor.h>
- #include <asm/spinlock_types.h>
-
--/* Note that PA-RISC has to use `1' to mean unlocked and `0' to mean locked
-- * since it only has load-and-zero. Moreover, at least on some PA processors,
-- * the semaphore address has to be 16-byte aligned.
-- */
--
- static inline int __raw_spin_is_locked(raw_spinlock_t *x)
- {
- volatile unsigned int *a = __ldcw_align(x);
- return *a == 0;
- }
-
--#define __raw_spin_lock_flags(lock, flags) __raw_spin_lock(lock)
-+#define __raw_spin_lock(lock) __raw_spin_lock_flags(lock, 0)
- #define __raw_spin_unlock_wait(x) \
- do { cpu_relax(); } while (__raw_spin_is_locked(x))
-
--static inline void __raw_spin_lock(raw_spinlock_t *x)
-+static inline void __raw_spin_lock_flags(raw_spinlock_t *x,
-+ unsigned long flags)
- {
- volatile unsigned int *a;
-
- mb();
- a = __ldcw_align(x);
- while (__ldcw(a) == 0)
-- while (*a == 0);
-+ while (*a == 0)
-+ if (flags & PSW_SM_I) {
-+ local_irq_enable();
-+ cpu_relax();
-+ local_irq_disable();
-+ } else
-+ cpu_relax();
- mb();
- }
-
-@@ -65,26 +67,20 @@
-
- static __inline__ void __raw_read_lock(raw_rwlock_t *rw)
- {
-- unsigned long flags;
-- local_irq_save(flags);
- __raw_spin_lock(&rw->lock);
-
- rw->counter++;
-
- __raw_spin_unlock(&rw->lock);
-- local_irq_restore(flags);
- }
-
- static __inline__ void __raw_read_unlock(raw_rwlock_t *rw)
- {
-- unsigned long flags;
-- local_irq_save(flags);
- __raw_spin_lock(&rw->lock);
-
- rw->counter--;
-
- __raw_spin_unlock(&rw->lock);
-- local_irq_restore(flags);
- }
-
- /* write_lock is less trivial. We optimistically grab the lock and check
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/include/asm-parisc/spinlock_types.h CVS2_6_14_PA0/include/asm-parisc/spinlock_types.h
---- LINUS_2_6_14/include/asm-parisc/spinlock_types.h 2005-10-27 21:30:46.000000000 -0600
-+++ CVS2_6_14_PA0/include/asm-parisc/spinlock_types.h 2005-09-27 09:22:08.000000000 -0600
-@@ -6,11 +6,15 @@
- #endif
-
- typedef struct {
-+#ifdef CONFIG_PA20
-+ volatile unsigned int slock;
-+# define __RAW_SPIN_LOCK_UNLOCKED { 1 }
-+#else
- volatile unsigned int lock[4];
-+# define __RAW_SPIN_LOCK_UNLOCKED { { 1, 1, 1, 1 } }
-+#endif
- } raw_spinlock_t;
-
--#define __RAW_SPIN_LOCK_UNLOCKED { { 1, 1, 1, 1 } }
--
- typedef struct {
- raw_spinlock_t lock;
- volatile int counter;
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/include/asm-parisc/system.h CVS2_6_14_PA0/include/asm-parisc/system.h
---- LINUS_2_6_14/include/asm-parisc/system.h 2005-10-27 21:30:46.000000000 -0600
-+++ CVS2_6_14_PA0/include/asm-parisc/system.h 2005-09-14 06:57:40.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,37 +146,41 @@
- 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"
-
--#ifdef CONFIG_SMP
--# define __lock_aligned __attribute__((__section__(".data.lock_aligned")))
--#endif
-+#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"
-
--#define KERNEL_START (0x10100000 - 0x1000)
-+#endif /*!CONFIG_PA20*/
-
--/* 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)
-+/* 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
-+# define __lock_aligned __attribute__((__section__(".data.lock_aligned")))
- #endif
+- regs: { gr: { 0, }, \
+- fr: { 0, }, \
+- sr: { 0, }, \
+- iasq: { 0, }, \
+- iaoq: { 0, }, \
+- cr27: 0, \
++ .regs = { .gr = { 0, }, \
++ .fr = { 0, }, \
++ .sr = { 0, }, \
++ .iasq = { 0, }, \
++ .iaoq = { 0, }, \
++ .cr27 = 0, \
+ }, \
+- task_size: DEFAULT_TASK_SIZE, \
+- map_base: DEFAULT_MAP_BASE, \
+- flags: 0 \
++ .task_size = DEFAULT_TASK_SIZE, \
++ .map_base = DEFAULT_MAP_BASE, \
++ .flags = 0 \
+ }
-+#define KERNEL_START (0x10100000 - 0x1000)
- #define arch_align_stack(x) (x)
+ /*
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/include/asm-parisc/tlbflush.h CVS2_6_15_RC7_PA0/include/asm-parisc/tlbflush.h
+--- LINUS_2_6_15_RC7/include/asm-parisc/tlbflush.h 2005-12-27 13:25:54.000000000 -0700
++++ CVS2_6_15_RC7_PA0/include/asm-parisc/tlbflush.h 2005-12-15 11:12:46.000000000 -0700
+@@ -22,6 +22,7 @@
+ #define purge_tlb_end(x) spin_unlock(&pa_tlb_lock)
- #endif
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/include/asm-parisc/tlbflush.h CVS2_6_14_PA0/include/asm-parisc/tlbflush.h
---- LINUS_2_6_14/include/asm-parisc/tlbflush.h 2005-10-27 21:30:46.000000000 -0600
-+++ CVS2_6_14_PA0/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);
++extern void flush_tlb_all_local(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_14/include/asm-parisc/types.h CVS2_6_14_PA0/include/asm-parisc/types.h
---- LINUS_2_6_14/include/asm-parisc/types.h 2005-10-27 21:30:46.000000000 -0600
-+++ CVS2_6_14_PA0/include/asm-parisc/types.h 2005-09-14 06:57:40.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_14/include/asm-parisc/unistd.h CVS2_6_14_PA0/include/asm-parisc/unistd.h
---- LINUS_2_6_14/include/asm-parisc/unistd.h 2005-10-27 21:30:46.000000000 -0600
-+++ CVS2_6_14_PA0/include/asm-parisc/unistd.h 2005-09-21 22:26:33.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,14 @@
- #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_ioprio_set (__NR_Linux + 267)
-+#define __NR_ioprio_get (__NR_Linux + 268)
-
--#define __NR_Linux_syscalls 263
-+#define __NR_Linux_syscalls 269
-
- #define HPUX_GATEWAY_ADDR 0xC0000004
- #define LINUX_GATEWAY_ADDR 0x100
-@@ -807,10 +813,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_14/include/asm-s390/compat.h CVS2_6_14_PA0/include/asm-s390/compat.h
---- LINUS_2_6_14/include/asm-s390/compat.h 2005-10-27 21:30:47.000000000 -0600
-+++ CVS2_6_14_PA0/include/asm-s390/compat.h 2005-09-14 06:57:44.000000000 -0600
+ * flush_tlb_mm()
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/include/asm-s390/compat.h CVS2_6_15_RC7_PA0/include/asm-s390/compat.h
+--- LINUS_2_6_15_RC7/include/asm-s390/compat.h 2005-12-27 13:25:54.000000000 -0700
++++ CVS2_6_15_RC7_PA0/include/asm-s390/compat.h 2005-09-14 06:57:44.000000000 -0600
@@ -15,6 +15,9 @@
typedef s32 compat_pid_t;
typedef u16 __compat_uid_t;
@@ -12973,22 +7979,117 @@
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_14/include/asm-sparc64/compat.h CVS2_6_14_PA0/include/asm-sparc64/compat.h
---- LINUS_2_6_14/include/asm-sparc64/compat.h 2005-10-27 21:30:47.000000000 -0600
-+++ CVS2_6_14_PA0/include/asm-sparc64/compat.h 2005-09-14 06:57:45.000000000 -0600
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/include/asm-sparc64/compat.h CVS2_6_15_RC7_PA0/include/asm-sparc64/compat.h
+--- LINUS_2_6_15_RC7/include/asm-sparc64/compat.h 2005-12-27 13:25:54.000000000 -0700
++++ CVS2_6_15_RC7_PA0/include/asm-sparc64/compat.h 2005-09-14 06:57:45.000000000 -0600
@@ -14,6 +14,9 @@
typedef s32 compat_pid_t;
typedef u16 __compat_uid_t;
typedef u16 __compat_gid_t;
-+/* Define for use in the compat_siginfo_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 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_15_RC7/include/asm-x86_64/compat.h CVS2_6_15_RC7_PA0/include/asm-x86_64/compat.h
+--- LINUS_2_6_15_RC7/include/asm-x86_64/compat.h 2005-12-27 13:25:55.000000000 -0700
++++ CVS2_6_15_RC7_PA0/include/asm-x86_64/compat.h 2005-11-12 20:29:21.000000000 -0700
+@@ -16,6 +16,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_uint_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_14/include/linux/compat.h CVS2_6_14_PA0/include/linux/compat.h
---- LINUS_2_6_14/include/linux/compat.h 2005-10-27 21:30:48.000000000 -0600
-+++ CVS2_6_14_PA0/include/linux/compat.h 2005-09-14 06:57:49.000000000 -0600
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/include/asm-x86_64/ia32.h CVS2_6_15_RC7_PA0/include/asm-x86_64/ia32.h
+--- LINUS_2_6_15_RC7/include/asm-x86_64/ia32.h 2005-12-27 13:25:55.000000000 -0700
++++ CVS2_6_15_RC7_PA0/include/asm-x86_64/ia32.h 2005-11-19 22:09:34.000000000 -0700
+@@ -6,6 +6,7 @@
+ #ifdef CONFIG_IA32_EMULATION
+
+ #include <linux/compat.h>
++#include <linux/compat_siginfo.h>
+
+ /*
+ * 32 bit structures for IA32 support.
+@@ -78,58 +79,6 @@
+ unsigned long long st_ino;
+ } __attribute__((packed));
+
+-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 {
+- compat_timer_t _tid; /* timer id */
+- int _overrun; /* overrun count */
+- compat_sigval_t _sigval; /* same as below */
+- int _sys_private; /* not to be passed to user */
+- int _overrun_incr; /* amount to add to overrun */
+- } _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 sigframe32
+ {
+ u32 pretcode;
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/include/linux/cache.h CVS2_6_15_RC7_PA0/include/linux/cache.h
+--- LINUS_2_6_15_RC7/include/linux/cache.h 2005-12-27 13:25:55.000000000 -0700
++++ CVS2_6_15_RC7_PA0/include/linux/cache.h 2005-12-19 05:42:41.000000000 -0700
+@@ -13,7 +13,7 @@
+ #define SMP_CACHE_BYTES L1_CACHE_BYTES
+ #endif
+
+-#if defined(CONFIG_X86) || defined(CONFIG_SPARC64) || defined(CONFIG_IA64)
++#if defined(CONFIG_X86) || defined(CONFIG_SPARC64) || defined(CONFIG_IA64) || defined(CONFIG_PARISC)
+ #define __read_mostly __attribute__((__section__(".data.read_mostly")))
+ #else
+ #define __read_mostly
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/include/linux/compat.h CVS2_6_15_RC7_PA0/include/linux/compat.h
+--- LINUS_2_6_15_RC7/include/linux/compat.h 2005-12-27 13:25:55.000000000 -0700
++++ CVS2_6_15_RC7_PA0/include/linux/compat.h 2005-09-14 06:57:49.000000000 -0600
@@ -6,10 +6,16 @@
*/
#include <linux/config.h>
@@ -13059,9 +8160,9 @@
#endif /* CONFIG_COMPAT */
#endif /* _LINUX_COMPAT_H */
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/include/linux/compat_siginfo.h CVS2_6_14_PA0/include/linux/compat_siginfo.h
---- LINUS_2_6_14/include/linux/compat_siginfo.h 1969-12-31 17:00:00.000000000 -0700
-+++ CVS2_6_14_PA0/include/linux/compat_siginfo.h 2005-08-02 08:33:30.000000000 -0600
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/include/linux/compat_siginfo.h CVS2_6_15_RC7_PA0/include/linux/compat_siginfo.h
+--- LINUS_2_6_15_RC7/include/linux/compat_siginfo.h 1969-12-31 17:00:00.000000000 -0700
++++ CVS2_6_15_RC7_PA0/include/linux/compat_siginfo.h 2005-08-02 08:33:30.000000000 -0600
@@ -0,0 +1,182 @@
+#ifndef _ASM_GENERIC_COMPAT_SIGINFO_H
+#define _ASM_GENERIC_COMPAT_SIGINFO_H
@@ -13245,996 +8346,10 @@
+#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_14/include/linux/hil.h CVS2_6_14_PA0/include/linux/hil.h
---- LINUS_2_6_14/include/linux/hil.h 1969-12-31 17:00:00.000000000 -0700
-+++ CVS2_6_14_PA0/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_14/include/linux/hil_mlc.h CVS2_6_14_PA0/include/linux/hil_mlc.h
---- LINUS_2_6_14/include/linux/hil_mlc.h 1969-12-31 17:00:00.000000000 -0700
-+++ CVS2_6_14_PA0/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_14/include/linux/hp_sdc.h CVS2_6_14_PA0/include/linux/hp_sdc.h
---- LINUS_2_6_14/include/linux/hp_sdc.h 1969-12-31 17:00:00.000000000 -0700
-+++ CVS2_6_14_PA0/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_14/include/linux/input.h CVS2_6_14_PA0/include/linux/input.h
---- LINUS_2_6_14/include/linux/input.h 2005-10-27 21:30:48.000000000 -0600
-+++ CVS2_6_14_PA0/include/linux/input.h 2005-09-14 06:57:49.000000000 -0600
-@@ -644,6 +644,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_14/include/linux/serio.h CVS2_6_14_PA0/include/linux/serio.h
---- LINUS_2_6_14/include/linux/serio.h 2005-10-27 21:30:48.000000000 -0600
-+++ CVS2_6_14_PA0/include/linux/serio.h 2005-06-30 08:26:28.000000000 -0600
-@@ -185,7 +185,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_14/include/linux/signal.h CVS2_6_14_PA0/include/linux/signal.h
---- LINUS_2_6_14/include/linux/signal.h 2005-10-27 21:30:48.000000000 -0600
-+++ CVS2_6_14_PA0/include/linux/signal.h 2005-06-17 21:32:55.000000000 -0600
-@@ -234,6 +234,9 @@
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/include/linux/signal.h CVS2_6_15_RC7_PA0/include/linux/signal.h
+--- LINUS_2_6_15_RC7/include/linux/signal.h 2005-12-27 13:25:55.000000000 -0700
++++ CVS2_6_15_RC7_PA0/include/linux/signal.h 2005-11-11 21:09:17.000000000 -0700
+@@ -233,6 +233,9 @@
struct pt_regs;
extern int get_signal_to_deliver(siginfo_t *info, struct k_sigaction *return_ka, struct pt_regs *regs, void *cookie);
@@ -14244,9 +8359,9 @@
#endif /* __KERNEL__ */
#endif /* _LINUX_SIGNAL_H */
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/include/sound/opl3.h CVS2_6_14_PA0/include/sound/opl3.h
---- LINUS_2_6_14/include/sound/opl3.h 2005-10-27 21:30:49.000000000 -0600
-+++ CVS2_6_14_PA0/include/sound/opl3.h 2005-09-13 18:31:04.000000000 -0600
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/include/sound/opl3.h CVS2_6_15_RC7_PA0/include/sound/opl3.h
+--- LINUS_2_6_15_RC7/include/sound/opl3.h 2005-12-27 13:25:56.000000000 -0700
++++ CVS2_6_15_RC7_PA0/include/sound/opl3.h 2005-09-13 18:31:04.000000000 -0600
@@ -261,10 +261,11 @@
} snd_opl3_voice_t;
@@ -14271,9 +8386,9 @@
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_14/ipc/compat_mq.c CVS2_6_14_PA0/ipc/compat_mq.c
---- LINUS_2_6_14/ipc/compat_mq.c 2005-10-27 21:30:49.000000000 -0600
-+++ CVS2_6_14_PA0/ipc/compat_mq.c 2005-03-18 06:17:54.000000000 -0700
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/ipc/compat_mq.c CVS2_6_15_RC7_PA0/ipc/compat_mq.c
+--- LINUS_2_6_15_RC7/ipc/compat_mq.c 2005-12-27 13:25:57.000000000 -0700
++++ CVS2_6_15_RC7_PA0/ipc/compat_mq.c 2005-03-18 06:17:54.000000000 -0700
@@ -7,6 +7,7 @@
*/
@@ -14282,9 +8397,9 @@
#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_14/kernel/Makefile CVS2_6_14_PA0/kernel/Makefile
---- LINUS_2_6_14/kernel/Makefile 2005-10-27 21:30:49.000000000 -0600
-+++ CVS2_6_14_PA0/kernel/Makefile 2005-09-14 06:57:58.000000000 -0600
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/kernel/Makefile CVS2_6_15_RC7_PA0/kernel/Makefile
+--- LINUS_2_6_15_RC7/kernel/Makefile 2005-12-27 13:25:57.000000000 -0700
++++ CVS2_6_15_RC7_PA0/kernel/Makefile 2005-11-11 21:09:26.000000000 -0700
@@ -19,7 +19,7 @@
obj-$(CONFIG_PM) += power/
obj-$(CONFIG_BSD_PROCESS_ACCT) += acct.o
@@ -14293,10 +8408,10 @@
+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_14/kernel/compat.c CVS2_6_14_PA0/kernel/compat.c
---- LINUS_2_6_14/kernel/compat.c 2005-10-27 21:30:49.000000000 -0600
-+++ CVS2_6_14_PA0/kernel/compat.c 2005-09-14 06:57:58.000000000 -0600
+ obj-$(CONFIG_STOP_MACHINE) += stop_machine.o
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/kernel/compat.c CVS2_6_15_RC7_PA0/kernel/compat.c
+--- LINUS_2_6_15_RC7/kernel/compat.c 2005-12-27 13:25:57.000000000 -0700
++++ CVS2_6_15_RC7_PA0/kernel/compat.c 2005-09-14 06:57:58.000000000 -0600
@@ -13,6 +13,7 @@
#include <linux/linkage.h>
@@ -14372,9 +8487,9 @@
ret = -EFAULT;
}
}else {
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/kernel/compat_signal.c CVS2_6_14_PA0/kernel/compat_signal.c
---- LINUS_2_6_14/kernel/compat_signal.c 1969-12-31 17:00:00.000000000 -0700
-+++ CVS2_6_14_PA0/kernel/compat_signal.c 2005-08-02 10:22:04.000000000 -0600
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/kernel/compat_signal.c CVS2_6_15_RC7_PA0/kernel/compat_signal.c
+--- LINUS_2_6_15_RC7/kernel/compat_signal.c 1969-12-31 17:00:00.000000000 -0700
++++ CVS2_6_15_RC7_PA0/kernel/compat_signal.c 2005-08-02 10:22:04.000000000 -0600
@@ -0,0 +1,280 @@
+/*
+ * Copyright (C) 2003 Carlos O'Donell
@@ -14656,35 +8771,10 @@
+}
+#endif
+
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/kernel/irq/manage.c CVS2_6_14_PA0/kernel/irq/manage.c
---- LINUS_2_6_14/kernel/irq/manage.c 2005-10-27 21:30:49.000000000 -0600
-+++ CVS2_6_14_PA0/kernel/irq/manage.c 2005-10-19 16:15:39.000000000 -0600
-@@ -35,6 +35,9 @@
- {
- struct irq_desc *desc = irq_desc + irq;
-
-+ if (irq >= NR_IRQS)
-+ return;
-+
- while (desc->status & IRQ_INPROGRESS)
- cpu_relax();
- }
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/kernel/posix-cpu-timers.c CVS2_6_14_PA0/kernel/posix-cpu-timers.c
---- LINUS_2_6_14/kernel/posix-cpu-timers.c 2005-10-27 21:30:49.000000000 -0600
-+++ CVS2_6_14_PA0/kernel/posix-cpu-timers.c 2005-10-27 21:38:45.000000000 -0600
-@@ -1283,8 +1283,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_14/kernel/ptrace.c CVS2_6_14_PA0/kernel/ptrace.c
---- LINUS_2_6_14/kernel/ptrace.c 2005-10-27 21:30:49.000000000 -0600
-+++ CVS2_6_14_PA0/kernel/ptrace.c 2005-09-14 06:57:58.000000000 -0600
-@@ -359,7 +359,7 @@
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/kernel/ptrace.c CVS2_6_15_RC7_PA0/kernel/ptrace.c
+--- LINUS_2_6_15_RC7/kernel/ptrace.c 2005-12-27 13:25:57.000000000 -0700
++++ CVS2_6_15_RC7_PA0/kernel/ptrace.c 2005-12-04 00:25:16.000000000 -0700
+@@ -363,7 +363,7 @@
siginfo_t newinfo;
int error = -ESRCH;
@@ -14693,9 +8783,9 @@
return -EFAULT;
read_lock(&tasklist_lock);
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/kernel/resource.c CVS2_6_14_PA0/kernel/resource.c
---- LINUS_2_6_14/kernel/resource.c 2005-10-27 21:30:49.000000000 -0600
-+++ CVS2_6_14_PA0/kernel/resource.c 2005-09-14 06:57:58.000000000 -0600
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/kernel/resource.c CVS2_6_15_RC7_PA0/kernel/resource.c
+--- LINUS_2_6_15_RC7/kernel/resource.c 2005-12-27 13:25:57.000000000 -0700
++++ CVS2_6_15_RC7_PA0/kernel/resource.c 2005-09-14 06:57:58.000000000 -0600
@@ -181,6 +181,8 @@
{
struct resource *tmp, **p;
@@ -14705,9 +8795,9 @@
p = &old->parent->child;
for (;;) {
tmp = *p;
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/kernel/signal.c CVS2_6_14_PA0/kernel/signal.c
---- LINUS_2_6_14/kernel/signal.c 2005-10-27 21:30:49.000000000 -0600
-+++ CVS2_6_14_PA0/kernel/signal.c 2005-10-27 21:38:45.000000000 -0600
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/kernel/signal.c CVS2_6_15_RC7_PA0/kernel/signal.c
+--- LINUS_2_6_15_RC7/kernel/signal.c 2005-12-27 13:25:57.000000000 -0700
++++ CVS2_6_15_RC7_PA0/kernel/signal.c 2005-11-19 22:09:36.000000000 -0700
@@ -22,6 +22,7 @@
#include <linux/security.h>
#include <linux/syscalls.h>
@@ -14716,7 +8806,7 @@
#include <linux/posix-timers.h>
#include <linux/signal.h>
#include <linux/audit.h>
-@@ -2127,17 +2128,35 @@
+@@ -2095,17 +2096,35 @@
return do_sigpending(set, sigsetsize);
}
@@ -14752,7 +8842,7 @@
/*
* If you change siginfo_t structure, please be sure
* this code is fixed accordingly.
-@@ -2374,7 +2393,7 @@
+@@ -2321,7 +2340,7 @@
{
siginfo_t info;
@@ -14761,21 +8851,10 @@
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_14/kernel/sys.c CVS2_6_14_PA0/kernel/sys.c
---- LINUS_2_6_14/kernel/sys.c 2005-10-27 21:30:49.000000000 -0600
-+++ CVS2_6_14_PA0/kernel/sys.c 2005-10-20 08:43:41.000000000 -0600
-@@ -32,6 +32,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_14/mm/shmem.c CVS2_6_14_PA0/mm/shmem.c
---- LINUS_2_6_14/mm/shmem.c 2005-10-27 21:30:50.000000000 -0600
-+++ CVS2_6_14_PA0/mm/shmem.c 2005-10-20 08:43:42.000000000 -0600
-@@ -459,7 +459,7 @@
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/mm/shmem.c CVS2_6_15_RC7_PA0/mm/shmem.c
+--- LINUS_2_6_15_RC7/mm/shmem.c 2005-12-27 13:25:58.000000000 -0700
++++ CVS2_6_15_RC7_PA0/mm/shmem.c 2005-11-11 21:09:28.000000000 -0700
+@@ -457,7 +457,7 @@
} while (next);
}
@@ -14784,9 +8863,9 @@
{
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_14/sound/drivers/opl3/opl3_lib.c CVS2_6_14_PA0/sound/drivers/opl3/opl3_lib.c
---- LINUS_2_6_14/sound/drivers/opl3/opl3_lib.c 2005-10-27 21:30:53.000000000 -0600
-+++ CVS2_6_14_PA0/sound/drivers/opl3/opl3_lib.c 2005-09-23 21:44:05.000000000 -0600
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/sound/drivers/opl3/opl3_lib.c CVS2_6_15_RC7_PA0/sound/drivers/opl3/opl3_lib.c
+--- LINUS_2_6_15_RC7/sound/drivers/opl3/opl3_lib.c 2005-12-27 13:26:01.000000000 -0700
++++ CVS2_6_15_RC7_PA0/sound/drivers/opl3/opl3_lib.c 2005-11-11 23:00:07.000000000 -0700
@@ -40,7 +40,7 @@
static void snd_opl2_command(opl3_t * opl3, unsigned short cmd, unsigned char val)
{
@@ -14866,10 +8945,10 @@
#if 0
snd_printk("AdLib IRQ status = 0x%x\n", status);
#endif
-@@ -333,6 +333,10 @@
- release_resource(opl3->res_r_port);
- kfree_nocheck(opl3->res_r_port);
- }
+@@ -327,6 +327,10 @@
+ opl3->private_free(opl3);
+ release_and_free_resource(opl3->res_l_port);
+ release_and_free_resource(opl3->res_r_port);
+ if (opl3->unmap_on_free) {
+ iounmap(opl3->l_port);
+ iounmap(opl3->r_port);
@@ -14877,7 +8956,7 @@
kfree(opl3);
return 0;
}
-@@ -397,12 +401,14 @@
+@@ -391,12 +395,14 @@
return 0;
}
@@ -14898,7 +8977,7 @@
{
opl3_t *opl3;
int err;
-@@ -410,21 +416,11 @@
+@@ -404,21 +410,11 @@
*ropl3 = NULL;
if ((err = snd_opl3_new(card, hardware, &opl3)) < 0)
return err;
@@ -14923,7 +9002,7 @@
switch (opl3->hardware) {
/* some hardware doesn't support timers */
-@@ -455,6 +451,67 @@
+@@ -449,6 +445,61 @@
return 0;
}
@@ -14973,14 +9052,8 @@
+ return snd_opl3_create_main(card, l_mapped, r_mapped, 1, 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);
-+ }
++ release_and_free_resource(res_l_port);
++ release_and_free_resource(res_r_port);
+ if (l_mapped)
+ iounmap(l_mapped);
+ if (r_mapped)
@@ -14991,7 +9064,7 @@
int snd_opl3_timer_new(opl3_t * opl3, int timer1_dev, int timer2_dev)
{
int err;
-@@ -534,6 +591,7 @@
+@@ -528,6 +579,7 @@
EXPORT_SYMBOL(snd_opl3_new);
EXPORT_SYMBOL(snd_opl3_init);
EXPORT_SYMBOL(snd_opl3_create);
@@ -14999,9 +9072,9 @@
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_14/sound/oss/ad1889.c CVS2_6_14_PA0/sound/oss/ad1889.c
---- LINUS_2_6_14/sound/oss/ad1889.c 2005-10-27 21:30:53.000000000 -0600
-+++ CVS2_6_14_PA0/sound/oss/ad1889.c 2005-06-30 08:26:47.000000000 -0600
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/sound/oss/ad1889.c CVS2_6_15_RC7_PA0/sound/oss/ad1889.c
+--- LINUS_2_6_15_RC7/sound/oss/ad1889.c 2005-12-27 13:26:02.000000000 -0700
++++ CVS2_6_15_RC7_PA0/sound/oss/ad1889.c 2005-06-30 08:26:47.000000000 -0600
@@ -74,7 +74,7 @@
DBG("Setting WAV rate to %d\n", rate);
@@ -15393,9 +9466,9 @@
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_14/sound/oss/ad1889.h CVS2_6_14_PA0/sound/oss/ad1889.h
---- LINUS_2_6_14/sound/oss/ad1889.h 2005-10-27 21:30:53.000000000 -0600
-+++ CVS2_6_14_PA0/sound/oss/ad1889.h 2005-03-01 16:00:56.000000000 -0700
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/sound/oss/ad1889.h CVS2_6_15_RC7_PA0/sound/oss/ad1889.h
+--- LINUS_2_6_15_RC7/sound/oss/ad1889.h 2005-12-27 13:26:02.000000000 -0700
++++ CVS2_6_15_RC7_PA0/sound/oss/ad1889.h 2005-03-01 16:00:56.000000000 -0700
@@ -1,57 +1,58 @@
#ifndef _AD1889_H_
#define _AD1889_H_
@@ -15515,9 +9588,9 @@
#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_14/sound/oss/harmony.c CVS2_6_14_PA0/sound/oss/harmony.c
---- LINUS_2_6_14/sound/oss/harmony.c 2005-10-27 21:30:53.000000000 -0600
-+++ CVS2_6_14_PA0/sound/oss/harmony.c 2005-09-13 11:30:53.000000000 -0600
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/sound/oss/harmony.c CVS2_6_15_RC7_PA0/sound/oss/harmony.c
+--- LINUS_2_6_15_RC7/sound/oss/harmony.c 2005-12-27 13:26:02.000000000 -0700
++++ CVS2_6_15_RC7_PA0/sound/oss/harmony.c 2005-12-19 13:43:22.000000000 -0700
@@ -1236,7 +1236,7 @@
}
@@ -15527,272 +9600,19 @@
harmony.dev = dev;
/* Grab the ID and revision from the device */
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/sound/parisc/harmony.c CVS2_6_14_PA0/sound/parisc/harmony.c
---- LINUS_2_6_14/sound/parisc/harmony.c 2005-10-27 21:30:54.000000000 -0600
-+++ CVS2_6_14_PA0/sound/parisc/harmony.c 2005-09-23 21:44:09.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);
+@@ -1250,7 +1250,7 @@
- spin_unlock_irqrestore(&h->mixer_lock, flags);
+ printk(KERN_INFO "Lasi Harmony Audio driver " HARMONY_VERSION ", "
+ "h/w id %i, rev. %i at 0x%lx, IRQ %i\n",
+- id, rev, dev->hpa, harmony.dev->irq);
++ id, rev, dev->hpa.start, harmony.dev->irq);
-- 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
-@@ -852,14 +932,14 @@
- memset(&h->pbuf, 0, sizeof(h->pbuf));
- memset(&h->cbuf, 0, sizeof(h->cbuf));
-
-- h->hpa = padev->hpa;
-+ h->hpa = padev->hpa.start;
- h->card = card;
- h->dev = padev;
- h->irq = padev->irq;
-- h->iobase = ioremap_nocache(padev->hpa, HARMONY_SIZE);
-+ h->iobase = ioremap_nocache(padev->hpa.start, HARMONY_SIZE);
- if (h->iobase == NULL) {
- printk(KERN_ERR PFX "unable to remap hpa 0x%lx\n",
-- padev->hpa);
-+ padev->hpa.start);
- err = -EBUSY;
- goto free_and_ret;
- }
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/sound/parisc/harmony.h CVS2_6_14_PA0/sound/parisc/harmony.h
---- LINUS_2_6_14/sound/parisc/harmony.h 2005-10-27 21:30:54.000000000 -0600
-+++ CVS2_6_14_PA0/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_14/sound/pci/Kconfig CVS2_6_14_PA0/sound/pci/Kconfig
---- LINUS_2_6_14/sound/pci/Kconfig 2005-10-27 21:30:54.000000000 -0600
-+++ CVS2_6_14_PA0/sound/pci/Kconfig 2005-09-29 21:29:18.000000000 -0600
-@@ -328,6 +328,14 @@
+ /* Make sure the control bit isn't set, although I don't think it
+ ever is. */
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/sound/pci/Kconfig CVS2_6_15_RC7_PA0/sound/pci/Kconfig
+--- LINUS_2_6_15_RC7/sound/pci/Kconfig 2005-12-27 13:26:03.000000000 -0700
++++ CVS2_6_15_RC7_PA0/sound/pci/Kconfig 2005-11-11 21:09:48.000000000 -0700
+@@ -321,6 +321,14 @@
To compile this as a module, choose M here: the module
will be called snd-ad1889.
@@ -15807,10 +9627,10 @@
config SND_ALS4000
tristate "Avance Logic ALS4000"
depends on SND && ISA_DMA_API
-diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_14/sound/pci/ad1889.c CVS2_6_14_PA0/sound/pci/ad1889.c
---- LINUS_2_6_14/sound/pci/ad1889.c 2005-10-27 21:30:54.000000000 -0600
-+++ CVS2_6_14_PA0/sound/pci/ad1889.c 2005-08-31 21:28:22.000000000 -0600
-@@ -45,16 +45,21 @@
+diff -urN --exclude-from=/var/www/download/linux-2.6/autobuild/build-tools/dontdiff LINUS_2_6_15_RC7/sound/pci/ad1889.c CVS2_6_15_RC7_PA0/sound/pci/ad1889.c
+--- LINUS_2_6_15_RC7/sound/pci/ad1889.c 2005-12-27 13:26:03.000000000 -0700
++++ CVS2_6_15_RC7_PA0/sound/pci/ad1889.c 2005-11-11 21:09:48.000000000 -0700
+@@ -45,6 +45,10 @@
#include <sound/initval.h>
#include <sound/ac97_codec.h>
@@ -15821,11 +9641,7 @@
#include <asm/io.h>
#include "ad1889.h"
- #include "ac97/ac97_id.h"
-
--#define AD1889_DRVVER "$Revision: 1.3 $"
-+#define AD1889_DRVVER "$Revision: 1.31 $"
-
+@@ -55,6 +59,7 @@
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");
@@ -15916,15 +9732,6 @@
pci_release_regions(chip->pci);
pci_disable_device(chip->pci);
-@@ -928,7 +953,7 @@
- }
-
- /* allocate chip specific data with zero-filled memory */
-- if ((chip = kzalloc(sizeof(*chip), GFP_KERNEL)) == NULL) {
-+ if ((chip = kcalloc(1, sizeof(*chip), GFP_KERNEL)) == NULL) {
- pci_disable_device(pci);
- return -ENOMEM;
- }
@@ -954,6 +979,17 @@
spin_lock_init(&chip->lock); /* only now can we call ad1889_free */
@@ -15943,7 +9750,7 @@
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);
-@@ -1030,6 +1066,22 @@
+@@ -1029,6 +1065,22 @@
if (err < 0)
goto free_and_ret;
@@ -15966,11 +9773,3 @@
err = snd_ad1889_pcm_init(chip, 0, NULL);
if (err < 0)
goto free_and_ret;
-@@ -1068,7 +1120,6 @@
-
- static struct pci_driver ad1889_pci = {
- .name = "AD1889 Audio",
-- .owner = THIS_MODULE,
- .id_table = snd_ad1889_ids,
- .probe = snd_ad1889_probe,
- .remove = __devexit_p(snd_ad1889_remove),
Modified: people/waldi/linux-2.6/debian/patches-debian/drivers-scsi-megaraid_splitup.patch
==============================================================================
--- people/waldi/linux-2.6/debian/patches-debian/drivers-scsi-megaraid_splitup.patch (original)
+++ people/waldi/linux-2.6/debian/patches-debian/drivers-scsi-megaraid_splitup.patch Mon Jan 2 19:32:22 2006
@@ -1,25 +1,30 @@
-# From Fabio M. Di Nitto <fabbione at ubuntu.com>
-# Date 27th May 2005
-# Source Ubuntu kernel-team baz-archive
-# http://people.u.c/~lamont/Archives/kernel-team@ubuntu.com--2005/
-# kernel-debian--pre1,2--2.6.11.93
-#
-# * The megaraid legacy driver is around only to support AMI megaraid 1 and 2.
-# All the other controllers are supported (according to the code) by the
-# new megaraid driver:
-# - Add patch drivers-scsi-megaraid_spiltup.dpatch:
-# . Split PCI ID's properly between the 2 drivers.
-# . Allow compilation of both drivers at the same time.
-# . Update Kconfig.megaraid to reflect the new changes in the help.
-# . Rename a few things in the old megaraid driver to avoid possible
-# conflicts with the new drivers (NOTE: there might be more that needs
-# to be changed given that now the 2 modules can be loaded at the same
-# time).
+# drivers-scsi-megaraid_splitup.patch by Frederik Schüler <fs at debian.org>
+# Patch author: Ben Collins <bcollins at ubuntu.com>
+# Upstream status: not submitted
+# Description: Support megaraid legacy and megraid newgen, side-by-side
+# Source: ubuntu-2.6 git
+# diff from ca0e9390e01be69893d78bf9576d63ec85a6965e to 03bba4e0c091909e36520f2e617e51e87e50f8cd
+# diff from e82633eb19c4b390846a6eecd72204b696448954 to 8378e9887b6cf0b99e28a3b71c585bd1279932f7
-diff -urNad linux-source-2.6.12-2.6.11.90/drivers/scsi/megaraid/Kconfig.megaraid /usr/src/dpatchtemp/dpep.eRg2wK/linux-source-2.6.12-2.6.11.90/drivers/scsi/megaraid/Kconfig.megaraid
---- linux-source-2.6.12-2.6.11.90/drivers/scsi/megaraid/Kconfig.megaraid 2005-03-02 08:37:49.000000000 +0100
-+++ /usr/src/dpatchtemp/dpep.eRg2wK/linux-source-2.6.12-2.6.11.90/drivers/scsi/megaraid/Kconfig.megaraid 2005-04-19 08:28:09.521239400 +0200
-@@ -64,15 +64,11 @@
+diff --git a/drivers/scsi/megaraid/Kconfig.megaraid b/drivers/scsi/megaraid/Kconfig.megaraid
+index 7363e12..d71a230 100644
+--- a/drivers/scsi/megaraid/Kconfig.megaraid
++++ b/drivers/scsi/megaraid/Kconfig.megaraid
+@@ -1,12 +1,6 @@
+-config MEGARAID_NEWGEN
+- bool "LSI Logic New Generation RAID Device Drivers"
+- depends on PCI && SCSI
+- help
+- LSI Logic RAID Device Drivers
+-
+ config MEGARAID_MM
+ tristate "LSI Logic Management Module (New Driver)"
+- depends on PCI && SCSI && MEGARAID_NEWGEN
++ depends on PCI && SCSI
+ help
+ Management Module provides ioctl, sysfs support for LSI Logic
+ RAID controllers.
+@@ -64,18 +58,15 @@ config MEGARAID_MAILBOX
To compile this driver as a module, choose M here: the
module will be called megaraid_mbox
@@ -31,15 +36,33 @@
- This driver supports the LSI MegaRAID 418, 428, 438, 466, 762, 490
- and 467 SCSI host adapters. This driver also support the all U320
- RAID controllers
-+ This driver supports the AMI MEGARAID 1 and 2.
++ This driver supports the AMI MEGARAID 1 and 2, and the HP NETRAID
++ 1 and 2
To compile this driver as a module, choose M here: the
module will be called megaraid
-endif
-diff -urNad linux-source-2.6.12-2.6.11.90/drivers/scsi/megaraid.c /usr/src/dpatchtemp/dpep.eRg2wK/linux-source-2.6.12-2.6.11.90/drivers/scsi/megaraid.c
---- linux-source-2.6.12-2.6.11.90/drivers/scsi/megaraid.c 2005-03-02 08:37:30.000000000 +0100
-+++ /usr/src/dpatchtemp/dpep.eRg2wK/linux-source-2.6.12-2.6.11.90/drivers/scsi/megaraid.c 2005-04-19 08:35:13.889725584 +0200
-@@ -4565,7 +4565,7 @@
+
+ config MEGARAID_SAS
+ tristate "LSI Logic MegaRAID SAS RAID Module"
+diff --git a/drivers/scsi/megaraid.h b/drivers/scsi/megaraid.h
+index 4facf55..59cdd2a 100644
+--- a/drivers/scsi/megaraid.h
++++ b/drivers/scsi/megaraid.h
+@@ -84,6 +84,10 @@
+ #define LSI_SUBSYS_VID 0x1000
+ #define INTEL_SUBSYS_VID 0x8086
+
++/* Sub-System Device IDs */
++#define HP_NETRAID1M_SUBSYS_DID 0x60E7
++#define HP_NETRAID2M_SUBSYS_DID 0x60E8
++
+ #define HBA_SIGNATURE 0x3344
+ #define HBA_SIGNATURE_471 0xCCCC
+ #define HBA_SIGNATURE_64BIT 0x0299
+--- a/drivers/scsi/megaraid.c
++++ b/drivers/scsi/megaraid.c
+@@ -4570,7 +4570,7 @@
};
static int __devinit
@@ -48,35 +71,43 @@
{
struct Scsi_Host *host;
adapter_t *adapter;
-@@ -5033,35 +5033,23 @@
+@@ -5036,36 +5036,28 @@
+ __megaraid_shutdown(adapter);
}
- static struct pci_device_id megaraid_pci_tbl[] = {
+-static struct pci_device_id megaraid_pci_tbl[] = {
- {PCI_VENDOR_ID_DELL, PCI_DEVICE_ID_DISCOVERY,
- PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
- {PCI_VENDOR_ID_DELL, PCI_DEVICE_ID_PERC4_DI,
- PCI_ANY_ID, PCI_ANY_ID, 0, 0, BOARD_64BIT},
- {PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_PERC4_QC_VERDE,
- PCI_ANY_ID, PCI_ANY_ID, 0, 0, BOARD_64BIT},
++static struct pci_device_id megaraid_legacy_pci_tbl[] = {
{PCI_VENDOR_ID_AMI, PCI_DEVICE_ID_AMI_MEGARAID,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
{PCI_VENDOR_ID_AMI, PCI_DEVICE_ID_AMI_MEGARAID2,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
-- {PCI_VENDOR_ID_AMI, PCI_DEVICE_ID_AMI_MEGARAID3,
+ {PCI_VENDOR_ID_AMI, PCI_DEVICE_ID_AMI_MEGARAID3,
- PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
- {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_AMI_MEGARAID3,
- PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
- {PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_AMI_MEGARAID3,
- PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
++ HP_SUBSYS_VID, HP_NETRAID1M_SUBSYS_DID, 0, 0, 0},
++ {PCI_VENDOR_ID_AMI, PCI_DEVICE_ID_AMI_MEGARAID3,
++ HP_SUBSYS_VID, HP_NETRAID2M_SUBSYS_DID, 0, 0, 0},
{0,}
};
- MODULE_DEVICE_TABLE(pci, megaraid_pci_tbl);
+-MODULE_DEVICE_TABLE(pci, megaraid_pci_tbl);
++MODULE_DEVICE_TABLE(pci, megaraid_legacy_pci_tbl);
- static struct pci_driver megaraid_pci_driver = {
+-static struct pci_driver megaraid_pci_driver = {
- .name = "megaraid",
-+ .name = "megaraidlegacy",
- .id_table = megaraid_pci_tbl,
+- .id_table = megaraid_pci_tbl,
- .probe = megaraid_probe_one,
++static struct pci_driver megaraid_legacy_pci_driver = {
++ .name = "megaraidlegacy",
++ .id_table = megaraid_legacy_pci_tbl,
+ .probe = megaraid_legacy_probe_one,
.remove = __devexit_p(megaraid_remove_one),
.shutdown = megaraid_shutdown,
@@ -87,7 +118,16 @@
{
int error;
-@@ -5102,7 +5090,7 @@
+@@ -5081,7 +5073,7 @@
+ "megaraid: failed to create megaraid root\n");
+ }
+ #endif
+- error = pci_module_init(&megaraid_pci_driver);
++ error = pci_module_init(&megaraid_legacy_pci_driver);
+ if (error) {
+ #ifdef CONFIG_PROC_FS
+ remove_proc_entry("megaraid", &proc_root);
+@@ -5104,21 +5096,21 @@
return 0;
}
@@ -96,7 +136,14 @@
{
/*
* Unregister the character device interface to the driver.
-@@ -5116,7 +5104,7 @@
+ */
+ unregister_chrdev(major, "megadev");
+
+- pci_unregister_driver(&megaraid_pci_driver);
++ pci_unregister_driver(&megaraid_legacy_pci_driver);
+
+ #ifdef CONFIG_PROC_FS
+ remove_proc_entry("megaraid", &proc_root);
#endif
}
Modified: people/waldi/linux-2.6/debian/patches-debian/powerpc-apus.patch
==============================================================================
--- people/waldi/linux-2.6/debian/patches-debian/powerpc-apus.patch (original)
+++ people/waldi/linux-2.6/debian/patches-debian/powerpc-apus.patch Mon Jan 2 19:32:22 2006
@@ -10,9 +10,9 @@
# i will not apply by default.
#
-diff -Nur -x.gitignore -xCVS linux-2.6.14/arch/ppc/Kconfig linux-apus-2.6/arch/ppc/Kconfig
---- linux-2.6.14/arch/ppc/Kconfig 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/arch/ppc/Kconfig 2005-11-17 14:15:32.000000000 +0000
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/Kconfig linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/Kconfig
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/Kconfig 2005-12-25 12:11:25.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/Kconfig 2005-12-29 09:27:43.000000000 +0000
@@ -537,7 +537,6 @@
config APUS
@@ -21,10 +21,10 @@
help
Select APUS if configuring for a PowerUP Amiga.
More information is available at:
-diff -Nur -x.gitignore -xCVS linux-2.6.14/arch/ppc/Makefile linux-apus-2.6/arch/ppc/Makefile
---- linux-2.6.14/arch/ppc/Makefile 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/arch/ppc/Makefile 2005-11-17 14:15:32.000000000 +0000
-@@ -55,9 +55,12 @@
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/Makefile linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/Makefile
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/Makefile 2005-12-25 12:11:25.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/Makefile 2005-12-29 09:29:44.000000000 +0000
+@@ -59,9 +59,12 @@
head-$(CONFIG_44x) := arch/ppc/kernel/head_44x.o
head-$(CONFIG_FSL_BOOKE) := arch/ppc/kernel/head_fsl_booke.o
@@ -32,12 +32,12 @@
+head-y += arch/ppc/kernel/entry.o
head-$(CONFIG_6xx) += arch/ppc/kernel/idle_6xx.o
head-$(CONFIG_POWER4) += arch/ppc/kernel/idle_power4.o
- head-$(CONFIG_PPC_FPU) += arch/ppc/kernel/fpu.o
+ head-$(CONFIG_PPC_FPU) += arch/powerpc/kernel/fpu.o
+head-y += arch/ppc/kernel/head_end.o
- core-y += arch/ppc/kernel/ arch/ppc/platforms/ \
- arch/ppc/mm/ arch/ppc/lib/ arch/ppc/syslib/
-@@ -77,7 +80,9 @@
+ core-y += arch/ppc/kernel/ arch/powerpc/kernel/ \
+ arch/ppc/platforms/ \
+@@ -84,7 +87,9 @@
.PHONY: $(BOOT_TARGETS)
@@ -47,9 +47,9 @@
CPPFLAGS_vmlinux.lds := -Upowerpc
-diff -Nur -x.gitignore -xCVS linux-2.6.14/arch/ppc/amiga/Makefile linux-apus-2.6/arch/ppc/amiga/Makefile
---- linux-2.6.14/arch/ppc/amiga/Makefile 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/arch/ppc/amiga/Makefile 2004-07-03 17:53:51.000000000 +0000
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/amiga/Makefile linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/amiga/Makefile
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/amiga/Makefile 2005-10-28 00:02:08.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/amiga/Makefile 2005-12-29 09:27:43.000000000 +0000
@@ -1,8 +1,8 @@
#
-# Makefile for Linux arch/m68k/amiga source directory
@@ -62,9 +62,9 @@
+ amisound.o chipram.o amiga_ksyms.o
obj-$(CONFIG_AMIGA_PCMCIA) += pcmcia.o
-diff -Nur -x.gitignore -xCVS linux-2.6.14/arch/ppc/amiga/amiints.c linux-apus-2.6/arch/ppc/amiga/amiints.c
---- linux-2.6.14/arch/ppc/amiga/amiints.c 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/arch/ppc/amiga/amiints.c 2004-02-04 21:21:34.000000000 +0000
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/amiga/amiints.c linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/amiga/amiints.c
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/amiga/amiints.c 2005-10-28 00:02:08.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/amiga/amiints.c 2005-12-29 09:27:43.000000000 +0000
@@ -67,9 +67,10 @@
static short ami_ablecount[AMI_IRQS];
@@ -138,9 +138,9 @@
}
#ifdef CONFIG_APUS
-diff -Nur -x.gitignore -xCVS linux-2.6.14/arch/ppc/amiga/bootinfo.c linux-apus-2.6/arch/ppc/amiga/bootinfo.c
---- linux-2.6.14/arch/ppc/amiga/bootinfo.c 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/arch/ppc/amiga/bootinfo.c 2005-11-17 14:15:32.000000000 +0000
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/amiga/bootinfo.c linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/amiga/bootinfo.c
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/amiga/bootinfo.c 2005-10-28 00:02:08.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/amiga/bootinfo.c 2005-12-29 09:27:44.000000000 +0000
@@ -13,8 +13,9 @@
#include <asm/setup.h>
@@ -177,9 +177,9 @@
}
if (unknown)
printk("parse_bootinfo: unknown tag 0x%04x ignored\n",
-diff -Nur -x.gitignore -xCVS linux-2.6.14/arch/ppc/amiga/cia.c linux-apus-2.6/arch/ppc/amiga/cia.c
---- linux-2.6.14/arch/ppc/amiga/cia.c 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/arch/ppc/amiga/cia.c 2004-02-04 21:21:34.000000000 +0000
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/amiga/cia.c linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/amiga/cia.c
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/amiga/cia.c 2005-10-28 00:02:08.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/amiga/cia.c 2005-12-29 09:27:44.000000000 +0000
@@ -134,7 +134,7 @@
return cia_able_irq_private(base, mask);
}
@@ -197,9 +197,9 @@
}
void __init cia_init_IRQ(struct ciabase *base)
-diff -Nur -x.gitignore -xCVS linux-2.6.14/arch/ppc/amiga/config.c linux-apus-2.6/arch/ppc/amiga/config.c
---- linux-2.6.14/arch/ppc/amiga/config.c 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/arch/ppc/amiga/config.c 2005-07-30 18:52:47.000000000 +0000
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/amiga/config.c linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/amiga/config.c
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/amiga/config.c 2005-10-28 00:02:08.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/amiga/config.c 2005-12-29 09:27:44.000000000 +0000
@@ -20,11 +20,12 @@
#include <linux/mm.h>
#include <linux/kd.h>
@@ -687,9 +687,9 @@
return(len);
}
-diff -Nur -x.gitignore -xCVS linux-2.6.14/arch/ppc/amiga/time.c linux-apus-2.6/arch/ppc/amiga/time.c
---- linux-2.6.14/arch/ppc/amiga/time.c 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/arch/ppc/amiga/time.c 1970-01-01 00:00:00.000000000 +0000
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/amiga/time.c linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/amiga/time.c
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/amiga/time.c 2005-10-28 00:02:08.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/amiga/time.c 1970-01-01 00:00:00.000000000 +0000
@@ -1,58 +0,0 @@
-#include <linux/config.h> /* CONFIG_HEARTBEAT */
-#include <linux/errno.h>
@@ -749,9 +749,9 @@
- /* should be made smarter */
- ppc_md.heartbeat_count = 1;
-}
-diff -Nur -x.gitignore -xCVS linux-2.6.14/arch/ppc/configs/apus_defconfig linux-apus-2.6/arch/ppc/configs/apus_defconfig
---- linux-2.6.14/arch/ppc/configs/apus_defconfig 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/arch/ppc/configs/apus_defconfig 2005-11-17 14:15:32.000000000 +0000
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/configs/apus_defconfig linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/configs/apus_defconfig
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/configs/apus_defconfig 2005-10-28 00:02:08.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/configs/apus_defconfig 2005-12-29 09:27:44.000000000 +0000
@@ -1,103 +1,139 @@
#
# Automatically generated make config: don't edit
@@ -2227,25 +2227,24 @@
+#
+# Hardware crypto devices
+#
-diff -Nur -x.gitignore -xCVS linux-2.6.14/arch/ppc/kernel/Makefile linux-apus-2.6/arch/ppc/kernel/Makefile
---- linux-2.6.14/arch/ppc/kernel/Makefile 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/arch/ppc/kernel/Makefile 2005-09-23 13:41:21.000000000 +0000
-@@ -9,10 +9,11 @@
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/kernel/Makefile linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/kernel/Makefile
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/kernel/Makefile 2005-12-25 12:11:25.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/kernel/Makefile 2005-12-29 09:30:41.000000000 +0000
+@@ -10,9 +10,10 @@
extra-$(CONFIG_8xx) := head_8xx.o
extra-$(CONFIG_6xx) += idle_6xx.o
extra-$(CONFIG_POWER4) += idle_power4.o
+extra-y += entry.o head_end.o
- extra-$(CONFIG_PPC_FPU) += fpu.o
extra-y += vmlinux.lds
--obj-y := entry.o traps.o irq.o idle.o time.o misc.o \
-+obj-y := traps.o irq.o idle.o time.o misc.o \
- process.o signal.o ptrace.o align.o \
- semaphore.o syscalls.o setup.o \
- cputable.o ppc_htab.o perfmon.o
-diff -Nur -x.gitignore -xCVS linux-2.6.14/arch/ppc/kernel/head.S linux-apus-2.6/arch/ppc/kernel/head.S
---- linux-2.6.14/arch/ppc/kernel/head.S 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/arch/ppc/kernel/head.S 2005-11-17 14:15:32.000000000 +0000
+-obj-y := entry.o traps.o idle.o time.o misc.o \
++obj-y := traps.o idle.o time.o misc.o \
+ process.o \
+ setup.o \
+ ppc_htab.o
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/kernel/head.S linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/kernel/head.S
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/kernel/head.S 2005-12-25 12:11:25.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/kernel/head.S 2005-12-29 09:27:44.000000000 +0000
@@ -353,6 +353,28 @@
#if defined(CONFIG_GEMINI) && defined(CONFIG_SMP)
. = 0x100
@@ -2273,7 +2272,7 @@
+ mtlr r4
+ blrl
#else
- EXCEPTION(0x100, Reset, UnknownException, EXC_XFER_STD)
+ EXCEPTION(0x100, Reset, unknown_exception, EXC_XFER_STD)
#endif
@@ -408,7 +430,15 @@
bne 1f /* if not, try to put a PTE */
@@ -2307,7 +2306,7 @@
1: mr r4,r12
mr r5,r9
EXC_XFER_EE_LITE(0x400, handle_page_fault)
-@@ -1199,19 +1237,6 @@
+@@ -1193,19 +1231,6 @@
bl machine_init
bl MMU_init
@@ -2327,7 +2326,7 @@
/*
* Go back to running unmapped so we can load up new values
* for SDR1 (hash table pointer) and the segment registers
-@@ -1229,6 +1254,22 @@
+@@ -1223,6 +1248,22 @@
/* Load up the kernel context */
2: bl load_up_mmu
@@ -2350,7 +2349,7 @@
#ifdef CONFIG_BDI_SWITCH
/* Add helper information for the Abatron bdiGDB debugger.
* We do this here because we know the mmu is disabled, and
-@@ -1409,6 +1450,17 @@
+@@ -1403,6 +1444,17 @@
mtspr SPRN_DBAT0U,r11 /* bit in upper BAT register */
mtspr SPRN_IBAT0L,r8
mtspr SPRN_IBAT0U,r11
@@ -2368,16 +2367,16 @@
isync
blr
-diff -Nur -x.gitignore -xCVS linux-2.6.14/arch/ppc/kernel/head_end.S linux-apus-2.6/arch/ppc/kernel/head_end.S
---- linux-2.6.14/arch/ppc/kernel/head_end.S 1970-01-01 00:00:00.000000000 +0000
-+++ linux-apus-2.6/arch/ppc/kernel/head_end.S 2005-09-23 13:41:21.000000000 +0000
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/kernel/head_end.S linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/kernel/head_end.S
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/kernel/head_end.S 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/kernel/head_end.S 2005-12-29 09:27:44.000000000 +0000
@@ -0,0 +1,2 @@
+ .global __head_end
+__head_end:
-diff -Nur -x.gitignore -xCVS linux-2.6.14/arch/ppc/kernel/misc.S linux-apus-2.6/arch/ppc/kernel/misc.S
---- linux-2.6.14/arch/ppc/kernel/misc.S 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/arch/ppc/kernel/misc.S 2005-11-17 14:15:32.000000000 +0000
-@@ -1377,7 +1377,11 @@
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/kernel/misc.S linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/kernel/misc.S
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/kernel/misc.S 2005-12-25 12:11:25.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/kernel/misc.S 2005-12-29 09:27:44.000000000 +0000
+@@ -1325,7 +1325,11 @@
.long sys_fstat64
.long sys_pciconfig_read
.long sys_pciconfig_write
@@ -2389,9 +2388,9 @@
.long sys_ni_syscall /* 201 - reserved - MacOnLinux - new */
.long sys_getdents64
.long sys_pivot_root
-diff -Nur -x.gitignore -xCVS linux-2.6.14/arch/ppc/kernel/ppc_ksyms.c linux-apus-2.6/arch/ppc/kernel/ppc_ksyms.c
---- linux-2.6.14/arch/ppc/kernel/ppc_ksyms.c 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/arch/ppc/kernel/ppc_ksyms.c 2005-11-17 14:15:32.000000000 +0000
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/kernel/ppc_ksyms.c linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/kernel/ppc_ksyms.c
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/kernel/ppc_ksyms.c 2005-12-25 12:11:25.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/kernel/ppc_ksyms.c 2005-12-29 09:27:44.000000000 +0000
@@ -65,8 +65,6 @@
long long __ashldi3(long long, int);
long long __lshrdi3(long long, int);
@@ -2401,7 +2400,7 @@
EXPORT_SYMBOL(clear_pages);
EXPORT_SYMBOL(clear_user_page);
EXPORT_SYMBOL(do_signal);
-@@ -142,7 +140,6 @@
+@@ -146,7 +144,6 @@
EXPORT_SYMBOL(_insl_ns);
EXPORT_SYMBOL(_outsl_ns);
EXPORT_SYMBOL(iopa);
@@ -2409,10 +2408,10 @@
EXPORT_SYMBOL(ioremap);
#ifdef CONFIG_44x
EXPORT_SYMBOL(ioremap64);
-diff -Nur -x.gitignore -xCVS linux-2.6.14/arch/ppc/kernel/setup.c linux-apus-2.6/arch/ppc/kernel/setup.c
---- linux-2.6.14/arch/ppc/kernel/setup.c 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/arch/ppc/kernel/setup.c 2005-11-17 14:15:32.000000000 +0000
-@@ -546,6 +546,7 @@
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/kernel/setup.c linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/kernel/setup.c
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/kernel/setup.c 2005-12-25 12:11:25.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/kernel/setup.c 2005-12-29 09:27:44.000000000 +0000
+@@ -566,6 +566,7 @@
#endif /* CONFIG_SERIAL_CORE_CONSOLE */
#endif /* CONFIG_PPC_MULTIPLATFORM */
@@ -2420,7 +2419,7 @@
struct bi_record *find_bootinfo(void)
{
struct bi_record *rec;
-@@ -592,6 +593,7 @@
+@@ -624,6 +625,7 @@
rec = (struct bi_record *)((ulong)rec + rec->size);
}
}
@@ -2428,10 +2427,10 @@
/*
* Find out what kind of machine we're on and save any data we need
-diff -Nur -x.gitignore -xCVS linux-2.6.14/arch/ppc/kernel/time.c linux-apus-2.6/arch/ppc/kernel/time.c
---- linux-2.6.14/arch/ppc/kernel/time.c 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/arch/ppc/kernel/time.c 2005-11-17 14:15:32.000000000 +0000
-@@ -152,6 +152,7 @@
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/kernel/time.c linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/kernel/time.c
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/kernel/time.c 2005-12-25 12:11:25.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/kernel/time.c 2005-12-29 09:27:44.000000000 +0000
+@@ -156,6 +156,7 @@
tb_last_stamp = jiffy_stamp;
do_timer(regs);
@@ -2439,7 +2438,7 @@
/*
* update the rtc when needed, this should be performed on the
* right fraction of a second. Half or full second ?
-@@ -178,6 +179,7 @@
+@@ -182,6 +183,7 @@
/* Try again one minute later */
last_rtc_update += 60;
}
@@ -2447,9 +2446,9 @@
write_sequnlock(&xtime_lock);
}
if ( !disarm_decr[smp_processor_id()] )
-diff -Nur -x.gitignore -xCVS linux-2.6.14/arch/ppc/mm/Makefile linux-apus-2.6/arch/ppc/mm/Makefile
---- linux-2.6.14/arch/ppc/mm/Makefile 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/arch/ppc/mm/Makefile 2004-09-25 21:09:43.000000000 +0000
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/mm/Makefile linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/mm/Makefile
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/mm/Makefile 2005-10-28 00:02:08.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/mm/Makefile 2005-12-29 09:27:44.000000000 +0000
@@ -5,7 +5,8 @@
obj-y := fault.o init.o mem_pieces.o \
mmu_context.o pgtable.o
@@ -2460,9 +2459,9 @@
obj-$(CONFIG_40x) += 4xx_mmu.o
obj-$(CONFIG_44x) += 44x_mmu.o
obj-$(CONFIG_FSL_BOOKE) += fsl_booke_mmu.o
-diff -Nur -x.gitignore -xCVS linux-2.6.14/arch/ppc/mm/init.c linux-apus-2.6/arch/ppc/mm/init.c
---- linux-2.6.14/arch/ppc/mm/init.c 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/arch/ppc/mm/init.c 2005-11-17 14:15:32.000000000 +0000
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/mm/init.c linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/mm/init.c
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/mm/init.c 2005-12-25 12:11:25.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/mm/init.c 2005-12-29 09:27:44.000000000 +0000
@@ -61,9 +61,6 @@
unsigned long total_memory;
unsigned long total_lowmem;
@@ -2473,9 +2472,9 @@
int mem_init_done;
int init_bootmem_done;
int boot_mapsize;
-diff -Nur -x.gitignore -xCVS linux-2.6.14/arch/ppc/mm/pgtable.c linux-apus-2.6/arch/ppc/mm/pgtable.c
---- linux-2.6.14/arch/ppc/mm/pgtable.c 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/arch/ppc/mm/pgtable.c 2005-09-18 13:03:35.000000000 +0000
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/mm/pgtable.c linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/mm/pgtable.c
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/mm/pgtable.c 2005-12-25 12:11:25.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/mm/pgtable.c 2005-12-29 09:27:45.000000000 +0000
@@ -190,8 +190,8 @@
* Don't allow anybody to remap normal RAM that we're using.
* mem_init() sets high_memory so only do the check after that.
@@ -2487,7 +2486,7 @@
printk("__ioremap(): phys addr "PHYS_FMT" is RAM lr %p\n", p,
__builtin_return_address(0));
return NULL;
-@@ -429,42 +429,3 @@
+@@ -427,42 +427,3 @@
return(pa);
}
@@ -2530,9 +2529,9 @@
- return ret;
-}
-
-diff -Nur -x.gitignore -xCVS linux-2.6.14/arch/ppc/platforms/apus_setup.c linux-apus-2.6/arch/ppc/platforms/apus_setup.c
---- linux-2.6.14/arch/ppc/platforms/apus_setup.c 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/arch/ppc/platforms/apus_setup.c 2005-11-17 14:15:32.000000000 +0000
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/platforms/apus_setup.c linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/platforms/apus_setup.c
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/arch/ppc/platforms/apus_setup.c 2005-10-28 00:02:08.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/platforms/apus_setup.c 2005-12-29 09:27:45.000000000 +0000
@@ -17,11 +17,14 @@
#include <linux/kernel.h>
#include <linux/sched.h>
@@ -2983,9 +2982,9 @@
ppc_memoffset = PAGE_OFFSET - PPC_MEMSTART;
total = memory[0].size;
-diff -Nur -x.gitignore -xCVS linux-2.6.14/drivers/block/amiflop.c linux-apus-2.6/drivers/block/amiflop.c
---- linux-2.6.14/drivers/block/amiflop.c 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/drivers/block/amiflop.c 2005-07-30 23:06:43.000000000 +0000
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/drivers/block/amiflop.c linux-2.6-2.6.14+2.6.15-rc7/drivers/block/amiflop.c
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/drivers/block/amiflop.c 2005-12-25 12:11:26.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/drivers/block/amiflop.c 2005-12-29 09:27:45.000000000 +0000
@@ -59,6 +59,7 @@
#include <linux/hdreg.h>
#include <linux/delay.h>
@@ -2994,9 +2993,27 @@
#include <linux/amifdreg.h>
#include <linux/amifd.h>
#include <linux/buffer_head.h>
-diff -Nur -x.gitignore -xCVS linux-2.6.14/include/asm-m68k/bootinfo.h linux-apus-2.6/include/asm-m68k/bootinfo.h
---- linux-2.6.14/include/asm-m68k/bootinfo.h 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/include/asm-m68k/bootinfo.h 2005-07-30 20:49:24.000000000 +0000
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/drivers/video/console/fonts.c linux-2.6-2.6.14+2.6.15-rc7/drivers/video/console/fonts.c
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/drivers/video/console/fonts.c 2005-11-20 13:51:30.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/drivers/video/console/fonts.c 2005-12-29 09:27:45.000000000 +0000
+@@ -118,7 +118,13 @@
+ for(i=0; i<num_fonts; i++) {
+ f = fonts[i];
+ c = f->pref;
+-#if defined(__mc68000__) || defined(CONFIG_APUS)
++#if defined(CONFIG_APUS)
++#ifdef CONFIG_FONT_PEARL_8x8
++ if (f->idx == PEARL8x8_IDX)
++ c = 100;
++#endif
++#endif
++#if defined(__mc68000__)
+ #ifdef CONFIG_FONT_PEARL_8x8
+ if (MACH_IS_AMIGA && f->idx == PEARL8x8_IDX)
+ c = 100;
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/include/asm-m68k/bootinfo.h linux-2.6-2.6.14+2.6.15-rc7/include/asm-m68k/bootinfo.h
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/include/asm-m68k/bootinfo.h 2005-10-28 00:02:08.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/include/asm-m68k/bootinfo.h 2005-12-29 09:27:45.000000000 +0000
@@ -81,6 +81,8 @@
#define BI_AMIGA_ECLOCK 0x8005 /* EClock frequency (u_long) */
#define BI_AMIGA_CHIPSET 0x8006 /* native chipset present (u_long) */
@@ -3006,9 +3023,9 @@
/*
* Atari-specific tags
-diff -Nur -x.gitignore -xCVS linux-2.6.14/include/asm-ppc/amigahw.h linux-apus-2.6/include/asm-ppc/amigahw.h
---- linux-2.6.14/include/asm-ppc/amigahw.h 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/include/asm-ppc/amigahw.h 2005-11-17 14:17:12.000000000 +0000
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/include/asm-ppc/amigahw.h linux-2.6-2.6.14+2.6.15-rc7/include/asm-ppc/amigahw.h
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/include/asm-ppc/amigahw.h 2005-10-28 00:02:08.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/include/asm-ppc/amigahw.h 2005-12-29 09:27:45.000000000 +0000
@@ -1,6 +1,6 @@
-#ifdef __KERNEL__
#ifndef __ASMPPC_AMIGAHW_H
@@ -3048,9 +3065,9 @@
-#endif /* __ASMPPC_AMIGAHW_H */
#endif /* __KERNEL__ */
+#endif /* __ASMPPC_AMIGAHW_H */
-diff -Nur -x.gitignore -xCVS linux-2.6.14/include/asm-ppc/bootinfo.h linux-apus-2.6/include/asm-ppc/bootinfo.h
---- linux-2.6.14/include/asm-ppc/bootinfo.h 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/include/asm-ppc/bootinfo.h 2004-02-21 21:42:00.000000000 +0000
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/include/asm-ppc/bootinfo.h linux-2.6-2.6.14+2.6.15-rc7/include/asm-ppc/bootinfo.h
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/include/asm-ppc/bootinfo.h 2005-10-28 00:02:08.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/include/asm-ppc/bootinfo.h 2005-12-29 09:27:45.000000000 +0000
@@ -36,7 +36,6 @@
extern void bootinfo_init(struct bi_record *rec);
extern void bootinfo_append(unsigned long tag, unsigned long size, void * data);
@@ -3067,26 +3084,9 @@
#endif /* _PPC_BOOTINFO_H */
#endif /* __KERNEL__ */
-diff -Nur -x.gitignore -xCVS linux-2.6.14/include/asm-ppc/current.h linux-apus-2.6/include/asm-ppc/current.h
---- linux-2.6.14/include/asm-ppc/current.h 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/include/asm-ppc/current.h 2004-02-04 21:21:36.000000000 +0000
-@@ -1,11 +1,11 @@
--#ifdef __KERNEL__
- #ifndef _PPC_CURRENT_H
- #define _PPC_CURRENT_H
-+#ifdef __KERNEL__
-
- /*
- * We keep `current' in r2 for speed.
- */
- register struct task_struct *current asm ("r2");
-
--#endif /* !(_PPC_CURRENT_H) */
- #endif /* __KERNEL__ */
-+#endif /* !(_PPC_CURRENT_H) */
-diff -Nur -x.gitignore -xCVS linux-2.6.14/include/asm-ppc/io.h linux-apus-2.6/include/asm-ppc/io.h
---- linux-2.6.14/include/asm-ppc/io.h 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/include/asm-ppc/io.h 2005-11-17 14:17:13.000000000 +0000
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/include/asm-ppc/io.h linux-2.6-2.6.14+2.6.15-rc7/include/asm-ppc/io.h
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/include/asm-ppc/io.h 2005-12-25 12:11:28.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/include/asm-ppc/io.h 2005-12-29 09:27:45.000000000 +0000
@@ -1,6 +1,6 @@
-#ifdef __KERNEL__
#ifndef _PPC_IO_H
@@ -3095,7 +3095,7 @@
#include <linux/config.h>
#include <linux/string.h>
-@@ -294,10 +294,10 @@
+@@ -297,10 +297,10 @@
__do_out_asm(outb, "stbx")
#ifdef CONFIG_APUS
__do_in_asm(inb, "lbzx")
@@ -3110,7 +3110,7 @@
#elif defined (CONFIG_8260_PCI9)
/* in asm cannot be defined if PCI9 workaround is used */
#define inb(port) in_8((port)+___IO_BASE)
-@@ -377,12 +377,19 @@
+@@ -380,12 +380,19 @@
extern void __iomem *ioremap64(unsigned long long address, unsigned long size);
#endif
#define ioremap_nocache(addr, size) ioremap((addr), (size))
@@ -3130,7 +3130,7 @@
/*
* The PCI bus is inherently Little-Endian. The PowerPC is being
* run Big-Endian. Thus all values which cross the [PCI] barrier
-@@ -392,24 +399,16 @@
+@@ -395,24 +402,16 @@
*/
extern inline unsigned long virt_to_bus(volatile void * address)
{
@@ -3157,7 +3157,7 @@
}
/*
-@@ -418,20 +417,12 @@
+@@ -421,20 +420,12 @@
*/
extern inline unsigned long virt_to_phys(volatile void * address)
{
@@ -3180,7 +3180,7 @@
}
/*
-@@ -546,8 +537,6 @@
+@@ -539,8 +530,6 @@
extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
extern void pci_iounmap(struct pci_dev *dev, void __iomem *);
@@ -3189,14 +3189,14 @@
#ifdef CONFIG_8260_PCI9
#include <asm/mpc8260_pci9.h>
#endif
-@@ -564,3 +553,4 @@
+@@ -574,3 +563,4 @@
#define xlate_dev_kmem_ptr(p) p
#endif /* __KERNEL__ */
+#endif /* _PPC_IO_H */
-diff -Nur -x.gitignore -xCVS linux-2.6.14/include/asm-ppc/machdep.h linux-apus-2.6/include/asm-ppc/machdep.h
---- linux-2.6.14/include/asm-ppc/machdep.h 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/include/asm-ppc/machdep.h 2005-09-18 13:03:36.000000000 +0000
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/include/asm-ppc/machdep.h linux-2.6-2.6.14+2.6.15-rc7/include/asm-ppc/machdep.h
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/include/asm-ppc/machdep.h 2005-12-25 12:11:28.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/include/asm-ppc/machdep.h 2005-12-29 09:27:45.000000000 +0000
@@ -9,10 +9,6 @@
#include <asm/setup.h>
#include <asm/page.h>
@@ -3208,10 +3208,10 @@
struct pt_regs;
struct pci_bus;
struct pci_dev;
-diff -Nur -x.gitignore -xCVS linux-2.6.14/include/asm-ppc/pgtable.h linux-apus-2.6/include/asm-ppc/pgtable.h
---- linux-2.6.14/include/asm-ppc/pgtable.h 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/include/asm-ppc/pgtable.h 2005-11-17 14:17:13.000000000 +0000
-@@ -723,7 +723,7 @@
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/include/asm-ppc/pgtable.h linux-2.6-2.6.14+2.6.15-rc7/include/asm-ppc/pgtable.h
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/include/asm-ppc/pgtable.h 2005-12-25 12:11:28.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/include/asm-ppc/pgtable.h 2005-12-29 09:27:45.000000000 +0000
+@@ -724,7 +724,7 @@
#define pmd_page_kernel(pmd) \
((unsigned long) __va(pmd_val(pmd) & PAGE_MASK))
#define pmd_page(pmd) \
@@ -3220,9 +3220,9 @@
#else
#define pmd_page_kernel(pmd) \
((unsigned long) (pmd_val(pmd) & PAGE_MASK))
-diff -Nur -x.gitignore -xCVS linux-2.6.14/include/asm-ppc/zorro.h linux-apus-2.6/include/asm-ppc/zorro.h
---- linux-2.6.14/include/asm-ppc/zorro.h 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/include/asm-ppc/zorro.h 2005-08-03 23:48:26.000000000 +0000
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/include/asm-ppc/zorro.h linux-2.6-2.6.14+2.6.15-rc7/include/asm-ppc/zorro.h
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/include/asm-ppc/zorro.h 2005-10-28 00:02:08.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/include/asm-ppc/zorro.h 2005-12-29 09:27:45.000000000 +0000
@@ -3,13 +3,50 @@
#include <asm/io.h>
@@ -3289,9 +3289,9 @@
extern void *__ioremap(unsigned long address, unsigned long size,
unsigned long flags);
-diff -Nur -x.gitignore -xCVS linux-2.6.14/include/video/vga.h linux-apus-2.6/include/video/vga.h
---- linux-2.6.14/include/video/vga.h 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/include/video/vga.h 2005-07-30 18:52:54.000000000 +0000
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/include/video/vga.h linux-2.6-2.6.14+2.6.15-rc7/include/video/vga.h
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/include/video/vga.h 2005-10-28 00:02:08.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/include/video/vga.h 2005-12-29 09:27:45.000000000 +0000
@@ -28,6 +28,7 @@
* Ugh, we don't have PCI space, so map readb() and friends to use Zorro space
* for MMIO accesses. This should make cirrusfb work again on Amiga
@@ -3318,9 +3318,9 @@
#define writew z_writew
#endif
#include <asm/byteorder.h>
-diff -Nur -x.gitignore -xCVS linux-2.6.14/sound/oss/dmasound/dmasound_paula.c linux-apus-2.6/sound/oss/dmasound/dmasound_paula.c
---- linux-2.6.14/sound/oss/dmasound/dmasound_paula.c 2005-10-28 00:02:08.000000000 +0000
-+++ linux-apus-2.6/sound/oss/dmasound/dmasound_paula.c 2005-09-24 21:15:20.000000000 +0000
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/sound/oss/dmasound/dmasound_paula.c linux-2.6-2.6.14+2.6.15-rc7/sound/oss/dmasound/dmasound_paula.c
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/sound/oss/dmasound/dmasound_paula.c 2005-12-25 12:11:33.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/sound/oss/dmasound/dmasound_paula.c 2005-12-29 09:27:45.000000000 +0000
@@ -244,6 +244,7 @@
u_char frame[], ssize_t *frameUsed, \
ssize_t frameLeft) \
@@ -3353,21 +3353,57 @@
return -EFAULT; \
data = convsample(data); \
*righth++ = data>>8; \
-diff -Nur -x.gitignore -xCVS linux-2.6.14/drivers/video/console/fonts.c linux-apus-2.6/drivers/video/console/fonts.c
---- linux-2.6.14/drivers/video/console/fonts.c 2005-11-24 11:38:51.000000000 +0000
-+++ linux-apus-2.6/drivers/video/console/fonts.c 2005-11-24 11:40:02.000000000 +0000
-@@ -118,7 +118,13 @@
- for(i=0; i<num_fonts; i++) {
- f = fonts[i];
- c = f->pref;
--#if defined(__mc68000__) || defined(CONFIG_APUS)
-+#if defined(CONFIG_APUS)
-+#ifdef CONFIG_FONT_PEARL_8x8
-+ if (f->idx == PEARL8x8_IDX)
-+ c = 100;
-+#endif
-+#endif
-+#if defined(__mc68000__)
- #ifdef CONFIG_FONT_PEARL_8x8
- if (MACH_IS_AMIGA && f->idx == PEARL8x8_IDX)
- c = 100;
+diff -Nur linux-2.6-2.6.14+2.6.15-rc7.orig/sven linux-2.6-2.6.14+2.6.15-rc7/sven
+--- linux-2.6-2.6.14+2.6.15-rc7.orig/sven 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/sven 2005-12-29 09:31:10.000000000 +0000
+@@ -0,0 +1,50 @@
++patching file arch/ppc/Kconfig
++patching file arch/ppc/amiga/Makefile
++patching file arch/ppc/amiga/amiints.c
++patching file arch/ppc/amiga/bootinfo.c
++patching file arch/ppc/amiga/cia.c
++patching file arch/ppc/amiga/config.c
++patching file arch/ppc/amiga/time.c
++patching file arch/ppc/configs/apus_defconfig
++patching file arch/ppc/kernel/Makefile
++Hunk #1 succeeded at 353 with fuzz 2.
++Hunk #4 succeeded at 1231 (offset -6 lines).
++Hunk #5 succeeded at 1248 (offset -6 lines).
++Hunk #6 succeeded at 1444 (offset -6 lines).
++patching file arch/ppc/kernel/head_end.S
++patching file arch/ppc/kernel/misc.S
++Hunk #1 succeeded at 1325 (offset -52 lines).
++patching file arch/ppc/kernel/ppc_ksyms.c
++Hunk #2 succeeded at 144 (offset 4 lines).
++patching file arch/ppc/kernel/setup.c
++Hunk #1 succeeded at 566 (offset 20 lines).
++Hunk #2 succeeded at 625 (offset 32 lines).
++patching file arch/ppc/kernel/time.c
++Hunk #1 succeeded at 156 (offset 4 lines).
++Hunk #2 succeeded at 183 (offset 4 lines).
++patching file arch/ppc/mm/Makefile
++patching file arch/ppc/mm/init.c
++patching file arch/ppc/mm/pgtable.c
++Hunk #2 succeeded at 427 (offset -2 lines).
++patching file arch/ppc/platforms/apus_setup.c
++patching file drivers/block/amiflop.c
++patching file include/asm-m68k/bootinfo.h
++patching file include/asm-ppc/amigahw.h
++patching file include/asm-ppc/bootinfo.h
++patching file include/asm-powerpc/current.h
++Hunk #1 FAILED at 1.
++1 out of 1 hunk FAILED -- saving rejects to file include/asm-powerpc/current.h.rej
++patching file include/asm-ppc/io.h
++Hunk #2 succeeded at 297 (offset 3 lines).
++Hunk #3 succeeded at 380 (offset 3 lines).
++Hunk #4 succeeded at 402 (offset 3 lines).
++Hunk #5 succeeded at 420 (offset 3 lines).
++Hunk #6 succeeded at 530 (offset -7 lines).
++Hunk #7 succeeded at 563 (offset 10 lines).
++patching file include/asm-ppc/machdep.h
++patching file include/asm-ppc/pgtable.h
++Hunk #1 succeeded at 724 (offset 1 line).
++patching file include/asm-ppc/zorro.h
++patching file include/video/vga.h
++patching file sound/oss/dmasound/dmasound_paula.c
++patching file drivers/video/console/fonts.c
Modified: people/waldi/linux-2.6/debian/patches-debian/powerpc-build-links.patch
==============================================================================
--- people/waldi/linux-2.6/debian/patches-debian/powerpc-build-links.patch (original)
+++ people/waldi/linux-2.6/debian/patches-debian/powerpc-build-links.patch Mon Jan 2 19:32:22 2006
@@ -10,15 +10,3 @@
# Use the file '.tmp_gas_check' for binutils tests, as gas won't output
# to stdout and these checks are run even on install targets.
-diff -urN ../orig/linux-2.6-2.6.13+2.6.14-rc5/arch/ppc64/Makefile linux-2.6-2.6.13+2.6.14-rc5/arch/ppc64/Makefile
---- ../orig/linux-2.6-2.6.13+2.6.14-rc5/arch/ppc64/Makefile 2005-10-22 18:17:48.000000000 +0000
-+++ linux-2.6-2.6.13+2.6.14-rc5/arch/ppc64/Makefile 2005-10-23 13:28:34.000000000 +0000
-@@ -123,7 +123,7 @@
- include/asm: arch/$(ARCH)/include/asm
- arch/$(ARCH)/include/asm:
- $(Q)if [ ! -d arch/$(ARCH)/include ]; then mkdir -p arch/$(ARCH)/include; fi
-- $(Q)ln -fsn $(srctree)/include/asm-powerpc arch/$(ARCH)/include/asm
-+ $(Q)ln -fsn $(if $(KBUILD_SRC),$(KBUILD_SRC),../../..)/include/asm-powerpc arch/$(ARCH)/include/asm
-
- define archhelp
- echo ' zImage.vmode - Compressed kernel image (arch/$(ARCH)/boot/zImage.vmode)'
Modified: people/waldi/linux-2.6/debian/patches-debian/powerpc-mv643xx-hotplug-support.patch
==============================================================================
--- people/waldi/linux-2.6/debian/patches-debian/powerpc-mv643xx-hotplug-support.patch (original)
+++ people/waldi/linux-2.6/debian/patches-debian/powerpc-mv643xx-hotplug-support.patch Mon Jan 2 19:32:22 2006
@@ -5,31 +5,31 @@
# cleanup in order to not break embedded arches using this controller, but
# should not be a worry for debian.
#
---- linux-2.6.14-rc1/drivers/net/mv643xx_eth.c 2005-09-14 08:15:11.000065096 +0200
-+++ linux-2.6.14-rc1_nico/drivers/net/mv643xx_eth.c 2005-09-15 12:57:50.646269250 +0200
-@@ -1533,6 +1533,9 @@
- printk(KERN_NOTICE "%s: RX NAPI Enabled \n", dev->name);
- #endif
+--- linux/drivers/net/mv643xx_eth.c.orig 2006-01-01 17:22:07.000000000 +0000
++++ linux/drivers/net/mv643xx_eth.c 2006-01-01 17:23:56.000000000 +0000
+@@ -41,6 +41,8 @@
+ #include <linux/ethtool.h>
+ #include <linux/platform_device.h>
-+ if (mp->tx_sram_size > 0)
-+ printk(KERN_NOTICE "%s: Using SRAM\n", dev->name);
++#include <linux/pci.h>
+
- return 0;
-
- out:
-@@ -1640,6 +1643,15 @@
+ #include <asm/io.h>
+ #include <asm/types.h>
+ #include <asm/pgtable.h>
+@@ -1635,6 +1637,15 @@
" and Dale Farnsworth");
MODULE_DESCRIPTION("Ethernet driver for Marvell MV643XX");
-+#include <linux/pci.h>
-+
+static struct pci_device_id pci_marvell_mv64360[] = {
-+ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, PCI_DEVICE_ID_MARVELL_MV64360) },
-+ { }
-+ };
++ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, PCI_DEVICE_ID_MARVELL_MV64360) },
++ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, PCI_DEVICE_ID_MARVELL_MV64460) },
++ { }
++};
+
+MODULE_DEVICE_TABLE(pci, pci_marvell_mv64360);
+
++
/*
* The second part is the low level driver of the gigE ethernet ports.
*/
+
Added: people/waldi/linux-2.6/debian/patches-debian/powerpc-mv643xx-spinlock-fix-support.patch
==============================================================================
--- (empty file)
+++ people/waldi/linux-2.6/debian/patches-debian/powerpc-mv643xx-spinlock-fix-support.patch Mon Jan 2 19:32:22 2006
@@ -0,0 +1,66 @@
+Date: Wed, 28 Dec 2005 15:40:01 -0700
+To: netdev at vger.kernel.org
+Subject: [PATCH 4/4] mv643xx: Don't call request_irq with a held lock
+Message-ID: <20051228224001.GD5742 at xyzzy.farnsworth.org>
+References: <20051228223449.GA5742 at xyzzy.farnsworth.org>
+
+From: Dale Farnsworth <dale at farnsworth.org>
+
+We can't call request_irq() while holding a spin lock.
+
+Signed-off-by: Dale Farnsworth <dale at farnsworth.org>
+
+Index: linux-2.6-mv643xx_enet/drivers/net/mv643xx_eth.c
+===================================================================
+--- linux-2.6-mv643xx_enet.orig/drivers/net/mv643xx_eth.c
++++ linux-2.6-mv643xx_enet/drivers/net/mv643xx_eth.c
+@@ -655,34 +655,24 @@ static int mv643xx_eth_open(struct net_d
+ unsigned int port_num = mp->port_num;
+ int err;
+
+- spin_lock_irq(&mp->lock);
+-
+ err = request_irq(dev->irq, mv643xx_eth_int_handler,
+ SA_SHIRQ | SA_SAMPLE_RANDOM, dev->name, dev);
+-
+ if (err) {
+ printk(KERN_ERR "Can not assign IRQ number to MV643XX_eth%d\n",
+ port_num);
+- err = -EAGAIN;
+- goto out;
++ return -EAGAIN;
+ }
+
++ spin_lock_irq(&mp->lock);
++
+ if (mv643xx_eth_real_open(dev)) {
+ printk("%s: Error opening interface\n", dev->name);
++ free_irq(dev->irq, dev);
+ err = -EBUSY;
+- goto out_free;
+ }
+
+ spin_unlock_irq(&mp->lock);
+
+- return 0;
+-
+-out_free:
+- free_irq(dev->irq, dev);
+-
+-out:
+- spin_unlock_irq(&mp->lock);
+-
+ return err;
+ }
+
+
+_______________________________________________
+Linuxppc-dev mailing list
+Linuxppc-dev at ozlabs.org
+https://ozlabs.org/mailman/listinfo/linuxppc-dev
+---------------------------------------------------------------------------------------
+Wanadoo vous informe que cet e-mail a ete controle par l'anti-virus mail.
+Aucun virus connu a ce jour par nos services n'a ete detecte.
+
+
+
Added: people/waldi/linux-2.6/debian/patches-debian/powerpc-prep-utah-ide-interrupt.patch
==============================================================================
--- (empty file)
+++ people/waldi/linux-2.6/debian/patches-debian/powerpc-prep-utah-ide-interrupt.patch Mon Jan 2 19:32:22 2006
@@ -0,0 +1,16 @@
+#
+# Description: Reenables IDE interrupt on Motorola Powerstack II (Utah)
+# Patch author: Sven Luther <luther at debian.org>
+# Closes: #345424: linux-source-2.6.14: Missing IDE IRQ for PReP Utah (PowerstackII Pro4000)
+#
+--- linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/platforms/prep_pci.c.orig 2005-12-31 14:51:16.000000000 +0000
++++ linux-2.6-2.6.14+2.6.15-rc7/arch/ppc/platforms/prep_pci.c 2005-12-31 14:58:23.000000000 +0000
+@@ -46,7 +46,7 @@
+ static char Utah_pci_IRQ_map[23] =
+ {
+ 0, /* Slot 0 - unused */
+- 0, /* Slot 1 - unused */
++ 4, /* Slot 1 - IDE - SL82C105 */
+ 5, /* Slot 2 - SCSI - NCR825A */
+ 0, /* Slot 3 - unused */
+ 3, /* Slot 4 - Ethernet - DEC2114x */
Added: people/waldi/linux-2.6/debian/patches-debian/series/2.6.14+2.6.15-rc7-0experimental.1
==============================================================================
--- (empty file)
+++ people/waldi/linux-2.6/debian/patches-debian/series/2.6.14+2.6.15-rc7-0experimental.1 Mon Jan 2 19:32:22 2006
@@ -0,0 +1,22 @@
++ fbdev-radeon-noaccel.patch
++ fs-asfs-2.patch
++ ia64-irq-affinity-upfix.patch
++ modular-ide-pnp.patch
++ powerpc-mkvmlinuz-support.patch
++ powerpc-serial.patch
+#+ remove-references-to-removed-drivers.patch
++ sparc64-hme-lockup.patch
+#+ tty-locking-fixes9.patch
++ version.patch
++ powerpc-apus.patch
+#+ s390-uaccess-const.patch
++ powerpc-build-links.patch
++ m68k-bvme.patch
++ m68k-mvme147.patch
++ m68k-mvme16x.patch
++ m68k-spinlock.patch
++ sparc64-atyfb-xl-gr-final.patch
++ powerpc-arch-default-powerpc.patch
++ drivers-scsi-megaraid_splitup.patch
++ powerpc-mv643xx-spinlock-fix-support.patch
++ powerpc-prep-utah-ide-interrupt.patch
Added: people/waldi/linux-2.6/debian/patches-debian/series/2.6.14+2.6.15-rc7-0experimental.2
==============================================================================
--- (empty file)
+++ people/waldi/linux-2.6/debian/patches-debian/series/2.6.14+2.6.15-rc7-0experimental.2 Mon Jan 2 19:32:22 2006
@@ -0,0 +1,2 @@
++ powerpc-mv643xx-hotplug-support.patch
+
Added: people/waldi/linux-2.6/debian/patches-debian/sparc64-atyfb-xl-gr-final.patch
==============================================================================
--- (empty file)
+++ people/waldi/linux-2.6/debian/patches-debian/sparc64-atyfb-xl-gr-final.patch Mon Jan 2 19:32:22 2006
@@ -0,0 +1,12 @@
+diff -aur a/drivers/video/aty/atyfb_base.c b/drivers/video/aty/atyfb_base.c
+--- a/drivers/video/aty/atyfb_base.c 2005-10-27 17:02:08.000000000 -0700
++++ b/drivers/video/aty/atyfb_base.c 2005-11-09 19:56:18.000000000 -0800
+@@ -404,7 +404,7 @@
+ { PCI_CHIP_MACH64GM, "3D RAGE XL (Mach64 GM, AGP)", 230, 83, 63, ATI_CHIP_264XL },
+ { PCI_CHIP_MACH64GN, "3D RAGE XL (Mach64 GN, AGP)", 230, 83, 63, ATI_CHIP_264XL },
+ { PCI_CHIP_MACH64GO, "3D RAGE XL (Mach64 GO, PCI-66/BGA)", 230, 83, 63, ATI_CHIP_264XL },
+- { PCI_CHIP_MACH64GR, "3D RAGE XL (Mach64 GR, PCI-33MHz)", 230, 83, 63, ATI_CHIP_264XL },
++ { PCI_CHIP_MACH64GR, "3D RAGE XL (Mach64 GR, PCI-33MHz)", 235, 83, 63, ATI_CHIP_264XL | M64F_SDRAM_MAGIC_PLL },
+ { PCI_CHIP_MACH64GL, "3D RAGE XL (Mach64 GL, PCI)", 230, 83, 63, ATI_CHIP_264XL },
+ { PCI_CHIP_MACH64GS, "3D RAGE XL (Mach64 GS, PCI)", 230, 83, 63, ATI_CHIP_264XL },
+
Modified: people/waldi/linux-2.6/debian/rules.real
==============================================================================
--- people/waldi/linux-2.6/debian/rules.real (original)
+++ people/waldi/linux-2.6/debian/rules.real Mon Jan 2 19:32:22 2006
@@ -85,14 +85,7 @@
endif
$(BUILD_DIR)/config.$(ARCH)-$(SUBARCH)-$(FLAVOUR): $(basedir)/config.$(FLAVOUR) $(config_common)
@echo "Generating configuration file $@:"
- rm -f '$@'
- for i in $(config_common); do \
- if [ -f "$${i}" ]; then \
- cat "$${i}" >> '$@'; \
- fi; \
- done
-# Flavour config file must be present
- cat '$(basedir)/config.$(FLAVOUR)' >> '$@'
+ ocaml debian/bin/kconfig.ml -ba -b "$(basedir)" -a "$(ARCH)" -s "$(SUBARCH)" -f "$(FLAVOUR)" > '$@'
$(BUILD_DIR)/linux-source-$(UPSTREAM_VERSION).tar.bz2: SOURCE_DIR=$(BUILD_DIR)/source
$(BUILD_DIR)/linux-source-$(UPSTREAM_VERSION).tar.bz2: DIR = $(BUILD_DIR)/linux-source-$(UPSTREAM_VERSION)
Modified: people/waldi/linux-2.6/debian/templates/control.extra.in
==============================================================================
--- people/waldi/linux-2.6/debian/templates/control.extra.in (original)
+++ people/waldi/linux-2.6/debian/templates/control.extra.in Mon Jan 2 19:32:22 2006
@@ -16,13 +16,13 @@
Description: Linux kernel 2.6 image on Alpha SMP machines - transition package
This package is for transition only.
-Package: kernel-image-2.6-386
+Package: kernel-image-2.6-486
X-Version-Overwrite-Epoch: 1
Architecture: i386
Section: base
Priority: extra
-Depends: linux-image-2.6-386
-Description: Linux kernel 2.6.12 image on 386-class machines - transition package
+Depends: linux-image-2.6-486
+Description: Linux kernel 2.6 image on 486-class machines - transition package
This package is for transition only.
Package: kernel-image-2.6-686
Modified: people/waldi/linux-2.6/debian/templates/control.source.in
==============================================================================
--- people/waldi/linux-2.6/debian/templates/control.source.in (original)
+++ people/waldi/linux-2.6/debian/templates/control.source.in Mon Jan 2 19:32:22 2006
@@ -2,7 +2,7 @@
Section: devel
Priority: optional
Maintainer: Debian Kernel Team <debian-kernel at lists.debian.org>
-Uploaders: Andres Salomon <dilinger at debian.org>, Bastian Blank <waldi at debian.org>, Simon Horman <horms at debian.org>, Sven Luther <luther at debian.org>, Jonas Smedegaard <dr at jones.dk>, Norbert Tretkowski <nobse at debian.org>
+Uploaders: Andres Salomon <dilinger at debian.org>, Bastian Blank <waldi at debian.org>, Simon Horman <horms at debian.org>, Sven Luther <luther at debian.org>, Jonas Smedegaard <dr at jones.dk>, Norbert Tretkowski <nobse at debian.org>, Frederik Schüler <fs at debian.org>
Standards-Version: 3.6.1.0
-Build-Depends: gcc (>= 4:4.0) [!m68k], gcc-3.3 [m68k], binutils-hppa64 [hppa], gcc-4.0-hppa64 [hppa], debhelper (>= 4.1.0), module-init-tools, dpkg-dev (>= 1.10.23), debianutils (>= 1.6), bzip2, sparc-utils [sparc], kernel-package (>= 9.008.3)
+Build-Depends: gcc (>= 4:4.0) [!m68k], gcc-3.3 [m68k], binutils-hppa64 [hppa], gcc-4.0-hppa64 [hppa], debhelper (>= 4.1.0), module-init-tools, dpkg-dev (>= 1.10.23), debianutils (>= 1.6), bzip2, sparc-utils [sparc], kernel-package (>= 10.029), ocaml-interp
Build-Depends-Indep: docbook-utils, gs, transfig, xmlto, dh-kpatches (>= 0.99.3)
More information about the Kernel-svn-changes
mailing list