[kernel] r4733 - 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/lib/python debian/patches-arch debian/patches-debian debian/patches-debian/series debian/templates

Bastian Blank waldi at costa.debian.org
Sun Nov 6 16:20:55 UTC 2005


Author: waldi
Date: 2005-11-06 16:19:16 +0000 (Sun, 06 Nov 2005)
New Revision: 4733

Added:
   people/waldi/linux-2.6/debian/bin/install-header
   people/waldi/linux-2.6/debian/bin/install-image
   people/waldi/linux-2.6/debian/patches-debian/TODO
   people/waldi/linux-2.6/debian/patches-debian/alpha-compile-fix.patch
   people/waldi/linux-2.6/debian/patches-debian/m68k-arch.patch
   people/waldi/linux-2.6/debian/patches-debian/m68k-drivers.patch
   people/waldi/linux-2.6/debian/patches-debian/m68k-include-m68k.patch
   people/waldi/linux-2.6/debian/patches-debian/m68k-kernel.patch
   people/waldi/linux-2.6/debian/patches-debian/net-ipconntrack-nat-fix.patch
   people/waldi/linux-2.6/debian/patches-debian/powerpc-build-links.patch
   people/waldi/linux-2.6/debian/patches-debian/powerpc64-audit_sysctl-build.patch
   people/waldi/linux-2.6/debian/patches-debian/s390-uaccess-const.patch
   people/waldi/linux-2.6/debian/patches-debian/series/2.6.14-1
   people/waldi/linux-2.6/debian/patches-debian/series/2.6.14-2
   people/waldi/linux-2.6/debian/patches-debian/series/2.6.14-3
Removed:
   people/waldi/linux-2.6/debian/bin/prune-non-free
   people/waldi/linux-2.6/debian/bin/split.py
   people/waldi/linux-2.6/debian/patches-debian/amd64-tlb-flush-sigsegv-fix.patch
   people/waldi/linux-2.6/debian/patches-debian/m68k-sonic.patch
   people/waldi/linux-2.6/debian/patches-debian/patch-2.6.13.1
   people/waldi/linux-2.6/debian/patches-debian/patch-2.6.13.2
   people/waldi/linux-2.6/debian/patches-debian/powerpc-fix-power3-ftbfs.patch
   people/waldi/linux-2.6/debian/patches-debian/powerpc-pmac-cache-power34-fix.patch
   people/waldi/linux-2.6/debian/patches-debian/powerpc-pmac-sound-check.patch
   people/waldi/linux-2.6/debian/patches-debian/powerpc-ppc64-biarch-override.patch
   people/waldi/linux-2.6/debian/patches-debian/series/2.6.13-1
   people/waldi/linux-2.6/debian/templates/header-install.in
   people/waldi/linux-2.6/debian/templates/post-install.in
Modified:
   people/waldi/linux-2.6/
   people/waldi/linux-2.6/debian/arch/alpha/config
   people/waldi/linux-2.6/debian/arch/alpha/config.alpha-smp
   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/amd64/config.amd64-generic
   people/waldi/linux-2.6/debian/arch/amd64/config.amd64-k8
   people/waldi/linux-2.6/debian/arch/amd64/config.amd64-k8-smp
   people/waldi/linux-2.6/debian/arch/amd64/config.em64t-p4
   people/waldi/linux-2.6/debian/arch/amd64/config.em64t-p4-smp
   people/waldi/linux-2.6/debian/arch/amd64/defines
   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/Makefile.inc
   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/defines
   people/waldi/linux-2.6/debian/arch/ia64/config
   people/waldi/linux-2.6/debian/arch/ia64/config.itanium
   people/waldi/linux-2.6/debian/arch/ia64/config.mckinley
   people/waldi/linux-2.6/debian/arch/ia64/defines
   people/waldi/linux-2.6/debian/arch/m68k/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.bvme6000
   people/waldi/linux-2.6/debian/arch/m68k/config.hp
   people/waldi/linux-2.6/debian/arch/m68k/config.mac
   people/waldi/linux-2.6/debian/arch/m68k/config.mvme147
   people/waldi/linux-2.6/debian/arch/m68k/config.mvme16x
   people/waldi/linux-2.6/debian/arch/m68k/config.q40
   people/waldi/linux-2.6/debian/arch/m68k/config.sun3
   people/waldi/linux-2.6/debian/arch/m68k/defines
   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/defines
   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/arch/sparc/defines
   people/waldi/linux-2.6/debian/bin/apply
   people/waldi/linux-2.6/debian/bin/gencontrol.py
   people/waldi/linux-2.6/debian/bin/unpatch
   people/waldi/linux-2.6/debian/changelog
   people/waldi/linux-2.6/debian/lib/python/debian_linux.py
   people/waldi/linux-2.6/debian/patches-arch/hppa.diff
   people/waldi/linux-2.6/debian/patches-arch/m68k.diff
   people/waldi/linux-2.6/debian/patches-debian/ia64-irq-affinity-upfix.patch
   people/waldi/linux-2.6/debian/patches-debian/powerpc-g3-750cxe.patch
   people/waldi/linux-2.6/debian/patches-debian/powerpc-mkvmlinuz-support.patch
   people/waldi/linux-2.6/debian/patches-debian/qla2xxx-removed.patch
   people/waldi/linux-2.6/debian/rules
   people/waldi/linux-2.6/debian/rules.real
   people/waldi/linux-2.6/debian/templates/control.image.in
   people/waldi/linux-2.6/debian/templates/control.main.in
   people/waldi/linux-2.6/debian/templates/control.source.in
Log:
Merge /dists/trunk/linux-2.6.



Property changes on: people/waldi/linux-2.6
___________________________________________________________________
Name: svn:ignore
   - arch
COPYING
CREDITS
crypto
Documentation
drivers
fs
include
init
ipc
kernel
lib
MAINTAINERS
Makefile
mm
net
README
REPORTING-BUGS
scripts
security
sound
usr

   + arch
COPYING
CREDITS
crypto
Documentation
drivers
fs
include
init
ipc
Kbuild
kernel
lib
MAINTAINERS
Makefile
mm
net
README
REPORTING-BUGS
scripts
security
sound
usr

Name: svk:merge
   - 510b9475-24dd-0310-9b6c-e0eefe99d49f:/dists/trunk/linux-2.6:4302
   + 510b9475-24dd-0310-9b6c-e0eefe99d49f:/dists/trunk/linux-2.6:4732

Modified: people/waldi/linux-2.6/debian/arch/alpha/config
===================================================================
--- people/waldi/linux-2.6/debian/arch/alpha/config	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/alpha/config	2005-11-06 16:19:16 UTC (rev 4733)
@@ -67,14 +67,12 @@
 CONFIG_I82092=m
 CONFIG_I82365=m
 CONFIG_TCIC=m
-CONFIG_PCMCIA_PROBE=y
 CONFIG_PCCARD_NONSTATIC=m
 CONFIG_SRM_ENV=m
 CONFIG_BINFMT_AOUT=m
 CONFIG_OSF4_COMPAT=y
 CONFIG_BINFMT_EM86=m
 CONFIG_STANDALONE=y
-CONFIG_FW_LOADER=m
 # CONFIG_DEBUG_DRIVER is not set
 CONFIG_MTD=m
 # CONFIG_MTD_DEBUG is not set
@@ -210,7 +208,6 @@
 CONFIG_BLK_DEV_IDECD=m
 CONFIG_BLK_DEV_IDETAPE=m
 CONFIG_BLK_DEV_IDEFLOPPY=m
-CONFIG_BLK_DEV_IDESCSI=m
 CONFIG_IDE_TASK_IOCTL=y
 CONFIG_IDE_GENERIC=m
 # CONFIG_BLK_DEV_IDEPNP is not set
@@ -329,9 +326,6 @@
 CONFIG_MD_RAID6=m
 CONFIG_MD_FAULTY=m
 CONFIG_DM_MULTIPATH_EMC=m
-CONFIG_FUSION=m
-CONFIG_FUSION_MAX_SGE=40
-CONFIG_FUSION_CTL=m
 CONFIG_FUSION_LAN=m
 CONFIG_IEEE1394=m
 # CONFIG_IEEE1394_VERBOSEDEBUG is not set
@@ -607,7 +601,6 @@
 CONFIG_ARCNET_COM20020=m
 CONFIG_ARCNET_COM20020_ISA=m
 CONFIG_ARCNET_COM20020_PCI=m
-CONFIG_MII=m
 CONFIG_HAPPYMEAL=m
 CONFIG_SUNGEM=m
 CONFIG_NET_VENDOR_3COM=y
@@ -684,7 +677,6 @@
 # CONFIG_SUNDANCE_MMIO is not set
 CONFIG_VIA_RHINE=m
 # CONFIG_VIA_RHINE_MMIO is not set
-CONFIG_NET_POCKET=y
 CONFIG_DE600=m
 CONFIG_DE620=m
 CONFIG_DL2K=m
@@ -720,7 +712,6 @@
 CONFIG_PCMCIA_WAVELAN=m
 CONFIG_PCMCIA_NETWAVE=m
 CONFIG_PCMCIA_RAYCS=m
-CONFIG_AIRO=m
 CONFIG_HERMES=m
 CONFIG_PLX_HERMES=m
 CONFIG_TMD_HERMES=m
@@ -1226,10 +1217,7 @@
 CONFIG_VIDEO_IR=m
 CONFIG_VIDEO_TVEEPROM=m
 CONFIG_FB=y
-CONFIG_FB_CFB_FILLRECT=m
-CONFIG_FB_CFB_COPYAREA=m
 CONFIG_FB_CFB_IMAGEBLIT=m
-CONFIG_FB_SOFT_CURSOR=m
 # CONFIG_FB_MACMODES is not set
 CONFIG_FB_MODE_HELPERS=y
 CONFIG_FB_TILEBLITTING=y
@@ -1242,7 +1230,7 @@
 CONFIG_FB_TGA=m
 CONFIG_FB_NVIDIA=m
 # CONFIG_FB_NVIDIA_I2C is not set
-CONFIG_FB_RIVA=m
+# CONFIG_FB_RIVA is not set
 # CONFIG_FB_RIVA_I2C is not set
 # CONFIG_FB_RIVA_DEBUG is not set
 CONFIG_FB_MATROX=m
@@ -1294,7 +1282,6 @@
 CONFIG_SND_TIMER=m
 CONFIG_SND_PCM=m
 CONFIG_SND_HWDEP=m
-CONFIG_SND_RAWMIDI=m
 CONFIG_SND_SEQUENCER=m
 CONFIG_SND_SEQ_DUMMY=m
 CONFIG_SND_OSSEMUL=y
@@ -1564,7 +1551,6 @@
 CONFIG_USB_SERIAL_OPTION=m
 CONFIG_USB_SERIAL_OMNINET=m
 CONFIG_USB_EZUSB=y
-# CONFIG_USB_EMI26 is not set
 CONFIG_USB_AUERSWALD=m
 CONFIG_USB_RIO500=m
 CONFIG_USB_LEGOTOWER=m
@@ -1711,3 +1697,6 @@
 CONFIG_ALPHA_LEGACY_START_ADDRESS=y
 CONFIG_CRC_CCITT=m
 CONFIG_CRC32=m
+# CONFIG_MTD_OTP is not set
+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
+CONFIG_JFFS2_FS_WRITEBUFFER=y

Modified: people/waldi/linux-2.6/debian/arch/alpha/config.alpha-smp
===================================================================
--- people/waldi/linux-2.6/debian/arch/alpha/config.alpha-smp	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/alpha/config.alpha-smp	2005-11-06 16:19:16 UTC (rev 4733)
@@ -6,3 +6,5 @@
 CONFIG_NR_CPUS=64
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
 CONFIG_MATHEMU=y
+CONFIG_MKISS=m
+# CONFIG_DIGIEPCA is not set

Modified: people/waldi/linux-2.6/debian/arch/alpha/defines
===================================================================
--- people/waldi/linux-2.6/debian/arch/alpha/defines	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/alpha/defines	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,8 +1,10 @@
 [base]
-compiler: gcc-3.3
 flavours: alpha-generic alpha-smp
 suggests: aboot, fdutils
 
+kernel-arch: alpha
+kernel-header-dirs: alpha
+
 [alpha-generic]
 class = Alpha
 

Modified: people/waldi/linux-2.6/debian/arch/amd64/config
===================================================================
--- people/waldi/linux-2.6/debian/arch/amd64/config	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/amd64/config	2005-11-06 16:19:16 UTC (rev 4733)
@@ -110,7 +110,6 @@
 CONFIG_SYSVIPC_COMPAT=y
 CONFIG_UID16=y
 CONFIG_STANDALONE=y
-CONFIG_FW_LOADER=m
 # CONFIG_DEBUG_DRIVER is not set
 CONFIG_MTD=m
 # CONFIG_MTD_DEBUG is not set
@@ -256,12 +255,10 @@
 CONFIG_BLK_DEV_IDECD=m
 CONFIG_BLK_DEV_IDETAPE=m
 CONFIG_BLK_DEV_IDEFLOPPY=m
-CONFIG_BLK_DEV_IDESCSI=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
-CONFIG_BLK_DEV_IDEPNP=m
 CONFIG_BLK_DEV_IDEPCI=y
 CONFIG_IDEPCI_SHARE_IRQ=y
 # CONFIG_BLK_DEV_OFFBOARD is not set
@@ -348,8 +345,6 @@
 CONFIG_MD_RAID6=m
 CONFIG_MD_FAULTY=m
 CONFIG_DM_MULTIPATH_EMC=m
-CONFIG_FUSION_MAX_SGE=40
-CONFIG_FUSION_CTL=m
 CONFIG_FUSION_LAN=m
 CONFIG_IEEE1394=m
 # CONFIG_IEEE1394_VERBOSEDEBUG is not set
@@ -631,7 +626,6 @@
 CONFIG_ARCNET_RIM_I=m
 CONFIG_ARCNET_COM20020=m
 CONFIG_ARCNET_COM20020_PCI=m
-CONFIG_MII=m
 CONFIG_HAPPYMEAL=m
 CONFIG_SUNGEM=m
 CONFIG_NET_VENDOR_3COM=y
@@ -1006,7 +1000,7 @@
 CONFIG_USBPCWATCHDOG=m
 CONFIG_HW_RANDOM=m
 CONFIG_NVRAM=m
-CONFIG_RTC=m
+CONFIG_RTC=y
 CONFIG_GEN_RTC=m
 CONFIG_GEN_RTC_X=y
 CONFIG_DTLK=m
@@ -1192,10 +1186,6 @@
 CONFIG_VIDEO_IR=m
 CONFIG_VIDEO_TVEEPROM=m
 CONFIG_FB=y
-CONFIG_FB_CFB_FILLRECT=m
-CONFIG_FB_CFB_COPYAREA=m
-CONFIG_FB_CFB_IMAGEBLIT=m
-CONFIG_FB_SOFT_CURSOR=m
 # CONFIG_FB_MACMODES is not set
 CONFIG_FB_MODE_HELPERS=y
 CONFIG_FB_TILEBLITTING=y
@@ -1206,14 +1196,13 @@
 # CONFIG_FB_ASILIANT is not set
 # CONFIG_FB_IMSTT is not set
 CONFIG_FB_VGA16=m
-CONFIG_VIDEO_SELECT=y
 CONFIG_FB_HGA=m
 # CONFIG_FB_HGA_ACCEL is not set
 CONFIG_FB_NVIDIA=m
 # CONFIG_FB_NVIDIA_I2C is not set
-CONFIG_FB_RIVA=m
-CONFIG_FB_RIVA_I2C=y
-CONFIG_FB_RIVA_DEBUG=y
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_RIVA_I2C is not set
+# CONFIG_FB_RIVA_DEBUG is not set
 CONFIG_FB_MATROX=m
 CONFIG_FB_MATROX_MILLENIUM=y
 CONFIG_FB_MATROX_MYSTIQUE=y
@@ -1247,7 +1236,7 @@
 CONFIG_FB_VIRTUAL=m
 CONFIG_VGA_CONSOLE=y
 CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=m
+CONFIG_FRAMEBUFFER_CONSOLE=y
 # CONFIG_FONTS is not set
 CONFIG_FONT_8x8=y
 CONFIG_FONT_8x16=y
@@ -1258,7 +1247,6 @@
 CONFIG_SND_TIMER=m
 CONFIG_SND_PCM=m
 CONFIG_SND_HWDEP=m
-CONFIG_SND_RAWMIDI=m
 CONFIG_SND_SEQUENCER=m
 CONFIG_SND_SEQ_DUMMY=m
 CONFIG_SND_OSSEMUL=y
@@ -1396,7 +1384,6 @@
 CONFIG_USB_DEVICEFS=y
 CONFIG_USB_BANDWIDTH=y
 # CONFIG_USB_DYNAMIC_MINORS is not set
-# CONFIG_USB_SUSPEND is not set
 # CONFIG_USB_OTG is not set
 CONFIG_USB_EHCI_HCD=m
 CONFIG_USB_EHCI_SPLIT_ISO=y
@@ -1644,19 +1631,26 @@
 CONFIG_REED_SOLOMON_DEC16=y
 CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y
 CONFIG_PHYSICAL_START=0x100000
-CONFIG_SELECT_MEMORY_MODEL=y
-# CONFIG_KEXEC is not set
+CONFIG_KEXEC=y
 CONFIG_CRYPTO_AES_X86_64=m
 # CONFIG_HZ_250 is not set
-CONFIG_I2O_EXT_ADAPTEC_DMA64=y
 # CONFIG_HZ_100 is not set
 CONFIG_ACPI_HOTKEY=m
-CONFIG_SCSI_QLA2XXX=m
 # CONFIG_ACPI_SLEEP_PROC_SLEEP is not set
 CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_EXT2_FS_XIP is not set
 CONFIG_HZ_1000=y
 CONFIG_HZ=1000
-# CONFIG_I2O_CONFIG_OLD_IOCTL is not set
-CONFIG_FUSION=y
-# CONFIG_FB_VESA is not set
+CONFIG_FB_VESA=y
+CONFIG_HPET_EMULATE_RTC=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+CONFIG_ATP=m
+CONFIG_DE620=m
+# CONFIG_FRAME_POINTER is not set
+CONFIG_DE600=m
+CONFIG_DCDBAS=m
+CONFIG_SENSORS_HDAPS=m
+CONFIG_IBMASR=m
+CONFIG_SBC8360_WDT=m
+CONFIG_W83977F_WDT=m
+CONFIG_I6300ESB_WDT=m
+CONFIG_USB_SUSPEND=y

Modified: people/waldi/linux-2.6/debian/arch/amd64/config.amd64-generic
===================================================================
--- people/waldi/linux-2.6/debian/arch/amd64/config.amd64-generic	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/amd64/config.amd64-generic	2005-11-06 16:19:16 UTC (rev 4733)
@@ -48,8 +48,3 @@
 CONFIG_FS_MBCACHE=y
 # CONFIG_CHECKING is not set
 CONFIG_ARCH_FLATMEM_ENABLE=y
-CONFIG_FLATMEM_MANUAL=y
-# CONFIG_SPARSEMEM_MANUAL is not set
-CONFIG_FLAT_NODE_MEM_MAP=y
-CONFIG_FLATMEM=y
-# CONFIG_DISCONTIGMEM_MANUAL is not set

Modified: people/waldi/linux-2.6/debian/arch/amd64/config.amd64-k8
===================================================================
--- people/waldi/linux-2.6/debian/arch/amd64/config.amd64-k8	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/amd64/config.amd64-k8	2005-11-06 16:19:16 UTC (rev 4733)
@@ -48,8 +48,3 @@
 CONFIG_FS_MBCACHE=m
 # CONFIG_CHECKING is not set
 CONFIG_ARCH_FLATMEM_ENABLE=y
-CONFIG_FLATMEM_MANUAL=y
-# CONFIG_SPARSEMEM_MANUAL is not set
-CONFIG_FLAT_NODE_MEM_MAP=y
-CONFIG_FLATMEM=y
-# CONFIG_DISCONTIGMEM_MANUAL is not set

Modified: people/waldi/linux-2.6/debian/arch/amd64/config.amd64-k8-smp
===================================================================
--- people/waldi/linux-2.6/debian/arch/amd64/config.amd64-k8-smp	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/amd64/config.amd64-k8-smp	2005-11-06 16:19:16 UTC (rev 4733)
@@ -22,12 +22,16 @@
 # CONFIG_SOUND_AWE32_SYNTH is not set
 CONFIG_EXT2_FS=m
 CONFIG_FS_MBCACHE=m
+CONFIG_NEED_MULTIPLE_NODES=y
+CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+# CONFIG_HOTPLUG_CPU is not set
+CONFIG_SPARSEMEM=y
 CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y
+CONFIG_HAVE_MEMORY_PRESENT=y
+CONFIG_DIGIEPCA=m
+CONFIG_MKISS=m
 # CONFIG_FLATMEM_MANUAL is not set
-CONFIG_NEED_MULTIPLE_NODES=y
-CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
+CONFIG_SPARSEMEM_EXTREME=y
 # CONFIG_SPARSEMEM_MANUAL is not set
-CONFIG_ARCH_SPARSEMEM_ENABLE=y
-CONFIG_FLAT_NODE_MEM_MAP=y
 CONFIG_DISCONTIGMEM_MANUAL=y
-# CONFIG_HOTPLUG_CPU is not set

Modified: people/waldi/linux-2.6/debian/arch/amd64/config.em64t-p4
===================================================================
--- people/waldi/linux-2.6/debian/arch/amd64/config.em64t-p4	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/amd64/config.em64t-p4	2005-11-06 16:19:16 UTC (rev 4733)
@@ -48,8 +48,3 @@
 CONFIG_FS_MBCACHE=m
 # CONFIG_CHECKING is not set
 CONFIG_ARCH_FLATMEM_ENABLE=y
-CONFIG_FLATMEM_MANUAL=y
-# CONFIG_SPARSEMEM_MANUAL is not set
-CONFIG_FLAT_NODE_MEM_MAP=y
-CONFIG_FLATMEM=y
-# CONFIG_DISCONTIGMEM_MANUAL is not set

Modified: people/waldi/linux-2.6/debian/arch/amd64/config.em64t-p4-smp
===================================================================
--- people/waldi/linux-2.6/debian/arch/amd64/config.em64t-p4-smp	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/amd64/config.em64t-p4-smp	2005-11-06 16:19:16 UTC (rev 4733)
@@ -21,9 +21,6 @@
 CONFIG_EXT2_FS=m
 CONFIG_FS_MBCACHE=m
 CONFIG_ARCH_FLATMEM_ENABLE=y
-CONFIG_FLATMEM_MANUAL=y
-# CONFIG_SPARSEMEM_MANUAL is not set
-CONFIG_FLAT_NODE_MEM_MAP=y
-CONFIG_FLATMEM=y
-# CONFIG_DISCONTIGMEM_MANUAL is not set
 # CONFIG_HOTPLUG_CPU is not set
+CONFIG_DIGIEPCA=m
+CONFIG_MKISS=m

Modified: people/waldi/linux-2.6/debian/arch/amd64/defines
===================================================================
--- people/waldi/linux-2.6/debian/arch/amd64/defines	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/amd64/defines	2005-11-06 16:19:16 UTC (rev 4733)
@@ -10,6 +10,8 @@
 
 kernel-arch: x86_64
 
+kernel-header-dirs: x86_64
+
 [amd64-generic]
 class: all x86-64 
 longclass: all 64bit x86-64 compatible

Modified: people/waldi/linux-2.6/debian/arch/arm/config
===================================================================
--- people/waldi/linux-2.6/debian/arch/arm/config	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/arm/config	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,223 +1,19 @@
 CONFIG_ARM=y
-CONFIG_MMU=y
-CONFIG_UID16=y
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_GENERIC_IOMAP=y
-CONFIG_EXPERIMENTAL=y
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_LOCALVERSION=""
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-# CONFIG_POSIX_MQUEUE is not set
-CONFIG_SYSCTL=y
-# CONFIG_HOTPLUG is not set
-CONFIG_KOBJECT_UEVENT=y
-# CONFIG_IKCONFIG is not set
-CONFIG_KALLSYMS=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=y
-CONFIG_SHMEM=y
-CONFIG_CC_ALIGN_FUNCTIONS=0
-CONFIG_CC_ALIGN_LABELS=0
-CONFIG_CC_ALIGN_LOOPS=0
-CONFIG_CC_ALIGN_JUMPS=0
-# CONFIG_TINY_SHMEM is not set
-CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-CONFIG_OBSOLETE_MODPARM=y
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_KMOD=y
-# CONFIG_ARCH_CLPS7500 is not set
-# CONFIG_ARCH_CLPS711X is not set
-# CONFIG_ARCH_CO285 is not set
-# CONFIG_ARCH_EBSA110 is not set
-# CONFIG_ARCH_CAMELOT is not set
-# CONFIG_ARCH_INTEGRATOR is not set
-# CONFIG_ARCH_IOP3XX is not set
-# CONFIG_ARCH_IXP2000 is not set
-# CONFIG_ARCH_L7200 is not set
-# CONFIG_ARCH_PXA is not set
-# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_SHARK is not set
-# CONFIG_ARCH_LH7A40X is not set
-# CONFIG_ARCH_OMAP is not set
-# CONFIG_ARCH_VERSATILE is not set
-# CONFIG_ARCH_IMX is not set
-# CONFIG_ARCH_H720X is not set
-CONFIG_CPU_32=y
-CONFIG_CPU_CACHE_VIVT=y
-# CONFIG_PCCARD is not set
-CONFIG_ALIGNMENT_TRAP=y
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-# CONFIG_XIP_KERNEL is not set
-CONFIG_FPE_NWFPE=y
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_MISC is not set
-# CONFIG_ARTHUR is not set
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-# CONFIG_FW_LOADER is not set
-# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-# CONFIG_CDROM_PKTCDVD is not set
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
-CONFIG_IDE=y
-CONFIG_BLK_DEV_IDE=y
-# CONFIG_BLK_DEV_IDE_SATA is not set
-CONFIG_BLK_DEV_IDEDISK=y
-# CONFIG_IDE_TASK_IOCTL is not set
-CONFIG_IDE_GENERIC=y
-# CONFIG_BLK_DEV_HD is not set
-# CONFIG_MD is not set
-CONFIG_NET=y
-CONFIG_UNIX=y
-# CONFIG_NET_KEY is not set
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-# CONFIG_NET_IPIP is not set
-# CONFIG_ARPD is not set
-# CONFIG_INET_AH is not set
-# CONFIG_INET_ESP is not set
-# CONFIG_INET_IPCOMP is not set
-# CONFIG_IP_TCPDIAG_IPV6 is not set
-# CONFIG_IP_SCTP is not set
-# CONFIG_DECNET is not set
-# CONFIG_LLC2 is not set
-# CONFIG_NET_DIVERT is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-# CONFIG_HAMRADIO is not set
-# CONFIG_BT is not set
-CONFIG_NETDEVICES=y
-# CONFIG_BONDING is not set
-# CONFIG_EQUALIZER is not set
-# CONFIG_TUN is not set
-CONFIG_NET_ETHERNET=y
-# CONFIG_SMC91X is not set
-# CONFIG_SHAPER is not set
-# CONFIG_NETCONSOLE is not set
-# CONFIG_ISDN is not set
-CONFIG_INPUT=y
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_TSDEV is not set
-# CONFIG_INPUT_EVBUG is not set
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TOUCHSCREEN is not set
-# CONFIG_INPUT_MISC is not set
-# CONFIG_GAMEPORT is not set
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-CONFIG_UNIX98_PTYS=y
-CONFIG_LEGACY_PTYS=y
-# CONFIG_IPMI_HANDLER is not set
-# CONFIG_DTLK is not set
-# CONFIG_R3964 is not set
-# CONFIG_DRM is not set
-# CONFIG_RAW_DRIVER is not set
-# CONFIG_I2C_ALGOPCF is not set
-# CONFIG_I2C_ALGOPCA is not set
-# CONFIG_I2C_ISA is not set
-# CONFIG_I2C_PARPORT_LIGHT is not set
-# CONFIG_I2C_STUB is not set
-# CONFIG_I2C_PCA_ISA is not set
-# CONFIG_SENSORS_ADM1021 is not set
-# CONFIG_SENSORS_ADM1025 is not set
-# CONFIG_SENSORS_ADM1026 is not set
-# CONFIG_SENSORS_ADM1031 is not set
-# CONFIG_SENSORS_ASB100 is not set
-# CONFIG_SENSORS_DS1621 is not set
-# CONFIG_SENSORS_FSCHER is not set
-# CONFIG_SENSORS_FSCPOS is not set
-# CONFIG_SENSORS_GL518SM is not set
-# CONFIG_SENSORS_GL520SM is not set
-# CONFIG_SENSORS_IT87 is not set
-# CONFIG_SENSORS_LM63 is not set
-# CONFIG_SENSORS_LM77 is not set
-# CONFIG_SENSORS_LM80 is not set
-# CONFIG_SENSORS_LM83 is not set
-# CONFIG_SENSORS_LM87 is not set
-# CONFIG_SENSORS_LM90 is not set
-# CONFIG_SENSORS_MAX1619 is not set
-# CONFIG_SENSORS_PC87360 is not set
-# CONFIG_SENSORS_SMSC47B397 is not set
-# CONFIG_SENSORS_SMSC47M1 is not set
-# CONFIG_SENSORS_W83781D is not set
-# CONFIG_SENSORS_W83L785TS is not set
-# CONFIG_SENSORS_W83627HF is not set
-# CONFIG_SENSORS_PCF8574 is not set
-# CONFIG_SENSORS_PCF8591 is not set
-# CONFIG_SENSORS_RTC8564 is not set
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_I2C_DEBUG_CHIP is not set
-# CONFIG_DVB is not set
-CONFIG_USB_ARCH_HAS_HCD=y
-# CONFIG_USB_GADGET is not set
-# CONFIG_MMC is not set
-CONFIG_EXT2_FS=y
-# CONFIG_XFS_FS is not set
-CONFIG_SYSFS=y
-CONFIG_DEVFS_FS=y
-# CONFIG_DEVFS_MOUNT is not set
-# CONFIG_DEVFS_DEBUG is not set
-# CONFIG_DEVPTS_FS_XATTR is not set
-# CONFIG_HUGETLB_PAGE is not set
-CONFIG_RAMFS=y
-# CONFIG_AFFS_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EFS_FS is not set
-# CONFIG_CRAMFS is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-CONFIG_NFS_FS=y
-# CONFIG_NFS_V4 is not set
-# CONFIG_NFS_DIRECTIO is not set
-CONFIG_LOCKD=y
-CONFIG_SUNRPC=y
-# 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_PARTITION_ADVANCED=y
-# CONFIG_ATARI_PARTITION is not set
-CONFIG_MSDOS_PARTITION=y
-# CONFIG_MINIX_SUBPARTITION is not set
-# CONFIG_UNIXWARE_DISKLABEL is not set
-# CONFIG_LDM_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_EFI_PARTITION is not set
-# CONFIG_PROFILING is not set
-# CONFIG_PRINTK_TIME is not set
-CONFIG_FRAME_POINTER=y
-# CONFIG_CRYPTO is not set
-CONFIG_CRC32=y
-# CONFIG_LIBCRC32C is not set
+CONFIG_PACKET=y
+# CONFIG_CIFS_EXPERIMENTAL is not set
+CONFIG_SLIP_SMART=y
+CONFIG_SUNRPC_GSS=m
+# CONFIG_NFSD_V4 is not set
+# CONFIG_SMB_NLS_DEFAULT is not set
+# CONFIG_CODA_FS_OLD_API is not set
+CONFIG_CIFS_STATS=y
+CONFIG_CIFS_XATTR=y
+# CONFIG_SLIP_MODE_SLIP6 is not set
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_ECONET_AUNUDP=y
+CONFIG_RXRPC=m
+# CONFIG_CIFS_POSIX is not set
+CONFIG_ECONET_NATIVE=y
+CONFIG_EQUALIZER=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_PACKET_MMAP=y

Modified: people/waldi/linux-2.6/debian/arch/arm/config.footbridge
===================================================================
--- people/waldi/linux-2.6/debian/arch/arm/config.footbridge	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/arm/config.footbridge	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,11 +1,88 @@
+CONFIG_UID16=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+# CONFIG_POSIX_MQUEUE is not set
+CONFIG_BSD_PROCESS_ACCT=y
+# CONFIG_BSD_PROCESS_ACCT_V3 is not set
+CONFIG_SYSCTL=y
+CONFIG_AUDIT=y
+CONFIG_HOTPLUG=y
+CONFIG_KOBJECT_UEVENT=y
+# CONFIG_IKCONFIG is not set
+CONFIG_INITRAMFS_SOURCE=""
 CONFIG_EMBEDDED=y
+CONFIG_KALLSYMS=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=y
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
 # CONFIG_MODULE_UNLOAD is not set
+CONFIG_OBSOLETE_MODPARM=y
 # CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+
+#
+# System Type
+#
+# CONFIG_ARCH_CLPS7500 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CO285 is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_CAMELOT is not set
 CONFIG_ARCH_FOOTBRIDGE=y
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_IOP3XX is not set
 # CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_PXA is not set
 # CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
 # CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_OMAP is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_AAEC2000 is not set
+
+#
+# Footbridge Implementations
+#
 CONFIG_ARCH_CATS=y
 CONFIG_ARCH_PERSONAL_SERVER=y
 # CONFIG_ARCH_EBSA285_ADDIN is not set
@@ -14,29 +91,247 @@
 CONFIG_FOOTBRIDGE=y
 CONFIG_FOOTBRIDGE_HOST=y
 CONFIG_ARCH_EBSA285=y
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
 CONFIG_CPU_SA110=y
 CONFIG_CPU_32v4=y
 CONFIG_CPU_ABRT_EV4=y
 CONFIG_CPU_CACHE_V4WB=y
+CONFIG_CPU_CACHE_VIVT=y
 CONFIG_CPU_COPY_V4WB=y
 CONFIG_CPU_TLB_V4WB=y
+
+#
+# Processor Features
+#
+
+#
+# Bus support
+#
 CONFIG_ISA=y
 CONFIG_ISA_DMA=y
 CONFIG_ISA_DMA_API=y
 CONFIG_PCI=y
 # CONFIG_PCI_LEGACY_PROC is not set
-CONFIG_PCI_NAMES=y
-# CONFIG_SMP is not set
-# CONFIG_DISCONTIGMEM is not set
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+# CONFIG_PREEMPT is not set
+# CONFIG_NO_IDLE_HZ is not set
+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
+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_LEDS=y
 CONFIG_LEDS_TIMER=y
 # CONFIG_LEDS_CPU is not set
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
 CONFIG_CMDLINE=""
+# CONFIG_XIP_KERNEL is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+CONFIG_FPE_NWFPE=y
 CONFIG_FPE_NWFPE_XP=y
 # CONFIG_FPE_FASTFPE is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
 CONFIG_BINFMT_AOUT=y
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_ARTHUR is not set
+
+#
+# Power management options
+#
 # CONFIG_PM is not set
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=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=y
+# 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=m
+CONFIG_INET_TCP_DIAG=m
+CONFIG_TCP_CONG_ADVANCED=y
+
+#
+# TCP congestion control
+#
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_SCALABLE=m
+# CONFIG_IPV6 is not set
+# CONFIG_NETFILTER is not set
+
+#
+# DCCP Configuration (EXPERIMENTAL)
+#
+CONFIG_IP_DCCP=m
+CONFIG_INET_DCCP_DIAG=m
+
+#
+# DCCP CCIDs Configuration (EXPERIMENTAL)
+#
+CONFIG_IP_DCCP_CCID3=m
+CONFIG_IP_DCCP_TFRC_LIB=m
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+CONFIG_ATM=y
+# CONFIG_ATM_CLIP is not set
+# CONFIG_ATM_LANE is not set
+# CONFIG_ATM_BR2684 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
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+CONFIG_IRDA=m
+
+#
+# IrDA protocols
+#
+CONFIG_IRLAN=m
+CONFIG_IRNET=m
+CONFIG_IRCOMM=m
+CONFIG_IRDA_ULTRA=y
+
+#
+# IrDA options
+#
+CONFIG_IRDA_CACHE_LAST_LSAP=y
+CONFIG_IRDA_FAST_RR=y
+CONFIG_IRDA_DEBUG=y
+
+#
+# Infrared-port device drivers
+#
+
+#
+# SIR device drivers
+#
+# CONFIG_IRTTY_SIR is not set
+
+#
+# Dongle support
+#
+
+#
+# Old SIR device drivers
+#
+# CONFIG_IRPORT_SIR is not set
+
+#
+# Old Serial dongle support
+#
+
+#
+# FIR device drivers
+#
+# CONFIG_USB_IRDA is not set
+# CONFIG_SIGMATEL_FIR is not set
+# CONFIG_NSC_FIR is not set
+CONFIG_WINBOND_FIR=m
+# CONFIG_TOSHIBA_FIR is not set
+# CONFIG_SMC_IRCC_FIR is not set
+# CONFIG_ALI_FIR is not set
+# CONFIG_VLSI_FIR is not set
+# CONFIG_VIA_FIR is not set
+# CONFIG_BT is not set
+CONFIG_IEEE80211=m
+# CONFIG_IEEE80211_DEBUG is not set
+CONFIG_IEEE80211_CRYPT_WEP=m
+CONFIG_IEEE80211_CRYPT_CCMP=m
+CONFIG_IEEE80211_CRYPT_TKIP=m
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=m
+
+#
+# Memory Technology Devices (MTD)
+#
 # CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
 CONFIG_PARPORT=y
 CONFIG_PARPORT_PC=y
 CONFIG_PARPORT_PC_FIFO=y
@@ -44,18 +339,38 @@
 # CONFIG_PARPORT_ARC is not set
 # CONFIG_PARPORT_GSC is not set
 CONFIG_PARPORT_1284=y
+
+#
+# Plug and Play support
+#
 CONFIG_PNP=y
 # CONFIG_PNP_DEBUG is not set
+
+#
+# Protocols
+#
 CONFIG_ISAPNP=y
+
+#
+# Block devices
+#
 # CONFIG_BLK_DEV_FD is not set
 # CONFIG_BLK_DEV_XD is not set
 CONFIG_PARIDE=m
 CONFIG_PARIDE_PARPORT=y
+
+#
+# Parallel IDE high-level drivers
+#
 CONFIG_PARIDE_PD=m
 CONFIG_PARIDE_PCD=m
 CONFIG_PARIDE_PF=m
 CONFIG_PARIDE_PT=m
 CONFIG_PARIDE_PG=m
+
+#
+# Parallel IDE protocol modules
+#
 CONFIG_PARIDE_ATEN=m
 CONFIG_PARIDE_BPCK=m
 # CONFIG_PARIDE_BPCK6 is not set
@@ -76,78 +391,226 @@
 # CONFIG_BLK_CPQ_CISS_DA is not set
 # CONFIG_BLK_DEV_DAC960 is not set
 # CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
 CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
 CONFIG_BLK_DEV_NBD=m
 # 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
+#
+CONFIG_IDE=y
+CONFIG_BLK_DEV_IDE=y
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_BLK_DEV_IDEDISK=y
 CONFIG_IDEDISK_MULTI_MODE=y
 # CONFIG_BLK_DEV_IDECD is not set
 # CONFIG_BLK_DEV_IDETAPE is not set
 # CONFIG_BLK_DEV_IDEFLOPPY is not set
-# CONFIG_BLK_DEV_IDEPNP 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
 # CONFIG_BLK_DEV_IDEDMA is not set
 # CONFIG_IDEDMA_AUTO is not set
+# CONFIG_BLK_DEV_HD is not set
+
+#
+# SCSI device support
+#
+CONFIG_RAID_ATTRS=m
+CONFIG_SCSI=m
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_SCH=m
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+CONFIG_SCSI_MULTI_LUN=y
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
+
+#
+# SCSI Transport Attributes
+#
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_FC_ATTRS=m
+CONFIG_SCSI_ISCSI_ATTRS=m
+CONFIG_SCSI_SAS_ATTRS=m
+
+#
+# SCSI low-level drivers
+#
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_7000FASST=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AHA152X=m
+CONFIG_SCSI_AHA1542=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+CONFIG_AIC7XXX_DEBUG_ENABLE=y
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_AIC7XXX_OLD=m
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+CONFIG_AIC79XX_ENABLE_RD_STRM=y
+CONFIG_AIC79XX_DEBUG_ENABLE=y
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+# CONFIG_SCSI_DPT_I2O is not set
+# CONFIG_SCSI_IN2000 is not set
+# CONFIG_MEGARAID_NEWGEN is not set
+# CONFIG_MEGARAID_LEGACY is not set
+CONFIG_MEGARAID_SAS=m
+CONFIG_SCSI_SATA=m
+CONFIG_SCSI_SATA_AHCI=m
+CONFIG_SCSI_SATA_SVW=m
+CONFIG_SCSI_ATA_PIIX=m
+CONFIG_SCSI_SATA_MV=m
+CONFIG_SCSI_SATA_NV=m
+CONFIG_SCSI_SATA_PROMISE=m
+CONFIG_SCSI_SATA_QSTOR=m
+CONFIG_SCSI_SATA_SX4=m
+CONFIG_SCSI_SATA_SIL=m
+CONFIG_SCSI_SATA_SIS=m
+CONFIG_SCSI_SATA_ULI=m
+CONFIG_SCSI_SATA_VIA=m
+CONFIG_SCSI_SATA_VITESSE=m
+# CONFIG_SCSI_BUSLOGIC is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_DTC3280 is not set
+# CONFIG_SCSI_EATA is not set
+# CONFIG_SCSI_FUTURE_DOMAIN is not set
+# CONFIG_SCSI_GDTH is not set
+# CONFIG_SCSI_GENERIC_NCR5380 is not set
+# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
+# CONFIG_SCSI_IPS is not set
+# CONFIG_SCSI_INITIO is not set
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_PPA is not set
+# CONFIG_SCSI_IMM is not set
+# CONFIG_SCSI_NCR53C406A is not set
+# CONFIG_SCSI_SYM53C8XX_2 is not set
+# CONFIG_SCSI_IPR is not set
+# CONFIG_SCSI_PAS16 is not set
+# CONFIG_SCSI_PSI240I is not set
+# CONFIG_SCSI_QLOGIC_FAS is not set
+# CONFIG_SCSI_QLOGIC_FC is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+# CONFIG_SCSI_QLA2XXX is not set
+# CONFIG_SCSI_LPFC is not set
+# CONFIG_SCSI_SYM53C416 is not set
+# CONFIG_SCSI_DC395x is not set
+# CONFIG_SCSI_DC390T is not set
+# CONFIG_SCSI_T128 is not set
+# CONFIG_SCSI_U14_34F is not set
+# CONFIG_SCSI_NSP32 is not set
+# CONFIG_SCSI_DEBUG is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+
+#
+# Fusion MPT device support
+#
+CONFIG_FUSION=y
+CONFIG_FUSION_SPI=m
+CONFIG_FUSION_FC=m
+CONFIG_FUSION_SAS=m
+CONFIG_FUSION_MAX_SGE=40
+CONFIG_FUSION_CTL=m
+
+#
+# IEEE 1394 (FireWire) support
+#
 # CONFIG_IEEE1394 is not set
+
+#
+# I2O device support
+#
 # CONFIG_I2O is not set
-CONFIG_PACKET=y
-CONFIG_PACKET_MMAP=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_IPGRE is not set
-# CONFIG_IP_MROUTE is not set
-CONFIG_SYN_COOKIES=y
-# CONFIG_INET_TUNNEL is not set
-# CONFIG_IP_TCPDIAG is not set
-# CONFIG_IPV6 is not set
-# CONFIG_NETFILTER is not set
-CONFIG_ATM=y
-# CONFIG_ATM_CLIP is not set
-# CONFIG_ATM_LANE is not set
-# CONFIG_ATM_BR2684 is not set
-# CONFIG_BRIDGE is not set
-# CONFIG_VLAN_8021Q is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_X25 is not set
-# CONFIG_LAPB 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
-# CONFIG_NET_PKTGEN is not set
-CONFIG_IRDA=m
-CONFIG_IRLAN=m
-CONFIG_IRNET=m
-CONFIG_IRCOMM=m
-CONFIG_IRDA_ULTRA=y
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-# CONFIG_IRTTY_SIR is not set
-# CONFIG_IRPORT_SIR is not set
-# CONFIG_USB_IRDA is not set
-# CONFIG_SIGMATEL_FIR is not set
-# CONFIG_NSC_FIR is not set
-CONFIG_WINBOND_FIR=m
-# CONFIG_TOSHIBA_FIR is not set
-# CONFIG_SMC_IRCC_FIR is not set
-# CONFIG_ALI_FIR is not set
-# CONFIG_VLSI_FIR is not set
-# CONFIG_VIA_FIR is not set
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
 # CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_TUN is not set
 # CONFIG_NET_SB1000 is not set
+
+#
+# ARCnet devices
+#
 # CONFIG_ARCNET is not set
+
+#
+# PHY device support
+#
+CONFIG_PHYLIB=m
+CONFIG_PHYCONTROL=y
+
+#
+# MII PHY device drivers
+#
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
 CONFIG_MII=y
 # CONFIG_HAPPYMEAL is not set
 # CONFIG_SUNGEM is not set
+CONFIG_CASSINI=m
 CONFIG_NET_VENDOR_3COM=y
 # CONFIG_EL1 is not set
 # CONFIG_EL2 is not set
@@ -157,9 +620,14 @@
 # CONFIG_3C515 is not set
 CONFIG_VORTEX=y
 # CONFIG_TYPHOON is not set
-# CONFIG_LANCE is not set
 # CONFIG_NET_VENDOR_SMC is not set
+# CONFIG_SMC91X is not set
+# CONFIG_DM9000 is not set
 # CONFIG_NET_VENDOR_RACAL is not set
+
+#
+# Tulip family network device support
+#
 # CONFIG_NET_TULIP is not set
 # CONFIG_AT1700 is not set
 # CONFIG_DEPCA is not set
@@ -187,21 +655,50 @@
 # CONFIG_TLAN is not set
 # CONFIG_VIA_RHINE is not set
 # CONFIG_NET_POCKET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
 # 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=m
+CONFIG_SKGE=m
 # CONFIG_SK98LIN is not set
 # CONFIG_VIA_VELOCITY is not set
 # CONFIG_TIGON3 is not set
 # CONFIG_BNX2 is not set
+
+#
+# Ethernet (10000 Mbit)
+#
+CONFIG_CHELSIO_T1=m
 # CONFIG_IXGB is not set
 # CONFIG_S2IO is not set
+
+#
+# Token Ring devices
+#
 # CONFIG_TR is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
 # CONFIG_NET_RADIO is not set
+# CONFIG_IPW_DEBUG is not set
+CONFIG_IPW2200=m
+
+#
+# Wan interfaces
+#
 # CONFIG_WAN is not set
+
+#
+# ATM drivers
+#
 # CONFIG_ATM_TCP is not set
 # CONFIG_ATM_LANAI is not set
 # CONFIG_ATM_ENI is not set
@@ -227,10 +724,37 @@
 CONFIG_PPPOE=m
 # CONFIG_PPPOATM is not set
 CONFIG_SLIP=m
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLIP_SMART=y
-CONFIG_SLIP_MODE_SLIP6=y
+# 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
+#
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_TSDEV is not set
 # CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
 CONFIG_INPUT_KEYBOARD=y
 CONFIG_KEYBOARD_ATKBD=y
 # CONFIG_KEYBOARD_SUNKBD is not set
@@ -244,6 +768,13 @@
 # CONFIG_MOUSE_LOGIBM is not set
 # CONFIG_MOUSE_PC110PAD is not set
 # CONFIG_MOUSE_VSXXXAA is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
 CONFIG_SERIO=y
 CONFIG_SERIO_I8042=y
 CONFIG_SERIO_SERPORT=y
@@ -251,6 +782,11 @@
 # 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
 CONFIG_VT_CONSOLE=y
 CONFIG_HW_CONSOLE=y
@@ -271,25 +807,62 @@
 # CONFIG_SX is not set
 # CONFIG_RIO is not set
 # CONFIG_STALDRV is not set
+
+#
+# Serial drivers
+#
 # CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
 CONFIG_SERIAL_21285=y
 CONFIG_SERIAL_21285_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
 CONFIG_PRINTER=m
 # CONFIG_LP_CONSOLE is not set
 # CONFIG_PPDEV is not set
 # CONFIG_TIPAR is not set
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
 CONFIG_WATCHDOG=y
 # CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
 CONFIG_SOFT_WATCHDOG=y
 CONFIG_21285_WATCHDOG=m
 CONFIG_977_WATCHDOG=m
+
+#
+# ISA-based Watchdog Cards
+#
 # CONFIG_PCWATCHDOG is not set
 # CONFIG_MIXCOMWD is not set
 # CONFIG_WDT is not set
+
+#
+# PCI-based Watchdog Cards
+#
 # CONFIG_PCIPCWATCHDOG is not set
 # CONFIG_WDTPCI is not set
+
+#
+# USB-based Watchdog Cards
+#
 # CONFIG_USBPCWATCHDOG is not set
 CONFIG_DS1620=y
 CONFIG_NWBUTTON=y
@@ -297,10 +870,37 @@
 CONFIG_NWFLASH=m
 CONFIG_NVRAM=m
 CONFIG_RTC=y
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
 # CONFIG_APPLICOM is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_DRM is not set
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+# CONFIG_TCG_TPM is not set
+
+#
+# I2C support
+#
 CONFIG_I2C=m
 # CONFIG_I2C_CHARDEV is not set
+
+#
+# I2C Algorithms
+#
 # CONFIG_I2C_ALGOBIT is not set
+# CONFIG_I2C_ALGOPCF is not set
+# CONFIG_I2C_ALGOPCA is not set
+
+#
+# I2C Hardware Bus support
+#
 # CONFIG_I2C_ALI1535 is not set
 # CONFIG_I2C_ALI1563 is not set
 # CONFIG_I2C_ALI15X3 is not set
@@ -310,27 +910,99 @@
 # CONFIG_I2C_I801 is not set
 # CONFIG_I2C_I810 is not set
 # CONFIG_I2C_PIIX4 is not set
+CONFIG_I2C_ISA=m
 # CONFIG_I2C_NFORCE2 is not set
 # CONFIG_I2C_PARPORT is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
 # CONFIG_I2C_PROSAVAGE is not set
 # CONFIG_I2C_SAVAGE4 is not set
 # CONFIG_SCx200_ACB is not set
 # CONFIG_I2C_SIS5595 is not set
 # CONFIG_I2C_SIS630 is not set
 # CONFIG_I2C_SIS96X is not set
+# CONFIG_I2C_STUB is not set
 # CONFIG_I2C_VIA is not set
 # CONFIG_I2C_VIAPRO is not set
 # CONFIG_I2C_VOODOO3 is not set
-# CONFIG_I2C_SENSOR is not set
+# CONFIG_I2C_PCA_ISA is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_SENSORS_DS1337 is not set
+CONFIG_SENSORS_DS1374=m
+# CONFIG_SENSORS_EEPROM is not set
+# CONFIG_SENSORS_PCF8574 is not set
+CONFIG_SENSORS_PCA9539=m
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_RTC8564 is not set
+CONFIG_SENSORS_MAX6875=m
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+
+#
+# Hardware Monitoring support
+#
+CONFIG_HWMON=y
+CONFIG_HWMON_VID=m
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+CONFIG_SENSORS_ADM9240=m
+# CONFIG_SENSORS_ASB100 is not set
+CONFIG_SENSORS_ATXP1=m
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_FSCHER is not set
+# CONFIG_SENSORS_FSCPOS is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_LM63 is not set
 # CONFIG_SENSORS_LM75 is not set
+# CONFIG_SENSORS_LM77 is not set
 # CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
 # CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM87 is not set
+# CONFIG_SENSORS_LM90 is not set
 # CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_PC87360 is not set
 # CONFIG_SENSORS_SIS5595 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
 # CONFIG_SENSORS_VIA686A is not set
-# CONFIG_SENSORS_DS1337 is not set
-# CONFIG_SENSORS_EEPROM is not set
+# CONFIG_SENSORS_W83781D is not set
+CONFIG_SENSORS_W83792D=m
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83627HF is not set
+CONFIG_SENSORS_W83627EHF=m
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Misc devices
+#
+
+#
+# Multimedia Capabilities Port drivers
+#
+
+#
+# Multimedia devices
+#
 CONFIG_VIDEO_DEV=m
+
+#
+# Video For Linux
+#
+
+#
+# Video Adapters
+#
 # CONFIG_VIDEO_BT848 is not set
 # CONFIG_VIDEO_PMS is not set
 # CONFIG_VIDEO_BWQCAM is not set
@@ -348,6 +1020,10 @@
 # CONFIG_VIDEO_HEXIUM_GEMINI is not set
 # CONFIG_VIDEO_CX88 is not set
 # CONFIG_VIDEO_OVCAMCHIP is not set
+
+#
+# Radio Adapters
+#
 # CONFIG_RADIO_CADET is not set
 # CONFIG_RADIO_RTRACK is not set
 # CONFIG_RADIO_RTRACK2 is not set
@@ -362,6 +1038,15 @@
 # CONFIG_RADIO_TRUST is not set
 # CONFIG_RADIO_TYPHOON is not set
 # CONFIG_RADIO_ZOLTRIX is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+# CONFIG_DVB is not set
+
+#
+# Graphics support
+#
 CONFIG_FB=y
 CONFIG_FB_CFB_FILLRECT=y
 CONFIG_FB_CFB_COPYAREA=y
@@ -375,6 +1060,7 @@
 CONFIG_FB_CYBER2000=y
 # CONFIG_FB_ASILIANT is not set
 # CONFIG_FB_IMSTT is not set
+CONFIG_VIDEO_SELECT=y
 # CONFIG_FB_NVIDIA is not set
 # CONFIG_FB_RIVA is not set
 # CONFIG_FB_MATROX is not set
@@ -388,47 +1074,111 @@
 # CONFIG_FB_KYRO is not set
 # CONFIG_FB_3DFX is not set
 # CONFIG_FB_VOODOO1 is not set
+CONFIG_FB_CYBLA=m
 # CONFIG_FB_TRIDENT is not set
 # CONFIG_FB_S1D13XXX is not set
 # CONFIG_FB_VIRTUAL is not set
+
+#
+# Console display driver support
+#
 CONFIG_VGA_CONSOLE=y
 # CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 # CONFIG_FRAMEBUFFER_CONSOLE is not set
+
+#
+# Logo configuration
+#
 # CONFIG_LOGO is not set
 # CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Sound
+#
 CONFIG_SOUND=m
+
+#
+# Advanced Linux Sound Architecture
+#
 # CONFIG_SND is not set
+
+#
+# Open Sound System
+#
 # CONFIG_SOUND_PRIME is not set
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=y
 CONFIG_USB_ARCH_HAS_OHCI=y
 CONFIG_USB=m
 CONFIG_USB_DEBUG=y
+
+#
+# Miscellaneous USB options
+#
 CONFIG_USB_DEVICEFS=y
 # 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 is not set
+CONFIG_USB_ISP116X_HCD=m
 # CONFIG_USB_OHCI_HCD is not set
 # CONFIG_USB_UHCI_HCD is not set
 # CONFIG_USB_SL811_HCD is not set
-CONFIG_USB_AUDIO=m
+
+#
+# USB Device Class drivers
+#
+# 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
+
+#
+# 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 Input Devices
+#
 # CONFIG_USB_HID is not set
+
+#
+# USB HID Boot Protocol drivers
+#
 # CONFIG_USB_KBD is not set
 # CONFIG_USB_MOUSE is not set
 # CONFIG_USB_AIPTEK is not set
 # CONFIG_USB_WACOM is not set
+CONFIG_USB_ACECAD=m
 # CONFIG_USB_KBTAB is not set
 # CONFIG_USB_POWERMATE is not set
 # CONFIG_USB_MTOUCH is not set
+CONFIG_USB_ITMTOUCH=m
 # CONFIG_USB_EGALAX is not set
+CONFIG_USB_YEALINK=m
 # CONFIG_USB_XPAD is not set
 # CONFIG_USB_ATI_REMOTE is not set
+CONFIG_USB_KEYSPAN_REMOTE=m
+# CONFIG_USB_APPLETOUCH is not set
+
+#
+# USB Imaging devices
+#
 # CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+
+#
+# USB Multimedia devices
+#
 # CONFIG_USB_VICAM is not set
 # CONFIG_USB_DSBR is not set
 # CONFIG_USB_IBMCAM is not set
@@ -438,13 +1188,31 @@
 # CONFIG_USB_SN9C102 is not set
 # CONFIG_USB_STV680 is not set
 # CONFIG_USB_PWC is not set
+
+#
+# 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_MON=y
+
+#
+# USB port drivers
+#
 # CONFIG_USB_USS720 is not set
+
+#
+# USB Serial Converter support
+#
 # CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+CONFIG_USB_EMI26=m
 # CONFIG_USB_AUERSWALD is not set
 # CONFIG_USB_RIO500 is not set
 # CONFIG_USB_LEGOTOWER is not set
@@ -454,22 +1222,136 @@
 # CONFIG_USB_PHIDGETKIT is not set
 # CONFIG_USB_PHIDGETSERVO is not set
 # CONFIG_USB_IDMOUSE is not set
+CONFIG_USB_LD=m
 # CONFIG_USB_TEST is not set
+
+#
+# USB DSL modem support
+#
 # CONFIG_USB_ATM is not set
-# CONFIG_USB_SPEEDTOUCH is not set
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# MMC/SD Card support
+#
+# CONFIG_MMC is not set
+
+#
+# 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_JBD is not set
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+CONFIG_FS_POSIX_ACL=y
+# CONFIG_XFS_FS is not set
+CONFIG_MINIX_FS=m
+CONFIG_ROMFS_FS=m
+CONFIG_INOTIFY=y
+CONFIG_QUOTA=y
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+CONFIG_DNOTIFY=y
+CONFIG_AUTOFS_FS=m
+CONFIG_AUTOFS4_FS=m
+CONFIG_FUSE_FS=m
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_ZISOFS_FS=m
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_RW=y
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_SYSFS=y
 # CONFIG_TMPFS is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+CONFIG_RELAYFS_FS=m
+
+#
+# Miscellaneous filesystems
+#
 CONFIG_ADFS_FS=m
 # CONFIG_ADFS_FS_RW is not set
+# CONFIG_AFFS_FS is not set
 # CONFIG_ASFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
+# CONFIG_NFS_V4 is not set
+# CONFIG_NFS_DIRECTIO is not set
 CONFIG_NFSD=m
 # CONFIG_NFSD_V3 is not set
 CONFIG_NFSD_TCP=y
 CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
 CONFIG_EXPORTFS=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+# 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=m
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
 CONFIG_ACORN_PARTITION=y
 # CONFIG_ACORN_PARTITION_CUMANA is not set
 # CONFIG_ACORN_PARTITION_EESOX is not set
@@ -479,15 +1361,393 @@
 # CONFIG_ACORN_PARTITION_RISCIX is not set
 # CONFIG_OSF_PARTITION is not set
 # CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
 # CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
 # CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
 # CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
 # CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
 # CONFIG_SUN_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+
+#
+# Native Language Support
+#
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=m
+
+#
+# Profiling support
+#
+# CONFIG_PROFILING is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
 # CONFIG_DEBUG_KERNEL is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_DEBUG_BUGVERBOSE is not set
+CONFIG_FRAME_POINTER=y
 CONFIG_DEBUG_USER=y
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+CONFIG_SECURITY=y
+# CONFIG_SECURITY_NETWORK is not set
+CONFIG_SECURITY_CAPABILITIES=y
+CONFIG_SECURITY_ROOTPLUG=m
+CONFIG_SECURITY_SECLVL=m
+CONFIG_SECURITY_SELINUX=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0
+CONFIG_SECURITY_SELINUX_DISABLE=y
+CONFIG_SECURITY_SELINUX_DEVELOP=y
+CONFIG_SECURITY_SELINUX_AVC_STATS=y
+CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_TGR192=m
+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_DEFLATE=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Hardware crypto devices
+#
+
+#
+# Library routines
+#
 CONFIG_CRC_CCITT=m
+CONFIG_CRC16=m
+CONFIG_CRC32=y
+CONFIG_LIBCRC32C=m
 CONFIG_ZLIB_INFLATE=m
 CONFIG_ZLIB_DEFLATE=m
+CONFIG_ATM_MPOA=m
+CONFIG_MTD_CFI_I1=y
+# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
+# CONFIG_MTD_ABSENT is not set
+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_SUNDANCE_MMIO is not set
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_USB_HIDDEV is not set
+# CONFIG_SYNCLINK_CS is not set
+CONFIG_PCMCIA_WL3501=m
+CONFIG_MTD_ROM=m
+# CONFIG_MTD_EDB7312 is not set
+CONFIG_BT_HIDP=m
+# CONFIG_MTD_BLOCK2MTD is not set
+CONFIG_MTD_CFI_UTIL=m
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_IDEDMA_PCI_AUTO is not set
+CONFIG_I82365=m
+CONFIG_BLK_DEV_SIIMAGE=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_MTD_SHARP=m
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+CONFIG_PCCARD_NONSTATIC=m
+# CONFIG_BLK_DEV_4DRIVES is not set
+CONFIG_TULIP=m
+# CONFIG_SCSI_ADVANSYS is not set
+CONFIG_USB_SPEEDTOUCH=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_PCMCIA_3C574=m
+CONFIG_PRISM54=m
+# CONFIG_BLK_DEV_SLC90E66 is not set
+CONFIG_BLK_DEV_AEC62XX=m
+CONFIG_MD_FAULTY=m
+# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
+# CONFIG_FB_PM3 is not set
+CONFIG_AIRO_CS=m
+CONFIG_MTD_AMDSTD=m
+CONFIG_BLK_DEV_CY82C693=m
+CONFIG_PD6729=m
+CONFIG_BT_HCIBFUSB=m
+# CONFIG_SCSI_EATA_PIO is not set
+CONFIG_MD_RAID6=m
+# CONFIG_8139TOO_TUNE_TWISTER is not set
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_WAVELAN=m
+# CONFIG_VIDEO_ZR36120 is not set
+CONFIG_IEEE1394_ETH1394=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_WINBOND_840=m
+# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
+# CONFIG_INFTL is not set
+# CONFIG_MTD_IMPA7 is not set
+CONFIG_WAVELAN=m
+# CONFIG_PCMCIA_SYM53C500 is not set
+CONFIG_IEEE1394_EXTRA_CONFIG_ROMS=y
+# CONFIG_HUGETLBFS is not set
+CONFIG_TCIC=m
+CONFIG_BLK_DEV_TRIFLEX=m
+CONFIG_BT_BNEP_PROTO_FILTER=y
+# CONFIG_USB_ZD1201 is not set
+# CONFIG_R8169_NAPI is not set
+# CONFIG_BLK_DEV_DTC2278 is not set
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
+# CONFIG_SCSI_CPQFCTS is not set
+# CONFIG_NCPFS_NFS_NS is not set
+CONFIG_PCMCIA_AXNET=m
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_CONCAT is not set
+CONFIG_IEEE1394_PCILYNX=m
+# CONFIG_MTD_BLOCK_RO is not set
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_USB_HIDINPUT=y
+CONFIG_NET_PCMCIA=y
+CONFIG_BLK_DEV_ALI15X3=m
+# CONFIG_PCMCIA_AHA152X is not set
+CONFIG_TMD_HERMES=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_MTD_GEN_PROBE=m
+CONFIG_BLK_DEV_SVWKS=m
+CONFIG_LOGO_LINUX_VGA16=y
+# CONFIG_IDEPCI_SHARE_IRQ is not set
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_BT_HCIUART=m
+CONFIG_BLK_DEV_NS87415=m
+# CONFIG_DEV_APPLETALK is not set
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_BLK_DEV_VIA82CXXX=m
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_PDC202XX_FORCE is not set
+CONFIG_MTD_CFI_NOSWAP=y
+CONFIG_BT_RFCOMM_TTY=y
+# CONFIG_JFFS2_FS is not set
+CONFIG_USB_STORAGE_FREECOM=y
+CONFIG_PCI_HERMES=m
+CONFIG_CARDBUS=y
+# CONFIG_BLK_DEV_HT6560B is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+# CONFIG_NFTL is not set
+CONFIG_IEEE1394_OHCI1394=m
+# CONFIG_NCPFS_NLS is not set
+CONFIG_LLC=m
+CONFIG_BLK_DEV_CMD64X=m
+# CONFIG_WDC_ALI15X3 is not set
+# CONFIG_MTD_SLRAM is not set
+CONFIG_PLX_HERMES=m
+# CONFIG_TULIP_MMIO is not set
+CONFIG_STRIP=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_MTD_RAM=m
+CONFIG_BT_BNEP_MC_FILTER=y
+# CONFIG_VIA_RHINE_MMIO is not set
+# CONFIG_MTD_CFI_GEOMETRY is not set
+CONFIG_BT_L2CAP=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_TULIP_MWI is not set
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_BT_BNEP=m
+CONFIG_MTD_CHAR=m
+CONFIG_PCMCIA_XIRTULIP=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_USB_STORAGE_ISD200=y
+# CONFIG_USB_EHCI_SPLIT_ISO is not set
+CONFIG_PCMCIA_NETWAVE=m
+# CONFIG_SCSI_QLOGIC_ISP is not set
+# CONFIG_PCMCIA_DEBUG is not set
+CONFIG_MTD_OBSOLETE_CHIPS=y
+CONFIG_USB_STORAGE_SDDR09=y
+CONFIG_IEEE1394_VIDEO1394=m
+CONFIG_BT_HCIBPA10X=m
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+CONFIG_BLK_DEV_CS5520=m
+CONFIG_USB_SISUSBVGA=m
+CONFIG_DM_MULTIPATH_EMC=m
+CONFIG_PCMCIA_FMVJ18X=m
+# CONFIG_MTD_DOC2001PLUS is not set
+CONFIG_PARPORT_NOT_PC=y
+# CONFIG_SMP is not set
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_IEEE1394_CONFIG_ROM_IP1394=y
+# CONFIG_IDEDMA_IVB is not set
+CONFIG_LOGO_LINUX_MONO=y
+# CONFIG_BLK_DEV_ALI14XX is not set
+# CONFIG_E1000_NAPI is not set
+# CONFIG_PCMCIA_QLOGIC is not set
+CONFIG_BLK_DEV_CS5530=m
+# CONFIG_MTD_NAND is not set
+# CONFIG_FTL is not set
+CONFIG_USB_STORAGE_JUMPSHOT=y
+CONFIG_I82092=m
+# CONFIG_8139TOO_8129 is not set
+# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set
+CONFIG_YENTA=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_NCPFS_EXTRAS is not set
+CONFIG_PCMCIA_XIRCOM=m
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+CONFIG_BLK_DEV_AMD74XX=y
+# CONFIG_PDC202XX_BURST is not set
+# CONFIG_PARPORT_PC_PCMCIA is not set
+# CONFIG_JFFS_FS is not set
+# CONFIG_MTD_ARM_INTEGRATOR is not set
+# CONFIG_8139TOO_PIO is not set
+# CONFIG_HPT34X_AUTODMA is not set
+CONFIG_MTD_CFI=m
+# CONFIG_MTD_BLKMTD is not set
+CONFIG_AIRO=m
+# CONFIG_MTD_OTP is not set
+CONFIG_BLK_DEV_TRM290=m
+# CONFIG_VIDEO_ZORAN is not set
+CONFIG_USB_STORAGE_SDDR55=y
+# CONFIG_USB_SL811_CS is not set
+CONFIG_HERMES=m
+CONFIG_MTD_BLOCK=m
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+CONFIG_IEEE1394_CMP=m
+CONFIG_IEEE1394_SBP2=m
+# CONFIG_MTD_PARTITIONS is not set
+# CONFIG_PCMCIA_FDOMAIN is not set
+CONFIG_BLK_DEV_OPTI621=m
+CONFIG_BT_HCIBCM203X=m
+CONFIG_IEEE1394_DV1394=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_MD_RAID10=m
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_AMDSTD=m
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+CONFIG_BLK_DEV_PIIX=m
+CONFIG_USB_STORAGE_DPCM=y
+CONFIG_BLK_DEV_GENERIC=m
+CONFIG_BT_HCIDTL1=m
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+# CONFIG_IEEE1394_OUI_DB is not set
+CONFIG_BT_HCIUSB=m
+CONFIG_DM9102=m
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_NCPFS_OS2_NS is not set
+# CONFIG_BLK_DEV_IDECS is not set
+CONFIG_ATMEL=m
+CONFIG_DE2104X=m
+# CONFIG_NCPFS_SMALLDOS is not set
+CONFIG_USB_STORAGE_USBAT=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_PHYSMAP is not set
+CONFIG_MTD_JEDEC=m
+CONFIG_MTD_CFI_AMDSTD_RETRY=0
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_NCPFS_STRONG is not set
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP_TXCRC=y
+# CONFIG_BLK_DEV_UMC8672 is not set
+# CONFIG_MTD_PHRAM is not set
+CONFIG_BT_HCIBTUART=m
+CONFIG_PCMCIA=m
+CONFIG_BROKEN=y
+# CONFIG_HID_FF is not set
+CONFIG_USB_STORAGE_DATAFAB=y
+CONFIG_ARLAN=m
+# CONFIG_BLK_DEV_QD65XX is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN is not set
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_BLK_DEV_HPT366=m
+CONFIG_FS_MBCACHE=y
+CONFIG_NET_WIRELESS=y
+CONFIG_BLK_DEV_PDC202XX_NEW=m
+# CONFIG_MTD_PMC551 is not set
+CONFIG_PCI_ATMEL=m
+CONFIG_BT_HCIBT3C=m
+# CONFIG_IPX_INTERN is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_DE4X5=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BLK_DEV_HPT34X=m
+CONFIG_BT_SCO=m
+# CONFIG_TULIP_NAPI is not set
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_BT_HCIUSB_SCO=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_IEEE1394_RAWIO=m
+# CONFIG_DECNET_ROUTER is not set
+CONFIG_BLK_DEV_SC1200=m
+# CONFIG_R8169_VLAN is not set
+# CONFIG_IEEE1394_VERBOSEDEBUG is not set
+# CONFIG_MTD_XIP is not set
+# CONFIG_PCMCIA_NINJA_SCSI is not set
+# CONFIG_IEEE1394_AMDTP is not set
+CONFIG_BLK_DEV_PDC202XX_OLD=m
+# CONFIG_LANCE is not set
+# CONFIG_NET_CLS_ROUTE is not set

Modified: people/waldi/linux-2.6/debian/arch/arm/config.ixp4xx
===================================================================
--- people/waldi/linux-2.6/debian/arch/arm/config.ixp4xx	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/arm/config.ixp4xx	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,13 +1,93 @@
+CONFIG_UID16=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+# CONFIG_POSIX_MQUEUE is not set
+CONFIG_BSD_PROCESS_ACCT=y
+# CONFIG_BSD_PROCESS_ACCT_V3 is not set
+CONFIG_SYSCTL=y
+CONFIG_AUDIT=y
+CONFIG_HOTPLUG=y
+CONFIG_KOBJECT_UEVENT=y
+# CONFIG_IKCONFIG is not set
+CONFIG_INITRAMFS_SOURCE=""
 CONFIG_EMBEDDED=y
+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=y
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
 # CONFIG_MODULE_UNLOAD is not set
+CONFIG_OBSOLETE_MODPARM=y
 CONFIG_MODVERSIONS=y
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+
+#
+# System Type
+#
+# CONFIG_ARCH_CLPS7500 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CO285 is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_CAMELOT is not set
 # CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_IOP3XX is not set
 CONFIG_ARCH_IXP4XX=y
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_PXA is not set
 # CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
 # CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_OMAP is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_AAEC2000 is not set
 CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
+
+#
+# Intel IXP4xx Implementation Options
+#
+
+#
+# IXP4xx Platforms
+#
 # CONFIG_ARCH_AVILA is not set
 CONFIG_ARCH_ADI_COYOTE=y
 CONFIG_ARCH_IXDP425=y
@@ -17,138 +97,109 @@
 CONFIG_ARCH_PRPMC1100=y
 CONFIG_ARCH_IXDP4XX=y
 # CONFIG_MACH_GTWX5715 is not set
+
+#
+# IXP4xx Options
+#
 # CONFIG_IXP4XX_INDIRECT_PCI is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
 CONFIG_CPU_XSCALE=y
 CONFIG_CPU_32v5=y
 CONFIG_CPU_ABRT_EV5T=y
+CONFIG_CPU_CACHE_VIVT=y
 CONFIG_CPU_TLB_V4WBI=y
+
+#
+# Processor Features
+#
 # CONFIG_ARM_THUMB is not set
 CONFIG_CPU_BIG_ENDIAN=y
 CONFIG_XSCALE_PMU=y
 CONFIG_DMABOUNCE=y
+
+#
+# Bus support
+#
 CONFIG_ISA_DMA_API=y
 CONFIG_PCI=y
 CONFIG_PCI_LEGACY_PROC=y
-CONFIG_PCI_NAMES=y
 # CONFIG_PCI_DEBUG is not set
-# CONFIG_SMP is not set
-# CONFIG_DISCONTIGMEM is not set
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+# CONFIG_PREEMPT is not set
+# CONFIG_NO_IDLE_HZ is not set
+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
+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_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
 CONFIG_CMDLINE="console=ttyS0,115200 ip=bootp root=/dev/nfs"
+# CONFIG_XIP_KERNEL is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+CONFIG_FPE_NWFPE=y
 # CONFIG_FPE_FASTFPE is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
 # CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_ARTHUR is not set
+
+#
+# Power management options
+#
 CONFIG_PM=y
 CONFIG_APM=y
-# CONFIG_DEBUG_DRIVER is not set
-CONFIG_MTD=y
-# CONFIG_MTD_DEBUG is not set
-# CONFIG_MTD_CONCAT is not set
-CONFIG_MTD_PARTITIONS=y
-CONFIG_MTD_REDBOOT_PARTS=y
-CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
-# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
-# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-# CONFIG_MTD_AFS_PARTS is not set
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLOCK=y
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-CONFIG_MTD_CFI=y
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=y
-# CONFIG_MTD_CFI_ADV_OPTIONS is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-CONFIG_MTD_CFI_INTELEXT=y
-# CONFIG_MTD_CFI_AMDSTD is not set
-# CONFIG_MTD_CFI_STAA is not set
-CONFIG_MTD_CFI_UTIL=y
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-# CONFIG_MTD_XIP is not set
-CONFIG_MTD_COMPLEX_MAPPINGS=y
-# CONFIG_MTD_PHYSMAP is not set
-# CONFIG_MTD_ARM_INTEGRATOR is not set
-CONFIG_MTD_IXP4XX=y
-# CONFIG_MTD_EDB7312 is not set
-# CONFIG_MTD_PCI is not set
-# CONFIG_MTD_PMC551 is not set
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLKMTD is not set
-# CONFIG_MTD_BLOCK2MTD is not set
-# CONFIG_MTD_DOC2000 is not set
-# CONFIG_MTD_DOC2001 is not set
-# CONFIG_MTD_DOC2001PLUS is not set
-CONFIG_MTD_NAND=m
-# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-CONFIG_MTD_NAND_IDS=m
-# CONFIG_MTD_NAND_DISKONCHIP is not set
-# CONFIG_MTD_NAND_NANDSIM is not set
-# CONFIG_PARPORT 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_LOOP=y
-# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_SX8 is not set
-CONFIG_BLK_DEV_RAM_SIZE=8192
-# CONFIG_ATA_OVER_ETH is not set
-# CONFIG_IDEDISK_MULTI_MODE is not set
-# CONFIG_BLK_DEV_IDECD is not set
-# CONFIG_BLK_DEV_IDETAPE is not set
-# CONFIG_BLK_DEV_IDEFLOPPY is not set
-CONFIG_BLK_DEV_IDEPCI=y
-# CONFIG_IDEPCI_SHARE_IRQ is not set
-# CONFIG_BLK_DEV_OFFBOARD is not set
-# CONFIG_BLK_DEV_GENERIC is not set
-# CONFIG_BLK_DEV_OPTI621 is not set
-# CONFIG_BLK_DEV_SL82C105 is not set
-CONFIG_BLK_DEV_IDEDMA_PCI=y
-# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
-# CONFIG_IDEDMA_PCI_AUTO is not set
-# CONFIG_BLK_DEV_AEC62XX is not set
-# CONFIG_BLK_DEV_ALI15X3 is not set
-# CONFIG_BLK_DEV_AMD74XX is not set
-CONFIG_BLK_DEV_CMD64X=y
-# CONFIG_BLK_DEV_TRIFLEX is not set
-# CONFIG_BLK_DEV_CY82C693 is not set
-# CONFIG_BLK_DEV_CS5520 is not set
-# CONFIG_BLK_DEV_CS5530 is not set
-# CONFIG_BLK_DEV_HPT34X is not set
-CONFIG_BLK_DEV_HPT366=y
-# CONFIG_BLK_DEV_SC1200 is not set
-# CONFIG_BLK_DEV_PIIX is not set
-# CONFIG_BLK_DEV_NS87415 is not set
-# CONFIG_BLK_DEV_PDC202XX_OLD is not set
-CONFIG_BLK_DEV_PDC202XX_NEW=y
-# CONFIG_PDC202XX_FORCE is not set
-# CONFIG_BLK_DEV_SVWKS is not set
-# CONFIG_BLK_DEV_SIIMAGE is not set
-# CONFIG_BLK_DEV_SLC90E66 is not set
-# CONFIG_BLK_DEV_TRM290 is not set
-# CONFIG_BLK_DEV_VIA82CXXX is not set
-# CONFIG_IDE_ARM is not set
-CONFIG_BLK_DEV_IDEDMA=y
-# CONFIG_IDEDMA_IVB is not set
-# CONFIG_IDEDMA_AUTO is not set
-# CONFIG_IEEE1394 is not set
-# CONFIG_I2O is not set
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
 CONFIG_PACKET=m
-CONFIG_PACKET_MMAP=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
 CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_ASK_IP_FIB_HASH=y
+# CONFIG_IP_FIB_TRIE is not set
+CONFIG_IP_FIB_HASH=y
 CONFIG_IP_MULTIPLE_TABLES=y
 CONFIG_IP_ROUTE_FWMARK=y
 CONFIG_IP_ROUTE_MULTIPATH=y
@@ -158,21 +209,51 @@
 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=m
 CONFIG_NET_IPGRE_BROADCAST=y
 CONFIG_IP_MROUTE=y
 CONFIG_IP_PIMSM_V1=y
 CONFIG_IP_PIMSM_V2=y
+# CONFIG_ARPD is not set
 CONFIG_SYN_COOKIES=y
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
 CONFIG_INET_TUNNEL=m
-# CONFIG_IP_TCPDIAG is not set
+CONFIG_INET_DIAG=m
+CONFIG_INET_TCP_DIAG=m
+CONFIG_TCP_CONG_ADVANCED=y
+
+#
+# TCP congestion control
+#
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_SCALABLE=m
+
+#
+# IP: Virtual Server Configuration
+#
 CONFIG_IP_VS=m
 CONFIG_IP_VS_DEBUG=y
 CONFIG_IP_VS_TAB_BITS=12
+
+#
+# IPVS transport protocol load balancing support
+#
 # CONFIG_IP_VS_PROTO_TCP is not set
 # CONFIG_IP_VS_PROTO_UDP is not set
 # CONFIG_IP_VS_PROTO_ESP is not set
 # CONFIG_IP_VS_PROTO_AH is not set
+
+#
+# IPVS scheduler
+#
 CONFIG_IP_VS_RR=m
 CONFIG_IP_VS_WRR=m
 CONFIG_IP_VS_LC=m
@@ -183,18 +264,33 @@
 CONFIG_IP_VS_SH=m
 # CONFIG_IP_VS_SED is not set
 # CONFIG_IP_VS_NQ is not set
+
+#
+# IPVS application helper
+#
 # CONFIG_IPV6 is not set
 CONFIG_NETFILTER=y
 # CONFIG_NETFILTER_DEBUG is not set
 CONFIG_BRIDGE_NETFILTER=y
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+
+#
+# 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=y
+CONFIG_IP_NF_CONNTRACK_NETLINK=m
 # CONFIG_IP_NF_CT_PROTO_SCTP is not set
 CONFIG_IP_NF_FTP=m
 CONFIG_IP_NF_IRC=m
+CONFIG_IP_NF_NETBIOS_NS=m
 # CONFIG_IP_NF_TFTP is not set
 # CONFIG_IP_NF_AMANDA is not set
+CONFIG_IP_NF_PPTP=m
 CONFIG_IP_NF_QUEUE=m
 CONFIG_IP_NF_IPTABLES=m
 CONFIG_IP_NF_MATCH_LIMIT=m
@@ -219,13 +315,16 @@
 # 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=m
 # CONFIG_IP_NF_MATCH_COMMENT is not set
 # CONFIG_IP_NF_MATCH_HASHLIMIT is not set
+CONFIG_IP_NF_MATCH_STRING=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_TARGET_NFQUEUE=m
 CONFIG_IP_NF_NAT=m
 CONFIG_IP_NF_NAT_NEEDED=y
 CONFIG_IP_NF_TARGET_MASQUERADE=m
@@ -235,19 +334,46 @@
 CONFIG_IP_NF_NAT_SNMP_BASIC=m
 CONFIG_IP_NF_NAT_IRC=m
 CONFIG_IP_NF_NAT_FTP=m
+CONFIG_IP_NF_NAT_PPTP=m
 CONFIG_IP_NF_MANGLE=m
 CONFIG_IP_NF_TARGET_TOS=m
 # CONFIG_IP_NF_TARGET_ECN is not set
 # CONFIG_IP_NF_TARGET_DSCP is not set
 CONFIG_IP_NF_TARGET_MARK=m
 # CONFIG_IP_NF_TARGET_CLASSIFY is not set
+CONFIG_IP_NF_TARGET_TTL=m
 # CONFIG_IP_NF_RAW is not set
 CONFIG_IP_NF_ARPTABLES=m
 CONFIG_IP_NF_ARPFILTER=m
 # CONFIG_IP_NF_ARP_MANGLE is not set
+
+#
+# Bridge: Netfilter Configuration
+#
 # CONFIG_BRIDGE_NF_EBTABLES is not set
-CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
+
+#
+# DCCP Configuration (EXPERIMENTAL)
+#
+CONFIG_IP_DCCP=m
+CONFIG_INET_DCCP_DIAG=m
+
+#
+# DCCP CCIDs Configuration (EXPERIMENTAL)
+#
+CONFIG_IP_DCCP_CCID3=m
+CONFIG_IP_DCCP_TFRC_LIB=m
+
+#
+# DCCP Kernel Hacking
+#
+# CONFIG_IP_DCCP_DEBUG is not set
+# CONFIG_IP_DCCP_UNLOAD_HACK is not set
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
 CONFIG_ATM=y
 CONFIG_ATM_CLIP=y
 # CONFIG_ATM_CLIP_NO_ICMP is not set
@@ -257,7 +383,9 @@
 # CONFIG_ATM_BR2684_IPFILTER is not set
 CONFIG_BRIDGE=m
 CONFIG_VLAN_8021Q=m
+# CONFIG_DECNET is not set
 CONFIG_LLC=m
+# CONFIG_LLC2 is not set
 CONFIG_IPX=m
 # CONFIG_IPX_INTERN is not set
 CONFIG_ATALK=m
@@ -267,9 +395,8 @@
 CONFIG_IPDDP_DECAP=y
 CONFIG_X25=m
 CONFIG_LAPB=m
+# CONFIG_NET_DIVERT is not set
 CONFIG_ECONET=m
-CONFIG_ECONET_AUNUDP=y
-CONFIG_ECONET_NATIVE=y
 CONFIG_WAN_ROUTER=m
 CONFIG_NET_SCHED=y
 CONFIG_NET_SCH_CLK_JIFFIES=y
@@ -294,7 +421,6 @@
 # CONFIG_NET_CLS_BASIC is not set
 CONFIG_NET_CLS_TCINDEX=m
 CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_ROUTE=y
 CONFIG_NET_CLS_FW=m
 CONFIG_NET_CLS_U32=m
 # CONFIG_CLS_U32_PERF is not set
@@ -305,14 +431,371 @@
 # CONFIG_NET_EMATCH is not set
 # CONFIG_NET_CLS_ACT is not set
 CONFIG_NET_CLS_POLICE=y
+
+#
+# Network testing
+#
 CONFIG_NET_PKTGEN=m
+# CONFIG_HAMRADIO is not set
 # CONFIG_IRDA is not set
+# CONFIG_BT is not set
+CONFIG_IEEE80211=m
+# CONFIG_IEEE80211_DEBUG is not set
+CONFIG_IEEE80211_CRYPT_WEP=m
+CONFIG_IEEE80211_CRYPT_CCMP=m
+CONFIG_IEEE80211_CRYPT_TKIP=m
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=m
+# CONFIG_DEBUG_DRIVER is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+CONFIG_MTD_REDBOOT_PARTS=y
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
+# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
+# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+# CONFIG_MTD_AFS_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=y
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_GEN_PROBE=y
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_CFI_INTELEXT=y
+# CONFIG_MTD_CFI_AMDSTD is not set
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
+CONFIG_MTD_RAM=m
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+# CONFIG_MTD_XIP is not set
+
+#
+# Mapping drivers for chip access
+#
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+# CONFIG_MTD_PHYSMAP is not set
+# CONFIG_MTD_ARM_INTEGRATOR is not set
+CONFIG_MTD_IXP4XX=y
+# CONFIG_MTD_EDB7312 is not set
+# CONFIG_MTD_PCI is not set
+CONFIG_MTD_PLATRAM=m
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLKMTD is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+
+#
+# NAND Flash Device Drivers
+#
+CONFIG_MTD_NAND=m
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+CONFIG_MTD_NAND_IDS=m
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+# CONFIG_MTD_NAND_NANDSIM is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play support
+#
+
+#
+# Block devices
+#
+# 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 is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_SX8 is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=8192
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_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
+#
+CONFIG_IDE=y
+CONFIG_BLK_DEV_IDE=y
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_BLK_DEV_IDEDISK=y
+# CONFIG_IDEDISK_MULTI_MODE is not set
+# CONFIG_BLK_DEV_IDECD is not set
+# 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_IDEPCI=y
+# CONFIG_IDEPCI_SHARE_IRQ is not set
+# CONFIG_BLK_DEV_OFFBOARD is not set
+# CONFIG_BLK_DEV_GENERIC is not set
+# CONFIG_BLK_DEV_OPTI621 is not set
+# CONFIG_BLK_DEV_SL82C105 is not set
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
+# CONFIG_IDEDMA_PCI_AUTO is not set
+# CONFIG_BLK_DEV_AEC62XX is not set
+# CONFIG_BLK_DEV_ALI15X3 is not set
+# CONFIG_BLK_DEV_AMD74XX is not set
+CONFIG_BLK_DEV_CMD64X=y
+# CONFIG_BLK_DEV_TRIFLEX is not set
+# CONFIG_BLK_DEV_CY82C693 is not set
+# CONFIG_BLK_DEV_CS5520 is not set
+# CONFIG_BLK_DEV_CS5530 is not set
+# CONFIG_BLK_DEV_HPT34X is not set
+CONFIG_BLK_DEV_HPT366=y
+# CONFIG_BLK_DEV_SC1200 is not set
+# CONFIG_BLK_DEV_PIIX is not set
+CONFIG_BLK_DEV_IT821X=m
+# CONFIG_BLK_DEV_NS87415 is not set
+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
+CONFIG_BLK_DEV_PDC202XX_NEW=y
+# CONFIG_PDC202XX_FORCE is not set
+# CONFIG_BLK_DEV_SVWKS is not set
+# CONFIG_BLK_DEV_SIIMAGE is not set
+# CONFIG_BLK_DEV_SLC90E66 is not set
+# CONFIG_BLK_DEV_TRM290 is not set
+# CONFIG_BLK_DEV_VIA82CXXX is not set
+# CONFIG_IDE_ARM is not set
+CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDEDMA_IVB is not set
+# CONFIG_IDEDMA_AUTO is not set
+# CONFIG_BLK_DEV_HD is not set
+
+#
+# SCSI device support
+#
+CONFIG_RAID_ATTRS=m
+CONFIG_SCSI=m
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_SCH=m
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+CONFIG_SCSI_MULTI_LUN=y
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
+
+#
+# SCSI Transport Attributes
+#
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_FC_ATTRS=m
+CONFIG_SCSI_ISCSI_ATTRS=m
+CONFIG_SCSI_SAS_ATTRS=m
+
+#
+# SCSI low-level drivers
+#
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+CONFIG_AIC7XXX_DEBUG_ENABLE=y
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_AIC7XXX_OLD=m
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+CONFIG_AIC79XX_ENABLE_RD_STRM=y
+CONFIG_AIC79XX_DEBUG_ENABLE=y
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+# CONFIG_SCSI_DPT_I2O is not set
+# CONFIG_MEGARAID_NEWGEN is not set
+# CONFIG_MEGARAID_LEGACY is not set
+CONFIG_MEGARAID_SAS=m
+CONFIG_SCSI_SATA=m
+CONFIG_SCSI_SATA_AHCI=m
+CONFIG_SCSI_SATA_SVW=m
+CONFIG_SCSI_ATA_PIIX=m
+CONFIG_SCSI_SATA_MV=m
+CONFIG_SCSI_SATA_NV=m
+CONFIG_SCSI_SATA_PROMISE=m
+CONFIG_SCSI_SATA_QSTOR=m
+CONFIG_SCSI_SATA_SX4=m
+CONFIG_SCSI_SATA_SIL=m
+CONFIG_SCSI_SATA_SIS=m
+CONFIG_SCSI_SATA_ULI=m
+CONFIG_SCSI_SATA_VIA=m
+CONFIG_SCSI_SATA_VITESSE=m
+# CONFIG_SCSI_BUSLOGIC is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_EATA 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_SYM53C8XX_2 is not set
+# CONFIG_SCSI_IPR is not set
+# CONFIG_SCSI_QLOGIC_FC is not set
+# CONFIG_SCSI_QLOGIC_1280 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
+# CONFIG_SCSI_DEBUG is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+
+#
+# Fusion MPT device support
+#
+CONFIG_FUSION=y
+CONFIG_FUSION_SPI=m
+CONFIG_FUSION_FC=m
+CONFIG_FUSION_SAS=m
+CONFIG_FUSION_MAX_SGE=40
+CONFIG_FUSION_CTL=m
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_IEEE1394 is not set
+
+#
+# I2O device support
+#
+# CONFIG_I2O is not set
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
 CONFIG_DUMMY=y
+# CONFIG_BONDING is not set
+# CONFIG_TUN is not set
+
+#
+# ARCnet devices
+#
 # CONFIG_ARCNET is not set
+
+#
+# PHY device support
+#
+CONFIG_PHYLIB=m
+CONFIG_PHYCONTROL=y
+
+#
+# MII PHY device drivers
+#
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
 CONFIG_MII=y
 # CONFIG_HAPPYMEAL is not set
 # CONFIG_SUNGEM is not set
+CONFIG_CASSINI=m
 # CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_SMC91X is not set
+# CONFIG_DM9000 is not set
+
+#
+# Tulip family network device support
+#
 # CONFIG_NET_TULIP is not set
 # CONFIG_HP100 is not set
 CONFIG_NET_PCI=y
@@ -333,28 +816,72 @@
 # CONFIG_SUNDANCE is not set
 # CONFIG_TLAN is not set
 # CONFIG_VIA_RHINE is not set
+
+#
+# Ethernet (1000 Mbit)
+#
 # 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=m
+CONFIG_SKGE=m
 # CONFIG_SK98LIN is not set
 # CONFIG_VIA_VELOCITY is not set
 # CONFIG_TIGON3 is not set
 # CONFIG_BNX2 is not set
+
+#
+# Ethernet (10000 Mbit)
+#
+CONFIG_CHELSIO_T1=m
 # CONFIG_IXGB is not set
 # CONFIG_S2IO is not set
+
+#
+# Token Ring devices
+#
 # CONFIG_TR is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
 CONFIG_NET_RADIO=y
+
+#
+# Obsolete Wireless cards support (pre-802.11)
+#
 # CONFIG_STRIP is not set
+
+#
+# Wireless 802.11b ISA/PCI cards support
+#
+CONFIG_IPW2100=m
+CONFIG_IPW2100_MONITOR=y
+# CONFIG_IPW_DEBUG is not set
+CONFIG_IPW2200=m
 CONFIG_HERMES=y
 # CONFIG_PLX_HERMES is not set
 # CONFIG_TMD_HERMES is not set
+CONFIG_NORTEL_HERMES=m
 CONFIG_PCI_HERMES=y
 # CONFIG_ATMEL is not set
+
+#
+# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
+#
 # CONFIG_PRISM54 is not set
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
 CONFIG_NET_WIRELESS=y
+
+#
+# Wan interfaces
+#
 CONFIG_WAN=y
 # CONFIG_DSCC4 is not set
 # CONFIG_LANMEDIA is not set
@@ -377,6 +904,10 @@
 # CONFIG_CYCLADES_SYNC is not set
 # CONFIG_LAPBETHER is not set
 # CONFIG_X25_ASY is not set
+
+#
+# ATM drivers
+#
 CONFIG_ATM_TCP=m
 # CONFIG_ATM_LANAI is not set
 # CONFIG_ATM_ENI is not set
@@ -393,30 +924,128 @@
 # CONFIG_HIPPI 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
+#
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_TSDEV is not set
 # CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
 # CONFIG_INPUT_KEYBOARD is not set
 # CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
 # CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
 # CONFIG_VT is not set
 # CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
 CONFIG_SERIAL_8250=y
 CONFIG_SERIAL_8250_CONSOLE=y
 CONFIG_SERIAL_8250_NR_UARTS=2
 # CONFIG_SERIAL_8250_EXTENDED is not set
+
+#
+# Non-8250 serial port support
+#
+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
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
 CONFIG_WATCHDOG=y
 # CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
 # CONFIG_SOFT_WATCHDOG is not set
 CONFIG_IXP4XX_WATCHDOG=y
+
+#
+# PCI-based Watchdog Cards
+#
 # CONFIG_PCIPCWATCHDOG is not set
 # CONFIG_WDTPCI is not set
 # CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
 # CONFIG_APPLICOM is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_DRM is not set
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+# CONFIG_TCG_TPM is not set
+
+#
+# I2C support
+#
 CONFIG_I2C=y
 CONFIG_I2C_CHARDEV=y
+
+#
+# I2C Algorithms
+#
 CONFIG_I2C_ALGOBIT=y
+# CONFIG_I2C_ALGOPCF is not set
+# CONFIG_I2C_ALGOPCA is not set
+
+#
+# I2C Hardware Bus support
+#
 # CONFIG_I2C_ALI1535 is not set
 # CONFIG_I2C_ALI1563 is not set
 # CONFIG_I2C_ALI15X3 is not set
@@ -426,34 +1055,132 @@
 # CONFIG_I2C_I810 is not set
 # CONFIG_I2C_PIIX4 is not set
 # CONFIG_I2C_IOP3XX is not set
+CONFIG_I2C_ISA=m
 CONFIG_I2C_IXP4XX=y
 # CONFIG_I2C_NFORCE2 is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
 # CONFIG_I2C_PROSAVAGE is not set
 # CONFIG_I2C_SAVAGE4 is not set
 # CONFIG_SCx200_ACB is not set
 # CONFIG_I2C_SIS5595 is not set
 # CONFIG_I2C_SIS630 is not set
 # CONFIG_I2C_SIS96X is not set
+# CONFIG_I2C_STUB is not set
 # CONFIG_I2C_VIA is not set
 # CONFIG_I2C_VIAPRO is not set
 # CONFIG_I2C_VOODOO3 is not set
-CONFIG_I2C_SENSOR=y
+# CONFIG_I2C_PCA_ISA is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_SENSORS_DS1337 is not set
+CONFIG_SENSORS_DS1374=m
+CONFIG_SENSORS_EEPROM=y
+# CONFIG_SENSORS_PCF8574 is not set
+CONFIG_SENSORS_PCA9539=m
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_RTC8564 is not set
+CONFIG_SENSORS_MAX6875=m
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+
+#
+# Hardware Monitoring support
+#
+CONFIG_HWMON=y
+CONFIG_HWMON_VID=m
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+CONFIG_SENSORS_ADM9240=m
+# CONFIG_SENSORS_ASB100 is not set
+CONFIG_SENSORS_ATXP1=m
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_FSCHER is not set
+# CONFIG_SENSORS_FSCPOS is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_LM63 is not set
 # CONFIG_SENSORS_LM75 is not set
+# CONFIG_SENSORS_LM77 is not set
 # CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
 # CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM87 is not set
+# CONFIG_SENSORS_LM90 is not set
 # CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_PC87360 is not set
 # CONFIG_SENSORS_SIS5595 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
 # CONFIG_SENSORS_VIA686A is not set
-# CONFIG_SENSORS_DS1337 is not set
-CONFIG_SENSORS_EEPROM=y
+# CONFIG_SENSORS_W83781D is not set
+CONFIG_SENSORS_W83792D=m
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83627HF is not set
+CONFIG_SENSORS_W83627EHF=m
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Misc devices
+#
+
+#
+# Multimedia Capabilities Port drivers
+#
+
+#
+# Multimedia devices
+#
 # CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+# CONFIG_DVB is not set
+
+#
+# Graphics support
+#
 # CONFIG_FB is not set
+
+#
+# Sound
+#
 # CONFIG_SOUND is not set
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=y
 CONFIG_USB_ARCH_HAS_OHCI=y
 # CONFIG_USB is not set
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# MMC/SD Card support
+#
+# CONFIG_MMC is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
 CONFIG_EXT2_FS_XATTR=y
 CONFIG_EXT2_FS_POSIX_ACL=y
 # CONFIG_EXT2_FS_SECURITY is not set
+# CONFIG_EXT2_FS_XIP is not set
 CONFIG_EXT3_FS=y
 CONFIG_EXT3_FS_XATTR=y
 CONFIG_EXT3_FS_POSIX_ACL=y
@@ -461,34 +1188,190 @@
 CONFIG_JBD=y
 # CONFIG_JBD_DEBUG is not set
 CONFIG_FS_MBCACHE=y
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+CONFIG_FS_POSIX_ACL=y
+# CONFIG_XFS_FS is not set
+CONFIG_MINIX_FS=m
+CONFIG_ROMFS_FS=m
+CONFIG_INOTIFY=y
+CONFIG_QUOTA=y
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+CONFIG_DNOTIFY=y
+CONFIG_AUTOFS_FS=m
+CONFIG_AUTOFS4_FS=m
+CONFIG_FUSE_FS=m
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_ZISOFS_FS=m
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_RW=y
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_SYSFS=y
 CONFIG_TMPFS=y
-# CONFIG_TMPFS_XATTR is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+CONFIG_RELAYFS_FS=m
+
+#
+# Miscellaneous filesystems
+#
 # CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
 # CONFIG_ASFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
 # CONFIG_JFFS_FS is not set
 CONFIG_JFFS2_FS=y
 CONFIG_JFFS2_FS_DEBUG=0
-# CONFIG_JFFS2_FS_NAND is not set
-# CONFIG_JFFS2_FS_NOR_ECC is not set
+CONFIG_JFFS2_FS_WRITEBUFFER=y
 # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
 CONFIG_JFFS2_ZLIB=y
 CONFIG_JFFS2_RTIME=y
 # CONFIG_JFFS2_RUBIN is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=y
 CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+# CONFIG_NFS_V4 is not set
+# CONFIG_NFS_DIRECTIO is not set
 # CONFIG_NFSD is not set
 CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
 CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+# 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=m
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
 # CONFIG_ACORN_PARTITION is not set
 # CONFIG_OSF_PARTITION is not set
 # CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
 # CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
 # CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
 # CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
 # CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
 # CONFIG_SUN_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+
+#
+# Native Language Support
+#
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=m
+
+#
+# Profiling support
+#
+# CONFIG_PROFILING is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
 CONFIG_DEBUG_KERNEL=y
 CONFIG_MAGIC_SYSRQ=y
 CONFIG_LOG_BUF_SHIFT=14
+CONFIG_DETECT_SOFTLOCKUP=y
 # CONFIG_SCHEDSTATS is not set
 # CONFIG_DEBUG_SLAB is not set
 # CONFIG_DEBUG_SPINLOCK is not set
@@ -497,11 +1380,74 @@
 CONFIG_DEBUG_BUGVERBOSE=y
 # CONFIG_DEBUG_INFO is not set
 # CONFIG_DEBUG_FS is not set
+CONFIG_FRAME_POINTER=y
 # CONFIG_DEBUG_USER is not set
 # CONFIG_DEBUG_WAITQ is not set
 CONFIG_DEBUG_ERRORS=y
 CONFIG_DEBUG_LL=y
 # CONFIG_DEBUG_ICEDCC is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+CONFIG_SECURITY=y
+# CONFIG_SECURITY_NETWORK is not set
+CONFIG_SECURITY_CAPABILITIES=y
+CONFIG_SECURITY_SECLVL=m
+CONFIG_SECURITY_SELINUX=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0
+CONFIG_SECURITY_SELINUX_DISABLE=y
+CONFIG_SECURITY_SELINUX_DEVELOP=y
+CONFIG_SECURITY_SELINUX_AVC_STATS=y
+CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_TGR192=m
+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_DEFLATE=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Hardware crypto devices
+#
+
+#
+# Library routines
+#
 # CONFIG_CRC_CCITT is not set
+CONFIG_CRC16=m
+CONFIG_CRC32=y
+CONFIG_LIBCRC32C=m
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_SCSI_QLA2XXX=m

Modified: people/waldi/linux-2.6/debian/arch/arm/config.rpc
===================================================================
--- people/waldi/linux-2.6/debian/arch/arm/config.rpc	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/arm/config.rpc	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,15 +1,93 @@
+CONFIG_UID16=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
 CONFIG_FIQ=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
 CONFIG_CLEAN_COMPILE=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+# CONFIG_POSIX_MQUEUE is not set
+CONFIG_BSD_PROCESS_ACCT=y
+# CONFIG_BSD_PROCESS_ACCT_V3 is not set
+CONFIG_SYSCTL=y
+CONFIG_AUDIT=y
+CONFIG_HOTPLUG=y
+CONFIG_KOBJECT_UEVENT=y
+# CONFIG_IKCONFIG is not set
+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=y
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
 CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_OBSOLETE_MODPARM=y
 # CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+
+#
+# System Type
+#
+# CONFIG_ARCH_CLPS7500 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CO285 is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_CAMELOT is not set
 # CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_IOP3XX is not set
 # CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_PXA is not set
 CONFIG_ARCH_RPC=y
+# CONFIG_ARCH_SA1100 is not set
 # CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_OMAP is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_AAEC2000 is not set
 CONFIG_ARCH_ACORN=y
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
 CONFIG_CPU_ARM610=y
 CONFIG_CPU_ARM710=y
 CONFIG_CPU_SA110=y
@@ -17,20 +95,190 @@
 CONFIG_CPU_ABRT_EV4=y
 CONFIG_CPU_CACHE_V3=y
 CONFIG_CPU_CACHE_V4WB=y
+CONFIG_CPU_CACHE_VIVT=y
 CONFIG_CPU_COPY_V3=y
 CONFIG_CPU_COPY_V4WB=y
 CONFIG_CPU_TLB_V3=y
 CONFIG_CPU_TLB_V4WB=y
+
+#
+# Processor Features
+#
 CONFIG_TIMER_ACORN=y
+
+#
+# Bus support
+#
 CONFIG_ISA_DMA_API=y
-# CONFIG_SMP is not set
-# CONFIG_DISCONTIGMEM is not set
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+# CONFIG_PREEMPT is not set
+# CONFIG_NO_IDLE_HZ is not set
+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
+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_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
 CONFIG_CMDLINE=""
+# CONFIG_XIP_KERNEL is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+CONFIG_FPE_NWFPE=y
 # CONFIG_FPE_NWFPE_XP is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
 CONFIG_BINFMT_AOUT=y
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_ARTHUR is not set
+
+#
+# Power management options
+#
 # CONFIG_PM is not set
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+# CONFIG_PACKET is not set
+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 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=m
+CONFIG_INET_TCP_DIAG=m
+CONFIG_TCP_CONG_ADVANCED=y
+
+#
+# TCP congestion control
+#
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_IPV6=m
+# 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=m
+CONFIG_INET_DCCP_DIAG=m
+
+#
+# DCCP CCIDs Configuration (EXPERIMENTAL)
+#
+CONFIG_IP_DCCP_CCID3=m
+CONFIG_IP_DCCP_TFRC_LIB=m
+
+#
+# DCCP Kernel Hacking
+#
+# CONFIG_IP_DCCP_DEBUG is not set
+# CONFIG_IP_DCCP_UNLOAD_HACK 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
+
+#
+# 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=m
+# CONFIG_IEEE80211_DEBUG is not set
+CONFIG_IEEE80211_CRYPT_WEP=m
+CONFIG_IEEE80211_CRYPT_CCMP=m
+CONFIG_IEEE80211_CRYPT_TKIP=m
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=m
 # CONFIG_DEBUG_DRIVER is not set
+
+#
+# Memory Technology Devices (MTD)
+#
 # CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
 CONFIG_PARPORT=y
 CONFIG_PARPORT_PC=y
 CONFIG_PARPORT_PC_FIFO=y
@@ -38,17 +286,61 @@
 # CONFIG_PARPORT_ARC is not set
 # CONFIG_PARPORT_GSC is not set
 # CONFIG_PARPORT_1284 is not set
+
+#
+# Plug and Play support
+#
+
+#
+# Block devices
+#
 CONFIG_BLK_DEV_FD=y
 # CONFIG_PARIDE is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
 CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD 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
+
+#
+# Acorn-specific block devices
+#
+
+#
+# ATA/ATAPI/MFM/RLL support
+#
+CONFIG_IDE=y
+CONFIG_BLK_DEV_IDE=y
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_BLK_DEV_IDEDISK=y
 CONFIG_IDEDISK_MULTI_MODE=y
 CONFIG_BLK_DEV_IDECD=y
 # 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_IDE_ARM=y
 CONFIG_BLK_DEV_IDE_ICSIDE=y
 CONFIG_BLK_DEV_IDEDMA_ICS=y
@@ -57,53 +349,134 @@
 CONFIG_BLK_DEV_IDEDMA=y
 # CONFIG_IDEDMA_IVB is not set
 CONFIG_IDEDMA_AUTO=y
+# CONFIG_BLK_DEV_HD is not set
+
+#
+# SCSI device support
+#
+CONFIG_RAID_ATTRS=m
+CONFIG_SCSI=m
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_SCH=m
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+CONFIG_SCSI_MULTI_LUN=y
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
+
+#
+# SCSI Transport Attributes
+#
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_FC_ATTRS=m
+CONFIG_SCSI_ISCSI_ATTRS=m
+CONFIG_SCSI_SAS_ATTRS=m
+
+#
+# SCSI low-level drivers
+#
+CONFIG_SCSI_SATA=m
 CONFIG_SCSI_PPA=m
 CONFIG_SCSI_IMM=m
 # CONFIG_SCSI_IZIP_EPP16 is not set
 # CONFIG_SCSI_IZIP_SLOW_CTR is not set
 # CONFIG_SCSI_DEBUG is not set
-# CONFIG_SCSI_ACORNSCSI_3 is not set
 CONFIG_SCSI_ARXESCSI=m
 CONFIG_SCSI_CUMANA_2=m
 CONFIG_SCSI_EESOXSCSI=m
-CONFIG_SCSI_POWERTECSCSI=y
+CONFIG_SCSI_POWERTECSCSI=m
+
+#
+# The following drivers are not fully supported
+#
 CONFIG_SCSI_CUMANA_1=m
 CONFIG_SCSI_OAK1=m
-# CONFIG_PACKET is not set
-# CONFIG_IP_ADVANCED_ROUTER is not set
-# CONFIG_IP_PNP is not set
-# CONFIG_NET_IPGRE is not set
-# CONFIG_IP_MROUTE is not set
-# CONFIG_SYN_COOKIES is not set
-# CONFIG_INET_TUNNEL is not set
-# CONFIG_IP_TCPDIAG 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 is not set
-# CONFIG_INET6_TUNNEL is not set
-# CONFIG_IPV6_TUNNEL is not set
-# CONFIG_NETFILTER is not set
-# CONFIG_ATM is not set
-# CONFIG_BRIDGE is not set
-# CONFIG_VLAN_8021Q is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_X25 is not set
-# CONFIG_LAPB 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
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_IRDA is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+
+#
+# I2O device support
+#
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
 # CONFIG_DUMMY is not set
-# CONFIG_MII is not set
+# CONFIG_BONDING is not set
+# CONFIG_TUN is not set
+
+#
+# PHY device support
+#
+CONFIG_PHYLIB=m
+CONFIG_PHYCONTROL=y
+
+#
+# MII PHY device drivers
+#
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=m
 CONFIG_ARM_ETHER1=y
 CONFIG_ARM_ETHER3=y
 CONFIG_ARM_ETHERH=y
+# CONFIG_SMC91X is not set
+# CONFIG_DM9000 is not set
+# CONFIG_NET_POCKET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+
+#
+# Ethernet (10000 Mbit)
+#
+
+#
+# Token Ring devices
+#
+
+#
+# Wireless LAN (non-hamradio)
+#
 # CONFIG_NET_RADIO is not set
+
+#
+# Wan interfaces
+#
 # CONFIG_WAN is not set
 # CONFIG_PLIP is not set
 CONFIG_PPP=m
@@ -115,7 +488,36 @@
 # CONFIG_PPP_BSDCOMP is not set
 CONFIG_PPPOE=m
 # 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
+#
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_TSDEV is not set
 CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
 CONFIG_INPUT_KEYBOARD=y
 CONFIG_KEYBOARD_ATKBD=y
 # CONFIG_KEYBOARD_SUNKBD is not set
@@ -127,41 +529,172 @@
 # CONFIG_MOUSE_SERIAL is not set
 CONFIG_MOUSE_RISCPC=y
 # CONFIG_MOUSE_VSXXXAA is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
 CONFIG_SERIO=y
 # CONFIG_SERIO_SERPORT is not set
 # CONFIG_SERIO_PARKBD is not set
 CONFIG_SERIO_RPCKBD=y
 CONFIG_SERIO_LIBPS2=y
 # CONFIG_SERIO_RAW is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
 CONFIG_VT=y
 CONFIG_VT_CONSOLE=y
 CONFIG_HW_CONSOLE=y
 # CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
 CONFIG_SERIAL_8250=y
 CONFIG_SERIAL_8250_CONSOLE=y
 CONFIG_SERIAL_8250_NR_UARTS=16
 # CONFIG_SERIAL_8250_EXTENDED is not set
 CONFIG_SERIAL_8250_ACORN=y
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
 CONFIG_LEGACY_PTY_COUNT=64
 CONFIG_PRINTER=m
 # CONFIG_LP_CONSOLE is not set
 # CONFIG_PPDEV is not set
 # CONFIG_TIPAR is not set
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
 # CONFIG_WATCHDOG is not set
 # CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+
+#
+# I2C support
+#
 CONFIG_I2C=y
 CONFIG_I2C_CHARDEV=y
+
+#
+# I2C Algorithms
+#
 CONFIG_I2C_ALGOBIT=y
+# CONFIG_I2C_ALGOPCF is not set
+# CONFIG_I2C_ALGOPCA is not set
+
+#
+# I2C Hardware Bus support
+#
+CONFIG_I2C_ISA=m
 # CONFIG_I2C_PARPORT is not set
-# CONFIG_I2C_SENSOR is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_PCA_ISA is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_SENSORS_DS1337 is not set
+CONFIG_SENSORS_DS1374=m
+# CONFIG_SENSORS_EEPROM is not set
+# CONFIG_SENSORS_PCF8574 is not set
+CONFIG_SENSORS_PCA9539=m
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_RTC8564 is not set
+CONFIG_SENSORS_MAX6875=m
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+
+#
+# Hardware Monitoring support
+#
+CONFIG_HWMON=y
+CONFIG_HWMON_VID=m
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+CONFIG_SENSORS_ADM9240=m
+# CONFIG_SENSORS_ASB100 is not set
+CONFIG_SENSORS_ATXP1=m
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_FSCHER is not set
+# CONFIG_SENSORS_FSCPOS is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_LM63 is not set
 # CONFIG_SENSORS_LM75 is not set
+# CONFIG_SENSORS_LM77 is not set
 # CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
 # CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM87 is not set
+# CONFIG_SENSORS_LM90 is not set
 # CONFIG_SENSORS_LM92 is not set
-# CONFIG_SENSORS_DS1337 is not set
-# CONFIG_SENSORS_EEPROM is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_W83781D is not set
+CONFIG_SENSORS_W83792D=m
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83627HF is not set
+CONFIG_SENSORS_W83627EHF=m
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Misc devices
+#
+
+#
+# Multimedia Capabilities Port drivers
+#
+
+#
+# Multimedia devices
+#
 # CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+# CONFIG_DVB is not set
+
+#
+# Graphics support
+#
 CONFIG_FB=y
 CONFIG_FB_CFB_FILLRECT=y
 CONFIG_FB_CFB_COPYAREA=y
@@ -173,30 +706,47 @@
 CONFIG_FB_ACORN=y
 # CONFIG_FB_S1D13XXX is not set
 # CONFIG_FB_VIRTUAL is not set
+
+#
+# Console display driver support
+#
 CONFIG_DUMMY_CONSOLE=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
 CONFIG_FONTS=y
 # CONFIG_FONT_8x8 is not set
 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=y
 # 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
+#
 CONFIG_LOGO=y
 CONFIG_LOGO_LINUX_MONO=y
 CONFIG_LOGO_LINUX_VGA16=y
 CONFIG_LOGO_LINUX_CLUT224=y
 # CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Sound
+#
 CONFIG_SOUND=m
+
+#
+# Advanced Linux Sound Architecture
+#
 # CONFIG_SND is not set
+
+#
+# Open Sound System
+#
 CONFIG_SOUND_PRIME=m
-# CONFIG_SOUND_BT878 is not set
-# CONFIG_SOUND_FUSION is not set
-# CONFIG_SOUND_CS4281 is not set
-# CONFIG_SOUND_SONICVIBES is not set
-# CONFIG_SOUND_TRIDENT is not set
 # CONFIG_SOUND_MSNDCLAS is not set
 # CONFIG_SOUND_MSNDPIN is not set
 CONFIG_SOUND_OSS=m
@@ -229,9 +779,30 @@
 CONFIG_SOUND_VIDC=m
 # CONFIG_SOUND_TVMIXER is not set
 # CONFIG_SOUND_AD1980 is not set
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=y
 # CONFIG_USB_ARCH_HAS_OHCI is not set
 # CONFIG_USB is not set
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# MMC/SD Card support
+#
+# CONFIG_MMC is not set
+
+#
+# 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=y
 # CONFIG_EXT3_FS_POSIX_ACL is not set
@@ -239,12 +810,106 @@
 CONFIG_JBD=y
 # CONFIG_JBD_DEBUG is not set
 CONFIG_FS_MBCACHE=y
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+CONFIG_FS_POSIX_ACL=y
+# CONFIG_XFS_FS is not set
+CONFIG_MINIX_FS=m
+CONFIG_ROMFS_FS=m
+CONFIG_INOTIFY=y
+CONFIG_QUOTA=y
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+CONFIG_DNOTIFY=y
+CONFIG_AUTOFS_FS=m
+CONFIG_AUTOFS4_FS=m
+CONFIG_FUSE_FS=m
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_ZISOFS_FS=m
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_RW=y
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_SYSFS=y
 # CONFIG_TMPFS is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+CONFIG_RELAYFS_FS=m
+
+#
+# Miscellaneous filesystems
+#
 CONFIG_ADFS_FS=y
 # CONFIG_ADFS_FS_RW is not set
+# CONFIG_AFFS_FS is not set
 # CONFIG_ASFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=y
 # CONFIG_NFS_V3 is not set
+# CONFIG_NFS_V4 is not set
+# CONFIG_NFS_DIRECTIO is not set
 # CONFIG_NFSD is not set
+CONFIG_LOCKD=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+# 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=m
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
 CONFIG_ACORN_PARTITION=y
 # CONFIG_ACORN_PARTITION_CUMANA is not set
 # CONFIG_ACORN_PARTITION_EESOX is not set
@@ -254,14 +919,76 @@
 CONFIG_ACORN_PARTITION_RISCIX=y
 CONFIG_OSF_PARTITION=y
 CONFIG_AMIGA_PARTITION=y
+# CONFIG_ATARI_PARTITION is not set
 CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
 CONFIG_BSD_DISKLABEL=y
+# CONFIG_MINIX_SUBPARTITION is not set
 CONFIG_SOLARIS_X86_PARTITION=y
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
 CONFIG_SGI_PARTITION=y
+# CONFIG_ULTRIX_PARTITION is not set
 CONFIG_SUN_PARTITION=y
+# CONFIG_EFI_PARTITION is not set
+
+#
+# Native Language Support
+#
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=m
+
+#
+# Profiling support
+#
+# CONFIG_PROFILING is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
 CONFIG_DEBUG_KERNEL=y
 CONFIG_MAGIC_SYSRQ=y
 CONFIG_LOG_BUF_SHIFT=14
+CONFIG_DETECT_SOFTLOCKUP=y
 # CONFIG_SCHEDSTATS is not set
 # CONFIG_DEBUG_SLAB is not set
 # CONFIG_DEBUG_SPINLOCK is not set
@@ -270,9 +997,69 @@
 CONFIG_DEBUG_BUGVERBOSE=y
 # CONFIG_DEBUG_INFO is not set
 # CONFIG_DEBUG_FS is not set
+CONFIG_FRAME_POINTER=y
 CONFIG_DEBUG_USER=y
 # CONFIG_DEBUG_WAITQ is not set
 CONFIG_DEBUG_ERRORS=y
 CONFIG_DEBUG_LL=y
 # CONFIG_DEBUG_ICEDCC is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+CONFIG_SECURITY=y
+# CONFIG_SECURITY_NETWORK is not set
+CONFIG_SECURITY_CAPABILITIES=y
+CONFIG_SECURITY_SECLVL=m
+CONFIG_SECURITY_SELINUX=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0
+CONFIG_SECURITY_SELINUX_DISABLE=y
+CONFIG_SECURITY_SELINUX_DEVELOP=y
+CONFIG_SECURITY_SELINUX_AVC_STATS=y
+CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_TGR192=m
+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_DEFLATE=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Hardware crypto devices
+#
+
+#
+# Library routines
+#
 # CONFIG_CRC_CCITT is not set
+CONFIG_CRC16=m
+CONFIG_CRC32=y
+CONFIG_LIBCRC32C=m
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m

Modified: people/waldi/linux-2.6/debian/arch/arm/config.s3c2410
===================================================================
--- people/waldi/linux-2.6/debian/arch/arm/config.s3c2410	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/arm/config.s3c2410	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,244 +1,92 @@
+CONFIG_UID16=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+# 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=y
+# CONFIG_BSD_PROCESS_ACCT_V3 is not set
+CONFIG_SYSCTL=y
+CONFIG_AUDIT=y
 CONFIG_HOTPLUG=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_BINFMT_MISC=m
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=m
-CONFIG_MD_LINEAR=m
-CONFIG_MD_RAID0=m
-CONFIG_MD_RAID1=m
-CONFIG_MD_RAID5=m
-CONFIG_MD_MULTIPATH=m
-CONFIG_BLK_DEV_DM=m
-CONFIG_DM_CRYPT=m
-CONFIG_DM_SNAPSHOT=m
-CONFIG_DM_MIRROR=m
-CONFIG_DM_ZERO=m
-CONFIG_DM_MULTIPATH=m
-CONFIG_NET_KEY=m
-CONFIG_NET_IPIP=m
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_TUNNEL=m
-CONFIG_IP_VS=m
-# CONFIG_IP_VS_DEBUG is not set
-CONFIG_IP_VS_TAB_BITS=12
-CONFIG_IP_VS_PROTO_TCP=y
-CONFIG_IP_VS_PROTO_UDP=y
-CONFIG_IP_VS_PROTO_ESP=y
-CONFIG_IP_VS_PROTO_AH=y
-CONFIG_IP_VS_RR=m
-CONFIG_IP_VS_WRR=m
-CONFIG_IP_VS_LC=m
-CONFIG_IP_VS_WLC=m
-CONFIG_IP_VS_LBLC=m
-CONFIG_IP_VS_LBLCR=m
-CONFIG_IP_VS_DH=m
-CONFIG_IP_VS_SH=m
-CONFIG_IP_VS_SED=m
-CONFIG_IP_VS_NQ=m
-CONFIG_IP_VS_FTP=m
-CONFIG_INET6_IPCOMP=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_IPV6_TUNNEL=m
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-CONFIG_IP_NF_CONNTRACK=m
-CONFIG_IP_NF_FTP=m
-CONFIG_IP_NF_QUEUE=m
-CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_LIMIT=m
-CONFIG_IP_NF_MATCH_MAC=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_TCPMSS=m
-CONFIG_IP_NF_MATCH_STATE=m
-CONFIG_IP_NF_MATCH_OWNER=m
-CONFIG_IP_NF_FILTER=m
-CONFIG_IP_NF_TARGET_REJECT=m
-CONFIG_IP_NF_TARGET_LOG=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_NAT_FTP=m
-CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_TOS=m
-CONFIG_IP_NF_TARGET_MARK=m
-CONFIG_XFRM=y
-CONFIG_XFRM_USER=m
-CONFIG_VLAN_8021Q=m
-CONFIG_NET_CLS_ROUTE=y
-CONFIG_BONDING=m
-CONFIG_EQUALIZER=m
-CONFIG_TUN=m
-CONFIG_EXT3_FS_XATTR=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-# CONFIG_JBD_DEBUG is not set
-CONFIG_XFS_FS=m
-CONFIG_XFS_EXPORT=y
-CONFIG_XFS_QUOTA=y
-CONFIG_XFS_POSIX_ACL=y
-CONFIG_TMPFS=y
-CONFIG_CRAMFS=y
-CONFIG_NFS_FS=m
-CONFIG_NFS_V3=y
-CONFIG_NFSD=m
-CONFIG_NFSD_V3=y
-CONFIG_NFSD_TCP=y
-CONFIG_LOCKD=m
-CONFIG_LOCKD_V4=y
-CONFIG_EXPORTFS=m
-CONFIG_SUNRPC=m
-CONFIG_CRYPTO=y
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_NULL=m
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_SHA256=m
-CONFIG_CRYPTO_SHA512=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_DEFLATE=m
-CONFIG_CRYPTO_CRC32C=m
-CONFIG_LIBCRC32C=m
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=m
-CONFIG_SECCOMP=y
-CONFIG_TCG_ATMEL=m
-CONFIG_TCG_NSC=m
-# CONFIG_IP_ROUTE_MULTIPATH_CACHED is not set
-CONFIG_POSIX_MQUEUE=y
-CONFIG_HOTPLUG=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_BINFMT_MISC=m
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=m
-CONFIG_MD_LINEAR=m
-CONFIG_MD_RAID0=m
-CONFIG_MD_RAID1=m
-CONFIG_MD_RAID5=m
-CONFIG_MD_MULTIPATH=m
-CONFIG_BLK_DEV_DM=m
-CONFIG_DM_CRYPT=m
-CONFIG_DM_SNAPSHOT=m
-CONFIG_DM_MIRROR=m
-CONFIG_DM_ZERO=m
-CONFIG_DM_MULTIPATH=m
-CONFIG_NET_KEY=m
-CONFIG_NET_IPIP=m
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_TUNNEL=m
-CONFIG_IP_VS=m
-# CONFIG_IP_VS_DEBUG is not set
-CONFIG_IP_VS_TAB_BITS=12
-CONFIG_IP_VS_PROTO_TCP=y
-CONFIG_IP_VS_PROTO_UDP=y
-CONFIG_IP_VS_PROTO_ESP=y
-CONFIG_IP_VS_PROTO_AH=y
-CONFIG_IP_VS_RR=m
-CONFIG_IP_VS_WRR=m
-CONFIG_IP_VS_LC=m
-CONFIG_IP_VS_WLC=m
-CONFIG_IP_VS_LBLC=m
-CONFIG_IP_VS_LBLCR=m
-CONFIG_IP_VS_DH=m
-CONFIG_IP_VS_SH=m
-CONFIG_IP_VS_SED=m
-CONFIG_IP_VS_NQ=m
-CONFIG_IP_VS_FTP=m
-CONFIG_INET6_IPCOMP=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_IPV6_TUNNEL=m
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-CONFIG_IP_NF_CONNTRACK=m
-CONFIG_IP_NF_FTP=m
-CONFIG_IP_NF_QUEUE=m
-CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_LIMIT=m
-CONFIG_IP_NF_MATCH_MAC=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_TCPMSS=m
-CONFIG_IP_NF_MATCH_STATE=m
-CONFIG_IP_NF_MATCH_OWNER=m
-CONFIG_IP_NF_FILTER=m
-CONFIG_IP_NF_TARGET_REJECT=m
-CONFIG_IP_NF_TARGET_LOG=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_NAT_FTP=m
-CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_TOS=m
-CONFIG_IP_NF_TARGET_MARK=m
-CONFIG_XFRM=y
-CONFIG_XFRM_USER=m
-CONFIG_VLAN_8021Q=m
-CONFIG_NET_CLS_ROUTE=y
-CONFIG_BONDING=m
-CONFIG_EQUALIZER=m
-CONFIG_TUN=m
-CONFIG_EXT3_FS_XATTR=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-# CONFIG_JBD_DEBUG is not set
-CONFIG_XFS_FS=m
-CONFIG_XFS_EXPORT=y
-CONFIG_XFS_QUOTA=y
-CONFIG_XFS_POSIX_ACL=y
-CONFIG_TMPFS=y
-CONFIG_CRAMFS=y
-CONFIG_NFS_FS=m
-CONFIG_NFS_V3=y
-CONFIG_NFSD=m
-CONFIG_NFSD_V3=y
-CONFIG_NFSD_TCP=y
-CONFIG_LOCKD=m
-CONFIG_LOCKD_V4=y
-CONFIG_EXPORTFS=m
-CONFIG_SUNRPC=m
-CONFIG_CRYPTO=y
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_NULL=m
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_SHA256=m
-CONFIG_CRYPTO_SHA512=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_DEFLATE=m
-CONFIG_CRYPTO_CRC32C=m
-CONFIG_LIBCRC32C=m
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=m
-CONFIG_SECCOMP=y
-CONFIG_TCG_ATMEL=m
-CONFIG_TCG_NSC=m
-# CONFIG_IP_ROUTE_MULTIPATH_CACHED is not set
-# CONFIG_CLEAN_COMPILE is not set
-CONFIG_BROKEN=y
+CONFIG_KOBJECT_UEVENT=y
+# CONFIG_IKCONFIG is not set
+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=y
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
 # CONFIG_MODULE_UNLOAD is not set
+CONFIG_OBSOLETE_MODPARM=y
 # CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+
+#
+# System Type
+#
+# CONFIG_ARCH_CLPS7500 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CO285 is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_CAMELOT is not set
 # CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_IOP3XX is not set
 # CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_PXA is not set
 # CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
 CONFIG_ARCH_S3C2410=y
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_OMAP is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_AAEC2000 is not set
+
+#
+# S3C24XX Implementations
+#
+# CONFIG_MACH_ANUBIS is not set
 CONFIG_ARCH_BAST=y
+CONFIG_BAST_PC104_IRQ=y
 CONFIG_ARCH_H1940=y
 CONFIG_MACH_N30=y
 CONFIG_ARCH_SMDK2410=y
@@ -249,29 +97,210 @@
 CONFIG_MACH_NEXCODER_2440=y
 CONFIG_CPU_S3C2410=y
 CONFIG_CPU_S3C2440=y
+
+#
+# S3C2410 Boot
+#
 # CONFIG_S3C2410_BOOT_WATCHDOG is not set
+
+#
+# S3C2410 Setup
+#
 CONFIG_S3C2410_DMA=y
 # CONFIG_S3C2410_DMA_DEBUG is not set
 # CONFIG_S3C2410_PM_DEBUG is not set
 # CONFIG_S3C2410_PM_CHECK is not set
+CONFIG_PM_SIMTEC=y
 CONFIG_S3C2410_LOWLEVEL_UART_PORT=0
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
 CONFIG_CPU_ARM920T=y
 CONFIG_CPU_32v4=y
 CONFIG_CPU_ABRT_EV4T=y
 CONFIG_CPU_CACHE_V4WT=y
+CONFIG_CPU_CACHE_VIVT=y
 CONFIG_CPU_COPY_V4WB=y
 CONFIG_CPU_TLB_V4WBI=y
+
+#
+# Processor Features
+#
 # CONFIG_ARM_THUMB is not set
 # CONFIG_CPU_ICACHE_DISABLE is not set
 # CONFIG_CPU_DCACHE_DISABLE is not set
 # CONFIG_CPU_DCACHE_WRITETHROUGH is not set
+
+#
+# Bus support
+#
+CONFIG_ISA_DMA_API=y
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+# CONFIG_SMP is not set
+# CONFIG_PREEMPT is not set
+# CONFIG_NO_IDLE_HZ is not set
+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
+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_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
 CONFIG_CMDLINE="root=/dev/hda1 ro init=/bin/bash console=ttySAC0"
+# CONFIG_XIP_KERNEL is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+CONFIG_FPE_NWFPE=y
 # CONFIG_FPE_NWFPE_XP is not set
 # CONFIG_FPE_FASTFPE is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
 CONFIG_BINFMT_AOUT=y
+CONFIG_BINFMT_MISC=m
+# CONFIG_ARTHUR is not set
+
+#
+# Power management options
+#
 CONFIG_PM=y
 CONFIG_APM=y
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
+CONFIG_NET_KEY=m
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# 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=m
+# CONFIG_NET_IPGRE 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=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_DIAG=m
+CONFIG_INET_TCP_DIAG=m
+CONFIG_TCP_CONG_ADVANCED=y
+
+#
+# TCP congestion control
+#
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_SCALABLE=m
+# CONFIG_IPV6 is not set
+# CONFIG_NETFILTER is not set
+
+#
+# DCCP Configuration (EXPERIMENTAL)
+#
+CONFIG_IP_DCCP=m
+CONFIG_INET_DCCP_DIAG=m
+
+#
+# DCCP CCIDs Configuration (EXPERIMENTAL)
+#
+CONFIG_IP_DCCP_CCID3=m
+CONFIG_IP_DCCP_TFRC_LIB=m
+
+#
+# DCCP Kernel Hacking
+#
+# CONFIG_IP_DCCP_DEBUG is not set
+# CONFIG_IP_DCCP_UNLOAD_HACK 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
+
+#
+# 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=m
+# CONFIG_IEEE80211_DEBUG is not set
+CONFIG_IEEE80211_CRYPT_WEP=m
+CONFIG_IEEE80211_CRYPT_CCMP=m
+CONFIG_IEEE80211_CRYPT_TKIP=m
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=m
 # CONFIG_DEBUG_DRIVER is not set
+
+#
+# Memory Technology Devices (MTD)
+#
 CONFIG_MTD=y
 # CONFIG_MTD_DEBUG is not set
 # CONFIG_MTD_CONCAT is not set
@@ -282,11 +311,19 @@
 # CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
 CONFIG_MTD_CMDLINE_PARTS=y
 # CONFIG_MTD_AFS_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
 CONFIG_MTD_CHAR=y
 CONFIG_MTD_BLOCK=y
 # CONFIG_FTL is not set
 # CONFIG_NFTL is not set
 # CONFIG_INFTL is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
 CONFIG_MTD_CFI=y
 CONFIG_MTD_JEDECPROBE=y
 CONFIG_MTD_GEN_PROBE=y
@@ -306,11 +343,15 @@
 CONFIG_MTD_CFI_AMDSTD_RETRY=0
 # CONFIG_MTD_CFI_STAA is not set
 CONFIG_MTD_CFI_UTIL=y
-# CONFIG_MTD_RAM is not set
+CONFIG_MTD_RAM=m
 CONFIG_MTD_ROM=y
 # CONFIG_MTD_ABSENT is not set
 # CONFIG_MTD_OBSOLETE_CHIPS is not set
 # CONFIG_MTD_XIP is not set
+
+#
+# Mapping drivers for chip access
+#
 # CONFIG_MTD_COMPLEX_MAPPINGS is not set
 # CONFIG_MTD_PHYSMAP is not set
 # CONFIG_MTD_ARM_INTEGRATOR is not set
@@ -318,14 +359,27 @@
 # CONFIG_MTD_IMPA7 is not set
 CONFIG_MTD_BAST=y
 CONFIG_MTD_BAST_MAXSIZE=4
+CONFIG_MTD_PLATRAM=m
+
+#
+# Self-contained MTD device drivers
+#
 # CONFIG_MTD_SLRAM is not set
 # CONFIG_MTD_PHRAM is not set
 # CONFIG_MTD_MTDRAM is not set
 # CONFIG_MTD_BLKMTD is not set
 # CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
 # CONFIG_MTD_DOC2000 is not set
 # CONFIG_MTD_DOC2001 is not set
 # CONFIG_MTD_DOC2001PLUS is not set
+
+#
+# NAND Flash Device Drivers
+#
 CONFIG_MTD_NAND=y
 # CONFIG_MTD_NAND_VERIFY_WRITE is not set
 CONFIG_MTD_NAND_IDS=y
@@ -334,61 +388,232 @@
 # CONFIG_MTD_NAND_S3C2410_HWECC is not set
 # CONFIG_MTD_NAND_DISKONCHIP is not set
 # CONFIG_MTD_NAND_NANDSIM is not set
+
+#
+# Parallel port support
+#
 CONFIG_PARPORT=y
 # CONFIG_PARPORT_PC is not set
 # CONFIG_PARPORT_ARC is not set
 # CONFIG_PARPORT_GSC is not set
 CONFIG_PARPORT_1284=y
-# CONFIG_BLK_DEV_FD is not set
+
+#
+# Plug and Play support
+#
+
+#
+# Block devices
+#
 # CONFIG_PARIDE is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
 CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
 CONFIG_BLK_DEV_NBD=m
+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=m
+
+#
+# ATA/ATAPI/MFM/RLL support
+#
+CONFIG_IDE=y
+CONFIG_BLK_DEV_IDE=y
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_BLK_DEV_IDEDISK=y
 # CONFIG_IDEDISK_MULTI_MODE is not set
 CONFIG_BLK_DEV_IDECD=y
 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
+#
+CONFIG_IDE_GENERIC=y
 # CONFIG_IDE_ARM is not set
 CONFIG_BLK_DEV_IDE_BAST=y
 # CONFIG_BLK_DEV_IDEDMA is not set
 # CONFIG_IDEDMA_AUTO is not set
+# CONFIG_BLK_DEV_HD is not set
+
+#
+# SCSI device support
+#
+CONFIG_RAID_ATTRS=m
+CONFIG_SCSI=m
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_SCH=m
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+CONFIG_SCSI_MULTI_LUN=y
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
+
+#
+# SCSI Transport Attributes
+#
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_FC_ATTRS=m
+CONFIG_SCSI_ISCSI_ATTRS=m
+CONFIG_SCSI_SAS_ATTRS=m
+
+#
+# SCSI low-level drivers
+#
+CONFIG_SCSI_SATA=m
+# CONFIG_SCSI_PPA is not set
+# CONFIG_SCSI_IMM is not set
+# CONFIG_SCSI_DEBUG is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+# CONFIG_MD_RAID10 is not set
+CONFIG_MD_RAID5=m
+# CONFIG_MD_RAID6 is not set
+CONFIG_MD_MULTIPATH=m
+# CONFIG_MD_FAULTY 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 is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
 # CONFIG_IEEE1394 is not set
-# CONFIG_PACKET is not set
-# CONFIG_NETLINK_DEV is not set
-# CONFIG_IP_MULTICAST is not set
-# 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_IPGRE is not set
-# CONFIG_SYN_COOKIES is not set
-# CONFIG_INET_TUNNEL is not set
-CONFIG_IP_TCPDIAG=y
-# CONFIG_IPV6 is not set
-# CONFIG_NETFILTER is not set
-# CONFIG_ATM is not set
-# CONFIG_BRIDGE is not set
-# CONFIG_VLAN_8021Q is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_X25 is not set
-# CONFIG_LAPB 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
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_IRDA is not set
+
+#
+# I2O device support
+#
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
 # CONFIG_DUMMY is not set
-# CONFIG_MII is not set
+CONFIG_BONDING=m
+CONFIG_TUN=m
+
+#
+# PHY device support
+#
+CONFIG_PHYLIB=m
+CONFIG_PHYCONTROL=y
+
+#
+# MII PHY device drivers
+#
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+# CONFIG_SMC91X is not set
+CONFIG_DM9000=y
+# CONFIG_NET_POCKET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+
+#
+# Ethernet (10000 Mbit)
+#
+
+#
+# Token Ring devices
+#
+
+#
+# Wireless LAN (non-hamradio)
+#
 # CONFIG_NET_RADIO is not set
+
+#
+# Wan interfaces
+#
 # CONFIG_WAN is not set
 # CONFIG_PLIP is not set
-# CONFIG_PPP is not set
 # 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
+#
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_TSDEV is not set
 # CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
 CONFIG_INPUT_KEYBOARD=y
 CONFIG_KEYBOARD_ATKBD=y
 # CONFIG_KEYBOARD_SUNKBD is not set
@@ -399,12 +624,23 @@
 CONFIG_MOUSE_PS2=y
 # CONFIG_MOUSE_SERIAL is not set
 # CONFIG_MOUSE_VSXXXAA is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+# 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_LIBPS2=y
 # CONFIG_SERIO_RAW is not set
-CONFIG_SOUND_GAMEPORT=y
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
 CONFIG_VT=y
 CONFIG_VT_CONSOLE=y
 CONFIG_HW_CONSOLE=y
@@ -423,6 +659,10 @@
 # CONFIG_SX is not set
 # CONFIG_RIO is not set
 # CONFIG_STALDRV is not set
+
+#
+# Serial drivers
+#
 CONFIG_SERIAL_8250=y
 CONFIG_SERIAL_8250_CONSOLE=y
 CONFIG_SERIAL_8250_NR_UARTS=8
@@ -430,51 +670,207 @@
 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_S3C2410=y
 CONFIG_SERIAL_S3C2410_CONSOLE=y
-CONFIG_SERIAL_BAST_SIO=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
 CONFIG_LEGACY_PTY_COUNT=256
 CONFIG_PRINTER=y
 # CONFIG_LP_CONSOLE is not set
 CONFIG_PPDEV=y
 # CONFIG_TIPAR is not set
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
 CONFIG_WATCHDOG=y
 # CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
 # CONFIG_SOFT_WATCHDOG is not set
 CONFIG_S3C2410_WATCHDOG=y
 # CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 CONFIG_S3C2410_RTC=y
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+
+#
+# I2C support
+#
 CONFIG_I2C=y
 CONFIG_I2C_CHARDEV=m
+
+#
+# I2C Algorithms
+#
 CONFIG_I2C_ALGOBIT=m
+# CONFIG_I2C_ALGOPCF is not set
+# CONFIG_I2C_ALGOPCA is not set
+
+#
+# I2C Hardware Bus support
+#
+CONFIG_I2C_ISA=m
 # CONFIG_I2C_PARPORT is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
 CONFIG_I2C_S3C2410=y
-CONFIG_I2C_SENSOR=m
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_PCA_ISA is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_SENSORS_DS1337 is not set
+CONFIG_SENSORS_DS1374=m
+CONFIG_SENSORS_EEPROM=m
+# CONFIG_SENSORS_PCF8574 is not set
+CONFIG_SENSORS_PCA9539=m
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_RTC8564 is not set
+CONFIG_SENSORS_MAX6875=m
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+
+#
+# Hardware Monitoring support
+#
+CONFIG_HWMON=y
+CONFIG_HWMON_VID=m
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+CONFIG_SENSORS_ADM9240=m
+# CONFIG_SENSORS_ASB100 is not set
+CONFIG_SENSORS_ATXP1=m
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_FSCHER is not set
+# CONFIG_SENSORS_FSCPOS is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_LM63 is not set
 CONFIG_SENSORS_LM75=m
+# CONFIG_SENSORS_LM77 is not set
 CONFIG_SENSORS_LM78=m
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
 CONFIG_SENSORS_LM85=m
-CONFIG_SENSORS_EEPROM=m
+# CONFIG_SENSORS_LM87 is not set
+# CONFIG_SENSORS_LM90 is not set
+# CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_W83781D is not set
+CONFIG_SENSORS_W83792D=m
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83627HF is not set
+CONFIG_SENSORS_W83627EHF=m
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Misc devices
+#
+
+#
+# Multimedia Capabilities Port drivers
+#
+
+#
+# Multimedia devices
+#
 # CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+# CONFIG_DVB is not set
+
+#
+# Graphics support
+#
 CONFIG_FB=y
-# CONFIG_FB_CFB_FILLRECT is not set
-# CONFIG_FB_CFB_COPYAREA is not set
-# CONFIG_FB_CFB_IMAGEBLIT is not set
-# CONFIG_FB_SOFT_CURSOR is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+CONFIG_FB_SOFT_CURSOR=y
+# CONFIG_FB_MACMODES is not set
 CONFIG_FB_MODE_HELPERS=y
 # CONFIG_FB_TILEBLITTING is not set
+# CONFIG_FB_S1D13XXX is not set
+CONFIG_FB_S3C2410=y
+# CONFIG_FB_S3C2410_DEBUG is not set
 # CONFIG_FB_VIRTUAL is not set
+
+#
+# Console display driver support
+#
 # CONFIG_VGA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 # CONFIG_FRAMEBUFFER_CONSOLE is not set
+
+#
+# Logo configuration
+#
 # CONFIG_LOGO is not set
 # CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Sound
+#
 # CONFIG_SOUND is not set
-# CONFIG_USB_ARCH_HAS_OHCI is not set
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
 # CONFIG_USB is not set
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# MMC/SD Card support
+#
+# CONFIG_MMC is not set
+
+#
+# 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=y
 # CONFIG_EXT3_FS_POSIX_ACL is not set
@@ -482,34 +878,193 @@
 CONFIG_JBD=y
 # CONFIG_JBD_DEBUG is not set
 CONFIG_FS_MBCACHE=y
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_XFS_FS=m
+CONFIG_XFS_QUOTA=m
+# CONFIG_XFS_SECURITY is not set
+CONFIG_XFS_POSIX_ACL=y
+# CONFIG_XFS_RT is not set
+CONFIG_MINIX_FS=m
+CONFIG_ROMFS_FS=m
+CONFIG_INOTIFY=y
+CONFIG_QUOTA=y
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+CONFIG_DNOTIFY=y
+CONFIG_AUTOFS_FS=m
+CONFIG_AUTOFS4_FS=m
+CONFIG_FUSE_FS=m
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_ZISOFS_FS=m
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_RW=y
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_SYSFS=y
 # CONFIG_TMPFS is not set
 # CONFIG_HUGETLBFS is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+CONFIG_RELAYFS_FS=m
+
+#
+# Miscellaneous filesystems
+#
 # CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_ASFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
 CONFIG_JFFS_FS=y
 CONFIG_JFFS_FS_VERBOSE=0
 # CONFIG_JFFS_PROC_FS is not set
 CONFIG_JFFS2_FS=y
 CONFIG_JFFS2_FS_DEBUG=0
-# CONFIG_JFFS2_FS_NAND is not set
-# CONFIG_JFFS2_FS_NOR_ECC is not set
+CONFIG_JFFS2_FS_WRITEBUFFER=y
 # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
 CONFIG_JFFS2_ZLIB=y
 CONFIG_JFFS2_RTIME=y
 # CONFIG_JFFS2_RUBIN is not set
+CONFIG_CRAMFS=y
+# CONFIG_VXFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=m
 # CONFIG_NFS_V3 is not set
+# CONFIG_NFS_V4 is not set
+# CONFIG_NFS_DIRECTIO is not set
 # CONFIG_NFSD is not set
-CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=m
+# 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=m
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
 # CONFIG_ACORN_PARTITION is not set
 # CONFIG_OSF_PARTITION is not set
 # CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
 # CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
 CONFIG_BSD_DISKLABEL=y
+# CONFIG_MINIX_SUBPARTITION is not set
 CONFIG_SOLARIS_X86_PARTITION=y
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
 # CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
 # CONFIG_SUN_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+
+#
+# Native Language Support
+#
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=m
+
+#
+# Profiling support
+#
+# CONFIG_PROFILING is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
 CONFIG_DEBUG_KERNEL=y
 # CONFIG_MAGIC_SYSRQ is not set
 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
@@ -518,6 +1073,7 @@
 CONFIG_DEBUG_BUGVERBOSE=y
 CONFIG_DEBUG_INFO=y
 # CONFIG_DEBUG_FS is not set
+CONFIG_FRAME_POINTER=y
 CONFIG_DEBUG_USER=y
 # CONFIG_DEBUG_WAITQ is not set
 # CONFIG_DEBUG_ERRORS is not set
@@ -525,6 +1081,198 @@
 # CONFIG_DEBUG_ICEDCC is not set
 CONFIG_DEBUG_S3C2410_PORT=y
 CONFIG_DEBUG_S3C2410_UART=0
-# CONFIG_CRC_CCITT is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+CONFIG_SECURITY=y
+# CONFIG_SECURITY_NETWORK is not set
+CONFIG_SECURITY_CAPABILITIES=y
+CONFIG_SECURITY_SECLVL=m
+CONFIG_SECURITY_SELINUX=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0
+CONFIG_SECURITY_SELINUX_DISABLE=y
+CONFIG_SECURITY_SELINUX_DEVELOP=y
+CONFIG_SECURITY_SELINUX_AVC_STATS=y
+CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_TGR192=m
+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_DEFLATE=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Hardware crypto devices
+#
+
+#
+# Library routines
+#
+CONFIG_CRC16=m
+CONFIG_CRC32=y
+CONFIG_LIBCRC32C=m
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=y
+# CONFIG_USB_HIDDEV is not set
+CONFIG_BT_HIDP=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_TEST=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_LCD=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_XPAD=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_AUERSWALD=m
+# CONFIG_USB_FILE_STORAGE is not set
+# CONFIG_BT_HCIBFUSB is not set
+# CONFIG_USB_SL811_HCD is not set
+CONFIG_USB_LED=m
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_KBD is not set
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+# CONFIG_ADFS_FS_RW is not set
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_MTOUCH=m
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_ACORN_PARTITION_RISCIX=y
+CONFIG_USB_SERIAL_GARMIN=m
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_PPP_BSDCOMP=m
+CONFIG_USB_HIDINPUT=y
+CONFIG_USB_SERIAL_HP4X=m
+CONFIG_USB_OHCI_HCD=m
+CONFIG_BT_HCIUART=m
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_USB_STORAGE_FREECOM=y
+# CONFIG_USB_KAWETH is not set
+CONFIG_USB_SERIAL_AIRPRIME=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+# CONFIG_USB_SUSPEND is not set
+CONFIG_USB_MDC800=m
+CONFIG_USB_EZUSB=y
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_ACORN_PARTITION_ADFS=y
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_RIO500=m
+# CONFIG_USB_OTG is not set
+CONFIG_BT_BNEP_MC_FILTER=y
+# CONFIG_USB_GADGET_PXA2XX is not set
+CONFIG_BT_L2CAP=m
+# CONFIG_USBPCWATCHDOG is not set
+CONFIG_PPP_SYNC_TTY=m
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_USB_MICROTEK=m
+CONFIG_BT_BNEP=m
+CONFIG_USB_USS720=m
+CONFIG_USB_STORAGE_ISD200=y
+CONFIG_USB_STORAGE_SDDR09=y
+# CONFIG_BT_HCIBPA10X is not set
+CONFIG_USB_PHIDGETSERVO=m
+CONFIG_PPP_MULTILINK=y
+# CONFIG_USB_GADGET_OMAP is not set
+# CONFIG_USB_MOUSE is not set
+# CONFIG_USB_GADGET_NET2280 is not set
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_PARPORT_NOT_PC=y
+CONFIG_ACORN_PARTITION_CUMANA=y
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_STORAGE_JUMPSHOT=y
+CONFIG_USB_AIPTEK=m
+CONFIG_USB_SERIAL_CP2101=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+CONFIG_USB_ATI_REMOTE=m
+CONFIG_USB_ACM=m
+CONFIG_ACORN_PARTITION_EESOX=y
+# CONFIG_USB_DEBUG is not set
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_WACOM=m
+CONFIG_PPP_FILTER=y
+CONFIG_USB_DEVICEFS=y
+CONFIG_USB_SERIAL_SAFE=m
+CONFIG_PPPOE=m
+CONFIG_USB_STORAGE_SDDR55=y
+# CONFIG_USB_USBNET is not set
+CONFIG_ACORN_PARTITION_ICS=y
+# CONFIG_NETPOLL_RX is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_BT_HCIBCM203X is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+# CONFIG_USB_GADGETFS is not set
+# CONFIG_USB_ETH is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+CONFIG_USB_STORAGE_DPCM=y
+CONFIG_USB_KBTAB=m
+CONFIG_PPP_DEFLATE=m
+# CONFIG_BT_HCIUSB is not set
+# CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_STORAGE_USBAT=y
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_PPP_ASYNC=m
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP_TXCRC=y
+CONFIG_ACORN_PARTITION_POWERTEC=y
+# CONFIG_NETPOLL_TRAP is not set
+CONFIG_USB_POWERMATE=m
+CONFIG_USB_HID=m
+# CONFIG_HID_FF is not set
+CONFIG_USB_STORAGE_DATAFAB=y
+# CONFIG_USB_OHCI_BIG_ENDIAN is not set
+CONFIG_USB_PRINTER=m
+# CONFIG_USB_GADGET_LH7A40X is not set
+CONFIG_USB_SERIAL_KLSI=m
+# CONFIG_USB_G_SERIAL is not set
+CONFIG_BT_RFCOMM=m
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_BT_SCO=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+# CONFIG_USB_ZERO is not set
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_EGALAX=m
+CONFIG_USB_PHIDGETKIT=m
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_USB_STORAGE=m
+CONFIG_USB_SERIAL=m
+# CONFIG_USB_BANDWIDTH is not set
+CONFIG_PPP=m
+CONFIG_CRC_CCITT=m
+# CONFIG_NET_CLS_ROUTE is not set

Modified: people/waldi/linux-2.6/debian/arch/arm/defines
===================================================================
--- people/waldi/linux-2.6/debian/arch/arm/defines	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/arm/defines	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,8 +1,10 @@
 [base]
-compiler: gcc-3.3
+compiler: gcc-4.0
 flavours:
  footbridge
  ixp4xx
  rpc
  s3c2410
+kernel-arch: arm
+kernel-header-dirs: arm
 suggests: fdutils

Modified: people/waldi/linux-2.6/debian/arch/config
===================================================================
--- people/waldi/linux-2.6/debian/arch/config	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/config	2005-11-06 16:19:16 UTC (rev 4733)
@@ -64,7 +64,6 @@
 CONFIG_FS_POSIX_ACL=y
 CONFIG_XFS_FS=m
 CONFIG_XFS_EXPORT=y
-CONFIG_XFS_QUOTA=y
 CONFIG_XFS_POSIX_ACL=y
 CONFIG_SYSFS=y
 CONFIG_DEVFS_FS=y
@@ -118,7 +117,6 @@
 CONFIG_FB_ARC=m
 CONFIG_FUSION_SPI=m
 # CONFIG_IP_FIB_TRIE is not set
-CONFIG_TCP_CONG_BIC=m
 CONFIG_DVB_USB_CXUSB=m
 CONFIG_FUSION_FC=m
 CONFIG_USB_ACECAD=m
@@ -326,7 +324,7 @@
 CONFIG_NLS_KOI8_U=m
 CONFIG_NLS_UTF8=m
 CONFIG_AUDIT=y
-CONFIG_AUDITSYSCALL=y
+# CONFIG_AUDITSYSCALL is not set
 CONFIG_PREEMPT_NONE=y
 # CONFIG_PREEMPT_VOLUNTARY is not set
 # CONFIG_PREEMPT is not set
@@ -395,7 +393,7 @@
 #
 # TCP congestion control
 #
-CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_BIC=y
 CONFIG_TCP_CONG_WESTWOOD=m
 CONFIG_TCP_CONG_HTCP=m
 CONFIG_TCP_CONG_HSTCP=m
@@ -579,3 +577,129 @@
 CONFIG_SCTP_HMAC_SHA1=y
 # CONFIG_SCTP_HMAC_MD5 is not set
 
+# CONFIG_BLK_DEV_IDESCSI is not set
+CONFIG_W1_DS2433_CRC=y
+CONFIG_LXT_PHY=m
+CONFIG_PCMCIA_SPECTRUM=m
+CONFIG_MEGARAID_SAS=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_IP_NF_MATCH_CONNBYTES=m
+CONFIG_IP6_NF_TARGET_NFQUEUE=m
+CONFIG_IP_NF_MATCH_DCCP=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_YEALINK=m
+CONFIG_FUSE_FS=m
+CONFIG_IEEE80211_CRYPT_CCMP=m
+CONFIG_PHYCONTROL=y
+# CONFIG_IPW_DEBUG is not set
+# CONFIG_EV64360 is not set
+CONFIG_FB_CYBLA=m
+CONFIG_VIDEO_SELECT=y
+CONFIG_CRC16=m
+CONFIG_IP_DCCP=m
+CONFIG_IP_DCCP_TFRC_LIB=m
+CONFIG_HOSTAP_CS=m
+CONFIG_HWMON_VID=m
+CONFIG_SIS190=m
+CONFIG_SND_AD1889=m
+CONFIG_INET_TCP_DIAG=m
+CONFIG_RAID_ATTRS=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_IPW2100=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_VIDEO_SAA6588=m
+CONFIG_CHELSIO_T1=m
+CONFIG_W1_DS2433=m
+CONFIG_IP_NF_PPTP=m
+CONFIG_SCSI_SAS_ATTRS=m
+# CONFIG_WANT_EARLY_SERIAL is not set
+# CONFIG_IEEE80211_DEBUG is not set
+CONFIG_DAVICOM_PHY=m
+CONFIG_FLATMEM_MANUAL=y
+CONFIG_IP_NF_CONNTRACK_EVENTS=y
+CONFIG_IP_NF_NAT_PPTP=m
+CONFIG_USB_SISUSBVGA_CON=y
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_9P_FS=m
+# CONFIG_OBSOLETE_OSS_USB_DRIVER is not set
+CONFIG_FUSION_SAS=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_INET_DCCP_DIAG=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_CASSINI=m
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+CONFIG_USB_STORAGE_ONETOUCH=y
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_DRM_SAVAGE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_PHYLIB=m
+CONFIG_IEEE80211_CRYPT_TKIP=m
+CONFIG_MARVELL_PHY=m
+CONFIG_SCSI_SATA_MV=m
+CONFIG_SND_GENERIC_DRIVER=y
+CONFIG_SND_AC97_BUS=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_USB_NET_GL620A=m
+CONFIG_FLATMEM=y
+CONFIG_INFINIBAND_USER_MAD=m
+CONFIG_IP_NF_CONNTRACK_NETLINK=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+CONFIG_HOSTAP_PLX=m
+CONFIG_IEEE80211_CRYPT_WEP=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_NETFILTER_NETLINK=m
+# CONFIG_IP_DCCP_UNLOAD_HACK is not set
+CONFIG_IP_NF_TARGET_NFQUEUE=m
+# CONFIG_SPARSEMEM_STATIC is not set
+# CONFIG_IP_DCCP_DEBUG is not set
+CONFIG_INET_DIAG=m
+CONFIG_HOSTAP_FIRMWARE=y
+CONFIG_ULI526X=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_INFINIBAND_USER_ACCESS=m
+CONFIG_HOSTAP=m
+CONFIG_IP_NF_MATCH_STRING=m
+CONFIG_IPW2200=m
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_IP_DCCP_CCID3=m
+CONFIG_DETECT_SOFTLOCKUP=y
+CONFIG_SENSORS_W83792D=m
+CONFIG_RELAYFS_FS=m
+CONFIG_IP_NF_NETBIOS_NS=m
+CONFIG_IPW2100_MONITOR=y
+CONFIG_NORTEL_HERMES=m
+CONFIG_USB_EMI26=m
+CONFIG_CONNECTOR=m
+CONFIG_CICADA_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_IEEE80211=m
+CONFIG_XFS_QUOTA=m
+CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y
+CONFIG_SEMAPHORE_SLEEPERS=y
+CONFIG_DELL_RBU=m
+CONFIG_FB_SOFT_CURSOR=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FUSION_MAX_SGE=40
+CONFIG_I2O_CONFIG_OLD_IOCTL=y
+CONFIG_FUSION_CTL=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_PCMCIA_PROBE=y
+# CONFIG_EXT2_FS_XIP is not set
+# CONFIG_USB_APPLETOUCH is not set
+CONFIG_I2O_EXT_ADAPTEC_DMA64=y
+CONFIG_FUSION=y
+# CONFIG_NET_POCKET is not set
+CONFIG_FW_LOADER=m
+CONFIG_MII=m
+# CONFIG_SCSI_QLA2XXX is not set
+CONFIG_BLK_DEV_IDEPNP=m
+CONFIG_AIRO=m
+CONFIG_SCSI_SATA_INTEL_COMBINED=y
+CONFIG_GENERIC_PENDING_IRQ=y

Modified: people/waldi/linux-2.6/debian/arch/hppa/Makefile.inc
===================================================================
--- people/waldi/linux-2.6/debian/arch/hppa/Makefile.inc	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/hppa/Makefile.inc	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,3 +1,4 @@
 #
 # Variables 
 #
+headers_dirs = parisc

Modified: people/waldi/linux-2.6/debian/arch/hppa/config
===================================================================
--- people/waldi/linux-2.6/debian/arch/hppa/config	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/hppa/config	2005-11-06 16:19:16 UTC (rev 4733)
@@ -79,7 +79,6 @@
 CONFIG_BINFMT_MISC=m
 CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
-CONFIG_FW_LOADER=y
 # CONFIG_DEBUG_DRIVER is not set
 # CONFIG_MTD is not set
 CONFIG_PARPORT=m
@@ -126,7 +125,6 @@
 CONFIG_BLK_DEV_IDECD=m
 # CONFIG_BLK_DEV_IDETAPE is not set
 # CONFIG_BLK_DEV_IDEFLOPPY is not set
-CONFIG_BLK_DEV_IDESCSI=m
 # CONFIG_IDE_TASK_IOCTL is not set
 CONFIG_IDE_GENERIC=m
 CONFIG_BLK_DEV_IDEPCI=y
@@ -228,7 +226,6 @@
 CONFIG_DM_ZERO=m
 CONFIG_DM_MULTIPATH=m
 CONFIG_DM_MULTIPATH_EMC=m
-# CONFIG_FUSION is not set
 # CONFIG_IEEE1394 is not set
 CONFIG_I2O=m
 CONFIG_I2O_CONFIG=m
@@ -449,7 +446,6 @@
 CONFIG_TUN=m
 # CONFIG_ARCNET is not set
 CONFIG_NET_ETHERNET=y
-CONFIG_MII=m
 CONFIG_LASI_82596=m
 CONFIG_HAPPYMEAL=m
 CONFIG_SUNGEM=m
@@ -527,7 +523,6 @@
 # CONFIG_SUNDANCE_MMIO is not set
 CONFIG_VIA_RHINE=m
 # CONFIG_VIA_RHINE_MMIO is not set
-# CONFIG_NET_POCKET is not set
 CONFIG_DL2K=m
 CONFIG_E1000=m
 # CONFIG_E1000_NAPI is not set
@@ -553,7 +548,6 @@
 CONFIG_PCMCIA_WAVELAN=m
 CONFIG_PCMCIA_NETWAVE=m
 CONFIG_PCMCIA_RAYCS=m
-CONFIG_AIRO=m
 CONFIG_HERMES=m
 # CONFIG_PLX_HERMES is not set
 # CONFIG_TMD_HERMES is not set
@@ -679,10 +673,7 @@
 # CONFIG_VIDEO_DEV is not set
 # CONFIG_DVB is not set
 CONFIG_FB=y
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
 CONFIG_FB_CFB_IMAGEBLIT=y
-CONFIG_FB_SOFT_CURSOR=y
 # CONFIG_FB_MACMODES is not set
 CONFIG_FB_MODE_HELPERS=y
 # CONFIG_FB_TILEBLITTING is not set
@@ -763,7 +754,6 @@
 # CONFIG_SND_SSCAPE is not set
 CONFIG_SND_AC97_CODEC=m
 # CONFIG_SND_ALI5451 is not set
-CONFIG_SND_AD1889=m
 # CONFIG_SND_AD1889_OPL3 is not set
 # CONFIG_SND_ATIIXP is not set
 # CONFIG_SND_ATIIXP_MODEM is not set
@@ -895,7 +885,6 @@
 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_SYSFS=y
@@ -968,3 +957,11 @@
 CONFIG_LIBCRC32C=m
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=m
+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
+CONFIG_SND_HWDEP=m
+CONFIG_NFS_ACL_SUPPORT=y
+# CONFIG_HWMON_VID is not set
+CONFIG_CRYPTO_DES=y
+# CONFIG_HZ_100 is not set
+CONFIG_HZ_250=y
+# CONFIG_HZ_1000 is not set

Modified: people/waldi/linux-2.6/debian/arch/hppa/defines
===================================================================
--- people/waldi/linux-2.6/debian/arch/hppa/defines	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/hppa/defines	2005-11-06 16:19:16 UTC (rev 4733)
@@ -4,6 +4,8 @@
  32-smp
  64
  64-smp
+kernel-arch: parisc
+kernel-header-dirs: parisc
 suggests: palo
 
 [32]

Modified: people/waldi/linux-2.6/debian/arch/i386/config
===================================================================
--- people/waldi/linux-2.6/debian/arch/i386/config	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/i386/config	2005-11-06 16:19:16 UTC (rev 4733)
@@ -55,7 +55,8 @@
 # CONFIG_REGPARM is not set
 CONFIG_PM=y
 # CONFIG_PM_DEBUG is not set
-# CONFIG_SOFTWARE_SUSPEND is not set
+CONFIG_SOFTWARE_SUSPEND=y
+CONFIG_PM_STD_PARTITION=""
 CONFIG_ACPI=y
 CONFIG_ACPI_BOOT=y
 CONFIG_ACPI_INTERPRETER=y
@@ -147,7 +148,6 @@
 CONFIG_I82092=m
 CONFIG_I82365=m
 CONFIG_TCIC=m
-CONFIG_PCMCIA_PROBE=y
 CONFIG_PCCARD_NONSTATIC=m
 CONFIG_HOTPLUG_PCI=m
 CONFIG_HOTPLUG_PCI_FAKE=m
@@ -162,7 +162,6 @@
 # CONFIG_HOTPLUG_PCI_SHPC_POLL_EVENT_MODE is not set
 CONFIG_BINFMT_AOUT=m
 CONFIG_STANDALONE=y
-CONFIG_FW_LOADER=m
 # CONFIG_DEBUG_DRIVER is not set
 CONFIG_MTD=m
 # CONFIG_MTD_DEBUG is not set
@@ -317,12 +316,10 @@
 CONFIG_BLK_DEV_IDECD=m
 CONFIG_BLK_DEV_IDETAPE=m
 CONFIG_BLK_DEV_IDEFLOPPY=m
-CONFIG_BLK_DEV_IDESCSI=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
-CONFIG_BLK_DEV_IDEPNP=m
 CONFIG_BLK_DEV_IDEPCI=y
 CONFIG_IDEPCI_SHARE_IRQ=y
 # CONFIG_BLK_DEV_OFFBOARD is not set
@@ -445,9 +442,6 @@
 CONFIG_MD_RAID6=m
 CONFIG_MD_FAULTY=m
 CONFIG_DM_MULTIPATH_EMC=m
-CONFIG_FUSION=m
-CONFIG_FUSION_MAX_SGE=40
-CONFIG_FUSION_CTL=m
 CONFIG_FUSION_LAN=m
 CONFIG_IEEE1394=m
 # CONFIG_IEEE1394_VERBOSEDEBUG is not set
@@ -466,7 +460,6 @@
 CONFIG_IEEE1394_AMDTP=m
 CONFIG_I2O=m
 CONFIG_I2O_CONFIG=m
-CONFIG_I2O_CONFIG_OLD_IOCTL=y
 CONFIG_I2O_BLOCK=m
 CONFIG_I2O_SCSI=m
 CONFIG_I2O_PROC=m
@@ -734,7 +727,6 @@
 CONFIG_ARCNET_COM20020=m
 CONFIG_ARCNET_COM20020_ISA=m
 CONFIG_ARCNET_COM20020_PCI=m
-CONFIG_MII=m
 CONFIG_HAPPYMEAL=m
 CONFIG_SUNGEM=m
 CONFIG_NET_VENDOR_3COM=y
@@ -808,7 +800,6 @@
 CONFIG_TLAN=m
 CONFIG_VIA_RHINE=m
 # CONFIG_VIA_RHINE_MMIO is not set
-CONFIG_NET_POCKET=y
 CONFIG_ATP=m
 CONFIG_DE600=m
 CONFIG_DE620=m
@@ -847,7 +838,6 @@
 CONFIG_PCMCIA_WAVELAN=m
 CONFIG_PCMCIA_NETWAVE=m
 CONFIG_PCMCIA_RAYCS=m
-CONFIG_AIRO=m
 CONFIG_HERMES=m
 CONFIG_PLX_HERMES=m
 CONFIG_TMD_HERMES=m
@@ -1325,7 +1315,6 @@
 CONFIG_VIDEO_DPC=m
 CONFIG_VIDEO_HEXIUM_ORION=m
 CONFIG_VIDEO_HEXIUM_GEMINI=m
-# CONFIG_VIDEO_CX88 is not set
 CONFIG_VIDEO_OVCAMCHIP=m
 CONFIG_RADIO_CADET=m
 CONFIG_RADIO_RTRACK=m
@@ -1398,10 +1387,7 @@
 CONFIG_VIDEO_IR=m
 CONFIG_VIDEO_TVEEPROM=m
 CONFIG_FB=y
-CONFIG_FB_CFB_FILLRECT=m
-CONFIG_FB_CFB_COPYAREA=m
-CONFIG_FB_CFB_IMAGEBLIT=m
-CONFIG_FB_SOFT_CURSOR=m
+CONFIG_FB_CFB_IMAGEBLIT=y
 # CONFIG_FB_MACMODES is not set
 CONFIG_FB_MODE_HELPERS=y
 CONFIG_FB_TILEBLITTING=y
@@ -1412,15 +1398,14 @@
 # CONFIG_FB_ASILIANT is not set
 # CONFIG_FB_IMSTT is not set
 CONFIG_FB_VGA16=m
-# CONFIG_FB_VESA is not set
-CONFIG_VIDEO_SELECT=y
+CONFIG_FB_VESA=y
 CONFIG_FB_HGA=m
 # CONFIG_FB_HGA_ACCEL is not set
 CONFIG_FB_NVIDIA=m
 CONFIG_FB_NVIDIA_I2C=y
-CONFIG_FB_RIVA=m
-CONFIG_FB_RIVA_I2C=y
-CONFIG_FB_RIVA_DEBUG=y
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_RIVA_I2C is not set
+# CONFIG_FB_RIVA_DEBUG is not set
 CONFIG_FB_I810=m
 # CONFIG_FB_I810_GTF is not set
 CONFIG_FB_INTEL=m
@@ -1463,7 +1448,7 @@
 CONFIG_VGA_CONSOLE=y
 CONFIG_MDA_CONSOLE=m
 CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=m
+CONFIG_FRAMEBUFFER_CONSOLE=y
 # CONFIG_FONTS is not set
 CONFIG_FONT_8x8=y
 CONFIG_FONT_8x16=y
@@ -1478,7 +1463,6 @@
 CONFIG_SND_TIMER=m
 CONFIG_SND_PCM=m
 CONFIG_SND_HWDEP=m
-CONFIG_SND_RAWMIDI=m
 CONFIG_SND_SEQUENCER=m
 CONFIG_SND_SEQ_DUMMY=m
 CONFIG_SND_OSSEMUL=y
@@ -1653,7 +1637,7 @@
 CONFIG_USB_DEVICEFS=y
 CONFIG_USB_BANDWIDTH=y
 # CONFIG_USB_DYNAMIC_MINORS is not set
-# CONFIG_USB_SUSPEND is not set
+CONFIG_USB_SUSPEND=y
 # CONFIG_USB_OTG is not set
 CONFIG_USB_EHCI_HCD=m
 CONFIG_USB_EHCI_SPLIT_ISO=y
@@ -1793,7 +1777,6 @@
 CONFIG_EXT2_FS_XATTR=y
 CONFIG_EXT2_FS_POSIX_ACL=y
 CONFIG_EXT2_FS_SECURITY=y
-# CONFIG_EXT2_FS_XIP is not set
 CONFIG_EXT3_FS=m
 CONFIG_EXT3_FS_SECURITY=y
 CONFIG_JBD=m
@@ -1918,3 +1901,12 @@
 CONFIG_HZ=1000
 CONFIG_PHYSICAL_START=0x100000
 # CONFIG_HOTPLUG_CPU is not set
+CONFIG_HPET_EMULATE_RTC=y
+CONFIG_VIDEO_CX88_DVB=m
+CONFIG_VIDEO_CX88=m
+CONFIG_SENSORS_HDAPS=m
+CONFIG_DCDBAS=m
+CONFIG_IBMASR=m
+CONFIG_SBC8360_WDT=m
+CONFIG_W83977F_WDT=m
+CONFIG_I6300ESB_WDT=m

Modified: people/waldi/linux-2.6/debian/arch/i386/defines
===================================================================
--- people/waldi/linux-2.6/debian/arch/i386/defines	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/i386/defines	2005-11-06 16:19:16 UTC (rev 4733)
@@ -5,6 +5,8 @@
  686-smp
  k7
  k7-smp
+kernel-arch: i386
+kernel-header-dirs: i386
 suggests: lilo (>= 19.1) | grub, fdutils
 
 [686]

Modified: people/waldi/linux-2.6/debian/arch/ia64/config
===================================================================
--- people/waldi/linux-2.6/debian/arch/ia64/config	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/ia64/config	2005-11-06 16:19:16 UTC (rev 4733)
@@ -24,12 +24,16 @@
 # CONFIG_IA64_PAGE_SIZE_8KB is not set
 CONFIG_IA64_PAGE_SIZE_16KB=y
 # CONFIG_IA64_PAGE_SIZE_64KB is not set
+# CONFIG_HZ_100 is not set
+CONFIG_HZ_250=y
+# CONFIG_HZ_1000 is not set
 CONFIG_NUMA=y
 CONFIG_VIRTUAL_MEM_MAP=y
 CONFIG_HOLES_IN_ZONE=y
-CONFIG_DISCONTIGMEM=y
+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_IA32_SUPPORT=y
 CONFIG_COMPAT=y
@@ -45,6 +49,7 @@
 CONFIG_ACPI_INTERPRETER=y
 CONFIG_ACPI_BUTTON=m
 CONFIG_ACPI_VIDEO=m
+CONFIG_ACPI_HOTKEY=m
 CONFIG_ACPI_FAN=m
 CONFIG_ACPI_PROCESSOR=m
 CONFIG_ACPI_THERMAL=m
@@ -68,6 +73,7 @@
 CONFIG_HOTPLUG_PCI_ACPI_IBM=m
 CONFIG_HOTPLUG_PCI_CPCI=y
 CONFIG_HOTPLUG_PCI_SHPC=m
+CONFIG_HOTPLUG_PCI_SGI=m
 # CONFIG_HOTPLUG_PCI_SHPC_POLL_EVENT_MODE is not set
 CONFIG_PCCARD=m
 # CONFIG_PCMCIA_DEBUG is not set
@@ -79,7 +85,6 @@
 CONFIG_TCIC=m
 CONFIG_PCCARD_NONSTATIC=m
 CONFIG_STANDALONE=y
-CONFIG_FW_LOADER=m
 # CONFIG_DEBUG_DRIVER is not set
 CONFIG_MTD=m
 # CONFIG_MTD_DEBUG is not set
@@ -207,7 +212,6 @@
 CONFIG_BLK_DEV_IDECD=m
 CONFIG_BLK_DEV_IDETAPE=m
 CONFIG_BLK_DEV_IDEFLOPPY=m
-CONFIG_BLK_DEV_IDESCSI=m
 CONFIG_IDE_TASK_IOCTL=y
 CONFIG_IDE_GENERIC=m
 CONFIG_BLK_DEV_IDEPCI=y
@@ -288,9 +292,6 @@
 CONFIG_MD_RAID6=m
 CONFIG_MD_FAULTY=m
 CONFIG_DM_MULTIPATH_EMC=m
-CONFIG_FUSION=m
-CONFIG_FUSION_MAX_SGE=40
-CONFIG_FUSION_CTL=m
 CONFIG_FUSION_LAN=m
 CONFIG_IEEE1394=m
 # CONFIG_IEEE1394_VERBOSEDEBUG is not set
@@ -537,7 +538,6 @@
 # CONFIG_ARCNET_RIM_I is not set
 CONFIG_ARCNET_COM20020=m
 CONFIG_ARCNET_COM20020_PCI=m
-CONFIG_MII=m
 # CONFIG_HAPPYMEAL is not set
 # CONFIG_SUNGEM is not set
 CONFIG_NET_VENDOR_3COM=y
@@ -961,10 +961,7 @@
 CONFIG_VIDEO_IR=m
 CONFIG_VIDEO_TVEEPROM=m
 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
@@ -976,8 +973,8 @@
 # CONFIG_FB_IMSTT is not set
 CONFIG_FB_NVIDIA=m
 CONFIG_FB_NVIDIA_I2C=y
-CONFIG_FB_RIVA=m
-CONFIG_FB_RIVA_I2C=y
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_RIVA_I2C is not set
 # CONFIG_FB_RIVA_DEBUG is not set
 CONFIG_FB_MATROX=m
 CONFIG_FB_MATROX_MILLENIUM=y
@@ -1031,7 +1028,6 @@
 CONFIG_SND_TIMER=m
 CONFIG_SND_PCM=m
 CONFIG_SND_HWDEP=m
-CONFIG_SND_RAWMIDI=m
 CONFIG_SND_SEQUENCER=m
 CONFIG_SND_SEQ_DUMMY=m
 CONFIG_SND_OSSEMUL=y
@@ -1282,6 +1278,7 @@
 CONFIG_JFFS_PROC_FS=y
 CONFIG_JFFS2_FS=m
 CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
 # CONFIG_JFFS2_FS_NAND is not set
 CONFIG_JFFS2_FS_NOR_ECC=y
 # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
@@ -1362,6 +1359,7 @@
 # CONFIG_DEBUG_KOBJECT is not set
 # CONFIG_DEBUG_INFO is not set
 # CONFIG_DEBUG_FS is not set
+# CONFIG_KPROBES is not set
 CONFIG_IA64_GRANULE_16MB=y
 # CONFIG_IA64_GRANULE_64MB is not set
 CONFIG_IA64_PRINT_HAZARDS=y
@@ -1369,3 +1367,7 @@
 # CONFIG_IA64_DEBUG_CMPXCHG is not set
 # CONFIG_IA64_DEBUG_IRQ is not set
 CONFIG_SYSVIPC_COMPAT=y
+# CONFIG_PM_DEBUG is not set
+CONFIG_MKISS=m
+CONFIG_DIGIEPCA=m
+# CONFIG_CPU_FREQ is not set

Modified: people/waldi/linux-2.6/debian/arch/ia64/config.itanium
===================================================================
--- people/waldi/linux-2.6/debian/arch/ia64/config.itanium	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/ia64/config.itanium	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,18 +1,12 @@
-CONFIG_BROKEN_ON_SMP=y
+CONFIG_LOCK_KERNEL=y
+# CONFIG_CPUSETS is not set
+CONFIG_STOP_MACHINE=y
 CONFIG_ITANIUM=y
 # CONFIG_MCKINLEY is not set
 CONFIG_IA64_BRL_EMU=y
 CONFIG_IA64_L1_CACHE_SHIFT=6
-# CONFIG_SMP is not set
-# CONFIG_MTD_XIP is not set
-# CONFIG_MKISS is not set
-# CONFIG_IRPORT_SIR is not set
-# CONFIG_PCMCIA_XIRTULIP is not set
-# CONFIG_COMPUTONE is not set
-# CONFIG_DIGIEPCA is not set
-# CONFIG_MOXA_INTELLIO is not set
-# CONFIG_RISCOM8 is not set
-# CONFIG_RIO is not set
-# CONFIG_STALLION is not set
-# CONFIG_ISTALLION is not set
-# CONFIG_USB_SERIAL_WHITEHEAT is not set
+CONFIG_SMP=y
+CONFIG_NR_CPUS=64
+# CONFIG_HOTPLUG_CPU is not set
+# CONFIG_SCHED_SMT is not set
+CONFIG_HAVE_DEC_LOCK=y

Modified: people/waldi/linux-2.6/debian/arch/ia64/config.mckinley
===================================================================
--- people/waldi/linux-2.6/debian/arch/ia64/config.mckinley	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/ia64/config.mckinley	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,17 +1,11 @@
-CONFIG_BROKEN_ON_SMP=y
+CONFIG_LOCK_KERNEL=y
+# CONFIG_CPUSETS is not set
+CONFIG_STOP_MACHINE=y
 # CONFIG_ITANIUM is not set
 CONFIG_MCKINLEY=y
 CONFIG_IA64_L1_CACHE_SHIFT=7
-# CONFIG_SMP is not set
-# CONFIG_MTD_XIP is not set
-# CONFIG_MKISS is not set
-# CONFIG_IRPORT_SIR is not set
-# CONFIG_PCMCIA_XIRTULIP is not set
-# CONFIG_COMPUTONE is not set
-# CONFIG_DIGIEPCA is not set
-# CONFIG_MOXA_INTELLIO is not set
-# CONFIG_RISCOM8 is not set
-# CONFIG_RIO is not set
-# CONFIG_STALLION is not set
-# CONFIG_ISTALLION is not set
-# CONFIG_USB_SERIAL_WHITEHEAT is not set
+CONFIG_SMP=y
+CONFIG_NR_CPUS=64
+# CONFIG_HOTPLUG_CPU is not set
+# CONFIG_SCHED_SMT is not set
+CONFIG_HAVE_DEC_LOCK=y

Modified: people/waldi/linux-2.6/debian/arch/ia64/defines
===================================================================
--- people/waldi/linux-2.6/debian/arch/ia64/defines	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/ia64/defines	2005-11-06 16:19:16 UTC (rev 4733)
@@ -4,6 +4,8 @@
  itanium-smp
  mckinley
  mckinley-smp
+kernel-arch: ia64
+kernel-header-dirs: ia64
 suggests: elilo, fdutils
 
 [itanium]

Modified: people/waldi/linux-2.6/debian/arch/m68k/config
===================================================================
--- people/waldi/linux-2.6/debian/arch/m68k/config	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/m68k/config	2005-11-06 16:19:16 UTC (rev 4733)
@@ -44,7 +44,6 @@
 CONFIG_PROC_HARDWARE=y
 CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
-# CONFIG_FW_LOADER is not set
 # CONFIG_DEBUG_DRIVER is not set
 # CONFIG_MTD is not set
 # CONFIG_BLK_DEV_COW_COMMON is not set
@@ -279,6 +278,7 @@
 # CONFIG_INFINIBAND is not set
 CONFIG_EXT2_FS=y
 # CONFIG_EXT2_FS_XATTR is not set
+CONFIG_EXT2_FS_XIP=n
 CONFIG_EXT3_FS=y
 # CONFIG_EXT3_FS_XATTR is not set
 CONFIG_JBD=y
@@ -286,7 +286,7 @@
 CONFIG_XFS_FS=m
 CONFIG_XFS_EXPORT=y
 # CONFIG_XFS_RT is not set
-# CONFIG_XFS_QUOTA is not set
+CONFIG_XFS_QUOTA=n
 # CONFIG_XFS_SECURITY is not set
 # CONFIG_XFS_POSIX_ACL is not set
 CONFIG_SYSFS=y

Modified: people/waldi/linux-2.6/debian/arch/m68k/config.amiga
===================================================================
--- people/waldi/linux-2.6/debian/arch/m68k/config.amiga	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/m68k/config.amiga	2005-11-06 16:19:16 UTC (rev 4733)
@@ -42,7 +42,6 @@
 CONFIG_BLK_DEV_IDECD=y
 CONFIG_BLK_DEV_IDETAPE=m
 CONFIG_BLK_DEV_IDEFLOPPY=m
-# CONFIG_BLK_DEV_IDESCSI is not set
 # CONFIG_IDE_TASK_IOCTL is not set
 CONFIG_IDE_GENERIC=y
 # CONFIG_IDE_ARM is not set
@@ -77,7 +76,7 @@
 CONFIG_BLZ1230_SCSI=y
 CONFIG_FASTLANE_SCSI=y
 CONFIG_SCSI_AMIGA7XX=y
-CONFIG_OKTAGON_SCSI=y
+CONFIG_OKTAGON_SCSI=n
 # CONFIG_SCSI_NCR53C7xx_FAST is not set
 # CONFIG_CD_NO_IDESCSI is not set
 # CONFIG_DM_MULTIPATH is not set
@@ -89,7 +88,6 @@
 # CONFIG_DEV_APPLETALK is not set
 # CONFIG_ARCNET is not set
 CONFIG_NET_ETHERNET=y
-CONFIG_MII=m
 CONFIG_ARIADNE=m
 CONFIG_A2065=m
 CONFIG_HYDRA=m
@@ -103,7 +101,6 @@
 # CONFIG_HP100 is not set
 # CONFIG_NET_ISA is not set
 # CONFIG_NET_PCI is not set
-# CONFIG_NET_POCKET is not set
 # CONFIG_TR is not set
 CONFIG_PLIP=m
 CONFIG_PPP_FILTER=y
@@ -154,10 +151,7 @@
 # CONFIG_TIPAR is not set
 CONFIG_GEN_RTC=m
 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

Modified: people/waldi/linux-2.6/debian/arch/m68k/config.atari
===================================================================
--- people/waldi/linux-2.6/debian/arch/m68k/config.atari	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/m68k/config.atari	2005-11-06 16:19:16 UTC (rev 4733)
@@ -34,7 +34,6 @@
 CONFIG_BLK_DEV_IDECD=y
 CONFIG_BLK_DEV_IDETAPE=m
 CONFIG_BLK_DEV_IDEFLOPPY=m
-# CONFIG_BLK_DEV_IDESCSI is not set
 # CONFIG_IDE_TASK_IOCTL is not set
 CONFIG_IDE_GENERIC=y
 # CONFIG_IDE_ARM is not set
@@ -75,10 +74,7 @@
 CONFIG_NVRAM=y
 CONFIG_GEN_RTC=y
 CONFIG_FB=y
-# CONFIG_FB_CFB_FILLRECT is not set
-# CONFIG_FB_CFB_COPYAREA is not set
 # CONFIG_FB_CFB_IMAGEBLIT is not set
-# CONFIG_FB_SOFT_CURSOR is not set
 # CONFIG_FB_MACMODES is not set
 # CONFIG_FB_MODE_HELPERS is not set
 # CONFIG_FB_TILEBLITTING is not set

Modified: people/waldi/linux-2.6/debian/arch/m68k/config.bvme6000
===================================================================
--- people/waldi/linux-2.6/debian/arch/m68k/config.bvme6000	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/m68k/config.bvme6000	2005-11-06 16:19:16 UTC (rev 4733)
@@ -32,7 +32,6 @@
 # CONFIG_IPX is not set
 # CONFIG_DEV_APPLETALK is not set
 CONFIG_NET_ETHERNET=y
-CONFIG_MII=m
 CONFIG_BVME6000_NET=y
 # CONFIG_PPP_FILTER is not set
 CONFIG_PPP_ASYNC=m

Modified: people/waldi/linux-2.6/debian/arch/m68k/config.hp
===================================================================
--- people/waldi/linux-2.6/debian/arch/m68k/config.hp	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/m68k/config.hp	2005-11-06 16:19:16 UTC (rev 4733)
@@ -30,18 +30,22 @@
 # CONFIG_IPX_INTERN is not set
 # CONFIG_DEV_APPLETALK is not set
 CONFIG_NET_ETHERNET=y
-CONFIG_MII=m
 CONFIG_PPP_FILTER=y
 CONFIG_PPP_ASYNC=m
 CONFIG_PPP_SYNC_TTY=m
 # CONFIG_KEYBOARD_ATKBD is not set
 # CONFIG_KEYBOARD_SUNKBD is not set
+CONFIG_KEYBOARD_HIL_OLD=n
+CONFIG_KEYBOARD_HIL=n
 CONFIG_MOUSE_PS2=m
 CONFIG_MOUSE_SERIAL=m
+CONFIG_MOUSE_HIL=n
 # CONFIG_INPUT_JOYSTICK is not set
 # CONFIG_INPUT_MISC is not set
 CONFIG_SERIO=m
 CONFIG_SERIO_SERPORT=m
+CONFIG_HP_SDC=n
+CONFIG_HIL_MLC=n
 CONFIG_SERIO_LIBPS2=m
 # CONFIG_SERIAL_8250 is not set
 CONFIG_GEN_RTC=y

Modified: people/waldi/linux-2.6/debian/arch/m68k/config.mac
===================================================================
--- people/waldi/linux-2.6/debian/arch/m68k/config.mac	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/m68k/config.mac	2005-11-06 16:19:16 UTC (rev 4733)
@@ -28,7 +28,6 @@
 CONFIG_BLK_DEV_IDECD=y
 CONFIG_BLK_DEV_IDETAPE=m
 CONFIG_BLK_DEV_IDEFLOPPY=m
-# CONFIG_BLK_DEV_IDESCSI is not set
 # CONFIG_IDE_TASK_IOCTL is not set
 CONFIG_IDE_GENERIC=y
 # CONFIG_IDE_ARM is not set
@@ -57,7 +56,6 @@
 CONFIG_IPDDP_ENCAP=y
 CONFIG_IPDDP_DECAP=y
 CONFIG_NET_ETHERNET=y
-# CONFIG_MII is not set
 CONFIG_MAC8390=y
 CONFIG_MAC89x0=y
 CONFIG_MACSONIC=y
@@ -78,10 +76,7 @@
 # CONFIG_SERIAL_8250 is not set
 CONFIG_GEN_RTC=m
 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=y
 # CONFIG_FB_MODE_HELPERS is not set
 # CONFIG_FB_TILEBLITTING is not set

Modified: people/waldi/linux-2.6/debian/arch/m68k/config.mvme147
===================================================================
--- people/waldi/linux-2.6/debian/arch/m68k/config.mvme147	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/m68k/config.mvme147	2005-11-06 16:19:16 UTC (rev 4733)
@@ -30,7 +30,6 @@
 # CONFIG_IPX_INTERN is not set
 # CONFIG_DEV_APPLETALK is not set
 CONFIG_NET_ETHERNET=y
-CONFIG_MII=m
 CONFIG_MVME147_NET=y
 CONFIG_PPP_FILTER=y
 CONFIG_PPP_ASYNC=m
@@ -47,10 +46,7 @@
 # CONFIG_SERIAL_8250 is not set
 CONFIG_GEN_RTC=m
 CONFIG_FB=y
-# CONFIG_FB_CFB_FILLRECT is not set
-# CONFIG_FB_CFB_COPYAREA is not set
 # CONFIG_FB_CFB_IMAGEBLIT is not set
-# CONFIG_FB_SOFT_CURSOR is not set
 # CONFIG_FB_MACMODES is not set
 # CONFIG_FB_MODE_HELPERS is not set
 # CONFIG_FB_TILEBLITTING is not set

Modified: people/waldi/linux-2.6/debian/arch/m68k/config.mvme16x
===================================================================
--- people/waldi/linux-2.6/debian/arch/m68k/config.mvme16x	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/m68k/config.mvme16x	2005-11-06 16:19:16 UTC (rev 4733)
@@ -33,7 +33,6 @@
 # CONFIG_IPX_INTERN is not set
 # CONFIG_DEV_APPLETALK is not set
 CONFIG_NET_ETHERNET=y
-CONFIG_MII=m
 CONFIG_MVME16x_NET=y
 CONFIG_PPP_FILTER=y
 CONFIG_PPP_ASYNC=m
@@ -50,10 +49,7 @@
 # CONFIG_SERIAL_8250 is not set
 CONFIG_GEN_RTC=m
 CONFIG_FB=y
-# CONFIG_FB_CFB_FILLRECT is not set
-# CONFIG_FB_CFB_COPYAREA is not set
 # CONFIG_FB_CFB_IMAGEBLIT is not set
-# CONFIG_FB_SOFT_CURSOR is not set
 # CONFIG_FB_MACMODES is not set
 # CONFIG_FB_MODE_HELPERS is not set
 # CONFIG_FB_TILEBLITTING is not set

Modified: people/waldi/linux-2.6/debian/arch/m68k/config.q40
===================================================================
--- people/waldi/linux-2.6/debian/arch/m68k/config.q40	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/m68k/config.q40	2005-11-06 16:19:16 UTC (rev 4733)
@@ -30,7 +30,6 @@
 CONFIG_BLK_DEV_IDECD=y
 CONFIG_BLK_DEV_IDETAPE=m
 CONFIG_BLK_DEV_IDEFLOPPY=m
-# CONFIG_BLK_DEV_IDESCSI is not set
 # CONFIG_IDE_TASK_IOCTL is not set
 CONFIG_IDE_GENERIC=y
 # CONFIG_IDE_ARM is not set
@@ -63,7 +62,6 @@
 # CONFIG_DEV_APPLETALK is not set
 # CONFIG_ARCNET is not set
 CONFIG_NET_ETHERNET=y
-CONFIG_MII=m
 # CONFIG_NET_VENDOR_3COM is not set
 # CONFIG_NET_VENDOR_SMC is not set
 # CONFIG_NET_VENDOR_RACAL is not set
@@ -73,7 +71,6 @@
 # CONFIG_NET_ISA is not set
 CONFIG_NE2000=m
 # CONFIG_NET_PCI is not set
-# CONFIG_NET_POCKET is not set
 # CONFIG_TR is not set
 CONFIG_PPP_FILTER=y
 CONFIG_PPP_ASYNC=m
@@ -94,10 +91,7 @@
 # CONFIG_SERIAL_8250 is not set
 CONFIG_GEN_RTC=m
 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

Modified: people/waldi/linux-2.6/debian/arch/m68k/config.sun3
===================================================================
--- people/waldi/linux-2.6/debian/arch/m68k/config.sun3	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/m68k/config.sun3	2005-11-06 16:19:16 UTC (rev 4733)
@@ -17,7 +17,6 @@
 # CONFIG_IPX_INTERN is not set
 # CONFIG_DEV_APPLETALK is not set
 CONFIG_NET_ETHERNET=y
-CONFIG_MII=m
 CONFIG_SUN3LANCE=y
 CONFIG_SUN3_82586=y
 CONFIG_PPP_FILTER=y
@@ -35,10 +34,7 @@
 # CONFIG_SERIAL_8250 is not set
 CONFIG_GEN_RTC=y
 CONFIG_FB=y
-# CONFIG_FB_CFB_FILLRECT is not set
-# CONFIG_FB_CFB_COPYAREA is not set
 # CONFIG_FB_CFB_IMAGEBLIT is not set
-# CONFIG_FB_SOFT_CURSOR is not set
 # CONFIG_FB_MACMODES is not set
 # CONFIG_FB_MODE_HELPERS is not set
 # CONFIG_FB_TILEBLITTING is not set

Modified: people/waldi/linux-2.6/debian/arch/m68k/defines
===================================================================
--- people/waldi/linux-2.6/debian/arch/m68k/defines	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/m68k/defines	2005-11-06 16:19:16 UTC (rev 4733)
@@ -10,6 +10,8 @@
  mvme16x
  q40
  sun3
+kernel-arch: m68k
+kernel-header-dirs: m68k
 suggests: vmelilo, fdutils
 
 [amiga]

Modified: people/waldi/linux-2.6/debian/arch/powerpc/config
===================================================================
--- people/waldi/linux-2.6/debian/arch/powerpc/config	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/powerpc/config	2005-11-06 16:19:16 UTC (rev 4733)
@@ -19,6 +19,7 @@
 # CONFIG_POWER3 is not set
 # CONFIG_POWER4 is not set
 # CONFIG_8xx is not set
+# CONFIG_E200 is not set
 # CONFIG_E500 is not set
 CONFIG_PPC_FPU=y
 CONFIG_ALTIVEC=y
@@ -110,7 +111,6 @@
 CONFIG_TASK_SIZE=0x80000000
 CONFIG_BOOT_LOAD=0x00800000
 CONFIG_STANDALONE=y
-CONFIG_FW_LOADER=m
 # CONFIG_DEBUG_DRIVER is not set
 # CONFIG_MTD is not set
 # CONFIG_PARPORT is not set
@@ -141,7 +141,6 @@
 CONFIG_BLK_DEV_IDECD=m
 CONFIG_BLK_DEV_IDETAPE=m
 CONFIG_BLK_DEV_IDEFLOPPY=m
-CONFIG_BLK_DEV_IDESCSI=m
 # CONFIG_IDE_TASK_IOCTL is not set
 # CONFIG_IDE_GENERIC is not set
 CONFIG_BLK_DEV_IDEPCI=y
@@ -234,9 +233,6 @@
 CONFIG_MD_RAID6=m
 CONFIG_MD_FAULTY=m
 CONFIG_DM_MULTIPATH_EMC=m
-CONFIG_FUSION=m
-CONFIG_FUSION_MAX_SGE=40
-CONFIG_FUSION_CTL=m
 # CONFIG_FUSION_LAN is not set
 CONFIG_IEEE1394=m
 # CONFIG_IEEE1394_VERBOSEDEBUG is not set
@@ -255,7 +251,6 @@
 CONFIG_IEEE1394_AMDTP=m
 CONFIG_I2O=m
 CONFIG_I2O_CONFIG=m
-CONFIG_I2O_CONFIG_OLD_IOCTL=y
 CONFIG_I2O_BLOCK=m
 CONFIG_I2O_SCSI=m
 CONFIG_I2O_PROC=m
@@ -404,7 +399,6 @@
 # CONFIG_ARCNET_RIM_I is not set
 CONFIG_ARCNET_COM20020=m
 CONFIG_ARCNET_COM20020_PCI=m
-CONFIG_MII=y
 CONFIG_MACE=m
 # CONFIG_MACE_AAUI_PORT is not set
 CONFIG_BMAC=m
@@ -873,10 +867,7 @@
 CONFIG_VIDEO_IR=m
 CONFIG_VIDEO_TVEEPROM=m
 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=y
 CONFIG_FB_MODE_HELPERS=y
 CONFIG_FB_TILEBLITTING=y
@@ -892,8 +883,8 @@
 CONFIG_FB_IMSTT=y
 # CONFIG_FB_VGA16 is not set
 CONFIG_FB_NVIDIA=y
-CONFIG_FB_RIVA=y
-CONFIG_FB_RIVA_I2C=y
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_RIVA_I2C is not set
 # CONFIG_FB_RIVA_DEBUG is not set
 CONFIG_FB_MATROX=y
 CONFIG_FB_MATROX_MILLENIUM=y
@@ -949,7 +940,6 @@
 CONFIG_SND_TIMER=m
 CONFIG_SND_PCM=m
 CONFIG_SND_HWDEP=m
-CONFIG_SND_RAWMIDI=m
 CONFIG_SND_SEQUENCER=m
 # CONFIG_SND_SEQ_DUMMY is not set
 CONFIG_SND_OSSEMUL=y
@@ -1164,7 +1154,6 @@
 CONFIG_EXT2_FS_XATTR=y
 CONFIG_EXT2_FS_POSIX_ACL=y
 CONFIG_EXT2_FS_SECURITY=y
-CONFIG_EXT2_FS_XIP=n
 CONFIG_EXT3_FS=m
 CONFIG_EXT3_FS_SECURITY=y
 CONFIG_JBD=m
@@ -1258,3 +1247,11 @@
 # CONFIG_HZ_250 is not set
 CONFIG_HZ_1000=y
 CONFIG_HZ=1000
+CONFIG_SND_POWERMAC_AUTO_DRC=y
+CONFIG_USB_APPLETOUCH=m
+CONFIG_SOFTWARE_SUSPEND=y
+CONFIG_PM_STD_PARTITION=""
+CONFIG_HOTPLUG=y
+# CONFIG_HOTPLUG_CPU is not set
+CONFIG_MKISS=m
+CONFIG_I2C_PMAC_SMU=m

Modified: people/waldi/linux-2.6/debian/arch/powerpc/config.apus
===================================================================
--- people/waldi/linux-2.6/debian/arch/powerpc/config.apus	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/powerpc/config.apus	2005-11-06 16:19:16 UTC (rev 4733)
@@ -31,8 +31,6 @@
 CONFIG_BSD_PROCESS_ACCT=y
 # CONFIG_BSD_PROCESS_ACCT_V3 is not set
 CONFIG_SYSCTL=y
-# CONFIG_AUDIT is not set
-# CONFIG_HOTPLUG is not set
 CONFIG_KOBJECT_UEVENT=y
 # CONFIG_IKCONFIG is not set
 # CONFIG_EMBEDDED is not set
@@ -180,7 +178,6 @@
 #
 CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
-# CONFIG_FW_LOADER is not set
 # CONFIG_DEBUG_DRIVER is not set
 
 #
@@ -250,7 +247,6 @@
 CONFIG_BLK_DEV_IDECD=y
 # CONFIG_BLK_DEV_IDETAPE is not set
 CONFIG_BLK_DEV_IDEFLOPPY=y
-CONFIG_BLK_DEV_IDESCSI=m
 # CONFIG_IDE_TASK_IOCTL is not set
 
 #
@@ -324,7 +320,6 @@
 # CONFIG_SCSI_IPR 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 is not set
@@ -368,7 +363,6 @@
 #
 # Fusion MPT device support
 #
-# CONFIG_FUSION is not set
 
 #
 # IEEE 1394 (FireWire) support
@@ -529,7 +523,6 @@
 # Ethernet (10 or 100Mbit)
 #
 CONFIG_NET_ETHERNET=y
-# CONFIG_MII is not set
 CONFIG_ARIADNE=y
 CONFIG_A2065=y
 CONFIG_HYDRA=y
@@ -732,10 +725,7 @@
 # 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
@@ -1079,8 +1069,10 @@
 #
 # Cryptographic options
 #
-# CONFIG_CRYPTO is not set
 
 #
 # Hardware crypto devices
 #
+# CONFIG_HWMON_VID is not set
+CONFIG_NFS_ACL_SUPPORT=y
+CONFIG_CRYPTO=y

Modified: people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc
===================================================================
--- people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,17 +1,7 @@
 CONFIG_BROKEN_ON_SMP=y
 # CONFIG_SMP is not set
-CONFIG_SOFTWARE_SUSPEND=y
 CONFIG_PM_STD_PARTITION=""
-CONFIG_MKISS=m
 # CONFIG_IRPORT_SIR is not set
 CONFIG_PCMCIA_XIRTULIP=m
 # CONFIG_USB_SERIAL_WHITEHEAT is not set
 CONFIG_MAC_FLOPPY=y
-CONFIG_6xx=y
-# CONFIG_40x is not set
-# CONFIG_44x is not set
-# CONFIG_POWER3 is not set
-# CONFIG_POWER4 is not set
-# CONFIG_8xx is not set
-# CONFIG_E200 is not set
-# CONFIG_E500 is not set

Modified: people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc-miboot
===================================================================
--- people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc-miboot	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc-miboot	2005-11-06 16:19:16 UTC (rev 4733)
@@ -18,8 +18,6 @@
 # CONFIG_LBD is not set
 # CONFIG_IOSCHED_AS is not set
 # CONFIG_IOSCHED_CFQ is not set
-# CONFIG_ADB_PMU is not set
-# CONFIG_ADB_MACIO is not set
 # CONFIG_THERM_WINDTUNNEL is not set
 # CONFIG_THERM_ADT746X is not set
 # CONFIG_IPV6_TUNNEL is not set
@@ -60,7 +58,6 @@
 # CONFIG_BOOTX_TEXT is not set
 # CONFIG_KEYS is not set
 # CONFIG_SECURITY is not set
-CONFIG_CRYPTO_MD5=m
 CONFIG_CHR_DEV_SCH=m
 # CONFIG_MEGARAID_LEGACY is not set
 CONFIG_ASFS_FS=m
@@ -70,4 +67,7 @@
 CONFIG_PCMCIA_XIRTULIP=m
 # 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

Modified: people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc-smp
===================================================================
--- people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc-smp	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc-smp	2005-11-06 16:19:16 UTC (rev 4733)
@@ -4,13 +4,4 @@
 CONFIG_SMP=y
 CONFIG_IRQ_ALL_CPUS=y
 CONFIG_NR_CPUS=4
-# CONFIG_SOFTWARE_SUSPEND is not set
 # CONFIG_MAC_FLOPPY is not set
-CONFIG_6xx=y
-# CONFIG_40x is not set
-# CONFIG_44x is not set
-# CONFIG_POWER3 is not set
-# CONFIG_POWER4 is not set
-# CONFIG_8xx is not set
-# CONFIG_E200 is not set
-# CONFIG_E500 is not set

Modified: people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc64
===================================================================
--- people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc64	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/powerpc/config.powerpc64	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,5 +1,4 @@
 CONFIG_64BIT=y
-CONFIG_AUDITSYSCALL=y
 CONFIG_COMPAT=y
 CONFIG_CPUSETS=y
 # CONFIG_DEBUGGER is not set
@@ -16,7 +15,6 @@
 CONFIG_FORCE_MAX_ZONEORDER=13
 # CONFIG_GEN_RTC is not set
 CONFIG_HANGCHECK_TIMER=m
-# CONFIG_HOTPLUG_CPU is not set
 # CONFIG_HOTPLUG_PCI is not set
 # CONFIG_HUGETLBFS is not set
 CONFIG_HVC_CONSOLE=y
@@ -32,6 +30,8 @@
 CONFIG_MEGARAID_LEGACY=m
 CONFIG_MPIC_BROKEN_U3=y
 CONFIG_NR_CPUS=32
+# CONFIG_FLATMEM is not set
+CONFIG_DISCONTIGMEM=y
 CONFIG_NUMA=y
 # CONFIG_PMAC_BACKLIGHT is not set
 # CONFIG_PMAC_PBOOK is not set
@@ -61,8 +61,20 @@
 CONFIG_SYSVIPC_COMPAT=y
 CONFIG_THERM_PM72=y
 CONFIG_U3_DART=y
+CONFIG_WATCHDOG_RTAS=m
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
+CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_SELECT_MEMORY_MODEL=y
 # CONFIG_FLATMEM_MANUAL is not set
 CONFIG_DISCONTIGMEM_MANUAL=y
 # CONFIG_SPARSEMEM_MANUAL is not set
-CONFIG_I2O_EXT_ADAPTEC_DMA64=y
-CONFIG_WATCHDOG_RTAS=m
+CONFIG_DISCONTIGMEM=y
+CONFIG_IRQ_ALL_CPUS=y
+CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y
+CONFIG_MPIC=y
+CONFIG_NEED_MULTIPLE_NODES=y
+CONFIG_XICS=y
+CONFIG_NODES_SPAN_OTHER_NODES=y

Modified: people/waldi/linux-2.6/debian/arch/powerpc/defines
===================================================================
--- people/waldi/linux-2.6/debian/arch/powerpc/defines	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/powerpc/defines	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,15 +1,15 @@
 [base]
 flavours:
- apus
  powerpc
  powerpc-smp
  powerpc-miboot
  powerpc64
 kernel-arch: ppc
+kernel-header-dirs: powerpc ppc ppc64 m68k
 kpkg-subarch: powerpc
 
 [apus]
-kpkg-subarch: apus
+depends: mkvmlinuz (>= 15)
 
 [powerpc]
 depends: mkvmlinuz (>= 13)

Modified: people/waldi/linux-2.6/debian/arch/s390/config
===================================================================
--- people/waldi/linux-2.6/debian/arch/s390/config	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/s390/config	2005-11-06 16:19:16 UTC (rev 4733)
@@ -37,7 +37,6 @@
 CONFIG_NO_IDLE_HZ_INIT=y
 # CONFIG_PCMCIA is not set
 CONFIG_STANDALONE=y
-# CONFIG_FW_LOADER is not set
 # CONFIG_SCSI_DEBUG is not set
 CONFIG_ZFCP=m
 CONFIG_CCW=y
@@ -101,7 +100,6 @@
 # CONFIG_IRDA is not set
 # CONFIG_BT is not set
 # CONFIG_DUMMY is not set
-# CONFIG_MII is not set
 CONFIG_TR=y
 # CONFIG_NET_RADIO is not set
 # CONFIG_WAN is not set
@@ -122,7 +120,6 @@
 # CONFIG_NETCONSOLE is not set
 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_SECURITY is not set
 CONFIG_JBD=y

Modified: people/waldi/linux-2.6/debian/arch/s390/defines
===================================================================
--- people/waldi/linux-2.6/debian/arch/s390/defines	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/s390/defines	2005-11-06 16:19:16 UTC (rev 4733)
@@ -2,6 +2,8 @@
 desc: This kernel has support to IPL (boot) from a VM reader or DASD device.
 flavours: s390 s390x
 suggests: s390-tools
+kernel-arch: s390
+kernel-header-dirs: s390
 
 [s390]
 class: IBM S/390

Modified: people/waldi/linux-2.6/debian/arch/sparc/config
===================================================================
--- people/waldi/linux-2.6/debian/arch/sparc/config	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/sparc/config	2005-11-06 16:19:16 UTC (rev 4733)
@@ -23,12 +23,8 @@
 CONFIG_PARPORT_SUNBPP=m
 CONFIG_PARPORT_1284=y
 CONFIG_PRINTER=m
-CONFIG_FW_LOADER=m
 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_TILEBLITTING is not set
 # CONFIG_FB_CIRRUS is not set
@@ -256,7 +252,6 @@
 # CONFIG_BT is not set
 CONFIG_DUMMY=m
 # CONFIG_ARCNET is not set
-CONFIG_MII=m
 CONFIG_SUNLANCE=m
 CONFIG_HAPPYMEAL=m
 CONFIG_SUNBMAC=m
@@ -448,3 +443,27 @@
 CONFIG_IP_ROUTE_FWMARK=y
 CONFIG_IP_ROUTE_MULTIPATH=y
 CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_HZ=250
+# CONFIG_HZ_1000 is not set
+# CONFIG_HZ_100 is not set
+CONFIG_HZ_250=y
+CONFIG_SND_SUN_DBRI=m
+# CONFIG_SOUND_PRIME is not set
+# CONFIG_PPDEV is not set
+CONFIG_FONT_8x16=y
+CONFIG_LEGACY_PTY_COUNT=256
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_APPLICOM is not set
+# CONFIG_MMC is not set
+# CONFIG_TIPAR is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+# CONFIG_LP_CONSOLE is not set
+# CONFIG_W1 is not set
+# CONFIG_R3964 is not set
+# CONFIG_I2O is not set
+# CONFIG_DTLK is not set
+# CONFIG_IPMI_HANDLER is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_I2C_ISA=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_MGA=m

Modified: people/waldi/linux-2.6/debian/arch/sparc/config.sparc64
===================================================================
--- people/waldi/linux-2.6/debian/arch/sparc/config.sparc64	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/sparc/config.sparc64	2005-11-06 16:19:16 UTC (rev 4733)
@@ -67,7 +67,6 @@
 CONFIG_BLK_DEV_IDECD=m
 CONFIG_BLK_DEV_IDETAPE=m
 CONFIG_BLK_DEV_IDEFLOPPY=m
-# CONFIG_BLK_DEV_IDESCSI is not set
 # CONFIG_IDE_TASK_IOCTL is not set
 CONFIG_IDE_GENERIC=m
 CONFIG_BLK_DEV_IDEPCI=y
@@ -129,9 +128,6 @@
 CONFIG_SCSI_LPFC=m
 CONFIG_SCSI_DC395x=m
 CONFIG_SCSI_SUNESP=m
-CONFIG_FUSION=m
-CONFIG_FUSION_MAX_SGE=40
-CONFIG_FUSION_CTL=m
 CONFIG_FUSION_LAN=m
 CONFIG_IEEE1394=m
 # CONFIG_IEEE1394_VERBOSEDEBUG is not set
@@ -222,7 +218,6 @@
 # CONFIG_I2C_I801 is not set
 # CONFIG_I2C_I810 is not set
 # CONFIG_I2C_PIIX4 is not set
-# CONFIG_I2C_ISA is not set
 # CONFIG_I2C_NFORCE2 is not set
 CONFIG_I2C_PARPORT=m
 CONFIG_I2C_PARPORT_LIGHT=m
@@ -306,7 +301,6 @@
 CONFIG_VIDEO_IR=m
 CONFIG_VIDEO_TVEEPROM=m
 CONFIG_SND_HWDEP=m
-CONFIG_SND_RAWMIDI=m
 CONFIG_SND_SEQUENCER=m
 CONFIG_SND_SEQ_DUMMY=m
 CONFIG_SND_SEQUENCER_OSS=y

Modified: people/waldi/linux-2.6/debian/arch/sparc/config.sparc64-smp
===================================================================
--- people/waldi/linux-2.6/debian/arch/sparc/config.sparc64-smp	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/sparc/config.sparc64-smp	2005-11-06 16:19:16 UTC (rev 4733)
@@ -71,7 +71,6 @@
 CONFIG_BLK_DEV_IDECD=m
 CONFIG_BLK_DEV_IDETAPE=m
 CONFIG_BLK_DEV_IDEFLOPPY=m
-# CONFIG_BLK_DEV_IDESCSI is not set
 # CONFIG_IDE_TASK_IOCTL is not set
 CONFIG_IDE_GENERIC=m
 CONFIG_BLK_DEV_IDEPCI=y
@@ -133,9 +132,6 @@
 CONFIG_SCSI_LPFC=m
 CONFIG_SCSI_DC395x=m
 CONFIG_SCSI_SUNESP=m
-CONFIG_FUSION=m
-CONFIG_FUSION_MAX_SGE=40
-CONFIG_FUSION_CTL=m
 CONFIG_FUSION_LAN=m
 CONFIG_IEEE1394=m
 # CONFIG_IEEE1394_VERBOSEDEBUG is not set
@@ -226,7 +222,6 @@
 # CONFIG_I2C_I801 is not set
 # CONFIG_I2C_I810 is not set
 # CONFIG_I2C_PIIX4 is not set
-# CONFIG_I2C_ISA is not set
 # CONFIG_I2C_NFORCE2 is not set
 CONFIG_I2C_PARPORT=m
 CONFIG_I2C_PARPORT_LIGHT=m
@@ -310,7 +305,6 @@
 CONFIG_VIDEO_IR=m
 CONFIG_VIDEO_TVEEPROM=m
 CONFIG_SND_HWDEP=m
-CONFIG_SND_RAWMIDI=m
 CONFIG_SND_SEQUENCER=m
 CONFIG_SND_SEQ_DUMMY=m
 CONFIG_SND_SEQUENCER_OSS=y

Modified: people/waldi/linux-2.6/debian/arch/sparc/defines
===================================================================
--- people/waldi/linux-2.6/debian/arch/sparc/defines	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/arch/sparc/defines	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,7 +1,11 @@
 [base]
 compiler: gcc-3.3
-flavours: sparc64 sparc64-smp
+flavours:
+ sparc64
+ sparc64-smp
+kernel-arch: sparc64
 kpkg-subarch: sparc64
+kernel-header-dirs: sparc64
 suggests: silo, fdutils
 
 [sparc64]

Modified: people/waldi/linux-2.6/debian/bin/apply
===================================================================
--- people/waldi/linux-2.6/debian/bin/apply	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/bin/apply	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,5 +1,4 @@
-#!/bin/sh 
-# $Id: apply,v 1.4 2003/06/30 12:49:09 herbert Exp $
+#!/bin/bash 
 
 set -e
 
@@ -61,7 +60,6 @@
 
 unpatch_series() {
 	series=$1
-	[ -f "$series" ] || die "I wasn't passed a series: $series"
 
 	tac $series | while read action patch; do
 		case "$action" in
@@ -83,7 +81,7 @@
 
 patch_series() {
 	series=$1
-	[ -f "$series" ] || die "I wasn't passed a series: $series"
+	[ -f "$series" ] || return
 
 	while read action patch; do
 		case "$action" in
@@ -103,52 +101,6 @@
 	echo "--> $(basename $series) fully applied."
 }
 
-bubble_sort ()
-{
-	DIR=$1
-	shift
-	SORTED=$@
-
-	SWAPED=1
-	while [ $SWAPED = 1 ]; do
-		X=0
-		A=""
-		SWAPED=0
-		NEW=""
-		for i in $SORTED; do
-			if [ -z "$A" ]; then
-				A="$i"
-				continue
-			fi
-			B="$i"
-		
-			if dpkg --compare-versions "$A" "$DIR" "$B"; then
-				SWAPED=1
-				NEW="$NEW $B"
-			else
-				NEW="$NEW $A"
-				A="$B"
-			fi
-
-			X=$(($X + 1))
-		done
-		SORTED="$NEW $A"
-	done
-
-	echo $SORTED
-}
-
-bubble_sort_fwd ()
-{
-	bubble_sort "lt" $@
-}
-
-bubble_sort_rev ()
-{
-	bubble_sort "gt" $@
-}
-
-
 if ! [ -d Documentation ] || ! [ -d kernel ]; then
 	die 'Not in kernel top level directory.  Exiting'
 	exit 1
@@ -156,15 +108,20 @@
 
 # for THIS particular version of the source package
 version=${override_version:- at version@}
-upstream=${version%-*}
-revision=${version#*-}
+revision=$(echo $version | sed -ne 's,^\(.*\)-\([^-]*\)$,\2,p')
+upstream=$(echo $version | sed -ne 's,^\(.*\)-\([^-]*\)$,\1,p')
+revisions_count=0
+for i in ${override_revisions:- at revisions@}; do
+    revisions[$revisions_count]=$i
+	revisions_count=$(($revisions_count + 1))
+done
 
 home=${home:-/usr/src/kernel-patches/all/$upstream/debian}
 
 if [ -f version.Debian ]; then
 	current=$(cat version.Debian)
-	current_rev=${current#*-}
-	current_up=${current%-*}
+    current_rev=$(echo $current | sed -ne 's,^\(.*\)-\([^-]*\)$,\2,p')
+    current_up=$(echo $current | sed -ne 's,^\(.*\)-\([^-]*\)$,\1,p')
 
 	if [ "$current" = "$upstream" ]; then
 		current_rev=0
@@ -177,8 +134,8 @@
 
 target=${1:-$version}
 
-target_rev=${target#*-}
-target_up=${target%-*}
+target_rev=$(echo $target | sed -ne 's,^\(.*\)-\([^-]*\)$,\2,p')
+target_up=$(echo $target | sed -ne 's,^\(.*\)-\([^-]*\)$,\1,p')
 
 # Sanity checks
 if dpkg --compare-versions "$target_up" ne "$upstream"; then
@@ -197,53 +154,33 @@
 #    reverse each used series (tac) and unapply applied patches and vice versa.
 # 3. $target_rev is undefined, and $target is $upstream.
 
-# Revert to upstream.
-if [ "$target_rev" = "$target" ]; then
-	# already reverted
-	if [ "$current" = "$target" ]; then 
-		echo "Nothing to do, exiting."
-		exit 0
-	fi
-
-	for base in $(cd $home/series/ && bubble_sort_fwd $(ls -d *)); do
-		srev=${base#*-}
-		if [ -n "$srev" ]; then
-			if dpkg --compare-versions $srev "<=" $current_rev; then
-				unpatch_series $home/series/$base
-			fi
-		else
-			die "Series doesn't have a revision!"
-		fi
-	done
-elif dpkg --compare-versions "$current_rev" eq "$upstream" ||
-              dpkg --compare-versions "$target_rev" gt "$current_rev"; then
-	for base in $(cd $home/series/ && bubble_sort_rev $(ls -d *)); do
-		srev=${base#*-}
-		if [ -n "$srev" ]; then
-		    if dpkg --compare-versions "$srev" gt "$current_rev" && 
-			            dpkg --compare-versions "$srev" le "$target_rev"; then
-				patch_series $home/series/$base
-			fi
-		else
-			die "Series doesn't have a revision!"
-		fi
-	done
-elif dpkg --compare-versions "$target_rev" eq "$current_rev"; then
+if dpkg --compare-versions "$target_rev" eq "$current_rev"; then
 	echo "Nothing to do, exiting."
 	exit 0
-elif dpkg --compare-versions "$target_rev" lt "$current_rev"; then
-	for base in $(cd $home/series/ && bubble_sort_fwd $(ls -d *)); do
-		srev=${base#*-}
-		if [ -n "$srev" ]; then
-			# -gt because you don't want to unapply the target series
-			if dpkg --compare-versions "$srev" le "$current_rev" && 
-			            dpkg --compare-versions "$srev" gt "$target_rev"; then
-				unpatch_series $home/series/$base
-			fi
-		else
-			die "Series doesn't have a revision!"
-		fi
+else
+	cur_index=$revisions_count
+	while [ $cur_index -gt 0 ]; do
+		[ ${revisions[$(($cur_index - 1))]} == $current_rev ] && break
+		cur_index=$(($cur_index - 1))
 	done
+	target_index=$revisions_count
+	while [ $target_index -gt 0 ]; do
+		[ ${revisions[$(($target_index - 1))]} == $target_rev ] && break
+		target_index=$(($target_index - 1))
+	done
+	if [ $target_index -gt $cur_index ]; then
+		while [ $target_index -gt $cur_index ]; do
+			series="$home/series/${upstream}-${revisions[$cur_index]}"
+			[ -f "$series" ] && patch_series $series
+			cur_index=$(($cur_index + 1))
+		done
+	elif [ $target_index -lt $cur_index ]; then
+		while [ $target_index -lt $cur_index ]; do
+			cur_index=$(($cur_index - 1))
+			series="$home/series/${upstream}-${revisions[$cur_index]}"
+			[ -f "$series" ] && unpatch_series $series
+		done
+	fi
 fi
 
 echo $target > version.Debian

Modified: people/waldi/linux-2.6/debian/bin/gencontrol.py
===================================================================
--- people/waldi/linux-2.6/debian/bin/gencontrol.py	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/bin/gencontrol.py	2005-11-06 16:19:16 UTC (rev 4733)
@@ -35,6 +35,7 @@
 """, re.VERBOSE)
     f = file("debian/changelog")
     entries = []
+    act_upstream = None
     while True:
         line = f.readline()
         if not line:
@@ -47,7 +48,12 @@
             e = entry()
             e['Distribution'] = match.group('header_distribution')
             e['Source'] = match.group('header_source')
-            e['Version'] = parse_version(match.group('header_version'))
+            version = parse_version(match.group('header_version'))
+            e['Version'] = version
+            if act_upstream is None:
+                act_upstream = version['upstream']
+            elif version['upstream'] != act_upstream:
+                break
             entries.append(e)
     return entries
 
@@ -55,7 +61,7 @@
     version_re = ur"""
 ^
 (?P<source>
-    (?:
+    (?P<parent>
         \d+\.\d+\.\d+\+
     )?
     (?P<upstream>
@@ -77,7 +83,12 @@
 $
 """
     match = re.match(version_re, version, re.X)
-    return match.groupdict()
+    ret = match.groupdict()
+    if ret['parent'] is not None:
+        ret['source_upstream'] = ret['parent'] + ret['upstream']
+    else:
+        ret['source_upstream'] = ret['upstream']
+    return ret
 
 def process_changelog(in_vars, config, changelog):
     ret = [None, None, None, None]
@@ -213,7 +224,7 @@
         f.write('\n')
 
 def process_real_arch(packages, makefile, config, templates, arch, vars, makeflags):
-    config_entry = config[arch]
+    config_entry = config[arch,]
     vars.update(config_entry)
 
     if not config_entry.get('available', True):
@@ -251,7 +262,7 @@
     makefile.append(("binary-arch-%s-real:" % arch, cmds_binary_arch))
 
 def process_real_flavour(packages, makefile, config, templates, arch, subarch, flavour, vars, makeflags, package_headers_arch_depends):
-    config_entry = config['-'.join((arch, subarch, flavour))]
+    config_entry = config[arch, subarch, flavour]
     vars.update(config_entry)
 
     vars['flavour'] = flavour
@@ -288,7 +299,7 @@
         makefile.append(("%s-%s-%s-%s:: %s-%s-%s-%s-real" % (i, arch, subarch, flavour, i, arch, subarch, flavour), None))
 
     makeflags['FLAVOUR'] = flavour
-    for i in (('compiler', 'COMPILER'), ('kpkg-subarch', 'KPKG_SUBARCH')):
+    for i in (('compiler', 'COMPILER'), ('kernel-header-dirs', 'KERNEL_HEADER_DIRS'), ('kpkg-subarch', 'KPKG_SUBARCH')):
         if config_entry.has_key(i[0]):
             makeflags[i[1]] = config_entry[i[0]]
     makeflags_string = ' '.join(["%s='%s'" % i for i in makeflags.iteritems()])
@@ -316,10 +327,12 @@
 
     makeflags = {
         'VERSION': version['version'],
+        'SOURCE_UPSTREAM': version['source_upstream'],
         'SOURCE_VERSION': version['source'],
         'UPSTREAM_VERSION': version['upstream'],
         'ABINAME': abiname,
         'KPKG_ABINAME': kpkg_abiname,
+        'REVISIONS': ' '.join([i['Version']['debian'] for i in changelog[::-1]]),
     }
     makeflags_string = ' '.join(["%s='%s'" % i for i in makeflags.iteritems()])
 
@@ -357,10 +370,9 @@
 def process_real_subarch(packages, makefile, config, templates, arch, subarch, vars, makeflags, package_headers_arch_depends):
     if subarch == 'none':
         vars['subarch'] = ''
-        config_entry = config[arch]
     else:
         vars['subarch'] = '%s-' % subarch
-        config_entry = config['%s-%s' % (arch, subarch)]
+    config_entry = config[arch, subarch]
     vars.update(config_entry)
 
     headers_subarch = templates["control.headers.subarch"]
@@ -382,7 +394,7 @@
         makefile.append(("%s-%s-%s:: %s-%s-%s-real" % (i, arch, subarch, i, arch, subarch), None))
 
     makeflags['SUBARCH'] = subarch
-    for i in (('compiler', 'COMPILER'), ('kpkg-subarch', 'KPKG_SUBARCH')):
+    for i in ('kernel-header-dirs', 'KERNEL_HEADER_DIRS'),:
         if config_entry.has_key(i[0]):
             makeflags[i[1]] = config_entry[i[0]]
     makeflags_string = ' '.join(["%s='%s'" % i for i in makeflags.iteritems()])

Added: people/waldi/linux-2.6/debian/bin/install-header
===================================================================
--- people/waldi/linux-2.6/debian/bin/install-header	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/bin/install-header	2005-11-06 16:19:16 UTC (rev 4733)
@@ -0,0 +1,29 @@
+#!/bin/bash
+#
+# This is the make-kpkg hook file, which runs when make-kpkg is invoked
+# (from debian/rules) to create the flavour-independent kernel-headers
+# package. The major tasks it performs is removing unneeded
+# include/asm-* directories. 
+#
+set -e
+
+# The scripts/ directory should be supplied for each flavour, since some
+# archs do some *very* strange things...
+rm -rf scripts
+
+# XXX: once we're using a linux-headers-$(version)-$(debnum) that's Arch: all,
+# we'll want to drop this bit of code.  The asm-* directories should remain.
+DIRS="generic $(for i in $KERNEL_HEADER_DIRS; do echo -n '|' $i; done)"
+
+rm -f include/asm
+eval "
+for i in include/asm-*; do
+	case \${i#include/asm-} in
+	$DIRS)
+		;;
+	*)
+		rm -rf "\$i"
+		;;
+	esac
+done
+"

Added: people/waldi/linux-2.6/debian/bin/install-image
===================================================================
--- people/waldi/linux-2.6/debian/bin/install-image	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/bin/install-image	2005-11-06 16:19:16 UTC (rev 4733)
@@ -0,0 +1,154 @@
+#!/bin/bash
+#
+# This is the hook file executed by make-kpkg in the end of creation
+# of the linux-image for a particular flavour. The major task it performs
+# is the creation of the flavour-specific linux-headers package.
+#
+set -e
+
+debhelper_pre() {
+	dh_clean -k --package="$1"
+	dh_installdirs --package="$1"
+}
+
+debhelper_post() {
+	dh_installdocs --package="$1"
+	dh_installchangelogs --package="$1"
+	dh_compress --package="$1"
+	dh_fixperms --package="$1"
+	dh_strip --package="$1"
+	dh_installdeb --package="$1"
+	dh_gencontrol --package="$1"
+	dh_md5sums --package="$1"
+	dh_builddeb --package="$1"
+}
+# The version which ends up here is something like
+# $(version)-$(abiname)-$(flavour) and debnum is just
+# -$(abiname), so that the variables get the values:
+# suffix=$(flavour)
+# prefix=$(version)-$(abiname)
+# prefix is then used to form a destination directory
+# to link to. For cases with subarch we need to link
+# to linux-headers-$(subarch)-$(version)-$(abiname),
+# not just linux-headers-$(version)-$(abiname).
+#
+prefix="$DEBIAN_VERSION-$DEBIAN_ABINAME"
+pkg="linux-headers-$prefix-$DEBIAN_FLAVOUR"
+top="$PWD/debian/$pkg"
+dir="$top/usr/src/$pkg"
+#
+# Here we need to find the kernel architecture which
+# is appropriate for the current flavour. It is available
+# in kernel-package as KERNEL_ARCH. Cleanest way is to get
+# make-kpkg export it to this script. 
+# 
+# Currently we just use the fact that in the build directory
+# the symlink include/asm must point to include/asm-${arch}
+#
+arch="$(readlink include/asm)"
+arch="$(basename "${arch}")"
+arch="${arch#asm-}"
+
+debhelper_pre "$pkg"
+
+#
+# Stuff below is ugly as hell, but does the trick so I'm not
+# touching it until we can invent something better.
+#
+mkdir -p "$dir/arch/$arch/kernel"
+mkdir -p "$dir/include/linux"
+cp -a .config "$dir"
+echo "-$DEBIAN_ABINAME-$DEBIAN_FLAVOUR" > "$dir/.extraversion"
+
+cp -a Module.symvers "$dir"
+
+find . -mindepth 1 -maxdepth 1 \
+	! -name debian -a ! -name Documentation -a ! -name include -a \
+	! -name DEBIAN -a ! -name scripts -a ! -name arch -a ! -name '.*' -a \( \
+	-name Makefile -o -type d \) \
+	-printf "../linux-headers-$prefix/%f\n" |
+	xargs ln -s --target-directory="$dir"
+
+find "arch/$arch" -mindepth 1 -maxdepth 1 \( \
+	-type d -a ! -name include -a ! -name kernel -o \
+	-type f -a \( -name 'Makefile*' -o -name 'Kconfig*' \) \) \
+	-printf "../../../linux-headers-$prefix/%p\n" |
+	xargs ln -s --target-directory="$dir/arch/$arch"
+if [ -d arch/$arch/include ]; then
+	cp -a arch/$arch/include $dir/arch/$arch/include
+fi
+[ -f "arch/$arch/kernel/asm-offsets.s" ] && ln -f "arch/$arch/kernel/asm-offsets.s" "$dir/arch/$arch/kernel"
+ln -s "../../../../linux-headers-$prefix/arch/$arch/kernel/Makefile" "$dir/arch/$arch/kernel"
+find include -mindepth 1 -maxdepth 1 \
+	! -name config -a ! -name linux -a ! -name 'asm-*' \
+	-printf "../../linux-headers-$prefix/%p\n" |
+	xargs ln -s --target-directory="$dir/include"
+cp -a include/config "$dir/include"
+
+ln -sf "asm-${arch}" "$dir/include/asm"
+for i in generic $KERNEL_HEADER_DIRS; do
+	mkdir "$dir/include/asm-$i"
+	find "include/asm-$i" -mindepth 1 -maxdepth 1 \
+		\( -type f -a ! -links 2 -o ! -type f \) \
+		-printf "../../../linux-headers-$prefix/%p\n" |
+		xargs --no-run-if-empty ln -s --target-directory="$dir/include/asm-$i"
+	find "include/asm-$i" -mindepth 1 -maxdepth 1 \
+		-type f -links 2 |
+		xargs --no-run-if-empty ln -f --target-directory="$dir/include/asm-$i"
+done
+
+find include/linux -mindepth 1 -maxdepth 1 \
+	! -name autoconf.h -a ! -name compile.h -a ! -name version.h \
+	-printf "../../../linux-headers-$prefix/%p\n" |
+	xargs ln -s --target-directory="$dir/include/linux"
+cp -a include/linux/autoconf.h include/linux/compile.h \
+	include/linux/version.h "$dir/include/linux"
+
+mkdir -p "$top/lib/modules/$version"
+ln -s "/usr/src/linux-headers-$version" "$top/lib/modules/$version/build"
+
+# Populate the scripts directory. The strategy here is to specify what
+# *not* to copy, to make things a little bit more robust. We first create
+# a file with exclude patterns, then copy everything minus excluded files.
+#
+cat > scripts-exclude <<EXCLUDES
+*.c
+*.c_shipped
+*.h
+*.y
+*.l
+*.gperf
+*POTFILES.in
+*.gitignore
+*lxdialog*
+*package*
+EXCLUDES
+tar cfh - -X scripts-exclude scripts | (cd "$dir"; umask 000; tar xsf -)
+rm -f script-exclude
+
+debhelper_post "$pkg"
+
+#
+# Check whether we should force any modules to be available
+# on the initrd.
+#
+cd "${IMAGE_TOP}/lib/modules/${version}"
+modules='@initrd_modules@'
+if [ -n "${modules}" ]; then
+  mkdir initrd
+  for i in ${modules}; do
+    if [ -f "${i}" ]; then
+      ln "${i}" initrd
+    fi
+  done
+fi
+
+#
+# Clean up the build and source symlinks
+#
+if [ -L build ]; then
+  rm -f build
+fi
+if [ -L source ]; then
+  rm -f source
+fi

Deleted: people/waldi/linux-2.6/debian/bin/prune-non-free
===================================================================
--- people/waldi/linux-2.6/debian/bin/prune-non-free	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/bin/prune-non-free	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,312 +0,0 @@
-#!/usr/bin/ruby -w
-# prune-non-free - split out non-free drivers, and generate kernel-source tarball.
-#
-#    Copyright (C) 2005  Andres Salomon <dilinger at debian.org>
-#
-#    This program is free software; you can redistribute it and/or modify
-#    it under the terms of the GNU General Public License 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-#
-
-FILES = %w{
-	drivers/net/tg3.c
-	drivers/net/tg3.h
-
-	drivers/net/acenic.c
-	drivers/net/acenic.h
-	drivers/net/acenic_firmware.h
-
-	drivers/net/dgrs.c
-	drivers/net/dgrs.h
-	drivers/net/dgrs_es4h.h
-	drivers/net/dgrs_plx9060.h
-	drivers/net/dgrs_i82596.h
-	drivers/net/dgrs_ether.h
-	drivers/net/dgrs_asstruct.h
-	drivers/net/dgrs_bcomm.h
-	drivers/net/dgrs_firmware.c
-
-	drivers/net/tokenring/smctr.c
-	drivers/net/tokenring/smctr.h
-	drivers/net/tokenring/smctr_firmware.h
-
-	drivers/scsi/qla2xxx/qla_def.h
-	drivers/scsi/qla2xxx/qla_settings.h
-	drivers/scsi/qla2xxx/qla_version.h
-	drivers/scsi/qla2xxx/qla_gbl.h
-	drivers/scsi/qla2xxx/qla_dbg.h
-	drivers/scsi/qla2xxx/qla_inline.h
-	drivers/scsi/qla2xxx/qla_listops.h
-	drivers/scsi/qla2xxx/qla_devtbl.h
-	drivers/scsi/qla2xxx/qla_os.c
-	drivers/scsi/qla2xxx/qla_init.c
-	drivers/scsi/qla2xxx/qla_mbx.c
-	drivers/scsi/qla2xxx/qla_iocb.c
-	drivers/scsi/qla2xxx/qla_isr.c
-	drivers/scsi/qla2xxx/qla_gs.c
-	drivers/scsi/qla2xxx/qla_dbg.c
-	drivers/scsi/qla2xxx/qla_sup.c
-	drivers/scsi/qla2xxx/qla_rscn.c
-	drivers/scsi/qla2xxx/ql2100.c
-	drivers/scsi/qla2xxx/ql2100_fw.c
-	drivers/scsi/qla2xxx/ql2200.c
-	drivers/scsi/qla2xxx/ql2200_fw.c
-	drivers/scsi/qla2xxx/ql2300.c
-	drivers/scsi/qla2xxx/ql2300_fw.c
-	drivers/scsi/qla2xxx/ql2322.c
-	drivers/scsi/qla2xxx/ql2322_fw.c
-	drivers/scsi/qla2xxx/ql6312.c
-	drivers/scsi/qla2xxx/ql6312_fw.c
-
-	drivers/usb/media/dabusb.c
-	drivers/usb/media/dabusb.h
-	drivers/usb/media/dabfirmware.h
-
-	drivers/usb/misc/emi62.c
-	drivers/usb/misc/emi62_fw_m.h
-	drivers/usb/misc/emi62_fw_s.h
-
-	drivers/usb/serial/keyspan.c
-	drivers/usb/serial/keyspan.h
-	-drivers/usb/serial/usb-serial.h
-	drivers/usb/serial/keyspan_mpr_fw.h
-	drivers/usb/serial/keyspan_usa18x_fw.h
-	drivers/usb/serial/keyspan_usa19_fw.h
-	drivers/usb/serial/keyspan_usa19qi_fw.h
-	drivers/usb/serial/keyspan_usa19qw_fw.h
-	drivers/usb/serial/keyspan_usa19w_fw.h
-	drivers/usb/serial/keyspan_usa28_fw.h
-	drivers/usb/serial/keyspan_usa28x_fw.h
-	drivers/usb/serial/keyspan_usa28xa_fw.h
-	drivers/usb/serial/keyspan_usa28xb_fw.h
-	drivers/usb/serial/keyspan_usa49w_fw.h
-	drivers/usb/serial/keyspan_usa49wlc_fw.h
-	drivers/usb/serial/keyspan_usa26msg.h
-	drivers/usb/serial/keyspan_usa28msg.h
-	drivers/usb/serial/keyspan_usa49msg.h
-	drivers/usb/serial/keyspan_usa90msg.h
-}
-
-require 'tempfile'
-require 'fileutils'
-require 'open3'
-
-class Shell
-	def Shell.quote(s)
-		"'" + s.gsub("'") { |i| "'\\''" } + "'"
-	end
-
-	def Shell.quote!(s)
-		s.replace(quote(s))
-	end
-
-	def Shell.command(cmd)
-		if cmd.class == Array
-			s = cmd.shift
-			cmd.each { |arg|
-				s += ' ' + Shell.quote(arg)
-			}
-			cmd = s
-		end
-
-		ret = Open3.popen3(cmd + ';echo $?') { |si,so,se|
-			[ so.readlines, se.readlines ]
-		}
-		errno = ret[0].pop.to_i
-		raise "Error: cannot execute command #{cmd}: #{ret[1].join('')}" if errno != 0
-		ret
-	end
-end
-
-def tmpdir
-	tf = Tempfile.new('prune','.')
-	FileUtils.rm_f(tf.path)
-	FileUtils.mkdir_p(tf.path)
-	tf.path
-end
-
-def kversion(file)
-	tarball = File.basename(file)
-	unless tarball =~ /^linux-([0-9\.]+)\.tar.*$/
-		raise "cannot determine kernel version from '#{tarball}'!"
-	end
-	$1
-end
-
-def zip_type(tarball)
-	if tarball =~ /\.gz$/
-		'z'
-	elsif tarball =~ /\.bz2/
-		'j'
-	else
-		''
-	end
-end
-
-def unpack(tarball, targetdir)
-	unless File.exists?(tarball)
-		raise "file '#{tarball}' doesn't exist!"
-	end
-	FileUtils.rm_rf(targetdir)
-
-	zipped = zip_type(tarball)
-	dir = Shell.command("tar #{zipped}tf " + Shell.quote(tarball) + " | head -n1")
-	dir = dir[0][0].chomp
-
-	tmp = tmpdir()
-	Shell.command("tar #{zipped}xCf #{tmp} " + Shell.quote(tarball))
-	FileUtils.mv("#{tmp}/#{dir}", targetdir)
-	FileUtils.rm_rf(tmp)
-end
-
-def pack(tarball, srcdir)
-	unless File.directory?(srcdir)
-		raise "directory '#{srcdir}' doesn't exist!"
-	end
-	FileUtils.rm_f(tarball)
-
-	zipped = zip_type(tarball)
-	Shell.command("tar #{zipped}cf " + Shell.quote(tarball) + ' ' + Shell.quote(srcdir))
-end
-
-def rm_config_from_kconfig(mf, option)
-	option = option.sub(/^CONFIG_/, '')
-	kconfig = File.dirname(mf) + '/Kconfig'
-	new_kconfig = File.open(kconfig + '.new', 'w')
-	deleting = false
-	File.open(kconfig).each { |line|
-		if line.include?(option) && line =~ /^config\s+/
-			deleting = true
-		elsif line =~ /^(config|endmenu|comment)/
-			deleting = false
-		end
-		new_kconfig << line unless deleting
-	}
-	new_kconfig.close
-	FileUtils.mv(kconfig + '.new', kconfig)
-end
-
-def rm_config_from_makefile(mf, objects)
-	new_mf = File.open(mf + '.new', 'w')
-	File.open(mf).each { |line|
-		objects.each { |o|
-			line.gsub!(o, '')
-		}
-
-		if line !~ /=[\s\\]*$/
-			new_mf << line
-		end
-	}
-	new_mf.close
-	FileUtils.mv(mf + '.new', mf)
-end
-
-def scan_frag(src_mf, dst_mf, objects)
-	deferred = []
-	File.open(src_mf).each { |line|
-		if objects.find { |o| line.include?(o) } || line.include?('EXTRA_CFLAGS')
-			if line =~ /\$\((CONFIG_[A-Z0-9_]+)\)/
-				rm_config_from_kconfig(src_mf, $1)
-				dst_mf << "EXTRA_CFLAGS += -D#{$1}=1\n"
-				line.gsub!(/\$\(CONFIG_[A-Z0-9_]+\)/, 'm')
-			end
-			dst_mf << line
-
-			# Work around more complex Makefile builds
-			if line !~ /^\s*obj-/ && line =~ /^\s*([\w\d]+)-/
-				deferred << "#{$1}.o"
-			end
-
-			# Finally, delete object
-			rm_config_from_makefile(src_mf, objects)
-		end
-	}
-	deferred
-end
-
-def mk_makefile(name, dst_dir, fragments)
-	mf = File.open(name, 'w')
-	mf << "DIR ?= /usr/src/linux\n\n"
-	fragments.each { |key, val|
-		objects = val
-#		objects << 'EXTRA_CFLAGS' # make sure these don't get missed
-		while objects.length > 0
-			objects = scan_frag("#{dst_dir}/#{key}/Makefile", mf, objects)
-		end
-	}
-	mf << "\nall:\n\t$(MAKE) -C $(DIR) M=$(CURDIR) modules\n\n"
-	mf << "install:\n\t$(MAKE) -C $(DIR) M=$(CURDIR) modules_install\n\n"
-	mf << "clean:\n\t$(MAKE) -C $(DIR) M=$(CURDIR) clean\n\n"
-	mf.close
-end
-
-def dont_nuke_debian_dir(free_dir)
-	name = free_dir + '/scripts/package/Makefile'
-	mf = File.open(name + '.new', 'w')
-	File.open(name).each { |line|
-		if line !~ /\/debian\//
-			mf << line
-		end
-	}
-	mf.close
-	FileUtils.mv(name + '.new', name)
-end
-
-raise "Usage: #{$0} <kernel tarball>" unless ARGV.length == 1
-
-# Create source directories
-version = kversion(ARGV[0])
-free_dir = "kernel-source-#{version}-#{version}"
-nonfree_dir = "kernel-source-nonfree-#{version}-#{version}"
-unpack(ARGV[0], free_dir)
-FileUtils.mkdir_p(nonfree_dir)
-
-# Move or copy non-free and support files into non-free directory
-makefiles = {}
-FILES.each { |f|
-	copy = false
-	if f =~ /^-/
-		f.sub!(/^-/, '')
-		copy = true
-	end
-
-	file = File.basename(f)
-	dir = File.dirname(f)
-
-	# Move or copy file into non-free
-	if copy
-		FileUtils.cp("#{free_dir}/#{f}", nonfree_dir)
-	else
-		FileUtils.mv("#{free_dir}/#{f}", nonfree_dir)
-	end
-
-	# Add makefile fragment
-	if file =~ /\.c$/
-		obj = file.sub(/\.c$/, '.o')
-		makefiles[dir] ||= []
-		makefiles[dir] << obj unless makefiles[dir].index(obj)
-	end
-}
-# Generate non-free driver's makefile
-mk_makefile("#{nonfree_dir}/Makefile", free_dir, makefiles)
-
-dont_nuke_debian_dir(free_dir)
-
-# Tar up the kernel source trees
-pack("kernel-source-#{version}_#{version}.orig.tar.gz", free_dir)
-FileUtils.rm_rf(free_dir) 
-pack("kernel-source-nonfree-#{version}_#{version}.orig.tar.gz", nonfree_dir)
-FileUtils.rm_rf(nonfree_dir)
-
-
-exit(0)

Deleted: people/waldi/linux-2.6/debian/bin/split.py
===================================================================
--- people/waldi/linux-2.6/debian/bin/split.py	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/bin/split.py	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,64 +0,0 @@
-#!/usr/bin/python
-#
-# Scans underlying directory structure for files with names config.*
-# where .* is not .stub or .default, and extracts a common
-# set of config options from them. The resulting set of options is
-# written into the 'config' file. On the second pass each config.*
-# file is parsed to remove the common config options found in
-# config, with the results written to config.*.stub.
-#
-import os, string, sys, re
-
-common = []
-conffiles = []
-
-def is_option(line):
-	result = (len(string.strip(line)) != 0) and (re.match('^#*\s*CONFIG_\w+[\s=]', line))
-	return result
-
-def is_not_common(line):
-	return (line not in common)
-	
-def read_list(fname):
-	inf = open(fname, 'r')
-	opts = filter(is_option, inf.readlines())
-	inf.close()
-	return opts
-
-def merge_list(list):
-	global common
-	if len(common) == 0:
-		common = list[:]
-	else:
-		for opt in common:
-			if opt not in list: common.remove(opt)
-	
-def write_out(list, fname):
-	outf = open(fname, 'w')
-	outf.write('#\n# Automatically generated by ' + sys.argv[0] + '\n#\n') 
-	outf.writelines(list)
-	outf.close()
-
-def walk_callback(arg, dir, names):
-  	if names.count('.svn'): names.remove('.svn')
-	for name in names:
-		base, ext = os.path.splitext(name)
-		if(base == 'config' and ext not in ('.default', '.stub', '')):
-			fname = os.path.join(dir,name)
-			conffiles.append(fname)
-			print 'Processing ' + fname + ' ... ',
-			s = read_list(fname)
-			merge_list(s)
-			print "done."
-#
-# Main routine
-#
-os.path.walk('.', walk_callback, None)
-print 'Writing the config output file ... ',
-write_out(common, 'config')
-print 'done.'
-for fname in conffiles:
-	print 'Writing the ' + fname + '.stub output file ... ',
-	s = filter(is_not_common, read_list(fname))
-	write_out(s, fname + '.stub')
-	print 'done.'

Modified: people/waldi/linux-2.6/debian/bin/unpatch
===================================================================
--- people/waldi/linux-2.6/debian/bin/unpatch	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/bin/unpatch	2005-11-06 16:19:16 UTC (rev 4733)
@@ -5,4 +5,4 @@
 
 upstream=${override_upstream:- at upstream@}
 
-/usr/src/kernel-patches/all/$upstream/apply/debian $upstream
+/usr/src/kernel-patches/all/$upstream/apply/debian $upstream-0

Modified: people/waldi/linux-2.6/debian/changelog
===================================================================
--- people/waldi/linux-2.6/debian/changelog	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/changelog	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,5 +1,185 @@
-linux-2.6 (2.6.13-1) UNRELEASED; urgency=low
+linux-2.6 (2.6.14-3) UNRELEASED; urgency=low
 
+  [ Norbert Tretkowski ]
+  * [alpha] Switch to gcc 4.0.
+  * [alpha] Conflict with initramfs-tools, klibc is broken on alpha.
+
+  [ Sven Luther ]
+  * Set default TCP congestion algorithm to NewReno + BIC (Closes: #337089)
+
+  [ maximilian attems ]
+  * Reenable CONFIG_SOFTWARE_SUSPEND on i386 and ppc, resume=/dev/<other device>
+    must be set by boot loader. (Closes: #267600)
+  * Set CONFIG_USB_SUSPEND on i386. Usefull for suspend to ram and apm suspend.
+
+  [ Jurij Smakov ]
+  * Fix the install-image script to correctly include all the necessary
+    stuff in scripts. (Closes: #336424)
+
+  [ Simon Horman ]
+  * [386, AMD64] Set CONFIG_FRAMEBUFFER_CONSOLE=y instead of m.
+    As vesadb now built into the kernel, after finally dropping the
+    debian-specific patch to make it modular, make fbcons builtin too, else
+    all sorts of weird stuff happens which is hard for the inird builders to
+    automatically compenste for. (Closes: #336450)
+
+  [ dann frazier ]
+  * net-ipconntrack-nat-fix.patch - fix compilation of
+    ip_conntrack_helper_pptp.c when NAT is disabled. (Closes: #336431)
+
+ -- Norbert Tretkowski <nobse at debian.org>  Fri,  4 Nov 2005 10:45:06 +0100
+
+linux-2.6 (2.6.14-2) unstable; urgency=low
+
+  [ Simon Horman ]
+  * [SECURITY] Avoid 'names_cache' memory leak with CONFIG_AUDITSYSCALL
+    This fix, included as part of the 2.6.13.4 patch in
+    2.6.13+2.6.14-rc4-0experimental.1 is CVE-2005-3181
+  * Fix genearation of .extraversion, again (closes: #333842)
+  * Add missing kernel-arch and kernel-header-dirs to defines
+    so headers get included. (closes: #336521)
+    N.B: I only filled in arches where other's hadn't done so alread.
+         Please fix if its wrong.
+  * Allow powerpc64 to compile with AUDIT enabled but
+    AUDITSYSCALL disabled. powerpc64-audit_sysctl-build.patch
+
+  [ dann frazier ]
+  * Update hppa.diff to 2.6.14-pa0
+
+  [ Norbert Tretkowski ]
+  * [alpha] New patch to include compiler.h in barrier.h, barrier() is used in
+    non-SMP case.
+  * [alpha] Added kernel-header-dirs and kernel-arch to debian/arch/alpha/defines
+    to include asm-alpha in linux-headers package.
+  * Added myself to Uploaders.
+
+  [ Frederik Schüler ]
+  * [amd64] use DISCONTIGMEM instead of SPARSEMEM on amd64-k8-smp flavour to
+    fix bootup kernel panic.
+  * [amd64] include asm-x86_64 in linux-headers package.
+  * Deactivate AUDITSYSCALL globally, it slows down the kernel and is not
+    needed for selinux at all.
+
+ -- Simon Horman <horms at debian.org>  Tue,  1 Nov 2005 15:27:40 +0900
+
+linux-2.6 (2.6.14-1) unstable; urgency=low
+
+  [ Sven Luther ]
+  * New upstream release.
+
+  [ Norbert Tretkowski ]
+  * [alpha] Update arch/alpha/config* for 2.6.14.
+
+  [ Simon Horman ]
+  * Fix misformatting of long description of
+    linux-patch-debian-linux-patch-debian-X.Y.Z.
+    templates/control.main.in
+    (closes: #335088)
+  * Make sure version is seeded in apply and unapply scripts.
+    Actually changed in some earlier, post 2.6.12, release,
+    but the changelog seems to be missing.
+    (closes: #324583)
+
+  [ dann frazier ]
+  * [ia64] Disable the CONFIG_IA64_SGI_SN_XP module.  This forces
+    CONFIG_GENERIC_ALLOCATOR and CONFIG_IA64_UNCACHED_ALLOCATOR to y, which
+    appears to break on zx1 systems.
+
+ -- Simon Horman <horms at debian.org>  Fri, 28 Oct 2005 16:26:03 +0900
+
+linux-2.6 (2.6.13+2.6.14-rc5-0experimental.1) experimental; urgency=low
+
+  [ Sven Luther ]
+  * Upgraded to 2.6.14-rc5.
+
+  [ Jonas Smedegaard ]
+  * Quote variables in debian/rules.real and postinstall (making it
+    safer to run with weird characters in path of build environment).
+
+  [ Bastian Blank ]
+  * Add some missing files from scripts to headers packages.
+  * Add new patch powerpc-build-links.patch: Emit relative symlinks in
+    arch/ppc{,64}/include.
+  * Include arch/*/include into headers package.
+
+ -- Sven Luther <luther at debian.org>  Tue, 25 Oct 2005 03:56:11 +0000
+
+linux-2.6 (2.6.13+2.6.14-rc4-0experimental.1) experimental; urgency=low
+
+  [ Sven Luther ]
+  * Upgraded to 2.6.14-rc4.
+
+  [ Simon Horman ]
+  * Fix genearation of .extraversion (closes: #333842)
+
+  [ dann frazier ]
+  * Enhance the linux-source description to explain the types of patches
+    Debian adds to it.  (closes: #258043)
+  * Correct linux-patch-debian description.  It replaces the
+    kernel-patch-debian packages, not the kernel-source packages.
+
+  [ Jonas Smedegaard ]
+  * Fix building from within a very long dir (all patches was applied at
+    once - exhausting shell commandline, now applied one by one).
+  * Add Simon Horman, Sven Luther and myself as Uploaders.
+
+  [ Bastian Blank ]
+  * Use list of revisions in patch scripts.
+  * Use correct names for tarball and scripts.
+
+  [ Jurij Smakov ]
+  * [i386] Set the CONFIG_HPET_EMULATE_RTC option to make the clock
+    work properly on certain Dell machines. This required setting the
+    CONFIG_RTC option to 'y' instead of 'm'. (closes: #309909)
+    [i386] Enable VIDEO_CX88 and VIDEO_CX88_DVB (both set to 'm') by
+    popular demand. (closes: #330916)
+
+  [ Norbert Tretkowski ]
+  * [alpha] Update arch/alpha/config for 2.6.13.
+
+  [ Kyle McMartin ]
+  * [hppa] Oops. Fix linux-headers not including asm-parisc by adding
+    headers_dirs = parisc to Makefile.inc.
+
+  [ maximilian attems ]
+  * Set CONFIG_FB_VESA=y for i386 and amd64 configs. (closes: #333003)
+
+  [ Sven Luther ]
+  * [powerpc] Fixed apus build, now use mkvmlinuz too to generate the vmlinuz
+    kernel.
+  * Fixed control.image.in to depend on :
+      initramfs-tools | yaird | linux-ramdisk-tool
+    where linux-ramdisk-tools is the virtual package provided by all
+    initrd/initramfs generating tools.
+
+  [ Frederik Schüler ]
+  * deactivate FB_RIVA on all architectures.
+  * deactivate BLK_DEV_IDESCSI on all architectures.
+  * Added patch-2.6.13.4:
+    - [SECURITY] key: plug request_key_auth memleak 
+      See CAN-2005-3119
+    - [SECURITY] Fix drm 'debug' sysfs permissions
+      See CAN-2005-3179
+    - [SECURITY] Avoid 'names_cache' memory leak with CONFIG_AUDITSYSCALL
+    - [SPARC64] Fix userland FPU state corruption.
+    - BIC coding bug in Linux 2.6.13
+    - [SECURITY] orinoco: Information leakage due to incorrect padding 
+      See CAN-2005-3180
+    - ieee1394/sbp2: fixes for hot-unplug and module unloading
+
+  [ Christian T. Steigies ]
+  * disable CONFIG_EXT2_FS_XIP for m68k like on all(?) other arches
+  * deactivate OKTAGON_SCSI for amiga/m68k until it can be compiled again
+  * deactivate CONFIG_KEYBOARD_HIL_OLD, CONFIG_KEYBOARD_HIL, CONFIG_MOUSE_HIL,
+    CONFIG_HIL_MLC, and CONFIG_HP_SDC for hp/m68k
+  * update m68k.diff for 2.6.13
+  * split out patches that do not intefere with other arches to
+    patches-debian/m68k-*
+
+ -- Bastian Blank <waldi at debian.org>  Fri, 21 Oct 2005 12:17:47 +0000
+
+linux-2.6 (2.6.13-1) experimental; urgency=low
+
   * New upstream release "git booost":
     - new arch xtensa
     - kexec/kdump
@@ -20,6 +200,8 @@
   * [amd64] Added class and longclass descriptions for amd64 flavours.
   * [amd64] add amd64-tlb-flush-sigsegv-fix.patch: disable tlb flush
     filtering on smp systems to workaround processor errata.
+  * backport kernel-api-documentation-generation-fix.diff from git to fix
+    documentation build.
   * Added patch-2.6.13.1:
     - raw_sendmsg DoS (CAN-2005-2492)
     - 32bit sendmsg() flaw (CAN-2005-2490)
@@ -71,6 +253,15 @@
     - forcedeth: Initialize link settings in every nv_open()
     - Lost sockfd_put() in routing_ioctl()
     - lost fput in 32bit ioctl on x86-64
+  * Added patch-2.6.13.3:
+    - Fix fs/exec.c:788 (de_thread()) BUG_ON
+    - Don't over-clamp window in tcp_clamp_window()
+    - fix IPv6 per-socket multicast filtering in exact-match case
+    - yenta oops fix
+    - ipvs: ip_vs_ftp breaks connections using persistence
+    - uml - Fix x86_64 page leak
+    - skge: set mac address oops with bonding
+    - tcp: set default congestion control correctly for incoming connections
 
   [ Sven Luther ]
   * [powerpc] Added hotplug support to the mv643xx_eth driver :
@@ -91,8 +282,15 @@
   [ dann frazier ]
   * Add a note to README.Debian that explains where users can find the .config
     files used to generate the linux-image packages.  Closes: #316809
+  * [ia64] Workaround #325070 until upstream works out an acceptable solution.
+    This bug breaks module loading on non-SMP ia64 kernels.  The workaround
+    is to temporarily use an SMP config for the non-SMP kernels.  (Note that
+    John Wright is running benchmarks to determine the overhead of running
+    an SMP kernel on UP systems to help decide if this should be a
+    permanent change).
+  * [ia64] Update arch/ia64/config for 2.6.13
 
- -- dann frazier <dannf at debian.org>  Tue, 27 Sep 2005 22:57:24 -0600
+ -- Simon Horman <horms at debian.org>  Thu,  6 Oct 2005 15:45:21 +0900
 
 linux-2.6 (2.6.12-6) unstable; urgency=high
 

Modified: people/waldi/linux-2.6/debian/lib/python/debian_linux.py
===================================================================
--- people/waldi/linux-2.6/debian/lib/python/debian_linux.py	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/lib/python/debian_linux.py	2005-11-06 16:19:16 UTC (rev 4733)
@@ -27,6 +27,26 @@
         self._overlay_dir = overlay_dir
         self._read_base()
 
+    def __getitem__(self, key):
+        if isinstance(key, basestring):
+            return super(config, self).__getitem__(key)
+        if isinstance(key, tuple):
+            ret = {}
+            ret.update(super(config, self).__getitem__('base'))
+            if len(key) >= 1:
+                # XXX: workaround
+                del ret['abiname']
+                del ret['arches']
+                ret.update(super(config, self).__getitem__(key[0]))
+            if len(key) >= 2:
+                del ret['subarches']
+                ret.update(super(config, self).__getitem__('-'.join(key[0:2])))
+            if len(key) >= 3:
+                del ret['flavours']
+                ret.update(super(config, self).__getitem__('-'.join(key[0:3])))
+            return ret
+        raise NotImplemented
+
     def _get_files(self, name):
         ret = []
         if self._overlay_dir is not None:
@@ -57,6 +77,7 @@
         if flavours:
             for flavour in flavours:
                 self._read_flavour(arch, 'none', flavour, c)
+                self['-'.join((arch, 'none'))] = {}
             subarches.insert(0, 'none')
         t['subarches'] = subarches
 

Modified: people/waldi/linux-2.6/debian/patches-arch/hppa.diff
===================================================================
--- people/waldi/linux-2.6/debian/patches-arch/hppa.diff	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-arch/hppa.diff	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,6 +1,6 @@
-diff -Nur linux-2.6.13.org/CREDITS linux-2.6.13/CREDITS
---- linux-2.6.13.org/CREDITS	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/CREDITS	2005-09-25 12:34:39.000000000 -0400
+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
@@ -11,9 +11,25 @@
  
  N: Juan Jose Ciarlante
  W: http://juanjox.kernelnotes.org/
-diff -Nur linux-2.6.13.org/Documentation/parisc/todo linux-2.6.13/Documentation/parisc/todo
---- linux-2.6.13.org/Documentation/parisc/todo	1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.13/Documentation/parisc/todo	2005-09-25 12:34:39.000000000 -0400
+@@ -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
 @@ -0,0 +1,82 @@
 +Status 2005-03-07 :
 +-------------------
@@ -97,10 +113,10 @@
 + - 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 -Nur linux-2.6.13.org/MAINTAINERS linux-2.6.13/MAINTAINERS
---- linux-2.6.13.org/MAINTAINERS	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/MAINTAINERS	2005-09-25 12:34:39.000000000 -0400
-@@ -191,6 +191,15 @@
+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
  
@@ -116,9 +132,9 @@
  ADM1025 HARDWARE MONITOR DRIVER
  P:	Jean Delvare
  M:	khali at linux-fr.org
-diff -Nur linux-2.6.13.org/arch/ia64/ia32/ia32_signal.c linux-2.6.13/arch/ia64/ia32/ia32_signal.c
---- linux-2.6.13.org/arch/ia64/ia32/ia32_signal.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/ia64/ia32/ia32_signal.c	2005-09-25 12:34:39.000000000 -0400
+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
 @@ -24,6 +24,7 @@
  #include <linux/unistd.h>
  #include <linux/wait.h>
@@ -127,9 +143,9 @@
  
  #include <asm/intrinsics.h>
  #include <asm/uaccess.h>
-diff -Nur linux-2.6.13.org/arch/ia64/ia32/ia32priv.h linux-2.6.13/arch/ia64/ia32/ia32priv.h
---- linux-2.6.13.org/arch/ia64/ia32/ia32priv.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/ia64/ia32/ia32priv.h	2005-09-25 12:34:39.000000000 -0400
+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
 @@ -225,58 +225,6 @@
  	unsigned int	st_ino_hi;
  };
@@ -189,30 +205,23 @@
  struct old_linux32_dirent {
  	u32	d_ino;
  	u32	d_offset;
-diff -Nur linux-2.6.13.org/arch/parisc/Kconfig linux-2.6.13/arch/parisc/Kconfig
---- linux-2.6.13.org/arch/parisc/Kconfig	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/Kconfig	2005-09-25 12:34:39.000000000 -0400
-@@ -33,7 +33,7 @@
- 	default y
+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 @@
  
- config GENERIC_ISA_DMA
--	bool
-+	def_bool n
+ config ISA_DMA_API
+ 	bool
+-	default y
  
- config GENERIC_HARDIRQS
- 	def_bool y
-@@ -46,8 +46,7 @@
+ config ARCH_MAY_HAVE_PC_FDC
  	bool
++	depends on BROKEN
+ 	default y
  
- config ISA_DMA_API
--	bool
--	default y
-+	def_bool n
- 
  source "init/Kconfig"
+@@ -154,13 +154,14 @@
  
-@@ -150,7 +149,7 @@
- 
  config ARCH_DISCONTIGMEM_ENABLE
  	bool "Discontiguous memory support (EXPERIMENTAL)"
 -	depends on EXPERIMENTAL
@@ -220,10 +229,17 @@
  	help
  	  Say Y to support efficient handling of discontiguous physical memory,
  	  for architectures which are either NUMA (Non-Uniform Memory Access)
-diff -Nur linux-2.6.13.org/arch/parisc/Makefile linux-2.6.13/arch/parisc/Makefile
---- linux-2.6.13.org/arch/parisc/Makefile	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/Makefile	2005-09-25 12:34:39.000000000 -0400
-@@ -20,13 +20,14 @@
+ 	  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
@@ -233,13 +249,6 @@
  UTS_MACHINE	:= parisc64
  CHECKFLAGS	+= -D__LP64__=1 -m64
  else
- MACHINE := $(subst 64,,$(shell uname -m))
- ifneq ($(MACHINE),parisc)
--CROSS_COMPILE	:= hppa-linux-
-+CROSS_COMPILE	:= hppa-linux-gnu-
- endif
- endif
- 
 @@ -34,6 +35,14 @@
  
  OBJCOPY_FLAGS =-O binary -R .note -R .comment -S
@@ -264,16 +273,16 @@
  
  # Without this, "ld -r" results in .text sections that are too big
  # (> 0x40000) for branches to reach stubs.
-diff -Nur linux-2.6.13.org/arch/parisc/configs/712_defconfig linux-2.6.13/arch/parisc/configs/712_defconfig
---- linux-2.6.13.org/arch/parisc/configs/712_defconfig	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/configs/712_defconfig	2005-09-25 12:34:39.000000000 -0400
+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.12-rc4-pa2
-+# Wed May 11 23:02:52 2005
++# Linux kernel version: 2.6.14-rc5-pa1
++# Fri Oct 21 23:04:34 2005
  #
  CONFIG_PARISC=y
  CONFIG_MMU=y
@@ -282,11 +291,11 @@
 +CONFIG_GENERIC_CALIBRATE_DELAY=y
 +CONFIG_GENERIC_HARDIRQS=y
 +CONFIG_GENERIC_IRQ_PROBE=y
-+CONFIG_ISA_DMA_API=y
++CONFIG_ARCH_MAY_HAVE_PC_FDC=y
  
  #
  # Code maturity level options
-@@ -15,6 +19,7 @@
+@@ -15,35 +19,40 @@
  # CONFIG_CLEAN_COMPILE is not set
  CONFIG_BROKEN=y
  CONFIG_BROKEN_ON_SMP=y
@@ -294,7 +303,12 @@
  
  #
  # General setup
-@@ -26,7 +31,6 @@
+ #
+ 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
@@ -302,7 +316,9 @@
  CONFIG_HOTPLUG=y
  CONFIG_KOBJECT_UEVENT=y
  CONFIG_IKCONFIG=y
-@@ -35,15 +39,18 @@
+ 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
@@ -322,17 +338,28 @@
  
  #
  # Loadable module support
-@@ -65,9 +72,7 @@
+@@ -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 +86,6 @@
+@@ -81,8 +99,6 @@
  # CONFIG_GSC_WAX is not set
  # CONFIG_EISA is not set
  # CONFIG_PCI is not set
@@ -341,7 +368,7 @@
  
  #
  # PCCARD (PCMCIA/CardBus) support
-@@ -90,12 +93,15 @@
+@@ -90,12 +106,15 @@
  # CONFIG_PCCARD is not set
  
  #
@@ -359,59 +386,215 @@
  
  #
  # Executable file formats
-@@ -125,11 +131,9 @@
+@@ -104,137 +123,7 @@
+ CONFIG_BINFMT_MISC=m
+ 
  #
- CONFIG_PARPORT=y
- CONFIG_PARPORT_PC=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_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
- 
+-# 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
  #
-@@ -141,6 +145,7 @@
- #
- # CONFIG_BLK_DEV_FD is not set
- # CONFIG_PARIDE is not set
-+# CONFIG_BLK_DEV_COW_COMMON is not set
- CONFIG_BLK_DEV_LOOP=y
- CONFIG_BLK_DEV_CRYPTOLOOP=y
- # CONFIG_BLK_DEV_NBD is not set
-@@ -158,6 +163,7 @@
- CONFIG_IOSCHED_AS=y
- CONFIG_IOSCHED_DEADLINE=y
- CONFIG_IOSCHED_CFQ=y
-+CONFIG_ATA_OVER_ETH=m
+ CONFIG_NET=y
  
+@@ -243,12 +132,14 @@
  #
- # ATA/ATAPI/MFM/RLL support
-@@ -192,6 +198,7 @@
- #
- CONFIG_SCSI_SPI_ATTRS=y
- # CONFIG_SCSI_FC_ATTRS is not set
-+CONFIG_SCSI_ISCSI_ATTRS=m
- 
- #
- # SCSI low-level drivers
-@@ -200,7 +207,6 @@
- # CONFIG_SCSI_PPA is not set
- # CONFIG_SCSI_IMM is not set
- CONFIG_SCSI_LASI700=y
--CONFIG_53C700_MEM_MAPPED=y
- CONFIG_53C700_LE_ON_BE=y
- # CONFIG_SCSI_ZALON is not set
- CONFIG_SCSI_DEBUG=m
-@@ -243,7 +249,6 @@
- #
  CONFIG_PACKET=y
  CONFIG_PACKET_MMAP=y
 -CONFIG_NETLINK_DEV=y
  CONFIG_UNIX=y
++CONFIG_XFRM=y
++CONFIG_XFRM_USER=m
  CONFIG_NET_KEY=m
  CONFIG_INET=y
-@@ -321,7 +326,6 @@
+ 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
@@ -419,24 +602,233 @@
  CONFIG_IP_NF_NAT_SNMP_BASIC=m
  CONFIG_IP_NF_NAT_IRC=m
  CONFIG_IP_NF_NAT_FTP=m
-@@ -340,8 +344,6 @@
+@@ -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
+-CONFIG_XFRM=y
+-CONFIG_XFRM_USER=m
++
++#
++# DCCP Configuration (EXPERIMENTAL)
++#
++# CONFIG_IP_DCCP is not set
  
-@@ -383,7 +385,6 @@
+ #
+ # 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)
-@@ -460,19 +461,6 @@
+@@ -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
  
  #
@@ -456,7 +848,7 @@
  # Input Device Drivers
  #
  CONFIG_INPUT_KEYBOARD=y
-@@ -483,6 +471,7 @@
+@@ -483,6 +516,7 @@
  # CONFIG_KEYBOARD_LKKBD is not set
  # CONFIG_KEYBOARD_XTKBD is not set
  # CONFIG_KEYBOARD_NEWTON is not set
@@ -464,7 +856,7 @@
  # CONFIG_KEYBOARD_HIL is not set
  CONFIG_INPUT_MOUSE=y
  CONFIG_MOUSE_PS2=y
-@@ -494,6 +483,20 @@
+@@ -494,6 +528,19 @@
  # CONFIG_INPUT_MISC is not set
  
  #
@@ -479,18 +871,25 @@
 +CONFIG_SERIO_LIBPS2=y
 +# CONFIG_SERIO_RAW is not set
 +# CONFIG_GAMEPORT is not set
-+CONFIG_SOUND_GAMEPORT=y
 +
 +#
  # Character devices
  #
  CONFIG_VT=y
-@@ -546,12 +549,15 @@
+@@ -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_DRM is not set
  CONFIG_RAW_DRIVER=y
  CONFIG_MAX_RAW_DEVS=256
  
@@ -502,7 +901,28 @@
  # I2C support
  #
  # CONFIG_I2C is not set
-@@ -579,19 +585,25 @@
+@@ -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
@@ -530,7 +950,18 @@
  CONFIG_FONTS=y
  CONFIG_FONT_8x8=y
  CONFIG_FONT_8x16=y
-@@ -610,6 +622,7 @@
+ # 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
@@ -538,7 +969,7 @@
  
  #
  # Sound
-@@ -657,10 +670,6 @@
+@@ -657,10 +724,6 @@
  # CONFIG_USB_ARCH_HAS_OHCI is not set
  
  #
@@ -549,7 +980,7 @@
  # USB Gadget Support
  #
  # CONFIG_USB_GADGET is not set
-@@ -671,6 +680,11 @@
+@@ -671,10 +734,20 @@
  # CONFIG_MMC is not set
  
  #
@@ -558,10 +989,19 @@
 +# CONFIG_INFINIBAND is not set
 +
 +#
++# SN Devices
++#
++
++#
  # File systems
  #
  CONFIG_EXT2_FS=y
-@@ -682,10 +696,16 @@
+ # 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
@@ -569,23 +1009,77 @@
  # 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_RT is not set
 +CONFIG_XFS_EXPORT=y
- # CONFIG_XFS_RT is not set
  # CONFIG_XFS_QUOTA is not set
  # CONFIG_XFS_SECURITY is not set
-@@ -838,13 +858,18 @@
+ # 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
@@ -597,7 +1091,7 @@
  
  #
  # Security options
-@@ -865,6 +890,7 @@
+@@ -865,6 +949,7 @@
  CONFIG_CRYPTO_SHA256=m
  CONFIG_CRYPTO_SHA512=m
  CONFIG_CRYPTO_WP512=m
@@ -605,7 +1099,7 @@
  CONFIG_CRYPTO_DES=y
  CONFIG_CRYPTO_BLOWFISH=m
  CONFIG_CRYPTO_TWOFISH=m
-@@ -882,6 +908,10 @@
+@@ -882,9 +967,14 @@
  CONFIG_CRYPTO_TEST=m
  
  #
@@ -616,16 +1110,20 @@
  # Library routines
  #
  CONFIG_CRC_CCITT=m
-diff -Nur linux-2.6.13.org/arch/parisc/configs/a500_defconfig linux-2.6.13/arch/parisc/configs/a500_defconfig
---- linux-2.6.13.org/arch/parisc/configs/a500_defconfig	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/configs/a500_defconfig	2005-09-25 12:34:39.000000000 -0400
++# 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.12-rc4-pa2
-+# Wed May 11 23:04:06 2005
++# Linux kernel version: 2.6.14-rc5-pa1
++# Fri Oct 21 23:04:54 2005
  #
  CONFIG_PARISC=y
  CONFIG_MMU=y
@@ -633,11 +1131,11 @@
  CONFIG_GENERIC_CALIBRATE_DELAY=y
  CONFIG_GENERIC_HARDIRQS=y
  CONFIG_GENERIC_IRQ_PROBE=y
-+CONFIG_ISA_DMA_API=y
++CONFIG_ARCH_MAY_HAVE_PC_FDC=y
  
  #
  # Code maturity level options
-@@ -19,6 +20,7 @@
+@@ -19,26 +20,32 @@
  CONFIG_BROKEN=y
  CONFIG_BROKEN_ON_SMP=y
  CONFIG_LOCK_KERNEL=y
@@ -645,7 +1143,12 @@
  
  #
  # General setup
-@@ -30,15 +32,18 @@
+ #
+ 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
@@ -655,6 +1158,7 @@
  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
@@ -665,7 +1169,7 @@
  CONFIG_FUTEX=y
  CONFIG_EPOLL=y
  # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-@@ -48,6 +53,7 @@
+@@ -48,6 +55,7 @@
  CONFIG_CC_ALIGN_LOOPS=0
  CONFIG_CC_ALIGN_JUMPS=0
  # CONFIG_TINY_SHMEM is not set
@@ -673,31 +1177,498 @@
  
  #
  # Loadable module support
-@@ -86,6 +92,7 @@
+@@ -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_NAMES=y
 +# CONFIG_PCI_DEBUG is not set
  CONFIG_PCI_LBA=y
  CONFIG_IOSAPIC=y
  CONFIG_IOMMU_SBA=y
-@@ -259,6 +266,7 @@
+@@ -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=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
-@@ -312,7 +320,6 @@
+@@ -288,8 +511,11 @@
  #
- CONFIG_PACKET=y
- CONFIG_PACKET_MMAP=y
+ # 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
-@@ -449,7 +456,6 @@
+-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
@@ -705,15 +1676,128 @@
  
  #
  # ARCnet devices
-@@ -491,7 +497,6 @@
+@@ -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=m
++# CONFIG_EEPRO100 is not set
  CONFIG_E100=m
 -CONFIG_E100_NAPI=y
  # CONFIG_FEALNX is not set
- CONFIG_NATSEMI=m
+-CONFIG_NATSEMI=m
++# CONFIG_NATSEMI is not set
  # CONFIG_NE2K_PCI is not set
-@@ -633,13 +638,6 @@
+ # 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
  
  #
@@ -727,7 +1811,7 @@
  # Input Device Drivers
  #
  # CONFIG_INPUT_KEYBOARD is not set
-@@ -649,6 +647,13 @@
+@@ -649,6 +735,12 @@
  # CONFIG_INPUT_MISC is not set
  
  #
@@ -735,13 +1819,20 @@
 +#
 +# CONFIG_SERIO is not set
 +# CONFIG_GAMEPORT is not set
-+CONFIG_SOUND_GAMEPORT=y
 +
 +#
  # Character devices
  #
  CONFIG_VT=y
-@@ -677,6 +682,7 @@
+@@ -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
@@ -749,7 +1840,7 @@
  CONFIG_UNIX98_PTYS=y
  # CONFIG_LEGACY_PTYS is not set
  
-@@ -708,6 +714,11 @@
+@@ -708,6 +800,11 @@
  CONFIG_MAX_RAW_DEVS=256
  
  #
@@ -761,18 +1852,36 @@
  # I2C support
  #
  # CONFIG_I2C is not set
-@@ -742,6 +753,10 @@
+@@ -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=y
-+# CONFIG_FONTS is not set
-+CONFIG_FONT_8x8=y
-+CONFIG_FONT_8x16=y
++# CONFIG_STI_CONSOLE is not set
  
  #
  # Sound
-@@ -751,13 +766,9 @@
+@@ -751,13 +859,9 @@
  #
  # USB support
  #
@@ -787,14 +1896,141 @@
  
  #
  # USB Gadget Support
-@@ -950,11 +961,14 @@
+@@ -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
@@ -802,24 +2038,66 @@
  # CONFIG_DEBUG_KOBJECT is not set
  # CONFIG_DEBUG_INFO is not set
  # CONFIG_DEBUG_IOREMAP is not set
-@@ -980,6 +994,7 @@
- CONFIG_CRYPTO_SHA256=m
- CONFIG_CRYPTO_SHA512=m
- CONFIG_CRYPTO_WP512=m
-+CONFIG_CRYPTO_TGR192=m
+@@ -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
-diff -Nur linux-2.6.13.org/arch/parisc/configs/b180_defconfig linux-2.6.13/arch/parisc/configs/b180_defconfig
---- linux-2.6.13.org/arch/parisc/configs/b180_defconfig	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/configs/b180_defconfig	2005-09-25 12:34:39.000000000 -0400
-@@ -1,12 +1,16 @@
+-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.12-rc4-pa2
-+# Wed May 11 23:04:20 2005
++# Linux kernel version: 2.6.14-rc5-pa1
++# Fri Oct 21 23:06:10 2005
  #
  CONFIG_PARISC=y
  CONFIG_MMU=y
@@ -828,11 +2106,10 @@
 +CONFIG_GENERIC_CALIBRATE_DELAY=y
 +CONFIG_GENERIC_HARDIRQS=y
 +CONFIG_GENERIC_IRQ_PROBE=y
-+CONFIG_ISA_DMA_API=y
  
  #
  # Code maturity level options
-@@ -14,6 +18,7 @@
+@@ -14,33 +17,39 @@
  # CONFIG_EXPERIMENTAL is not set
  CONFIG_CLEAN_COMPILE=y
  CONFIG_BROKEN_ON_SMP=y
@@ -840,7 +2117,11 @@
  
  #
  # General setup
-@@ -24,23 +29,26 @@
+ #
+ 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
@@ -850,6 +2131,7 @@
 -# 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
@@ -870,18 +2152,27 @@
  
  #
  # Loadable module support
-@@ -60,7 +68,6 @@
+@@ -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
-@@ -79,10 +86,25 @@
+ 
+@@ -78,11 +93,25 @@
+ CONFIG_ISA=y
  CONFIG_PCI=y
  CONFIG_PCI_LEGACY_PROC=y
- CONFIG_PCI_NAMES=y
+-CONFIG_PCI_NAMES=y
 +# CONFIG_PCI_DEBUG is not set
  CONFIG_GSC_DINO=y
  # CONFIG_PCI_LBA is not set
@@ -904,16 +2195,89 @@
  
  #
  # Executable file formats
-@@ -99,6 +121,7 @@
+@@ -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
  
  #
-@@ -111,10 +134,8 @@
++# 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
@@ -923,7 +2287,13 @@
  # CONFIG_PARPORT_1284 is not set
  
  #
-@@ -131,6 +152,7 @@
+@@ -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
@@ -931,7 +2301,14 @@
  CONFIG_BLK_DEV_LOOP=y
  CONFIG_BLK_DEV_CRYPTOLOOP=y
  # CONFIG_BLK_DEV_NBD is not set
-@@ -149,6 +171,7 @@
+ # 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
@@ -939,23 +2316,58 @@
  
  #
  # ATA/ATAPI/MFM/RLL support
-@@ -183,6 +206,7 @@
+@@ -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
-@@ -207,7 +231,6 @@
+ #
+ # 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 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_GDTH is not set
  # CONFIG_SCSI_GENERIC_NCR5380 is not set
-@@ -219,7 +242,6 @@
+ # 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
@@ -963,7 +2375,7 @@
  CONFIG_53C700_LE_ON_BE=y
  CONFIG_SCSI_SYM53C8XX_2=y
  CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0
-@@ -231,7 +253,6 @@
+@@ -231,7 +319,6 @@
  # CONFIG_SCSI_PAS16 is not set
  # CONFIG_SCSI_PSI240I is not set
  # CONFIG_SCSI_QLOGIC_FAS is not set
@@ -971,16 +2383,22 @@
  # CONFIG_SCSI_QLOGIC_FC is not set
  # CONFIG_SCSI_QLOGIC_1280 is not set
  CONFIG_SCSI_QLA2XXX=y
-@@ -240,7 +261,7 @@
+@@ -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
-@@ -263,6 +284,7 @@
+ # 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
@@ -988,31 +2406,146 @@
  # CONFIG_MD_MULTIPATH is not set
  # CONFIG_MD_FAULTY is not set
  # CONFIG_BLK_DEV_DM is not set
-@@ -292,7 +314,6 @@
+@@ -271,6 +359,9 @@
+ # Fusion MPT device support
  #
- CONFIG_PACKET=y
- CONFIG_PACKET_MMAP=y
+ # 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
-@@ -311,7 +332,14 @@
- # CONFIG_INET_IPCOMP is not set
- # CONFIG_INET_TUNNEL is not set
- CONFIG_IP_TCPDIAG=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_IP_TCPDIAG_IPV6=y
-+CONFIG_IPV6=y
-+# CONFIG_IPV6_PRIVACY is not set
-+# CONFIG_INET6_AH is not set
-+# CONFIG_INET6_ESP is not set
-+# CONFIG_INET6_IPCOMP is not set
-+# CONFIG_INET6_TUNNEL is not set
-+# CONFIG_IPV6_TUNNEL is not set
- # CONFIG_NETFILTER is not set
- # CONFIG_BRIDGE is not set
- # CONFIG_VLAN_8021Q is not set
-@@ -464,23 +492,12 @@
+-# CONFIG_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
  
  #
@@ -1039,7 +2572,7 @@
  # CONFIG_KEYBOARD_SUNKBD is not set
  # CONFIG_KEYBOARD_LKKBD is not set
  # CONFIG_KEYBOARD_XTKBD is not set
-@@ -488,7 +505,7 @@
+@@ -488,7 +529,7 @@
  # CONFIG_KEYBOARD_HIL_OLD is not set
  # CONFIG_KEYBOARD_HIL is not set
  CONFIG_INPUT_MOUSE=y
@@ -1048,7 +2581,7 @@
  # CONFIG_MOUSE_SERIAL is not set
  # CONFIG_MOUSE_INPORT is not set
  # CONFIG_MOUSE_LOGIBM is not set
-@@ -502,6 +519,20 @@
+@@ -502,6 +543,19 @@
  # CONFIG_HP_SDC_RTC is not set
  
  #
@@ -1063,13 +2596,25 @@
 +CONFIG_SERIO_LIBPS2=y
 +# CONFIG_SERIO_RAW is not set
 +# CONFIG_GAMEPORT is not set
-+CONFIG_SOUND_GAMEPORT=y
 +
 +#
  # Character devices
  #
  CONFIG_VT=y
-@@ -529,6 +560,7 @@
+@@ -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
@@ -1077,7 +2622,7 @@
  CONFIG_UNIX98_PTYS=y
  CONFIG_LEGACY_PTYS=y
  CONFIG_LEGACY_PTY_COUNT=256
-@@ -555,11 +587,14 @@
+@@ -555,11 +613,14 @@
  #
  # Ftape, the floppy tape device driver
  #
@@ -1093,7 +2638,28 @@
  # I2C support
  #
  # CONFIG_I2C is not set
-@@ -587,6 +622,11 @@
+@@ -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
@@ -1105,7 +2671,7 @@
  # CONFIG_FB_MODE_HELPERS is not set
  # CONFIG_FB_TILEBLITTING is not set
  # CONFIG_FB_CIRRUS is not set
-@@ -595,6 +635,7 @@
+@@ -595,6 +671,7 @@
  # CONFIG_FB_ASILIANT is not set
  # CONFIG_FB_IMSTT is not set
  CONFIG_FB_STI=y
@@ -1113,9 +2679,11 @@
  # CONFIG_FB_RIVA is not set
  # CONFIG_FB_MATROX is not set
  # CONFIG_FB_RADEON_OLD is not set
-@@ -607,17 +648,17 @@
+@@ -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
@@ -1134,7 +2702,7 @@
  # CONFIG_FONTS is not set
  CONFIG_FONT_8x8=y
  CONFIG_FONT_8x16=y
-@@ -630,6 +671,7 @@
+@@ -630,6 +708,7 @@
  CONFIG_LOGO_LINUX_VGA16=y
  CONFIG_LOGO_LINUX_CLUT224=y
  CONFIG_LOGO_PARISC_CLUT224=y
@@ -1142,7 +2710,7 @@
  
  #
  # Sound
-@@ -639,13 +681,9 @@
+@@ -639,13 +718,9 @@
  #
  # USB support
  #
@@ -1157,7 +2725,7 @@
  
  #
  # USB Gadget Support
-@@ -658,6 +696,11 @@
+@@ -658,23 +733,36 @@
  # CONFIG_MMC is not set
  
  #
@@ -1166,23 +2734,61 @@
 +# CONFIG_INFINIBAND is not set
 +
 +#
++# SN Devices
++#
++
++#
  # File systems
  #
  CONFIG_EXT2_FS=y
-@@ -668,6 +711,10 @@
+ # 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
-+
-+#
-+# XFS support
-+#
++# 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
-@@ -727,7 +774,8 @@
++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
@@ -1190,7 +2796,7 @@
  # CONFIG_CIFS is not set
  # CONFIG_NCP_FS is not set
  # CONFIG_CODA_FS is not set
-@@ -785,13 +833,18 @@
+@@ -785,13 +876,19 @@
  #
  # Kernel hacking
  #
@@ -1198,6 +2804,7 @@
  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
@@ -1209,7 +2816,7 @@
  
  #
  # Security options
-@@ -815,6 +868,7 @@
+@@ -815,6 +912,7 @@
  # CONFIG_CRYPTO_SHA256 is not set
  # CONFIG_CRYPTO_SHA512 is not set
  # CONFIG_CRYPTO_WP512 is not set
@@ -1217,7 +2824,7 @@
  # CONFIG_CRYPTO_DES is not set
  # CONFIG_CRYPTO_BLOWFISH is not set
  # CONFIG_CRYPTO_TWOFISH is not set
-@@ -832,6 +886,10 @@
+@@ -832,8 +930,13 @@
  # CONFIG_CRYPTO_TEST is not set
  
  #
@@ -1228,16 +2835,19 @@
  # Library routines
  #
  # CONFIG_CRC_CCITT is not set
-diff -Nur linux-2.6.13.org/arch/parisc/configs/c3000_defconfig linux-2.6.13/arch/parisc/configs/c3000_defconfig
---- linux-2.6.13.org/arch/parisc/configs/c3000_defconfig	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/configs/c3000_defconfig	2005-09-25 12:34:39.000000000 -0400
++# 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.12-pa2
-+# Sat Jun 25 03:10:57 2005
++# Linux kernel version: 2.6.14-rc5-pa1
++# Fri Oct 21 23:06:31 2005
  #
  CONFIG_PARISC=y
  CONFIG_MMU=y
@@ -1246,11 +2856,11 @@
 +CONFIG_GENERIC_CALIBRATE_DELAY=y
 +CONFIG_GENERIC_HARDIRQS=y
 +CONFIG_GENERIC_IRQ_PROBE=y
-+CONFIG_ISA_DMA_API=y
++CONFIG_ARCH_MAY_HAVE_PC_FDC=y
  
  #
  # Code maturity level options
-@@ -15,6 +19,7 @@
+@@ -15,26 +19,31 @@
  # CONFIG_CLEAN_COMPILE is not set
  CONFIG_BROKEN=y
  CONFIG_BROKEN_ON_SMP=y
@@ -1258,7 +2868,12 @@
  
  #
  # General setup
-@@ -26,7 +31,6 @@
+ #
+ 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
@@ -1266,7 +2881,9 @@
  CONFIG_HOTPLUG=y
  CONFIG_KOBJECT_UEVENT=y
  CONFIG_IKCONFIG=y
-@@ -35,6 +39,9 @@
+ CONFIG_IKCONFIG_PROC=y
++CONFIG_INITRAMFS_SOURCE=""
+ CONFIG_EMBEDDED=y
  CONFIG_KALLSYMS=y
  CONFIG_KALLSYMS_ALL=y
  # CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -1276,7 +2893,7 @@
  CONFIG_FUTEX=y
  CONFIG_EPOLL=y
  # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-@@ -44,6 +51,7 @@
+@@ -44,6 +53,7 @@
  CONFIG_CC_ALIGN_LOOPS=0
  CONFIG_CC_ALIGN_JUMPS=0
  # CONFIG_TINY_SHMEM is not set
@@ -1284,7 +2901,7 @@
  
  #
  # Loadable module support
-@@ -66,10 +74,8 @@
+@@ -66,10 +76,19 @@
  CONFIG_PA8X00=y
  CONFIG_PA20=y
  CONFIG_PREFETCH=y
@@ -1292,13 +2909,25 @@
  # 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
  
-@@ -80,12 +86,10 @@
+@@ -79,13 +98,10 @@
+ # CONFIG_GSC is not set
  CONFIG_PCI=y
  CONFIG_PCI_LEGACY_PROC=y
- CONFIG_PCI_NAMES=y
+-CONFIG_PCI_NAMES=y
 +# CONFIG_PCI_DEBUG is not set
  CONFIG_PCI_LBA=y
  CONFIG_IOSAPIC=y
@@ -1309,7 +2938,7 @@
  
  #
  # PCCARD (PCMCIA/CardBus) support
-@@ -93,13 +97,17 @@
+@@ -93,13 +109,17 @@
  # CONFIG_PCCARD is not set
  
  #
@@ -1330,15 +2959,223 @@
  
  #
  # Executable file formats
-@@ -141,6 +149,7 @@
+@@ -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 is not set
++CONFIG_BLK_DEV_CRYPTOLOOP=m
  # CONFIG_BLK_DEV_NBD is not set
-@@ -158,6 +167,7 @@
+ # 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
@@ -1346,58 +3183,278 @@
  
  #
  # ATA/ATAPI/MFM/RLL support
-@@ -243,6 +253,7 @@
+@@ -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=m
++# CONFIG_SCSI_FC_ATTRS is not set
 +CONFIG_SCSI_ISCSI_ATTRS=m
++# CONFIG_SCSI_SAS_ATTRS is not set
  
  #
  # SCSI low-level drivers
-@@ -264,6 +275,7 @@
+@@ -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
-@@ -299,7 +311,7 @@
- CONFIG_SCSI_QLA2300=m
- CONFIG_SCSI_QLA2322=m
- CONFIG_SCSI_QLA6312=m
+ # 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
-@@ -323,6 +335,8 @@
- # CONFIG_DM_SNAPSHOT is not set
- # CONFIG_DM_MIRROR is not set
- # CONFIG_DM_ZERO 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
-@@ -351,7 +365,6 @@
  #
- CONFIG_PACKET=y
- CONFIG_PACKET_MMAP=y
+-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
-@@ -443,8 +456,6 @@
- CONFIG_IP_NF_ARPTABLES=m
- CONFIG_IP_NF_ARPFILTER=m
- CONFIG_IP_NF_ARP_MANGLE=m
+-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
- 
-@@ -486,7 +497,6 @@
+-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
@@ -1405,17 +3462,68 @@
  
  #
  # ARCnet devices
-@@ -524,9 +534,7 @@
+@@ -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=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=m
++# CONFIG_NATSEMI is not set
  # CONFIG_NE2K_PCI is not set
-@@ -557,6 +565,7 @@
+ # 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
@@ -1423,7 +3531,24 @@
  
  #
  # Ethernet (10000 Mbit)
-@@ -622,16 +631,6 @@
+ #
+-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
  
  #
@@ -1440,7 +3565,7 @@
  # Input Device Drivers
  #
  CONFIG_INPUT_KEYBOARD=y
-@@ -649,6 +648,16 @@
+@@ -649,6 +720,16 @@
  # CONFIG_INPUT_MISC is not set
  
  #
@@ -1457,7 +3582,15 @@
  # Character devices
  #
  CONFIG_VT=y
-@@ -676,6 +685,7 @@
+@@ -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
@@ -1465,7 +3598,7 @@
  CONFIG_UNIX98_PTYS=y
  CONFIG_LEGACY_PTYS=y
  CONFIG_LEGACY_PTY_COUNT=256
-@@ -698,12 +708,16 @@
+@@ -698,12 +779,16 @@
  #
  # Ftape, the floppy tape device driver
  #
@@ -1483,7 +3616,28 @@
  # I2C support
  #
  # CONFIG_I2C is not set
-@@ -731,6 +745,11 @@
+@@ -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
@@ -1495,7 +3649,7 @@
  # CONFIG_FB_MODE_HELPERS is not set
  # CONFIG_FB_TILEBLITTING is not set
  # CONFIG_FB_CIRRUS is not set
-@@ -739,6 +758,7 @@
+@@ -739,6 +839,7 @@
  # CONFIG_FB_ASILIANT is not set
  # CONFIG_FB_IMSTT is not set
  CONFIG_FB_STI=y
@@ -1503,8 +3657,11 @@
  # CONFIG_FB_RIVA is not set
  # CONFIG_FB_MATROX is not set
  # CONFIG_FB_RADEON_OLD is not set
-@@ -753,16 +773,17 @@
+@@ -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
@@ -1523,7 +3680,7 @@
  # CONFIG_FONTS is not set
  CONFIG_FONT_8x8=y
  CONFIG_FONT_8x16=y
-@@ -775,6 +796,7 @@
+@@ -775,6 +878,7 @@
  # CONFIG_LOGO_LINUX_VGA16 is not set
  # CONFIG_LOGO_LINUX_CLUT224 is not set
  CONFIG_LOGO_PARISC_CLUT224=y
@@ -1531,7 +3688,7 @@
  
  #
  # Sound
-@@ -784,7 +806,77 @@
+@@ -784,7 +888,78 @@
  #
  # Advanced Linux Sound Architecture
  #
@@ -1556,14 +3713,13 @@
 +# 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_AC97_CODEC=y
 +# CONFIG_SND_ALI5451 is not set
-+CONFIG_SND_AD1889=y
-+# CONFIG_SND_AD1889_OPL3 is not set
 +# CONFIG_SND_ATIIXP is not set
 +# CONFIG_SND_ATIIXP_MODEM is not set
 +# CONFIG_SND_AU8810 is not set
@@ -1583,9 +3739,11 @@
 +# 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_ALS4000 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
@@ -1610,7 +3768,7 @@
  
  #
  # Open Sound System
-@@ -794,6 +886,8 @@
+@@ -794,6 +969,8 @@
  #
  # USB support
  #
@@ -1619,7 +3777,7 @@
  CONFIG_USB=y
  CONFIG_USB_DEBUG=y
  
-@@ -804,14 +898,14 @@
+@@ -804,23 +981,23 @@
  # CONFIG_USB_BANDWIDTH is not set
  # CONFIG_USB_DYNAMIC_MINORS is not set
  # CONFIG_USB_OTG is not set
@@ -1630,19 +3788,32 @@
  # 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
  
-@@ -829,12 +923,11 @@
  #
+ # 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=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
@@ -1650,23 +3821,45 @@
  CONFIG_USB_STORAGE_SDDR09=y
  CONFIG_USB_STORAGE_SDDR55=y
  CONFIG_USB_STORAGE_JUMPSHOT=y
-@@ -860,7 +953,6 @@
+@@ -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 +971,7 @@
+@@ -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=m
++# CONFIG_USB_MON is not set
  
  #
  # USB port drivers
-@@ -894,7 +987,6 @@
+@@ -894,7 +1075,6 @@
  #
  # CONFIG_USB_EMI62 is not set
  # CONFIG_USB_EMI26 is not set
@@ -1674,51 +3867,115 @@
  # CONFIG_USB_AUERSWALD is not set
  # CONFIG_USB_RIO500 is not set
  CONFIG_USB_LEGOTOWER=m
-@@ -903,6 +995,7 @@
+@@ -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
  
  #
-@@ -920,6 +1013,15 @@
+-# USB ATM/DSL drivers
++# USB DSL modem support
+ #
+ 
+ #
+@@ -920,27 +1102,41 @@
  # CONFIG_MMC is not set
  
  #
 +# InfiniBand support
 +#
-+CONFIG_INFINIBAND=m
-+CONFIG_INFINIBAND_MTHCA=m
-+# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
-+CONFIG_INFINIBAND_IPOIB=m
-+# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
++# CONFIG_INFINIBAND is not set
 +
 +#
++# SN Devices
++#
++
++#
  # File systems
  #
  CONFIG_EXT2_FS=y
-@@ -930,7 +1032,12 @@
+ # 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
-+
-+#
-+# XFS support
-+#
++# CONFIG_FS_POSIX_ACL is not set
  CONFIG_XFS_FS=m
+-# CONFIG_XFS_RT is not set
 +CONFIG_XFS_EXPORT=y
- # CONFIG_XFS_RT is not set
  # CONFIG_XFS_QUOTA is not set
  # CONFIG_XFS_SECURITY is not set
-@@ -1074,13 +1181,18 @@
+ # 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
@@ -1730,15 +3987,39 @@
  
  #
  # Security options
-@@ -1100,6 +1212,7 @@
- CONFIG_CRYPTO_SHA256=m
+@@ -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=m
++# CONFIG_CRYPTO_TGR192 is not set
  CONFIG_CRYPTO_DES=m
  CONFIG_CRYPTO_BLOWFISH=m
- CONFIG_CRYPTO_TWOFISH=m
-@@ -1117,6 +1230,10 @@
+-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
  
  #
@@ -1749,24 +4030,26 @@
  # Library routines
  #
  CONFIG_CRC_CCITT=m
-diff -Nur linux-2.6.13.org/arch/parisc/defconfig linux-2.6.13/arch/parisc/defconfig
---- linux-2.6.13.org/arch/parisc/defconfig	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/defconfig	2005-09-25 12:34:39.000000000 -0400
++# 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.13-pa4
-+# Tue Sep 13 12:07:51 2005
++# 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_ISA_DMA is not set
 +CONFIG_GENERIC_HARDIRQS=y
 +CONFIG_GENERIC_IRQ_PROBE=y
-+# CONFIG_ISA_DMA_API is not set
  
  #
  # Code maturity level options
@@ -1781,6 +4064,7 @@
  # General setup
  #
 +CONFIG_LOCALVERSION=""
++# CONFIG_LOCALVERSION_AUTO is not set
  CONFIG_SWAP=y
  CONFIG_SYSVIPC=y
 +# CONFIG_POSIX_MQUEUE is not set
@@ -1792,6 +4076,7 @@
 +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
@@ -1815,7 +4100,7 @@
  
  #
  # Loadable module support
-@@ -45,10 +63,16 @@
+@@ -45,10 +63,21 @@
  CONFIG_PA7000=y
  # CONFIG_PA7100LC is not set
  # CONFIG_PA7200 is not set
@@ -1824,19 +4109,25 @@
  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
  
-@@ -66,13 +90,29 @@
+@@ -65,14 +94,29 @@
+ # CONFIG_ISA is not set
  CONFIG_PCI=y
  CONFIG_PCI_LEGACY_PROC=y
- CONFIG_PCI_NAMES=y
+-CONFIG_PCI_NAMES=y
 +# CONFIG_PCI_DEBUG is not set
  CONFIG_GSC_DINO=y
  CONFIG_PCI_LBA=y
@@ -1863,7 +4154,7 @@
  
  #
  # Executable file formats
-@@ -81,12 +121,84 @@
+@@ -81,15 +125,97 @@
  # CONFIG_BINFMT_MISC is not set
  
  #
@@ -1895,8 +4186,7 @@
 +# 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=y
++# CONFIG_INET_DIAG is not set
 +# CONFIG_TCP_CONG_ADVANCED is not set
 +CONFIG_TCP_CONG_BIC=y
 +CONFIG_IPV6=y
@@ -1909,6 +4199,11 @@
 +# CONFIG_NETFILTER is not set
 +
 +#
++# DCCP Configuration (EXPERIMENTAL)
++#
++# CONFIG_IP_DCCP is not set
++
++#
 +# SCTP Configuration (EXPERIMENTAL)
 +#
 +# CONFIG_IP_SCTP is not set
@@ -1934,6 +4229,7 @@
 +# CONFIG_HAMRADIO is not set
 +# CONFIG_IRDA is not set
 +# CONFIG_BT is not set
++# CONFIG_IEEE80211 is not set
 +
 +#
  # Device Drivers
@@ -1948,8 +4244,16 @@
  # CONFIG_DEBUG_DRIVER is not set
  
  #
-@@ -99,12 +211,10 @@
++# 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
@@ -1961,7 +4265,13 @@
  # CONFIG_PARPORT_1284 is not set
  
  #
-@@ -120,12 +230,27 @@
+@@ -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
@@ -1975,7 +4285,6 @@
 +CONFIG_BLK_DEV_RAM_COUNT=16
  CONFIG_BLK_DEV_RAM_SIZE=4096
  CONFIG_BLK_DEV_INITRD=y
-+CONFIG_INITRAMFS_SOURCE=""
 +# CONFIG_CDROM_PKTCDVD is not set
 +
 +#
@@ -1989,7 +4298,15 @@
  
  #
  # ATA/ATAPI/MFM/RLL support
-@@ -147,53 +272,57 @@
+@@ -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
@@ -2009,6 +4326,7 @@
 +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
@@ -2026,6 +4344,7 @@
 +# 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
@@ -2057,7 +4376,7 @@
  # CONFIG_SCSI_QLOGIC_FC is not set
  # CONFIG_SCSI_QLOGIC_1280 is not set
  CONFIG_SCSI_QLA2XXX=y
-@@ -202,7 +331,8 @@
+@@ -202,7 +346,8 @@
  # CONFIG_SCSI_QLA2300 is not set
  # CONFIG_SCSI_QLA2322 is not set
  # CONFIG_SCSI_QLA6312 is not set
@@ -2067,7 +4386,7 @@
  # CONFIG_SCSI_SIM710 is not set
  # CONFIG_SCSI_DC395x is not set
  # CONFIG_SCSI_DC390T is not set
-@@ -217,15 +347,19 @@
+@@ -217,15 +362,20 @@
  CONFIG_MD_LINEAR=y
  CONFIG_MD_RAID0=y
  CONFIG_MD_RAID1=y
@@ -2084,10 +4403,11 @@
  # 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 +372,18 @@
+@@ -238,80 +388,23 @@
  # CONFIG_I2O is not set
  
  #
@@ -2096,8 +4416,7 @@
 -
 -#
 -# Networking support
-+# Network device support
- #
+-#
 -CONFIG_NET=y
 -
 -#
@@ -2153,7 +4472,8 @@
 -
 -#
 -# Network testing
--#
++# Network device support
+ #
 -# CONFIG_NET_PKTGEN is not set
  CONFIG_NETDEVICES=y
 +# CONFIG_DUMMY is not set
@@ -2170,10 +4490,36 @@
 -# 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)
-@@ -365,26 +437,30 @@
+@@ -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)
  #
@@ -2187,7 +4533,7 @@
  # CONFIG_HAMACHI is not set
  # CONFIG_YELLOWFIN is not set
  # CONFIG_R8169 is not set
--# CONFIG_SIS190 is not set
+ # CONFIG_SIS190 is not set
 +# CONFIG_SKGE is not set
  # CONFIG_SK98LIN is not set
 -# CONFIG_TIGON3 is not set
@@ -2198,6 +4544,7 @@
  #
  # Ethernet (10000 Mbit)
  #
++# CONFIG_CHELSIO_T1 is not set
  # CONFIG_IXGB is not set
 -# CONFIG_FDDI is not set
 -# CONFIG_HIPPI is not set
@@ -2213,7 +4560,7 @@
  
  #
  # Wireless LAN (non-hamradio)
-@@ -399,38 +475,29 @@
+@@ -399,38 +501,30 @@
  #
  # Wireless 802.11b ISA/PCI cards support
  #
@@ -2231,6 +4578,7 @@
 -# CONFIG_RCPCI is not set
 -# CONFIG_SHAPER is not set
 +# CONFIG_PRISM54 is not set
++# CONFIG_HOSTAP is not set
 +CONFIG_NET_WIRELESS=y
  
  #
@@ -2265,7 +4613,7 @@
  
  #
  # ISDN subsystem
-@@ -460,51 +527,67 @@
+@@ -460,51 +554,67 @@
  # CONFIG_INPUT_EVBUG is not set
  
  #
@@ -2349,7 +4697,7 @@
  # Character devices
  #
  CONFIG_VT=y
-@@ -522,16 +605,16 @@
+@@ -522,16 +632,16 @@
  CONFIG_SERIAL_8250_MANY_PORTS=y
  CONFIG_SERIAL_8250_SHARE_IRQ=y
  # CONFIG_SERIAL_8250_DETECT_IRQ is not set
@@ -2369,7 +4717,7 @@
  CONFIG_UNIX98_PTYS=y
  CONFIG_LEGACY_PTYS=y
  CONFIG_LEGACY_PTY_COUNT=256
-@@ -541,12 +624,6 @@
+@@ -541,12 +651,6 @@
  # CONFIG_TIPAR is not set
  
  #
@@ -2382,7 +4730,7 @@
  # IPMI
  #
  # CONFIG_IPMI_HANDLER is not set
-@@ -555,7 +632,6 @@
+@@ -555,7 +659,6 @@
  # Watchdog Cards
  #
  # CONFIG_WATCHDOG is not set
@@ -2390,7 +4738,7 @@
  CONFIG_GEN_RTC=y
  # CONFIG_GEN_RTC_X is not set
  # CONFIG_DTLK is not set
-@@ -565,15 +641,30 @@
+@@ -565,21 +668,40 @@
  #
  # Ftape, the floppy tape device driver
  #
@@ -2408,9 +4756,8 @@
  # I2C support
  #
  # CONFIG_I2C is not set
-+# CONFIG_I2C_SENSOR is not set
-+
-+#
+ 
+ #
 +# Dallas's 1-wire bus
 +#
 +# CONFIG_W1 is not set
@@ -2419,11 +4766,22 @@
 +# Hardware Monitoring support
 +#
 +CONFIG_HWMON=y
++# CONFIG_HWMON_VID is not set
 +# CONFIG_HWMON_DEBUG_CHIP is not set
++
++#
+ # Misc devices
+ #
  
  #
- # Misc devices
-@@ -593,34 +684,44 @@
++# Multimedia Capabilities Port drivers
++#
++
++#
+ # Multimedia devices
+ #
+ # CONFIG_VIDEO_DEV is not set
+@@ -593,34 +715,45 @@
  # Graphics support
  #
  CONFIG_FB=y
@@ -2453,6 +4811,7 @@
  # 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
@@ -2472,7 +4831,7 @@
  # CONFIG_FONTS is not set
  CONFIG_FONT_8x8=y
  CONFIG_FONT_8x16=y
-@@ -629,6 +730,7 @@
+@@ -629,6 +762,7 @@
  # Logo configuration
  #
  # CONFIG_LOGO is not set
@@ -2480,7 +4839,7 @@
  
  #
  # Sound
-@@ -638,17 +740,93 @@
+@@ -638,17 +772,94 @@
  #
  # Advanced Linux Sound Architecture
  #
@@ -2505,14 +4864,13 @@
 +# 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_AC97_CODEC=y
 +# CONFIG_SND_ALI5451 is not set
-+CONFIG_SND_AD1889=y
-+# CONFIG_SND_AD1889_OPL3 is not set
 +# CONFIG_SND_ATIIXP is not set
 +# CONFIG_SND_ATIIXP_MODEM is not set
 +# CONFIG_SND_AU8810 is not set
@@ -2535,6 +4893,8 @@
 +# 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
@@ -2576,7 +4936,7 @@
  CONFIG_USB=y
  CONFIG_USB_DEBUG=y
  
-@@ -658,13 +836,20 @@
+@@ -658,26 +869,36 @@
  # CONFIG_USB_DEVICEFS is not set
  # CONFIG_USB_BANDWIDTH is not set
  # CONFIG_USB_DYNAMIC_MINORS is not set
@@ -2597,8 +4957,11 @@
  
  #
  # USB Device Class drivers
-@@ -674,10 +859,14 @@
- # CONFIG_USB_MIDI is not set
+ #
+-# 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
 +
@@ -2613,7 +4976,7 @@
  #
  # CONFIG_USB_HID is not set
  
-@@ -688,16 +877,21 @@
+@@ -688,16 +909,23 @@
  # CONFIG_USB_MOUSE is not set
  # CONFIG_USB_AIPTEK is not set
  # CONFIG_USB_WACOM is not set
@@ -2623,9 +4986,11 @@
 +# 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
@@ -2636,7 +5001,7 @@
  
  #
  # USB Multimedia devices
-@@ -709,13 +903,15 @@
+@@ -709,13 +937,15 @@
  #
  
  #
@@ -2653,7 +5018,7 @@
  
  #
  # USB port drivers
-@@ -732,12 +928,21 @@
+@@ -732,12 +962,21 @@
  #
  # CONFIG_USB_EMI62 is not set
  # CONFIG_USB_EMI26 is not set
@@ -2676,7 +5041,7 @@
  
  #
  # USB Gadget Support
-@@ -745,20 +950,42 @@
+@@ -745,22 +984,41 @@
  # CONFIG_USB_GADGET is not set
  
  #
@@ -2706,10 +5071,6 @@
  # CONFIG_REISERFS_FS is not set
  # CONFIG_JFS_FS is not set
 +# CONFIG_FS_POSIX_ACL is not set
-+
-+#
-+# XFS support
-+#
  # CONFIG_XFS_FS is not set
  # CONFIG_MINIX_FS is not set
  # CONFIG_ROMFS_FS is not set
@@ -2718,9 +5079,12 @@
 +CONFIG_DNOTIFY=y
  # CONFIG_AUTOFS_FS is not set
  # CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
  
-@@ -773,7 +1000,8 @@
  #
+ # CD-ROM/DVD Filesystems
+@@ -773,7 +1031,8 @@
+ #
  # DOS/FAT/NT Filesystems
  #
 -# CONFIG_FAT_FS is not set
@@ -2729,20 +5093,22 @@
  # CONFIG_NTFS_FS is not set
  
  #
-@@ -781,9 +1009,10 @@
+@@ -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_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
  
-@@ -809,18 +1038,22 @@
  #
+ # Miscellaneous filesystems
+@@ -809,23 +1068,28 @@
+ #
  CONFIG_NFS_FS=y
  CONFIG_NFS_V3=y
 +# CONFIG_NFS_V3_ACL is not set
@@ -2765,7 +5131,13 @@
  # CONFIG_SMB_FS is not set
  # CONFIG_CIFS is not set
  # CONFIG_NCP_FS is not set
-@@ -861,6 +1094,7 @@
+ # 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
@@ -2773,7 +5145,7 @@
  # CONFIG_NLS_ISO8859_1 is not set
  # CONFIG_NLS_ISO8859_2 is not set
  # CONFIG_NLS_ISO8859_3 is not set
-@@ -885,17 +1119,23 @@
+@@ -885,17 +1150,24 @@
  #
  # Kernel hacking
  #
@@ -2782,6 +5154,7 @@
 -# 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
@@ -2800,7 +5173,7 @@
  # CONFIG_SECURITY is not set
  
  #
-@@ -909,6 +1149,8 @@
+@@ -909,6 +1181,8 @@
  # CONFIG_CRYPTO_SHA1 is not set
  # CONFIG_CRYPTO_SHA256 is not set
  # CONFIG_CRYPTO_SHA512 is not set
@@ -2809,7 +5182,7 @@
  # CONFIG_CRYPTO_DES is not set
  # CONFIG_CRYPTO_BLOWFISH is not set
  # CONFIG_CRYPTO_TWOFISH is not set
-@@ -916,11 +1158,22 @@
+@@ -916,11 +1190,23 @@
  # CONFIG_CRYPTO_AES is not set
  # CONFIG_CRYPTO_CAST5 is not set
  # CONFIG_CRYPTO_CAST6 is not set
@@ -2830,11 +5203,12 @@
  # Library routines
  #
 +# CONFIG_CRC_CCITT is not set
++# CONFIG_CRC16 is not set
  CONFIG_CRC32=y
 +# CONFIG_LIBCRC32C is not set
-diff -Nur linux-2.6.13.org/arch/parisc/kernel/cache.c linux-2.6.13/arch/parisc/kernel/cache.c
---- linux-2.6.13.org/arch/parisc/kernel/cache.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/kernel/cache.c	2005-09-25 12:34:39.000000000 -0400
+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>
@@ -2873,9 +5247,9 @@
  	rangetime = mfctl(16) - rangetime;
  
  	printk(KERN_DEBUG "Whole cache flush %lu cycles, flushing %lu bytes %lu cycles\n",
-diff -Nur linux-2.6.13.org/arch/parisc/kernel/drivers.c linux-2.6.13/arch/parisc/kernel/drivers.c
---- linux-2.6.13.org/arch/parisc/kernel/drivers.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/kernel/drivers.c	2005-09-25 12:34:39.000000000 -0400
+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",
  };
@@ -3297,9 +5671,9 @@
 -	}
 +	for_each_padev(print_one_device, NULL);
  }
-diff -Nur linux-2.6.13.org/arch/parisc/kernel/entry.S linux-2.6.13/arch/parisc/kernel/entry.S
---- linux-2.6.13.org/arch/parisc/kernel/entry.S	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/kernel/entry.S	2005-09-25 12:34:39.000000000 -0400
+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 */
  
@@ -3607,7 +5981,17 @@
  	shld	%r1, 6, %r20
  #else
  	shlw	%r1, 5, %r20
-@@ -985,24 +992,19 @@
+@@ -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
  
@@ -3640,18 +6024,25 @@
  	rest_stack
  
  	rfi
-@@ -1017,8 +1019,8 @@
+@@ -1015,17 +1014,6 @@
+ 	nop
+ 	nop
  
- 	.import do_softirq,code
- intr_do_softirq:
+-	.import do_softirq,code
+-intr_do_softirq:
 -	bl      do_softirq,%r2
 -#ifdef __LP64__
-+	BL      do_softirq,%r2
-+#ifdef CONFIG_64BIT
- 	ldo	-16(%r30),%r29		/* Reference param save area */
- #else
- 	nop
-@@ -1036,12 +1038,17 @@
+-	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
  
@@ -3670,7 +6061,7 @@
  	ldo	R%intr_check_sig(%r2), %r2
  
  
-@@ -1064,7 +1071,7 @@
+@@ -1064,7 +1057,7 @@
  
  	copy	%r0, %r24			/* unsigned long in_syscall */
  	copy	%r16, %r25			/* struct pt_regs *regs */
@@ -3679,7 +6070,7 @@
  	ldo	-16(%r30),%r29			/* Reference param save area */
  #endif
  
-@@ -1088,7 +1095,7 @@
+@@ -1088,7 +1081,7 @@
  	mfctl	%cr31,%r1
  	copy	%r30,%r17
  	/* FIXME! depi below has hardcoded idea of interrupt stack size (32k)*/
@@ -3688,7 +6079,7 @@
  	depdi	0,63,15,%r17
  #else
  	depi	0,31,15,%r17
-@@ -1115,7 +1122,7 @@
+@@ -1115,7 +1108,7 @@
  
  	ldil	L%intr_return, %r2
  
@@ -3697,7 +6088,7 @@
  	ldo	-16(%r30),%r29	/* Reference param save area */
  #endif
  
-@@ -1153,15 +1160,17 @@
+@@ -1153,15 +1146,17 @@
  
  	CMPIB=,n        6,%r26,skip_save_ior
  
@@ -3717,7 +6108,7 @@
  	 */
  	extrd,u,*<>     %r8,PSW_W_BIT,1,%r0
  	depdi           0,1,2,%r17
-@@ -1192,7 +1201,7 @@
+@@ -1192,7 +1187,7 @@
  	loadgp
  
  	copy		%r29, %r25	/* arg1 is pt_regs */
@@ -3726,7 +6117,7 @@
  	ldo		-16(%r30),%r29	/* Reference param save area */
  #endif
  
-@@ -1230,7 +1239,7 @@
+@@ -1230,7 +1225,7 @@
  	spc  = r24	/* space for which the trap occured */
  	ptp = r25	/* page directory/page table pointer */
  
@@ -3735,7 +6126,7 @@
  
  dtlb_miss_20w:
  	space_adjust	spc,va,t0
-@@ -1487,10 +1496,10 @@
+@@ -1487,10 +1482,10 @@
  	add,l           %r1,%r24,%r1           /* doesn't affect c/b bits */
  
  nadtlb_nullify:
@@ -3748,7 +6139,7 @@
  
  	rfir
  	nop
-@@ -1521,7 +1530,7 @@
+@@ -1521,7 +1516,7 @@
  	nop
  
  
@@ -3757,7 +6148,7 @@
  itlb_miss_20w:
  
  	/*
-@@ -1588,7 +1597,7 @@
+@@ -1588,7 +1583,7 @@
  
  #endif
  
@@ -3766,7 +6157,7 @@
  
  dbit_trap_20w:
  	space_adjust	spc,va,t0
-@@ -1797,7 +1806,7 @@
+@@ -1797,7 +1792,7 @@
  
  	STREG	%r2,-RP_OFFSET(%r30)
  	ldo	FRAME_SIZE(%r30),%r30
@@ -3775,7 +6166,7 @@
  	ldo	-16(%r30),%r29		/* Reference param save area */
  #endif
  
-@@ -1847,10 +1856,11 @@
+@@ -1847,10 +1842,11 @@
  
  	STREG	%r2,-RP_OFFSET(%r30)
  	ldo	FRAME_SIZE(%r30),%r30
@@ -3788,7 +6179,7 @@
  	STREG	%r2,PT_GR19(%r1)	/* save for child */
  	STREG	%r30,PT_GR21(%r1)
  	BL	sys_clone,%r2
-@@ -1869,7 +1879,7 @@
+@@ -1869,7 +1865,7 @@
  
  	STREG	%r2,-RP_OFFSET(%r30)
  	ldo	FRAME_SIZE(%r30),%r30
@@ -3797,7 +6188,7 @@
  	ldo	-16(%r30),%r29		/* Reference param save area */
  #endif
  
-@@ -1897,10 +1907,10 @@
+@@ -1897,10 +1893,10 @@
  
  	STREG %r2,-RP_OFFSET(%r30)
  	ldo FRAME_SIZE(%r30),%r30
@@ -3810,7 +6201,7 @@
  	copy %r1,%arg0
  
  	ldo -FRAME_SIZE(%r30),%r30
-@@ -1923,7 +1933,7 @@
+@@ -1923,7 +1919,7 @@
  sys_execve_wrapper:
  	execve_wrapper sys_execve
  
@@ -3819,7 +6210,7 @@
  	.export sys32_execve_wrapper
  	.import sys32_execve
  
-@@ -1937,7 +1947,7 @@
+@@ -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)
@@ -3828,7 +6219,7 @@
  	ldo	FRAME_SIZE(%r30), %r30
  	BL	sys_rt_sigreturn,%r2
  	ldo	-16(%r30),%r29		/* Reference param save area */
-@@ -1968,7 +1978,7 @@
+@@ -1968,7 +1964,7 @@
  	ldo	TASK_REGS(%r1),%r24	/* get pt regs */
  	LDREG	TASK_PT_GR30(%r24),%r24
  	STREG	%r2, -RP_OFFSET(%r30)
@@ -3837,7 +6228,7 @@
  	ldo	FRAME_SIZE(%r30), %r30
  	b,l	do_sigaltstack,%r2
  	ldo	-16(%r30),%r29		/* Reference param save area */
-@@ -1982,7 +1992,7 @@
+@@ -1982,7 +1978,7 @@
  	bv	%r0(%r2)
  	nop
  
@@ -3846,7 +6237,7 @@
  	.export sys32_sigaltstack_wrapper
  sys32_sigaltstack_wrapper:
  	/* Get the user stack pointer */
-@@ -2006,7 +2016,7 @@
+@@ -2006,7 +2002,7 @@
  	reg_save %r24
  
  	STREG	%r2, -RP_OFFSET(%r30)
@@ -3855,7 +6246,7 @@
  	ldo	FRAME_SIZE(%r30), %r30
  	b,l	sys_rt_sigsuspend,%r2
  	ldo	-16(%r30),%r29		/* Reference param save area */
-@@ -2079,7 +2089,7 @@
+@@ -2079,7 +2075,7 @@
  	ldw     TI_CPU-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r26 /* cpu # */
  
  	/* shift left ____cacheline_aligned (aka L1_CACHE_BYTES) bits */
@@ -3864,8 +6255,18 @@
  	shld	%r26, 6, %r20
  #else
  	shlw	%r26, 5, %r20
-@@ -2144,7 +2154,7 @@
+@@ -2087,9 +2083,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,syscall_do_softirq /* forward */
+-
+ syscall_check_resched:
+ 
+ 	/* check for reschedule */
+@@ -2144,7 +2137,7 @@
+ 
  	depi	3,31,2,%r31			   /* ensure return to user mode. */
  
 -#ifdef __LP64__
@@ -3873,16 +6274,20 @@
  	/* decide whether to reset the wide mode bit
  	 *
  	 * For a syscall, the W bit is stored in the lowest bit
-@@ -2229,7 +2239,7 @@
+@@ -2227,20 +2220,10 @@
+ 	b	intr_restore
+ 	nop
  
- 	.import do_softirq,code
- syscall_do_softirq:
+-	.import do_softirq,code
+-syscall_do_softirq:
 -	bl      do_softirq,%r2
-+	BL      do_softirq,%r2
- 	nop
- 	/* NOTE: We enable I-bit incase we schedule later,
- 	 * and we might be going back to userspace if we were
-@@ -2240,7 +2250,7 @@
+-	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
@@ -3891,7 +6296,7 @@
  	ldo	-16(%r30),%r29		/* Reference param save area */
  #else
  	nop
-@@ -2260,7 +2270,7 @@
+@@ -2260,7 +2243,7 @@
  
  	ldi	1, %r24				/* unsigned long in_syscall */
  
@@ -3900,9 +6305,9 @@
  	ldo	-16(%r30),%r29			/* Reference param save area */
  #endif
  	BL	do_signal,%r2
-diff -Nur linux-2.6.13.org/arch/parisc/kernel/firmware.c linux-2.6.13/arch/parisc/kernel/firmware.c
---- linux-2.6.13.org/arch/parisc/kernel/firmware.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/kernel/firmware.c	2005-09-25 12:34:39.000000000 -0400
+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
@@ -3928,9 +6333,9 @@
   */
  
  #ifdef __LP64__
-diff -Nur linux-2.6.13.org/arch/parisc/kernel/head.S linux-2.6.13/arch/parisc/kernel/head.S
---- linux-2.6.13.org/arch/parisc/kernel/head.S	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/kernel/head.S	2005-09-25 12:34:39.000000000 -0400
+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>
   */
@@ -3938,7 +6343,7 @@
 -#include <linux/autoconf.h>	/* for CONFIG_SMP */
 +#include <linux/config.h>	/* for CONFIG_SMP */
  
- #include <asm/offsets.h>
+ #include <asm/asm-offsets.h>
  #include <asm/psw.h>
 @@ -36,10 +36,10 @@
  	.align	4
@@ -4112,9 +6517,9 @@
  	.word 0
 -#endif /*!LP64*/
 +#endif /*!CONFIG_64BIT*/
-diff -Nur linux-2.6.13.org/arch/parisc/kernel/ioctl32.c linux-2.6.13/arch/parisc/kernel/ioctl32.c
---- linux-2.6.13.org/arch/parisc/kernel/ioctl32.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/kernel/ioctl32.c	2005-09-25 12:34:39.000000000 -0400
+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 @@
  	}
  
@@ -4189,9 +6594,216 @@
  	return ret;
  }
  
-diff -Nur linux-2.6.13.org/arch/parisc/kernel/pacache.S linux-2.6.13/arch/parisc/kernel/pacache.S
---- linux-2.6.13.org/arch/parisc/kernel/pacache.S	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/kernel/pacache.S	2005-09-25 12:35:31.000000000 -0400
+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>
+ 
+ #undef PARISC_IRQ_CR16_COUNTS
+ 
+@@ -43,26 +46,34 @@
+ */
+ static volatile unsigned long cpu_eiem = 0;
+ 
+-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);
+ 
+ 	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 */
+ }
+ 
+ static void cpu_enable_irq(unsigned int irq)
+ {
+ 	unsigned long eirr_bit = EIEM_MASK(irq);
+ 
+-	mtctl(eirr_bit, 23);	/* clear EIRR bit before unmasking */
+ 	cpu_eiem |= eirr_bit;
+-        on_each_cpu(cpu_set_eiem, (void *) cpu_eiem, 1, 1);
++
++	/* 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);
++
++	/* 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)
++{
++	int cpu_dest;
++
++	/* 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;
++	}
++
++	/* whatever mask they set, we just allow one CPU */
++	cpu_dest = first_cpu(*dest);
++	*dest = cpumask_of_cpu(cpu_dest);
++
++	return 0;
++}
++
++static void cpu_set_affinity_irq(unsigned int irq, cpumask_t dest)
++{
++	if (cpu_check_affinity(irq, &dest))
++		return;
++
++	irq_affinity[irq] = dest;
++}
++#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,
++#endif
+ };
+ 
+ int show_interrupts(struct seq_file *p, void *v)
+@@ -219,6 +261,17 @@
+ 	return -1;
+ }
+ 
++
++unsigned long txn_affinity_addr(unsigned int irq, int cpu)
++{
++#ifdef CONFIG_SMP
++	irq_affinity[irq] = cpumask_of_cpu(cpu);
++#endif
++
++	return cpu_data[cpu].txn_addr;
++}
++
++
+ 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 */
+ 
+-	return cpu_data[next_cpu].txn_addr;
++	return txn_affinity_addr(virt_irq, next_cpu);
+ }
+ 
+ 
+@@ -250,10 +303,11 @@
+ 	irq_enter();
+ 
+ 	/*
+-	 * 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);
+ 
+ 	/* 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;
+ 
+-		if (eirr_val & EIEM_MASK(TIMER_IRQ))
+-			set_eiem(0);
+-
+ 		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);
+ 		}
+ 	}
+-	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.
   */
@@ -4300,6 +6912,15 @@
  	.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:
@@ -4309,6 +6930,15 @@
  	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
@@ -4617,9 +7247,9 @@
  	rfi
  	nop
  
-diff -Nur linux-2.6.13.org/arch/parisc/kernel/pci-dma.c linux-2.6.13/arch/parisc/kernel/pci-dma.c
---- linux-2.6.13.org/arch/parisc/kernel/pci-dma.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/kernel/pci-dma.c	2005-09-25 12:34:39.000000000 -0400
+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>
@@ -4709,9 +7339,9 @@
  	strcat(buf, "\n");
  	return strlen(buf);
  }
-diff -Nur linux-2.6.13.org/arch/parisc/kernel/pci.c linux-2.6.13/arch/parisc/kernel/pci.c
---- linux-2.6.13.org/arch/parisc/kernel/pci.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/kernel/pci.c	2005-09-25 12:34:39.000000000 -0400
+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)
  {
@@ -4722,9 +7352,9 @@
  		r->parent = hba_res;
  
  		/* reverse link is harder *sigh*  */
-diff -Nur linux-2.6.13.org/arch/parisc/kernel/pdc_cons.c linux-2.6.13/arch/parisc/kernel/pdc_cons.c
---- linux-2.6.13.org/arch/parisc/kernel/pdc_cons.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/kernel/pdc_cons.c	2005-09-25 12:34:39.000000000 -0400
+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. 
@@ -4831,9 +7461,9 @@
  	pdc_console_init_force();
  }
 -
-diff -Nur linux-2.6.13.org/arch/parisc/kernel/perf.c linux-2.6.13/arch/parisc/kernel/perf.c
---- linux-2.6.13.org/arch/parisc/kernel/perf.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/kernel/perf.c	2005-09-25 12:34:39.000000000 -0400
+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;
@@ -4865,9 +7495,9 @@
  	}
  
  	return 0; 
-diff -Nur linux-2.6.13.org/arch/parisc/kernel/process.c linux-2.6.13/arch/parisc/kernel/process.c
---- linux-2.6.13.org/arch/parisc/kernel/process.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/kernel/process.c	2005-09-25 12:34:39.000000000 -0400
+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>
@@ -4931,9 +7561,9 @@
  	}
  
  	return 0;
-diff -Nur linux-2.6.13.org/arch/parisc/kernel/processor.c linux-2.6.13/arch/parisc/kernel/processor.c
---- linux-2.6.13.org/arch/parisc/kernel/processor.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/kernel/processor.c	2005-09-25 12:34:39.000000000 -0400
+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.
  	 */
@@ -4970,9 +7600,9 @@
  	p->cpuid = cpuid;	/* save CPU id */
  	p->txn_addr = txn_addr;	/* save CPU IRQ address */
  #ifdef CONFIG_SMP
-diff -Nur linux-2.6.13.org/arch/parisc/kernel/real2.S linux-2.6.13/arch/parisc/kernel/real2.S
---- linux-2.6.13.org/arch/parisc/kernel/real2.S	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/kernel/real2.S	2005-09-25 12:34:39.000000000 -0400
+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)
   *
@@ -5098,10 +7728,18 @@
  	bve (%r2)
  #else
  	bv %r0(%r2)
-diff -Nur linux-2.6.13.org/arch/parisc/kernel/signal.c linux-2.6.13/arch/parisc/kernel/signal.c
---- linux-2.6.13.org/arch/parisc/kernel/signal.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/kernel/signal.c	2005-09-25 12:34:39.000000000 -0400
-@@ -490,15 +490,7 @@
+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");
@@ -5118,17 +7756,28 @@
  	return 0;
  }
  
-@@ -637,6 +629,7 @@
- 			/* Stack is 64-byte aligned, and we only 
- 			 * need to flush 1 cache line */
- 			asm("fdc 0(%%sr3, %0)\n"
+@@ -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 0(%%sr3, %0)\n"
++			    "fic %%r0(%%sr3, %0)\n"
  			    "sync\n"
  			    : : "r"(regs->gr[30]));
-diff -Nur linux-2.6.13.org/arch/parisc/kernel/smp.c linux-2.6.13/arch/parisc/kernel/smp.c
---- linux-2.6.13.org/arch/parisc/kernel/smp.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/kernel/smp.c	2005-09-25 12:34:39.000000000 -0400
+ 
+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 */
@@ -5138,19 +7787,99 @@
  
  #include <linux/types.h>
  #include <linux/spinlock.h>
-diff -Nur linux-2.6.13.org/arch/parisc/kernel/syscall.S linux-2.6.13/arch/parisc/kernel/syscall.S
---- linux-2.6.13.org/arch/parisc/kernel/syscall.S	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/kernel/syscall.S	2005-09-25 12:34:39.000000000 -0400
-@@ -4,8 +4,9 @@
-  * System call entry code Copyright (c) Matthew Wilcox 1999 <willy at bofh.ai>
-  * Licensed under the GNU GPL.
+@@ -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);
++}
++
+ 
+ /**
+  * Run a function on all other CPUs.
+@@ -338,6 +346,10 @@
+ 
+ 	/* Can deadlock when called with interrupts disabled */
+ 	WARN_ON(irqs_disabled());
++
++	/* can also deadlock if IPIs are disabled */
++	WARN_ON((get_eiem() & (1UL<<(CPU_IRQ_MAX - IPI_IRQ))) == 0);
++
+ 	
+ 	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..
-+ * sorry about the wall, puffin.
+  * sorry about the wall, puffin..
   */
 +#include <linux/config.h> /* for CONFIG_SMP */
  
- #include <asm/offsets.h>
+ #include <asm/asm-offsets.h>
  #include <asm/unistd.h>
 @@ -22,15 +23,13 @@
  	 */
@@ -5322,9 +8051,9 @@
  	.align 4096
  	.export sys_call_table64
  .Lsys_call_table64:
-diff -Nur linux-2.6.13.org/arch/parisc/kernel/syscall_table.S linux-2.6.13/arch/parisc/kernel/syscall_table.S
---- linux-2.6.13.org/arch/parisc/kernel/syscall_table.S	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/kernel/syscall_table.S	2005-09-25 12:34:39.000000000 -0400
+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
@@ -5343,7 +8072,7 @@
  #define ENTRY_SAME(_name_) .dword sys_##_name_
  #define ENTRY_DIFF(_name_) .dword sys_##_name_
  #define ENTRY_UHOH(_name_) .dword sys_##_name_
-@@ -368,5 +368,9 @@
+@@ -368,5 +368,11 @@
  	ENTRY_COMP(mbind)		/* 260 */
  	ENTRY_COMP(get_mempolicy)
  	ENTRY_COMP(set_mempolicy)
@@ -5351,11 +8080,13 @@
 +	ENTRY_SAME(add_key)
 +	ENTRY_SAME(request_key)		/* 265 */
 +	ENTRY_SAME(keyctl)
++	ENTRY_SAME(ioprio_set)
++	ENTRY_SAME(ioprio_get)
  	/* Nothing yet */
  
-diff -Nur linux-2.6.13.org/arch/parisc/kernel/time.c linux-2.6.13/arch/parisc/kernel/time.c
---- linux-2.6.13.org/arch/parisc/kernel/time.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/kernel/time.c	2005-09-25 12:34:39.000000000 -0400
+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 @@
  		}
  	}
@@ -5396,9 +8127,9 @@
  /*** converted from ia64 ***/
  /*
   * Return the number of micro-seconds that elapsed since the last
-diff -Nur linux-2.6.13.org/arch/parisc/kernel/traps.c linux-2.6.13/arch/parisc/kernel/traps.c
---- linux-2.6.13.org/arch/parisc/kernel/traps.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/kernel/traps.c	2005-09-25 12:34:39.000000000 -0400
+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;
@@ -5450,9 +8181,9 @@
  
  	cr30 = mfctl(30);
  	cr31 = mfctl(31);
-diff -Nur linux-2.6.13.org/arch/parisc/kernel/unaligned.c linux-2.6.13/arch/parisc/kernel/unaligned.c
---- linux-2.6.13.org/arch/parisc/kernel/unaligned.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/kernel/unaligned.c	2005-09-25 12:34:39.000000000 -0400
+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 */
  
@@ -5462,9 +8193,9 @@
 -		if (unaligned_count > 5 && jiffies - last_time > 5*HZ)
 -		{
 +	if (user_mode(regs)) {
-+                if (current->thread.flags & PARISC_UAC_SIGBUS) {
-+                        goto force_sigbus;
-+                }
++		if (current->thread.flags & PARISC_UAC_SIGBUS) {
++			goto force_sigbus;
++		}
 +
 +		if (unaligned_count > 5 && jiffies - last_time > 5*HZ) {
  			unaligned_count = 0;
@@ -5474,7 +8205,7 @@
 -		{
 +
 +		if (!(current->thread.flags & PARISC_UAC_NOPRINT) 
-+                    && ++unaligned_count < 5) {
++		    && ++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]);
@@ -5486,9 +8217,30 @@
  		if (!unaligned_enabled)
  			goto force_sigbus;
  	}
-diff -Nur linux-2.6.13.org/arch/parisc/lib/memcpy.c linux-2.6.13/arch/parisc/lib/memcpy.c
---- linux-2.6.13.org/arch/parisc/lib/memcpy.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/arch/parisc/lib/memcpy.c	2005-09-25 12:34:39.000000000 -0400
+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
++
+ 	.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;
@@ -5505,21 +8257,9 @@
  
  	pws = (unsigned int *)pds;
  	pwd = (unsigned int *)pdd;
-diff -Nur linux-2.6.13.org/drivers/block/Kconfig linux-2.6.13/drivers/block/Kconfig
---- linux-2.6.13.org/drivers/block/Kconfig	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/block/Kconfig	2005-09-25 12:34:39.000000000 -0400
-@@ -6,7 +6,7 @@
- 
- config BLK_DEV_FD
- 	tristate "Normal floppy disk support"
--	depends on (!ARCH_S390 && !M68K && !IA64 && !UML && !ARM) || Q40 || (SUN3X && BROKEN) || ARCH_RPC || ARCH_EBSA285
-+	depends on (!ARCH_S390 && !M68K && !IA64 && !UML && !ARM) || Q40 || (SUN3X && BROKEN) || ARCH_RPC || ARCH_EBSA285 || (PARISC && BROKEN)
- 	---help---
- 	  If you want to use the floppy disk drive(s) of your PC under Linux,
- 	  say Y. Information about this driver, especially important for IBM
-diff -Nur linux-2.6.13.org/drivers/ide/Kconfig linux-2.6.13/drivers/ide/Kconfig
---- linux-2.6.13.org/drivers/ide/Kconfig	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/ide/Kconfig	2005-09-25 12:34:39.000000000 -0400
+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
@@ -5529,21 +8269,27 @@
  
  	  Please read the comments at the top of <file:drivers/ide/pci/ns87415.c>.
  
-diff -Nur linux-2.6.13.org/drivers/ide/ide-lib.c linux-2.6.13/drivers/ide/ide-lib.c
---- linux-2.6.13.org/drivers/ide/ide-lib.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/ide/ide-lib.c	2005-09-25 12:34:39.000000000 -0400
-@@ -410,7 +410,7 @@
+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 (on) {
- 		if (!PCI_DMA_BUS_IS_PHYS)
- 			addr = BLK_BOUNCE_ANY;
- 		else if (HWIF(drive)->pci_dev)
-diff -Nur linux-2.6.13.org/drivers/input/keyboard/hil_kbd.c linux-2.6.13/drivers/input/keyboard/hil_kbd.c
---- linux-2.6.13.org/drivers/input/keyboard/hil_kbd.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/input/keyboard/hil_kbd.c	2005-09-25 12:34:39.000000000 -0400
+-		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;
@@ -5621,9 +8367,9 @@
  	.connect 	= hil_kbd_connect,
  	.disconnect 	= hil_kbd_disconnect,
  	.interrupt 	= hil_kbd_interrupt
-diff -Nur linux-2.6.13.org/drivers/input/keyboard/hilkbd.c linux-2.6.13/drivers/input/keyboard/hilkbd.c
---- linux-2.6.13.org/drivers/input/keyboard/hilkbd.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/input/keyboard/hilkbd.c	2005-09-25 12:34:39.000000000 -0400
+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>
@@ -5647,9 +8393,18 @@
  	hil_irq  = dev->irq;
  	hil_dev.dev_id = dev;
  	
-diff -Nur linux-2.6.13.org/drivers/input/mouse/hil_ptr.c linux-2.6.13/drivers/input/mouse/hil_ptr.c
---- linux-2.6.13.org/drivers/input/mouse/hil_ptr.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/input/mouse/hil_ptr.c	2005-09-25 12:34:39.000000000 -0400
+@@ -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;
@@ -5733,9 +8488,9 @@
  };
  
  static int __init hil_ptr_init(void)
-diff -Nur linux-2.6.13.org/drivers/input/serio/gscps2.c linux-2.6.13/drivers/input/serio/gscps2.c
---- linux-2.6.13.org/drivers/input/serio/gscps2.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/input/serio/gscps2.c	2005-09-25 12:34:39.000000000 -0400
+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);
@@ -5793,9 +8548,18 @@
  
  fail_nomem:
  	kfree(ps2port);
-diff -Nur linux-2.6.13.org/drivers/input/serio/hil_mlc.c linux-2.6.13/drivers/input/serio/hil_mlc.c
---- linux-2.6.13.org/drivers/input/serio/hil_mlc.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/input/serio/hil_mlc.c	2005-09-25 12:34:39.000000000 -0400
+@@ -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;
@@ -5835,9 +8599,18 @@
  		mlc_serio->write		= hil_mlc_serio_write;
  		mlc_serio->open			= hil_mlc_serio_open;
  		mlc_serio->close		= hil_mlc_serio_close;
-diff -Nur linux-2.6.13.org/drivers/input/serio/hp_sdc.c linux-2.6.13/drivers/input/serio/hp_sdc.c
---- linux-2.6.13.org/drivers/input/serio/hp_sdc.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/input/serio/hp_sdc.c	2005-09-25 12:34:39.000000000 -0400
+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;
@@ -5851,9 +8624,9 @@
  
  	return hp_sdc_init();
  }
-diff -Nur linux-2.6.13.org/drivers/isdn/hisax/Kconfig linux-2.6.13/drivers/isdn/hisax/Kconfig
---- linux-2.6.13.org/drivers/isdn/hisax/Kconfig	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/isdn/hisax/Kconfig	2005-09-25 12:34:39.000000000 -0400
+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
@@ -5907,9 +8680,9 @@
  	help
  	  This enables HiSax support for the AMD7930 chips on some SPARCs.
  	  This code is not finished yet.
-diff -Nur linux-2.6.13.org/drivers/isdn/pcbit/Kconfig linux-2.6.13/drivers/isdn/pcbit/Kconfig
---- linux-2.6.13.org/drivers/isdn/pcbit/Kconfig	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/isdn/pcbit/Kconfig	2005-09-25 12:34:39.000000000 -0400
+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
@@ -5919,9 +8692,9 @@
  	help
  	  This enables support for the PCBIT ISDN-card.  This card is
  	  manufactured in Portugal by Octal.  For running this card,
-diff -Nur linux-2.6.13.org/drivers/net/lasi_82596.c linux-2.6.13/drivers/net/lasi_82596.c
---- linux-2.6.13.org/drivers/net/lasi_82596.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/net/lasi_82596.c	2005-09-25 12:34:39.000000000 -0400
+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;
@@ -6004,9 +8777,9 @@
  	.id_table	= lan_tbl,
  	.probe		= lan_init_chip,
  };
-diff -Nur linux-2.6.13.org/drivers/net/tulip/media.c linux-2.6.13/drivers/net/tulip/media.c
---- linux-2.6.13.org/drivers/net/tulip/media.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/net/tulip/media.c	2005-09-25 12:34:39.000000000 -0400
+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.
@@ -6020,7 +8793,7 @@
  
  int tulip_mdio_read(struct net_device *dev, int phy_id, int location)
  {
-@@ -297,24 +299,56 @@
+@@ -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;
@@ -6078,10 +8851,10 @@
  			tmp_info = get_u16(&misc_info[1]);
  			if (tmp_info)
  				tp->advertising[phy_num] = tmp_info | 1;
-diff -Nur linux-2.6.13.org/drivers/net/tulip/tulip.h linux-2.6.13/drivers/net/tulip/tulip.h
---- linux-2.6.13.org/drivers/net/tulip/tulip.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/net/tulip/tulip.h	2005-09-25 12:34:39.000000000 -0400
-@@ -475,8 +475,11 @@
+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)
@@ -6095,9 +8868,9 @@
  	}
  }
  
-diff -Nur linux-2.6.13.org/drivers/net/tulip/tulip_core.c linux-2.6.13/drivers/net/tulip/tulip_core.c
---- linux-2.6.13.org/drivers/net/tulip/tulip_core.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/net/tulip/tulip_core.c	2005-09-25 12:34:39.000000000 -0400
+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"
@@ -6116,9 +8889,9 @@
  	HAS_MII | HAS_MEDIA_TABLE | ALWAYS_CHECK_MII | HAS_ACPI | HAS_NWAY
  	| HAS_INTR_MITIGATION | HAS_PCI_MWI, t21142_timer },
  
-diff -Nur linux-2.6.13.org/drivers/parisc/asp.c linux-2.6.13/drivers/parisc/asp.c
---- linux-2.6.13.org/drivers/parisc/asp.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/parisc/asp.c	2005-09-25 12:34:39.000000000 -0400
+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;
@@ -6143,9 +8916,9 @@
  	.id_table =	asp_tbl,
  	.probe =	asp_init_chip,
  };
-diff -Nur linux-2.6.13.org/drivers/parisc/ccio-dma.c linux-2.6.13/drivers/parisc/ccio-dma.c
---- linux-2.6.13.org/drivers/parisc/ccio-dma.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/parisc/ccio-dma.c	2005-09-25 12:34:39.000000000 -0400
+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
@@ -6217,6 +8990,24 @@
  	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;
  
@@ -6226,6 +9017,15 @@
  		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);
  
@@ -6428,9 +9228,9 @@
  	ccio_ioc_init(ioc);
  	ccio_init_resources(ioc);
  	hppa_dma_ops = &ccio_ops;
-diff -Nur linux-2.6.13.org/drivers/parisc/ccio-rm-dma.c linux-2.6.13/drivers/parisc/ccio-rm-dma.c
---- linux-2.6.13.org/drivers/parisc/ccio-rm-dma.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/parisc/ccio-rm-dma.c	2005-09-25 12:34:39.000000000 -0400
+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,
@@ -6440,9 +9240,9 @@
  
  /*
  ** FIXME - should check U2 registers to verify it's really running
-diff -Nur linux-2.6.13.org/drivers/parisc/dino.c linux-2.6.13/drivers/parisc/dino.c
---- linux-2.6.13.org/drivers/parisc/dino.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/parisc/dino.c	2005-09-25 12:34:39.000000000 -0400
+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;
@@ -6574,9 +9374,9 @@
  };
  
  /*
-diff -Nur linux-2.6.13.org/drivers/parisc/eisa.c linux-2.6.13/drivers/parisc/eisa.c
---- linux-2.6.13.org/drivers/parisc/eisa.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/parisc/eisa.c	2005-09-25 12:34:39.000000000 -0400
+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";
  
@@ -6595,9 +9395,9 @@
  	.id_table =	eisa_tbl,
  	.probe =	eisa_probe,
  };
-diff -Nur linux-2.6.13.org/drivers/parisc/gsc.c linux-2.6.13/drivers/parisc/gsc.c
---- linux-2.6.13.org/drivers/parisc/gsc.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/parisc/gsc.c	2005-09-25 12:34:39.000000000 -0400
+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;
  }
@@ -6628,9 +9428,9 @@
  }
  
  int gsc_common_setup(struct parisc_device *parent, struct gsc_asic *gsc_asic)
-diff -Nur linux-2.6.13.org/drivers/parisc/hppb.c linux-2.6.13/drivers/parisc/hppb.c
---- linux-2.6.13.org/drivers/parisc/hppb.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/parisc/hppb.c	2005-09-25 12:34:39.000000000 -0400
+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;
@@ -6659,10 +9459,62 @@
          .id_table =     hppb_tbl,
  	.probe =        hppb_probe,
  };
-diff -Nur linux-2.6.13.org/drivers/parisc/lasi.c linux-2.6.13/drivers/parisc/lasi.c
---- linux-2.6.13.org/drivers/parisc/lasi.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/parisc/lasi.c	2005-09-25 12:34:39.000000000 -0400
-@@ -176,7 +176,7 @@
+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;
++
++	if (cpu_check_affinity(irq, &dest))
++		return;
++
++	vi->txn_addr = txn_affinity_addr(irq, first_cpu(dest));
++
++	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
++
+ 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";
@@ -6671,7 +9523,7 @@
  
  	/* Check the 4-bit (yes, only 4) version register */
  	lasi->version = gsc_readl(lasi->hpa + LASI_VER) & 0xf;
-@@ -234,7 +234,7 @@
+@@ -233,7 +233,7 @@
  };
  
  struct parisc_driver lasi_driver = {
@@ -6680,9 +9532,9 @@
  	.id_table =	lasi_tbl,
  	.probe =	lasi_init_chip,
  };
-diff -Nur linux-2.6.13.org/drivers/parisc/lba_pci.c linux-2.6.13/drivers/parisc/lba_pci.c
---- linux-2.6.13.org/drivers/parisc/lba_pci.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/parisc/lba_pci.c	2005-09-25 12:34:40.000000000 -0400
+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.
  		*/
@@ -6740,9 +9592,9 @@
  
  	imask <<= 2;	/* adjust for hints - 2 more bits */
  
-diff -Nur linux-2.6.13.org/drivers/parisc/led.c linux-2.6.13/drivers/parisc/led.c
---- linux-2.6.13.org/drivers/parisc/led.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/parisc/led.c	2005-09-25 12:34:40.000000000 -0400
+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.
@@ -6758,10 +9610,10 @@
  #include <linux/ctype.h>
  #include <linux/blkdev.h>
 +#include <linux/workqueue.h>
+ #include <linux/rcupdate.h>
  #include <asm/io.h>
  #include <asm/processor.h>
- #include <asm/hardware.h>
-@@ -46,25 +50,30 @@
+@@ -47,25 +51,30 @@
  #include <asm/uaccess.h>
  
  /* The control of the LEDs and LCDs on PARISC-machines have to be done 
@@ -6799,7 +9651,7 @@
  struct lcd_block {
  	unsigned char command;	/* stores the command byte      */
  	unsigned char on;	/* value for turning LED on     */
-@@ -115,12 +124,27 @@
+@@ -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 */
  
@@ -6829,7 +9681,7 @@
  #ifdef CONFIG_PROC_FS
  static int led_proc_read(char *page, char **start, off_t off, int count, 
  	int *eof, void *data)
-@@ -285,52 +309,35 @@
+@@ -286,52 +310,35 @@
  /*
     ** 
     ** led_LCD_driver()
@@ -6906,7 +9758,7 @@
  	}
  }
  
-@@ -355,7 +362,7 @@
+@@ -356,7 +363,7 @@
  
  	rx_total = tx_total = 0;
  	
@@ -6914,8 +9766,8 @@
 +	/* we are running as a workqueue task, so locking dev_base 
  	 * for reading should be OK */
  	read_lock(&dev_base_lock);
- 	for (dev = dev_base; dev; dev = dev->next) {
-@@ -402,7 +409,7 @@
+ 	rcu_read_lock();
+@@ -405,7 +412,7 @@
  	static unsigned long last_pgpgin, last_pgpgout;
  	struct page_state pgstat;
  	int changed;
@@ -6924,7 +9776,7 @@
  	get_full_page_state(&pgstat); /* get no of sectors in & out */
  
  	/* Just use a very simple calculation here. Do not care about overflow,
-@@ -410,86 +417,70 @@
+@@ -413,86 +420,70 @@
  	changed = (pgstat.pgpgin != last_pgpgin) || (pgstat.pgpgout != last_pgpgout);
  	last_pgpgin  = pgstat.pgpgin;
  	last_pgpgout = pgstat.pgpgout;
@@ -7042,7 +9894,7 @@
  
  /*
     ** led_halt()
-@@ -519,9 +510,13 @@
+@@ -522,9 +513,13 @@
  	default:		return NOTIFY_DONE;
  	}
  	
@@ -7059,7 +9911,7 @@
  	if (lcd_info.model == DISPLAY_MODEL_LCD)
  		lcd_print(txt);
  	else
-@@ -556,7 +551,6 @@
+@@ -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;
@@ -7067,7 +9919,7 @@
  		led_type = LED_HASLCD;
  		break;
  
-@@ -586,9 +580,11 @@
+@@ -589,9 +583,11 @@
  	initialized++;
  	register_reboot_notifier(&led_notifier);
  
@@ -7082,7 +9934,7 @@
  	return 0;
  }
  
-@@ -623,8 +619,8 @@
+@@ -626,8 +622,8 @@
     ** lcd_print()
     ** 
     ** Displays the given string on the LCD-Display of newer machines.
@@ -7093,7 +9945,7 @@
     **
   */
  int lcd_print( char *str )
-@@ -634,12 +630,13 @@
+@@ -637,12 +633,13 @@
  	if (!led_func_ptr || lcd_info.model != DISPLAY_MODEL_LCD)
  	    return 0;
  	
@@ -7110,7 +9962,7 @@
  	/* Set LCD Cursor to 1st character */
  	gsc_writeb(lcd_info.reset_cmd1, LCD_CMD_REG);
  	udelay(lcd_info.min_cmd_delay);
-@@ -653,8 +650,10 @@
+@@ -656,8 +653,10 @@
  	    udelay(lcd_info.min_cmd_delay);
  	}
  	
@@ -7123,9 +9975,9 @@
  
  	return lcd_info.lcd_width;
  }
-diff -Nur linux-2.6.13.org/drivers/parisc/pdc_stable.c linux-2.6.13/drivers/parisc/pdc_stable.c
---- linux-2.6.13.org/drivers/parisc/pdc_stable.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/parisc/pdc_stable.c	2005-09-25 12:34:40.000000000 -0400
+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: ");
@@ -7135,9 +9987,9 @@
  	else
  		out += sprintf(out, "All");
  	out += sprintf(out, "\n");
-diff -Nur linux-2.6.13.org/drivers/parisc/sba_iommu.c linux-2.6.13/drivers/parisc/sba_iommu.c
---- linux-2.6.13.org/drivers/parisc/sba_iommu.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/parisc/sba_iommu.c	2005-09-25 12:34:40.000000000 -0400
+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
@@ -7203,7 +10055,101 @@
  #define SBA_DMA_HINT(ioc, val) ((val) << (ioc)->hint_shift_pdir)
  #endif
  
-@@ -819,18 +819,29 @@
+@@ -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;
++#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 */
++
++	/*
++	** 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;
@@ -7237,7 +10183,57 @@
  }
  
  
-@@ -1234,8 +1245,10 @@
+@@ -898,11 +923,17 @@
+ 		size -= IOVP_SIZE;
+ 		pdir_start++;
+ 	}
+-	/* form complete address */
++
++	/* force FDC ops in io_pdir_entry() to be visible to IOMMU */
++	if (ioc_needs_fdc)
++		asm volatile("sync" : : );
++
+ #ifdef ASSERT_PDIR_SANITY
+ 	sba_check_pdir(ioc,"Check after sba_map_single()");
+ #endif
+ 	spin_unlock_irqrestore(&ioc->res_lock, flags);
++
++	/* form complete address */
+ 	return SBA_IOVA(ioc, iovp, offset, DEFAULT_DMA_HINT_REG);
+ }
+ 
+@@ -958,12 +989,19 @@
+ 			d--;
+ 		}
+ 		ioc->saved_cnt = 0;
++
+ 		READ_REG(ioc->ioc_hpa+IOC_PCOM);	/* flush purges */
+ 	}
+ #else /* DELAYED_RESOURCE_CNT == 0 */
+ 	sba_free_range(ioc, iova, size);
++
++	/* If fdc's were issued, force fdc's to be visible now */
++	if (ioc_needs_fdc)
++		asm volatile("sync" : : );
++
+ 	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);
@@ -7250,7 +10246,7 @@
  
  	/* If this is not PA8700 (PCX-W2)
  	**	OR newer than ver 2.2
-@@ -1322,19 +1335,29 @@
+@@ -1322,19 +1366,29 @@
  	return (void *) pdir_base;
  }
  
@@ -7284,7 +10280,7 @@
  }
  
  static void
-@@ -1343,7 +1366,7 @@
+@@ -1343,7 +1397,7 @@
  	u32 iova_space_mask;
  	u32 iova_space_size;
  	int iov_order, tcnfg;
@@ -7293,7 +10289,7 @@
  	int agp_found = 0;
  #endif
  	/*
-@@ -1380,7 +1403,7 @@
+@@ -1380,7 +1434,7 @@
  	DBG_INIT("%s() pdir %p size %x\n",
  			__FUNCTION__, ioc->pdir_base, ioc->pdir_size);
  
@@ -7302,7 +10298,7 @@
  	ioc->hint_shift_pdir = iov_order + PAGE_SHIFT;
  	ioc->hint_mask_pdir = ~(0x3 << (iov_order + PAGE_SHIFT));
  
-@@ -1404,7 +1427,7 @@
+@@ -1404,7 +1458,7 @@
  
  	WRITE_REG(ioc->imask, ioc->ioc_hpa + IOC_IMASK);
  
@@ -7311,7 +10307,7 @@
  	/*
  	** Setting the upper bits makes checking for bypass addresses
  	** a little faster later on.
-@@ -1437,7 +1460,7 @@
+@@ -1437,7 +1491,7 @@
  	*/
  	WRITE_REG(ioc->ibase | 31, ioc->ioc_hpa + IOC_PCOM);
  
@@ -7320,7 +10316,7 @@
  	/*
  	** 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 +1512,9 @@
+@@ -1489,11 +1543,9 @@
  	if (iova_space_size < (1 << (20 - PAGE_SHIFT))) {
  		iova_space_size = 1 << (20 - PAGE_SHIFT);
  	}
@@ -7332,7 +10328,7 @@
  
  	/*
  	** iova space must be log2() in size.
-@@ -1519,7 +1540,7 @@
+@@ -1519,7 +1571,7 @@
  	DBG_INIT("%s() pdir %p size %x\n",
  			__FUNCTION__, ioc->pdir_base, pdir_size);
  
@@ -7341,7 +10337,7 @@
  	/* FIXME : DMA HINTs not used */
  	ioc->hint_shift_pdir = iov_order + PAGE_SHIFT;
  	ioc->hint_mask_pdir = ~(0x3 << (iov_order + PAGE_SHIFT));
-@@ -1590,7 +1611,7 @@
+@@ -1590,7 +1642,7 @@
  
  static void __iomem *ioc_remap(struct sba_device *sba_dev, int offset)
  {
@@ -7350,7 +10346,7 @@
  }
  
  static void sba_hw_init(struct sba_device *sba_dev)
-@@ -1968,7 +1989,7 @@
+@@ -1968,7 +2020,7 @@
  	u32 func_class;
  	int i;
  	char *version;
@@ -7359,7 +10355,7 @@
  
  	sba_dump_ranges(sba_addr);
  
-@@ -2010,7 +2031,7 @@
+@@ -2010,7 +2062,7 @@
  	}
  
  	printk(KERN_INFO "%s found %s at 0x%lx\n",
@@ -7368,9 +10364,9 @@
  
  	sba_dev = kmalloc(sizeof(struct sba_device), GFP_KERNEL);
  	if (!sba_dev) {
-diff -Nur linux-2.6.13.org/drivers/parisc/superio.c linux-2.6.13/drivers/parisc/superio.c
---- linux-2.6.13.org/drivers/parisc/superio.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/parisc/superio.c	2005-09-25 12:34:40.000000000 -0400
+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>
@@ -7395,9 +10391,9 @@
  	retval = early_serial_setup(&serial[1]);
  
  	if (retval < 0)
-diff -Nur linux-2.6.13.org/drivers/parisc/wax.c linux-2.6.13/drivers/parisc/wax.c
---- linux-2.6.13.org/drivers/parisc/wax.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/parisc/wax.c	2005-09-25 12:34:40.000000000 -0400
+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;
  
@@ -7407,9 +10403,9 @@
  
  	wax->version = 0;   /* gsc_readb(wax->hpa+WAX_VER); */
  	printk(KERN_INFO "%s at 0x%lx found.\n", wax->name, wax->hpa);
-diff -Nur linux-2.6.13.org/drivers/parport/parport_gsc.c linux-2.6.13/drivers/parport/parport_gsc.c
---- linux-2.6.13.org/drivers/parport/parport_gsc.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/parport/parport_gsc.c	2005-09-25 12:34:40.000000000 -0400
+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;
  
@@ -7425,9 +10421,9 @@
  	
  	/* some older machines with ASP-chip don't support
  	 * the enhanced parport modes.
-diff -Nur linux-2.6.13.org/drivers/pcmcia/Kconfig linux-2.6.13/drivers/pcmcia/Kconfig
---- linux-2.6.13.org/drivers/pcmcia/Kconfig	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/pcmcia/Kconfig	2005-09-25 12:34:40.000000000 -0400
+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
@@ -7441,9 +10437,9 @@
  
  config M32R_PCC
  	bool "M32R PCMCIA I/F"
-diff -Nur linux-2.6.13.org/drivers/pcmcia/rsrc_nonstatic.c linux-2.6.13/drivers/pcmcia/rsrc_nonstatic.c
---- linux-2.6.13.org/drivers/pcmcia/rsrc_nonstatic.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/pcmcia/rsrc_nonstatic.c	2005-09-25 12:34:40.000000000 -0400
+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)
@@ -7456,9 +10452,9 @@
  #ifdef CONFIG_PCMCIA_PROBE
  INT_MODULE_PARM(probe_io,	1);		/* IO port probe? */
  INT_MODULE_PARM(mem_limit,	0x10000);
-diff -Nur linux-2.6.13.org/drivers/scsi/53c700.c linux-2.6.13/drivers/scsi/53c700.c
---- linux-2.6.13.org/drivers/scsi/53c700.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/scsi/53c700.c	2005-09-25 12:34:40.000000000 -0400
+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;
@@ -7483,9 +10479,9 @@
  	/* reset the chip */
  	NCR_700_chip_reset(host);
  
-diff -Nur linux-2.6.13.org/drivers/scsi/lasi700.c linux-2.6.13/drivers/scsi/lasi700.c
---- linux-2.6.13.org/drivers/scsi/lasi700.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/scsi/lasi700.c	2005-09-25 12:34:40.000000000 -0400
+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)
@@ -7513,9 +10509,9 @@
  	.id_table =	lasi700_ids,
  	.probe =	lasi700_probe,
  	.remove =	__devexit_p(lasi700_driver_remove),
-diff -Nur linux-2.6.13.org/drivers/scsi/sym53c8xx_2/sym_fw.c linux-2.6.13/drivers/scsi/sym53c8xx_2/sym_fw.c
---- linux-2.6.13.org/drivers/scsi/sym53c8xx_2/sym_fw.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/scsi/sym53c8xx_2/sym_fw.c	2005-09-25 12:34:40.000000000 -0400
+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
 @@ -37,11 +37,7 @@
   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
   */
@@ -7528,7 +10524,7 @@
  
  /*
   *  Macros used for all firmwares.
-@@ -60,11 +56,7 @@
+@@ -60,19 +56,12 @@
  #define	SYM_FWA_SCR		sym_fw1a_scr
  #define	SYM_FWB_SCR		sym_fw1b_scr
  #define	SYM_FWZ_SCR		sym_fw1z_scr
@@ -7540,7 +10536,15 @@
  static struct sym_fwa_ofs sym_fw1a_ofs = {
  	SYM_GEN_FW_A(struct SYM_FWA_SCR)
  };
-@@ -88,11 +80,7 @@
+ static struct sym_fwb_ofs sym_fw1b_ofs = {
+ 	SYM_GEN_FW_B(struct SYM_FWB_SCR)
+-#ifdef SYM_OPT_HANDLE_DIR_UNKNOWN
+-	SYM_GEN_B(struct SYM_FWB_SCR, data_io)
+-#endif
+ };
+ static struct sym_fwz_ofs sym_fw1z_ofs = {
+ 	SYM_GEN_FW_Z(struct SYM_FWZ_SCR)
+@@ -88,19 +77,12 @@
  #define	SYM_FWA_SCR		sym_fw2a_scr
  #define	SYM_FWB_SCR		sym_fw2b_scr
  #define	SYM_FWZ_SCR		sym_fw2z_scr
@@ -7552,11 +10556,238 @@
  static struct sym_fwa_ofs sym_fw2a_ofs = {
  	SYM_GEN_FW_A(struct SYM_FWA_SCR)
  };
-diff -Nur linux-2.6.13.org/drivers/scsi/sym53c8xx_2/sym_glue.c linux-2.6.13/drivers/scsi/sym53c8xx_2/sym_glue.c
---- linux-2.6.13.org/drivers/scsi/sym53c8xx_2/sym_glue.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/scsi/sym53c8xx_2/sym_glue.c	2005-09-25 12:34:40.000000000 -0400
-@@ -563,10 +563,7 @@
+ static struct sym_fwb_ofs sym_fw2b_ofs = {
+ 	SYM_GEN_FW_B(struct SYM_FWB_SCR)
+-#ifdef SYM_OPT_HANDLE_DIR_UNKNOWN
+-	SYM_GEN_B(struct SYM_FWB_SCR, data_io)
+-#endif
+ 	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
+@@ -92,9 +92,6 @@
+ };
+ struct sym_fwb_ofs {
+ 	SYM_GEN_FW_B(u_short)
+-#ifdef SYM_OPT_HANDLE_DIR_UNKNOWN
+-	SYM_GEN_B(u_short, data_io)
+-#endif
+ 	SYM_GEN_B(u_short, start64)
+ 	SYM_GEN_B(u_short, pm_handle)
+ };
+@@ -111,9 +108,6 @@
+ };
+ struct sym_fwb_ba {
+ 	SYM_GEN_FW_B(u32)
+-#ifdef SYM_OPT_HANDLE_DIR_UNKNOWN
+-	SYM_GEN_B(u32, data_io)
+-#endif
+ 	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
+@@ -197,12 +197,6 @@
+ 	u32 bad_status		[  7];
+ 	u32 wsr_ma_helper	[  4];
+ 
+-#ifdef SYM_OPT_HANDLE_DIR_UNKNOWN
+-	/* Unknown direction handling */
+-	u32 data_io		[  2];
+-	u32 data_io_com		[  8];
+-	u32 data_io_out		[  7];
+-#endif
+ 	/* Data area */
+ 	u32 zero		[  1];
+ 	u32 scratch		[  1];
+@@ -1747,48 +1741,6 @@
+ 	SCR_JUMP,
+ 		PADDR_A (dispatch),
+ 
+-#ifdef SYM_OPT_HANDLE_DIR_UNKNOWN
+-}/*-------------------------< DATA_IO >--------------------------*/,{
+-	/*
+-	 *  We jump here if the data direction was unknown at the 
+-	 *  time we had to queue the command to the scripts processor.
+-	 *  Pointers had been set as follow in this situation:
+-	 *    savep   -->   DATA_IO
+-	 *    lastp   -->   start pointer when DATA_IN
+-	 *    wlastp  -->   start pointer when DATA_OUT
+-	 *  This script sets savep and lastp according to the 
+-	 *  direction chosen by the target.
+-	 */
+-	SCR_JUMP ^ IFTRUE (WHEN (SCR_DATA_OUT)),
+-		PADDR_B (data_io_out),
+-}/*-------------------------< DATA_IO_COM >----------------------*/,{
+-	/*
+-	 *  Direction is DATA IN.
+-	 */
+-	SCR_COPY  (4),
+-		HADDR_1 (ccb_head.lastp),
+-		HADDR_1 (ccb_head.savep),
+-	/*
+-	 *  Jump to the SCRIPTS according to actual direction.
+-	 */
+-	SCR_COPY  (4),
+-		HADDR_1 (ccb_head.savep),
+-		RADDR_1 (temp),
+-	SCR_RETURN,
+-		0,
+-}/*-------------------------< DATA_IO_OUT >----------------------*/,{
+-	/*
+-	 *  Direction is DATA OUT.
+-	 */
+-	SCR_REG_REG (HF_REG, SCR_AND, (~HF_DATA_IN)),
+-		0,
+-	SCR_COPY  (4),
+-		HADDR_1 (ccb_head.wlastp),
+-		HADDR_1 (ccb_head.lastp),
+-	SCR_JUMP,
+-		PADDR_B(data_io_com),
+-#endif /* SYM_OPT_HANDLE_DIR_UNKNOWN */
+-
+ }/*-------------------------< 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
+@@ -191,13 +191,6 @@
+ 	u32 pm_wsr_handle	[ 38];
+ 	u32 wsr_ma_helper	[  4];
+ 
+-#ifdef SYM_OPT_HANDLE_DIR_UNKNOWN
+-	/* Unknown direction handling */
+-	u32 data_io		[  2];
+-	u32 data_io_in		[  2];
+-	u32 data_io_com		[  6];
+-	u32 data_io_out		[  8];
+-#endif
+ 	/* Data area */
+ 	u32 zero		[  1];
+ 	u32 scratch		[  1];
+@@ -1838,51 +1831,6 @@
+ 	SCR_JUMP,
+ 		PADDR_A (dispatch),
+ 
+-#ifdef SYM_OPT_HANDLE_DIR_UNKNOWN
+-}/*-------------------------< DATA_IO >--------------------------*/,{
+-	/*
+-	 *  We jump here if the data direction was unknown at the 
+-	 *  time we had to queue the command to the scripts processor.
+-	 *  Pointers had been set as follow in this situation:
+-	 *    savep   -->   DATA_IO
+-	 *    lastp   -->   start pointer when DATA_IN
+-	 *    wlastp  -->   start pointer when DATA_OUT
+-	 *  This script sets savep and lastp according to the 
+-	 *  direction chosen by the target.
+-	 */
+-	SCR_JUMP ^ IFTRUE (WHEN (SCR_DATA_OUT)),
+-		PADDR_B (data_io_out),
+-}/*-------------------------< DATA_IO_IN >-----------------------*/,{
+-	/*
+-	 *  Direction is DATA IN.
+-	 */
+-	SCR_LOAD_REL  (scratcha, 4),
+-		offsetof (struct sym_ccb, phys.head.lastp),
+-}/*-------------------------< DATA_IO_COM >----------------------*/,{
+-	SCR_STORE_REL (scratcha, 4),
+-		offsetof (struct sym_ccb, phys.head.savep),
+-
+-	/*
+-	 *  Jump to the SCRIPTS according to actual direction.
+-	 */
+-	SCR_LOAD_REL  (temp, 4),
+-		offsetof (struct sym_ccb, phys.head.savep),
+-	SCR_RETURN,
+-		0,
+-}/*-------------------------< DATA_IO_OUT >----------------------*/,{
+-	/*
+-	 *  Direction is DATA OUT.
+-	 */
+-	SCR_REG_REG (HF_REG, SCR_AND, (~HF_DATA_IN)),
+-		0,
+-	SCR_LOAD_REL  (scratcha, 4),
+-		offsetof (struct sym_ccb, phys.head.wlastp),
+-	SCR_STORE_REL (scratcha, 4),
+-		offsetof (struct sym_ccb, phys.head.lastp),
+-	SCR_JUMP,
+-		PADDR_B(data_io_com),
+-#endif /* SYM_OPT_HANDLE_DIR_UNKNOWN */
+-
+ }/*-------------------------< 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);
++	u32 lastp, goalp;
++	int dir;
+ 
  	/*
+ 	 *  Build the CDB.
+@@ -534,15 +535,47 @@
+ 			sym_set_cam_status(cmd, DID_ERROR);
+ 			goto out_abort;
+ 		}
++
++		/*
++		 *  No segments means no data.
++		 */
++		if (!cp->segments)
++			dir = DMA_NONE;
+ 	} else {
+ 		cp->data_len = 0;
+ 		cp->segments = 0;
+ 	}
+ 
+ 	/*
+-	 *  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));
++		sym_set_cam_status(cmd, DID_ERROR);
++		goto out_abort;
++	case DMA_TO_DEVICE:
++		goalp = SCRIPTA_BA(np, data_out2) + 8;
++		lastp = goalp - 8 - (cp->segments * (2*4));
++		break;
++	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:
++		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);
+ 
+ 	/*
+ 	 *  When `#ifed 1', the code below makes the driver 
+@@ -563,10 +596,7 @@
+ 	/*
  	 *	activate this job.
  	 */
 -	if (lp)
@@ -7567,7 +10798,7 @@
  	return 0;
  
  out_abort:
-@@ -981,15 +978,13 @@
+@@ -981,15 +1011,13 @@
  
  static int sym53c8xx_slave_alloc(struct scsi_device *sdev)
  {
@@ -7586,7 +10817,7 @@
  	/*
  	 * 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 +1000,10 @@
+@@ -1005,6 +1033,10 @@
  		return -ENXIO;
  	}
  
@@ -7597,7 +10828,7 @@
  	tp->starget = sdev->sdev_target;
  	return 0;
  }
-@@ -1012,22 +1011,14 @@
+@@ -1012,22 +1044,14 @@
  /*
   * Linux entry point for device queue sizing.
   */
@@ -7624,7 +10855,7 @@
  	 *  Get user flags.
  	 */
  	lp->curr_flags = lp->user_flags;
-@@ -1038,10 +1029,10 @@
+@@ -1038,10 +1062,10 @@
  	 *  Use at least 2.
  	 *  Donnot use more than our maximum.
  	 */
@@ -7637,7 +10868,7 @@
  		reqtags = 0;
  #if 1 /* Avoid to locally queue commands for no good reasons */
  	if (reqtags > SYM_CONF_MAX_TAG)
-@@ -1050,19 +1041,30 @@
+@@ -1050,19 +1074,30 @@
  #else
  	depth_to_use = (reqtags ? SYM_CONF_MAX_TAG : 2);
  #endif
@@ -7673,7 +10904,7 @@
  /*
   *  Linux entry point for info() function
   */
-@@ -1926,6 +1928,7 @@
+@@ -1926,6 +1961,7 @@
  	.queuecommand		= sym53c8xx_queue_command,
  	.slave_alloc		= sym53c8xx_slave_alloc,
  	.slave_configure	= sym53c8xx_slave_configure,
@@ -7681,19 +10912,27 @@
  	.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 -Nur linux-2.6.13.org/drivers/scsi/sym53c8xx_2/sym_glue.h linux-2.6.13/drivers/scsi/sym53c8xx_2/sym_glue.h
---- linux-2.6.13.org/drivers/scsi/sym53c8xx_2/sym_glue.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/scsi/sym53c8xx_2/sym_glue.h	2005-09-25 12:34:40.000000000 -0400
-@@ -268,6 +268,5 @@
+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 @@
+  */
+ #define	SYM_CONF_TIMER_INTERVAL		((HZ+1)/2)
+ 
+-#define SYM_OPT_HANDLE_DIR_UNKNOWN
+ #define 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);
  void sym_log_bus_error(struct sym_hcb *np);
 -void sym_sniff_inquiry(struct sym_hcb *np, struct scsi_cmnd *cmd, int resid);
  
  #endif /* SYM_GLUE_H */
-diff -Nur linux-2.6.13.org/drivers/scsi/sym53c8xx_2/sym_hipd.c linux-2.6.13/drivers/scsi/sym53c8xx_2/sym_hipd.c
---- linux-2.6.13.org/drivers/scsi/sym53c8xx_2/sym_hipd.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/scsi/sym53c8xx_2/sym_hipd.c	2005-09-25 12:34:40.000000000 -0400
+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 @@
  /*
   *  Insert a job into the start queue.
@@ -7703,6 +10942,33 @@
  {
  	u_short	qidx;
  
+@@ -3650,7 +3650,7 @@
+ 	 *  If result is dp_sg = SYM_CONF_MAX_SG, then we are at the 
+ 	 *  end of the data.
+ 	 */
+-	tmp = scr_to_cpu(sym_goalp(cp));
++	tmp = scr_to_cpu(cp->goalp);
+ 	dp_sg = SYM_CONF_MAX_SG;
+ 	if (dp_scr != tmp)
+ 		dp_sg -= (tmp - 8 - (int)dp_scr) / (2*4);
+@@ -3757,7 +3757,7 @@
+ 	 *  And our alchemy:) allows to easily calculate the data 
+ 	 *  script address we want to return for the next data phase.
+ 	 */
+-	dp_ret = cpu_to_scr(sym_goalp(cp));
++	dp_ret = cpu_to_scr(cp->goalp);
+ 	dp_ret = dp_ret - 8 - (SYM_CONF_MAX_SG - dp_sg) * (2*4);
+ 
+ 	/*
+@@ -3853,7 +3853,7 @@
+ 	 *  If all data has been transferred,
+ 	 *  there is no residual.
+ 	 */
+-	if (cp->phys.head.lastp == sym_goalp(cp))
++	if (cp->phys.head.lastp == cp->goalp)
+ 		return resid;
+ 
+ 	/*
 @@ -4660,30 +4660,7 @@
  		goto out;
  	cp = sym_que_entry(qp, struct sym_ccb, link_ccbq);
@@ -7808,7 +11074,7 @@
  #endif
  }
  
-@@ -5517,12 +5462,6 @@
+@@ -5517,17 +5462,11 @@
  	lp = sym_lp(tp, cp->lun);
  
  	/*
@@ -7821,6 +11087,12 @@
  	 *  If all data have been transferred, given than no
  	 *  extended error did occur, there is no residual.
  	 */
+ 	resid = 0;
+-	if (cp->phys.head.lastp != sym_goalp(cp))
++	if (cp->phys.head.lastp != cp->goalp)
+ 		resid = sym_compute_residual(np, cp);
+ 
+ 	/*
 @@ -5547,15 +5486,6 @@
  	 */
  	sym_set_cam_result_ok(cp, cmd, resid);
@@ -7873,10 +11145,31 @@
  #if SYM_CONF_MAX_LUN > 1
  		kfree(tp->lunmp);
  #endif 
-diff -Nur linux-2.6.13.org/drivers/scsi/sym53c8xx_2/sym_hipd.h linux-2.6.13/drivers/scsi/sym53c8xx_2/sym_hipd.h
---- linux-2.6.13.org/drivers/scsi/sym53c8xx_2/sym_hipd.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/scsi/sym53c8xx_2/sym_hipd.h	2005-09-25 12:34:40.000000000 -0400
-@@ -414,19 +414,6 @@
+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 @@
+  *  They may be defined in platform specific headers, if they 
+  *  are useful.
+  *
+- *    SYM_OPT_HANDLE_DIR_UNKNOWN
+- *        When this option is set, the SCRIPTS used by the driver 
+- *        are able to handle SCSI transfers with direction not 
+- *        supplied by user.
+- *        (set for Linux-2.0.X)
+- *
+  *    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 @@
+  *        (set for Linux)
+  */
+ #if 0
+-#define SYM_OPT_HANDLE_DIR_UNKNOWN
+ #define SYM_OPT_HANDLE_DEVICE_QUEUEING
+ #define SYM_OPT_LIMIT_COMMAND_REORDERING
+ #endif
+@@ -414,19 +407,6 @@
  	struct sym_lcb **lunmp;		/* Other LCBs [1..MAX_LUN]	*/
  #endif
  
@@ -7896,7 +11189,40 @@
  #ifdef	SYM_HAVE_STCB
  	/*
  	 *  O/S specific data structure.
-@@ -1075,7 +1062,6 @@
+@@ -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;
+-#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;
+-#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)
+-#else
+-#define	sym_goalp(cp) (cp->goalp)
+-#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);
@@ -7904,9 +11230,96 @@
  #ifdef SYM_OPT_HANDLE_DEVICE_QUEUEING
  void sym_start_next_ccbs(struct sym_hcb *np, struct sym_lcb *lp, int maxn);
  #endif
-diff -Nur linux-2.6.13.org/drivers/scsi/zalon.c linux-2.6.13/drivers/scsi/zalon.c
---- linux-2.6.13.org/drivers/scsi/zalon.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/scsi/zalon.c	2005-09-25 12:34:40.000000000 -0400
+@@ -1134,71 +1101,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_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>
+-#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_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;
@@ -7925,9 +11338,9 @@
  	device.slot.base_v	= io_port;
  	device.slot.irq		= dev->irq;
  	device.differential	= 2;
-diff -Nur linux-2.6.13.org/drivers/serial/8250_gsc.c linux-2.6.13/drivers/serial/8250_gsc.c
---- linux-2.6.13.org/drivers/serial/8250_gsc.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/serial/8250_gsc.c	2005-09-25 12:34:40.000000000 -0400
+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)
@@ -7952,9 +11365,9 @@
  	if (dev->id.sversion != 0x8d) {
  		address += 0x800;
  	}
-diff -Nur linux-2.6.13.org/drivers/serial/mux.c linux-2.6.13/drivers/serial/mux.c
---- linux-2.6.13.org/drivers/serial/mux.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/serial/mux.c	2005-09-25 12:34:40.000000000 -0400
+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>
@@ -7963,7 +11376,7 @@
  #include <asm/parisc-device.h>
  
  #ifdef CONFIG_MAGIC_SYSRQ
-@@ -446,7 +447,7 @@
+@@ -444,7 +445,7 @@
  	unsigned long bytecnt;
  	struct uart_port *port;
  
@@ -7972,7 +11385,7 @@
  	if(status != PDC_OK) {
  		printk(KERN_ERR "Serial mux: Unable to read IODC.\n");
  		return 1;
-@@ -471,16 +472,18 @@
+@@ -469,16 +470,18 @@
  	for(i = 0; i < ports; ++i, ++port_cnt) {
  		port = &mux_ports[port_cnt];
  		port->iobase	= 0;
@@ -7993,7 +11406,7 @@
  		status = uart_add_one_port(&mux_driver, port);
  		BUG_ON(status);
  	}
-@@ -499,7 +502,7 @@
+@@ -497,7 +500,7 @@
  MODULE_DEVICE_TABLE(parisc, mux_tbl);
  
  static struct parisc_driver serial_mux_driver = {
@@ -8002,29 +11415,41 @@
  	.id_table =	mux_tbl,
  	.probe =	mux_probe,
  };
-diff -Nur linux-2.6.13.org/drivers/serial/serial_core.c linux-2.6.13/drivers/serial/serial_core.c
---- linux-2.6.13.org/drivers/serial/serial_core.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/serial/serial_core.c	2005-09-25 12:34:40.000000000 -0400
-@@ -1961,7 +1961,14 @@
- 		printk("MMIO 0x%lx", port->mapbase);
+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 @@
+ uart_report_port(struct uart_driver *drv, struct uart_port *port)
+ {
+ 	char address[64];
++	char irq[16];
+ 
+ 	switch (port->iotype) {
+ 	case UPIO_PORT:
+@@ -1968,8 +1969,17 @@
  		break;
  	}
--	printk(" (irq = %d) is a %s\n", port->irq, uart_type(port));
+ 
+-	printk(KERN_INFO "%s%d at %s (irq = %d) is a %s\n",
+-	       drv->dev_name, port->line, address, port->irq, uart_type(port));
 +#ifndef NO_IRQ
 +#define NO_IRQ (-1)
 +#endif
 +	if (port->irq == NO_IRQ) {
-+		printk(" (polled) is a %s\n", uart_type(port));
++		strlcpy(irq, "polled", sizeof(irq));
 +	} else {
-+		printk(" (irq = %d) is a %s\n", port->irq, uart_type(port));
++		snprintf(irq, sizeof(irq), "irq = %d", port->irq);
 +	}
++
++	printk(KERN_INFO "%s%d at %s (%s) is a %s\n",
++	       drv->dev_name, port->line, address, irq, uart_type(port));
  }
  
  static void
-diff -Nur linux-2.6.13.org/drivers/usb/input/hid-core.c linux-2.6.13/drivers/usb/input/hid-core.c
---- linux-2.6.13.org/drivers/usb/input/hid-core.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/usb/input/hid-core.c	2005-09-25 12:34:40.000000000 -0400
-@@ -759,21 +759,31 @@
+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
+@@ -760,21 +760,31 @@
  }
  
  /*
@@ -8063,9 +11488,9 @@
  }
  
  /*
-diff -Nur linux-2.6.13.org/drivers/video/console/Kconfig linux-2.6.13/drivers/video/console/Kconfig
---- linux-2.6.13.org/drivers/video/console/Kconfig	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/video/console/Kconfig	2005-09-25 12:34:40.000000000 -0400
+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
@@ -8088,8 +11513,8 @@
  
  config FONT_8x16
  	bool "VGA 8x16 font" if FONTS
--	depends on FRAMEBUFFER_CONSOLE || SGI_NEWPORT_CONSOLE=y
-+	depends on FRAMEBUFFER_CONSOLE || SGI_NEWPORT_CONSOLE=y || STI_CONSOLE
+-	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
@@ -8102,9 +11527,9 @@
  	default y if !SPARC32 && !SPARC64 && !FONTS && MAC
  	help
  	  Small console font with Macintosh-style high-half glyphs.  Some Mac
-diff -Nur linux-2.6.13.org/drivers/video/console/sticore.c linux-2.6.13/drivers/video/console/sticore.c
---- linux-2.6.13.org/drivers/video/console/sticore.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/drivers/video/console/sticore.c	2005-09-25 12:34:40.000000000 -0400
+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;
  	
@@ -8343,9 +11768,9 @@
  	return 0;
  }
  
-diff -Nur linux-2.6.13.org/fs/ioctl.c linux-2.6.13/fs/ioctl.c
---- linux-2.6.13.org/fs/ioctl.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/fs/ioctl.c	2005-09-25 12:34:40.000000000 -0400
+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);
@@ -8359,9 +11784,9 @@
  	}
  
  	return do_ioctl(filp, cmd, arg);
-diff -Nur linux-2.6.13.org/include/asm-generic/compat_signal.h linux-2.6.13/include/asm-generic/compat_signal.h
---- linux-2.6.13.org/include/asm-generic/compat_signal.h	1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.13/include/asm-generic/compat_signal.h	2005-09-25 12:34:40.000000000 -0400
+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
 @@ -0,0 +1,25 @@
 +#ifndef _ASM_GENERIC_COMPAT_SIGNAL_H
 +#define _ASM_GENERIC_COMPAT_SIGNAL_H
@@ -8388,51 +11813,58 @@
 +
 +#endif /* !__ASSEMBLY__ */
 +#endif /* !_ASM_GENERIC_COMPAT_SIGNAL_H */
-diff -Nur linux-2.6.13.org/include/asm-ia64/compat.h linux-2.6.13/include/asm-ia64/compat.h
---- linux-2.6.13.org/include/asm-ia64/compat.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/include/asm-ia64/compat.h	2005-09-25 12:34:40.000000000 -0400
+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
 @@ -15,6 +15,9 @@
  typedef s32		compat_pid_t;
- typedef u16		compat_uid_t;
- typedef u16		compat_gid_t;
+ typedef u16		__compat_uid_t;
+ typedef u16		__compat_gid_t;
 +/* Define for use in compat_siginfo_t */
 +#undef __ARCH_SI_COMPAT_UID_T
-+#define __ARCH_SI_COMPAT_UID_T	compat_uid32_t
- typedef u32		compat_uid32_t;
- typedef u32		compat_gid32_t;
++#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 -Nur linux-2.6.13.org/include/asm-parisc/assembly.h linux-2.6.13/include/asm-parisc/assembly.h
---- linux-2.6.13.org/include/asm-parisc/assembly.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/include/asm-parisc/assembly.h	2005-09-25 12:34:40.000000000 -0400
-@@ -21,6 +21,7 @@
+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 __LP64__
++
++#ifdef CONFIG_64BIT
  #define LDREG	ldd
  #define STREG	std
-@@ -30,7 +31,7 @@
+ #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
++#else	/* CONFIG_64BIT */
  #define LDREG	ldw
  #define STREG	stw
-@@ -40,8 +41,9 @@
+ #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
-@@ -300,9 +302,35 @@
+ # ifdef CONFIG_64BIT
+@@ -300,9 +304,35 @@
  	fldd,mb	-8(\regs),       %fr0
  	.endm
  
@@ -8469,7 +11901,7 @@
  	mfctl	  %cr27, %r3
  	std	  %r4,	-136(%r30)
  	std	  %r5,	-128(%r30)
-@@ -340,13 +368,13 @@
+@@ -340,13 +370,13 @@
  	ldd	-128(%r30),    %r5
  	ldd	-136(%r30),    %r4
  	mtctl	%r3, %cr27
@@ -8485,7 +11917,7 @@
  	mfctl	 %cr27, %r3
  	stw	 %r4,	-124(%r30)
  	stw	 %r5,	-120(%r30)
-@@ -384,7 +412,7 @@
+@@ -384,7 +414,7 @@
  	ldw	-120(%r30),   %r5
  	ldw	-124(%r30),   %r4
  	mtctl	%r3, %cr27
@@ -8494,7 +11926,7 @@
  	.endm
  #endif /* ! __LP64__ */
  
-@@ -450,5 +478,30 @@
+@@ -450,5 +480,30 @@
  	REST_CR	(%cr22, PT_PSW	(\regs))
  	.endm
  
@@ -8525,18 +11957,19 @@
 +
  #endif /* __ASSEMBLY__ */
  #endif
-diff -Nur linux-2.6.13.org/include/asm-parisc/bitops.h linux-2.6.13/include/asm-parisc/bitops.h
---- linux-2.6.13.org/include/asm-parisc/bitops.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/include/asm-parisc/bitops.h	2005-09-25 12:34:40.000000000 -0400
-@@ -2,6 +2,7 @@
+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/system.h>
  #include <asm/byteorder.h>
  #include <asm/atomic.h>
-@@ -12,193 +13,157 @@
+ 
+@@ -12,193 +12,157 @@
   * to include/asm-i386/bitops.h or kerneldoc
   */
  
@@ -8791,7 +12224,7 @@
  	
  	return !!(*addr & mask);
  }
-@@ -229,7 +194,7 @@
+@@ -229,7 +193,7 @@
  	unsigned long ret;
  
  	__asm__(
@@ -8800,7 +12233,7 @@
  		" ldi       63,%1\n"
  		" extrd,u,*<>  %0,63,32,%%r0\n"
  		" extrd,u,*TR  %0,31,32,%0\n"	/* move top 32-bits down */
-@@ -304,14 +269,7 @@
+@@ -304,14 +268,7 @@
   * hweightN: returns the hamming weight (i.e. the number
   * of bits set) of a N-bit word
   */
@@ -8816,7 +12249,7 @@
  #define hweight32(x) generic_hweight32(x)
  #define hweight16(x) generic_hweight16(x)
  #define hweight8(x) generic_hweight8(x)
-@@ -324,7 +282,13 @@
+@@ -324,7 +281,13 @@
   */
  static inline int sched_find_first_bit(const unsigned long *b)
  {
@@ -8831,7 +12264,7 @@
  	if (unlikely(b[0]))
  		return __ffs(b[0]);
  	if (unlikely(b[1]))
-@@ -334,14 +298,6 @@
+@@ -334,14 +297,6 @@
  	if (b[3])
  		return __ffs(b[3]) + 96;
  	return __ffs(b[4]) + 128;
@@ -8846,7 +12279,7 @@
  #endif
  }
  
-@@ -391,7 +347,7 @@
+@@ -391,7 +346,7 @@
  
  static __inline__ unsigned long find_next_bit(const unsigned long *addr, unsigned long size, unsigned long offset)
  {
@@ -8855,7 +12288,7 @@
  	unsigned long result = offset & ~(BITS_PER_LONG-1);
  	unsigned long tmp;
  
-@@ -445,71 +401,90 @@
+@@ -445,71 +400,90 @@
   * test_and_{set,clear}_bit guarantee atomicity without
   * disabling interrupts.
   */
@@ -8987,9 +12420,9 @@
  /* 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 -Nur linux-2.6.13.org/include/asm-parisc/errno.h linux-2.6.13/include/asm-parisc/errno.h
---- linux-2.6.13.org/include/asm-parisc/errno.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/include/asm-parisc/errno.h	2005-09-25 12:34:40.000000000 -0400
+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) */
@@ -8998,9 +12431,9 @@
  
  /* for robust mutexes */
  #define EOWNERDEAD	254	/* Owner died */
-diff -Nur linux-2.6.13.org/include/asm-parisc/grfioctl.h linux-2.6.13/include/asm-parisc/grfioctl.h
---- linux-2.6.13.org/include/asm-parisc/grfioctl.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/include/asm-parisc/grfioctl.h	2005-09-25 12:34:40.000000000 -0400
+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 */
@@ -9010,9 +12443,33 @@
  
  /* structure for ioctl(GCDESCRIBE) */
  
-diff -Nur linux-2.6.13.org/include/asm-parisc/led.h linux-2.6.13/include/asm-parisc/led.h
---- linux-2.6.13.org/include/asm-parisc/led.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/include/asm-parisc/led.h	2005-09-25 12:34:40.000000000 -0400
+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 */
@@ -9023,9 +12480,9 @@
  /* register_led_driver() */
  int __init register_led_driver(int model, unsigned long cmd_reg, unsigned long data_reg);
  
-diff -Nur linux-2.6.13.org/include/asm-parisc/parisc-device.h linux-2.6.13/include/asm-parisc/parisc-device.h
---- linux-2.6.13.org/include/asm-parisc/parisc-device.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/include/asm-parisc/parisc-device.h	2005-09-25 12:34:40.000000000 -0400
+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>
  
@@ -9047,10 +12504,22 @@
  static inline void
  parisc_set_drvdata(struct parisc_device *d, void *p)
  {
-diff -Nur linux-2.6.13.org/include/asm-parisc/pgtable.h linux-2.6.13/include/asm-parisc/pgtable.h
---- linux-2.6.13.org/include/asm-parisc/pgtable.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/include/asm-parisc/pgtable.h	2005-09-25 12:34:40.000000000 -0400
-@@ -504,6 +504,8 @@
+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)
  
@@ -9059,10 +12528,10 @@
  #define MK_IOSPACE_PFN(space, pfn)	(pfn)
  #define GET_IOSPACE(pfn)		0
  #define GET_PFN(pfn)			(pfn)
-diff -Nur linux-2.6.13.org/include/asm-parisc/processor.h linux-2.6.13/include/asm-parisc/processor.h
---- linux-2.6.13.org/include/asm-parisc/processor.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/include/asm-parisc/processor.h	2005-09-25 12:34:40.000000000 -0400
-@@ -121,8 +121,27 @@
+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. */
@@ -9090,9 +12559,9 @@
  #define INIT_THREAD { \
  	regs:	{	gr: { 0, }, \
  			fr: { 0, }, \
-diff -Nur linux-2.6.13.org/include/asm-parisc/psw.h linux-2.6.13/include/asm-parisc/psw.h
---- linux-2.6.13.org/include/asm-parisc/psw.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/include/asm-parisc/psw.h	2005-09-25 12:34:40.000000000 -0400
+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
 +
@@ -9165,9 +12634,9 @@
 +#define USER_PSW      (PSW_C | PSW_Q | PSW_P | PSW_D | PSW_I)
 +
  #endif
-diff -Nur linux-2.6.13.org/include/asm-parisc/ptrace.h linux-2.6.13/include/asm-parisc/ptrace.h
---- linux-2.6.13.org/include/asm-parisc/ptrace.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/include/asm-parisc/ptrace.h	2005-09-25 12:34:40.000000000 -0400
+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)
@@ -9177,81 +12646,124 @@
  extern void show_regs(struct pt_regs *);
  #endif
  
-diff -Nur linux-2.6.13.org/include/asm-parisc/spinlock.h linux-2.6.13/include/asm-parisc/spinlock.h
---- linux-2.6.13.org/include/asm-parisc/spinlock.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/include/asm-parisc/spinlock.h	2005-09-25 12:34:40.000000000 -0400
-@@ -8,9 +8,15 @@
-  * the semaphore address has to be 16-byte aligned.
-  */
+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)
  
-+#ifdef CONFIG_PA20
-+#define __SPIN_FIELD_UNLOCKED	1
-+#else
-+#define __SPIN_FIELD_UNLOCKED	{ 1, 1, 1, 1 }
+ 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
-+
- #ifndef CONFIG_DEBUG_SPINLOCK
  
--#define __SPIN_LOCK_UNLOCKED	{ { 1, 1, 1, 1 } }
-+#define __SPIN_LOCK_UNLOCKED    { .lock = __SPIN_FIELD_UNLOCKED, }
- #undef SPIN_LOCK_UNLOCKED
- #define SPIN_LOCK_UNLOCKED (spinlock_t) __SPIN_LOCK_UNLOCKED
+ #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>
  
-@@ -64,7 +70,15 @@
+-/* 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 SPINLOCK_MAGIC	0x1D244B3C
+-#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))
  
--#define __SPIN_LOCK_UNLOCKED	{ { 1, 1, 1, 1 }, SPINLOCK_MAGIC, 10, __FILE__ , NULL, 0, -1, NULL, NULL }
-+#define __SPIN_LOCK_UNLOCKED	{ .lock = __SPIN_FIELD_UNLOCKED, 	\
-+				  .magic = SPINLOCK_MAGIC, 		\
-+				  .babble = 10, 			\
-+				  .module = __FILE__, 			\
-+				  .bfile = NULL, 			\
-+				  .bline = 0, 				\
-+				  .oncpu = -1, 				\
-+				  .previous = NULL, 			\
-+				  .task = NULL }
- #undef SPIN_LOCK_UNLOCKED
- #define SPIN_LOCK_UNLOCKED (spinlock_t) __SPIN_LOCK_UNLOCKED
+-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;
  
-@@ -72,7 +86,7 @@
+ 	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();
+ }
  
- #define CHECK_LOCK(x)							\
- 	do {								\
--	 	if (unlikely((x)->magic != SPINLOCK_MAGIC)) {			\
-+	 	if (unlikely((x)->magic != SPINLOCK_MAGIC)) {		\
- 			printk(KERN_ERR "%s:%d: spin_is_locked"		\
- 			" on uninitialized spinlock %p.\n",		\
- 				__FILE__, __LINE__, (x)); 		\
-@@ -81,9 +95,10 @@
+@@ -65,26 +67,20 @@
  
- #define spin_is_locked(x)						\
- 	({								\
-+		volatile unsigned int *a;				\
- 	 	CHECK_LOCK(x);						\
--		volatile unsigned int *a = __ldcw_align(x);		\
--		if (unlikely((*a == 0) && (x)->babble)) {				\
-+		a = __ldcw_align(x);					\
-+		if (unlikely((*a == 0) && (x)->babble)) {		\
- 			(x)->babble--;					\
- 			printk("KERN_WARNING				\
- 				%s:%d: spin_is_locked(%s/%p) already"	\
-@@ -97,9 +112,10 @@
+ static  __inline__ void __raw_read_lock(raw_rwlock_t *rw)
+ {
+-	unsigned long flags;
+-	local_irq_save(flags);
+ 	__raw_spin_lock(&rw->lock);
  
- #define spin_unlock_wait(x)						\
- 	do {								\
-+		volatile unsigned int *a;				\
- 	 	CHECK_LOCK(x);						\
--		volatile unsigned int *a = __ldcw_align(x);		\
--		if (unlikely((*a == 0) && (x)->babble)) {				\
-+		a = __ldcw_align(x);					\
-+		if (unlikely((*a == 0) && (x)->babble)) {		\
- 			(x)->babble--;					\
- 			printk("KERN_WARNING				\
- 				%s:%d: spin_unlock_wait(%s/%p)"		\
-diff -Nur linux-2.6.13.org/include/asm-parisc/system.h linux-2.6.13/include/asm-parisc/system.h
---- linux-2.6.13.org/include/asm-parisc/system.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/include/asm-parisc/system.h	2005-09-25 12:34:40.000000000 -0400
+ 	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)
  
@@ -9267,7 +12779,7 @@
  /* Because kmalloc only guarantees 8-byte alignment for kmalloc'd data,
     and GCC only guarantees 8-byte alignment for stack locals, we can't
     be assured of 16-byte alignment for atomic lock data even if we
-@@ -152,12 +146,35 @@
+@@ -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.  */
@@ -9279,7 +12791,10 @@
    (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
@@ -9291,36 +12806,10 @@
 +#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*/
-+
-+/* LDCW, the only atomic read-write operation PA-RISC has. *sigh*.  */
-+#define __ldcw(a) ({ \
-+	unsigned __ret; \
-+	__asm__ __volatile__(LDCW " 0(%1),%0" : "=r" (__ret) : "r" (a)); \
-+	__ret; \
-+})
  
- #ifdef CONFIG_SMP
- /*
-@@ -165,7 +182,11 @@
-  */
- 
- typedef struct {
--	volatile unsigned int lock[4];
-+#ifdef CONFIG_PA20
-+	volatile unsigned int lock;
-+#else
-+        volatile unsigned int lock[4];
-+#endif
- #ifdef CONFIG_DEBUG_SPINLOCK
- 	unsigned long magic;
- 	volatile unsigned int babble;
-@@ -186,25 +207,6 @@
- #endif
- 
- #define KERNEL_START (0x10100000 - 0x1000)
--
 -/* This is for the serialisation of PxTLB broadcasts.  At least on the
 - * N class systems, only one PxTLB inter processor broadcast can be
 - * active at any one time on the Merced bus.  This tlb purge
@@ -9336,15 +12825,24 @@
 -
 -#define purge_tlb_start(x) do { } while(0)
 -#define purge_tlb_end(x) do { } while (0)
--
--#endif
--
++/* 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
+ 
++#define KERNEL_START (0x10100000 - 0x1000)
  #define arch_align_stack(x) (x)
  
  #endif
-diff -Nur linux-2.6.13.org/include/asm-parisc/tlbflush.h linux-2.6.13/include/asm-parisc/tlbflush.h
---- linux-2.6.13.org/include/asm-parisc/tlbflush.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/include/asm-parisc/tlbflush.h	2005-09-25 12:34:40.000000000 -0400
+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>
@@ -9405,9 +12903,9 @@
  	}
  }
  
-diff -Nur linux-2.6.13.org/include/asm-parisc/types.h linux-2.6.13/include/asm-parisc/types.h
---- linux-2.6.13.org/include/asm-parisc/types.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/include/asm-parisc/types.h	2005-09-25 12:34:40.000000000 -0400
+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__
@@ -9419,9 +12917,9 @@
  #endif
  
  #ifndef __ASSEMBLY__
-diff -Nur linux-2.6.13.org/include/asm-parisc/unistd.h linux-2.6.13/include/asm-parisc/unistd.h
---- linux-2.6.13.org/include/asm-parisc/unistd.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/include/asm-parisc/unistd.h	2005-09-25 12:34:40.000000000 -0400
+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)
@@ -9433,7 +12931,7 @@
  
  #define __NR_lstat64            (__NR_Linux + 198)
  #define __NR_truncate64         (__NR_Linux + 199)
-@@ -755,8 +755,12 @@
+@@ -755,8 +755,14 @@
  #define __NR_mbind		(__NR_Linux + 260)
  #define __NR_get_mempolicy	(__NR_Linux + 261)
  #define __NR_set_mempolicy	(__NR_Linux + 262)
@@ -9441,13 +12939,15 @@
 +#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     267
++#define __NR_Linux_syscalls     269
  
  #define HPUX_GATEWAY_ADDR       0xC0000004
  #define LINUX_GATEWAY_ADDR      0x100
-@@ -807,10 +811,10 @@
+@@ -807,10 +813,10 @@
  #define K_INLINE_SYSCALL(name, nr, args...)	({			\
  	long __sys_res;							\
  	{								\
@@ -9460,35 +12960,35 @@
  			K_STW_ASM_PIC					\
  			"	ble  0x100(%%sr2, %%r0)\n"		\
  			"	ldi %1, %%r20\n"			\
-diff -Nur linux-2.6.13.org/include/asm-s390/compat.h linux-2.6.13/include/asm-s390/compat.h
---- linux-2.6.13.org/include/asm-s390/compat.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/include/asm-s390/compat.h	2005-09-25 12:34:40.000000000 -0400
+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
 @@ -15,6 +15,9 @@
  typedef s32		compat_pid_t;
- typedef u16		compat_uid_t;
- typedef u16		compat_gid_t;
+ typedef u16		__compat_uid_t;
+ typedef u16		__compat_gid_t;
 +/* Define for use in compat_siginfo_t */
 +#undef __ARCH_SI_COMPAT_UID_T
-+#define __ARCH_SI_COMPAT_UID_T compat_uid32_t
- typedef u32		compat_uid32_t;
- typedef u32		compat_gid32_t;
++#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 -Nur linux-2.6.13.org/include/asm-sparc64/compat.h linux-2.6.13/include/asm-sparc64/compat.h
---- linux-2.6.13.org/include/asm-sparc64/compat.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/include/asm-sparc64/compat.h	2005-09-25 12:34:40.000000000 -0400
-@@ -12,6 +12,9 @@
- typedef s32		compat_time_t;
- typedef s32		compat_clock_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
+@@ -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 */
 +#undef __ARCH_SI_COMPAT_UID_T
 +#define __ARCH_SI_COMPAT_UID_T compat_uint_t
- typedef u16		compat_uid_t;
- typedef u16		compat_gid_t;
+ typedef u32		__compat_uid32_t;
+ typedef u32		__compat_gid32_t;
  typedef u16		compat_mode_t;
-diff -Nur linux-2.6.13.org/include/linux/compat.h linux-2.6.13/include/linux/compat.h
---- linux-2.6.13.org/include/linux/compat.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/include/linux/compat.h	2005-09-25 12:34:40.000000000 -0400
+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
 @@ -6,10 +6,16 @@
   */
  #include <linux/config.h>
@@ -9515,11 +13015,11 @@
 +#ifndef HAVE_ARCH_IS_COMPAT_TASK
 +#define is_compat_task(x) (personality(x->personality) == PER_LINUX32)
 +#endif
-+	
- struct rusage;
++
+ typedef __compat_uid32_t	compat_uid_t;
+ typedef __compat_gid32_t	compat_gid_t;
  
- struct compat_itimerspec { 
-@@ -96,28 +107,6 @@
+@@ -99,28 +110,6 @@
  	char		d_name[256];
  };
  
@@ -9548,7 +13048,7 @@
  
  long compat_sys_semctl(int first, int second, int third, void __user *uptr);
  long compat_sys_msgsnd(int first, int second, int third, void __user *uptr);
-@@ -153,10 +142,6 @@
+@@ -156,10 +145,6 @@
  		       unsigned long bitmap_size);
  long compat_put_bitmap(compat_ulong_t __user *umask, unsigned long *mask,
  		       unsigned long bitmap_size);
@@ -9559,9 +13059,9 @@
  
  #endif /* CONFIG_COMPAT */
  #endif /* _LINUX_COMPAT_H */
-diff -Nur linux-2.6.13.org/include/linux/compat_siginfo.h linux-2.6.13/include/linux/compat_siginfo.h
---- linux-2.6.13.org/include/linux/compat_siginfo.h	1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.13/include/linux/compat_siginfo.h	2005-09-25 12:34:40.000000000 -0400
+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
 @@ -0,0 +1,182 @@
 +#ifndef _ASM_GENERIC_COMPAT_SIGINFO_H
 +#define _ASM_GENERIC_COMPAT_SIGINFO_H
@@ -9745,9 +13245,9 @@
 +#endif /* CONFIG_COMPAT */
 +#endif /* _ASM_GENERIC_COMPAT_SIGINFO_H */
 +
-diff -Nur linux-2.6.13.org/include/linux/hil.h linux-2.6.13/include/linux/hil.h
---- linux-2.6.13.org/include/linux/hil.h	1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.13/include/linux/hil.h	2005-09-25 12:34:40.000000000 -0400
+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_
@@ -10232,9 +13732,9 @@
 +
 +
 +#endif /* _HIL_H_ */
-diff -Nur linux-2.6.13.org/include/linux/hil_mlc.h linux-2.6.13/include/linux/hil_mlc.h
---- linux-2.6.13.org/include/linux/hil_mlc.h	1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.13/include/linux/hil_mlc.h	2005-09-25 12:34:40.000000000 -0400
+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.
@@ -10404,9 +13904,9 @@
 +
 +int hil_mlc_register(hil_mlc *mlc);
 +int hil_mlc_unregister(hil_mlc *mlc);
-diff -Nur linux-2.6.13.org/include/linux/hp_sdc.h linux-2.6.13/include/linux/hp_sdc.h
---- linux-2.6.13.org/include/linux/hp_sdc.h	1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.13/include/linux/hp_sdc.h	2005-09-25 12:34:40.000000000 -0400
+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
@@ -10708,10 +14208,10 @@
 +} hp_i8042_sdc;
 +
 +#endif /* _LINUX_HP_SDC_H */
-diff -Nur linux-2.6.13.org/include/linux/input.h linux-2.6.13/include/linux/input.h
---- linux-2.6.13.org/include/linux/input.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/include/linux/input.h	2005-09-25 12:34:40.000000000 -0400
-@@ -620,6 +620,7 @@
+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
@@ -10719,9 +14219,9 @@
  
  /*
   * Values describing the status of an effect
-diff -Nur linux-2.6.13.org/include/linux/serio.h linux-2.6.13/include/linux/serio.h
---- linux-2.6.13.org/include/linux/serio.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/include/linux/serio.h	2005-09-25 12:34:40.000000000 -0400
+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
  
@@ -10731,9 +14231,9 @@
   */
  #define SERIO_UNKNOWN	0x00
  #define SERIO_MSC	0x01
-diff -Nur linux-2.6.13.org/include/linux/signal.h linux-2.6.13/include/linux/signal.h
---- linux-2.6.13.org/include/linux/signal.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/include/linux/signal.h	2005-09-25 12:34:40.000000000 -0400
+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 @@
  struct pt_regs;
  extern int get_signal_to_deliver(siginfo_t *info, struct k_sigaction *return_ka, struct pt_regs *regs, void *cookie);
@@ -10744,10 +14244,10 @@
  #endif /* __KERNEL__ */
  
  #endif /* _LINUX_SIGNAL_H */
-diff -Nur linux-2.6.13.org/include/sound/opl3.h linux-2.6.13/include/sound/opl3.h
---- linux-2.6.13.org/include/sound/opl3.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/include/sound/opl3.h	2005-09-25 12:34:40.000000000 -0400
-@@ -261,8 +261,8 @@
+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
+@@ -261,10 +261,11 @@
  } snd_opl3_voice_t;
  
  struct snd_opl3 {
@@ -10757,8 +14257,11 @@
 +	void __iomem *r_port;
  	struct resource *res_l_port;
  	struct resource *res_r_port;
++	int unmap_on_free;
  	unsigned short hardware;
-@@ -319,6 +319,9 @@
+ 	/* hardware access */
+ 	void (*command) (opl3_t * opl3, unsigned short cmd, unsigned char val);
+@@ -319,6 +320,9 @@
  void snd_opl3_interrupt(snd_hwdep_t * hw);
  int snd_opl3_new(snd_card_t *card, unsigned short hardware, opl3_t **ropl3);
  int snd_opl3_init(opl3_t *opl3);
@@ -10768,9 +14271,9 @@
  int snd_opl3_create(snd_card_t * card,
  		    unsigned long l_port, unsigned long r_port,
  		    unsigned short hardware,
-diff -Nur linux-2.6.13.org/ipc/compat_mq.c linux-2.6.13/ipc/compat_mq.c
---- linux-2.6.13.org/ipc/compat_mq.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/ipc/compat_mq.c	2005-09-25 12:34:40.000000000 -0400
+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
 @@ -7,6 +7,7 @@
   */
  
@@ -10779,10 +14282,10 @@
  #include <linux/fs.h>
  #include <linux/kernel.h>
  #include <linux/mqueue.h>
-diff -Nur linux-2.6.13.org/kernel/Makefile linux-2.6.13/kernel/Makefile
---- linux-2.6.13.org/kernel/Makefile	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/kernel/Makefile	2005-09-25 12:34:40.000000000 -0400
-@@ -18,7 +18,7 @@
+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
+@@ -19,7 +19,7 @@
  obj-$(CONFIG_PM) += power/
  obj-$(CONFIG_BSD_PROCESS_ACCT) += acct.o
  obj-$(CONFIG_KEXEC) += kexec.o
@@ -10791,9 +14294,9 @@
  obj-$(CONFIG_CPUSETS) += cpuset.o
  obj-$(CONFIG_IKCONFIG) += configs.o
  obj-$(CONFIG_IKCONFIG_PROC) += configs.o
-diff -Nur linux-2.6.13.org/kernel/compat.c linux-2.6.13/kernel/compat.c
---- linux-2.6.13.org/kernel/compat.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/kernel/compat.c	2005-09-25 12:34:40.000000000 -0400
+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
 @@ -13,6 +13,7 @@
  
  #include <linux/linkage.h>
@@ -10802,7 +14305,7 @@
  #include <linux/errno.h>
  #include <linux/time.h>
  #include <linux/signal.h>
-@@ -441,7 +442,11 @@
+@@ -439,7 +440,11 @@
  
  	BUG_ON(info.si_code & __SI_MASK);
  	info.si_code |= __SI_CHLD;
@@ -10815,7 +14318,7 @@
  }
  
  static int compat_get_user_cpu_mask(compat_ulong_t __user *user_mask_ptr,
-@@ -653,6 +658,44 @@
+@@ -651,6 +656,44 @@
  
  /* timer_create is architecture specific because it needs sigevent conversion */
  
@@ -10860,7 +14363,7 @@
  long compat_get_bitmap(unsigned long *mask, compat_ulong_t __user *umask,
  		       unsigned long bitmap_size)
  {
-@@ -810,7 +853,7 @@
+@@ -807,7 +850,7 @@
  	if (sig) {
  		ret = sig;
  		if (uinfo) {
@@ -10869,9 +14372,9 @@
  				ret = -EFAULT;
  		}
  	}else {
-diff -Nur linux-2.6.13.org/kernel/compat_signal.c linux-2.6.13/kernel/compat_signal.c
---- linux-2.6.13.org/kernel/compat_signal.c	1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.13/kernel/compat_signal.c	2005-09-25 12:34:40.000000000 -0400
+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
 @@ -0,0 +1,280 @@
 +/*
 + *  Copyright (C) 2003 Carlos O'Donell
@@ -11153,10 +14656,23 @@
 +}
 +#endif
 +
-diff -Nur linux-2.6.13.org/kernel/posix-cpu-timers.c linux-2.6.13/kernel/posix-cpu-timers.c
---- linux-2.6.13.org/kernel/posix-cpu-timers.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/kernel/posix-cpu-timers.c	2005-09-25 12:34:40.000000000 -0400
-@@ -1270,8 +1270,6 @@
+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;
  
@@ -11165,10 +14681,10 @@
  #define UNEXPIRED(clock) \
  		(cputime_eq(tsk->it_##clock##_expires, cputime_zero) || \
  		 cputime_lt(clock##_ticks(tsk), tsk->it_##clock##_expires))
-diff -Nur linux-2.6.13.org/kernel/ptrace.c linux-2.6.13/kernel/ptrace.c
---- linux-2.6.13.org/kernel/ptrace.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/kernel/ptrace.c	2005-09-25 12:34:40.000000000 -0400
-@@ -344,7 +344,7 @@
+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 @@
  	siginfo_t newinfo;
  	int error = -ESRCH;
  
@@ -11177,9 +14693,9 @@
  		return -EFAULT;
  
  	read_lock(&tasklist_lock);
-diff -Nur linux-2.6.13.org/kernel/resource.c linux-2.6.13/kernel/resource.c
---- linux-2.6.13.org/kernel/resource.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/kernel/resource.c	2005-09-25 12:34:40.000000000 -0400
+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
 @@ -181,6 +181,8 @@
  {
  	struct resource *tmp, **p;
@@ -11189,9 +14705,9 @@
  	p = &old->parent->child;
  	for (;;) {
  		tmp = *p;
-diff -Nur linux-2.6.13.org/kernel/signal.c linux-2.6.13/kernel/signal.c
---- linux-2.6.13.org/kernel/signal.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/kernel/signal.c	2005-09-25 12:34:40.000000000 -0400
+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
 @@ -22,6 +22,7 @@
  #include <linux/security.h>
  #include <linux/syscalls.h>
@@ -11200,7 +14716,7 @@
  #include <linux/posix-timers.h>
  #include <linux/signal.h>
  #include <linux/audit.h>
-@@ -2113,17 +2114,35 @@
+@@ -2127,17 +2128,35 @@
  	return do_sigpending(set, sigsetsize);
  }
  
@@ -11236,7 +14752,7 @@
  	/*
  	 * If you change siginfo_t structure, please be sure
  	 * this code is fixed accordingly.
-@@ -2361,7 +2380,7 @@
+@@ -2374,7 +2393,7 @@
  {
  	siginfo_t info;
  
@@ -11245,9 +14761,9 @@
  		return -EFAULT;
  
  	/* Not even root can pretend to send signals from the kernel.
-diff -Nur linux-2.6.13.org/kernel/sys.c linux-2.6.13/kernel/sys.c
---- linux-2.6.13.org/kernel/sys.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/kernel/sys.c	2005-09-25 12:34:40.000000000 -0400
+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>
@@ -11256,10 +14772,10 @@
  #include <asm/uaccess.h>
  #include <asm/io.h>
  #include <asm/unistd.h>
-diff -Nur linux-2.6.13.org/mm/shmem.c linux-2.6.13/mm/shmem.c
---- linux-2.6.13.org/mm/shmem.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/mm/shmem.c	2005-09-25 12:34:40.000000000 -0400
-@@ -461,7 +461,7 @@
+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 @@
  	} while (next);
  }
  
@@ -11268,9 +14784,9 @@
  {
  	struct shmem_inode_info *info = SHMEM_I(inode);
  	unsigned long idx;
-diff -Nur linux-2.6.13.org/sound/drivers/opl3/opl3_lib.c linux-2.6.13/sound/drivers/opl3/opl3_lib.c
---- linux-2.6.13.org/sound/drivers/opl3/opl3_lib.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/sound/drivers/opl3/opl3_lib.c	2005-09-25 12:34:40.000000000 -0400
+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
 @@ -40,7 +40,7 @@
  static void snd_opl2_command(opl3_t * opl3, unsigned short cmd, unsigned char val)
  {
@@ -11483,9 +14999,9 @@
  EXPORT_SYMBOL(snd_opl3_timer_new);
  EXPORT_SYMBOL(snd_opl3_hwdep_new);
  
-diff -Nur linux-2.6.13.org/sound/oss/ad1889.c linux-2.6.13/sound/oss/ad1889.c
---- linux-2.6.13.org/sound/oss/ad1889.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/sound/oss/ad1889.c	2005-09-25 12:34:40.000000000 -0400
+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
 @@ -74,7 +74,7 @@
  
  	DBG("Setting WAV rate to %d\n", rate);
@@ -11877,9 +15393,9 @@
  	if (!dev->regbase) {
  		printk(KERN_ERR DEVNAME ": unable to remap iomem\n");
  		goto out2;
-diff -Nur linux-2.6.13.org/sound/oss/ad1889.h linux-2.6.13/sound/oss/ad1889.h
---- linux-2.6.13.org/sound/oss/ad1889.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/sound/oss/ad1889.h	2005-09-25 12:34:40.000000000 -0400
+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
 @@ -1,57 +1,58 @@
  #ifndef _AD1889_H_
  #define _AD1889_H_
@@ -11999,9 +15515,9 @@
  
  #define AD_WAV_STATE	0
  #define AD_ADC_STATE	1
-diff -Nur linux-2.6.13.org/sound/oss/harmony.c linux-2.6.13/sound/oss/harmony.c
---- linux-2.6.13.org/sound/oss/harmony.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/sound/oss/harmony.c	2005-09-25 12:34:40.000000000 -0400
+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
 @@ -1236,7 +1236,7 @@
  	}
  
@@ -12011,9 +15527,9 @@
  	harmony.dev = dev;
  
  	/* Grab the ID and revision from the device */
-diff -Nur linux-2.6.13.org/sound/parisc/harmony.c linux-2.6.13/sound/parisc/harmony.c
---- linux-2.6.13.org/sound/parisc/harmony.c	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/sound/parisc/harmony.c	2005-09-25 12:34:40.000000000 -0400
+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);
  
@@ -12223,9 +15739,9 @@
  		err = -EBUSY;
  		goto free_and_ret;
  	}
-diff -Nur linux-2.6.13.org/sound/parisc/harmony.h linux-2.6.13/sound/parisc/harmony.h
---- linux-2.6.13.org/sound/parisc/harmony.h	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/sound/parisc/harmony.h	2005-09-25 12:34:40.000000000 -0400
+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
  
@@ -12273,25 +15789,13 @@
  #define HARMONY_GAIN_OUT        0x3f
  #define HARMONY_GAIN_LO_SHIFT   6
  #define HARMONY_GAIN_LO_MASK    (HARMONY_GAIN_OUT << HARMONY_GAIN_LO_SHIFT)
-diff -Nur linux-2.6.13.org/sound/pci/Kconfig linux-2.6.13/sound/pci/Kconfig
---- linux-2.6.13.org/sound/pci/Kconfig	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/sound/pci/Kconfig	2005-09-25 12:34:40.000000000 -0400
-@@ -21,6 +21,26 @@
- 	  To compile this driver as a module, choose M here: the module
- 	  will be called snd-ali5451.
+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 @@
+ 	  To compile this as a module, choose M here: the module
+ 	  will be called snd-ad1889.
  
-+config SND_AD1889
-+	tristate "Analog Devices AD1889"
-+	depends on SND
-+	select SND_AC97_CODEC
-+	help
-+	  Say Y here to include support for the integrated AC97 sound
-+	  device found in particular on the Hewlett-Packard [BCJ]-xxx0
-+	  class PA-RISC workstations, using the AD1819 codec.
-+
-+	  To compile this as a module, choose M here: the module
-+	  will be called snd-ad1889.
-+
 +config SND_AD1889_OPL3
 +	bool "Analog Devices AD1889 OPL3 Support (Experimental)"
 +	depends on SND_AD1889 && EXPERIMENTAL
@@ -12300,133 +15804,39 @@
 +	  Say Y here to include support for the OPL3-compatible interface
 +	  provided on an Analog Devices AD1889.
 +
- config SND_ATIIXP
- 	tristate "ATI IXP AC97 Controller"
- 	depends on SND
-diff -Nur linux-2.6.13.org/sound/pci/Makefile linux-2.6.13/sound/pci/Makefile
---- linux-2.6.13.org/sound/pci/Makefile	2005-08-28 19:41:01.000000000 -0400
-+++ linux-2.6.13/sound/pci/Makefile	2005-09-25 12:34:40.000000000 -0400
-@@ -4,6 +4,7 @@
- #
+ 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 @@
+ #include <sound/initval.h>
+ #include <sound/ac97_codec.h>
  
- snd-als4000-objs := als4000.o
-+snd-ad1889-objs := ad1889.o
- snd-atiixp-objs := atiixp.o
- snd-atiixp-modem-objs := atiixp_modem.o
- snd-azt3328-objs := azt3328.o
-@@ -26,6 +27,7 @@
- 
- # Toplevel Module Dependency
- obj-$(CONFIG_SND_ALS4000) += snd-als4000.o
-+obj-$(CONFIG_SND_AD1889) += snd-ad1889.o
- obj-$(CONFIG_SND_ATIIXP) += snd-atiixp.o
- obj-$(CONFIG_SND_ATIIXP_MODEM) += snd-atiixp-modem.o
- obj-$(CONFIG_SND_AZT3328) += snd-azt3328.o
-diff -Nur linux-2.6.13.org/sound/pci/ad1889.c linux-2.6.13/sound/pci/ad1889.c
---- linux-2.6.13.org/sound/pci/ad1889.c	1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.13/sound/pci/ad1889.c	2005-09-25 12:34:40.000000000 -0400
-@@ -0,0 +1,1141 @@
-+/* Analog Devices 1889 audio driver
-+ *
-+ * This is a driver for the AD1889 PCI audio chipset found
-+ * on the HP PA-RISC [BCJ]-xxx0 workstations.
-+ *
-+ * Copyright (C) 2004-2005, Kyle McMartin <kyle at parisc-linux.org>
-+ * Copyright (C) 2005, Thibaut Varene <varenet at parisc-linux.org>
-+ *   Based on the OSS AD1889 driver by Randolph Chung <tausq at debian.org>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License, version 2, as
-+ * published by the Free Software Foundation.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ * TODO:
-+ *	Do we need to take care of CCS register?
-+ *	Maybe we could use finer grained locking (separate locks for pb/cap)?
-+ * Wishlist:
-+ *	Control Interface (mixer) support
-+ *	Better AC97 support (VSR...)?
-+ *	PM support
-+ *	MIDI support
-+ *	Game Port support
-+ *	SG DMA support (this will need *alot* of work)
-+ */
-+
-+#include <linux/init.h>
-+#include <linux/pci.h>
-+#include <linux/slab.h>
-+#include <linux/interrupt.h>
-+#include <linux/compiler.h>
-+#include <linux/delay.h>
-+
-+#include <sound/driver.h>
-+#include <sound/core.h>
-+#include <sound/pcm.h>
-+#include <sound/initval.h>
-+#include <sound/ac97_codec.h>
-+
 +#ifdef CONFIG_SND_AD1889_OPL3
 +#include <sound/opl3.h>
 +#endif
 +
-+#include <asm/io.h>
-+
-+#include "ad1889.h"
-+#include "ac97/ac97_id.h"
-+
+ #include <asm/io.h>
+ 
+ #include "ad1889.h"
+ #include "ac97/ac97_id.h"
+ 
+-#define	AD1889_DRVVER	"$Revision: 1.3 $"
 +#define	AD1889_DRVVER	"$Revision: 1.31 $"
-+
-+MODULE_AUTHOR("Kyle McMartin <kyle at parisc-linux.org>, Thibaut Varene <t-bone at parisc-linux.org>");
-+MODULE_DESCRIPTION("Analog Devices AD1889 ALSA sound driver");
-+MODULE_LICENSE("GPL");
+ 
+ MODULE_AUTHOR("Kyle McMartin <kyle at parisc-linux.org>, Thibaut Varene <t-bone at parisc-linux.org>");
+ MODULE_DESCRIPTION("Analog Devices AD1889 ALSA sound driver");
+ MODULE_LICENSE("GPL");
 +MODULE_VERSION(AD1889_DRVVER);
-+MODULE_SUPPORTED_DEVICE("{{Analog Devices,AD1889}}");
-+
-+static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;
-+module_param_array(index, int, NULL, 0444);
-+MODULE_PARM_DESC(index, "Index value for the AD1889 soundcard.");
-+
-+static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;
-+module_param_array(id, charp, NULL, 0444);
-+MODULE_PARM_DESC(id, "ID string for the AD1889 soundcard.");
-+
-+static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP;
-+module_param_array(enable, bool, NULL, 0444);
-+MODULE_PARM_DESC(enable, "Enable AD1889 soundcard.");
-+
-+static char *ac97_quirk[SNDRV_CARDS];
-+module_param_array(ac97_quirk, charp, NULL, 0444);
-+MODULE_PARM_DESC(ac97_quirk, "AC'97 workaround for strange hardware.");
-+
-+#define DEVNAME "ad1889"
-+#define PFX	DEVNAME ": "
-+
-+/* let's use the global sound debug interfaces */
-+#define ad1889_debug(fmt, arg...) snd_printd(KERN_DEBUG fmt, ## arg)
-+
-+/* keep track of some hw registers */
-+struct ad1889_register_state {
-+	u16 reg;	/* reg setup */
-+	u32 addr;	/* dma base address */
-+	unsigned long size;	/* DMA buffer size */
-+};
-+
-+struct snd_ad1889 {
-+	snd_card_t *card;
-+	struct pci_dev *pci;
-+
-+	int irq;
-+	unsigned long bar;
-+	void __iomem *iobase;
-+
+ MODULE_SUPPORTED_DEVICE("{{Analog Devices,AD1889}}");
+ 
+ static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;
+@@ -94,11 +99,20 @@
+ 	unsigned long bar;
+ 	void __iomem *iobase;
+ 
 +#ifdef CONFIG_SND_AD1889_OPL3
 +	unsigned long opl3_bar;
 +	void __iomem *opl3_iobase;
@@ -12435,878 +15845,90 @@
 +	snd_hwdep_t *opl3hwdep;
 +#endif
 +
-+	ac97_t *ac97;
-+	ac97_bus_t *ac97_bus;
-+	snd_pcm_t *pcm;
-+	snd_info_entry_t *proc;
-+
+ 	ac97_t *ac97;
+ 	ac97_bus_t *ac97_bus;
+ 	snd_pcm_t *pcm;
+ 	snd_info_entry_t *proc;
+ 
 +	struct snd_dma_device dma;
-+	snd_pcm_substream_t *psubs;
-+	snd_pcm_substream_t *csubs;
-+
-+	/* playback register state */
-+	struct ad1889_register_state wave;
-+	struct ad1889_register_state ramc;
-+
-+	spinlock_t lock;
-+};
-+
-+static inline u16
-+ad1889_readw(struct snd_ad1889 *chip, unsigned reg)
-+{
+ 	snd_pcm_substream_t *psubs;
+ 	snd_pcm_substream_t *csubs;
+ 
+@@ -112,25 +126,25 @@
+ static inline u16
+ ad1889_readw(struct snd_ad1889 *chip, unsigned reg)
+ {
+-	return readw(chip->iobase + reg);
 +	return ioread16(chip->iobase + reg);
-+}
-+
-+static inline void
-+ad1889_writew(struct snd_ad1889 *chip, unsigned reg, u16 val)
-+{
+ }
+ 
+ static inline void
+ ad1889_writew(struct snd_ad1889 *chip, unsigned reg, u16 val)
+ {
+-	writew(val, chip->iobase + reg);
 +	iowrite16(val, chip->iobase + reg);
-+}
-+
-+static inline u32
-+ad1889_readl(struct snd_ad1889 *chip, unsigned reg)
-+{
+ }
+ 
+ static inline u32
+ ad1889_readl(struct snd_ad1889 *chip, unsigned reg)
+ {
+-	return readl(chip->iobase + reg);
 +	return ioread32(chip->iobase + reg);
-+}
-+
-+static inline void
-+ad1889_writel(struct snd_ad1889 *chip, unsigned reg, u32 val)
-+{
+ }
+ 
+ static inline void
+ ad1889_writel(struct snd_ad1889 *chip, unsigned reg, u32 val)
+ {
+-	writel(val, chip->iobase + reg);
 +	iowrite32(val, chip->iobase + reg);
-+}
-+
-+static inline void
-+ad1889_unmute(struct snd_ad1889 *chip)
-+{
-+	u16 st;
-+	st = ad1889_readw(chip, AD_DS_WADA) & 
-+		~(AD_DS_WADA_RWAM | AD_DS_WADA_LWAM);
-+	ad1889_writew(chip, AD_DS_WADA, st);
-+	ad1889_readw(chip, AD_DS_WADA);
-+}
-+
-+static inline void
-+ad1889_mute(struct snd_ad1889 *chip)
-+{
-+	u16 st;
-+	st = ad1889_readw(chip, AD_DS_WADA) | AD_DS_WADA_RWAM | AD_DS_WADA_LWAM;
-+	ad1889_writew(chip, AD_DS_WADA, st);
-+	ad1889_readw(chip, AD_DS_WADA);
-+}
-+
-+static inline void
-+ad1889_load_adc_buffer_address(struct snd_ad1889 *chip, u32 address)
-+{
-+	ad1889_writel(chip, AD_DMA_ADCBA, address);
-+	ad1889_writel(chip, AD_DMA_ADCCA, address);
-+}
-+
-+static inline void
-+ad1889_load_adc_buffer_count(struct snd_ad1889 *chip, u32 count)
-+{
-+	ad1889_writel(chip, AD_DMA_ADCBC, count);
-+	ad1889_writel(chip, AD_DMA_ADCCC, count);
-+}
-+
-+static inline void
-+ad1889_load_adc_interrupt_count(struct snd_ad1889 *chip, u32 count)
-+{
-+	ad1889_writel(chip, AD_DMA_ADCIB, count);
-+	ad1889_writel(chip, AD_DMA_ADCIC, count);
-+}
-+
-+static inline void
-+ad1889_load_wave_buffer_address(struct snd_ad1889 *chip, u32 address)
-+{
-+	ad1889_writel(chip, AD_DMA_WAVBA, address);
-+	ad1889_writel(chip, AD_DMA_WAVCA, address);
-+}
-+
-+static inline void
-+ad1889_load_wave_buffer_count(struct snd_ad1889 *chip, u32 count)
-+{
-+	ad1889_writel(chip, AD_DMA_WAVBC, count);
-+	ad1889_writel(chip, AD_DMA_WAVCC, count);
-+}
-+
-+static inline void
-+ad1889_load_wave_interrupt_count(struct snd_ad1889 *chip, u32 count)
-+{
-+	ad1889_writel(chip, AD_DMA_WAVIB, count);
-+	ad1889_writel(chip, AD_DMA_WAVIC, count);
-+}
-+
-+static void
-+ad1889_channel_reset(struct snd_ad1889 *chip, unsigned int channel)
-+{
-+	u16 reg;
-+	
-+	if (channel & AD_CHAN_WAV) {
-+		/* Disable wave channel */
-+		reg = ad1889_readw(chip, AD_DS_WSMC) & ~AD_DS_WSMC_WAEN;
-+		ad1889_writew(chip, AD_DS_WSMC, reg);
-+		chip->wave.reg = reg;
-+		
-+		/* disable IRQs */
-+		reg = ad1889_readw(chip, AD_DMA_WAV);
-+		reg &= AD_DMA_IM_DIS;
-+		reg &= ~AD_DMA_LOOP;
-+		ad1889_writew(chip, AD_DMA_WAV, reg);
-+
-+		/* clear IRQ and address counters and pointers */
-+		ad1889_load_wave_buffer_address(chip, 0x0);
-+		ad1889_load_wave_buffer_count(chip, 0x0);
-+		ad1889_load_wave_interrupt_count(chip, 0x0);
-+
-+		/* flush */
-+		ad1889_readw(chip, AD_DMA_WAV);
-+	}
-+	
-+	if (channel & AD_CHAN_ADC) {
-+		/* Disable ADC channel */
-+		reg = ad1889_readw(chip, AD_DS_RAMC) & ~AD_DS_RAMC_ADEN;
-+		ad1889_writew(chip, AD_DS_RAMC, reg);
-+		chip->ramc.reg = reg;
-+
-+		reg = ad1889_readw(chip, AD_DMA_ADC);
-+		reg &= AD_DMA_IM_DIS;
-+		reg &= ~AD_DMA_LOOP;
-+		ad1889_writew(chip, AD_DMA_ADC, reg);
-+	
-+		ad1889_load_adc_buffer_address(chip, 0x0);
-+		ad1889_load_adc_buffer_count(chip, 0x0);
-+		ad1889_load_adc_interrupt_count(chip, 0x0);
-+
-+		/* flush */
-+		ad1889_readw(chip, AD_DMA_ADC);
-+	}
-+}
-+
-+static inline u16
-+snd_ad1889_ac97_read(ac97_t *ac97, unsigned short reg)
-+{
-+	struct snd_ad1889 *chip = ac97->private_data;
-+	return ad1889_readw(chip, AD_AC97_BASE + reg);
-+}
-+
-+static inline void
-+snd_ad1889_ac97_write(ac97_t *ac97, unsigned short reg, unsigned short val)
-+{
-+	struct snd_ad1889 *chip = ac97->private_data;
-+	ad1889_writew(chip, AD_AC97_BASE + reg, val);
-+}
-+
-+static int
-+snd_ad1889_ac97_ready(struct snd_ad1889 *chip)
-+{
-+	int retry = 400; /* average needs 352 msec */
-+	
-+	while (!(ad1889_readw(chip, AD_AC97_ACIC) & AD_AC97_ACIC_ACRDY) 
-+			&& --retry)
-+		mdelay(1);
-+	if (!retry) {
-+		snd_printk(KERN_ERR PFX "[%s] Link is not ready.\n",
-+		       __FUNCTION__);
-+		return -EIO;
-+	}
-+	ad1889_debug("[%s] ready after %d ms\n", __FUNCTION__, 400 - retry);
-+
-+	return 0;
-+}
-+
-+static int 
-+snd_ad1889_hw_params(snd_pcm_substream_t *substream,
-+			snd_pcm_hw_params_t *hw_params)
-+{
-+	return snd_pcm_lib_malloc_pages(substream, 
-+					params_buffer_bytes(hw_params));
-+}
-+
-+static int
-+snd_ad1889_hw_free(snd_pcm_substream_t *substream)
-+{
-+	return snd_pcm_lib_free_pages(substream);
-+}
-+
-+static snd_pcm_hardware_t snd_ad1889_playback_hw = {
-+	.info = SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
-+		SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_BLOCK_TRANSFER,
-+	.formats = SNDRV_PCM_FMTBIT_S16_LE,
-+	.rates = SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
-+	.rate_min = 8000,	/* docs say 7000, but we're lazy */
-+	.rate_max = 48000,
-+	.channels_min = 1,
-+	.channels_max = 2,
-+	.buffer_bytes_max = BUFFER_BYTES_MAX,
-+	.period_bytes_min = PERIOD_BYTES_MIN,
-+	.period_bytes_max = PERIOD_BYTES_MAX,
-+	.periods_min = PERIODS_MIN,
-+	.periods_max = PERIODS_MAX,
-+	/*.fifo_size = 0,*/
-+};
-+
-+static snd_pcm_hardware_t snd_ad1889_capture_hw = {
-+	.info = SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
-+		SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_BLOCK_TRANSFER,
-+	.formats = SNDRV_PCM_FMTBIT_S16_LE,
-+	.rates = SNDRV_PCM_RATE_48000,
-+	.rate_min = 48000,	/* docs say we could to VSR, but we're lazy */
-+	.rate_max = 48000,
-+	.channels_min = 1,
-+	.channels_max = 2,
-+	.buffer_bytes_max = BUFFER_BYTES_MAX,
-+	.period_bytes_min = PERIOD_BYTES_MIN,
-+	.period_bytes_max = PERIOD_BYTES_MAX,
-+	.periods_min = PERIODS_MIN,
-+	.periods_max = PERIODS_MAX,
-+	/*.fifo_size = 0,*/
-+};
-+
-+static int
-+snd_ad1889_playback_open(snd_pcm_substream_t *ss)
-+{
-+	struct snd_ad1889 *chip = snd_pcm_substream_chip(ss);
-+	snd_pcm_runtime_t *rt = ss->runtime;
-+
-+	chip->psubs = ss;
-+	rt->hw = snd_ad1889_playback_hw;
-+
-+	return 0;
-+}
-+
-+static int
-+snd_ad1889_capture_open(snd_pcm_substream_t *ss)
-+{
-+	struct snd_ad1889 *chip = snd_pcm_substream_chip(ss);
-+	snd_pcm_runtime_t *rt = ss->runtime;
-+
-+	chip->csubs = ss;
-+	rt->hw = snd_ad1889_capture_hw;
-+
-+	return 0;
-+}
-+
-+static int
-+snd_ad1889_playback_close(snd_pcm_substream_t *ss)
-+{
-+	struct snd_ad1889 *chip = snd_pcm_substream_chip(ss);
-+	chip->psubs = NULL;
-+	return 0;
-+}
-+
-+static int
-+snd_ad1889_capture_close(snd_pcm_substream_t *ss)
-+{
-+	struct snd_ad1889 *chip = snd_pcm_substream_chip(ss);
-+	chip->csubs = NULL;
-+	return 0;
-+}
-+
-+static int
-+snd_ad1889_playback_prepare(snd_pcm_substream_t *ss)
-+{
-+	struct snd_ad1889 *chip = snd_pcm_substream_chip(ss);
-+	snd_pcm_runtime_t *rt = ss->runtime;
-+	unsigned int size = snd_pcm_lib_buffer_bytes(ss);
-+	unsigned int count = snd_pcm_lib_period_bytes(ss);
-+	u16 reg;
-+
-+	ad1889_channel_reset(chip, AD_CHAN_WAV);
-+
-+	reg = ad1889_readw(chip, AD_DS_WSMC);
-+	
-+	/* Mask out 16-bit / Stereo */
-+	reg &= ~(AD_DS_WSMC_WA16 | AD_DS_WSMC_WAST);
-+
-+	if (snd_pcm_format_width(rt->format) == 16)
-+		reg |= AD_DS_WSMC_WA16;
-+
-+	if (rt->channels > 1)
-+		reg |= AD_DS_WSMC_WAST;
-+
-+	/* let's make sure we don't clobber ourselves */
-+	spin_lock_irq(&chip->lock);
-+	
-+	chip->wave.size = size;
-+	chip->wave.reg = reg;
-+	chip->wave.addr = rt->dma_addr;
-+
-+	ad1889_writew(chip, AD_DS_WSMC, chip->wave.reg);
-+	
-+	/* Set sample rates on the codec */
-+	ad1889_writew(chip, AD_DS_WAS, rt->rate);
-+
-+	/* Set up DMA */
-+	ad1889_load_wave_buffer_address(chip, chip->wave.addr);
-+	ad1889_load_wave_buffer_count(chip, size);
-+	ad1889_load_wave_interrupt_count(chip, count);
-+
-+	/* writes flush */
-+	ad1889_readw(chip, AD_DS_WSMC);
-+	
-+	spin_unlock_irq(&chip->lock);
-+	
-+	ad1889_debug("prepare playback: addr = 0x%x, count = %u, "
-+			"size = %u, reg = 0x%x, rate = %u\n", chip->wave.addr,
-+			count, size, reg, rt->rate);
-+	return 0;
-+}
-+
-+static int
-+snd_ad1889_capture_prepare(snd_pcm_substream_t *ss)
-+{
-+	struct snd_ad1889 *chip = snd_pcm_substream_chip(ss);
-+	snd_pcm_runtime_t *rt = ss->runtime;
-+	unsigned int size = snd_pcm_lib_buffer_bytes(ss);
-+	unsigned int count = snd_pcm_lib_period_bytes(ss);
-+	u16 reg;
-+
-+	ad1889_channel_reset(chip, AD_CHAN_ADC);
-+	
-+	reg = ad1889_readw(chip, AD_DS_RAMC);
-+
-+	/* Mask out 16-bit / Stereo */
-+	reg &= ~(AD_DS_RAMC_AD16 | AD_DS_RAMC_ADST);
-+
-+	if (snd_pcm_format_width(rt->format) == 16)
-+		reg |= AD_DS_RAMC_AD16;
-+
-+	if (rt->channels > 1)
-+		reg |= AD_DS_RAMC_ADST;
-+
-+	/* let's make sure we don't clobber ourselves */
-+	spin_lock_irq(&chip->lock);
-+	
-+	chip->ramc.size = size;
-+	chip->ramc.reg = reg;
-+	chip->ramc.addr = rt->dma_addr;
-+
-+	ad1889_writew(chip, AD_DS_RAMC, chip->ramc.reg);
-+
-+	/* Set up DMA */
-+	ad1889_load_adc_buffer_address(chip, chip->ramc.addr);
-+	ad1889_load_adc_buffer_count(chip, size);
-+	ad1889_load_adc_interrupt_count(chip, count);
-+
-+	/* writes flush */
-+	ad1889_readw(chip, AD_DS_RAMC);
-+	
-+	spin_unlock_irq(&chip->lock);
-+	
-+	ad1889_debug("prepare capture: addr = 0x%x, count = %u, "
-+			"size = %u, reg = 0x%x, rate = %u\n", chip->ramc.addr,
-+			count, size, reg, rt->rate);
-+	return 0;
-+}
-+
-+/* this is called in atomic context with IRQ disabled.
-+   Must be as fast as possible and not sleep.
-+   DMA should be *triggered* by this call.
-+   The WSMC "WAEN" bit triggers DMA Wave On/Off */
-+static int
-+snd_ad1889_playback_trigger(snd_pcm_substream_t *ss, int cmd)
-+{
-+	u16 wsmc;
-+	struct snd_ad1889 *chip = snd_pcm_substream_chip(ss);
-+	
-+	wsmc = ad1889_readw(chip, AD_DS_WSMC);
-+
-+	switch (cmd) {
-+	case SNDRV_PCM_TRIGGER_START:
-+		/* enable DMA loop & interrupts */
-+		ad1889_writew(chip, AD_DMA_WAV, AD_DMA_LOOP | AD_DMA_IM_CNT);
-+		wsmc |= AD_DS_WSMC_WAEN;
-+		/* 1 to clear CHSS bit */
-+		ad1889_writel(chip, AD_DMA_CHSS, AD_DMA_CHSS_WAVS);
-+		ad1889_unmute(chip);
-+		break;
-+	case SNDRV_PCM_TRIGGER_STOP:
-+		ad1889_mute(chip);
-+		wsmc &= ~AD_DS_WSMC_WAEN;
-+		break;
-+	default:
-+		snd_BUG();
-+		return -EINVAL;
-+	}
-+	
-+	chip->wave.reg = wsmc;
-+	ad1889_writew(chip, AD_DS_WSMC, wsmc);	
-+	ad1889_readw(chip, AD_DS_WSMC);	/* flush */
-+
-+	/* reset the chip when STOP - will disable IRQs */
-+	if (cmd == SNDRV_PCM_TRIGGER_STOP)
-+		ad1889_channel_reset(chip, AD_CHAN_WAV);
-+
-+	return 0;
-+}
-+
-+/* this is called in atomic context with IRQ disabled.
-+   Must be as fast as possible and not sleep.
-+   DMA should be *triggered* by this call.
-+   The RAMC "ADEN" bit triggers DMA ADC On/Off */
-+static int
-+snd_ad1889_capture_trigger(snd_pcm_substream_t *ss, int cmd)
-+{
-+	u16 ramc;
-+	struct snd_ad1889 *chip = snd_pcm_substream_chip(ss);
-+
-+	ramc = ad1889_readw(chip, AD_DS_RAMC);
-+	
-+	switch (cmd) {
-+	case SNDRV_PCM_TRIGGER_START:
-+		/* enable DMA loop & interrupts */
-+		ad1889_writew(chip, AD_DMA_ADC, AD_DMA_LOOP | AD_DMA_IM_CNT);
-+		ramc |= AD_DS_RAMC_ADEN;
-+		/* 1 to clear CHSS bit */
-+		ad1889_writel(chip, AD_DMA_CHSS, AD_DMA_CHSS_ADCS);
-+		break;
-+	case SNDRV_PCM_TRIGGER_STOP:
-+		ramc &= ~AD_DS_RAMC_ADEN;
-+		break;
-+	default:
-+		return -EINVAL;
-+	}
-+	
-+	chip->ramc.reg = ramc;
-+	ad1889_writew(chip, AD_DS_RAMC, ramc);	
-+	ad1889_readw(chip, AD_DS_RAMC);	/* flush */
-+	
-+	/* reset the chip when STOP - will disable IRQs */
-+	if (cmd == SNDRV_PCM_TRIGGER_STOP)
-+		ad1889_channel_reset(chip, AD_CHAN_ADC);
-+		
-+	return 0;
-+}
-+
-+/* Called in atomic context with IRQ disabled */
-+static snd_pcm_uframes_t
-+snd_ad1889_playback_pointer(snd_pcm_substream_t *ss)
-+{
-+	size_t ptr = 0;
-+	struct snd_ad1889 *chip = snd_pcm_substream_chip(ss);
-+
-+	if (unlikely(!(chip->wave.reg & AD_DS_WSMC_WAEN)))
-+		return 0;
-+
-+	ptr = ad1889_readl(chip, AD_DMA_WAVCA);
-+	ptr -= chip->wave.addr;
-+	
-+	snd_assert((ptr >= 0) && (ptr < chip->wave.size), return 0);
-+	
-+	return bytes_to_frames(ss->runtime, ptr);
-+}
-+
-+/* Called in atomic context with IRQ disabled */
-+static snd_pcm_uframes_t
-+snd_ad1889_capture_pointer(snd_pcm_substream_t *ss)
-+{
-+	size_t ptr = 0;
-+	struct snd_ad1889 *chip = snd_pcm_substream_chip(ss);
-+
-+	if (unlikely(!(chip->ramc.reg & AD_DS_RAMC_ADEN)))
-+		return 0;
-+
-+	ptr = ad1889_readl(chip, AD_DMA_ADCCA);
-+	ptr -= chip->ramc.addr;
-+
-+	snd_assert((ptr >= 0) && (ptr < chip->ramc.size), return 0);
-+	
-+	return bytes_to_frames(ss->runtime, ptr);
-+}
-+
-+static snd_pcm_ops_t snd_ad1889_playback_ops = {
-+	.open = snd_ad1889_playback_open,
-+	.close = snd_ad1889_playback_close,
-+	.ioctl = snd_pcm_lib_ioctl,
-+	.hw_params = snd_ad1889_hw_params,
-+	.hw_free = snd_ad1889_hw_free,
-+	.prepare = snd_ad1889_playback_prepare,
-+	.trigger = snd_ad1889_playback_trigger,
-+	.pointer = snd_ad1889_playback_pointer, 
-+};
-+
-+static snd_pcm_ops_t snd_ad1889_capture_ops = {
-+	.open = snd_ad1889_capture_open,
-+	.close = snd_ad1889_capture_close,
-+	.ioctl = snd_pcm_lib_ioctl,
-+	.hw_params = snd_ad1889_hw_params,
-+	.hw_free = snd_ad1889_hw_free,
-+	.prepare = snd_ad1889_capture_prepare,
-+	.trigger = snd_ad1889_capture_trigger,
-+	.pointer = snd_ad1889_capture_pointer, 
-+};
-+
-+static irqreturn_t
-+snd_ad1889_interrupt(int irq, 
-+		     void *dev_id, 
-+		     struct pt_regs *regs)
-+{
-+	unsigned long st;
-+	struct snd_ad1889 *chip = dev_id;
-+
-+	st = ad1889_readl(chip, AD_DMA_DISR);
-+
-+	/* clear ISR */
-+	ad1889_writel(chip, AD_DMA_DISR, st);
-+
-+	st &= AD_INTR_MASK;
-+
-+	if (unlikely(!st))
-+		return IRQ_NONE;
-+
-+	if (st & (AD_DMA_DISR_PMAI|AD_DMA_DISR_PTAI))
-+		ad1889_debug("Unexpected master or target abort interrupt!\n");
-+
-+	if ((st & AD_DMA_DISR_WAVI) && chip->psubs)
-+		snd_pcm_period_elapsed(chip->psubs);
-+	if ((st & AD_DMA_DISR_ADCI) && chip->csubs)
-+		snd_pcm_period_elapsed(chip->csubs);
-+
+ }
+ 
+ static inline void
+@@ -620,6 +634,9 @@
+ 	if ((st & AD_DMA_DISR_ADCI) && chip->csubs)
+ 		snd_pcm_period_elapsed(chip->csubs);
+ 
 +	ad1889_readl(chip, AD_DMA_DISR); /* flush */
 +	/* XXX under some circumstances the DISR write flush may not happen */
 +
-+	return IRQ_HANDLED;
-+}
-+
-+static void 
-+snd_ad1889_pcm_free(snd_pcm_t *pcm)
-+{
-+	struct snd_ad1889 *chip = pcm->private_data;
-+	chip->pcm = NULL;
-+	snd_pcm_lib_preallocate_free_for_all(pcm);
-+}
-+
-+static int __devinit
-+snd_ad1889_pcm_init(struct snd_ad1889 *chip, int device, snd_pcm_t **rpcm)
-+{
-+	int err;
-+	snd_pcm_t *pcm;
-+
-+	if (rpcm)
-+		*rpcm = NULL;
-+
-+	err = snd_pcm_new(chip->card, chip->card->driver, device, 1, 1, &pcm);
-+	if (err < 0)
-+		return err;
-+
-+	snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, 
-+			&snd_ad1889_playback_ops);
-+	snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE,
-+			&snd_ad1889_capture_ops);
-+
-+	pcm->private_data = chip;
-+	pcm->private_free = snd_ad1889_pcm_free;
-+	pcm->info_flags = 0;
-+	strcpy(pcm->name, chip->card->shortname);
-+	
-+	chip->pcm = pcm;
-+	chip->psubs = NULL;
-+	chip->csubs = NULL;
-+
+ 	return IRQ_HANDLED;
+ }
+ 
+@@ -658,6 +675,9 @@
+ 	chip->psubs = NULL;
+ 	chip->csubs = NULL;
+ 
 +	chip->dma.dev = &chip->pci->dev;
 +	chip->dma.type = SNDRV_DMA_TYPE_DEV;
 +
-+	err = snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV,
-+						snd_dma_pci_data(chip->pci),
-+						BUFFER_BYTES_MAX / 2,
-+						BUFFER_BYTES_MAX);
-+
-+	if (err < 0) {
-+		snd_printk(KERN_ERR PFX "buffer allocation error: %d\n", err);
-+		return err;
-+	}
-+	
-+	if (rpcm)
-+		*rpcm = pcm;
-+	
-+	return 0;
-+}
-+
-+static void
-+snd_ad1889_proc_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer)
-+{
-+	struct snd_ad1889 *chip = entry->private_data;
-+	u16 reg;
-+	int tmp;
-+
-+	reg = ad1889_readw(chip, AD_DS_WSMC);
-+	snd_iprintf(buffer, "Wave output: %s\n",
-+			(reg & AD_DS_WSMC_WAEN) ? "enabled" : "disabled");
-+	snd_iprintf(buffer, "Wave Channels: %s\n",
-+			(reg & AD_DS_WSMC_WAST) ? "stereo" : "mono");
-+	snd_iprintf(buffer, "Wave Quality: %d-bit linear\n",
-+			(reg & AD_DS_WSMC_WA16) ? 16 : 8);
-+	
-+	/* WARQ is at offset 12 */
-+	tmp = (reg & AD_DS_WSMC_WARQ) ?
-+			(((reg & AD_DS_WSMC_WARQ >> 12) & 0x01) ? 12 : 18) : 4;
-+	tmp /= (reg & AD_DS_WSMC_WAST) ? 2 : 1;
-+	
-+	snd_iprintf(buffer, "Wave FIFO: %d %s words\n\n", tmp,
-+			(reg & AD_DS_WSMC_WAST) ? "stereo" : "mono");
-+				
-+	
-+	snd_iprintf(buffer, "Synthesis output: %s\n",
-+			reg & AD_DS_WSMC_SYEN ? "enabled" : "disabled");
-+	
-+	/* SYRQ is at offset 4 */
-+	tmp = (reg & AD_DS_WSMC_SYRQ) ?
-+			(((reg & AD_DS_WSMC_SYRQ >> 4) & 0x01) ? 12 : 18) : 4;
-+	tmp /= (reg & AD_DS_WSMC_WAST) ? 2 : 1;
-+	
-+	snd_iprintf(buffer, "Synthesis FIFO: %d %s words\n\n", tmp,
-+			(reg & AD_DS_WSMC_WAST) ? "stereo" : "mono");
-+
-+	reg = ad1889_readw(chip, AD_DS_RAMC);
-+	snd_iprintf(buffer, "ADC input: %s\n",
-+			(reg & AD_DS_RAMC_ADEN) ? "enabled" : "disabled");
-+	snd_iprintf(buffer, "ADC Channels: %s\n",
-+			(reg & AD_DS_RAMC_ADST) ? "stereo" : "mono");
-+	snd_iprintf(buffer, "ADC Quality: %d-bit linear\n",
-+			(reg & AD_DS_RAMC_AD16) ? 16 : 8);
-+	
-+	/* ACRQ is at offset 4 */
-+	tmp = (reg & AD_DS_RAMC_ACRQ) ?
-+			(((reg & AD_DS_RAMC_ACRQ >> 4) & 0x01) ? 12 : 18) : 4;
-+	tmp /= (reg & AD_DS_RAMC_ADST) ? 2 : 1;
-+	
-+	snd_iprintf(buffer, "ADC FIFO: %d %s words\n\n", tmp,
-+			(reg & AD_DS_RAMC_ADST) ? "stereo" : "mono");
-+	
-+	snd_iprintf(buffer, "Resampler input: %s\n",
-+			reg & AD_DS_RAMC_REEN ? "enabled" : "disabled");
-+			
-+	/* RERQ is at offset 12 */
-+	tmp = (reg & AD_DS_RAMC_RERQ) ?
-+			(((reg & AD_DS_RAMC_RERQ >> 12) & 0x01) ? 12 : 18) : 4;
-+	tmp /= (reg & AD_DS_RAMC_ADST) ? 2 : 1;
-+	
-+	snd_iprintf(buffer, "Resampler FIFO: %d %s words\n\n", tmp,
-+			(reg & AD_DS_WSMC_WAST) ? "stereo" : "mono");
-+				
-+	
-+	/* doc says LSB represents -1.5dB, but the max value (-94.5dB)
-+	suggests that LSB is -3dB, which is more coherent with the logarithmic
-+	nature of the dB scale */
-+	reg = ad1889_readw(chip, AD_DS_WADA);
-+	snd_iprintf(buffer, "Left: %s, -%d dB\n",
-+			(reg & AD_DS_WADA_LWAM) ? "mute" : "unmute",
-+			((reg & AD_DS_WADA_LWAA) >> 8) * 3);
-+	reg = ad1889_readw(chip, AD_DS_WADA);
-+	snd_iprintf(buffer, "Right: %s, -%d dB\n",
-+			(reg & AD_DS_WADA_RWAM) ? "mute" : "unmute",
-+			((reg & AD_DS_WADA_RWAA) >> 8) * 3);
-+	
-+	reg = ad1889_readw(chip, AD_DS_WAS);
-+	snd_iprintf(buffer, "Wave samplerate: %u Hz\n", reg);
-+	reg = ad1889_readw(chip, AD_DS_RES);
-+	snd_iprintf(buffer, "Resampler samplerate: %u Hz\n", reg);
-+}
-+
-+static void __devinit
-+snd_ad1889_proc_init(struct snd_ad1889 *chip)
-+{
-+	snd_info_entry_t *entry;
-+
-+	if (!snd_card_proc_new(chip->card, chip->card->driver, &entry))
-+		snd_info_set_text_ops(entry, chip, 1024, snd_ad1889_proc_read);
-+}
-+
-+static struct ac97_quirk ac97_quirks[] = {
-+	{
-+		.subvendor = 0x11d4,	/* AD */
-+		.subdevice = 0x1889,	/* AD1889 */
-+		.codec_id = AC97_ID_AD1819,
-+		.name = "AD1889",
-+		.type = AC97_TUNE_HP_ONLY
-+	},
-+	{ } /* terminator */
-+};
-+
-+static void __devinit
-+snd_ad1889_ac97_xinit(struct snd_ad1889 *chip)
-+{
-+	u16 reg;
-+
-+	reg = ad1889_readw(chip, AD_AC97_ACIC);
-+	reg |= AD_AC97_ACIC_ACRD;		/* Reset Disable */
-+	ad1889_writew(chip, AD_AC97_ACIC, reg);
-+	ad1889_readw(chip, AD_AC97_ACIC);	/* flush posted write */
-+	udelay(10);
-+	/* Interface Enable */
-+	reg |= AD_AC97_ACIC_ACIE;
-+	ad1889_writew(chip, AD_AC97_ACIC, reg);
-+	
-+	snd_ad1889_ac97_ready(chip);
-+
-+	/* Audio Stream Output | Variable Sample Rate Mode */
-+	reg = ad1889_readw(chip, AD_AC97_ACIC);
-+	reg |= AD_AC97_ACIC_ASOE | AD_AC97_ACIC_VSRM;
-+	ad1889_writew(chip, AD_AC97_ACIC, reg);
-+	ad1889_readw(chip, AD_AC97_ACIC); /* flush posted write */
-+
-+}
-+
-+static void
-+snd_ad1889_ac97_bus_free(ac97_bus_t *bus)
-+{
-+	struct snd_ad1889 *chip = bus->private_data;
-+	chip->ac97_bus = NULL;
-+}
-+
-+static void
-+snd_ad1889_ac97_free(ac97_t *ac97)
-+{
-+	struct snd_ad1889 *chip = ac97->private_data;
-+	chip->ac97 = NULL;
-+}
-+
-+static int __devinit
-+snd_ad1889_ac97_init(struct snd_ad1889 *chip, const char *quirk_override)
-+{
-+	int err;
-+	ac97_template_t ac97;
-+	static ac97_bus_ops_t ops = {
-+		.write = snd_ad1889_ac97_write,
-+		.read = snd_ad1889_ac97_read,
-+	};
-+
-+	/* doing that here, it works. */
-+	snd_ad1889_ac97_xinit(chip);
-+
-+	err = snd_ac97_bus(chip->card, 0, &ops, chip, &chip->ac97_bus);
-+	if (err < 0)
-+		return err;
-+	
-+	chip->ac97_bus->private_free = snd_ad1889_ac97_bus_free;
-+
-+	memset(&ac97, 0, sizeof(ac97));
-+	ac97.private_data = chip;
-+	ac97.private_free = snd_ad1889_ac97_free;
-+	ac97.pci = chip->pci;
-+
-+	err = snd_ac97_mixer(chip->ac97_bus, &ac97, &chip->ac97);
-+	if (err < 0)
-+		return err;
-+		
-+	snd_ac97_tune_hardware(chip->ac97, ac97_quirks, quirk_override);
-+	
-+	return 0;
-+}
-+
-+static int
-+snd_ad1889_free(struct snd_ad1889 *chip)
-+{
-+	if (chip->irq < 0)
-+		goto skip_hw;
-+
-+	spin_lock_irq(&chip->lock);
-+
-+	ad1889_mute(chip);
-+
-+	/* Turn off interrupt on count and zero DMA registers */
-+	ad1889_channel_reset(chip, AD_CHAN_WAV | AD_CHAN_ADC);
-+
-+	/* clear DISR. If we don't, we'd better jump off the Eiffel Tower */
-+	ad1889_writel(chip, AD_DMA_DISR, AD_DMA_DISR_PTAI | AD_DMA_DISR_PMAI);
-+	ad1889_readl(chip, AD_DMA_DISR);	/* flush, dammit! */
-+
-+	spin_unlock_irq(&chip->lock);
-+
-+	synchronize_irq(chip->irq);
-+	
-+	if (chip->irq >= 0)
-+		free_irq(chip->irq, (void*)chip);
-+
-+skip_hw:
-+	if (chip->iobase)
-+		iounmap(chip->iobase);
-+
+ 	err = snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV,
+ 						snd_dma_pci_data(chip->pci),
+ 						BUFFER_BYTES_MAX / 2,
+@@ -874,6 +894,11 @@
+ 	if (chip->iobase)
+ 		iounmap(chip->iobase);
+ 
 +#ifdef CONFIG_SND_AD1889_OPL3
 +	if (chip->opl3_iobase)
 +		iounmap(chip->opl3_iobase);
 +#endif
 +	
-+	pci_release_regions(chip->pci);
-+	pci_disable_device(chip->pci);
-+
-+	kfree(chip);
-+	return 0;
-+}
-+
-+static inline int
-+snd_ad1889_dev_free(snd_device_t *device) 
-+{
-+	struct snd_ad1889 *chip = device->device_data;
-+	return snd_ad1889_free(chip);
-+}
-+
-+static int __devinit
-+snd_ad1889_init(struct snd_ad1889 *chip) 
-+{
-+	ad1889_writew(chip, AD_DS_CCS, AD_DS_CCS_CLKEN); /* turn on clock */
-+	ad1889_readw(chip, AD_DS_CCS);	/* flush posted write */
-+
-+	mdelay(10);
-+
-+	/* enable Master and Target abort interrupts */
-+	ad1889_writel(chip, AD_DMA_DISR, AD_DMA_DISR_PMAE | AD_DMA_DISR_PTAE);
-+
-+	return 0;
-+}
-+
-+static int __devinit
-+snd_ad1889_create(snd_card_t *card,
-+		  struct pci_dev *pci,
-+		  struct snd_ad1889 **rchip)
-+{
-+	int err;
-+
-+	struct snd_ad1889 *chip;
-+	static snd_device_ops_t ops = {
-+		.dev_free = snd_ad1889_dev_free,
-+	};
-+
-+	*rchip = NULL;
-+
-+	if ((err = pci_enable_device(pci)) < 0)
-+		return err;
-+	
-+	/* check PCI availability (32bit DMA) */
-+	if (pci_set_dma_mask(pci, 0xffffffff) < 0 ||
-+	    pci_set_consistent_dma_mask(pci, 0xffffffff) < 0) {
-+		printk(KERN_ERR PFX "error setting 32-bit DMA mask.\n");
-+		pci_disable_device(pci);
-+		return -ENXIO;
-+	}
-+
-+	/* allocate chip specific data with zero-filled memory */
+ 	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;
-+	}
-+
-+	chip->card = card;
-+	card->private_data = chip;
-+	chip->pci = pci;
-+	chip->irq = -1;
-+
-+	/* (1) PCI resource allocation */
-+	if ((err = pci_request_regions(pci, card->driver)) < 0)
-+		goto free_and_ret;
-+
-+	chip->bar = pci_resource_start(pci, 0);
-+	chip->iobase = ioremap_nocache(chip->bar, pci_resource_len(pci, 0));
-+	if (chip->iobase == NULL) {
-+		printk(KERN_ERR PFX "unable to reserve region.\n");
-+		err = -EBUSY;
-+		goto free_and_ret;
-+	}
-+	
-+	pci_set_master(pci);
-+
-+	spin_lock_init(&chip->lock);	/* only now can we call ad1889_free */
-+
+ 		pci_disable_device(pci);
+ 		return -ENOMEM;
+ 	}
+@@ -954,6 +979,17 @@
+ 
+ 	spin_lock_init(&chip->lock);	/* only now can we call ad1889_free */
+ 
 +#ifdef CONFIG_SND_AD1889_OPL3
 +	chip->opl3_bar = pci_resource_start(pci, 1);
 +	chip->opl3_iobase = ioremap_nocache(chip->opl3_bar, 
@@ -13318,82 +15940,13 @@
 +	}
 +#endif
 +
-+	if (request_irq(pci->irq, snd_ad1889_interrupt,
-+			SA_INTERRUPT|SA_SHIRQ, card->driver, (void*)chip)) {
-+		printk(KERN_ERR PFX "cannot obtain IRQ %d\n", pci->irq);
-+		snd_ad1889_free(chip);
-+		return -EBUSY;
-+	}
-+
-+	chip->irq = pci->irq;
-+	synchronize_irq(chip->irq);
-+
-+	/* (2) initialization of the chip hardware */
-+	if ((err = snd_ad1889_init(chip)) < 0) {
-+		snd_ad1889_free(chip);
-+		return err;
-+	}
-+
-+	if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) {
-+		snd_ad1889_free(chip);
-+		return err;
-+	}
-+
-+	snd_card_set_dev(card, &pci->dev);
-+
-+	*rchip = chip;
-+
-+	return 0;
-+
-+free_and_ret:
-+	if (chip)
-+		kfree(chip);
-+	pci_disable_device(pci);
-+
-+	return err;
-+}
-+
-+static int __devinit
-+snd_ad1889_probe(struct pci_dev *pci,
-+		 const struct pci_device_id *pci_id)
-+{
-+	int err;
-+	static int devno;
-+	snd_card_t *card;
-+	struct snd_ad1889 *chip;
-+
-+	/* (1) */
-+	if (devno >= SNDRV_CARDS)
-+		return -ENODEV;
-+	if (!enable[devno]) {
-+		devno++;
-+		return -ENOENT;
-+	}
-+
-+	/* (2) */
-+	card = snd_card_new(index[devno], id[devno], THIS_MODULE, 0);
-+	/* XXX REVISIT: we can probably allocate chip in this call */
-+	if (card == NULL)
-+		return -ENOMEM;
-+
-+	strcpy(card->driver, "AD1889");
-+	strcpy(card->shortname, "Analog Devices AD1889");
-+
-+	/* (3) */
-+	err = snd_ad1889_create(card, pci, &chip);
-+	if (err < 0)
-+		goto free_and_ret;
-+
-+	/* (4) */
-+	sprintf(card->longname, "%s at 0x%lx irq %i",
-+		card->shortname, chip->bar, chip->irq);
-+
-+	/* (5) */
-+	/* register AC97 mixer */
-+	err = snd_ad1889_ac97_init(chip, ac97_quirk[devno]);
-+	if (err < 0)
-+		goto free_and_ret;
-+	
+ 	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 @@
+ 	if (err < 0)
+ 		goto free_and_ret;
+ 	
 +#ifdef CONFIG_SND_AD1889_OPL3
 +	err = snd_opl3_create_mapped(card, chip->opl3_iobase,
 +				     chip->opl3_iobase + 2, OPL3_HW_OPL3,
@@ -13410,253 +15963,14 @@
 +	}
 +#endif
 +
-+	err = snd_ad1889_pcm_init(chip, 0, NULL);
-+	if (err < 0)
-+		goto free_and_ret;
-+
-+	/* register proc interface */
-+	snd_ad1889_proc_init(chip);
-+
-+	/* (6) */
-+	err = snd_card_register(card);
-+	if (err < 0)
-+		goto free_and_ret;
-+
-+	/* (7) */
-+	pci_set_drvdata(pci, card);
-+
-+	devno++;
-+	return 0;
-+
-+free_and_ret:
-+	snd_card_free(card);
-+	return err;
-+}
-+
-+static void __devexit
-+snd_ad1889_remove(struct pci_dev *pci)
-+{
-+	snd_card_free(pci_get_drvdata(pci));
-+	pci_set_drvdata(pci, NULL);
-+}
-+
-+static struct pci_device_id snd_ad1889_ids[] = {
-+	{ PCI_DEVICE(PCI_VENDOR_ID_ANALOG_DEVICES, PCI_DEVICE_ID_AD1889JS) },
-+	{ 0, },
-+};
-+MODULE_DEVICE_TABLE(pci, snd_ad1889_ids);
-+
-+static struct pci_driver ad1889_pci = {
-+	.name = "AD1889 Audio",
-+	.id_table = snd_ad1889_ids,
-+	.probe = snd_ad1889_probe,
-+	.remove = __devexit_p(snd_ad1889_remove),
-+};
-+
-+static int __init
-+alsa_ad1889_init(void)
-+{
-+	return pci_register_driver(&ad1889_pci);
-+}
-+
-+static void __exit
-+alsa_ad1889_fini(void)
-+{
-+	pci_unregister_driver(&ad1889_pci);
-+}
-+
-+module_init(alsa_ad1889_init);
-+module_exit(alsa_ad1889_fini);
-diff -Nur linux-2.6.13.org/sound/pci/ad1889.h linux-2.6.13/sound/pci/ad1889.h
---- linux-2.6.13.org/sound/pci/ad1889.h	1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.13/sound/pci/ad1889.h	2005-09-25 12:34:40.000000000 -0400
-@@ -0,0 +1,189 @@
-+/* Analog Devices 1889 audio driver
-+ * Copyright (C) 2004, Kyle McMartin <kyle at parisc-linux.org>
-+ */
-+
-+#ifndef __AD1889_H__
-+#define __AD1889_H__
-+
-+#define AD_DS_WSMC	0x00 /* wave/synthesis channel mixer control */
-+#define  AD_DS_WSMC_SYEN 0x0004 /* synthesis channel enable */
-+#define  AD_DS_WSMC_SYRQ 0x0030 /* synth. fifo request point */
-+#define  AD_DS_WSMC_WA16 0x0100 /* wave channel 16bit select */
-+#define  AD_DS_WSMC_WAST 0x0200 /* wave channel stereo select */
-+#define  AD_DS_WSMC_WAEN 0x0400 /* wave channel enable */
-+#define  AD_DS_WSMC_WARQ 0x3000 /* wave fifo request point */
-+
-+#define AD_DS_RAMC	0x02 /* resampler/ADC channel mixer control */
-+#define  AD_DS_RAMC_AD16 0x0001 /* ADC channel 16bit select */
-+#define  AD_DS_RAMC_ADST 0x0002 /* ADC channel stereo select */
-+#define  AD_DS_RAMC_ADEN 0x0004 /* ADC channel enable */
-+#define  AD_DS_RAMC_ACRQ 0x0030 /* ADC fifo request point */
-+#define  AD_DS_RAMC_REEN 0x0400 /* resampler channel enable */
-+#define  AD_DS_RAMC_RERQ 0x3000 /* res. fifo request point */
-+
-+#define AD_DS_WADA	0x04 /* wave channel mix attenuation */
-+#define  AD_DS_WADA_RWAM 0x0080 /* right wave mute */
-+#define  AD_DS_WADA_RWAA 0x001f /* right wave attenuation */
-+#define  AD_DS_WADA_LWAM 0x8000 /* left wave mute */
-+#define  AD_DS_WADA_LWAA 0x3e00 /* left wave attenuation */
-+
-+#define AD_DS_SYDA	0x06 /* synthesis channel mix attenuation */
-+#define  AD_DS_SYDA_RSYM 0x0080 /* right synthesis mute */
-+#define  AD_DS_SYDA_RSYA 0x001f /* right synthesis attenuation */
-+#define  AD_DS_SYDA_LSYM 0x8000 /* left synthesis mute */
-+#define  AD_DS_SYDA_LSYA 0x3e00 /* left synthesis attenuation */
-+
-+#define AD_DS_WAS	0x08 /* wave channel sample rate */
-+#define  AD_DS_WAS_WAS   0xffff /* sample rate mask */
-+
-+#define AD_DS_RES	0x0a /* resampler channel sample rate */
-+#define  AD_DS_RES_RES   0xffff /* sample rate mask */
-+
-+#define AD_DS_CCS	0x0c /* chip control/status */
-+#define  AD_DS_CCS_ADO   0x0001 /* ADC channel overflow */
-+#define  AD_DS_CCS_REO   0x0002 /* resampler channel overflow */
-+#define  AD_DS_CCS_SYU   0x0004 /* synthesis channel underflow */
-+#define  AD_DS_CCS_WAU   0x0008 /* wave channel underflow */
-+/* bits 4 -> 7, 9, 11 -> 14 reserved */
-+#define  AD_DS_CCS_XTD   0x0100 /* xtd delay control (4096 clock cycles) */
-+#define  AD_DS_CCS_PDALL 0x0400 /* power */
-+#define  AD_DS_CCS_CLKEN 0x8000 /* clock */
-+
-+#define AD_DMA_RESBA	0x40 /* RES base address */
-+#define AD_DMA_RESCA	0x44 /* RES current address */
-+#define AD_DMA_RESBC	0x48 /* RES base count */
-+#define AD_DMA_RESCC	0x4c /* RES current count */
-+
-+#define AD_DMA_ADCBA	0x50 /* ADC base address */
-+#define AD_DMA_ADCCA	0x54 /* ADC current address */
-+#define AD_DMA_ADCBC	0x58 /* ADC base count */
-+#define AD_DMA_ADCCC	0x5c /* ADC current count */
-+
-+#define AD_DMA_SYNBA	0x60 /* synth base address */
-+#define AD_DMA_SYNCA	0x64 /* synth current address */
-+#define AD_DMA_SYNBC	0x68 /* synth base count */
-+#define AD_DMA_SYNCC	0x6c /* synth current count */
-+
-+#define AD_DMA_WAVBA	0x70 /* wave base address */
-+#define AD_DMA_WAVCA	0x74 /* wave current address */
-+#define AD_DMA_WAVBC	0x78 /* wave base count */
-+#define AD_DMA_WAVCC	0x7c /* wave current count */
-+
-+#define AD_DMA_RESIC	0x80 /* RES dma interrupt current byte count */
-+#define AD_DMA_RESIB	0x84 /* RES dma interrupt base byte count */
-+
-+#define AD_DMA_ADCIC	0x88 /* ADC dma interrupt current byte count */
-+#define AD_DMA_ADCIB	0x8c /* ADC dma interrupt base byte count */
-+
-+#define AD_DMA_SYNIC	0x90 /* synth dma interrupt current byte count */
-+#define AD_DMA_SYNIB	0x94 /* synth dma interrupt base byte count */
-+
-+#define AD_DMA_WAVIC	0x98 /* wave dma interrupt current byte count */
-+#define AD_DMA_WAVIB	0x9c /* wave dma interrupt base byte count */
-+
-+#define  AD_DMA_ICC	0xffffff /* current byte count mask */
-+#define  AD_DMA_IBC	0xffffff /* base byte count mask */
-+/* bits 24 -> 31 reserved */
-+
-+/* 4 bytes pad */
-+#define AD_DMA_ADC	0xa8	/* ADC      dma control and status */
-+#define AD_DMA_SYNTH	0xb0	/* Synth    dma control and status */
-+#define AD_DMA_WAV	0xb8	/* wave     dma control and status */
-+#define AD_DMA_RES	0xa0	/* Resample dma control and status */
-+
-+#define  AD_DMA_SGDE	0x0001 /* SGD mode enable */
-+#define  AD_DMA_LOOP	0x0002 /* loop enable */
-+#define  AD_DMA_IM	0x000c /* interrupt mode mask */
-+#define  AD_DMA_IM_DIS	(~AD_DMA_IM)	/* disable */
-+#define  AD_DMA_IM_CNT	0x0004 /* interrupt on count */
-+#define  AD_DMA_IM_SGD	0x0008 /* interrupt on SGD flag */
-+#define  AD_DMA_IM_EOL	0x000c /* interrupt on End of Linked List */
-+#define  AD_DMA_SGDS	0x0030 /* SGD status */
-+#define  AD_DMA_SFLG	0x0040 /* SGD flag */
-+#define  AD_DMA_EOL	0x0080 /* SGD end of list */
-+/* bits 8 -> 15 reserved */
-+
-+#define AD_DMA_DISR	0xc0 /* dma interrupt status */
-+#define  AD_DMA_DISR_RESI 0x000001 /* resampler channel interrupt */
-+#define  AD_DMA_DISR_ADCI 0x000002 /* ADC channel interrupt */
-+#define  AD_DMA_DISR_SYNI 0x000004 /* synthesis channel interrupt */
-+#define  AD_DMA_DISR_WAVI 0x000008 /* wave channel interrupt */
-+/* bits 4, 5 reserved */
-+#define  AD_DMA_DISR_SEPS 0x000040 /* serial eeprom status */
-+/* bits 7 -> 13 reserved */
-+#define  AD_DMA_DISR_PMAI 0x004000 /* pci master abort interrupt */
-+#define  AD_DMA_DISR_PTAI 0x008000 /* pci target abort interrupt */
-+#define  AD_DMA_DISR_PTAE 0x010000 /* pci target abort interrupt enable */
-+#define  AD_DMA_DISR_PMAE 0x020000 /* pci master abort interrupt enable */
-+/* bits 19 -> 31 reserved */
-+
-+/* interrupt mask */
-+#define  AD_INTR_MASK     (AD_DMA_DISR_RESI|AD_DMA_DISR_ADCI| \
-+                           AD_DMA_DISR_WAVI|AD_DMA_DISR_SYNI| \
-+                           AD_DMA_DISR_PMAI|AD_DMA_DISR_PTAI)
-+
-+#define AD_DMA_CHSS	0xc4 /* dma channel stop status */
-+#define  AD_DMA_CHSS_RESS 0x000001 /* resampler channel stopped */
-+#define  AD_DMA_CHSS_ADCS 0x000002 /* ADC channel stopped */
-+#define  AD_DMA_CHSS_SYNS 0x000004 /* synthesis channel stopped */
-+#define  AD_DMA_CHSS_WAVS 0x000008 /* wave channel stopped */
-+
-+#define AD_GPIO_IPC	0xc8	/* gpio port control */
-+#define AD_GPIO_OP	0xca	/* gpio output port status */
-+#define AD_GPIO_IP	0xcc	/* gpio  input port status */
-+
-+#define AD_AC97_BASE	0x100	/* ac97 base register */
-+
-+#define AD_AC97_RESET   0x100   /* reset */
-+
-+#define AD_AC97_PWR_CTL	0x126	/* == AC97_POWERDOWN */
-+#define  AD_AC97_PWR_ADC 0x0001 /* ADC ready status */
-+#define  AD_AC97_PWR_DAC 0x0002 /* DAC ready status */
-+#define  AD_AC97_PWR_PR0 0x0100 /* PR0 (ADC) powerdown */
-+#define  AD_AC97_PWR_PR1 0x0200 /* PR1 (DAC) powerdown */
-+
-+#define AD_MISC_CTL     0x176 /* misc control */
-+#define  AD_MISC_CTL_DACZ   0x8000 /* set for zero fill, unset for repeat */
-+#define  AD_MISC_CTL_ARSR   0x0001 /* set for SR1, unset for SR0 */
-+#define  AD_MISC_CTL_ALSR   0x0100
-+#define  AD_MISC_CTL_DLSR   0x0400
-+#define  AD_MISC_CTL_DRSR   0x0004
-+
-+#define AD_AC97_SR0     0x178 /* sample rate 0, 0xbb80 == 48K */
-+#define  AD_AC97_SR0_48K 0xbb80 /* 48KHz */
-+#define AD_AC97_SR1     0x17a /* sample rate 1 */
-+
-+#define AD_AC97_ACIC	0x180 /* ac97 codec interface control */
-+#define  AD_AC97_ACIC_ACIE  0x0001 /* analog codec interface enable */
-+#define  AD_AC97_ACIC_ACRD  0x0002 /* analog codec reset disable */
-+#define  AD_AC97_ACIC_ASOE  0x0004 /* audio stream output enable */
-+#define  AD_AC97_ACIC_VSRM  0x0008 /* variable sample rate mode */
-+#define  AD_AC97_ACIC_FSDH  0x0100 /* force SDATA_OUT high */
-+#define  AD_AC97_ACIC_FSYH  0x0200 /* force sync high */
-+#define  AD_AC97_ACIC_ACRDY 0x8000 /* analog codec ready status */
-+/* bits 10 -> 14 reserved */
-+
-+
-+#define AD_DS_MEMSIZE	512
-+#define AD_OPL_MEMSIZE	16
-+#define AD_MIDI_MEMSIZE	16
-+
-+#define AD_WAV_STATE	0
-+#define AD_ADC_STATE	1
-+#define AD_MAX_STATES	2
-+
-+#define AD_CHAN_WAV	0x0001
-+#define AD_CHAN_ADC	0x0002
-+#define AD_CHAN_RES	0x0004
-+#define AD_CHAN_SYN	0x0008
-+
-+
-+/* The chip would support 4 GB buffers and 16 MB periods,
-+ * but let's not overdo it ... */
-+#define BUFFER_BYTES_MAX	(256 * 1024)
-+#define PERIOD_BYTES_MIN	32
-+#define PERIOD_BYTES_MAX	(BUFFER_BYTES_MAX / 2)
-+#define PERIODS_MIN		2
-+#define PERIODS_MAX		(BUFFER_BYTES_MAX / PERIOD_BYTES_MIN)
-+
-+#endif /* __AD1889_H__ */
+ 	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-arch/m68k.diff
===================================================================
--- people/waldi/linux-2.6/debian/patches-arch/m68k.diff	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-arch/m68k.diff	2005-11-06 16:19:16 UTC (rev 4733)
@@ -10,3232 +10,116 @@
  CROSS_COMPILE	?=
  
  # Architecture as present in compile.h
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/fpsp040/skeleton.S linux-2.6.13/arch/m68k/fpsp040/skeleton.S
---- linux-2.6.13-i386/arch/m68k/fpsp040/skeleton.S	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/arch/m68k/fpsp040/skeleton.S	2005-05-30 16:31:21.000000000 +0200
-@@ -381,10 +381,8 @@
- .Lnotkern:
- 	SAVE_ALL_INT
- 	GET_CURRENT(%d0)
--	tstb	%curptr@(TASK_NEEDRESCHED)
--	jne	ret_from_exception	| deliver signals,
--					| reschedule etc..
--	RESTORE_ALL
-+	| deliver signals, reschedule etc..
-+	jra	ret_from_exception
- 
- |
- |	mem_write --- write to user or supervisor address space
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/ifpsp060/iskeleton.S linux-2.6.13/arch/m68k/ifpsp060/iskeleton.S
---- linux-2.6.13-i386/arch/m68k/ifpsp060/iskeleton.S	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/arch/m68k/ifpsp060/iskeleton.S	2005-05-30 16:31:22.000000000 +0200
-@@ -75,10 +75,8 @@
- .Lnotkern:
- 	SAVE_ALL_INT
- 	GET_CURRENT(%d0)
--	tstb	%curptr@(TASK_NEEDRESCHED)
--	jne	ret_from_exception	| deliver signals,
--					| reschedule etc..
--	RESTORE_ALL
-+	| deliver signals, reschedule etc..
-+	jra	ret_from_exception
- 
- |
- | _060_real_chk():
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/kernel/asm-offsets.c linux-2.6.13/arch/m68k/kernel/asm-offsets.c
---- linux-2.6.13-i386/arch/m68k/kernel/asm-offsets.c	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/arch/m68k/kernel/asm-offsets.c	2005-05-30 16:31:22.000000000 +0200
-@@ -25,12 +25,8 @@
- 	DEFINE(TASK_STATE, offsetof(struct task_struct, state));
- 	DEFINE(TASK_FLAGS, offsetof(struct task_struct, flags));
- 	DEFINE(TASK_PTRACE, offsetof(struct task_struct, ptrace));
--	DEFINE(TASK_WORK, offsetof(struct task_struct, thread.work));
--	DEFINE(TASK_NEEDRESCHED, offsetof(struct task_struct, thread.work.need_resched));
--	DEFINE(TASK_SYSCALL_TRACE, offsetof(struct task_struct, thread.work.syscall_trace));
--	DEFINE(TASK_SIGPENDING, offsetof(struct task_struct, thread.work.sigpending));
--	DEFINE(TASK_NOTIFY_RESUME, offsetof(struct task_struct, thread.work.notify_resume));
- 	DEFINE(TASK_THREAD, offsetof(struct task_struct, thread));
-+	DEFINE(TASK_INFO, offsetof(struct task_struct, thread.info));
- 	DEFINE(TASK_MM, offsetof(struct task_struct, mm));
- 	DEFINE(TASK_ACTIVE_MM, offsetof(struct task_struct, active_mm));
- 
-@@ -45,6 +41,10 @@
- 	DEFINE(THREAD_FPCNTL, offsetof(struct thread_struct, fpcntl));
- 	DEFINE(THREAD_FPSTATE, offsetof(struct thread_struct, fpstate));
- 
-+	/* offsets into the thread_info struct */
-+	DEFINE(TINFO_PREEMPT, offsetof(struct thread_info, preempt_count));
-+	DEFINE(TINFO_FLAGS, offsetof(struct thread_info, flags));
-+
- 	/* offsets into the pt_regs */
- 	DEFINE(PT_D0, offsetof(struct pt_regs, d0));
- 	DEFINE(PT_ORIG_D0, offsetof(struct pt_regs, orig_d0));
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/kernel/bios32.c linux-2.6.13/arch/m68k/kernel/bios32.c
---- linux-2.6.13-i386/arch/m68k/kernel/bios32.c	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/arch/m68k/kernel/bios32.c	2004-10-20 16:38:00.000000000 +0200
-@@ -285,7 +285,7 @@
- 
- 	DBG_DEVS(("layout_bus: starting bus %d\n", bus->number));
- 
--	if (!bus->devices && !bus->children)
-+	if (list_empty(&bus->devices) && list_empty(&bus->children))
- 		return;
- 
- 	/*
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/kernel/entry.S linux-2.6.13/arch/m68k/kernel/entry.S
---- linux-2.6.13-i386/arch/m68k/kernel/entry.S	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/arch/m68k/kernel/entry.S	2005-05-30 16:31:22.000000000 +0200
-@@ -44,9 +44,7 @@
- 
- #include <asm/offsets.h>
- 
--.globl system_call, buserr, trap
--.globl resume, ret_from_exception
--.globl ret_from_signal
-+.globl system_call, buserr, trap, resume
- .globl inthandler, sys_call_table
- .globl sys_fork, sys_clone, sys_vfork
- .globl ret_from_interrupt, bad_interrupt
-@@ -58,7 +56,7 @@
- 	movel	%sp,%sp at -		| stack frame pointer argument
- 	bsrl	buserr_c
- 	addql	#4,%sp
--	jra	ret_from_exception
-+	jra	.Lret_from_exception
- 
- ENTRY(trap)
- 	SAVE_ALL_INT
-@@ -66,7 +64,7 @@
- 	movel	%sp,%sp at -		| stack frame pointer argument
- 	bsrl	trap_c
- 	addql	#4,%sp
--	jra	ret_from_exception
-+	jra	.Lret_from_exception
- 
- 	| After a fork we jump here directly from resume,
- 	| so that %d1 contains the previous task
-@@ -75,30 +73,31 @@
- 	movel	%d1,%sp at -
- 	jsr	schedule_tail
- 	addql	#4,%sp
--	jra	ret_from_exception
-+	jra	.Lret_from_exception
- 
--badsys:
--	movel	#-ENOSYS,%sp@(PT_D0)
--	jra	ret_from_exception
--
--do_trace:
-+do_trace_entry:
- 	movel	#-ENOSYS,%sp@(PT_D0)	| needed for strace
- 	subql	#4,%sp
- 	SAVE_SWITCH_STACK
- 	jbsr	syscall_trace
- 	RESTORE_SWITCH_STACK
- 	addql	#4,%sp
--	movel	%sp@(PT_ORIG_D0),%d1
--	movel	#-ENOSYS,%d0
--	cmpl	#NR_syscalls,%d1
--	jcc	1f
--	jbsr	@(sys_call_table,%d1:l:4)@(0)
--1:	movel	%d0,%sp@(PT_D0)		| save the return value
--	subql	#4,%sp			| dummy return address
-+	movel	%sp@(PT_ORIG_D0),%d0
-+	cmpl	#NR_syscalls,%d0
-+	jcs	syscall
-+badsys:
-+	movel	#-ENOSYS,%sp@(PT_D0)
-+	jra	ret_from_syscall
-+
-+do_trace_exit:
-+	subql	#4,%sp
- 	SAVE_SWITCH_STACK
- 	jbsr	syscall_trace
-+	RESTORE_SWITCH_STACK
-+	addql	#4,%sp
-+	jra	.Lret_from_exception
- 
--ret_from_signal:
-+ENTRY(ret_from_signal)
- 	RESTORE_SWITCH_STACK
- 	addql	#4,%sp
- /* on 68040 complete pending writebacks if any */
-@@ -111,7 +110,7 @@
- 	addql	#4,%sp
- 1:
- #endif
--	jra	ret_from_exception
-+	jra	.Lret_from_exception
- 
- ENTRY(system_call)
- 	SAVE_ALL_SYS
-@@ -120,30 +119,34 @@
- 	| save top of frame
- 	movel	%sp,%curptr@(TASK_THREAD+THREAD_ESP0)
- 
--	tstb	%curptr@(TASK_SYSCALL_TRACE)
--	jne	do_trace
-+	| syscall trace?
-+	tstb	%curptr@(TASK_INFO+TINFO_FLAGS+2)
-+	jmi	do_trace_entry
- 	cmpl	#NR_syscalls,%d0
- 	jcc	badsys
-+syscall:
- 	jbsr	@(sys_call_table,%d0:l:4)@(0)
- 	movel	%d0,%sp@(PT_D0)		| save the return value
--
-+ret_from_syscall:
- 	|oriw	#0x0700,%sr
--	movel	%curptr@(TASK_WORK),%d0
-+	movew	%curptr@(TASK_INFO+TINFO_FLAGS+2),%d0
- 	jne	syscall_exit_work
- 1:	RESTORE_ALL
- 
- syscall_exit_work:
- 	btst	#5,%sp@(PT_SR)		| check if returning to kernel
- 	bnes	1b			| if so, skip resched, signals
--	tstw	%d0
--	jeq	do_signal_return
--	tstb	%d0
--	jne	do_delayed_trace
--
-+	lslw	#1,%d0
-+	jcs	do_trace_exit
-+	jmi	do_delayed_trace
-+	lslw	#8,%d0
-+	jmi	do_signal_return
- 	pea	resume_userspace
--	jmp	schedule
-+	jra	schedule
-+
- 
--ret_from_exception:
-+ENTRY(ret_from_exception)
-+.Lret_from_exception:
- 	btst	#5,%sp@(PT_SR)		| check if returning to kernel
- 	bnes	1f			| if so, skip resched, signals
- 	| only allow interrupts when we are really the last one on the
-@@ -152,19 +155,18 @@
- 	andw	#ALLOWINT,%sr
- 
- resume_userspace:
--	movel	%curptr@(TASK_WORK),%d0
--	lsrl	#8,%d0
-+	moveb	%curptr@(TASK_INFO+TINFO_FLAGS+3),%d0
- 	jne	exit_work
- 1:	RESTORE_ALL
- 
- exit_work:
- 	| save top of frame
- 	movel	%sp,%curptr@(TASK_THREAD+THREAD_ESP0)
--	tstb	%d0
--	jeq	do_signal_return
--
-+	lslb	#1,%d0
-+	jmi	do_signal_return
- 	pea	resume_userspace
--	jmp	schedule
-+	jra	schedule
-+
- 
- do_signal_return:
- 	|andw	#ALLOWINT,%sr
-@@ -254,7 +256,7 @@
- 
- 	/* check if we need to do software interrupts */
- 	tstl	irq_stat+CPUSTAT_SOFTIRQ_PENDING
--	jeq	ret_from_exception
-+	jeq	.Lret_from_exception
- 	pea	ret_from_exception
- 	jra	do_softirq
- 
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/kernel/m68k_ksyms.c linux-2.6.13/arch/m68k/kernel/m68k_ksyms.c
---- linux-2.6.13-i386/arch/m68k/kernel/m68k_ksyms.c	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/arch/m68k/kernel/m68k_ksyms.c	2005-08-30 16:31:36.000000000 +0200
-@@ -74,9 +74,6 @@
- EXPORT_SYMBOL(__ashldi3);
- EXPORT_SYMBOL(__ashrdi3);
- EXPORT_SYMBOL(__lshrdi3);
--EXPORT_SYMBOL(memcpy);
--EXPORT_SYMBOL(memset);
--EXPORT_SYMBOL(memcmp);
- EXPORT_SYMBOL(memscan);
- EXPORT_SYMBOL(__muldi3);
- 
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/kernel/process.c linux-2.6.13/arch/m68k/kernel/process.c
---- linux-2.6.13-i386/arch/m68k/kernel/process.c	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/arch/m68k/kernel/process.c	2005-08-30 16:31:36.000000000 +0200
-@@ -239,7 +239,7 @@
- 	unsigned long stack_offset, *retp;
- 
- 	stack_offset = THREAD_SIZE - sizeof(struct pt_regs);
--	childregs = (struct pt_regs *) ((unsigned long) (p->thread_info) + stack_offset);
-+	childregs = (struct pt_regs *) ((unsigned long)p->stack + stack_offset);
- 
- 	*childregs = *regs;
- 	childregs->d0 = 0;
-@@ -384,7 +384,7 @@
- 	if (!p || p == current || p->state == TASK_RUNNING)
- 		return 0;
- 
--	stack_page = (unsigned long)(p->thread_info);
-+	stack_page = (unsigned long)p->stack;
- 	fp = ((struct switch_stack *)p->thread.ksp)->a6;
- 	do {
- 		if (fp < stack_page+sizeof(struct thread_info) ||
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/kernel/ptrace.c linux-2.6.13/arch/m68k/kernel/ptrace.c
---- linux-2.6.13-i386/arch/m68k/kernel/ptrace.c	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/arch/m68k/kernel/ptrace.c	2005-06-19 16:32:04.000000000 +0200
-@@ -95,7 +95,7 @@
- 	if (regno == PT_USP)
- 		addr = &task->thread.usp;
- 	else if (regno < sizeof(regoff)/sizeof(regoff[0]))
--		addr = (unsigned long *) (task->thread.esp0 + regoff[regno]);
-+		addr = (unsigned long *)(task->thread.esp0 + regoff[regno]);
- 	else
- 		return -1;
- 	*addr = data;
-@@ -103,48 +103,56 @@
- }
- 
- /*
-- * Called by kernel/ptrace.c when detaching..
-- *
-  * Make sure the single step bit is not set.
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/fs/fat/inode.c linux-2.6.13/fs/fat/inode.c
+--- linux-2.6.13-i386/fs/fat/inode.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/fs/fat/inode.c	2005-08-30 16:35:05.000000000 +0200
+@@ -11,12 +11,14 @@
   */
--void ptrace_disable(struct task_struct *child)
-+static inline void singlestep_disable(struct task_struct *child)
- {
--	unsigned long tmp;
--	/* make sure the single step bit is not set. */
--	tmp = get_reg(child, PT_SR) & ~(TRACE_BITS << 16);
-+	unsigned long tmp = get_reg(child, PT_SR) & ~(TRACE_BITS << 16);
- 	put_reg(child, PT_SR, tmp);
--	child->thread.work.delayed_trace = 0;
--	child->thread.work.syscall_trace = 0;
-+	clear_tsk_thread_flag(child, TIF_DELAYED_TRACE);
-+}
-+
-+/*
-+ * Called by kernel/ptrace.c when detaching..
-+ */
-+void ptrace_disable(struct task_struct *child)
-+{
-+	singlestep_disable(child);
-+	clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
- }
  
- asmlinkage int sys_ptrace(long request, long pid, long addr, long data)
- {
- 	struct task_struct *child;
--	int ret;
-+	unsigned long tmp;
-+	int i, ret = 0;
- 
- 	lock_kernel();
--	ret = -EPERM;
- 	if (request == PTRACE_TRACEME) {
- 		/* are we already being traced? */
--		if (current->ptrace & PT_PTRACED)
-+		if (current->ptrace & PT_PTRACED) {
-+			ret = -EPERM;
- 			goto out;
-+		}
- 		/* set the ptrace bit in the process flags. */
- 		current->ptrace |= PT_PTRACED;
--		ret = 0;
- 		goto out;
- 	}
--	ret = -ESRCH;
- 	read_lock(&tasklist_lock);
- 	child = find_task_by_pid(pid);
- 	if (child)
- 		get_task_struct(child);
- 	read_unlock(&tasklist_lock);
--	if (!child)
-+	if (unlikely(!child)) {
-+		ret = -ESRCH;
- 		goto out;
-+	}
- 
--	ret = -EPERM;
--	if (pid == 1)		/* you may not mess with init */
-+	/* you may not mess with init */
-+	if (unlikely(pid == 1)) {
-+		ret = -EPERM;
- 		goto out_tsk;
-+	}
- 
- 	if (request == PTRACE_ATTACH) {
- 		ret = ptrace_attach(child);
-@@ -152,234 +160,175 @@
- 	}
- 
- 	ret = ptrace_check_attach(child, request == PTRACE_KILL);
--	if (ret < 0)
-+	if (ret)
- 		goto out_tsk;
- 
- 	switch (request) {
- 	/* when I and D space are separate, these will need to be fixed. */
--		case PTRACE_PEEKTEXT: /* read word at location addr. */
--		case PTRACE_PEEKDATA: {
--			unsigned long tmp;
--			int copied;
--
--			copied = access_process_vm(child, addr, &tmp, sizeof(tmp), 0);
--			ret = -EIO;
--			if (copied != sizeof(tmp))
--				break;
--			ret = put_user(tmp,(unsigned long *) data);
--			break;
--		}
-+	case PTRACE_PEEKTEXT:	/* read word at location addr. */
-+	case PTRACE_PEEKDATA:
-+		i = access_process_vm(child, addr, &tmp, sizeof(tmp), 0);
-+		if (i != sizeof(tmp))
-+			goto out_eio;
-+		ret = put_user(tmp, (unsigned long *)data);
-+		break;
- 
- 	/* read the word at location addr in the USER area. */
--		case PTRACE_PEEKUSR: {
--			unsigned long tmp;
--
--			ret = -EIO;
--			if ((addr & 3) || addr < 0 ||
--			    addr > sizeof(struct user) - 3)
--				break;
--
--			tmp = 0;  /* Default return condition */
--			addr = addr >> 2; /* temporary hack. */
--			ret = -EIO;
--			if (addr < 19) {
--				tmp = get_reg(child, addr);
--				if (addr == PT_SR)
--					tmp >>= 16;
--			} else if (addr >= 21 && addr < 49) {
--				tmp = child->thread.fp[addr - 21];
--#ifdef CONFIG_M68KFPU_EMU
--				/* Convert internal fpu reg representation
--				 * into long double format
--				 */
--				if (FPU_IS_EMU && (addr < 45) && !(addr % 3))
--					tmp = ((tmp & 0xffff0000) << 15) |
--					      ((tmp & 0x0000ffff) << 16);
--#endif
--			} else
--				break;
--			ret = put_user(tmp,(unsigned long *) data);
--			break;
--		}
--
--      /* when I and D space are separate, this will have to be fixed. */
--		case PTRACE_POKETEXT: /* write the word at location addr. */
--		case PTRACE_POKEDATA:
--			ret = 0;
--			if (access_process_vm(child, addr, &data, sizeof(data), 1) == sizeof(data))
--				break;
--			ret = -EIO;
--			break;
--
--		case PTRACE_POKEUSR: /* write the word at location addr in the USER area */
--			ret = -EIO;
--			if ((addr & 3) || addr < 0 ||
--			    addr > sizeof(struct user) - 3)
--				break;
--
--			addr = addr >> 2; /* temporary hack. */
--
--			if (addr == PT_SR) {
--				data &= SR_MASK;
--				data <<= 16;
--				data |= get_reg(child, PT_SR) & ~(SR_MASK << 16);
--			}
--			if (addr < 19) {
--				if (put_reg(child, addr, data))
--					break;
--				ret = 0;
--				break;
--			}
--			if (addr >= 21 && addr < 48)
--			{
--#ifdef CONFIG_M68KFPU_EMU
--				/* Convert long double format
--				 * into internal fpu reg representation
--				 */
--				if (FPU_IS_EMU && (addr < 45) && !(addr % 3)) {
--					data = (unsigned long)data << 15;
--					data = (data & 0xffff0000) |
--					       ((data & 0x0000ffff) >> 1);
--				}
--#endif
--				child->thread.fp[addr - 21] = data;
--				ret = 0;
--			}
--			break;
--
--		case PTRACE_SYSCALL: /* continue and stop at next (return from) syscall */
--		case PTRACE_CONT: { /* restart after signal. */
--			long tmp;
--
--			ret = -EIO;
--			if (!valid_signal(data))
--				break;
--			if (request == PTRACE_SYSCALL) {
--					child->thread.work.syscall_trace = ~0;
--			} else {
--					child->thread.work.syscall_trace = 0;
--			}
--			child->exit_code = data;
--			/* make sure the single step bit is not set. */
--			tmp = get_reg(child, PT_SR) & ~(TRACE_BITS << 16);
--			put_reg(child, PT_SR, tmp);
--			child->thread.work.delayed_trace = 0;
--			wake_up_process(child);
--			ret = 0;
--			break;
--		}
--
--/*
-- * make the child exit.  Best I can do is send it a sigkill.
-- * perhaps it should be put in the status that it wants to
-- * exit.
-- */
--		case PTRACE_KILL: {
--			long tmp;
--
--			ret = 0;
--			if (child->exit_state == EXIT_ZOMBIE) /* already dead */
--				break;
--			child->exit_code = SIGKILL;
--	/* make sure the single step bit is not set. */
--			tmp = get_reg(child, PT_SR) & ~(TRACE_BITS << 16);
--			put_reg(child, PT_SR, tmp);
--			child->thread.work.delayed_trace = 0;
--			wake_up_process(child);
--			break;
--		}
--
--		case PTRACE_SINGLESTEP: {  /* set the trap flag. */
--			long tmp;
--
--			ret = -EIO;
--			if (!valid_signal(data))
--				break;
--			child->thread.work.syscall_trace = 0;
--			tmp = get_reg(child, PT_SR) | (TRACE_BITS << 16);
--			put_reg(child, PT_SR, tmp);
--			child->thread.work.delayed_trace = 1;
--
--			child->exit_code = data;
--	/* give it a chance to run. */
--			wake_up_process(child);
--			ret = 0;
--			break;
--		}
-+	case PTRACE_PEEKUSR:
-+		if (addr & 3)
-+			goto out_eio;
-+		addr >>= 2;	/* temporary hack. */
+ #include <linux/module.h>
++#include <linux/config.h>
+ #include <linux/init.h>
+ #include <linux/time.h>
+ #include <linux/slab.h>
+ #include <linux/smp_lock.h>
+ #include <linux/seq_file.h>
+ #include <linux/msdos_fs.h>
++#include <linux/major.h>
+ #include <linux/pagemap.h>
+ #include <linux/buffer_head.h>
+ #include <linux/mount.h>
+@@ -751,7 +753,7 @@
+ 	Opt_check_n, Opt_check_r, Opt_check_s, Opt_uid, Opt_gid,
+ 	Opt_umask, Opt_dmask, Opt_fmask, Opt_codepage, Opt_nocase,
+ 	Opt_quiet, Opt_showexec, Opt_debug, Opt_immutable,
+-	Opt_dots, Opt_nodots,
++	Opt_dots, Opt_nodots, Opt_atari_no, Opt_atari_yes,
+ 	Opt_charset, Opt_shortname_lower, Opt_shortname_win95,
+ 	Opt_shortname_winnt, Opt_shortname_mixed, Opt_utf8_no, Opt_utf8_yes,
+ 	Opt_uni_xl_no, Opt_uni_xl_yes, Opt_nonumtail_no, Opt_nonumtail_yes,
+@@ -776,6 +778,9 @@
+ 	{Opt_showexec, "showexec"},
+ 	{Opt_debug, "debug"},
+ 	{Opt_immutable, "sys_immutable"},
++	{Opt_atari_yes, "atari=yes"},
++	{Opt_atari_yes, "atari"},
++	{Opt_atari_no, "atari=no"},
+ 	{Opt_obsolate, "conv=binary"},
+ 	{Opt_obsolate, "conv=text"},
+ 	{Opt_obsolate, "conv=auto"},
+@@ -850,6 +855,13 @@
+ 	opts->utf8 = opts->unicode_xlate = 0;
+ 	opts->numtail = 1;
+ 	opts->nocase = 0;
++	opts->atari = 0;
 +
-+		if (addr >= 0 && addr < 19) {
-+			tmp = get_reg(child, addr);
-+			if (addr == PT_SR)
-+				tmp >>= 16;
-+		} else if (addr >= 21 && addr < 49) {
-+			tmp = child->thread.fp[addr - 21];
-+			/* Convert internal fpu reg representation
-+			 * into long double format
-+			 */
-+			if (FPU_IS_EMU && (addr < 45) && !(addr % 3))
-+				tmp = ((tmp & 0xffff0000) << 15) |
-+				      ((tmp & 0x0000ffff) << 16);
-+		} else
-+			break;
-+		ret = put_user(tmp, (unsigned long *)data);
-+		break;
-+
-+	/* when I and D space are separate, this will have to be fixed. */
-+	case PTRACE_POKETEXT:	/* write the word at location addr. */
-+	case PTRACE_POKEDATA:
-+		if (access_process_vm(child, addr, &data, sizeof(data), 1) != sizeof(data))
-+			goto out_eio;
-+		break;
-+
-+	case PTRACE_POKEUSR:	/* write the word at location addr in the USER area */
-+		if (addr & 3)
-+			goto out_eio;
-+		addr >>= 2;	/* temporary hack. */
-+
-+		if (addr == PT_SR) {
-+			data &= SR_MASK;
-+			data <<= 16;
-+			data |= get_reg(child, PT_SR) & ~(SR_MASK << 16);
-+		} else if (addr >= 0 && addr < 19) {
-+			if (put_reg(child, addr, data))
-+				goto out_eio;
-+		} else if (addr >= 21 && addr < 48) {
-+			/* Convert long double format
-+			 * into internal fpu reg representation
-+			 */
-+			if (FPU_IS_EMU && (addr < 45) && !(addr % 3)) {
-+				data = (unsigned long)data << 15;
-+				data = (data & 0xffff0000) |
-+				       ((data & 0x0000ffff) >> 1);
-+			}
-+			child->thread.fp[addr - 21] = data;
-+		} else
-+			goto out_eio;
-+		break;
-+
-+	case PTRACE_SYSCALL:	/* continue and stop at next (return from) syscall */
-+	case PTRACE_CONT:	/* restart after signal. */
-+		if (!valid_signal(data))
-+			goto out_eio;
-+
-+		if (request == PTRACE_SYSCALL)
-+			set_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
-+		else
-+			clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
-+		child->exit_code = data;
-+		singlestep_disable(child);
-+		wake_up_process(child);
-+		break;
++#ifdef CONFIG_ATARI
++	if(MACH_IS_ATARI)
++	/* make Atari GEMDOS format the default if machine is an Atari */
++		opts->atari = 1;
++#endif
+ 	*debug = 0;
  
--		case PTRACE_DETACH:	/* detach a process that was attached. */
--			ret = ptrace_detach(child, data);
-+	/*
-+	 * make the child exit.  Best I can do is send it a sigkill.
-+	 * perhaps it should be put in the status that it wants to
-+	 * exit.
-+	 */
-+	case PTRACE_KILL:
-+		if (child->exit_state == EXIT_ZOMBIE) /* already dead */
+ 	if (!options)
+@@ -898,6 +910,12 @@
+ 		case Opt_immutable:
+ 			opts->sys_immutable = 1;
  			break;
--
--		case PTRACE_GETREGS: { /* Get all gp regs from the child. */
--			int i;
--			unsigned long tmp;
--			for (i = 0; i < 19; i++) {
--			    tmp = get_reg(child, i);
--			    if (i == PT_SR)
-+		child->exit_code = SIGKILL;
-+		singlestep_disable(child);
-+		wake_up_process(child);
-+		break;
-+
-+	case PTRACE_SINGLESTEP:	/* set the trap flag. */
-+		if (!valid_signal(data))
-+			goto out_eio;
-+
-+		clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
-+		tmp = get_reg(child, PT_SR) | (TRACE_BITS << 16);
-+		put_reg(child, PT_SR, tmp);
-+		set_tsk_thread_flag(child, TIF_DELAYED_TRACE);
-+
-+		child->exit_code = data;
-+		/* give it a chance to run. */
-+		wake_up_process(child);
-+		break;
-+
-+	case PTRACE_DETACH:	/* detach a process that was attached. */
-+		ret = ptrace_detach(child, data);
-+		break;
-+
-+	case PTRACE_GETREGS:	/* Get all gp regs from the child. */
-+		for (i = 0; i < 19; i++) {
-+			tmp = get_reg(child, i);
-+			if (i == PT_SR)
- 				tmp >>= 16;
--			    if (put_user(tmp, (unsigned long *) data)) {
--				ret = -EFAULT;
-+			ret = put_user(tmp, (unsigned long *)data);
-+			if (ret)
- 				break;
--			    }
--			    data += sizeof(long);
--			}
--			ret = 0;
--			break;
-+			data += sizeof(long);
- 		}
-+		break;
++		case Opt_atari_yes:
++			opts->atari = 1;
++			break;
++		case Opt_atari_no:
++			opts->atari = 0;
++			break;
+ 		case Opt_uid:
+ 			if (match_int(&args[0], &option))
+ 				return 0;
+@@ -1230,8 +1248,31 @@
  
--		case PTRACE_SETREGS: { /* Set all gp regs in the child. */
--			int i;
--			unsigned long tmp;
--			for (i = 0; i < 19; i++) {
--			    if (get_user(tmp, (unsigned long *) data)) {
--				ret = -EFAULT;
-+	case PTRACE_SETREGS:	/* Set all gp regs in the child. */
-+		for (i = 0; i < 19; i++) {
-+			ret = get_user(tmp, (unsigned long *)data);
-+			if (ret)
- 				break;
--			    }
--			    if (i == PT_SR) {
-+			if (i == PT_SR) {
- 				tmp &= SR_MASK;
- 				tmp <<= 16;
- 				tmp |= get_reg(child, PT_SR) & ~(SR_MASK << 16);
--			    }
--			    put_reg(child, i, tmp);
--			    data += sizeof(long);
- 			}
--			ret = 0;
--			break;
--		}
--
--		case PTRACE_GETFPREGS: { /* Get the child FPU state. */
--			ret = 0;
--			if (copy_to_user((void *)data, &child->thread.fp,
--					 sizeof(struct user_m68kfp_struct)))
--				ret = -EFAULT;
--			break;
-+			put_reg(child, i, tmp);
-+			data += sizeof(long);
- 		}
-+		break;
+ 	total_clusters = (total_sectors - sbi->data_start) / sbi->sec_per_clus;
  
--		case PTRACE_SETFPREGS: { /* Set the child FPU state. */
--			ret = 0;
--			if (copy_from_user(&child->thread.fp, (void *)data,
--					   sizeof(struct user_m68kfp_struct)))
--				ret = -EFAULT;
--			break;
--		}
--
--		default:
--			ret = ptrace_request(child, request, addr, data);
--			break;
-+	case PTRACE_GETFPREGS:	/* Get the child FPU state. */
-+		if (copy_to_user((void *)data, &child->thread.fp,
-+				 sizeof(struct user_m68kfp_struct)))
-+			ret = -EFAULT;
-+		break;
-+
-+	case PTRACE_SETFPREGS:	/* Set the child FPU state. */
-+		if (copy_from_user(&child->thread.fp, (void *)data,
-+				   sizeof(struct user_m68kfp_struct)))
-+			ret = -EFAULT;
-+		break;
-+
-+	default:
-+		ret = ptrace_request(child, request, addr, data);
-+		break;
- 	}
- out_tsk:
- 	put_task_struct(child);
- out:
- 	unlock_kernel();
- 	return ret;
-+out_eio:
-+	ret = -EIO;
-+	goto out_tsk;
- }
- 
- asmlinkage void syscall_trace(void)
- {
--	if (!current->thread.work.delayed_trace &&
--	    !current->thread.work.syscall_trace)
--		return;
- 	ptrace_notify(SIGTRAP | ((current->ptrace & PT_TRACESYSGOOD)
- 				 ? 0x80 : 0));
- 	/*
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/lib/Makefile linux-2.6.13/arch/m68k/lib/Makefile
---- linux-2.6.13-i386/arch/m68k/lib/Makefile	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/arch/m68k/lib/Makefile	2005-08-30 16:31:36.000000000 +0200
-@@ -5,4 +5,4 @@
- EXTRA_AFLAGS := -traditional
- 
- lib-y		:= ashldi3.o ashrdi3.o lshrdi3.o muldi3.o \
--			checksum.o memcmp.o memcpy.o memset.o semaphore.o
-+			checksum.o string.o semaphore.o
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/lib/memcmp.c linux-2.6.13/arch/m68k/lib/memcmp.c
---- linux-2.6.13-i386/arch/m68k/lib/memcmp.c	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/arch/m68k/lib/memcmp.c	1970-01-01 01:00:00.000000000 +0100
-@@ -1,11 +0,0 @@
--#include <linux/types.h>
--
--int memcmp(const void * cs,const void * ct,size_t count)
--{
--  const unsigned char *su1, *su2;
--
--  for( su1 = cs, su2 = ct; 0 < count; ++su1, ++su2, count--)
--    if (*su1 != *su2)
--      return((*su1 < *su2) ? -1 : +1);
--  return(0);
--}
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/lib/memcpy.c linux-2.6.13/arch/m68k/lib/memcpy.c
---- linux-2.6.13-i386/arch/m68k/lib/memcpy.c	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/arch/m68k/lib/memcpy.c	1970-01-01 01:00:00.000000000 +0100
-@@ -1,75 +0,0 @@
--#include <linux/types.h>
--
--void * memcpy(void * to, const void * from, size_t n)
--{
--  void *xto = to;
--  size_t temp, temp1;
--
--  if (!n)
--    return xto;
--  if ((long) to & 1)
--    {
--      char *cto = to;
--      const char *cfrom = from;
--      *cto++ = *cfrom++;
--      to = cto;
--      from = cfrom;
--      n--;
--    }
--  if (n > 2 && (long) to & 2)
--    {
--      short *sto = to;
--      const short *sfrom = from;
--      *sto++ = *sfrom++;
--      to = sto;
--      from = sfrom;
--      n -= 2;
--    }
--  temp = n >> 2;
--  if (temp)
--    {
--      long *lto = to;
--      const long *lfrom = from;
--
--      __asm__ __volatile__("movel %2,%3\n\t"
--			   "andw  #7,%3\n\t"
--			   "lsrl  #3,%2\n\t"
--			   "negw  %3\n\t"
--			   "jmp   %%pc@(1f,%3:w:2)\n\t"
--			   "4:\t"
--			   "movel %0 at +,%1 at +\n\t"
--			   "movel %0 at +,%1 at +\n\t"
--			   "movel %0 at +,%1 at +\n\t"
--			   "movel %0 at +,%1 at +\n\t"
--			   "movel %0 at +,%1 at +\n\t"
--			   "movel %0 at +,%1 at +\n\t"
--			   "movel %0 at +,%1 at +\n\t"
--			   "movel %0 at +,%1 at +\n\t"
--			   "1:\t"
--			   "dbra  %2,4b\n\t"
--			   "clrw  %2\n\t"
--			   "subql #1,%2\n\t"
--			   "jpl   4b\n\t"
--			   : "=a" (lfrom), "=a" (lto), "=d" (temp),
--			   "=&d" (temp1)
--			   : "0" (lfrom), "1" (lto), "2" (temp)
--			   );
--      to = lto;
--      from = lfrom;
--    }
--  if (n & 2)
--    {
--      short *sto = to;
--      const short *sfrom = from;
--      *sto++ = *sfrom++;
--      to = sto;
--      from = sfrom;
--    }
--  if (n & 1)
--    {
--      char *cto = to;
--      const char *cfrom = from;
--      *cto = *cfrom;
--    }
--  return xto;
--}
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/lib/memset.c linux-2.6.13/arch/m68k/lib/memset.c
---- linux-2.6.13-i386/arch/m68k/lib/memset.c	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/arch/m68k/lib/memset.c	1970-01-01 01:00:00.000000000 +0100
-@@ -1,68 +0,0 @@
--#include <linux/types.h>
--
--void * memset(void * s, int c, size_t count)
--{
--  void *xs = s;
--  size_t temp, temp1;
--
--  if (!count)
--    return xs;
--  c &= 0xff;
--  c |= c << 8;
--  c |= c << 16;
--  if ((long) s & 1)
--    {
--      char *cs = s;
--      *cs++ = c;
--      s = cs;
--      count--;
--    }
--  if (count > 2 && (long) s & 2)
--    {
--      short *ss = s;
--      *ss++ = c;
--      s = ss;
--      count -= 2;
--    }
--  temp = count >> 2;
--  if (temp)
--    {
--      long *ls = s;
--
--      __asm__ __volatile__("movel %1,%2\n\t"
--			   "andw  #7,%2\n\t"
--			   "lsrl  #3,%1\n\t"
--			   "negw  %2\n\t"
--			   "jmp   %%pc@(2f,%2:w:2)\n\t"
--			   "1:\t"
--			   "movel %3,%0 at +\n\t"
--			   "movel %3,%0 at +\n\t"
--			   "movel %3,%0 at +\n\t"
--			   "movel %3,%0 at +\n\t"
--			   "movel %3,%0 at +\n\t"
--			   "movel %3,%0 at +\n\t"
--			   "movel %3,%0 at +\n\t"
--			   "movel %3,%0 at +\n\t"
--			   "2:\t"
--			   "dbra  %1,1b\n\t"
--			   "clrw  %1\n\t"
--			   "subql #1,%1\n\t"
--			   "jpl   1b\n\t"
--			   : "=a" (ls), "=d" (temp), "=&d" (temp1)
--			   : "d" (c), "0" (ls), "1" (temp)
--			   );
--      s = ls;
--    }
--  if (count & 2)
--    {
--      short *ss = s;
--      *ss++ = c;
--      s = ss;
--    }
--  if (count & 1)
--    {
--      char *cs = s;
--      *cs = c;
--    }
--  return xs;
--}
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/lib/string.c linux-2.6.13/arch/m68k/lib/string.c
---- linux-2.6.13-i386/arch/m68k/lib/string.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.13/arch/m68k/lib/string.c	2005-08-30 13:26:30.000000000 +0200
-@@ -0,0 +1,237 @@
-+
-+#include <linux/types.h>
-+#include <linux/module.h>
-+
-+void *memset(void *s, int c, size_t count)
-+{
-+	void *xs = s;
-+	size_t temp, temp1;
-+
-+	if (!count)
-+		return xs;
-+	c &= 0xff;
-+	c |= c << 8;
-+	c |= c << 16;
-+	if ((long)s & 1) {
-+		char *cs = s;
-+		*cs++ = c;
-+		s = cs;
-+		count--;
-+	}
-+	if (count > 2 && (long)s & 2) {
-+		short *ss = s;
-+		*ss++ = c;
-+		s = ss;
-+		count -= 2;
-+	}
-+	temp = count >> 2;
-+	if (temp) {
-+		long *ls = s;
-+
-+		asm volatile (
-+			"	movel %1,%2\n"
-+			"	andw  #7,%2\n"
-+			"	lsrl  #3,%1\n"
-+			"	negw  %2\n"
-+			"	jmp   %%pc@(2f,%2:w:2)\n"
-+			"1:	movel %3,%0 at +\n"
-+			"	movel %3,%0 at +\n"
-+			"	movel %3,%0 at +\n"
-+			"	movel %3,%0 at +\n"
-+			"	movel %3,%0 at +\n"
-+			"	movel %3,%0 at +\n"
-+			"	movel %3,%0 at +\n"
-+			"	movel %3,%0 at +\n"
-+			"2:	dbra  %1,1b\n"
-+			"	clrw  %1\n"
-+			"	subql #1,%1\n"
-+			"	jpl   1b"
-+			: "=a" (ls), "=d" (temp), "=&d" (temp1)
-+			: "d" (c), "0" (ls), "1" (temp));
-+		s = ls;
-+	}
-+	if (count & 2) {
-+		short *ss = s;
-+		*ss++ = c;
-+		s = ss;
-+	}
-+	if (count & 1) {
-+		char *cs = s;
-+		*cs = c;
-+	}
-+	return xs;
-+}
-+EXPORT_SYMBOL(memset);
-+
-+void *memcpy(void *to, const void *from, size_t n)
-+{
-+	void *xto = to;
-+	size_t temp, temp1;
-+
-+	if (!n)
-+		return xto;
-+	if ((long)to & 1) {
-+		char *cto = to;
-+		const char *cfrom = from;
-+		*cto++ = *cfrom++;
-+		to = cto;
-+		from = cfrom;
-+		n--;
-+	}
-+	if (n > 2 && (long)to & 2) {
-+		short *sto = to;
-+		const short *sfrom = from;
-+		*sto++ = *sfrom++;
-+		to = sto;
-+		from = sfrom;
-+		n -= 2;
-+	}
-+	temp = n >> 2;
-+	if (temp) {
-+		long *lto = to;
-+		const long *lfrom = from;
-+
-+		asm volatile (
-+			"	movel %2,%3\n"
-+			"	andw  #7,%3\n"
-+			"	lsrl  #3,%2\n"
-+			"	negw  %3\n"
-+			"	jmp   %%pc@(1f,%3:w:2)\n"
-+			"4:	movel %0 at +,%1 at +\n"
-+			"	movel %0 at +,%1 at +\n"
-+			"	movel %0 at +,%1 at +\n"
-+			"	movel %0 at +,%1 at +\n"
-+			"	movel %0 at +,%1 at +\n"
-+			"	movel %0 at +,%1 at +\n"
-+			"	movel %0 at +,%1 at +\n"
-+			"	movel %0 at +,%1 at +\n"
-+			"1:	dbra  %2,4b\n"
-+			"	clrw  %2\n"
-+			"	subql #1,%2\n"
-+			"	jpl   4b"
-+			: "=a" (lfrom), "=a" (lto), "=d" (temp), "=&d" (temp1)
-+			: "0" (lfrom), "1" (lto), "2" (temp));
-+		to = lto;
-+		from = lfrom;
-+	}
-+	if (n & 2) {
-+		short *sto = to;
-+		const short *sfrom = from;
-+		*sto++ = *sfrom++;
-+		to = sto;
-+		from = sfrom;
-+	}
-+	if (n & 1) {
-+		char *cto = to;
-+		const char *cfrom = from;
-+		*cto = *cfrom;
-+	}
-+	return xto;
-+}
-+EXPORT_SYMBOL(memcpy);
-+
-+void *memmove(void *dest, const void *src, size_t n)
-+{
-+	void *xdest = dest;
-+	size_t temp;
-+
-+	if (!n)
-+		return xdest;
-+
-+	if (dest < src) {
-+		if ((long)dest & 1) {
-+			char *cdest = dest;
-+			const char *csrc = src;
-+			*cdest++ = *csrc++;
-+			dest = cdest;
-+			src = csrc;
-+			n--;
-+		}
-+		if (n > 2 && (long)dest & 2) {
-+			short *sdest = dest;
-+			const short *ssrc = src;
-+			*sdest++ = *ssrc++;
-+			dest = sdest;
-+			src = ssrc;
-+			n -= 2;
-+		}
-+		temp = n >> 2;
-+		if (temp) {
-+			long *ldest = dest;
-+			const long *lsrc = src;
-+			temp--;
-+			do
-+				*ldest++ = *lsrc++;
-+			while (temp--);
-+			dest = ldest;
-+			src = lsrc;
-+		}
-+		if (n & 2) {
-+			short *sdest = dest;
-+			const short *ssrc = src;
-+			*sdest++ = *ssrc++;
-+			dest = sdest;
-+			src = ssrc;
-+		}
-+		if (n & 1) {
-+			char *cdest = dest;
-+			const char *csrc = src;
-+			*cdest = *csrc;
-+		}
+-	if (sbi->fat_bits != 32)
+-		sbi->fat_bits = (total_clusters > MAX_FAT12) ? 16 : 12;
++	if (!sbi->options.atari) {
++		if (sbi->fat_bits != 32)
++			sbi->fat_bits = (total_clusters > MAX_FAT12) ? 16 : 12;
 +	} else {
-+		dest = (char *)dest + n;
-+		src = (const char *)src + n;
-+		if ((long)dest & 1) {
-+			char *cdest = dest;
-+			const char *csrc = src;
-+			*--cdest = *--csrc;
-+			dest = cdest;
-+			src = csrc;
-+			n--;
-+		}
-+		if (n > 2 && (long)dest & 2) {
-+			short *sdest = dest;
-+			const short *ssrc = src;
-+			*--sdest = *--ssrc;
-+			dest = sdest;
-+			src = ssrc;
-+			n -= 2;
-+		}
-+		temp = n >> 2;
-+		if (temp) {
-+			long *ldest = dest;
-+			const long *lsrc = src;
-+			temp--;
-+			do
-+				*--ldest = *--lsrc;
-+			while (temp--);
-+			dest = ldest;
-+			src = lsrc;
-+		}
-+		if (n & 2) {
-+			short *sdest = dest;
-+			const short *ssrc = src;
-+			*--sdest = *--ssrc;
-+			dest = sdest;
-+			src = ssrc;
-+		}
-+		if (n & 1) {
-+			char *cdest = dest;
-+			const char *csrc = src;
-+			*--cdest = *--csrc;
-+		}
-+	}
-+	return xdest;
-+}
-+EXPORT_SYMBOL(memmove);
-+
-+int memcmp(const void *cs, const void *ct, size_t count)
-+{
-+	const unsigned char *su1, *su2;
-+
-+	for (su1 = cs, su2 = ct; count > 0; ++su1, ++su2, count--)
-+		if (*su1 != *su2)
-+			return *su1 < *su2 ? -1 : +1;
-+	return 0;
-+}
-+EXPORT_SYMBOL(memcmp);
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/mm/Makefile linux-2.6.13/arch/m68k/mm/Makefile
---- linux-2.6.13-i386/arch/m68k/mm/Makefile	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/arch/m68k/mm/Makefile	2004-02-06 14:59:40.000000000 +0100
-@@ -2,7 +2,7 @@
- # Makefile for the linux m68k-specific parts of the memory manager.
- #
- 
--obj-y		:= init.o fault.o hwtest.o
-+obj-y		:= cache.o init.o fault.o hwtest.o
- 
- obj-$(CONFIG_MMU_MOTOROLA)	+= kmap.o memory.o motorola.o
- obj-$(CONFIG_MMU_SUN3)		+= sun3kmap.o sun3mmu.o
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/mm/cache.c linux-2.6.13/arch/m68k/mm/cache.c
---- linux-2.6.13-i386/arch/m68k/mm/cache.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.13/arch/m68k/mm/cache.c	2005-08-30 16:31:37.000000000 +0200
-@@ -0,0 +1,118 @@
-+/*
-+ *  linux/arch/m68k/mm/cache.c
-+ *
-+ *  Instruction cache handling
-+ *
-+ *  Copyright (C) 1995  Hamish Macdonald
-+ */
-+
-+#include <linux/module.h>
-+#include <asm/pgalloc.h>
-+#include <asm/traps.h>
-+
-+
-+static unsigned long virt_to_phys_slow(unsigned long vaddr)
-+{
-+	if (CPU_IS_060) {
-+		unsigned long paddr;
-+
-+		/* The PLPAR instruction causes an access error if the translation
-+		 * is not possible. To catch this we use the same exception mechanism
-+		 * as for user space accesses in <asm/uaccess.h>. */
-+		asm volatile (".chip 68060\n"
-+			      "1: plpar (%0)\n"
-+			      ".chip 68k\n"
-+			      "2:\n"
-+			      ".section .fixup,\"ax\"\n"
-+			      "   .even\n"
-+			      "3: sub.l %0,%0\n"
-+			      "   jra 2b\n"
-+			      ".previous\n"
-+			      ".section __ex_table,\"a\"\n"
-+			      "   .align 4\n"
-+			      "   .long 1b,3b\n"
-+			      ".previous"
-+			      : "=a" (paddr)
-+			      : "0" (vaddr));
-+		return paddr;
-+	} else if (CPU_IS_040) {
-+		unsigned long mmusr;
-+
-+		asm volatile (".chip 68040\n\t"
-+			      "ptestr (%1)\n\t"
-+			      "movec %%mmusr, %0\n\t"
-+			      ".chip 68k"
-+			      : "=r" (mmusr)
-+			      : "a" (vaddr));
-+
-+		if (mmusr & MMU_R_040)
-+			return (mmusr & PAGE_MASK) | (vaddr & ~PAGE_MASK);
-+	} else {
-+		unsigned short mmusr;
-+		unsigned long *descaddr;
-+
-+		asm volatile ("ptestr %3,%2@,#7,%0\n\t"
-+			      "pmove %%psr,%1@"
-+			      : "=a&" (descaddr)
-+			      : "a" (&mmusr), "a" (vaddr), "d" (get_fs().seg));
-+		if (mmusr & (MMU_I|MMU_B|MMU_L))
-+			return 0;
-+		descaddr = phys_to_virt((unsigned long)descaddr);
-+		switch (mmusr & MMU_NUM) {
-+		case 1:
-+			return (*descaddr & 0xfe000000) | (vaddr & 0x01ffffff);
-+		case 2:
-+			return (*descaddr & 0xfffc0000) | (vaddr & 0x0003ffff);
-+		case 3:
-+			return (*descaddr & PAGE_MASK) | (vaddr & ~PAGE_MASK);
-+		}
-+	}
-+	return 0;
-+}
-+
-+/* Push n pages at kernel virtual address and clear the icache */
-+/* RZ: use cpush %bc instead of cpush %dc, cinv %ic */
-+void flush_icache_range(unsigned long address, unsigned long endaddr)
-+{
-+
-+	if (CPU_IS_040_OR_060) {
-+		address &= PAGE_MASK;
-+
-+		do {
-+			asm volatile ("nop\n\t"
-+				      ".chip 68040\n\t"
-+				      "cpushp %%bc,(%0)\n\t"
-+				      ".chip 68k"
-+				      : : "a" (virt_to_phys_slow(address)));
-+			address += PAGE_SIZE;
-+		} while (address < endaddr);
-+	} else {
-+		unsigned long tmp;
-+		asm volatile ("movec %%cacr,%0\n\t"
-+			      "orw %1,%0\n\t"
-+			      "movec %0,%%cacr"
-+			      : "=&d" (tmp)
-+			      : "di" (FLUSH_I));
-+	}
-+}
-+EXPORT_SYMBOL(flush_icache_range);
-+
-+void flush_icache_user_range(struct vm_area_struct *vma, struct page *page,
-+			     unsigned long addr, int len)
-+{
-+	if (CPU_IS_040_OR_060) {
-+		asm volatile ("nop\n\t"
-+			      ".chip 68040\n\t"
-+			      "cpushp %%bc,(%0)\n\t"
-+			      ".chip 68k"
-+			      : : "a" (page_to_phys(page)));
-+	} else {
-+		unsigned long tmp;
-+		asm volatile ("movec %%cacr,%0\n\t"
-+			      "orw %1,%0\n\t"
-+			      "movec %0,%%cacr"
-+			      : "=&d" (tmp)
-+			      : "di" (FLUSH_I));
-+	}
-+}
-+
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/mm/memory.c linux-2.6.13/arch/m68k/mm/memory.c
---- linux-2.6.13-i386/arch/m68k/mm/memory.c	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/arch/m68k/mm/memory.c	2004-10-03 16:35:42.000000000 +0200
-@@ -354,110 +354,6 @@
- #endif
- }
- 
--static unsigned long virt_to_phys_slow(unsigned long vaddr)
--{
--	if (CPU_IS_060) {
--		mm_segment_t fs = get_fs();
--		unsigned long paddr;
--
--		set_fs(get_ds());
--
--		/* The PLPAR instruction causes an access error if the translation
--		 * is not possible. To catch this we use the same exception mechanism
--		 * as for user space accesses in <asm/uaccess.h>. */
--		asm volatile (".chip 68060\n"
--			      "1: plpar (%0)\n"
--			      ".chip 68k\n"
--			      "2:\n"
--			      ".section .fixup,\"ax\"\n"
--			      "   .even\n"
--			      "3: sub.l %0,%0\n"
--			      "   jra 2b\n"
--			      ".previous\n"
--			      ".section __ex_table,\"a\"\n"
--			      "   .align 4\n"
--			      "   .long 1b,3b\n"
--			      ".previous"
--			      : "=a" (paddr)
--			      : "0" (vaddr));
--		set_fs(fs);
--		return paddr;
--	} else if (CPU_IS_040) {
--		mm_segment_t fs = get_fs();
--		unsigned long mmusr;
--
--		set_fs(get_ds());
--
--		asm volatile (".chip 68040\n\t"
--			      "ptestr (%1)\n\t"
--			      "movec %%mmusr, %0\n\t"
--			      ".chip 68k"
--			      : "=r" (mmusr)
--			      : "a" (vaddr));
--		set_fs(fs);
--
--		if (mmusr & MMU_R_040)
--			return (mmusr & PAGE_MASK) | (vaddr & ~PAGE_MASK);
--	} else {
--		unsigned short mmusr;
--		unsigned long *descaddr;
--
--		asm volatile ("ptestr #5,%2@,#7,%0\n\t"
--			      "pmove %%psr,%1@"
--			      : "=a&" (descaddr)
--			      : "a" (&mmusr), "a" (vaddr));
--		if (mmusr & (MMU_I|MMU_B|MMU_L))
--			return 0;
--		descaddr = phys_to_virt((unsigned long)descaddr);
--		switch (mmusr & MMU_NUM) {
--		case 1:
--			return (*descaddr & 0xfe000000) | (vaddr & 0x01ffffff);
--		case 2:
--			return (*descaddr & 0xfffc0000) | (vaddr & 0x0003ffff);
--		case 3:
--			return (*descaddr & PAGE_MASK) | (vaddr & ~PAGE_MASK);
--		}
--	}
--	return 0;
--}
--
--/* Push n pages at kernel virtual address and clear the icache */
--/* RZ: use cpush %bc instead of cpush %dc, cinv %ic */
--void flush_icache_range(unsigned long address, unsigned long endaddr)
--{
--	if (CPU_IS_040_OR_060) {
--		address &= PAGE_MASK;
--
--		if (address >= PAGE_OFFSET && address < (unsigned long)high_memory) {
--			do {
--				asm volatile ("nop\n\t"
--					      ".chip 68040\n\t"
--					      "cpushp %%bc,(%0)\n\t"
--					      ".chip 68k"
--					      : : "a" (virt_to_phys((void *)address)));
--				address += PAGE_SIZE;
--			} while (address < endaddr);
--		} else {
--			do {
--				asm volatile ("nop\n\t"
--					      ".chip 68040\n\t"
--					      "cpushp %%bc,(%0)\n\t"
--					      ".chip 68k"
--					      : : "a" (virt_to_phys_slow(address)));
--				address += PAGE_SIZE;
--			} while (address < endaddr);
--		}
--	} else {
--		unsigned long tmp;
--		asm volatile ("movec %%cacr,%0\n\t"
--			      "orw %1,%0\n\t"
--			      "movec %0,%%cacr"
--			      : "=&d" (tmp)
--			      : "di" (FLUSH_I));
--	}
--}
--
--
- #ifndef CONFIG_SINGLE_MEMORY_CHUNK
- int mm_end_of_chunk (unsigned long addr, int len)
- {
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/block/swim3.c linux-2.6.13/drivers/block/swim3.c
---- linux-2.6.13-i386/drivers/block/swim3.c	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/drivers/block/swim3.c	2005-08-30 16:32:28.000000000 +0200
-@@ -304,7 +304,7 @@
- #endif /* CONFIG_PMAC_MEDIABAY */
- 		start_request(&floppy_states[i]);
- 	}
--	sti();
-+	local_irq_enable();
- }
- 
- static void start_request(struct floppy_state *fs)
-@@ -370,7 +370,7 @@
- {
- 	unsigned long flags;
- 
--	save_flags(flags); cli();
-+	local_irq_save(flags);
- 	if (fs->timeout_pending)
- 		del_timer(&fs->timeout);
- 	fs->timeout.expires = jiffies + nticks;
-@@ -378,7 +378,7 @@
- 	fs->timeout.data = (unsigned long) fs;
- 	add_timer(&fs->timeout);
- 	fs->timeout_pending = 1;
--	restore_flags(flags);
-+	local_irq_restore(flags);
- }
- 
- static inline void scan_track(struct floppy_state *fs)
-@@ -790,14 +790,13 @@
- {
- 	unsigned long flags;
- 
--	save_flags(flags);
--	cli();
-+	local_irq_save(flags);
- 	if (fs->state != idle) {
- 		++fs->wanted;
- 		while (fs->state != available) {
- 			if (interruptible && signal_pending(current)) {
- 				--fs->wanted;
--				restore_flags(flags);
-+				local_irq_restore(flags);
- 				return -EINTR;
- 			}
- 			interruptible_sleep_on(&fs->wait);
-@@ -805,7 +804,7 @@
- 		--fs->wanted;
- 	}
- 	fs->state = state;
--	restore_flags(flags);
-+	local_irq_restore(flags);
- 	return 0;
- }
- 
-@@ -813,11 +812,10 @@
- {
- 	unsigned long flags;
- 
--	save_flags(flags);
--	cli();
-+	local_irq_save(flags);
- 	fs->state = idle;
- 	start_request(fs);
--	restore_flags(flags);
-+	local_irq_restore(flags);
- }
- 
- static int fd_eject(struct floppy_state *fs)
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/char/16c552.h linux-2.6.13/drivers/char/16c552.h
---- linux-2.6.13-i386/drivers/char/16c552.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.13/drivers/char/16c552.h	2001-10-22 11:34:32.000000000 +0200
-@@ -0,0 +1,165 @@
-+/*
-+ * Definitions for the 16c552 DACE
-+ * (dual-asynchronous-communications-element) used on the GVP
-+ * IO-Extender. 
-+ *
-+ * Basically this is two 16c550 uarts's and a parallel port, which is
-+ * why the serial definitions should be valid for the 16c550 uart
-+ * aswell.
-+ *
-+ * Data was taken from National Semiconductors duart 16c552
-+ * data-sheets and the Texas Instruments DACE 16c552 data-sheets (the
-+ * NS version of the chip is _non_ standard and their data-sheets did
-+ * cost me several wasted hours of work).
-+ *
-+ * This file is (C) 1995 Jes Sorensen (jds at kom.auc.dk)
-+ *
-+ * Moved from drivers/char/ to include/linux/, because it's useful
-+ * on more than just the one card. I'm using it on the hp300 DCA
-+ * serial driver, for example.  
-+ *      -- Peter Maydell <pmaydell at chiark.greenend.org.uk> 05/1998
-+ */
-+
-+#ifndef _16C552_H_
-+#define _16C552_H_
-+
-+/* Serial stuff */
-+
-+struct uart_16c550 {
-+	volatile u_char skip0;
-+	volatile u_char RBR;
-+	volatile u_char skip1;
-+	volatile u_char IER;
-+	volatile u_char skip2;
-+	volatile u_char IIR;
-+	volatile u_char skip3;
-+	volatile u_char LCR;
-+	volatile u_char skip4;
-+	volatile u_char MCR;
-+	volatile u_char skip5;
-+	volatile u_char LSR;
-+	volatile u_char skip6;
-+	volatile u_char MSR;
-+	volatile u_char skip7;
-+	volatile u_char SCR;
-+};
-+
-+#define THR RBR
-+#define FCR IIR
-+#define DLL RBR
-+#define DLM IER
-+#define AFR IIR
-+
-+/*
-+ * Bit-defines for the various registers.
-+ */
-+
-+
-+/* IER */
-+
-+#define ERDAI         (1<<0)
-+#define ETHREI        (1<<1)
-+#define ELSI          (1<<2)
-+#define EMSI          (1<<3)
-+
-+/* IIR - Interrupt Ident. Register */
-+
-+#define IRQ_PEND      (1<<0) /* NOTE: IRQ_PEND=0 implies irq pending */
-+#define IRQ_ID1       (1<<1)
-+#define IRQ_ID2       (1<<2)
-+#define IRQ_ID3       (1<<3)
-+#define FIFO_ENA0     (1<<6) /* Both these are set when FCR(1<<0)=1 */
-+#define FIFO_ENA1     (1<<7)
-+
-+#define IRQ_RLS  (IRQ_ID1 | IRQ_ID2)
-+#define IRQ_RDA  (IRQ_ID2)
-+#define IRQ_CTI  (IRQ_ID2 | IRQ_ID3)
-+#define IRQ_THRE (IRQ_ID1)
-+#define IRQ_MS   0
-+
-+/* FCR - FIFO Control Register */
-+
-+#define FIFO_ENA      (1<<0)
-+#define RCVR_FIFO_RES (1<<1)
-+#define XMIT_FIFO_RES (1<<2)
-+#define DMA_MODE_SEL  (1<<3)
-+#define RCVR_TRIG_LSB (1<<6)
-+#define RCVR_TRIG_MSB (1<<7)
-+
-+#define FIFO_TRIG_1   0x00
-+#define FIFO_TRIG_4   RCVR_TRIG_LSB
-+#define FIFO_TRIG_8   RCVR_TRIG_MSB
-+#define FIFO_TRIG_14  RCVR_TRIG_LSB|RCVR_TRIG_MSB
-+
-+/* LCR - Line Control Register */
-+
-+#define WLS0          (1<<0)
-+#define WLS1          (1<<1)
-+#define STB           (1<<2)
-+#define PEN           (1<<3)
-+#define EPS           (1<<4)
-+#define STICK_PARITY  (1<<5)
-+#define SET_BREAK     (1<<6)
-+#define DLAB          (1<<7)
-+
-+#define data_5bit      0x00
-+#define data_6bit      0x01
-+#define data_7bit      0x02
-+#define data_8bit      0x03
-+
-+
-+/* MCR - Modem Control Register */
-+
-+#define DTR           (1<<0)
-+#define RTS           (1<<1)
-+#define OUT1          (1<<2)
-+#define OUT2          (1<<3)
-+#define LOOP          (1<<4)
-+
-+/* LSR - Line Status Register */
-+
-+#define DR            (1<<0)
-+#define OE            (1<<1)
-+#define PE            (1<<2)
-+#define FE            (1<<3)
-+#define BI            (1<<4)
-+#define THRE          (1<<5)
-+#define TEMT          (1<<6)
-+#define RCVR_FIFO_ERR (1<<7)
-+
-+/* MSR - Modem Status Register */
-+
-+#define DCTS          (1<<0)
-+#define DDSR          (1<<1)
-+#define TERI          (1<<2)
-+#define DDCD          (1<<3)
-+#define CTS           (1<<4)
-+#define DSR           (1<<5)
-+#define RING_I        (1<<6)
-+#define DCD           (1<<7)
-+
-+/* AFR - Alternate Function Register */
-+
-+#define CONCUR_WRITE  (1<<0)
-+#define BAUDOUT       (1<<1)
-+#define RXRDY         (1<<2)
-+
-+/* Parallel stuff */
-+
-+/*
-+ * Unfortunately National Semiconductors did not supply the
-+ * specifications for the parallel port in the chip :-(
-+ * TI succed though, so here they are :-)
-+ *
-+ * Defines for the bits can be found by including <linux/lp.h>
-+ */
-+struct IOEXT_par {
-+	volatile u_char skip0;
-+	volatile u_char DATA;
-+	volatile u_char skip1;
-+	volatile u_char STATUS;
-+	volatile u_char skip2;
-+	volatile u_char CTRL;
-+};
-+
-+#endif
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/char/ioext.h linux-2.6.13/drivers/char/ioext.h
---- linux-2.6.13-i386/drivers/char/ioext.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.13/drivers/char/ioext.h	2001-10-22 11:34:32.000000000 +0200
-@@ -0,0 +1,108 @@
-+/*
-+ * Shared data structure for GVP IO-Extender support.
-+ *
-+ * Merge of ioext.h and ser_ioext.h
-+ */
-+#ifndef _IOEXT_H_
-+#define _IOEXT_H_
-+
-+#include <linux/config.h>
-+#include <linux/netdevice.h>
-+
-+#include "16c552.h"
-+
-+#define MAX_IOEXT 5 /*
-+		     * The maximum number of io-extenders is 5, as you
-+		     * can't have more than 5 ZII boards in any Amiga.
-+		     */
-+
-+#define UART_CLK 7372800
-+
-+#define IOEXT_BAUD_BASE (UART_CLK / 16)
-+
-+#define IOEXT_MAX_LINES 2
-+
-+#define IOEXT_PAR_PLIP  0x0001
-+#define IOEXT_PAR_LP    0x0002
-+
-+
-+/*
-+ * Macros for the serial driver.
-+ */
-+#define curruart(info) ((struct uart_16c550 *)(info->port))
-+
-+#define ser_DTRon(info)  curruart(info)->MCR |=  DTR
-+#define ser_RTSon(info)  curruart(info)->MCR |=  RTS
-+#define ser_DTRoff(info) curruart(info)->MCR &= ~DTR
-+#define ser_RTSoff(info) curruart(info)->MCR &= ~RTS
-+
-+
-+/*
-+ * CNTR defines (copied from the GVP SCSI-driver file gvp11.h
-+ */
-+#define GVP_BUSY	(1<<0)
-+#define GVP_IRQ_PEND	(1<<1)
-+#define GVP_IRQ_ENA 	(1<<3)
-+#define GVP_DIR_WRITE   (1<<4)
-+
-+
-+/*
-+ * CTRL defines 
-+ */
-+#define PORT0_MIDI   (1<<0)  /* CLR = DRIVERS         SET = MIDI      */
-+#define PORT1_MIDI   (1<<1)  /* CLR = DRIVERS         SET = MIDI      */
-+#define PORT0_DRIVER (1<<2)  /* CLR = RS232,          SET = MIDI      */
-+#define PORT1_DRIVER (1<<3)  /* CLR = RS232,          SET = MIDI      */
-+#define IRQ_SEL      (1<<4)  /* CLR = INT2,           SET = INT6      */
-+#define ROM_BANK_SEL (1<<5)  /* CLR = LOW 32K,        SET = HIGH 32K  */
-+#define PORT0_CTRL   (1<<6)  /* CLR = RTSx or RXRDYx, SET = RTSx ONLY */
-+#define PORT1_CTRL   (1<<7)  /* CLR = RTSx or RXRDYx, SET = RTSx ONLY */
-+
-+
-+/*
-+ * This is the struct describing the registers on the IO-Extender.
-+ * NOTE: The board uses a dual uart (16c552), which should be equal to
-+ * two 16c550 uarts.
-+ */
-+typedef struct {
-+	char gap0[0x41];
-+	volatile unsigned char CNTR;	/* GVP DMAC CNTR (status register)   */
-+	char gap1[0x11e];
-+	struct uart_16c550 uart0;	/* The first uart                    */
-+	char gap2[0xf0];
-+	struct uart_16c550 uart1;	/* The second uart                   */
-+	char gap3[0xf0];
-+	struct IOEXT_par par;		/* The parallel port                 */
-+	char gap4[0xfb];
-+	volatile unsigned char CTRL;	/* The control-register on the board */
-+} IOEXT_struct;
-+
-+
-+typedef struct {
-+	int num_uarts;
-+	int line[IOEXT_MAX_LINES];
-+	volatile struct uart_16c550 *uart[IOEXT_MAX_LINES];
-+	IOEXT_struct *board;
-+	int spurious_count;
-+	unsigned char par_use;		/* IOEXT_PAR_xxx */
-+#if defined(CONFIG_GVPIOEXT_PLIP) || defined(CONFIG_GVPIOEXT_PLIP_MODULE)
-+	struct nt_device *dev;
-+#endif
-+#if defined(CONFIG_GVPIOEXT_LP) || defined(CONFIG_GVPIOEXT_LP_MODULE)
-+	struct lp_struct *lp_table;
-+	int lp_dev;
-+	int lp_interrupt;
-+#endif
-+} IOExtInfoType;
-+
-+/* Number of detected boards.  */
-+extern int ioext_num;
-+extern IOExtInfoType ioext_info[MAX_IOEXT];
-+
-+void ioext_plip_interrupt(struct net_device *dev, int *spurious_count);
-+void ioext_lp_interrupt(int dev, int *spurious_count);
-+
-+extern struct net_device ioext_dev_plip[3];
-+extern struct lp_struct ioext_lp_table[1];
-+
-+#endif
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/char/mc68681.h linux-2.6.13/drivers/char/mc68681.h
---- linux-2.6.13-i386/drivers/char/mc68681.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.13/drivers/char/mc68681.h	2001-10-22 11:34:32.000000000 +0200
-@@ -0,0 +1,131 @@
-+#ifndef _MC68681_H_
-+#define _MC68681_H_
-+
-+/* 
-+ * This describes an MC68681 DUART. It has almost only overlayed registers, which
-+ * the structure very ugly.
-+ * Note that the ri-register isn't really a register of the duart but a kludge of bsc
-+ * to make the ring indicator available.
-+ * 
-+ * The data came from the MFC-31-Developer Kit (from Ralph Seidel,
-+ * zodiac at darkness.gun.de) and the data sheet of Phillip's clone device (SCN68681)
-+ * (from Richard Hirst, srh at gpt.co.uk)
-+ *
-+ * 11.11.95 copyright Joerg Dorchain (dorchain at mpi-sb.mpg.de)
-+ *
-+ */
-+
-+struct duarthalf {
-+union {
-+volatile u_char mr1; /* rw */
-+volatile u_char mr2; /* rw */
-+}  mr;
-+volatile u_char ri;   /* special, read */
-+union {
-+volatile u_char sr;  /* read */
-+volatile u_char csr; /* write */
-+} sr_csr;
-+u_char pad1;
-+volatile u_char cr; /* write */
-+u_char pad2;
-+union {
-+volatile u_char rhr; /* read */
-+volatile u_char thr; /* write */
-+} hr;
-+u_char pad3;
-+};
-+
-+struct duart {
-+struct duarthalf pa;
-+union {
-+volatile u_char ipcr; /* read */
-+volatile u_char acr;  /* write */
-+} ipcr_acr;
-+u_char pad1;
-+union {
-+volatile u_char isr; /* read */
-+volatile u_char imr; /* write */
-+} ir;
-+u_char pad2;
-+volatile u_char ctu;
-+u_char pad3;
-+volatile u_char ctl;
-+u_char pad4;
-+struct duarthalf pb;
-+volatile u_char ivr;
-+u_char pad5;
-+union {
-+volatile u_char ipr; /* read */
-+volatile u_char opcr; /* write */
-+} ipr_opcr;
-+u_char pad6;
-+union {
-+volatile u_char start; /* read */
-+volatile u_char sopc; /* write */
-+} start_sopc;
-+u_char pad7;
-+union {
-+volatile u_char stop; /* read */
-+volatile u_char ropc; /* write */
-+} stop_ropc;
-+u_char pad8;
-+};
-+
-+#define MR1_BITS 3
-+#define MR1_5BITS 0
-+#define MR1_6BITS 1
-+#define MR1_7BITS 2
-+#define MR1_8BITS 3
-+
-+#define MR1_PARITY_ODD 4
-+
-+#define MR1_PARITY 24
-+#define MR1_PARITY_WITH 0
-+#define MR1_PARITY_FORCE 8
-+#define MR1_PARITY_NO 16
-+#define MR1_PARITY_MULTIDROP 24
-+
-+#define MR1_ERROR_BLOCK 32
-+#define MR1_FFULL_IRQ 64
-+#define MR1_RxRTS_ON 128
-+
-+#define MR2_STOPS 15
-+#define MR2_1STOP 7
-+#define MR2_2STOP 15
-+
-+#define MR2_CTS_ON 16
-+#define MR2_TxRTS_ON 32
-+
-+#define MR2_MODE 192
-+#define MR2_NORMAL 0
-+#define MR2_ECHO 64
-+#define MR2_LOCALLOOP 128
-+#define MR2_REMOTELOOP 192
-+
-+#define CR_RXCOMMAND 3
-+#define CR_NONE 0
-+#define CR_RX_ON 1
-+#define CR_RX_OFF 2
-+#define CR_TXCOMMAND 12
-+#define CR_TX_ON 4
-+#define CR_TX_OFF 8
-+#define CR_MISC 112
-+#define CR_RESET_MR 16
-+#define CR_RESET_RX 32
-+#define CR_RESET_TX 48
-+#define CR_RESET_ERR 64
-+#define CR_RESET_BREAK 80
-+#define CR_START_BREAK 96
-+#define CR_STOP_BREAK 112
-+
-+#define SR_RXRDY 1
-+#define SR_FFULL 2
-+#define SR_TXRDY 4
-+#define SR_TXEMPT 8
-+#define SR_OVERRUN 16
-+#define SR_PARITY 32
-+#define SR_FRAMING 64
-+#define SR_BREAK 128
-+
-+
-+#endif
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/char/plip_ioext.c linux-2.6.13/drivers/char/plip_ioext.c
---- linux-2.6.13-i386/drivers/char/plip_ioext.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.13/drivers/char/plip_ioext.c	2004-10-25 16:38:25.000000000 +0200
-@@ -0,0 +1,1058 @@
-+/*
-+ * plip_ioext: A parallel port "network" driver for GVP IO-Extender.
-+ *
-+ * Authors:	See drivers/net/plip.c
-+ *              IO-Extender version by Steve Bennett, <msteveb at ozemail.com.au>
-+ *
-+ * This driver is for use with a 5-bit cable (LapLink (R) cable).
-+ */
-+
-+static const char *version = "NET3 PLIP version 2.2/m68k";
-+
-+#define __NO_VERSION__
-+
-+#include <linux/module.h>
-+#include <linux/types.h>
-+#include <linux/sched.h>
-+#include <linux/errno.h>
-+#include <linux/interrupt.h>
-+#include <linux/slab.h>
-+#include <linux/termios.h>
-+#include <linux/tty.h>
-+#include <linux/serial.h>
-+
-+#include <asm/setup.h>
-+#include <asm/irq.h>
-+#include <asm/amigahw.h>
-+#include <asm/amigaints.h>
-+#include <linux/zorro.h>
-+
-+#include <linux/config.h>
-+#include <linux/kernel.h>
-+#include <linux/fcntl.h>
-+#include <linux/string.h>
-+#include <linux/ptrace.h>
-+#include <linux/if_ether.h>
-+
-+#include <asm/system.h>
-+
-+#include <linux/in.h>
-+#include <linux/delay.h>
-+/*#include <linux/lp_m68k.h>*/
-+
-+#include <linux/netdevice.h>
-+#include <linux/etherdevice.h>
-+#include <linux/inetdevice.h>
-+#include <linux/skbuff.h>
-+#include <linux/if_plip.h>
-+
-+#include <linux/tqueue.h>
-+#include <linux/ioport.h>
-+#include <linux/bitops.h>
-+#include <asm/byteorder.h>
-+
-+#include "ioext.h"
-+
-+#define DEBUG 0
-+
-+/* Map 'struct device *' to our control structure */
-+#define PLIP_DEV(DEV) (&ioext_info[(DEV)->irq])
-+
-+/************************************************************************
-+**
-+** PLIP definitions
-+**
-+*************************************************************************
-+*/
-+
-+/* Use 0 for production, 1 for verification, >2 for debug */
-+#ifndef NET_DEBUG
-+#define NET_DEBUG 2
-+#endif
-+static unsigned int net_debug = NET_DEBUG;
-+
-+/* In micro second */
-+#define PLIP_DELAY_UNIT       1
-+
-+/* Connection time out = PLIP_TRIGGER_WAIT * PLIP_DELAY_UNIT usec */
-+#define PLIP_TRIGGER_WAIT	 500
-+
-+/* Nibble time out = PLIP_NIBBLE_WAIT * PLIP_DELAY_UNIT usec */
-+#define PLIP_NIBBLE_WAIT        3000
-+
-+#define PAR_DATA(dev)     ((dev)->base_addr+0)
-+#define PAR_STATUS(dev)   ((dev)->base_addr+2)
-+#define PAR_CONTROL(dev)  ((dev)->base_addr+4)
-+
-+static void enable_par_irq(struct device *dev, int on);
-+static int plip_init(struct device *dev);
-+
-+/* Bottom halfs */
-+static void plip_kick_bh(struct device *dev);
-+static void plip_bh(struct device *dev);
-+
-+/* Functions for DEV methods */
-+static int plip_rebuild_header(struct sk_buff *skb);
-+static int plip_tx_packet(struct sk_buff *skb, struct device *dev);
-+static int plip_open(struct device *dev);
-+static int plip_close(struct device *dev);
-+static struct enet_statistics *plip_get_stats(struct device *dev);
-+static int plip_config(struct device *dev, struct ifmap *map);
-+static int plip_ioctl(struct device *dev, struct ifreq *ifr, int cmd);
-+
-+enum plip_connection_state {
-+	PLIP_CN_NONE=0,
-+	PLIP_CN_RECEIVE,
-+	PLIP_CN_SEND,
-+	PLIP_CN_CLOSING,
-+	PLIP_CN_ERROR
-+};
-+
-+enum plip_packet_state {
-+	PLIP_PK_DONE=0,
-+	PLIP_PK_TRIGGER,
-+	PLIP_PK_LENGTH_LSB,
-+	PLIP_PK_LENGTH_MSB,
-+	PLIP_PK_DATA,
-+	PLIP_PK_CHECKSUM
-+};
-+
-+enum plip_nibble_state {
-+	PLIP_NB_BEGIN,
-+	PLIP_NB_1,
-+	PLIP_NB_2,
-+};
-+
-+struct plip_local {
-+	enum plip_packet_state state;
-+	enum plip_nibble_state nibble;
-+	union {
-+		struct {
-+#if defined(__LITTLE_ENDIAN)
-+			unsigned char lsb;
-+			unsigned char msb;
-+#elif defined(__BIG_ENDIAN)
-+			unsigned char msb;
-+			unsigned char lsb;
-+#else
-+#error  "Please fix the endianness defines in <asm/byteorder.h>"
-+#endif            
-+		} b;
-+		unsigned short h;
-+	} length;
-+	unsigned short byte;
-+	unsigned char  checksum;
-+	unsigned char  data;
-+	struct sk_buff *skb;
-+};
-+
-+struct net_local {
-+	struct enet_statistics enet_stats;
-+	struct tq_struct immediate;
-+	struct tq_struct deferred;
-+	struct plip_local snd_data;
-+	struct plip_local rcv_data;
-+	unsigned long  trigger;
-+	unsigned long  nibble;
-+	enum plip_connection_state connection;
-+	unsigned short timeout_count;
-+	char is_deferred;
-+	int (*orig_rebuild_header)(struct sk_buff *skb);
-+};
-+
-+struct device ioext_dev_plip[] = {
-+	{
-+		"plip0",
-+		0, 0, 0, 0,    /* memory */
-+		0, 0,    /* base, irq */
-+		0, 0, 0, NULL, plip_init 
-+	},
-+	{
-+		"plip1",
-+		0, 0, 0, 0,    /* memory */
-+		0, 0,    /* base, irq */
-+		0, 0, 0, NULL, plip_init 
-+	},
-+	{
-+		"plip2",
-+		0, 0, 0, 0,    /* memory */
-+		0, 0,    /* base, irq */
-+		0, 0, 0, NULL, plip_init 
-+	}
-+};
-+
-+/*
-+ * Check for and handle an interrupt for this PLIP device.
-+ *
-+ */
-+void ioext_plip_interrupt(struct device *dev, int *spurious_count)
-+{
-+	struct net_local *nl;
-+	struct plip_local *rcv;
-+	unsigned char c0;
-+	unsigned long flags;
-+
-+	nl = (struct net_local *)dev->priv;
-+	rcv = &nl->rcv_data;
-+
-+	c0 = z_readb(PAR_STATUS(dev));
-+
-+	if (dev->interrupt) {
-+		return;
-+	}
-+
-+	if ((c0 & 0xf8) != 0xc0) {
-+		/* Not for us */
-+		++*spurious_count;
-+		return;
-+	}
-+
-+	*spurious_count = 0;
-+	dev->interrupt = 1;
-+
-+	local_irq_save(flags);
-+
-+	switch (nl->connection) {
-+	case PLIP_CN_CLOSING:
-+		dev->tbusy = 0;
-+	case PLIP_CN_NONE:
-+	case PLIP_CN_SEND:
-+		dev->last_rx = jiffies;
-+		rcv->state = PLIP_PK_TRIGGER;
-+		nl->connection = PLIP_CN_RECEIVE;
-+		nl->timeout_count = 0;
-+		queue_task(&nl->immediate, &tq_immediate);
-+		mark_bh(IMMEDIATE_BH);
-+		local_irq_restore(flags);
-+#if 0
-+		printk("%s: receive irq in SEND/NONE/CLOSING (%d) ok\n",
-+		       dev->name, nl->connection);
-+#endif
-+		break;
-+
-+	case PLIP_CN_RECEIVE:
-+		local_irq_restore(flags);
-+		printk("%s: receive interrupt when receiving packet\n",
-+		       dev->name);
-+		break;
-+
-+	case PLIP_CN_ERROR:
-+		local_irq_restore(flags);
-+		printk("%s: receive interrupt in error state\n", dev->name);
-+		break;
-+	}
-+}
-+
-+
-+/* Bottom half handler for the delayed request.
-+   This routine is kicked by do_timer().
-+   Request `plip_bh' to be invoked. */
-+static void
-+plip_kick_bh(struct device *dev)
-+{
-+	struct net_local *nl = (struct net_local *)dev->priv;
-+
-+	if (nl->is_deferred) {
-+		queue_task(&nl->immediate, &tq_immediate);
-+		mark_bh(IMMEDIATE_BH);
-+	}
-+}
-+
-+/* Forward declarations of internal routines */
-+static int plip_none(struct device *, struct net_local *,
-+		     struct plip_local *, struct plip_local *);
-+static int plip_receive_packet(struct device *, struct net_local *,
-+			       struct plip_local *, struct plip_local *);
-+static int plip_send_packet(struct device *, struct net_local *,
-+			    struct plip_local *, struct plip_local *);
-+static int plip_connection_close(struct device *, struct net_local *,
-+				 struct plip_local *, struct plip_local *);
-+static int plip_error(struct device *, struct net_local *,
-+		      struct plip_local *, struct plip_local *);
-+static int plip_bh_timeout_error(struct device *dev, struct net_local *nl,
-+				 struct plip_local *snd,
-+				 struct plip_local *rcv,
-+				 int error);
-+
-+#define OK        0
-+#define TIMEOUT   1
-+#define ERROR     2
-+
-+typedef int (*plip_func)(struct device *dev, struct net_local *nl,
-+			 struct plip_local *snd, struct plip_local *rcv);
-+
-+static plip_func connection_state_table[] =
-+{
-+	plip_none,
-+	plip_receive_packet,
-+	plip_send_packet,
-+	plip_connection_close,
-+	plip_error
-+};
-+
-+/*
-+** enable_par_irq()
-+** 
-+** Enable or disable parallel irq for 'dev' according to 'on'.
-+**
-+** It is NOT possible to disable only the parallel irq.
-+** So we disable the board interrupt instead. This means that
-+** during reception of a PLIP packet, no serial interrupts can
-+** happen. Sorry.
-+*/
-+static void enable_par_irq(struct device *dev, int on)
-+{
-+	if (on) {
-+		PLIP_DEV(dev)->board->CNTR |= GVP_IRQ_ENA;
-+	}
-+	else {
-+		PLIP_DEV(dev)->board->CNTR &= ~GVP_IRQ_ENA;
-+	}
-+}
-+
-+/* Bottom half handler of PLIP. */
-+static void
-+plip_bh(struct device *dev)
-+{
-+	struct net_local *nl = (struct net_local *)dev->priv;
-+	struct plip_local *snd = &nl->snd_data;
-+	struct plip_local *rcv = &nl->rcv_data;
-+	plip_func f;
-+	int r;
-+
-+	nl->is_deferred = 0;
-+	f = connection_state_table[nl->connection];
-+	if ((r = (*f)(dev, nl, snd, rcv)) != OK
-+	    && (r = plip_bh_timeout_error(dev, nl, snd, rcv, r)) != OK) {
-+		nl->is_deferred = 1;
-+		queue_task(&nl->deferred, &tq_timer);
-+	}
-+}
-+
-+static int
-+plip_bh_timeout_error(struct device *dev, struct net_local *nl,
-+		      struct plip_local *snd, struct plip_local *rcv,
-+		      int error)
-+{
-+	unsigned char c0;
-+	unsigned long flags;
-+
-+	local_irq_save(flags);
-+	if (nl->connection == PLIP_CN_SEND) {
-+
-+		if (error != ERROR) { /* Timeout */
-+			nl->timeout_count++;
-+			if ((snd->state == PLIP_PK_TRIGGER
-+			     && nl->timeout_count <= 10)
-+			    || nl->timeout_count <= 3) {
-+				local_irq_restore(flags);
-+				/* Try again later */
-+				return TIMEOUT;
-+			}
-+			c0 = z_readb(PAR_STATUS(dev));
-+			printk(KERN_INFO "%s: transmit timeout(%d,%02x)\n",
-+			       dev->name, snd->state, c0);
-+		}
-+		nl->enet_stats.tx_errors++;
-+		nl->enet_stats.tx_aborted_errors++;
-+	} else if (nl->connection == PLIP_CN_RECEIVE) {
-+		if (rcv->state == PLIP_PK_TRIGGER) {
-+			/* Transmission was interrupted. */
-+			local_irq_restore(flags);
-+			return OK;
-+		}
-+		if (error != ERROR) { /* Timeout */
-+			if (++nl->timeout_count <= 3) {
-+				local_irq_restore(flags);
-+				/* Try again later */
-+				return TIMEOUT;
-+			}
-+			c0 = z_readb(PAR_STATUS(dev));
-+			printk(KERN_INFO "%s: receive timeout(%d,%02x)\n",
-+			       dev->name, rcv->state, c0);
-+		}
-+		nl->enet_stats.rx_dropped++;
-+	}
-+	rcv->state = PLIP_PK_DONE;
-+	if (rcv->skb) {
-+		kfree_skb(rcv->skb);
-+		rcv->skb = NULL;
-+	}
-+	snd->state = PLIP_PK_DONE;
-+	if (snd->skb) {
-+		dev_kfree_skb(snd->skb);
-+		snd->skb = NULL;
-+	}
-+	enable_par_irq(dev, 0);
-+	dev->tbusy = 1;
-+	nl->connection = PLIP_CN_ERROR;
-+	z_writeb(0x00, PAR_DATA(dev));
-+	local_irq_restore(flags);
-+
-+	return TIMEOUT;
-+}
-+
-+static int
-+plip_none(struct device *dev, struct net_local *nl,
-+	  struct plip_local *snd, struct plip_local *rcv)
-+{
-+	return OK;
-+}
-+
-+/* PLIP_RECEIVE --- receive a byte(two nibbles)
-+   Returns OK on success, TIMEOUT on timeout */
-+inline static int
-+plip_receive(struct device *dev, unsigned short nibble_timeout, 
-+	     enum plip_nibble_state *ns_p, unsigned char *data_p)
-+{
-+	unsigned char c0, c1;
-+	unsigned int cx;
-+
-+	switch (*ns_p) {
-+	case PLIP_NB_BEGIN:
-+		cx = nibble_timeout;
-+		while (1) {
-+			c0 = z_readb(PAR_STATUS(dev));
-+			udelay(PLIP_DELAY_UNIT);
-+			if ((c0 & 0x80) == 0) {
-+				c1 = z_readb(PAR_STATUS(dev));
-+				if (c0 == c1)
-+					break;
-+			}
-+			if (--cx == 0)
-+				return TIMEOUT;
-+		}
-+#if 0
-+		printk("received first nybble: %02X -> %02X\n",
-+		       c0, (c0 >> 3) & 0x0F);
-+#endif
-+		*data_p = (c0 >> 3) & 0x0f;
-+		z_writeb(0x10, PAR_DATA(dev)); /* send ACK */
-+		*ns_p = PLIP_NB_1;
-+
-+	case PLIP_NB_1:
-+		cx = nibble_timeout;
-+		while (1) {
-+			c0 = z_readb(PAR_STATUS(dev));
-+			udelay(PLIP_DELAY_UNIT);
-+			if (c0 & 0x80) {
-+				c1 = z_readb(PAR_STATUS(dev));
-+				if (c0 == c1)
-+					break;
-+			}
-+			if (--cx == 0)
-+				return TIMEOUT;
-+		}
-+#if 0
-+		printk("received second nybble: %02X -> %02X\n",
-+		       c0, (c0 << 1) & 0xF0);
-+#endif
-+		*data_p |= (c0 << 1) & 0xf0;
-+		z_writeb(0x00, PAR_DATA(dev)); /* send ACK */
-+		*ns_p = PLIP_NB_BEGIN;
-+	case PLIP_NB_2:
-+		break;
-+	}
-+	return OK;
-+}
-+
-+/* PLIP_RECEIVE_PACKET --- receive a packet */
-+static int
-+plip_receive_packet(struct device *dev, struct net_local *nl,
-+		    struct plip_local *snd, struct plip_local *rcv)
-+{
-+	unsigned short nibble_timeout = nl->nibble;
-+	unsigned char *lbuf;
-+	unsigned long flags;
-+
-+	switch (rcv->state) {
-+	case PLIP_PK_TRIGGER:
-+		enable_par_irq(dev, 0);
-+		dev->interrupt = 0;
-+		z_writeb(0x01, PAR_DATA(dev)); /* send ACK */
-+		if (net_debug > 2)
-+			printk(KERN_DEBUG "%s: receive start\n", dev->name);
-+		rcv->state = PLIP_PK_LENGTH_LSB;
-+		rcv->nibble = PLIP_NB_BEGIN;
-+
-+	case PLIP_PK_LENGTH_LSB:
-+		if (snd->state != PLIP_PK_DONE) {
-+			if (plip_receive(dev, nl->trigger,
-+					 &rcv->nibble, &rcv->length.b.lsb)) {
-+				/* collision, here dev->tbusy == 1 */
-+				rcv->state = PLIP_PK_DONE;
-+				nl->is_deferred = 1;
-+				nl->connection = PLIP_CN_SEND;
-+				queue_task(&nl->deferred, &tq_timer);
-+				enable_par_irq(dev, 1);
-+				return OK;
-+			}
-+		} else {
-+			if (plip_receive(dev, nibble_timeout, 
-+					 &rcv->nibble, &rcv->length.b.lsb))
-+				return TIMEOUT;
-+		}
-+		rcv->state = PLIP_PK_LENGTH_MSB;
-+
-+	case PLIP_PK_LENGTH_MSB:
-+		if (plip_receive(dev, nibble_timeout, 
-+				 &rcv->nibble, &rcv->length.b.msb))
-+			return TIMEOUT;
-+		if (rcv->length.h > dev->mtu + dev->hard_header_len
-+		    || rcv->length.h < 8) {
-+			printk(KERN_INFO "%s: bogus packet size %d.\n",
-+			       dev->name, rcv->length.h);
-+			return ERROR;
-+		}
-+		/* Malloc up new buffer. */
-+		rcv->skb = dev_alloc_skb(rcv->length.h);
-+		if (rcv->skb == NULL) {
-+			printk(KERN_INFO "%s: Memory squeeze.\n", dev->name);
-+			return ERROR;
-+		}
-+		skb_put(rcv->skb,rcv->length.h);
-+		rcv->skb->dev = dev;
-+		rcv->state = PLIP_PK_DATA;
-+		rcv->byte = 0;
-+		rcv->checksum = 0;
-+
-+	case PLIP_PK_DATA:
-+		lbuf = rcv->skb->data;
-+		do
-+			if (plip_receive(dev, nibble_timeout, 
-+					 &rcv->nibble, &lbuf[rcv->byte]))
-+				return TIMEOUT;
-+		while (++rcv->byte < rcv->length.h);
-+		do
-+			rcv->checksum += lbuf[--rcv->byte];
-+		while (rcv->byte);
-+		rcv->state = PLIP_PK_CHECKSUM;
-+
-+	case PLIP_PK_CHECKSUM:
-+		if (plip_receive(dev, nibble_timeout, 
-+				 &rcv->nibble, &rcv->data))
-+			return TIMEOUT;
-+		if (rcv->data != rcv->checksum) {
-+			nl->enet_stats.rx_crc_errors++;
-+			if (net_debug)
-+				printk(KERN_INFO "%s: checksum error\n",
-+				       dev->name);
-+			return ERROR;
-+		}
-+		rcv->state = PLIP_PK_DONE;
-+
-+	case PLIP_PK_DONE:
-+		/* Inform the upper layer for the arrival of a packet. */
-+		rcv->skb->protocol=eth_type_trans(rcv->skb, dev);
-+		netif_rx(rcv->skb);
-+		nl->enet_stats.rx_packets++;
-+		rcv->skb = NULL;
-+		if (net_debug > 2)
-+			printk(KERN_DEBUG "%s: receive end\n", dev->name);
-+
-+		/* Close the connection. */
-+		z_writeb (0x00, PAR_DATA(dev));
-+
-+		local_irq_save(flags);
-+		if (snd->state != PLIP_PK_DONE) {
-+			nl->connection = PLIP_CN_SEND;
-+			local_irq_restore(flags);
-+			queue_task(&nl->immediate, &tq_immediate);
-+			mark_bh(IMMEDIATE_BH);
-+			enable_par_irq(dev, 1);
-+			return OK;
-+		} else {
-+			nl->connection = PLIP_CN_NONE;
-+			local_irq_restore(flags);
-+			enable_par_irq(dev, 1);
-+			return OK;
-+		}
-+	}
-+	return OK;
-+}
-+
-+/* PLIP_SEND --- send a byte (two nibbles) 
-+   Returns OK on success, TIMEOUT when timeout    */
-+inline static int
-+plip_send(struct device *dev, unsigned short nibble_timeout, 
-+	  enum plip_nibble_state *ns_p, unsigned char data)
-+{
-+	unsigned char c0;
-+	unsigned int cx;
-+
-+	switch (*ns_p) {
-+	case PLIP_NB_BEGIN:
-+		z_writeb((data & 0x0f), PAR_DATA(dev));
-+		*ns_p = PLIP_NB_1;
-+
-+	case PLIP_NB_1:
-+		z_writeb(0x10 | (data & 0x0f), PAR_DATA(dev));
-+		cx = nibble_timeout;
-+		while (1) {
-+			c0 = z_readb(PAR_STATUS(dev));
-+			if ((c0 & 0x80) == 0) 
-+				break;
-+			if (--cx == 0)
-+				return TIMEOUT;
-+			udelay(PLIP_DELAY_UNIT);
-+		}
-+		z_writeb(0x10 | (data >> 4), PAR_DATA(dev));
-+		*ns_p = PLIP_NB_2;
-+
-+	case PLIP_NB_2:
-+		z_writeb((data >> 4), PAR_DATA(dev));
-+		cx = nibble_timeout;
-+		while (1) {
-+			c0 = z_readb(PAR_STATUS(dev));
-+			if (c0 & 0x80)
-+				break;
-+			if (--cx == 0)
-+				return TIMEOUT;
-+			udelay(PLIP_DELAY_UNIT);
-+		}
-+		*ns_p = PLIP_NB_BEGIN;
-+		return OK;
-+	}
-+	return OK;
-+}
-+
-+/* PLIP_SEND_PACKET --- send a packet */
-+static int
-+plip_send_packet(struct device *dev, struct net_local *nl,
-+		 struct plip_local *snd, struct plip_local *rcv)
-+{
-+	unsigned short nibble_timeout = nl->nibble;
-+	unsigned char *lbuf;
-+	unsigned char c0;
-+	unsigned int cx;
-+	unsigned long flags;
-+
-+	if (snd->skb == NULL || (lbuf = snd->skb->data) == NULL) {
-+		printk(KERN_INFO "%s: send skb lost\n", dev->name);
-+		snd->state = PLIP_PK_DONE;
-+		snd->skb = NULL;
-+		return ERROR;
-+	}
-+
-+	if (snd->length.h == 0) {
-+		return OK;
-+	}
-+
-+	switch (snd->state) {
-+	case PLIP_PK_TRIGGER:
-+		if ((z_readb(PAR_STATUS(dev)) & 0xf8) != 0x80)
-+			return TIMEOUT;
-+
-+		/* Trigger remote rx interrupt. */
-+		z_writeb(0x08, PAR_DATA(dev));
-+		cx = nl->trigger;
-+		while (1) {
-+			udelay(PLIP_DELAY_UNIT);
-+                        local_irq_save(flags);
-+			if (nl->connection == PLIP_CN_RECEIVE) {
-+				local_irq_restore(flags);
-+				/* interrupted */
-+				nl->enet_stats.collisions++;
-+				if (net_debug > 1)
-+					printk(KERN_INFO "%s: collision.\n",
-+					       dev->name);
-+				return OK;
-+			}
-+			c0 = z_readb(PAR_STATUS(dev));
-+			if (c0 & 0x08) {
-+				enable_par_irq(dev, 0);
-+				if (net_debug > 2)
-+					printk(KERN_DEBUG "%s: send start\n",
-+					       dev->name);
-+				snd->state = PLIP_PK_LENGTH_LSB;
-+				snd->nibble = PLIP_NB_BEGIN;
-+				nl->timeout_count = 0;
-+				local_irq_restore(flags);
-+				break;
-+			}
-+			local_irq_restore(flags);
-+			if (--cx == 0) {
-+				z_writeb(0x00, PAR_DATA(dev));
-+				return TIMEOUT;
-+			}
-+		}
-+
-+	case PLIP_PK_LENGTH_LSB:
-+		if (plip_send(dev, nibble_timeout, 
-+			      &snd->nibble, snd->length.b.lsb))
-+			return TIMEOUT;
-+		snd->state = PLIP_PK_LENGTH_MSB;
-+
-+	case PLIP_PK_LENGTH_MSB:
-+		if (plip_send(dev, nibble_timeout, 
-+			      &snd->nibble, snd->length.b.msb))
-+			return TIMEOUT;
-+		snd->state = PLIP_PK_DATA;
-+		snd->byte = 0;
-+		snd->checksum = 0;
-+
-+	case PLIP_PK_DATA:
-+		do
-+			if (plip_send(dev, nibble_timeout, 
-+				      &snd->nibble, lbuf[snd->byte]))
-+				return TIMEOUT;
-+		while (++snd->byte < snd->length.h);
-+		do
-+			snd->checksum += lbuf[--snd->byte];
-+		while (snd->byte);
-+		snd->state = PLIP_PK_CHECKSUM;
-+
-+	case PLIP_PK_CHECKSUM:
-+		if (plip_send(dev, nibble_timeout, 
-+			      &snd->nibble, snd->checksum))
-+			return TIMEOUT;
-+
-+		dev_kfree_skb(snd->skb);
-+		nl->enet_stats.tx_packets++;
-+		snd->state = PLIP_PK_DONE;
-+
-+	case PLIP_PK_DONE:
-+		/* Close the connection */
-+		z_writeb (0x00, PAR_DATA(dev));
-+		snd->skb = NULL;
-+		if (net_debug > 2)
-+			printk(KERN_DEBUG "%s: send end\n", dev->name);
-+		nl->connection = PLIP_CN_CLOSING;
-+		nl->is_deferred = 1;
-+		queue_task(&nl->deferred, &tq_timer);
-+		enable_par_irq(dev, 1);
-+		return OK;
-+	}
-+	return OK;
-+}
-+
-+static int
-+plip_connection_close(struct device *dev, struct net_local *nl,
-+		      struct plip_local *snd, struct plip_local *rcv)
-+{
-+	unsigned long flags;
-+
-+        local_irq_save(flags);
-+	if (nl->connection == PLIP_CN_CLOSING) {
-+		nl->connection = PLIP_CN_NONE;
-+		dev->tbusy = 0;
-+		mark_bh(NET_BH);
-+	}
-+	local_irq_restore(flags);
-+	return OK;
-+}
-+
-+/* PLIP_ERROR --- wait till other end settled */
-+static int
-+plip_error(struct device *dev, struct net_local *nl,
-+	   struct plip_local *snd, struct plip_local *rcv)
-+{
-+	unsigned char status;
-+
-+	status = z_readb(PAR_STATUS(dev));
-+	if ((status & 0xf8) == 0x80) {
-+		if (net_debug > 2)
-+			printk(KERN_DEBUG "%s: reset interface.\n", dev->name);
-+		nl->connection = PLIP_CN_NONE;
-+		dev->tbusy = 0;
-+		dev->interrupt = 0;
-+		enable_par_irq(dev, 1);
-+		mark_bh(NET_BH);
-+	} else {
-+		nl->is_deferred = 1;
-+		queue_task(&nl->deferred, &tq_timer);
-+	}
-+
-+	return OK;
-+}
-+
-+/* We don't need to send arp, for plip is point-to-point. */
-+static int
-+plip_rebuild_header(struct sk_buff *skb)
-+{
-+	struct device *dev = skb->dev;
-+	struct net_local *nl = (struct net_local *)dev->priv;
-+	struct ethhdr *eth = (struct ethhdr *)skb->data;
-+	int i;
-+
-+	if ((dev->flags & IFF_NOARP)==0)
-+		return nl->orig_rebuild_header(skb);
-+
-+	if (eth->h_proto != __constant_htons(ETH_P_IP)
-+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
-+	    && eth->h_proto != __constant_htons(ETH_P_IPV6)
-+#endif
-+		) {
-+		printk(KERN_ERR "plip_rebuild_header: Don't know how to resolve type %d addresses?\n", (int)eth->h_proto);
-+		memcpy(eth->h_source, dev->dev_addr, dev->addr_len);
-+		return 0;
-+	}
-+
-+	for (i=0; i < ETH_ALEN - sizeof(u32); i++)
-+		eth->h_dest[i] = 0xfc;
-+#if 0
-+	*(u32 *)(eth->h_dest+i) = dst;
-+#else
-+	/* Do not want to include net/route.h here.
-+	 * In any case, it is TOP of silliness to emulate
-+	 * hardware addresses on PtP link. --ANK
-+	 */
-+	*(u32 *)(eth->h_dest+i) = 0;
-+#endif
-+	return 0;
-+}
-+
-+static int
-+plip_tx_packet(struct sk_buff *skb, struct device *dev)
-+{
-+	struct net_local *nl = (struct net_local *)dev->priv;
-+	struct plip_local *snd = &nl->snd_data;
-+	unsigned long flags;
-+
-+	if (dev->tbusy)
-+		return 1;
-+
-+	if (test_and_set_bit(0, (void*)&dev->tbusy) != 0) {
-+		printk(KERN_ERR "%s: Transmitter access conflict.\n",
-+		       dev->name);
-+		return 1;
-+	}
-+
-+	if (skb->len > dev->mtu + dev->hard_header_len) {
-+		printk(KERN_ERR "%s: packet too big, %d.\n",
-+		       dev->name, (int)skb->len);
-+		dev->tbusy = 0;
-+		return 0;
-+	}
-+
-+	if (net_debug > 2)
-+		printk(KERN_DEBUG "%s: send request\n", dev->name);
-+
-+	local_irq_save(flags);
-+	dev->trans_start = jiffies;
-+	snd->skb = skb;
-+	snd->length.h = skb->len;
-+	snd->state = PLIP_PK_TRIGGER;
-+	if (nl->connection == PLIP_CN_NONE) {
-+		nl->connection = PLIP_CN_SEND;
-+		nl->timeout_count = 0;
-+	}
-+	queue_task(&nl->immediate, &tq_immediate);
-+	mark_bh(IMMEDIATE_BH);
-+	local_irq_restore(flags);
-+
-+	return 0;
-+}
-+
-+/* Open/initialize the board.  This is called (in the current kernel)
-+   sometime after booting when the 'ifconfig' program is run.
-+
-+ */
-+static int
-+plip_open(struct device *dev)
-+{
-+	struct net_local *nl = (struct net_local *)dev->priv;
-+	struct in_device *in_dev;
-+
-+#if defined(CONFIG_GVPIOEXT_LP) || defined(CONFIG_GVPIOEXT_LP_MODULE)
-+	/* Yes, there is a race condition here. Fix it later */
-+	if (PLIP_DEV(dev)->par_use & IOEXT_PAR_LP) {
-+		/* Can't open if lp is in use */
-+#if DEBUG
-+		printk("par is in use by lp\n");
-+#endif
-+		return(-EBUSY);
-+	}
-+#endif
-+	PLIP_DEV(dev)->par_use |= IOEXT_PAR_PLIP;
-+
-+#if DEBUG
-+	printk("plip_open(): sending 00 to data port\n");
-+#endif
-+
-+	/* Clear the data port. */
-+	z_writeb (0x00, PAR_DATA(dev));
-+
-+#if DEBUG
-+	printk("plip_open(): sent\n");
-+#endif
-+
-+	/* Initialize the state machine. */
-+	nl->rcv_data.state = nl->snd_data.state = PLIP_PK_DONE;
-+	nl->rcv_data.skb = nl->snd_data.skb = NULL;
-+	nl->connection = PLIP_CN_NONE;
-+	nl->is_deferred = 0;
-+
-+	/* Fill in the MAC-level header.
-+	   (ab)Use "dev->broadcast" to store point-to-point MAC address.
-+
-+	   PLIP doesn't have a real mac address, but we need to create one
-+	   to be DOS compatible.  */
-+	memset(dev->dev_addr,  0xfc, ETH_ALEN);
-+	memset(dev->broadcast, 0xfc, ETH_ALEN);
-+
-+	if ((in_dev=dev->ip_ptr) != NULL) {
-+		/*
-+		 *	Any address will do - we take the first
++		int sectors;
++		/* Atari GEMDOS partitions always have 16-bit fat */
++		if (sbi->fat_bits != 32)
++			sbi->fat_bits = 16;
++		/* If more clusters than fat entries in 16-bit fat, we assume
++		 * it's a real MSDOS partition with 12-bit fat.
 +		 */
-+		struct in_ifaddr *ifa=in_dev->ifa_list;
-+		if (ifa != NULL) {
-+			memcpy(dev->dev_addr+2, &ifa->ifa_local, 4);
-+			memcpy(dev->broadcast+2, &ifa->ifa_address, 4);
-+		}
++		if (sbi->fat_bits != 32 && total_clusters+2 > sbi->
++			fat_length*SECTOR_SIZE*8/sbi->fat_bits)
++			sbi->fat_bits = 12;
++		/* if it's a floppy disk --> 12bit fat */
++		if (sbi->fat_bits != 32 && MAJOR(sb->s_dev) == FLOPPY_MAJOR)
++			sbi->fat_bits = 12;
++		/* if it's a ramdisk or loopback device and has one of the usual
++		 * floppy sizes -> 12bit FAT  */
++		sectors = total_sectors + sbi->data_start;
++		if (sbi->fat_bits != 32 && (MAJOR(sb->s_dev) == RAMDISK_MAJOR ||
++			 MAJOR(sb->s_dev) == LOOP_MAJOR) &&
++			(sectors == 720 || sectors == 1440 || sectors == 2880))
++			sbi->fat_bits = 12;
 +	}
-+
-+	dev->interrupt = 0;
-+	dev->start = 1;
-+	dev->tbusy = 0;
-+
-+	MOD_INC_USE_COUNT;
-+
-+	/* Enable rx interrupt. */
-+	enable_par_irq(dev, 1);
-+
-+	return 0;
-+}
-+
-+/* The inverse routine to plip_open (). */
-+static int
-+plip_close(struct device *dev)
-+{
-+	struct net_local *nl = (struct net_local *)dev->priv;
-+	struct plip_local *snd = &nl->snd_data;
-+	struct plip_local *rcv = &nl->rcv_data;
-+	unsigned long flags;
-+
-+	dev->tbusy = 1;
-+	dev->start = 0;
-+        local_irq_save(flags);
-+	nl->is_deferred = 0;
-+	nl->connection = PLIP_CN_NONE;
-+	local_irq_restore(flags);
-+	z_writeb(0x00, PAR_DATA(dev));
-+
-+	snd->state = PLIP_PK_DONE;
-+	if (snd->skb) {
-+		dev_kfree_skb(snd->skb);
-+		snd->skb = NULL;
-+	}
-+	rcv->state = PLIP_PK_DONE;
-+	if (rcv->skb) {
-+		kfree_skb(rcv->skb);
-+		rcv->skb = NULL;
-+	}
-+
-+	PLIP_DEV(dev)->par_use &= ~IOEXT_PAR_PLIP;
-+
-+	MOD_DEC_USE_COUNT;
-+	return 0;
-+}
-+
-+static struct enet_statistics *
-+plip_get_stats(struct device *dev)
-+{
-+	struct net_local *nl = (struct net_local *)dev->priv;
-+	struct enet_statistics *r = &nl->enet_stats;
-+
-+	return r;
-+}
-+
-+static int
-+plip_config(struct device *dev, struct ifmap *map)
-+{
-+	if (dev->flags & IFF_UP)
-+		return -EBUSY;
-+
-+	printk(KERN_INFO "%s: This interface is autodetected (ignored).\n",
-+	       dev->name);
-+
-+	return 0;
-+}
-+
-+static int
-+plip_ioctl(struct device *dev, struct ifreq *rq, int cmd)
-+{
-+	struct net_local *nl = (struct net_local *) dev->priv;
-+	struct plipconf *pc = (struct plipconf *) &rq->ifr_data;
-+  
-+	switch(pc->pcmd) {
-+	case PLIP_GET_TIMEOUT:
-+		pc->trigger = nl->trigger;
-+		pc->nibble  = nl->nibble;
-+		break;
-+	case PLIP_SET_TIMEOUT:
-+		nl->trigger = pc->trigger;
-+		nl->nibble  = pc->nibble;
-+		break;
-+	default:
-+		return -EOPNOTSUPP;
-+	}
-+	return 0;
-+}
-+
-+/*
-+ * Detect and initialize all IO-Extenders in this system.
-+ *
-+ * Both PLIP and serial devices are configured.
-+ */
-+int plip_init(struct device *dev)
-+{
-+	IOEXT_struct *board;
-+	struct net_local *nl;
-+
-+	if (ioext_num == 0) {
-+		printk(KERN_INFO "%s\n", version);
-+	}
-+
-+	board = PLIP_DEV(dev)->board;
-+	dev->base_addr = (unsigned long)&board->par.DATA;
-+
-+	/* Cheat and use irq to index into our table */
-+	dev->irq = ioext_num;
-+
-+	printk(KERN_INFO "%s: IO-Extender parallel port at 0x%08lX\n", dev->name, dev->base_addr);
-+
-+	/* Fill in the generic fields of the device structure. */
-+	ether_setup(dev);
-+
-+	/* Then, override parts of it */
-+	dev->hard_start_xmit  = plip_tx_packet;
-+	dev->open    = plip_open;
-+	dev->stop    = plip_close;
-+	dev->get_stats     = plip_get_stats;
-+	dev->set_config    = plip_config;
-+	dev->do_ioctl    = plip_ioctl;
-+	dev->tx_queue_len  = 10;
-+	dev->flags          = IFF_POINTOPOINT|IFF_NOARP;
-+
-+	/* Set the private structure */
-+	dev->priv = kmalloc(sizeof (struct net_local), GFP_KERNEL);
-+	if (dev->priv == NULL) {
-+		printk(KERN_ERR "%s: out of memory\n", dev->name);
-+		return -ENOMEM;
-+	}
-+	memset(dev->priv, 0, sizeof(struct net_local));
-+	nl = (struct net_local *) dev->priv;
-+
-+	nl->orig_rebuild_header = dev->rebuild_header;
-+	dev->rebuild_header   = plip_rebuild_header;
-+
-+	/* Initialize constants */
-+	nl->trigger  = PLIP_TRIGGER_WAIT;
-+	nl->nibble  = PLIP_NIBBLE_WAIT;
-+
-+	/* Initialize task queue structures */
-+	nl->immediate.next = NULL;
-+	nl->immediate.sync = 0;
-+	nl->immediate.routine = (void *)(void *)plip_bh;
-+	nl->immediate.data = dev;
-+
-+	nl->deferred.next = NULL;
-+	nl->deferred.sync = 0;
-+	nl->deferred.routine = (void *)(void *)plip_kick_bh;
-+	nl->deferred.data = dev;
-+
-+	/* Don't enable interrupts yet */
-+
-+	return 0;
-+}
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/ide/ide-iops.c linux-2.6.13/drivers/ide/ide-iops.c
---- linux-2.6.13-i386/drivers/ide/ide-iops.c	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/drivers/ide/ide-iops.c	2005-08-30 16:32:55.000000000 +0200
-@@ -341,6 +341,23 @@
- 	int i;
- 	u16 *stringcast;
  
-+#ifdef __mc68000__
-+	if (!MACH_IS_AMIGA && !MACH_IS_MAC && !MACH_IS_Q40 && !MACH_IS_ATARI)
-+		return;
-+
-+#ifdef M68K_IDE_SWAPW
-+	if (M68K_IDE_SWAPW) {	/* fix bus byteorder first */
-+		u_char *p = (u_char *)id;
-+		u_char t;
-+		for (i = 0; i < 512; i += 2) {
-+			t = p[i];
-+			p[i] = p[i+1];
-+			p[i+1] = t;
-+		}
-+	}
-+#endif
-+#endif /* __mc68000__ */
-+
- 	id->config         = __le16_to_cpu(id->config);
- 	id->cyls           = __le16_to_cpu(id->cyls);
- 	id->reserved2      = __le16_to_cpu(id->reserved2);
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/ide/legacy/gayle.c linux-2.6.13/drivers/ide/legacy/gayle.c
---- linux-2.6.13-i386/drivers/ide/legacy/gayle.c	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/drivers/ide/legacy/gayle.c	2005-09-02 16:32:11.000000000 +0200
-@@ -161,6 +161,7 @@
- 	base = (unsigned long)ZTWO_VADDR(phys_base);
- 	ctrlport = GAYLE_HAS_CONTROL_REG ? (base + GAYLE_CONTROL) : 0;
+ 	/* check that FAT table does not overflow */
+ 	fat_clusters = sbi->fat_length * sb->s_blocksize * 8 / sbi->fat_bits;
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/net/7990.c linux-2.6.13/drivers/net/7990.c
+--- linux-2.6.13-i386/drivers/net/7990.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/net/7990.c	2005-10-12 16:32:42.000000000 +0200
+@@ -500,7 +500,7 @@
+ 	int res;
+         
+         /* Install the Interrupt handler. Or we could shunt this out to specific drivers? */
+-        if (request_irq(lp->irq, lance_interrupt, 0, lp->name, dev))
++        if (request_irq(lp->irq, lance_interrupt, SA_SHIRQ, lp->name, dev))
+                 return -EAGAIN;
  
-+	memset(&hw, 0, sizeof(hw));
- 	ide_setup_ports(&hw, base, gayle_offsets,
- 			ctrlport, irqport, ack_intr,
- //			&gayle_iops,
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/input/keyboard/Kconfig linux-2.6.13/drivers/input/keyboard/Kconfig
---- linux-2.6.13-i386/drivers/input/keyboard/Kconfig	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/drivers/input/keyboard/Kconfig	2005-08-30 16:33:05.000000000 +0200
-@@ -154,7 +154,7 @@
- 
- config KEYBOARD_HIL_OLD
- 	tristate "HP HIL keyboard support (simple driver)"
--	depends on GSC
-+	depends on GSC || HP300
- 	default y
- 	help
- 	  The "Human Interface Loop" is a older, 8-channel USB-like
-@@ -171,7 +171,7 @@
- 
- config KEYBOARD_HIL
- 	tristate "HP HIL keyboard support"
--	depends on GSC
-+	depends on GSC || HP300
- 	default y
- 	select HP_SDC
- 	select HIL_MLC
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/input/misc/Kconfig linux-2.6.13/drivers/input/misc/Kconfig
---- linux-2.6.13-i386/drivers/input/misc/Kconfig	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/drivers/input/misc/Kconfig	2005-08-30 16:33:05.000000000 +0200
-@@ -51,7 +51,7 @@
- 
- config HP_SDC_RTC
- 	tristate "HP SDC Real Time Clock"       
--	depends on GSC
-+	depends on GSC || HP300
- 	select HP_SDC
- 	help
- 	  Say Y here if you want to support the built-in real time clock
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/input/mouse/Kconfig linux-2.6.13/drivers/input/mouse/Kconfig
---- linux-2.6.13-i386/drivers/input/mouse/Kconfig	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/drivers/input/mouse/Kconfig	2005-08-30 16:33:05.000000000 +0200
-@@ -129,7 +129,7 @@
- 
- config MOUSE_HIL
- 	tristate "HIL pointers (mice etc)."     
--	depends on GSC
-+	depends on GSC || HP300
- 	select HP_SDC
- 	select HIL_MLC
- 	help
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/input/serio/Kconfig linux-2.6.13/drivers/input/serio/Kconfig
---- linux-2.6.13-i386/drivers/input/serio/Kconfig	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/drivers/input/serio/Kconfig	2005-08-30 16:33:05.000000000 +0200
-@@ -112,7 +112,7 @@
- 
- config HP_SDC
- 	tristate "HP System Device Controller i8042 Support"
--	depends on GSC && SERIO
-+	depends on (GSC || HP300) && SERIO
- 	default y
- 	---help---
- 	  This option enables supports for the the "System Device
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/macintosh/adb.c linux-2.6.13/drivers/macintosh/adb.c
---- linux-2.6.13-i386/drivers/macintosh/adb.c	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/drivers/macintosh/adb.c	2005-08-30 16:33:07.000000000 +0200
-@@ -476,13 +476,15 @@
- 		use_sreq = 1;
- 	} else
- 		use_sreq = 0;
--	req->nbytes = nbytes+1;
-+	i = (flags & ADBREQ_RAW) ? 0 : 1;
-+	req->nbytes = nbytes+i;
- 	req->done = done;
- 	req->reply_expected = flags & ADBREQ_REPLY;
- 	req->data[0] = ADB_PACKET;
- 	va_start(list, nbytes);
--	for (i = 0; i < nbytes; ++i)
--		req->data[i+1] = va_arg(list, int);
-+	while (i < req->nbytes) {
-+		req->data[i++] = va_arg(list, int);
-+	}
- 	va_end(list);
- 
- 	if (flags & ADBREQ_NOSEND)
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/net/Kconfig linux-2.6.13/drivers/net/Kconfig
---- linux-2.6.13-i386/drivers/net/Kconfig	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/drivers/net/Kconfig	2005-08-30 16:33:24.000000000 +0200
-@@ -294,7 +294,7 @@
- 
- config MAC89x0
- 	tristate "Macintosh CS89x0 based ethernet cards"
--	depends on NET_ETHERNET && MAC && BROKEN
-+	depends on NET_ETHERNET && MAC
- 	---help---
- 	  Support for CS89x0 chipset based Ethernet cards.  If you have a
- 	  Nubus or LC-PDS network (Ethernet) card of this type, say Y and
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/net/mac89x0.c linux-2.6.13/drivers/net/mac89x0.c
---- linux-2.6.13-i386/drivers/net/mac89x0.c	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/drivers/net/mac89x0.c	2004-12-30 16:38:24.000000000 +0100
-@@ -128,7 +128,7 @@
- extern void reset_chip(struct net_device *dev);
- #endif
- static int net_open(struct net_device *dev);
--static int	net_send_packet(struct sk_buff *skb, struct net_device *dev);
-+static int net_send_packet(struct sk_buff *skb, struct net_device *dev);
- static irqreturn_t net_interrupt(int irq, void *dev_id, struct pt_regs *regs);
- static void set_multicast_list(struct net_device *dev);
- static void net_rx(struct net_device *dev);
-@@ -374,56 +374,37 @@
- static int
- net_send_packet(struct sk_buff *skb, struct net_device *dev)
- {
--	if (dev->tbusy) {
--		/* If we get here, some higher level has decided we are broken.
--		   There should really be a "kick me" function call instead. */
--		int tickssofar = jiffies - dev->trans_start;
--		if (tickssofar < 5)
--			return 1;
--		if (net_debug > 0) printk("%s: transmit timed out, %s?\n", dev->name,
--			   tx_done(dev) ? "IRQ conflict" : "network cable problem");
--		/* Try to restart the adaptor. */
--		dev->tbusy=0;
--		dev->trans_start = jiffies;
--	}
--
--	/* Block a timer-based transmit from overlapping.  This could better be
--	   done with atomic_swap(1, dev->tbusy), but set_bit() works as well. */
--	if (test_and_set_bit(0, (void*)&dev->tbusy) != 0)
--		printk("%s: Transmitter access conflict.\n", dev->name);
--	else {
--		struct net_local *lp = netdev_priv(dev);
--		unsigned long flags;
--
--		if (net_debug > 3)
--			printk("%s: sent %d byte packet of type %x\n",
--			       dev->name, skb->len,
--			       (skb->data[ETH_ALEN+ETH_ALEN] << 8)
--			       | skb->data[ETH_ALEN+ETH_ALEN+1]);
--
--		/* keep the upload from being interrupted, since we
--                   ask the chip to start transmitting before the
--                   whole packet has been completely uploaded. */
--		local_irq_save(flags);
--
--		/* initiate a transmit sequence */
--		writereg(dev, PP_TxCMD, lp->send_cmd);
--		writereg(dev, PP_TxLength, skb->len);
--
--		/* Test to see if the chip has allocated memory for the packet */
--		if ((readreg(dev, PP_BusST) & READY_FOR_TX_NOW) == 0) {
--			/* Gasp!  It hasn't.  But that shouldn't happen since
--			   we're waiting for TxOk, so return 1 and requeue this packet. */
--			local_irq_restore(flags);
--			return 1;
--		}
-+	struct net_local *lp = netdev_priv(dev);
-+	unsigned long flags;
- 
--		/* Write the contents of the packet */
--		memcpy_toio(dev->mem_start + PP_TxFrame, skb->data, skb->len+1);
-+	if (net_debug > 3)
-+		printk("%s: sent %d byte packet of type %x\n",
-+		       dev->name, skb->len,
-+		       (skb->data[ETH_ALEN+ETH_ALEN] << 8)
-+		       | skb->data[ETH_ALEN+ETH_ALEN+1]);
-+
-+	/* keep the upload from being interrupted, since we
-+	   ask the chip to start transmitting before the
-+	   whole packet has been completely uploaded. */
-+	local_irq_save(flags);
- 
-+	/* initiate a transmit sequence */
-+	writereg(dev, PP_TxCMD, lp->send_cmd);
-+	writereg(dev, PP_TxLength, skb->len);
-+
-+	/* Test to see if the chip has allocated memory for the packet */
-+	if ((readreg(dev, PP_BusST) & READY_FOR_TX_NOW) == 0) {
-+		/* Gasp!  It hasn't.  But that shouldn't happen since
-+		   we're waiting for TxOk, so return 1 and requeue this packet. */
- 		local_irq_restore(flags);
--		dev->trans_start = jiffies;
-+		return 1;
- 	}
-+
-+	/* Write the contents of the packet */
-+	memcpy((void *)(dev->mem_start + PP_TxFrame), skb->data, skb->len+1);
-+
-+	local_irq_restore(flags);
-+	dev->trans_start = jiffies;
- 	dev_kfree_skb (skb);
- 
- 	return 0;
-@@ -441,9 +422,6 @@
- 		printk ("net_interrupt(): irq %d for unknown device.\n", irq);
- 		return IRQ_NONE;
- 	}
--	if (dev->interrupt)
--		printk("%s: Re-entering the interrupt handler.\n", dev->name);
--	dev->interrupt = 1;
- 
- 	ioaddr = dev->base_addr;
- 	lp = netdev_priv(dev);
-@@ -464,8 +442,7 @@
- 			break;
- 		case ISQ_TRANSMITTER_EVENT:
- 			lp->stats.tx_packets++;
--			dev->tbusy = 0;
--			mark_bh(NET_BH);	/* Inform upper layers. */
-+			netif_wake_queue(dev);
- 			if ((status & TX_OK) == 0) lp->stats.tx_errors++;
- 			if (status & TX_LOST_CRS) lp->stats.tx_carrier_errors++;
- 			if (status & TX_SQE_ERROR) lp->stats.tx_heartbeat_errors++;
-@@ -479,8 +456,7 @@
-                                    That shouldn't happen since we only ever
-                                    load one packet.  Shrug.  Do the right
-                                    thing anyway. */
--				dev->tbusy = 0;
--				mark_bh(NET_BH);	/* Inform upper layers. */
-+				netif_wake_queue(dev);
- 			}
- 			if (status & TX_UNDERRUN) {
- 				if (net_debug > 0) printk("%s: transmit underrun\n", dev->name);
-@@ -497,7 +473,6 @@
- 			break;
- 		}
- 	}
--	dev->interrupt = 0;
- 	return IRQ_HANDLED;
- }
- 
-@@ -532,7 +507,7 @@
- 	skb_put(skb, length);
- 	skb->dev = dev;
- 
--	memcpy_fromio(skb->data, dev->mem_start + PP_RxFrame, length);
-+	memcpy(skb->data, (void *)(dev->mem_start + PP_RxFrame), length);
- 
- 	if (net_debug > 3)printk("%s: received %d byte packet of type %x\n",
-                                  dev->name, length,
-@@ -611,8 +586,6 @@
- static int set_mac_address(struct net_device *dev, void *addr)
- {
- 	int i;
--	if (dev->start)
--		return -EBUSY;
- 	printk("%s: Setting MAC address to ", dev->name);
- 	for (i = 0; i < 6; i++)
- 		printk(" %2.2x", dev->dev_addr[i] = ((unsigned char *)addr)[i]);
+         res = lance_reset(dev);
 diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/scsi/53c7xx.c linux-2.6.13/drivers/scsi/53c7xx.c
 --- linux-2.6.13-i386/drivers/scsi/53c7xx.c	2005-08-29 01:41:01.000000000 +0200
 +++ linux-2.6.13/drivers/scsi/53c7xx.c	2005-06-19 16:34:18.000000000 +0200
@@ -4590,36 +1474,6 @@
  
  #endif /* NCR53c710_C */
  #endif /* NCR53c710_H */
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/scsi/Kconfig linux-2.6.13/drivers/scsi/Kconfig
---- linux-2.6.13-i386/drivers/scsi/Kconfig	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/drivers/scsi/Kconfig	2005-08-30 16:33:54.000000000 +0200
-@@ -1627,7 +1627,7 @@
- 
- config SCSI_AMIGA7XX
- 	bool "Amiga NCR53c710 SCSI support (EXPERIMENTAL)"
--	depends on AMIGA && SCSI && EXPERIMENTAL && BROKEN
-+	depends on AMIGA && SCSI && EXPERIMENTAL
- 	help
- 	  Support for various NCR53c710-based SCSI controllers on the Amiga.
- 	  This includes:
-@@ -1724,7 +1724,7 @@
- 
- config MVME16x_SCSI
- 	bool "NCR53C710 SCSI driver for MVME16x"
--	depends on MVME16x && SCSI && BROKEN
-+	depends on MVME16x && SCSI
- 	help
- 	  The Motorola MVME162, 166, 167, 172 and 177 boards use the NCR53C710
- 	  SCSI controller chip.  Almost everyone using one of these boards
-@@ -1732,7 +1732,7 @@
- 
- config BVME6000_SCSI
- 	bool "NCR53C710 SCSI driver for BVME6000"
--	depends on BVME6000 && SCSI && BROKEN
-+	depends on BVME6000 && SCSI
- 	help
- 	  The BVME4000 and BVME6000 boards from BVM Ltd use the NCR53C710
- 	  SCSI controller chip.  Almost everyone using one of these boards
 diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/scsi/NCR5380.c linux-2.6.13/drivers/scsi/NCR5380.c
 --- linux-2.6.13-i386/drivers/scsi/NCR5380.c	2005-08-29 01:41:01.000000000 +0200
 +++ linux-2.6.13/drivers/scsi/NCR5380.c	2005-08-30 16:33:54.000000000 +0200
@@ -4639,981 +1493,6 @@
  static struct {
  	unsigned char mask;
  	const char *name;
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/scsi/amiga7xx.c linux-2.6.13/drivers/scsi/amiga7xx.c
---- linux-2.6.13-i386/drivers/scsi/amiga7xx.c	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/drivers/scsi/amiga7xx.c	2004-10-30 16:35:43.000000000 +0200
-@@ -27,8 +27,14 @@
- #include "scsi.h"
- #include <scsi/scsi_host.h>
- #include "53c7xx.h"
--#include "amiga7xx.h"
- 
-+#ifndef CMD_PER_LUN
-+#define CMD_PER_LUN 3
-+#endif
-+
-+#ifndef CAN_QUEUE
-+#define CAN_QUEUE 24
-+#endif
- 
- static int amiga7xx_register_one(Scsi_Host_Template *tpnt,
- 				 unsigned long address)
-@@ -115,8 +121,10 @@
- {
- 	if (shost->irq)
- 		free_irq(shost->irq, NULL);
-+#ifdef CONFIG_ISA
- 	if (shost->dma_channel != 0xff)
- 		free_dma(shost->dma_channel);
-+#endif
- 	if (shost->io_port && shost->n_io_port)
- 		release_region(shost->io_port, shost->n_io_port);
- 	scsi_unregister(shost);
-@@ -128,8 +136,9 @@
- 	.detect			= amiga7xx_detect,
- 	.release		= amiga7xx_release,
- 	.queuecommand		= NCR53c7xx_queue_command,
--	.abort			= NCR53c7xx_abort,
--	.reset			= NCR53c7xx_reset,
-+	.eh_abort_handler	= NCR53c7xx_abort,
-+	.eh_bus_reset_handler	= NCR53c7xx_reset,
-+	.slave_configure	= NCR53c7xx_slave_configure,
- 	.can_queue		= 24,
- 	.this_id		= 7,
- 	.sg_tablesize		= 63,
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/scsi/amiga7xx.h linux-2.6.13/drivers/scsi/amiga7xx.h
---- linux-2.6.13-i386/drivers/scsi/amiga7xx.h	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/drivers/scsi/amiga7xx.h	1970-01-01 01:00:00.000000000 +0100
-@@ -1,23 +0,0 @@
--#ifndef AMIGA7XX_H
--
--#include <linux/types.h>
--
--int amiga7xx_detect(Scsi_Host_Template *);
--const char *NCR53c7x0_info(void);
--int NCR53c7xx_queue_command(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
--int NCR53c7xx_abort(Scsi_Cmnd *);
--int NCR53c7x0_release (struct Scsi_Host *);
--int NCR53c7xx_reset(Scsi_Cmnd *, unsigned int);
--void NCR53c7x0_intr(int irq, void *dev_id, struct pt_regs * regs);
--
--#ifndef CMD_PER_LUN
--#define CMD_PER_LUN 3
--#endif
--
--#ifndef CAN_QUEUE
--#define CAN_QUEUE 24
--#endif
--
--#include <scsi/scsicam.h>
--
--#endif /* AMIGA7XX_H */
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/scsi/bvme6000.c linux-2.6.13/drivers/scsi/bvme6000.c
---- linux-2.6.13-i386/drivers/scsi/bvme6000.c	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/drivers/scsi/bvme6000.c	2004-10-30 16:35:43.000000000 +0200
-@@ -19,10 +19,16 @@
- #include "scsi.h"
- #include <scsi/scsi_host.h>
- #include "53c7xx.h"
--#include "bvme6000.h"
- 
- #include<linux/stat.h>
- 
-+#ifndef CMD_PER_LUN
-+#define CMD_PER_LUN 3
-+#endif
-+
-+#ifndef CAN_QUEUE
-+#define CAN_QUEUE 24
-+#endif
- 
- int bvme6000_scsi_detect(Scsi_Host_Template *tpnt)
- {
-@@ -52,8 +58,10 @@
- {
- 	if (shost->irq)
- 		free_irq(shost->irq, NULL);
-+#ifdef CONFIG_ISA
- 	if (shost->dma_channel != 0xff)
- 		free_dma(shost->dma_channel);
-+#endif
- 	if (shost->io_port && shost->n_io_port)
- 		release_region(shost->io_port, shost->n_io_port);
- 	scsi_unregister(shost);
-@@ -65,8 +73,9 @@
- 	.detect			= bvme6000_scsi_detect,
- 	.release		= bvme6000_scsi_release,
- 	.queuecommand		= NCR53c7xx_queue_command,
--	.abort			= NCR53c7xx_abort,
--	.reset			= NCR53c7xx_reset,
-+	.eh_abort_handler	= NCR53c7xx_abort,
-+	.eh_bus_reset_handler	= NCR53c7xx_reset,
-+	.slave_configure	= NCR53c7xx_slave_configure,
- 	.can_queue		= 24,
- 	.this_id		= 7,
- 	.sg_tablesize		= 63,
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/scsi/bvme6000.h linux-2.6.13/drivers/scsi/bvme6000.h
---- linux-2.6.13-i386/drivers/scsi/bvme6000.h	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/drivers/scsi/bvme6000.h	1970-01-01 01:00:00.000000000 +0100
-@@ -1,24 +0,0 @@
--#ifndef BVME6000_SCSI_H
--#define BVME6000_SCSI_H
--
--#include <linux/types.h>
--
--int bvme6000_scsi_detect(Scsi_Host_Template *);
--const char *NCR53c7x0_info(void);
--int NCR53c7xx_queue_command(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
--int NCR53c7xx_abort(Scsi_Cmnd *);
--int NCR53c7x0_release (struct Scsi_Host *);
--int NCR53c7xx_reset(Scsi_Cmnd *, unsigned int);
--void NCR53c7x0_intr(int irq, void *dev_id, struct pt_regs * regs);
--
--#ifndef CMD_PER_LUN
--#define CMD_PER_LUN 3
--#endif
--
--#ifndef CAN_QUEUE
--#define CAN_QUEUE 24
--#endif
--
--#include <scsi/scsicam.h>
--
--#endif /* BVME6000_SCSI_H */
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/scsi/mvme16x.c linux-2.6.13/drivers/scsi/mvme16x.c
---- linux-2.6.13-i386/drivers/scsi/mvme16x.c	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/drivers/scsi/mvme16x.c	2004-10-30 16:35:43.000000000 +0200
-@@ -17,10 +17,16 @@
- #include "scsi.h"
- #include <scsi/scsi_host.h>
- #include "53c7xx.h"
--#include "mvme16x.h"
- 
- #include<linux/stat.h>
- 
-+#ifndef CMD_PER_LUN
-+#define CMD_PER_LUN 3
-+#endif
-+
-+#ifndef CAN_QUEUE
-+#define CAN_QUEUE 24
-+#endif
- 
- int mvme16x_scsi_detect(Scsi_Host_Template *tpnt)
- {
-@@ -54,8 +60,10 @@
- {
- 	if (shost->irq)
- 		free_irq(shost->irq, NULL);
-+#ifdef CONFIG_ISA
- 	if (shost->dma_channel != 0xff)
- 		free_dma(shost->dma_channel);
-+#endif
- 	if (shost->io_port && shost->n_io_port)
- 		release_region(shost->io_port, shost->n_io_port);
- 	scsi_unregister(shost);
-@@ -67,8 +75,9 @@
- 	.detect			= mvme16x_scsi_detect,
- 	.release		= mvme16x_scsi_release,
- 	.queuecommand		= NCR53c7xx_queue_command,
--	.abort			= NCR53c7xx_abort,
--	.reset			= NCR53c7xx_reset,
-+	.eh_abort_handler	= NCR53c7xx_abort,
-+	.eh_bus_reset_handler	= NCR53c7xx_reset,
-+	.slave_configure	= NCR53c7xx_slave_configure,
- 	.can_queue		= 24,
- 	.this_id		= 7,
- 	.sg_tablesize		= 63,
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/scsi/mvme16x.h linux-2.6.13/drivers/scsi/mvme16x.h
---- linux-2.6.13-i386/drivers/scsi/mvme16x.h	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/drivers/scsi/mvme16x.h	1970-01-01 01:00:00.000000000 +0100
-@@ -1,24 +0,0 @@
--#ifndef MVME16x_SCSI_H
--#define MVME16x_SCSI_H
--
--#include <linux/types.h>
--
--int mvme16x_scsi_detect(Scsi_Host_Template *);
--const char *NCR53c7x0_info(void);
--int NCR53c7xx_queue_command(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
--int NCR53c7xx_abort(Scsi_Cmnd *);
--int NCR53c7x0_release (struct Scsi_Host *);
--int NCR53c7xx_reset(Scsi_Cmnd *, unsigned int);
--void NCR53c7x0_intr(int irq, void *dev_id, struct pt_regs * regs);
--
--#ifndef CMD_PER_LUN
--#define CMD_PER_LUN 3
--#endif
--
--#ifndef CAN_QUEUE
--#define CAN_QUEUE 24
--#endif
--
--#include <scsi/scsicam.h>
--
--#endif /* MVME16x_SCSI_H */
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/fs/fat/inode.c linux-2.6.13/fs/fat/inode.c
---- linux-2.6.13-i386/fs/fat/inode.c	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/fs/fat/inode.c	2005-08-30 16:35:05.000000000 +0200
-@@ -11,12 +11,14 @@
-  */
- 
- #include <linux/module.h>
-+#include <linux/config.h>
- #include <linux/init.h>
- #include <linux/time.h>
- #include <linux/slab.h>
- #include <linux/smp_lock.h>
- #include <linux/seq_file.h>
- #include <linux/msdos_fs.h>
-+#include <linux/major.h>
- #include <linux/pagemap.h>
- #include <linux/buffer_head.h>
- #include <linux/mount.h>
-@@ -751,7 +753,7 @@
- 	Opt_check_n, Opt_check_r, Opt_check_s, Opt_uid, Opt_gid,
- 	Opt_umask, Opt_dmask, Opt_fmask, Opt_codepage, Opt_nocase,
- 	Opt_quiet, Opt_showexec, Opt_debug, Opt_immutable,
--	Opt_dots, Opt_nodots,
-+	Opt_dots, Opt_nodots, Opt_atari_no, Opt_atari_yes,
- 	Opt_charset, Opt_shortname_lower, Opt_shortname_win95,
- 	Opt_shortname_winnt, Opt_shortname_mixed, Opt_utf8_no, Opt_utf8_yes,
- 	Opt_uni_xl_no, Opt_uni_xl_yes, Opt_nonumtail_no, Opt_nonumtail_yes,
-@@ -776,6 +778,9 @@
- 	{Opt_showexec, "showexec"},
- 	{Opt_debug, "debug"},
- 	{Opt_immutable, "sys_immutable"},
-+	{Opt_atari_yes, "atari=yes"},
-+	{Opt_atari_yes, "atari"},
-+	{Opt_atari_no, "atari=no"},
- 	{Opt_obsolate, "conv=binary"},
- 	{Opt_obsolate, "conv=text"},
- 	{Opt_obsolate, "conv=auto"},
-@@ -850,6 +855,13 @@
- 	opts->utf8 = opts->unicode_xlate = 0;
- 	opts->numtail = 1;
- 	opts->nocase = 0;
-+	opts->atari = 0;
-+
-+#ifdef CONFIG_ATARI
-+	if(MACH_IS_ATARI)
-+	/* make Atari GEMDOS format the default if machine is an Atari */
-+		opts->atari = 1;
-+#endif
- 	*debug = 0;
- 
- 	if (!options)
-@@ -898,6 +910,12 @@
- 		case Opt_immutable:
- 			opts->sys_immutable = 1;
- 			break;
-+		case Opt_atari_yes:
-+			opts->atari = 1;
-+			break;
-+		case Opt_atari_no:
-+			opts->atari = 0;
-+			break;
- 		case Opt_uid:
- 			if (match_int(&args[0], &option))
- 				return 0;
-@@ -1230,8 +1248,31 @@
- 
- 	total_clusters = (total_sectors - sbi->data_start) / sbi->sec_per_clus;
- 
--	if (sbi->fat_bits != 32)
--		sbi->fat_bits = (total_clusters > MAX_FAT12) ? 16 : 12;
-+	if (!sbi->options.atari) {
-+		if (sbi->fat_bits != 32)
-+			sbi->fat_bits = (total_clusters > MAX_FAT12) ? 16 : 12;
-+	} else {
-+		int sectors;
-+		/* Atari GEMDOS partitions always have 16-bit fat */
-+		if (sbi->fat_bits != 32)
-+			sbi->fat_bits = 16;
-+		/* If more clusters than fat entries in 16-bit fat, we assume
-+		 * it's a real MSDOS partition with 12-bit fat.
-+		 */
-+		if (sbi->fat_bits != 32 && total_clusters+2 > sbi->
-+			fat_length*SECTOR_SIZE*8/sbi->fat_bits)
-+			sbi->fat_bits = 12;
-+		/* if it's a floppy disk --> 12bit fat */
-+		if (sbi->fat_bits != 32 && MAJOR(sb->s_dev) == FLOPPY_MAJOR)
-+			sbi->fat_bits = 12;
-+		/* if it's a ramdisk or loopback device and has one of the usual
-+		 * floppy sizes -> 12bit FAT  */
-+		sectors = total_sectors + sbi->data_start;
-+		if (sbi->fat_bits != 32 && (MAJOR(sb->s_dev) == RAMDISK_MAJOR ||
-+			 MAJOR(sb->s_dev) == LOOP_MAJOR) &&
-+			(sectors == 720 || sectors == 1440 || sectors == 2880))
-+			sbi->fat_bits = 12;
-+	}
- 
- 	/* check that FAT table does not overflow */
- 	fat_clusters = sbi->fat_length * sb->s_blocksize * 8 / sbi->fat_bits;
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/include/asm-m68k/cacheflush.h linux-2.6.13/include/asm-m68k/cacheflush.h
---- linux-2.6.13-i386/include/asm-m68k/cacheflush.h	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/include/asm-m68k/cacheflush.h	2005-08-30 16:36:03.000000000 +0200
-@@ -130,20 +130,25 @@
- #define flush_dcache_mmap_lock(mapping)		do { } while (0)
- #define flush_dcache_mmap_unlock(mapping)	do { } while (0)
- #define flush_icache_page(vma, page)	__flush_page_to_ram(page_address(page))
--#define flush_icache_user_range(vma,pg,adr,len)	do { } while (0)
--
--#define copy_to_user_page(vma, page, vaddr, dst, src, len) \
--	do {							\
--		flush_cache_page(vma, vaddr, page_to_pfn(page));\
--		memcpy(dst, src, len);				\
--	} while (0)
--
--#define copy_from_user_page(vma, page, vaddr, dst, src, len) \
--	do {							\
--		flush_cache_page(vma, vaddr, page_to_pfn(page));\
--		memcpy(dst, src, len);				\
--	} while (0)
- 
-+extern void flush_icache_user_range(struct vm_area_struct *vma, struct page *page,
-+				    unsigned long addr, int len);
- extern void flush_icache_range(unsigned long address, unsigned long endaddr);
- 
-+static inline void copy_to_user_page(struct vm_area_struct *vma,
-+				     struct page *page, unsigned long vaddr,
-+				     void *dst, void *src, int len)
-+{
-+	flush_cache_page(vma, vaddr, page_to_pfn(page));
-+	memcpy(dst, src, len);
-+	flush_icache_user_range(vma, page, vaddr, len);
-+}
-+static inline void copy_from_user_page(struct vm_area_struct *vma,
-+				       struct page *page, unsigned long vaddr,
-+				       void *dst, void *src, int len)
-+{
-+	flush_cache_page(vma, vaddr, page_to_pfn(page));
-+	memcpy(dst, src, len);
-+}
-+
- #endif /* _M68K_CACHEFLUSH_H */
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/include/asm-m68k/io.h linux-2.6.13/include/asm-m68k/io.h
---- linux-2.6.13-i386/include/asm-m68k/io.h	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/include/asm-m68k/io.h	2005-06-19 16:35:42.000000000 +0200
-@@ -324,8 +324,6 @@
- #define writel(val,addr) out_le32((addr),(val))
- #endif
- 
--#define mmiowb()
--
- static inline void *ioremap(unsigned long physaddr, unsigned long size)
- {
- 	return __ioremap(physaddr, size, IOMAP_NOCACHE_SER);
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/include/asm-m68k/processor.h linux-2.6.13/include/asm-m68k/processor.h
---- linux-2.6.13-i386/include/asm-m68k/processor.h	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/include/asm-m68k/processor.h	2005-05-30 16:33:26.000000000 +0200
-@@ -14,6 +14,7 @@
- #define current_text_addr() ({ __label__ _l; _l: &&_l;})
- 
- #include <linux/config.h>
-+#include <linux/thread_info.h>
- #include <asm/segment.h>
- #include <asm/fpu.h>
- #include <asm/ptrace.h>
-@@ -55,17 +56,6 @@
- #endif
- #define TASK_UNMAPPED_ALIGN(addr, off)	PAGE_ALIGN(addr)
- 
--struct task_work {
--	unsigned char sigpending;
--	unsigned char notify_resume;	/* request for notification on
--					   userspace execution resumption */
--	char          need_resched;
--	unsigned char delayed_trace;	/* single step a syscall */
--	unsigned char syscall_trace;	/* count of syscall interceptors */
--	unsigned char memdie;		/* task was selected to be killed */
--	unsigned char pad[2];
--};
--
- struct thread_struct {
- 	unsigned long  ksp;		/* kernel stack pointer */
- 	unsigned long  usp;		/* user stack pointer */
-@@ -78,7 +68,7 @@
- 	unsigned long  fp[8*3];
- 	unsigned long  fpcntl[3];	/* fp control regs */
- 	unsigned char  fpstate[FPSTATESIZE];  /* floating point state */
--	struct task_work work;
-+	struct thread_info info;
- };
- 
- #define INIT_THREAD  {							\
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/include/asm-m68k/serial.h linux-2.6.13/include/asm-m68k/serial.h
---- linux-2.6.13-i386/include/asm-m68k/serial.h	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/include/asm-m68k/serial.h	2005-08-30 16:36:03.000000000 +0200
-@@ -26,9 +26,11 @@
- #define STD_COM4_FLAGS ASYNC_BOOT_AUTOCONF
- #endif
- 
-+#ifdef CONFIG_ISA
- #define SERIAL_PORT_DFNS			\
- 	/* UART CLK   PORT IRQ     FLAGS        */			\
- 	{ 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS },	/* ttyS0 */	\
- 	{ 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS },	/* ttyS1 */	\
- 	{ 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS },	/* ttyS2 */	\
- 	{ 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS },	/* ttyS3 */
-+#endif
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/include/asm-m68k/string.h linux-2.6.13/include/asm-m68k/string.h
---- linux-2.6.13-i386/include/asm-m68k/string.h	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/include/asm-m68k/string.h	2005-08-30 16:36:03.000000000 +0200
-@@ -80,43 +80,6 @@
-   return( (char *) s);
- }
- 
--#if 0
--#define __HAVE_ARCH_STRPBRK
--static inline char *strpbrk(const char *cs,const char *ct)
--{
--  const char *sc1,*sc2;
--
--  for( sc1 = cs; *sc1 != '\0'; ++sc1)
--    for( sc2 = ct; *sc2 != '\0'; ++sc2)
--      if (*sc1 == *sc2)
--	return((char *) sc1);
--  return( NULL );
--}
--#endif
--
--#if 0
--#define __HAVE_ARCH_STRSPN
--static inline size_t strspn(const char *s, const char *accept)
--{
--  const char *p;
--  const char *a;
--  size_t count = 0;
--
--  for (p = s; *p != '\0'; ++p)
--    {
--      for (a = accept; *a != '\0'; ++a)
--        if (*p == *a)
--          break;
--      if (*a == '\0')
--        return count;
--      else
--        ++count;
--    }
--
--  return count;
--}
--#endif
--
- /* strstr !! */
- 
- #define __HAVE_ARCH_STRLEN
-@@ -173,370 +136,18 @@
- }
- 
- #define __HAVE_ARCH_MEMSET
--/*
-- * This is really ugly, but its highly optimizatiable by the
-- * compiler and is meant as compensation for gcc's missing
-- * __builtin_memset(). For the 680[23]0	it might be worth considering
-- * the optimal number of misaligned writes compared to the number of
-- * tests'n'branches needed to align the destination address. The
-- * 680[46]0 doesn't really care due to their copy-back caches.
-- *						10/09/96 - Jes Sorensen
-- */
--static inline void * __memset_g(void * s, int c, size_t count)
--{
--  void *xs = s;
--  size_t temp;
--
--  if (!count)
--    return xs;
--
--  c &= 0xff;
--  c |= c << 8;
--  c |= c << 16;
--
--  if (count < 36){
--	  long *ls = s;
--
--	  switch(count){
--	  case 32: case 33: case 34: case 35:
--		  *ls++ = c;
--	  case 28: case 29: case 30: case 31:
--		  *ls++ = c;
--	  case 24: case 25: case 26: case 27:
--		  *ls++ = c;
--	  case 20: case 21: case 22: case 23:
--		  *ls++ = c;
--	  case 16: case 17: case 18: case 19:
--		  *ls++ = c;
--	  case 12: case 13: case 14: case 15:
--		  *ls++ = c;
--	  case 8: case 9: case 10: case 11:
--		  *ls++ = c;
--	  case 4: case 5: case 6: case 7:
--		  *ls++ = c;
--		  break;
--	  default:
--		  break;
--	  }
--	  s = ls;
--	  if (count & 0x02){
--		  short *ss = s;
--		  *ss++ = c;
--		  s = ss;
--	  }
--	  if (count & 0x01){
--		  char *cs = s;
--		  *cs++ = c;
--		  s = cs;
--	  }
--	  return xs;
--  }
--
--  if ((long) s & 1)
--    {
--      char *cs = s;
--      *cs++ = c;
--      s = cs;
--      count--;
--    }
--  if (count > 2 && (long) s & 2)
--    {
--      short *ss = s;
--      *ss++ = c;
--      s = ss;
--      count -= 2;
--    }
--  temp = count >> 2;
--  if (temp)
--    {
--      long *ls = s;
--      temp--;
--      do
--	*ls++ = c;
--      while (temp--);
--      s = ls;
--    }
--  if (count & 2)
--    {
--      short *ss = s;
--      *ss++ = c;
--      s = ss;
--    }
--  if (count & 1)
--    {
--      char *cs = s;
--      *cs = c;
--    }
--  return xs;
--}
--
--/*
-- * __memset_page assumes that data is longword aligned. Most, if not
-- * all, of these page sized memsets are performed on page aligned
-- * areas, thus we do not need to check if the destination is longword
-- * aligned. Of course we suffer a serious performance loss if this is
-- * not the case but I think the risk of this ever happening is
-- * extremely small. We spend a lot of time clearing pages in
-- * get_empty_page() so I think it is worth it anyway. Besides, the
-- * 680[46]0 do not really care about misaligned writes due to their
-- * copy-back cache.
-- *
-- * The optimized case for the 680[46]0 is implemented using the move16
-- * instruction. My tests showed that this implementation is 35-45%
-- * faster than the original implementation using movel, the only
-- * caveat is that the destination address must be 16-byte aligned.
-- *                                            01/09/96 - Jes Sorensen
-- */
--static inline void * __memset_page(void * s,int c,size_t count)
--{
--  unsigned long data, tmp;
--  void *xs = s;
--
--  c = c & 255;
--  data = c | (c << 8);
--  data |= data << 16;
--
--#ifdef CPU_M68040_OR_M68060_ONLY
--
--  if (((unsigned long) s) & 0x0f)
--	  __memset_g(s, c, count);
--  else{
--	  unsigned long *sp = s;
--	  *sp++ = data;
--	  *sp++ = data;
--	  *sp++ = data;
--	  *sp++ = data;
--
--	  __asm__ __volatile__("1:\t"
--			       ".chip 68040\n\t"
--			       "move16 %2 at +,%0 at +\n\t"
--			       ".chip 68k\n\t"
--			       "subqw  #8,%2\n\t"
--			       "subqw  #8,%2\n\t"
--			       "dbra   %1,1b\n\t"
--			       : "=a" (sp), "=d" (tmp)
--			       : "a" (s), "0" (sp), "1" ((count - 16) / 16 - 1)
--			       );
--  }
--
--#else
--  __asm__ __volatile__("1:\t"
--		       "movel %2,%0 at +\n\t"
--		       "movel %2,%0 at +\n\t"
--		       "movel %2,%0 at +\n\t"
--		       "movel %2,%0 at +\n\t"
--		       "movel %2,%0 at +\n\t"
--		       "movel %2,%0 at +\n\t"
--		       "movel %2,%0 at +\n\t"
--		       "movel %2,%0 at +\n\t"
--		       "dbra  %1,1b\n\t"
--		       : "=a" (s), "=d" (tmp)
--		       : "d" (data), "0" (s), "1" (count / 32 - 1)
--		       );
--#endif
--
--  return xs;
--}
--
--extern void *memset(void *,int,__kernel_size_t);
--
--#define __memset_const(s,c,count) \
--((count==PAGE_SIZE) ? \
--  __memset_page((s),(c),(count)) : \
--  __memset_g((s),(c),(count)))
--
--#define memset(s, c, count) \
--(__builtin_constant_p(count) ? \
-- __memset_const((s),(c),(count)) : \
-- __memset_g((s),(c),(count)))
-+extern void *memset(void *, int, __kernel_size_t);
-+#define memset(d, c, n) __builtin_memset(d, c, n)
- 
- #define __HAVE_ARCH_MEMCPY
--extern void * memcpy(void *, const void *, size_t );
--/*
-- * __builtin_memcpy() does not handle page-sized memcpys very well,
-- * thus following the same assumptions as for page-sized memsets, this
-- * function copies page-sized areas using an unrolled loop, without
-- * considering alignment.
-- *
-- * For the 680[46]0 only kernels we use the move16 instruction instead
-- * as it writes through the data-cache, invalidating the cache-lines
-- * touched. In this way we do not use up the entire data-cache (well,
-- * half of it on the 68060) by copying a page. An unrolled loop of two
-- * move16 instructions seem to the fastest. The only caveat is that
-- * both source and destination must be 16-byte aligned, if not we fall
-- * back to the generic memcpy function.  - Jes
-- */
--static inline void * __memcpy_page(void * to, const void * from, size_t count)
--{
--  unsigned long tmp;
--  void *xto = to;
--
--#ifdef CPU_M68040_OR_M68060_ONLY
--
--  if (((unsigned long) to | (unsigned long) from) & 0x0f)
--	  return memcpy(to, from, count);
--
--  __asm__ __volatile__("1:\t"
--		       ".chip 68040\n\t"
--		       "move16 %1 at +,%0 at +\n\t"
--		       "move16 %1 at +,%0 at +\n\t"
--		       ".chip 68k\n\t"
--		       "dbra  %2,1b\n\t"
--		       : "=a" (to), "=a" (from), "=d" (tmp)
--		       : "0" (to), "1" (from) , "2" (count / 32 - 1)
--		       );
--#else
--  __asm__ __volatile__("1:\t"
--		       "movel %1 at +,%0 at +\n\t"
--		       "movel %1 at +,%0 at +\n\t"
--		       "movel %1 at +,%0 at +\n\t"
--		       "movel %1 at +,%0 at +\n\t"
--		       "movel %1 at +,%0 at +\n\t"
--		       "movel %1 at +,%0 at +\n\t"
--		       "movel %1 at +,%0 at +\n\t"
--		       "movel %1 at +,%0 at +\n\t"
--		       "dbra  %2,1b\n\t"
--		       : "=a" (to), "=a" (from), "=d" (tmp)
--		       : "0" (to), "1" (from) , "2" (count / 32 - 1)
--		       );
--#endif
--  return xto;
--}
--
--#define __memcpy_const(to, from, n) \
--((n==PAGE_SIZE) ? \
--  __memcpy_page((to),(from),(n)) : \
--  __builtin_memcpy((to),(from),(n)))
--
--#define memcpy(to, from, n) \
--(__builtin_constant_p(n) ? \
-- __memcpy_const((to),(from),(n)) : \
-- memcpy((to),(from),(n)))
-+extern void *memcpy(void *, const void *, __kernel_size_t);
-+#define memcpy(d, s, n) __builtin_memcpy(d, s, n)
- 
- #define __HAVE_ARCH_MEMMOVE
--static inline void * memmove(void * dest,const void * src, size_t n)
--{
--  void *xdest = dest;
--  size_t temp;
--
--  if (!n)
--    return xdest;
--
--  if (dest < src)
--    {
--      if ((long) dest & 1)
--	{
--	  char *cdest = dest;
--	  const char *csrc = src;
--	  *cdest++ = *csrc++;
--	  dest = cdest;
--	  src = csrc;
--	  n--;
--	}
--      if (n > 2 && (long) dest & 2)
--	{
--	  short *sdest = dest;
--	  const short *ssrc = src;
--	  *sdest++ = *ssrc++;
--	  dest = sdest;
--	  src = ssrc;
--	  n -= 2;
--	}
--      temp = n >> 2;
--      if (temp)
--	{
--	  long *ldest = dest;
--	  const long *lsrc = src;
--	  temp--;
--	  do
--	    *ldest++ = *lsrc++;
--	  while (temp--);
--	  dest = ldest;
--	  src = lsrc;
--	}
--      if (n & 2)
--	{
--	  short *sdest = dest;
--	  const short *ssrc = src;
--	  *sdest++ = *ssrc++;
--	  dest = sdest;
--	  src = ssrc;
--	}
--      if (n & 1)
--	{
--	  char *cdest = dest;
--	  const char *csrc = src;
--	  *cdest = *csrc;
--	}
--    }
--  else
--    {
--      dest = (char *) dest + n;
--      src = (const char *) src + n;
--      if ((long) dest & 1)
--	{
--	  char *cdest = dest;
--	  const char *csrc = src;
--	  *--cdest = *--csrc;
--	  dest = cdest;
--	  src = csrc;
--	  n--;
--	}
--      if (n > 2 && (long) dest & 2)
--	{
--	  short *sdest = dest;
--	  const short *ssrc = src;
--	  *--sdest = *--ssrc;
--	  dest = sdest;
--	  src = ssrc;
--	  n -= 2;
--	}
--      temp = n >> 2;
--      if (temp)
--	{
--	  long *ldest = dest;
--	  const long *lsrc = src;
--	  temp--;
--	  do
--	    *--ldest = *--lsrc;
--	  while (temp--);
--	  dest = ldest;
--	  src = lsrc;
--	}
--      if (n & 2)
--	{
--	  short *sdest = dest;
--	  const short *ssrc = src;
--	  *--sdest = *--ssrc;
--	  dest = sdest;
--	  src = ssrc;
--	}
--      if (n & 1)
--	{
--	  char *cdest = dest;
--	  const char *csrc = src;
--	  *--cdest = *--csrc;
--	}
--    }
--  return xdest;
--}
-+extern void *memmove(void *, const void *, __kernel_size_t);
- 
- #define __HAVE_ARCH_MEMCMP
--extern int memcmp(const void * ,const void * ,size_t );
--#define memcmp(cs, ct, n) \
--(__builtin_constant_p(n) ? \
-- __builtin_memcmp((cs),(ct),(n)) : \
-- memcmp((cs),(ct),(n)))
--
--#define __HAVE_ARCH_MEMCHR
--static inline void *memchr(const void *cs, int c, size_t count)
--{
--	/* Someone else can optimize this, I don't care - tonym at mac.linux-m68k.org */
--	unsigned char *ret = (unsigned char *)cs;
--	for(;count>0;count--,ret++)
--		if(*ret == c) return ret;
--
--	return NULL;
--}
-+extern int memcmp(const void *, const void *, __kernel_size_t);
-+#define memcmp(d, s, n) __builtin_memcmp(d, s, n)
- 
- #endif /* _M68K_STRING_H_ */
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/include/asm-m68k/thread_info.h linux-2.6.13/include/asm-m68k/thread_info.h
---- linux-2.6.13-i386/include/asm-m68k/thread_info.h	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/include/asm-m68k/thread_info.h	2005-08-30 16:36:04.000000000 +0200
-@@ -2,17 +2,15 @@
- #define _ASM_M68K_THREAD_INFO_H
- 
- #include <asm/types.h>
--#include <asm/processor.h>
- #include <asm/page.h>
- 
- struct thread_info {
- 	struct task_struct	*task;		/* main task structure */
-+	unsigned long		flags;
- 	struct exec_domain	*exec_domain;	/* execution domain */
- 	int			preempt_count;	/* 0 => preemptable, <0 => BUG */
- 	__u32 cpu; /* should always be 0 on m68k */
- 	struct restart_block    restart_block;
--
--	__u8			supervisor_stack[0];
- };
- 
- #define PREEMPT_ACTIVE		0x4000000
-@@ -28,91 +26,34 @@
- 
- /* THREAD_SIZE should be 8k, so handle differently for 4k and 8k machines */
- #if PAGE_SHIFT == 13 /* 8k machines */
--#define alloc_thread_info(tsk)   ((struct thread_info *)__get_free_pages(GFP_KERNEL,0))
--#define free_thread_info(ti)  free_pages((unsigned long)(ti),0)
-+#define alloc_thread_stack(tsk) ((void *)__get_free_pages(GFP_KERNEL,0))
-+#define free_thread_stack(ti)  free_pages((unsigned long)(ti),0)
- #else /* otherwise assume 4k pages */
--#define alloc_thread_info(tsk)   ((struct thread_info *)__get_free_pages(GFP_KERNEL,1))
--#define free_thread_info(ti)  free_pages((unsigned long)(ti),1)
-+#define alloc_thread_stack(tsk) ((void *)__get_free_pages(GFP_KERNEL,1))
-+#define free_thread_stack(ti)  free_pages((unsigned long)(ti),1)
- #endif /* PAGE_SHIFT == 13 */
- 
- //#define init_thread_info	(init_task.thread.info)
- #define init_stack		(init_thread_union.stack)
- 
--#define current_thread_info()	(current->thread_info)
-+#define task_thread_info(tsk)	(&(tsk)->thread.info)
-+#define current_thread_info()	task_thread_info(current)
- 
-+#define setup_thread_stack(p, org) ({			\
-+	*(struct task_struct **)(p)->stack = (p);	\
-+	task_thread_info(p)->task = (p);		\
-+})
- 
- #define __HAVE_THREAD_FUNCTIONS
- 
--#define TIF_SYSCALL_TRACE	0	/* syscall trace active */
--#define TIF_DELAYED_TRACE	1	/* single step a syscall */
--#define TIF_NOTIFY_RESUME	2	/* resumption notification requested */
--#define TIF_SIGPENDING		3	/* signal pending */
--#define TIF_NEED_RESCHED	4	/* rescheduling necessary */
--#define TIF_MEMDIE		5
--
--extern int thread_flag_fixme(void);
--
--/*
-- * flag set/clear/test wrappers
-- * - pass TIF_xxxx constants to these functions
-+/* entry.S relies on these definitions!
-+ * bits 0-7 are tested at every exception exit
-+ * bits 8-15 are also tested at syscall exit
-  */
--
--#define __set_tsk_thread_flag(tsk, flag, val) ({	\
--	switch (flag) {					\
--	case TIF_SIGPENDING:				\
--		tsk->thread.work.sigpending = val;	\
--		break;					\
--	case TIF_NEED_RESCHED:				\
--		tsk->thread.work.need_resched = val;	\
--		break;					\
--	case TIF_SYSCALL_TRACE:				\
--		tsk->thread.work.syscall_trace = val;	\
--		break;					\
--	case TIF_MEMDIE:				\
--		tsk->thread.work.memdie = val;		\
--		break;					\
--	default:					\
--		thread_flag_fixme();			\
--	}						\
--})
--
--#define __get_tsk_thread_flag(tsk, flag) ({		\
--	int ___res;					\
--	switch (flag) {					\
--	case TIF_SIGPENDING:				\
--		___res = tsk->thread.work.sigpending;	\
--		break;					\
--	case TIF_NEED_RESCHED:				\
--		___res = tsk->thread.work.need_resched;	\
--		break;					\
--	case TIF_SYSCALL_TRACE:				\
--		___res = tsk->thread.work.syscall_trace;\
--		break;					\
--	case TIF_MEMDIE:				\
--		___res = tsk->thread.work.memdie;\
--		break;					\
--	default:					\
--		___res = thread_flag_fixme();		\
--	}						\
--	___res;						\
--})
--
--#define __get_set_tsk_thread_flag(tsk, flag, val) ({	\
--	int __res = __get_tsk_thread_flag(tsk, flag);	\
--	__set_tsk_thread_flag(tsk, flag, val);		\
--	__res;						\
--})
--
--#define set_tsk_thread_flag(tsk, flag) __set_tsk_thread_flag(tsk, flag, ~0)
--#define clear_tsk_thread_flag(tsk, flag) __set_tsk_thread_flag(tsk, flag, 0)
--#define test_and_set_tsk_thread_flag(tsk, flag) __get_set_tsk_thread_flag(tsk, flag, ~0)
--#define test_tsk_thread_flag(tsk, flag) __get_tsk_thread_flag(tsk, flag)
--
--#define set_thread_flag(flag) set_tsk_thread_flag(current, flag)
--#define clear_thread_flag(flag) clear_tsk_thread_flag(current, flag)
--#define test_thread_flag(flag) test_tsk_thread_flag(current, flag)
--
--#define set_need_resched() set_thread_flag(TIF_NEED_RESCHED)
--#define clear_need_resched() clear_thread_flag(TIF_NEED_RESCHED)
-+#define TIF_SIGPENDING		6	/* signal pending */
-+#define TIF_NEED_RESCHED	7	/* rescheduling necessary */
-+#define TIF_DELAYED_TRACE	14	/* single step a syscall */
-+#define TIF_SYSCALL_TRACE	15	/* syscall trace active */
-+#define TIF_MEMDIE		16
- 
- #endif	/* _ASM_M68K_THREAD_INFO_H */
 diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/include/linux/adb.h linux-2.6.13/include/linux/adb.h
 --- linux-2.6.13-i386/include/linux/adb.h	2005-08-29 01:41:01.000000000 +0200
 +++ linux-2.6.13/include/linux/adb.h	2003-03-25 20:25:16.000000000 +0100
@@ -5822,107 +1701,6 @@
 +#endif	/* __KERNEL__ */
  
  #endif /* _LINUX_THREAD_INFO_H */
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/kernel/exit.c linux-2.6.13/kernel/exit.c
---- linux-2.6.13-i386/kernel/exit.c	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/kernel/exit.c	2005-08-30 16:36:41.000000000 +0200
-@@ -846,7 +846,7 @@
- 	if (group_dead && tsk->signal->leader)
- 		disassociate_ctty(1);
- 
--	module_put(tsk->thread_info->exec_domain->module);
-+	module_put(task_thread_info(tsk)->exec_domain->module);
- 	if (tsk->binfmt)
- 		module_put(tsk->binfmt->module);
- 
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/kernel/fork.c linux-2.6.13/kernel/fork.c
---- linux-2.6.13-i386/kernel/fork.c	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/kernel/fork.c	2005-08-30 16:36:41.000000000 +0200
-@@ -100,7 +100,7 @@
- 
- void free_task(struct task_struct *tsk)
- {
--	free_thread_info(tsk->thread_info);
-+	free_thread_stack(tsk->stack);
- 	free_task_struct(tsk);
- }
- EXPORT_SYMBOL(free_task);
-@@ -155,7 +155,7 @@
- static struct task_struct *dup_task_struct(struct task_struct *orig)
- {
- 	struct task_struct *tsk;
--	struct thread_info *ti;
-+	void *stack;
- 
- 	prepare_to_copy(orig);
- 
-@@ -163,16 +163,16 @@
- 	if (!tsk)
- 		return NULL;
- 
--	ti = alloc_thread_info(tsk);
--	if (!ti) {
-+	stack = alloc_thread_stack(tsk);
-+	if (!stack) {
- 		free_task_struct(tsk);
- 		return NULL;
- 	}
- 
--	*ti = *orig->thread_info;
- 	*tsk = *orig;
--	tsk->thread_info = ti;
--	ti->task = tsk;
-+	tsk->stack = stack;
-+	*(struct task_struct **)tsk->stack = tsk;
-+	setup_thread_stack(tsk, orig);
- 
- 	/* One for us, one for whoever does the "release_task()" (usually parent) */
- 	atomic_set(&tsk->usage,2);
-@@ -898,7 +898,7 @@
- 	if (nr_threads >= max_threads)
- 		goto bad_fork_cleanup_count;
- 
--	if (!try_module_get(p->thread_info->exec_domain->module))
-+	if (!try_module_get(task_thread_info(p)->exec_domain->module))
- 		goto bad_fork_cleanup_count;
- 
- 	if (p->binfmt && !try_module_get(p->binfmt->module))
-@@ -1151,7 +1151,7 @@
- 	if (p->binfmt)
- 		module_put(p->binfmt->module);
- bad_fork_cleanup_put_domain:
--	module_put(p->thread_info->exec_domain->module);
-+	module_put(task_thread_info(p)->exec_domain->module);
- bad_fork_cleanup_count:
- 	put_group_info(p->group_info);
- 	atomic_dec(&p->user->processes);
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/kernel/sched.c linux-2.6.13/kernel/sched.c
---- linux-2.6.13-i386/kernel/sched.c	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/kernel/sched.c	2005-08-30 16:36:43.000000000 +0200
-@@ -4121,10 +4121,10 @@
- #endif
- #ifdef CONFIG_DEBUG_STACK_USAGE
- 	{
--		unsigned long * n = (unsigned long *) (p->thread_info+1);
-+		unsigned long * n = end_of_stack(p);
- 		while (!*n)
- 			n++;
--		free = (unsigned long) n - (unsigned long)(p->thread_info+1);
-+		free = (unsigned long) n - (unsigned long) end_of_stack(p);
- 	}
- #endif
- 	printk("%5lu %5d %6d ", free, p->pid, p->parent->pid);
-@@ -4204,9 +4204,9 @@
- 
- 	/* Set the preempt count _outside_ the spinlocks! */
- #if defined(CONFIG_PREEMPT) && !defined(CONFIG_PREEMPT_BKL)
--	idle->thread_info->preempt_count = (idle->lock_depth >= 0);
-+	task_thread_info(idle)->preempt_count = (idle->lock_depth >= 0);
- #else
--	idle->thread_info->preempt_count = 0;
-+	task_thread_info(idle)->preempt_count = 0;
- #endif
- }
- 
 diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/mm/bootmem.c linux-2.6.13/mm/bootmem.c
 --- linux-2.6.13-i386/mm/bootmem.c	2005-08-29 01:41:01.000000000 +0200
 +++ linux-2.6.13/mm/bootmem.c	2005-08-30 16:36:44.000000000 +0200
@@ -5972,38 +1750,3 @@
  	}
  	total += count;
  
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/sound/oss/dmasound/dmasound_paula.c linux-2.6.13/sound/oss/dmasound/dmasound_paula.c
---- linux-2.6.13-i386/sound/oss/dmasound/dmasound_paula.c	2005-08-29 01:41:01.000000000 +0200
-+++ linux-2.6.13/sound/oss/dmasound/dmasound_paula.c	2005-05-30 16:34:14.000000000 +0200
-@@ -244,6 +244,7 @@
- 			u_char frame[], ssize_t *frameUsed,		\
- 			ssize_t frameLeft)				\
- {									\
-+	const u_short *ptr = (const u_short *)userPtr;			\
- 	ssize_t count, used;						\
- 	u_short data;							\
- 									\
-@@ -253,7 +254,7 @@
- 		count = min_t(size_t, userCount, frameLeft)>>1 & ~1;	\
- 		used = count*2;						\
- 		while (count > 0) {					\
--			if (get_user(data, ((u_short *)userPtr)++))	\
-+			if (get_user(data, ptr++))			\
- 				return -EFAULT;				\
- 			data = convsample(data);			\
- 			*high++ = data>>8;				\
-@@ -268,12 +269,12 @@
- 		count = min_t(size_t, userCount, frameLeft)>>2 & ~1;	\
- 		used = count*4;						\
- 		while (count > 0) {					\
--			if (get_user(data, ((u_short *)userPtr)++))	\
-+			if (get_user(data, ptr++))			\
- 				return -EFAULT;				\
- 			data = convsample(data);			\
- 			*lefth++ = data>>8;				\
- 			*leftl++ = (data>>2) & 0x3f;			\
--			if (get_user(data, ((u_short *)userPtr)++))	\
-+			if (get_user(data, ptr++))			\
- 				return -EFAULT;				\
- 			data = convsample(data);			\
- 			*righth++ = data>>8;				\

Added: people/waldi/linux-2.6/debian/patches-debian/TODO
===================================================================
--- people/waldi/linux-2.6/debian/patches-debian/TODO	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-debian/TODO	2005-11-06 16:19:16 UTC (rev 4733)
@@ -0,0 +1,115 @@
+Disabled because not applying cleanly, need investigating :
+
+drivers-scsi-megaraid_splitup.patch
+  FAILS:   1 hunk (drivers/scsi/megaraid/Kconfig.megaraid)
+
+remove-references-to-removed-drivers.patch
+  FAILS    1 hunk (drivers/usb/misc/Makefile)
+
+powerpc-g4-l2-flush-errata.patch
+  FAILS    1 hunk (arch/ppc/kernel/l2cr.S)
+
+
+
+Complete list of Mark Hymers (not all of those where still in use).
+
+Applied upstream
+================
+
+amd64-tlb-flush-sigsegv-fix.patch
+   Git commit: bc5e8fdfc622b03acf5ac974a1b8b26da6511c99
+
+kernel-api-documentation-generation-fix.diff
+   Git commit: 9d01a82e46a8dd18233121a6bc140e5576649583
+
+m68k-sonic.patch
+   Git commit: efcce839360fb3a7b6dedeacaec80f68b0f2d052
+
+mempolicy-check-mode.patch
+   Git commit: ba17101b41977f124948e0a7797fdcbb59e19f3e
+
+powerpc-pmac-sound-check.patch
+   Git commit: 4e6a06eec46067df3c30fe1fbc2e1a7cc37b9678
+
+powerpc-ppc64-biarch-override.patch
+   Git commit: 723e2b35e43dcbcfd737c40453caa7d198092d23
+
+
+Not applied upstream
+====================
+
+amd64-int3-fix.patch
+  APPLIES  Offset
+
+drivers-scsi-megaraid_splitup.patch
+  FAILS:   1 hunk (drivers/scsi/megaraid/Kconfig.megaraid)
+
+fbdev-radeon-noaccel.patch
+  APPLIES  Offset
+
+fs-asfs-2.patch
+  APPLIES  Offset
+
+ia64-irq-affinity-upfix.patch
+  APPLIES  Offset
+
+m68k-42_dma.patch
+  APPLIES  Offset
+
+modular-ide.patch
+  APPLIES  Offset
+
+modular-ide-pnp.patch
+  APPLIES  Offset
+
+powerpc-apus.patch
+  APPLIES  Offset
+
+powerpc-apus-todo.patch
+  FAILS    1 hunk (include/video/vga.h)
+
+powerpc-calibrate-tau.patch
+  APPLIES  Offset + fuzz
+
+powerpc-fix-power3-ftbfs.patch
+  APPLIES
+
+powerpc-g3-750cxe.patch
+  Claims to already be applied
+  Looks like patch is confused as a different but similar model was added
+
+powerpc-g4-l2-flush-errata.patch
+  FAILS    1 hunk (arch/ppc/kernel/l2cr.S)
+
+powerpc-mkvmlinuz-support.patch
+  APPLIES
+
+powerpc-mv643xx-hotplug-support.patch
+  APPLIES
+
+powerpc-pmac-cache-power34-fix.patch
+  APPLIES
+
+powerpc-serial-of.patch
+  FAILS    1 hunk ignored (arch/ppc64/kernel/setup.c)
+           This hunk claims to already be applied
+
+powerpc-serial.patch
+  APPLIES  Offset
+
+qla2xxx-removed.patch
+  APPLIES  Offset
+
+remove-references-to-removed-drivers.patch
+  FAILS    1 hunk (drivers/usb/misc/Makefile)
+
+sparc64-hme-lockup.patch
+  APPLIES
+
+tty-locking-fixes9.patch
+  APPLIES
+
+version.patch
+  APPLIES OFFSET
+
+==============

Added: people/waldi/linux-2.6/debian/patches-debian/alpha-compile-fix.patch
===================================================================
--- people/waldi/linux-2.6/debian/patches-debian/alpha-compile-fix.patch	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-debian/alpha-compile-fix.patch	2005-11-06 16:19:16 UTC (rev 4733)
@@ -0,0 +1,10 @@
+--- 2.6.14-rc5-git6/include/asm-alpha/barrier.h Wed Oct 26 14:43:16 2005
++++ linux/include/asm-alpha/barrier.h   Wed Oct 26 15:03:47 2005
+@@ -1,6 +1,8 @@
+ #ifndef __BARRIER_H
+ #define __BARRIER_H
+
++#include <asm/compiler.h>
++
+ #define mb() \
+ __asm__ __volatile__("mb": : :"memory")

Deleted: people/waldi/linux-2.6/debian/patches-debian/amd64-tlb-flush-sigsegv-fix.patch
===================================================================
--- people/waldi/linux-2.6/debian/patches-debian/amd64-tlb-flush-sigsegv-fix.patch	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-debian/amd64-tlb-flush-sigsegv-fix.patch	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,47 +0,0 @@
-From: Linus Torvalds <torvalds at g5.osdl.org>
-Date: Sat, 17 Sep 2005 22:41:04 +0000 (-0700)
-Subject:     x86-64/smp: fix random SIGSEGV issues
-X-Git-Url: http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=bc5e8fdfc622b03acf5ac974a1b8b26da6511c99
-
-  x86-64/smp: fix random SIGSEGV issues
-  
-  They seem to have been due to AMD errata 63/122; the fix is to disable
-  TLB flush filtering in SMP configurations.
-  
-  Confirmed to fix the problem by Andrew Walrond <andrew at walrond.org>
-  
-  [ Let's see if we'll have a better fix eventually, this is the Q&D
-    "let's get this fixed and out there" version ]
-  
-  Signed-off-by: Linus Torvalds <torvalds at osdl.org>
----
-
---- a/arch/x86_64/kernel/setup.c
-+++ b/arch/x86_64/kernel/setup.c
-@@ -793,11 +793,26 @@
- #endif
- }
- 
-+#define HWCR 0xc0010015
-+
- static int __init init_amd(struct cpuinfo_x86 *c)
- {
- 	int r;
- 	int level;
- 
-+#ifdef CONFIG_SMP
-+	unsigned long value;
-+
-+	// Disable TLB flush filter by setting HWCR.FFDIS:
-+	// bit 6 of msr C001_0015
-+	//
-+	// Errata 63 for SH-B3 steppings
-+	// Errata 122 for all(?) steppings
-+	rdmsrl(HWCR, value);
-+	value |= 1 << 6;
-+	wrmsrl(HWCR, value);
-+#endif
-+
- 	/* Bit 31 in normal CPUID used for nonstandard 3DNow ID;
- 	   3DNow is IDd by bit 31 in extended CPUID (1*32+31) anyway */
- 	clear_bit(0*32+31, &c->x86_capability);

Modified: people/waldi/linux-2.6/debian/patches-debian/ia64-irq-affinity-upfix.patch
===================================================================
--- people/waldi/linux-2.6/debian/patches-debian/ia64-irq-affinity-upfix.patch	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-debian/ia64-irq-affinity-upfix.patch	2005-11-06 16:19:16 UTC (rev 4733)
@@ -2,14 +2,13 @@
 ## DP: Patch author: dann frazier <dannf at hp.com>
 ## DP: Upstream status: Submitted
 #
-diff -aurN a/arch/ia64/kernel/irq.c b/arch/ia64/kernel/irq.c
---- a/arch/ia64/kernel/irq.c	2005-06-06 11:22:29.000000000 -0400
-+++ b/arch/ia64/kernel/irq.c	2005-06-15 22:13:24.000000000 -0400
-@@ -141,7 +141,10 @@
+--- linux-2.6-2.6.13/arch/ia64/kernel/irq.c~	2005-10-20 17:28:56.000000000 -0600
++++ linux-2.6-2.6.13/arch/ia64/kernel/irq.c	2005-10-20 17:29:41.000000000 -0600
+@@ -105,6 +105,11 @@
+ 		irq_redir[irq] = (char) (redir & 0xff);
  	}
  }
- 
--
++
 +#else /* !CONFIG_SMP */
 +void set_irq_affinity_info (unsigned int irq, int hwid, int redir)
 +{

Added: people/waldi/linux-2.6/debian/patches-debian/m68k-arch.patch
===================================================================
--- people/waldi/linux-2.6/debian/patches-debian/m68k-arch.patch	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-debian/m68k-arch.patch	2005-11-06 16:19:16 UTC (rev 4733)
@@ -0,0 +1,1528 @@
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/Kconfig linux-2.6.13/arch/m68k/Kconfig
+--- linux-2.6.13-i386/arch/m68k/Kconfig	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/Kconfig	2005-10-12 16:31:22.000000000 +0200
+@@ -613,7 +613,7 @@
+ 
+ config SERIAL167
+ 	bool "CD2401 support for MVME166/7 serial ports"
+-	depends on MVME16x && BROKEN
++	depends on MVME16x
+ 	help
+ 	  This is the driver for the serial ports on the Motorola MVME166,
+ 	  167, and 172 boards.  Everyone using one of these boards should say
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/amiga/config.c linux-2.6.13/arch/m68k/amiga/config.c
+--- linux-2.6.13-i386/arch/m68k/amiga/config.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/amiga/config.c	2005-10-12 16:31:23.000000000 +0200
+@@ -431,9 +431,6 @@
+   mach_floppy_setup    = amiga_floppy_setup;
+ #endif
+   mach_reset           = amiga_reset;
+-#ifdef CONFIG_DUMMY_CONSOLE
+-  conswitchp           = &dummy_con;
+-#endif
+ #if defined(CONFIG_INPUT_M68K_BEEP) || defined(CONFIG_INPUT_M68K_BEEP_MODULE)
+   mach_beep            = amiga_mksound;
+ #endif
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/apollo/config.c linux-2.6.13/arch/m68k/apollo/config.c
+--- linux-2.6.13-i386/arch/m68k/apollo/config.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/apollo/config.c	2005-10-12 16:31:23.000000000 +0200
+@@ -176,9 +176,6 @@
+ 	mach_set_clock_mmss  = dn_dummy_set_clock_mmss; /* */
+ 	mach_process_int     = dn_process_int;
+ 	mach_reset	     = dn_dummy_reset;  /* */
+-#ifdef CONFIG_DUMMY_CONSOLE
+-        conswitchp           = &dummy_con;
+-#endif
+ #ifdef CONFIG_HEARTBEAT
+ 	mach_heartbeat = dn_heartbeat;
+ #endif
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/atari/config.c linux-2.6.13/arch/m68k/atari/config.c
+--- linux-2.6.13-i386/arch/m68k/atari/config.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/atari/config.c	2005-10-12 16:31:23.000000000 +0200
+@@ -247,9 +247,6 @@
+ #ifdef CONFIG_ATARI_FLOPPY
+     mach_floppy_setup	 = atari_floppy_setup;
+ #endif
+-#ifdef CONFIG_DUMMY_CONSOLE
+-    conswitchp	         = &dummy_con;
+-#endif
+     mach_max_dma_address = 0xffffff;
+ #if defined(CONFIG_INPUT_M68K_BEEP) || defined(CONFIG_INPUT_M68K_BEEP_MODULE)
+     mach_beep          = atari_mksound;
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/fpsp040/skeleton.S linux-2.6.13/arch/m68k/fpsp040/skeleton.S
+--- linux-2.6.13-i386/arch/m68k/fpsp040/skeleton.S	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/fpsp040/skeleton.S	2005-05-30 16:31:21.000000000 +0200
+@@ -381,10 +381,8 @@
+ .Lnotkern:
+ 	SAVE_ALL_INT
+ 	GET_CURRENT(%d0)
+-	tstb	%curptr@(TASK_NEEDRESCHED)
+-	jne	ret_from_exception	| deliver signals,
+-					| reschedule etc..
+-	RESTORE_ALL
++	| deliver signals, reschedule etc..
++	jra	ret_from_exception
+ 
+ |
+ |	mem_write --- write to user or supervisor address space
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/hp300/config.c linux-2.6.13/arch/m68k/hp300/config.c
+--- linux-2.6.13-i386/arch/m68k/hp300/config.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/hp300/config.c	2005-10-12 16:31:23.000000000 +0200
+@@ -261,9 +261,6 @@
+ #ifdef CONFIG_HEARTBEAT
+ 	mach_heartbeat       = hp300_pulse;
+ #endif
+-#ifdef CONFIG_DUMMY_CONSOLE
+-	conswitchp	     = &dummy_con;
+-#endif
+ 	mach_max_dma_address = 0xffffffff;
+ 
+ 	if (hp300_model >= HP_330 && hp300_model <= HP_433S && hp300_model != HP_350) {
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/ifpsp060/iskeleton.S linux-2.6.13/arch/m68k/ifpsp060/iskeleton.S
+--- linux-2.6.13-i386/arch/m68k/ifpsp060/iskeleton.S	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/ifpsp060/iskeleton.S	2005-05-30 16:31:22.000000000 +0200
+@@ -75,10 +75,8 @@
+ .Lnotkern:
+ 	SAVE_ALL_INT
+ 	GET_CURRENT(%d0)
+-	tstb	%curptr@(TASK_NEEDRESCHED)
+-	jne	ret_from_exception	| deliver signals,
+-					| reschedule etc..
+-	RESTORE_ALL
++	| deliver signals, reschedule etc..
++	jra	ret_from_exception
+ 
+ |
+ | _060_real_chk():
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/kernel/asm-offsets.c linux-2.6.13/arch/m68k/kernel/asm-offsets.c
+--- linux-2.6.13-i386/arch/m68k/kernel/asm-offsets.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/kernel/asm-offsets.c	2005-05-30 16:31:22.000000000 +0200
+@@ -25,12 +25,8 @@
+ 	DEFINE(TASK_STATE, offsetof(struct task_struct, state));
+ 	DEFINE(TASK_FLAGS, offsetof(struct task_struct, flags));
+ 	DEFINE(TASK_PTRACE, offsetof(struct task_struct, ptrace));
+-	DEFINE(TASK_WORK, offsetof(struct task_struct, thread.work));
+-	DEFINE(TASK_NEEDRESCHED, offsetof(struct task_struct, thread.work.need_resched));
+-	DEFINE(TASK_SYSCALL_TRACE, offsetof(struct task_struct, thread.work.syscall_trace));
+-	DEFINE(TASK_SIGPENDING, offsetof(struct task_struct, thread.work.sigpending));
+-	DEFINE(TASK_NOTIFY_RESUME, offsetof(struct task_struct, thread.work.notify_resume));
+ 	DEFINE(TASK_THREAD, offsetof(struct task_struct, thread));
++	DEFINE(TASK_INFO, offsetof(struct task_struct, thread.info));
+ 	DEFINE(TASK_MM, offsetof(struct task_struct, mm));
+ 	DEFINE(TASK_ACTIVE_MM, offsetof(struct task_struct, active_mm));
+ 
+@@ -45,6 +41,10 @@
+ 	DEFINE(THREAD_FPCNTL, offsetof(struct thread_struct, fpcntl));
+ 	DEFINE(THREAD_FPSTATE, offsetof(struct thread_struct, fpstate));
+ 
++	/* offsets into the thread_info struct */
++	DEFINE(TINFO_PREEMPT, offsetof(struct thread_info, preempt_count));
++	DEFINE(TINFO_FLAGS, offsetof(struct thread_info, flags));
++
+ 	/* offsets into the pt_regs */
+ 	DEFINE(PT_D0, offsetof(struct pt_regs, d0));
+ 	DEFINE(PT_ORIG_D0, offsetof(struct pt_regs, orig_d0));
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/kernel/bios32.c linux-2.6.13/arch/m68k/kernel/bios32.c
+--- linux-2.6.13-i386/arch/m68k/kernel/bios32.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/kernel/bios32.c	2004-10-20 16:38:00.000000000 +0200
+@@ -285,7 +285,7 @@
+ 
+ 	DBG_DEVS(("layout_bus: starting bus %d\n", bus->number));
+ 
+-	if (!bus->devices && !bus->children)
++	if (list_empty(&bus->devices) && list_empty(&bus->children))
+ 		return;
+ 
+ 	/*
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/kernel/entry.S linux-2.6.13/arch/m68k/kernel/entry.S
+--- linux-2.6.13-i386/arch/m68k/kernel/entry.S	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/kernel/entry.S	2005-05-30 16:31:22.000000000 +0200
+@@ -44,9 +44,7 @@
+ 
+ #include <asm/offsets.h>
+ 
+-.globl system_call, buserr, trap
+-.globl resume, ret_from_exception
+-.globl ret_from_signal
++.globl system_call, buserr, trap, resume
+ .globl inthandler, sys_call_table
+ .globl sys_fork, sys_clone, sys_vfork
+ .globl ret_from_interrupt, bad_interrupt
+@@ -58,7 +56,7 @@
+ 	movel	%sp,%sp at -		| stack frame pointer argument
+ 	bsrl	buserr_c
+ 	addql	#4,%sp
+-	jra	ret_from_exception
++	jra	.Lret_from_exception
+ 
+ ENTRY(trap)
+ 	SAVE_ALL_INT
+@@ -66,7 +64,7 @@
+ 	movel	%sp,%sp at -		| stack frame pointer argument
+ 	bsrl	trap_c
+ 	addql	#4,%sp
+-	jra	ret_from_exception
++	jra	.Lret_from_exception
+ 
+ 	| After a fork we jump here directly from resume,
+ 	| so that %d1 contains the previous task
+@@ -75,30 +73,31 @@
+ 	movel	%d1,%sp at -
+ 	jsr	schedule_tail
+ 	addql	#4,%sp
+-	jra	ret_from_exception
++	jra	.Lret_from_exception
+ 
+-badsys:
+-	movel	#-ENOSYS,%sp@(PT_D0)
+-	jra	ret_from_exception
+-
+-do_trace:
++do_trace_entry:
+ 	movel	#-ENOSYS,%sp@(PT_D0)	| needed for strace
+ 	subql	#4,%sp
+ 	SAVE_SWITCH_STACK
+ 	jbsr	syscall_trace
+ 	RESTORE_SWITCH_STACK
+ 	addql	#4,%sp
+-	movel	%sp@(PT_ORIG_D0),%d1
+-	movel	#-ENOSYS,%d0
+-	cmpl	#NR_syscalls,%d1
+-	jcc	1f
+-	jbsr	@(sys_call_table,%d1:l:4)@(0)
+-1:	movel	%d0,%sp@(PT_D0)		| save the return value
+-	subql	#4,%sp			| dummy return address
++	movel	%sp@(PT_ORIG_D0),%d0
++	cmpl	#NR_syscalls,%d0
++	jcs	syscall
++badsys:
++	movel	#-ENOSYS,%sp@(PT_D0)
++	jra	ret_from_syscall
++
++do_trace_exit:
++	subql	#4,%sp
+ 	SAVE_SWITCH_STACK
+ 	jbsr	syscall_trace
++	RESTORE_SWITCH_STACK
++	addql	#4,%sp
++	jra	.Lret_from_exception
+ 
+-ret_from_signal:
++ENTRY(ret_from_signal)
+ 	RESTORE_SWITCH_STACK
+ 	addql	#4,%sp
+ /* on 68040 complete pending writebacks if any */
+@@ -111,7 +110,7 @@
+ 	addql	#4,%sp
+ 1:
+ #endif
+-	jra	ret_from_exception
++	jra	.Lret_from_exception
+ 
+ ENTRY(system_call)
+ 	SAVE_ALL_SYS
+@@ -120,30 +119,34 @@
+ 	| save top of frame
+ 	movel	%sp,%curptr@(TASK_THREAD+THREAD_ESP0)
+ 
+-	tstb	%curptr@(TASK_SYSCALL_TRACE)
+-	jne	do_trace
++	| syscall trace?
++	tstb	%curptr@(TASK_INFO+TINFO_FLAGS+2)
++	jmi	do_trace_entry
+ 	cmpl	#NR_syscalls,%d0
+ 	jcc	badsys
++syscall:
+ 	jbsr	@(sys_call_table,%d0:l:4)@(0)
+ 	movel	%d0,%sp@(PT_D0)		| save the return value
+-
++ret_from_syscall:
+ 	|oriw	#0x0700,%sr
+-	movel	%curptr@(TASK_WORK),%d0
++	movew	%curptr@(TASK_INFO+TINFO_FLAGS+2),%d0
+ 	jne	syscall_exit_work
+ 1:	RESTORE_ALL
+ 
+ syscall_exit_work:
+ 	btst	#5,%sp@(PT_SR)		| check if returning to kernel
+ 	bnes	1b			| if so, skip resched, signals
+-	tstw	%d0
+-	jeq	do_signal_return
+-	tstb	%d0
+-	jne	do_delayed_trace
+-
++	lslw	#1,%d0
++	jcs	do_trace_exit
++	jmi	do_delayed_trace
++	lslw	#8,%d0
++	jmi	do_signal_return
+ 	pea	resume_userspace
+-	jmp	schedule
++	jra	schedule
++
+ 
+-ret_from_exception:
++ENTRY(ret_from_exception)
++.Lret_from_exception:
+ 	btst	#5,%sp@(PT_SR)		| check if returning to kernel
+ 	bnes	1f			| if so, skip resched, signals
+ 	| only allow interrupts when we are really the last one on the
+@@ -152,19 +155,18 @@
+ 	andw	#ALLOWINT,%sr
+ 
+ resume_userspace:
+-	movel	%curptr@(TASK_WORK),%d0
+-	lsrl	#8,%d0
++	moveb	%curptr@(TASK_INFO+TINFO_FLAGS+3),%d0
+ 	jne	exit_work
+ 1:	RESTORE_ALL
+ 
+ exit_work:
+ 	| save top of frame
+ 	movel	%sp,%curptr@(TASK_THREAD+THREAD_ESP0)
+-	tstb	%d0
+-	jeq	do_signal_return
+-
++	lslb	#1,%d0
++	jmi	do_signal_return
+ 	pea	resume_userspace
+-	jmp	schedule
++	jra	schedule
++
+ 
+ do_signal_return:
+ 	|andw	#ALLOWINT,%sr
+@@ -254,7 +256,7 @@
+ 
+ 	/* check if we need to do software interrupts */
+ 	tstl	irq_stat+CPUSTAT_SOFTIRQ_PENDING
+-	jeq	ret_from_exception
++	jeq	.Lret_from_exception
+ 	pea	ret_from_exception
+ 	jra	do_softirq
+ 
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/kernel/m68k_ksyms.c linux-2.6.13/arch/m68k/kernel/m68k_ksyms.c
+--- linux-2.6.13-i386/arch/m68k/kernel/m68k_ksyms.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/kernel/m68k_ksyms.c	2005-08-30 16:31:36.000000000 +0200
+@@ -74,9 +74,6 @@
+ EXPORT_SYMBOL(__ashldi3);
+ EXPORT_SYMBOL(__ashrdi3);
+ EXPORT_SYMBOL(__lshrdi3);
+-EXPORT_SYMBOL(memcpy);
+-EXPORT_SYMBOL(memset);
+-EXPORT_SYMBOL(memcmp);
+ EXPORT_SYMBOL(memscan);
+ EXPORT_SYMBOL(__muldi3);
+ 
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/kernel/process.c linux-2.6.13/arch/m68k/kernel/process.c
+--- linux-2.6.13-i386/arch/m68k/kernel/process.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/kernel/process.c	2005-08-30 16:31:36.000000000 +0200
+@@ -239,7 +239,7 @@
+ 	unsigned long stack_offset, *retp;
+ 
+ 	stack_offset = THREAD_SIZE - sizeof(struct pt_regs);
+-	childregs = (struct pt_regs *) ((unsigned long) (p->thread_info) + stack_offset);
++	childregs = (struct pt_regs *) ((unsigned long)p->stack + stack_offset);
+ 
+ 	*childregs = *regs;
+ 	childregs->d0 = 0;
+@@ -384,7 +384,7 @@
+ 	if (!p || p == current || p->state == TASK_RUNNING)
+ 		return 0;
+ 
+-	stack_page = (unsigned long)(p->thread_info);
++	stack_page = (unsigned long)p->stack;
+ 	fp = ((struct switch_stack *)p->thread.ksp)->a6;
+ 	do {
+ 		if (fp < stack_page+sizeof(struct thread_info) ||
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/kernel/ptrace.c linux-2.6.13/arch/m68k/kernel/ptrace.c
+--- linux-2.6.13-i386/arch/m68k/kernel/ptrace.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/kernel/ptrace.c	2005-06-19 16:32:04.000000000 +0200
+@@ -95,7 +95,7 @@
+ 	if (regno == PT_USP)
+ 		addr = &task->thread.usp;
+ 	else if (regno < sizeof(regoff)/sizeof(regoff[0]))
+-		addr = (unsigned long *) (task->thread.esp0 + regoff[regno]);
++		addr = (unsigned long *)(task->thread.esp0 + regoff[regno]);
+ 	else
+ 		return -1;
+ 	*addr = data;
+@@ -103,48 +103,56 @@
+ }
+ 
+ /*
+- * Called by kernel/ptrace.c when detaching..
+- *
+  * Make sure the single step bit is not set.
+  */
+-void ptrace_disable(struct task_struct *child)
++static inline void singlestep_disable(struct task_struct *child)
+ {
+-	unsigned long tmp;
+-	/* make sure the single step bit is not set. */
+-	tmp = get_reg(child, PT_SR) & ~(TRACE_BITS << 16);
++	unsigned long tmp = get_reg(child, PT_SR) & ~(TRACE_BITS << 16);
+ 	put_reg(child, PT_SR, tmp);
+-	child->thread.work.delayed_trace = 0;
+-	child->thread.work.syscall_trace = 0;
++	clear_tsk_thread_flag(child, TIF_DELAYED_TRACE);
++}
++
++/*
++ * Called by kernel/ptrace.c when detaching..
++ */
++void ptrace_disable(struct task_struct *child)
++{
++	singlestep_disable(child);
++	clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
+ }
+ 
+ asmlinkage int sys_ptrace(long request, long pid, long addr, long data)
+ {
+ 	struct task_struct *child;
+-	int ret;
++	unsigned long tmp;
++	int i, ret = 0;
+ 
+ 	lock_kernel();
+-	ret = -EPERM;
+ 	if (request == PTRACE_TRACEME) {
+ 		/* are we already being traced? */
+-		if (current->ptrace & PT_PTRACED)
++		if (current->ptrace & PT_PTRACED) {
++			ret = -EPERM;
+ 			goto out;
++		}
+ 		/* set the ptrace bit in the process flags. */
+ 		current->ptrace |= PT_PTRACED;
+-		ret = 0;
+ 		goto out;
+ 	}
+-	ret = -ESRCH;
+ 	read_lock(&tasklist_lock);
+ 	child = find_task_by_pid(pid);
+ 	if (child)
+ 		get_task_struct(child);
+ 	read_unlock(&tasklist_lock);
+-	if (!child)
++	if (unlikely(!child)) {
++		ret = -ESRCH;
+ 		goto out;
++	}
+ 
+-	ret = -EPERM;
+-	if (pid == 1)		/* you may not mess with init */
++	/* you may not mess with init */
++	if (unlikely(pid == 1)) {
++		ret = -EPERM;
+ 		goto out_tsk;
++	}
+ 
+ 	if (request == PTRACE_ATTACH) {
+ 		ret = ptrace_attach(child);
+@@ -152,234 +160,175 @@
+ 	}
+ 
+ 	ret = ptrace_check_attach(child, request == PTRACE_KILL);
+-	if (ret < 0)
++	if (ret)
+ 		goto out_tsk;
+ 
+ 	switch (request) {
+ 	/* when I and D space are separate, these will need to be fixed. */
+-		case PTRACE_PEEKTEXT: /* read word at location addr. */
+-		case PTRACE_PEEKDATA: {
+-			unsigned long tmp;
+-			int copied;
+-
+-			copied = access_process_vm(child, addr, &tmp, sizeof(tmp), 0);
+-			ret = -EIO;
+-			if (copied != sizeof(tmp))
+-				break;
+-			ret = put_user(tmp,(unsigned long *) data);
+-			break;
+-		}
++	case PTRACE_PEEKTEXT:	/* read word at location addr. */
++	case PTRACE_PEEKDATA:
++		i = access_process_vm(child, addr, &tmp, sizeof(tmp), 0);
++		if (i != sizeof(tmp))
++			goto out_eio;
++		ret = put_user(tmp, (unsigned long *)data);
++		break;
+ 
+ 	/* read the word at location addr in the USER area. */
+-		case PTRACE_PEEKUSR: {
+-			unsigned long tmp;
+-
+-			ret = -EIO;
+-			if ((addr & 3) || addr < 0 ||
+-			    addr > sizeof(struct user) - 3)
+-				break;
+-
+-			tmp = 0;  /* Default return condition */
+-			addr = addr >> 2; /* temporary hack. */
+-			ret = -EIO;
+-			if (addr < 19) {
+-				tmp = get_reg(child, addr);
+-				if (addr == PT_SR)
+-					tmp >>= 16;
+-			} else if (addr >= 21 && addr < 49) {
+-				tmp = child->thread.fp[addr - 21];
+-#ifdef CONFIG_M68KFPU_EMU
+-				/* Convert internal fpu reg representation
+-				 * into long double format
+-				 */
+-				if (FPU_IS_EMU && (addr < 45) && !(addr % 3))
+-					tmp = ((tmp & 0xffff0000) << 15) |
+-					      ((tmp & 0x0000ffff) << 16);
+-#endif
+-			} else
+-				break;
+-			ret = put_user(tmp,(unsigned long *) data);
+-			break;
+-		}
+-
+-      /* when I and D space are separate, this will have to be fixed. */
+-		case PTRACE_POKETEXT: /* write the word at location addr. */
+-		case PTRACE_POKEDATA:
+-			ret = 0;
+-			if (access_process_vm(child, addr, &data, sizeof(data), 1) == sizeof(data))
+-				break;
+-			ret = -EIO;
+-			break;
+-
+-		case PTRACE_POKEUSR: /* write the word at location addr in the USER area */
+-			ret = -EIO;
+-			if ((addr & 3) || addr < 0 ||
+-			    addr > sizeof(struct user) - 3)
+-				break;
+-
+-			addr = addr >> 2; /* temporary hack. */
+-
+-			if (addr == PT_SR) {
+-				data &= SR_MASK;
+-				data <<= 16;
+-				data |= get_reg(child, PT_SR) & ~(SR_MASK << 16);
+-			}
+-			if (addr < 19) {
+-				if (put_reg(child, addr, data))
+-					break;
+-				ret = 0;
+-				break;
+-			}
+-			if (addr >= 21 && addr < 48)
+-			{
+-#ifdef CONFIG_M68KFPU_EMU
+-				/* Convert long double format
+-				 * into internal fpu reg representation
+-				 */
+-				if (FPU_IS_EMU && (addr < 45) && !(addr % 3)) {
+-					data = (unsigned long)data << 15;
+-					data = (data & 0xffff0000) |
+-					       ((data & 0x0000ffff) >> 1);
+-				}
+-#endif
+-				child->thread.fp[addr - 21] = data;
+-				ret = 0;
+-			}
+-			break;
+-
+-		case PTRACE_SYSCALL: /* continue and stop at next (return from) syscall */
+-		case PTRACE_CONT: { /* restart after signal. */
+-			long tmp;
+-
+-			ret = -EIO;
+-			if (!valid_signal(data))
+-				break;
+-			if (request == PTRACE_SYSCALL) {
+-					child->thread.work.syscall_trace = ~0;
+-			} else {
+-					child->thread.work.syscall_trace = 0;
+-			}
+-			child->exit_code = data;
+-			/* make sure the single step bit is not set. */
+-			tmp = get_reg(child, PT_SR) & ~(TRACE_BITS << 16);
+-			put_reg(child, PT_SR, tmp);
+-			child->thread.work.delayed_trace = 0;
+-			wake_up_process(child);
+-			ret = 0;
+-			break;
+-		}
+-
+-/*
+- * make the child exit.  Best I can do is send it a sigkill.
+- * perhaps it should be put in the status that it wants to
+- * exit.
+- */
+-		case PTRACE_KILL: {
+-			long tmp;
+-
+-			ret = 0;
+-			if (child->exit_state == EXIT_ZOMBIE) /* already dead */
+-				break;
+-			child->exit_code = SIGKILL;
+-	/* make sure the single step bit is not set. */
+-			tmp = get_reg(child, PT_SR) & ~(TRACE_BITS << 16);
+-			put_reg(child, PT_SR, tmp);
+-			child->thread.work.delayed_trace = 0;
+-			wake_up_process(child);
+-			break;
+-		}
+-
+-		case PTRACE_SINGLESTEP: {  /* set the trap flag. */
+-			long tmp;
+-
+-			ret = -EIO;
+-			if (!valid_signal(data))
+-				break;
+-			child->thread.work.syscall_trace = 0;
+-			tmp = get_reg(child, PT_SR) | (TRACE_BITS << 16);
+-			put_reg(child, PT_SR, tmp);
+-			child->thread.work.delayed_trace = 1;
+-
+-			child->exit_code = data;
+-	/* give it a chance to run. */
+-			wake_up_process(child);
+-			ret = 0;
+-			break;
+-		}
++	case PTRACE_PEEKUSR:
++		if (addr & 3)
++			goto out_eio;
++		addr >>= 2;	/* temporary hack. */
++
++		if (addr >= 0 && addr < 19) {
++			tmp = get_reg(child, addr);
++			if (addr == PT_SR)
++				tmp >>= 16;
++		} else if (addr >= 21 && addr < 49) {
++			tmp = child->thread.fp[addr - 21];
++			/* Convert internal fpu reg representation
++			 * into long double format
++			 */
++			if (FPU_IS_EMU && (addr < 45) && !(addr % 3))
++				tmp = ((tmp & 0xffff0000) << 15) |
++				      ((tmp & 0x0000ffff) << 16);
++		} else
++			break;
++		ret = put_user(tmp, (unsigned long *)data);
++		break;
++
++	/* when I and D space are separate, this will have to be fixed. */
++	case PTRACE_POKETEXT:	/* write the word at location addr. */
++	case PTRACE_POKEDATA:
++		if (access_process_vm(child, addr, &data, sizeof(data), 1) != sizeof(data))
++			goto out_eio;
++		break;
++
++	case PTRACE_POKEUSR:	/* write the word at location addr in the USER area */
++		if (addr & 3)
++			goto out_eio;
++		addr >>= 2;	/* temporary hack. */
++
++		if (addr == PT_SR) {
++			data &= SR_MASK;
++			data <<= 16;
++			data |= get_reg(child, PT_SR) & ~(SR_MASK << 16);
++		} else if (addr >= 0 && addr < 19) {
++			if (put_reg(child, addr, data))
++				goto out_eio;
++		} else if (addr >= 21 && addr < 48) {
++			/* Convert long double format
++			 * into internal fpu reg representation
++			 */
++			if (FPU_IS_EMU && (addr < 45) && !(addr % 3)) {
++				data = (unsigned long)data << 15;
++				data = (data & 0xffff0000) |
++				       ((data & 0x0000ffff) >> 1);
++			}
++			child->thread.fp[addr - 21] = data;
++		} else
++			goto out_eio;
++		break;
++
++	case PTRACE_SYSCALL:	/* continue and stop at next (return from) syscall */
++	case PTRACE_CONT:	/* restart after signal. */
++		if (!valid_signal(data))
++			goto out_eio;
++
++		if (request == PTRACE_SYSCALL)
++			set_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
++		else
++			clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
++		child->exit_code = data;
++		singlestep_disable(child);
++		wake_up_process(child);
++		break;
+ 
+-		case PTRACE_DETACH:	/* detach a process that was attached. */
+-			ret = ptrace_detach(child, data);
++	/*
++	 * make the child exit.  Best I can do is send it a sigkill.
++	 * perhaps it should be put in the status that it wants to
++	 * exit.
++	 */
++	case PTRACE_KILL:
++		if (child->exit_state == EXIT_ZOMBIE) /* already dead */
+ 			break;
+-
+-		case PTRACE_GETREGS: { /* Get all gp regs from the child. */
+-			int i;
+-			unsigned long tmp;
+-			for (i = 0; i < 19; i++) {
+-			    tmp = get_reg(child, i);
+-			    if (i == PT_SR)
++		child->exit_code = SIGKILL;
++		singlestep_disable(child);
++		wake_up_process(child);
++		break;
++
++	case PTRACE_SINGLESTEP:	/* set the trap flag. */
++		if (!valid_signal(data))
++			goto out_eio;
++
++		clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
++		tmp = get_reg(child, PT_SR) | (TRACE_BITS << 16);
++		put_reg(child, PT_SR, tmp);
++		set_tsk_thread_flag(child, TIF_DELAYED_TRACE);
++
++		child->exit_code = data;
++		/* give it a chance to run. */
++		wake_up_process(child);
++		break;
++
++	case PTRACE_DETACH:	/* detach a process that was attached. */
++		ret = ptrace_detach(child, data);
++		break;
++
++	case PTRACE_GETREGS:	/* Get all gp regs from the child. */
++		for (i = 0; i < 19; i++) {
++			tmp = get_reg(child, i);
++			if (i == PT_SR)
+ 				tmp >>= 16;
+-			    if (put_user(tmp, (unsigned long *) data)) {
+-				ret = -EFAULT;
++			ret = put_user(tmp, (unsigned long *)data);
++			if (ret)
+ 				break;
+-			    }
+-			    data += sizeof(long);
+-			}
+-			ret = 0;
+-			break;
++			data += sizeof(long);
+ 		}
++		break;
+ 
+-		case PTRACE_SETREGS: { /* Set all gp regs in the child. */
+-			int i;
+-			unsigned long tmp;
+-			for (i = 0; i < 19; i++) {
+-			    if (get_user(tmp, (unsigned long *) data)) {
+-				ret = -EFAULT;
++	case PTRACE_SETREGS:	/* Set all gp regs in the child. */
++		for (i = 0; i < 19; i++) {
++			ret = get_user(tmp, (unsigned long *)data);
++			if (ret)
+ 				break;
+-			    }
+-			    if (i == PT_SR) {
++			if (i == PT_SR) {
+ 				tmp &= SR_MASK;
+ 				tmp <<= 16;
+ 				tmp |= get_reg(child, PT_SR) & ~(SR_MASK << 16);
+-			    }
+-			    put_reg(child, i, tmp);
+-			    data += sizeof(long);
+ 			}
+-			ret = 0;
+-			break;
+-		}
+-
+-		case PTRACE_GETFPREGS: { /* Get the child FPU state. */
+-			ret = 0;
+-			if (copy_to_user((void *)data, &child->thread.fp,
+-					 sizeof(struct user_m68kfp_struct)))
+-				ret = -EFAULT;
+-			break;
++			put_reg(child, i, tmp);
++			data += sizeof(long);
+ 		}
++		break;
+ 
+-		case PTRACE_SETFPREGS: { /* Set the child FPU state. */
+-			ret = 0;
+-			if (copy_from_user(&child->thread.fp, (void *)data,
+-					   sizeof(struct user_m68kfp_struct)))
+-				ret = -EFAULT;
+-			break;
+-		}
+-
+-		default:
+-			ret = ptrace_request(child, request, addr, data);
+-			break;
++	case PTRACE_GETFPREGS:	/* Get the child FPU state. */
++		if (copy_to_user((void *)data, &child->thread.fp,
++				 sizeof(struct user_m68kfp_struct)))
++			ret = -EFAULT;
++		break;
++
++	case PTRACE_SETFPREGS:	/* Set the child FPU state. */
++		if (copy_from_user(&child->thread.fp, (void *)data,
++				   sizeof(struct user_m68kfp_struct)))
++			ret = -EFAULT;
++		break;
++
++	default:
++		ret = ptrace_request(child, request, addr, data);
++		break;
+ 	}
+ out_tsk:
+ 	put_task_struct(child);
+ out:
+ 	unlock_kernel();
+ 	return ret;
++out_eio:
++	ret = -EIO;
++	goto out_tsk;
+ }
+ 
+ asmlinkage void syscall_trace(void)
+ {
+-	if (!current->thread.work.delayed_trace &&
+-	    !current->thread.work.syscall_trace)
+-		return;
+ 	ptrace_notify(SIGTRAP | ((current->ptrace & PT_TRACESYSGOOD)
+ 				 ? 0x80 : 0));
+ 	/*
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/kernel/setup.c linux-2.6.13/arch/m68k/kernel/setup.c
+--- linux-2.6.13-i386/arch/m68k/kernel/setup.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/kernel/setup.c	2005-10-12 16:31:24.000000000 +0200
+@@ -280,6 +280,10 @@
+ 	    }
+ 	}
+ 
++#ifdef CONFIG_DUMMY_CONSOLE
++	conswitchp = &dummy_con;
++#endif
++
+ 	switch (m68k_machtype) {
+ #ifdef CONFIG_AMIGA
+ 	    case MACH_AMIGA:
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/lib/Makefile linux-2.6.13/arch/m68k/lib/Makefile
+--- linux-2.6.13-i386/arch/m68k/lib/Makefile	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/lib/Makefile	2005-08-30 16:31:36.000000000 +0200
+@@ -5,4 +5,4 @@
+ EXTRA_AFLAGS := -traditional
+ 
+ lib-y		:= ashldi3.o ashrdi3.o lshrdi3.o muldi3.o \
+-			checksum.o memcmp.o memcpy.o memset.o semaphore.o
++			checksum.o string.o semaphore.o
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/lib/memcmp.c linux-2.6.13/arch/m68k/lib/memcmp.c
+--- linux-2.6.13-i386/arch/m68k/lib/memcmp.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/lib/memcmp.c	1970-01-01 01:00:00.000000000 +0100
+@@ -1,11 +0,0 @@
+-#include <linux/types.h>
+-
+-int memcmp(const void * cs,const void * ct,size_t count)
+-{
+-  const unsigned char *su1, *su2;
+-
+-  for( su1 = cs, su2 = ct; 0 < count; ++su1, ++su2, count--)
+-    if (*su1 != *su2)
+-      return((*su1 < *su2) ? -1 : +1);
+-  return(0);
+-}
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/lib/memcpy.c linux-2.6.13/arch/m68k/lib/memcpy.c
+--- linux-2.6.13-i386/arch/m68k/lib/memcpy.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/lib/memcpy.c	1970-01-01 01:00:00.000000000 +0100
+@@ -1,75 +0,0 @@
+-#include <linux/types.h>
+-
+-void * memcpy(void * to, const void * from, size_t n)
+-{
+-  void *xto = to;
+-  size_t temp, temp1;
+-
+-  if (!n)
+-    return xto;
+-  if ((long) to & 1)
+-    {
+-      char *cto = to;
+-      const char *cfrom = from;
+-      *cto++ = *cfrom++;
+-      to = cto;
+-      from = cfrom;
+-      n--;
+-    }
+-  if (n > 2 && (long) to & 2)
+-    {
+-      short *sto = to;
+-      const short *sfrom = from;
+-      *sto++ = *sfrom++;
+-      to = sto;
+-      from = sfrom;
+-      n -= 2;
+-    }
+-  temp = n >> 2;
+-  if (temp)
+-    {
+-      long *lto = to;
+-      const long *lfrom = from;
+-
+-      __asm__ __volatile__("movel %2,%3\n\t"
+-			   "andw  #7,%3\n\t"
+-			   "lsrl  #3,%2\n\t"
+-			   "negw  %3\n\t"
+-			   "jmp   %%pc@(1f,%3:w:2)\n\t"
+-			   "4:\t"
+-			   "movel %0 at +,%1 at +\n\t"
+-			   "movel %0 at +,%1 at +\n\t"
+-			   "movel %0 at +,%1 at +\n\t"
+-			   "movel %0 at +,%1 at +\n\t"
+-			   "movel %0 at +,%1 at +\n\t"
+-			   "movel %0 at +,%1 at +\n\t"
+-			   "movel %0 at +,%1 at +\n\t"
+-			   "movel %0 at +,%1 at +\n\t"
+-			   "1:\t"
+-			   "dbra  %2,4b\n\t"
+-			   "clrw  %2\n\t"
+-			   "subql #1,%2\n\t"
+-			   "jpl   4b\n\t"
+-			   : "=a" (lfrom), "=a" (lto), "=d" (temp),
+-			   "=&d" (temp1)
+-			   : "0" (lfrom), "1" (lto), "2" (temp)
+-			   );
+-      to = lto;
+-      from = lfrom;
+-    }
+-  if (n & 2)
+-    {
+-      short *sto = to;
+-      const short *sfrom = from;
+-      *sto++ = *sfrom++;
+-      to = sto;
+-      from = sfrom;
+-    }
+-  if (n & 1)
+-    {
+-      char *cto = to;
+-      const char *cfrom = from;
+-      *cto = *cfrom;
+-    }
+-  return xto;
+-}
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/lib/memset.c linux-2.6.13/arch/m68k/lib/memset.c
+--- linux-2.6.13-i386/arch/m68k/lib/memset.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/lib/memset.c	1970-01-01 01:00:00.000000000 +0100
+@@ -1,68 +0,0 @@
+-#include <linux/types.h>
+-
+-void * memset(void * s, int c, size_t count)
+-{
+-  void *xs = s;
+-  size_t temp, temp1;
+-
+-  if (!count)
+-    return xs;
+-  c &= 0xff;
+-  c |= c << 8;
+-  c |= c << 16;
+-  if ((long) s & 1)
+-    {
+-      char *cs = s;
+-      *cs++ = c;
+-      s = cs;
+-      count--;
+-    }
+-  if (count > 2 && (long) s & 2)
+-    {
+-      short *ss = s;
+-      *ss++ = c;
+-      s = ss;
+-      count -= 2;
+-    }
+-  temp = count >> 2;
+-  if (temp)
+-    {
+-      long *ls = s;
+-
+-      __asm__ __volatile__("movel %1,%2\n\t"
+-			   "andw  #7,%2\n\t"
+-			   "lsrl  #3,%1\n\t"
+-			   "negw  %2\n\t"
+-			   "jmp   %%pc@(2f,%2:w:2)\n\t"
+-			   "1:\t"
+-			   "movel %3,%0 at +\n\t"
+-			   "movel %3,%0 at +\n\t"
+-			   "movel %3,%0 at +\n\t"
+-			   "movel %3,%0 at +\n\t"
+-			   "movel %3,%0 at +\n\t"
+-			   "movel %3,%0 at +\n\t"
+-			   "movel %3,%0 at +\n\t"
+-			   "movel %3,%0 at +\n\t"
+-			   "2:\t"
+-			   "dbra  %1,1b\n\t"
+-			   "clrw  %1\n\t"
+-			   "subql #1,%1\n\t"
+-			   "jpl   1b\n\t"
+-			   : "=a" (ls), "=d" (temp), "=&d" (temp1)
+-			   : "d" (c), "0" (ls), "1" (temp)
+-			   );
+-      s = ls;
+-    }
+-  if (count & 2)
+-    {
+-      short *ss = s;
+-      *ss++ = c;
+-      s = ss;
+-    }
+-  if (count & 1)
+-    {
+-      char *cs = s;
+-      *cs = c;
+-    }
+-  return xs;
+-}
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/lib/string.c linux-2.6.13/arch/m68k/lib/string.c
+--- linux-2.6.13-i386/arch/m68k/lib/string.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.13/arch/m68k/lib/string.c	2005-08-30 13:26:30.000000000 +0200
+@@ -0,0 +1,237 @@
++
++#include <linux/types.h>
++#include <linux/module.h>
++
++void *memset(void *s, int c, size_t count)
++{
++	void *xs = s;
++	size_t temp, temp1;
++
++	if (!count)
++		return xs;
++	c &= 0xff;
++	c |= c << 8;
++	c |= c << 16;
++	if ((long)s & 1) {
++		char *cs = s;
++		*cs++ = c;
++		s = cs;
++		count--;
++	}
++	if (count > 2 && (long)s & 2) {
++		short *ss = s;
++		*ss++ = c;
++		s = ss;
++		count -= 2;
++	}
++	temp = count >> 2;
++	if (temp) {
++		long *ls = s;
++
++		asm volatile (
++			"	movel %1,%2\n"
++			"	andw  #7,%2\n"
++			"	lsrl  #3,%1\n"
++			"	negw  %2\n"
++			"	jmp   %%pc@(2f,%2:w:2)\n"
++			"1:	movel %3,%0 at +\n"
++			"	movel %3,%0 at +\n"
++			"	movel %3,%0 at +\n"
++			"	movel %3,%0 at +\n"
++			"	movel %3,%0 at +\n"
++			"	movel %3,%0 at +\n"
++			"	movel %3,%0 at +\n"
++			"	movel %3,%0 at +\n"
++			"2:	dbra  %1,1b\n"
++			"	clrw  %1\n"
++			"	subql #1,%1\n"
++			"	jpl   1b"
++			: "=a" (ls), "=d" (temp), "=&d" (temp1)
++			: "d" (c), "0" (ls), "1" (temp));
++		s = ls;
++	}
++	if (count & 2) {
++		short *ss = s;
++		*ss++ = c;
++		s = ss;
++	}
++	if (count & 1) {
++		char *cs = s;
++		*cs = c;
++	}
++	return xs;
++}
++EXPORT_SYMBOL(memset);
++
++void *memcpy(void *to, const void *from, size_t n)
++{
++	void *xto = to;
++	size_t temp, temp1;
++
++	if (!n)
++		return xto;
++	if ((long)to & 1) {
++		char *cto = to;
++		const char *cfrom = from;
++		*cto++ = *cfrom++;
++		to = cto;
++		from = cfrom;
++		n--;
++	}
++	if (n > 2 && (long)to & 2) {
++		short *sto = to;
++		const short *sfrom = from;
++		*sto++ = *sfrom++;
++		to = sto;
++		from = sfrom;
++		n -= 2;
++	}
++	temp = n >> 2;
++	if (temp) {
++		long *lto = to;
++		const long *lfrom = from;
++
++		asm volatile (
++			"	movel %2,%3\n"
++			"	andw  #7,%3\n"
++			"	lsrl  #3,%2\n"
++			"	negw  %3\n"
++			"	jmp   %%pc@(1f,%3:w:2)\n"
++			"4:	movel %0 at +,%1 at +\n"
++			"	movel %0 at +,%1 at +\n"
++			"	movel %0 at +,%1 at +\n"
++			"	movel %0 at +,%1 at +\n"
++			"	movel %0 at +,%1 at +\n"
++			"	movel %0 at +,%1 at +\n"
++			"	movel %0 at +,%1 at +\n"
++			"	movel %0 at +,%1 at +\n"
++			"1:	dbra  %2,4b\n"
++			"	clrw  %2\n"
++			"	subql #1,%2\n"
++			"	jpl   4b"
++			: "=a" (lfrom), "=a" (lto), "=d" (temp), "=&d" (temp1)
++			: "0" (lfrom), "1" (lto), "2" (temp));
++		to = lto;
++		from = lfrom;
++	}
++	if (n & 2) {
++		short *sto = to;
++		const short *sfrom = from;
++		*sto++ = *sfrom++;
++		to = sto;
++		from = sfrom;
++	}
++	if (n & 1) {
++		char *cto = to;
++		const char *cfrom = from;
++		*cto = *cfrom;
++	}
++	return xto;
++}
++EXPORT_SYMBOL(memcpy);
++
++void *memmove(void *dest, const void *src, size_t n)
++{
++	void *xdest = dest;
++	size_t temp;
++
++	if (!n)
++		return xdest;
++
++	if (dest < src) {
++		if ((long)dest & 1) {
++			char *cdest = dest;
++			const char *csrc = src;
++			*cdest++ = *csrc++;
++			dest = cdest;
++			src = csrc;
++			n--;
++		}
++		if (n > 2 && (long)dest & 2) {
++			short *sdest = dest;
++			const short *ssrc = src;
++			*sdest++ = *ssrc++;
++			dest = sdest;
++			src = ssrc;
++			n -= 2;
++		}
++		temp = n >> 2;
++		if (temp) {
++			long *ldest = dest;
++			const long *lsrc = src;
++			temp--;
++			do
++				*ldest++ = *lsrc++;
++			while (temp--);
++			dest = ldest;
++			src = lsrc;
++		}
++		if (n & 2) {
++			short *sdest = dest;
++			const short *ssrc = src;
++			*sdest++ = *ssrc++;
++			dest = sdest;
++			src = ssrc;
++		}
++		if (n & 1) {
++			char *cdest = dest;
++			const char *csrc = src;
++			*cdest = *csrc;
++		}
++	} else {
++		dest = (char *)dest + n;
++		src = (const char *)src + n;
++		if ((long)dest & 1) {
++			char *cdest = dest;
++			const char *csrc = src;
++			*--cdest = *--csrc;
++			dest = cdest;
++			src = csrc;
++			n--;
++		}
++		if (n > 2 && (long)dest & 2) {
++			short *sdest = dest;
++			const short *ssrc = src;
++			*--sdest = *--ssrc;
++			dest = sdest;
++			src = ssrc;
++			n -= 2;
++		}
++		temp = n >> 2;
++		if (temp) {
++			long *ldest = dest;
++			const long *lsrc = src;
++			temp--;
++			do
++				*--ldest = *--lsrc;
++			while (temp--);
++			dest = ldest;
++			src = lsrc;
++		}
++		if (n & 2) {
++			short *sdest = dest;
++			const short *ssrc = src;
++			*--sdest = *--ssrc;
++			dest = sdest;
++			src = ssrc;
++		}
++		if (n & 1) {
++			char *cdest = dest;
++			const char *csrc = src;
++			*--cdest = *--csrc;
++		}
++	}
++	return xdest;
++}
++EXPORT_SYMBOL(memmove);
++
++int memcmp(const void *cs, const void *ct, size_t count)
++{
++	const unsigned char *su1, *su2;
++
++	for (su1 = cs, su2 = ct; count > 0; ++su1, ++su2, count--)
++		if (*su1 != *su2)
++			return *su1 < *su2 ? -1 : +1;
++	return 0;
++}
++EXPORT_SYMBOL(memcmp);
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/mac/config.c linux-2.6.13/arch/m68k/mac/config.c
+--- linux-2.6.13-i386/arch/m68k/mac/config.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/mac/config.c	2005-10-12 16:31:24.000000000 +0200
+@@ -212,9 +212,6 @@
+ 	mach_reset           = mac_reset;
+ 	mach_halt            = mac_poweroff;
+ 	mach_power_off       = mac_poweroff;
+-#ifdef CONFIG_DUMMY_CONSOLE
+-	conswitchp	         = &dummy_con;
+-#endif
+ 	mach_max_dma_address = 0xffffffff;
+ #if 0
+ 	mach_debug_init	 = mac_debug_init;
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/mm/Makefile linux-2.6.13/arch/m68k/mm/Makefile
+--- linux-2.6.13-i386/arch/m68k/mm/Makefile	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/mm/Makefile	2004-02-06 14:59:40.000000000 +0100
+@@ -2,7 +2,7 @@
+ # Makefile for the linux m68k-specific parts of the memory manager.
+ #
+ 
+-obj-y		:= init.o fault.o hwtest.o
++obj-y		:= cache.o init.o fault.o hwtest.o
+ 
+ obj-$(CONFIG_MMU_MOTOROLA)	+= kmap.o memory.o motorola.o
+ obj-$(CONFIG_MMU_SUN3)		+= sun3kmap.o sun3mmu.o
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/mm/cache.c linux-2.6.13/arch/m68k/mm/cache.c
+--- linux-2.6.13-i386/arch/m68k/mm/cache.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.13/arch/m68k/mm/cache.c	2005-08-30 16:31:37.000000000 +0200
+@@ -0,0 +1,118 @@
++/*
++ *  linux/arch/m68k/mm/cache.c
++ *
++ *  Instruction cache handling
++ *
++ *  Copyright (C) 1995  Hamish Macdonald
++ */
++
++#include <linux/module.h>
++#include <asm/pgalloc.h>
++#include <asm/traps.h>
++
++
++static unsigned long virt_to_phys_slow(unsigned long vaddr)
++{
++	if (CPU_IS_060) {
++		unsigned long paddr;
++
++		/* The PLPAR instruction causes an access error if the translation
++		 * is not possible. To catch this we use the same exception mechanism
++		 * as for user space accesses in <asm/uaccess.h>. */
++		asm volatile (".chip 68060\n"
++			      "1: plpar (%0)\n"
++			      ".chip 68k\n"
++			      "2:\n"
++			      ".section .fixup,\"ax\"\n"
++			      "   .even\n"
++			      "3: sub.l %0,%0\n"
++			      "   jra 2b\n"
++			      ".previous\n"
++			      ".section __ex_table,\"a\"\n"
++			      "   .align 4\n"
++			      "   .long 1b,3b\n"
++			      ".previous"
++			      : "=a" (paddr)
++			      : "0" (vaddr));
++		return paddr;
++	} else if (CPU_IS_040) {
++		unsigned long mmusr;
++
++		asm volatile (".chip 68040\n\t"
++			      "ptestr (%1)\n\t"
++			      "movec %%mmusr, %0\n\t"
++			      ".chip 68k"
++			      : "=r" (mmusr)
++			      : "a" (vaddr));
++
++		if (mmusr & MMU_R_040)
++			return (mmusr & PAGE_MASK) | (vaddr & ~PAGE_MASK);
++	} else {
++		unsigned short mmusr;
++		unsigned long *descaddr;
++
++		asm volatile ("ptestr %3,%2@,#7,%0\n\t"
++			      "pmove %%psr,%1@"
++			      : "=a&" (descaddr)
++			      : "a" (&mmusr), "a" (vaddr), "d" (get_fs().seg));
++		if (mmusr & (MMU_I|MMU_B|MMU_L))
++			return 0;
++		descaddr = phys_to_virt((unsigned long)descaddr);
++		switch (mmusr & MMU_NUM) {
++		case 1:
++			return (*descaddr & 0xfe000000) | (vaddr & 0x01ffffff);
++		case 2:
++			return (*descaddr & 0xfffc0000) | (vaddr & 0x0003ffff);
++		case 3:
++			return (*descaddr & PAGE_MASK) | (vaddr & ~PAGE_MASK);
++		}
++	}
++	return 0;
++}
++
++/* Push n pages at kernel virtual address and clear the icache */
++/* RZ: use cpush %bc instead of cpush %dc, cinv %ic */
++void flush_icache_range(unsigned long address, unsigned long endaddr)
++{
++
++	if (CPU_IS_040_OR_060) {
++		address &= PAGE_MASK;
++
++		do {
++			asm volatile ("nop\n\t"
++				      ".chip 68040\n\t"
++				      "cpushp %%bc,(%0)\n\t"
++				      ".chip 68k"
++				      : : "a" (virt_to_phys_slow(address)));
++			address += PAGE_SIZE;
++		} while (address < endaddr);
++	} else {
++		unsigned long tmp;
++		asm volatile ("movec %%cacr,%0\n\t"
++			      "orw %1,%0\n\t"
++			      "movec %0,%%cacr"
++			      : "=&d" (tmp)
++			      : "di" (FLUSH_I));
++	}
++}
++EXPORT_SYMBOL(flush_icache_range);
++
++void flush_icache_user_range(struct vm_area_struct *vma, struct page *page,
++			     unsigned long addr, int len)
++{
++	if (CPU_IS_040_OR_060) {
++		asm volatile ("nop\n\t"
++			      ".chip 68040\n\t"
++			      "cpushp %%bc,(%0)\n\t"
++			      ".chip 68k"
++			      : : "a" (page_to_phys(page)));
++	} else {
++		unsigned long tmp;
++		asm volatile ("movec %%cacr,%0\n\t"
++			      "orw %1,%0\n\t"
++			      "movec %0,%%cacr"
++			      : "=&d" (tmp)
++			      : "di" (FLUSH_I));
++	}
++}
++
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/mm/memory.c linux-2.6.13/arch/m68k/mm/memory.c
+--- linux-2.6.13-i386/arch/m68k/mm/memory.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/mm/memory.c	2004-10-03 16:35:42.000000000 +0200
+@@ -354,110 +354,6 @@
+ #endif
+ }
+ 
+-static unsigned long virt_to_phys_slow(unsigned long vaddr)
+-{
+-	if (CPU_IS_060) {
+-		mm_segment_t fs = get_fs();
+-		unsigned long paddr;
+-
+-		set_fs(get_ds());
+-
+-		/* The PLPAR instruction causes an access error if the translation
+-		 * is not possible. To catch this we use the same exception mechanism
+-		 * as for user space accesses in <asm/uaccess.h>. */
+-		asm volatile (".chip 68060\n"
+-			      "1: plpar (%0)\n"
+-			      ".chip 68k\n"
+-			      "2:\n"
+-			      ".section .fixup,\"ax\"\n"
+-			      "   .even\n"
+-			      "3: sub.l %0,%0\n"
+-			      "   jra 2b\n"
+-			      ".previous\n"
+-			      ".section __ex_table,\"a\"\n"
+-			      "   .align 4\n"
+-			      "   .long 1b,3b\n"
+-			      ".previous"
+-			      : "=a" (paddr)
+-			      : "0" (vaddr));
+-		set_fs(fs);
+-		return paddr;
+-	} else if (CPU_IS_040) {
+-		mm_segment_t fs = get_fs();
+-		unsigned long mmusr;
+-
+-		set_fs(get_ds());
+-
+-		asm volatile (".chip 68040\n\t"
+-			      "ptestr (%1)\n\t"
+-			      "movec %%mmusr, %0\n\t"
+-			      ".chip 68k"
+-			      : "=r" (mmusr)
+-			      : "a" (vaddr));
+-		set_fs(fs);
+-
+-		if (mmusr & MMU_R_040)
+-			return (mmusr & PAGE_MASK) | (vaddr & ~PAGE_MASK);
+-	} else {
+-		unsigned short mmusr;
+-		unsigned long *descaddr;
+-
+-		asm volatile ("ptestr #5,%2@,#7,%0\n\t"
+-			      "pmove %%psr,%1@"
+-			      : "=a&" (descaddr)
+-			      : "a" (&mmusr), "a" (vaddr));
+-		if (mmusr & (MMU_I|MMU_B|MMU_L))
+-			return 0;
+-		descaddr = phys_to_virt((unsigned long)descaddr);
+-		switch (mmusr & MMU_NUM) {
+-		case 1:
+-			return (*descaddr & 0xfe000000) | (vaddr & 0x01ffffff);
+-		case 2:
+-			return (*descaddr & 0xfffc0000) | (vaddr & 0x0003ffff);
+-		case 3:
+-			return (*descaddr & PAGE_MASK) | (vaddr & ~PAGE_MASK);
+-		}
+-	}
+-	return 0;
+-}
+-
+-/* Push n pages at kernel virtual address and clear the icache */
+-/* RZ: use cpush %bc instead of cpush %dc, cinv %ic */
+-void flush_icache_range(unsigned long address, unsigned long endaddr)
+-{
+-	if (CPU_IS_040_OR_060) {
+-		address &= PAGE_MASK;
+-
+-		if (address >= PAGE_OFFSET && address < (unsigned long)high_memory) {
+-			do {
+-				asm volatile ("nop\n\t"
+-					      ".chip 68040\n\t"
+-					      "cpushp %%bc,(%0)\n\t"
+-					      ".chip 68k"
+-					      : : "a" (virt_to_phys((void *)address)));
+-				address += PAGE_SIZE;
+-			} while (address < endaddr);
+-		} else {
+-			do {
+-				asm volatile ("nop\n\t"
+-					      ".chip 68040\n\t"
+-					      "cpushp %%bc,(%0)\n\t"
+-					      ".chip 68k"
+-					      : : "a" (virt_to_phys_slow(address)));
+-				address += PAGE_SIZE;
+-			} while (address < endaddr);
+-		}
+-	} else {
+-		unsigned long tmp;
+-		asm volatile ("movec %%cacr,%0\n\t"
+-			      "orw %1,%0\n\t"
+-			      "movec %0,%%cacr"
+-			      : "=&d" (tmp)
+-			      : "di" (FLUSH_I));
+-	}
+-}
+-
+-
+ #ifndef CONFIG_SINGLE_MEMORY_CHUNK
+ int mm_end_of_chunk (unsigned long addr, int len)
+ {
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/q40/config.c linux-2.6.13/arch/m68k/q40/config.c
+--- linux-2.6.13-i386/arch/m68k/q40/config.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/q40/config.c	2005-10-12 16:31:25.000000000 +0200
+@@ -194,9 +194,6 @@
+     mach_heartbeat = q40_heartbeat;
+ #endif
+     mach_halt = q40_halt;
+-#ifdef CONFIG_DUMMY_CONSOLE
+-    conswitchp = &dummy_con;
+-#endif
+ 
+     /* disable a few things that SMSQ might have left enabled */
+     q40_disable_irqs();
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/sun3/config.c linux-2.6.13/arch/m68k/sun3/config.c
+--- linux-2.6.13-i386/arch/m68k/sun3/config.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/sun3/config.c	2005-10-12 16:31:25.000000000 +0200
+@@ -160,9 +160,6 @@
+ 	mach_hwclk           =  sun3_hwclk;
+ 	mach_halt	     =  sun3_halt;
+ 	mach_get_hardware_list = sun3_get_hardware_list;
+-#if defined(CONFIG_DUMMY_CONSOLE)
+-	conswitchp	     = &dummy_con;
+-#endif
+ 
+ 	memory_start = ((((int)&_end) + 0x2000) & ~0x1fff);
+ // PROM seems to want the last couple of physical pages. --m
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/sun3x/config.c linux-2.6.13/arch/m68k/sun3x/config.c
+--- linux-2.6.13-i386/arch/m68k/sun3x/config.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/sun3x/config.c	2005-10-12 16:31:25.000000000 +0200
+@@ -71,10 +71,6 @@
+ 	mach_get_model       = sun3_get_model;
+ 	mach_get_hardware_list = sun3x_get_hardware_list;
+ 
+-#ifdef CONFIG_DUMMY_CONSOLE
+-	conswitchp	     = &dummy_con;
+-#endif
+-
+ 	sun3_intreg = (unsigned char *)SUN3X_INTREG;
+ 
+ 	/* only the serial console is known to work anyway... */

Added: people/waldi/linux-2.6/debian/patches-debian/m68k-drivers.patch
===================================================================
--- people/waldi/linux-2.6/debian/patches-debian/m68k-drivers.patch	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-debian/m68k-drivers.patch	2005-11-06 16:19:16 UTC (rev 4733)
@@ -0,0 +1,2075 @@
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/char/16c552.h linux-2.6.13/drivers/char/16c552.h
+--- linux-2.6.13-i386/drivers/char/16c552.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.13/drivers/char/16c552.h	2001-10-22 11:34:32.000000000 +0200
+@@ -0,0 +1,165 @@
++/*
++ * Definitions for the 16c552 DACE
++ * (dual-asynchronous-communications-element) used on the GVP
++ * IO-Extender. 
++ *
++ * Basically this is two 16c550 uarts's and a parallel port, which is
++ * why the serial definitions should be valid for the 16c550 uart
++ * aswell.
++ *
++ * Data was taken from National Semiconductors duart 16c552
++ * data-sheets and the Texas Instruments DACE 16c552 data-sheets (the
++ * NS version of the chip is _non_ standard and their data-sheets did
++ * cost me several wasted hours of work).
++ *
++ * This file is (C) 1995 Jes Sorensen (jds at kom.auc.dk)
++ *
++ * Moved from drivers/char/ to include/linux/, because it's useful
++ * on more than just the one card. I'm using it on the hp300 DCA
++ * serial driver, for example.  
++ *      -- Peter Maydell <pmaydell at chiark.greenend.org.uk> 05/1998
++ */
++
++#ifndef _16C552_H_
++#define _16C552_H_
++
++/* Serial stuff */
++
++struct uart_16c550 {
++	volatile u_char skip0;
++	volatile u_char RBR;
++	volatile u_char skip1;
++	volatile u_char IER;
++	volatile u_char skip2;
++	volatile u_char IIR;
++	volatile u_char skip3;
++	volatile u_char LCR;
++	volatile u_char skip4;
++	volatile u_char MCR;
++	volatile u_char skip5;
++	volatile u_char LSR;
++	volatile u_char skip6;
++	volatile u_char MSR;
++	volatile u_char skip7;
++	volatile u_char SCR;
++};
++
++#define THR RBR
++#define FCR IIR
++#define DLL RBR
++#define DLM IER
++#define AFR IIR
++
++/*
++ * Bit-defines for the various registers.
++ */
++
++
++/* IER */
++
++#define ERDAI         (1<<0)
++#define ETHREI        (1<<1)
++#define ELSI          (1<<2)
++#define EMSI          (1<<3)
++
++/* IIR - Interrupt Ident. Register */
++
++#define IRQ_PEND      (1<<0) /* NOTE: IRQ_PEND=0 implies irq pending */
++#define IRQ_ID1       (1<<1)
++#define IRQ_ID2       (1<<2)
++#define IRQ_ID3       (1<<3)
++#define FIFO_ENA0     (1<<6) /* Both these are set when FCR(1<<0)=1 */
++#define FIFO_ENA1     (1<<7)
++
++#define IRQ_RLS  (IRQ_ID1 | IRQ_ID2)
++#define IRQ_RDA  (IRQ_ID2)
++#define IRQ_CTI  (IRQ_ID2 | IRQ_ID3)
++#define IRQ_THRE (IRQ_ID1)
++#define IRQ_MS   0
++
++/* FCR - FIFO Control Register */
++
++#define FIFO_ENA      (1<<0)
++#define RCVR_FIFO_RES (1<<1)
++#define XMIT_FIFO_RES (1<<2)
++#define DMA_MODE_SEL  (1<<3)
++#define RCVR_TRIG_LSB (1<<6)
++#define RCVR_TRIG_MSB (1<<7)
++
++#define FIFO_TRIG_1   0x00
++#define FIFO_TRIG_4   RCVR_TRIG_LSB
++#define FIFO_TRIG_8   RCVR_TRIG_MSB
++#define FIFO_TRIG_14  RCVR_TRIG_LSB|RCVR_TRIG_MSB
++
++/* LCR - Line Control Register */
++
++#define WLS0          (1<<0)
++#define WLS1          (1<<1)
++#define STB           (1<<2)
++#define PEN           (1<<3)
++#define EPS           (1<<4)
++#define STICK_PARITY  (1<<5)
++#define SET_BREAK     (1<<6)
++#define DLAB          (1<<7)
++
++#define data_5bit      0x00
++#define data_6bit      0x01
++#define data_7bit      0x02
++#define data_8bit      0x03
++
++
++/* MCR - Modem Control Register */
++
++#define DTR           (1<<0)
++#define RTS           (1<<1)
++#define OUT1          (1<<2)
++#define OUT2          (1<<3)
++#define LOOP          (1<<4)
++
++/* LSR - Line Status Register */
++
++#define DR            (1<<0)
++#define OE            (1<<1)
++#define PE            (1<<2)
++#define FE            (1<<3)
++#define BI            (1<<4)
++#define THRE          (1<<5)
++#define TEMT          (1<<6)
++#define RCVR_FIFO_ERR (1<<7)
++
++/* MSR - Modem Status Register */
++
++#define DCTS          (1<<0)
++#define DDSR          (1<<1)
++#define TERI          (1<<2)
++#define DDCD          (1<<3)
++#define CTS           (1<<4)
++#define DSR           (1<<5)
++#define RING_I        (1<<6)
++#define DCD           (1<<7)
++
++/* AFR - Alternate Function Register */
++
++#define CONCUR_WRITE  (1<<0)
++#define BAUDOUT       (1<<1)
++#define RXRDY         (1<<2)
++
++/* Parallel stuff */
++
++/*
++ * Unfortunately National Semiconductors did not supply the
++ * specifications for the parallel port in the chip :-(
++ * TI succed though, so here they are :-)
++ *
++ * Defines for the bits can be found by including <linux/lp.h>
++ */
++struct IOEXT_par {
++	volatile u_char skip0;
++	volatile u_char DATA;
++	volatile u_char skip1;
++	volatile u_char STATUS;
++	volatile u_char skip2;
++	volatile u_char CTRL;
++};
++
++#endif
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/char/ioext.h linux-2.6.13/drivers/char/ioext.h
+--- linux-2.6.13-i386/drivers/char/ioext.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.13/drivers/char/ioext.h	2001-10-22 11:34:32.000000000 +0200
+@@ -0,0 +1,108 @@
++/*
++ * Shared data structure for GVP IO-Extender support.
++ *
++ * Merge of ioext.h and ser_ioext.h
++ */
++#ifndef _IOEXT_H_
++#define _IOEXT_H_
++
++#include <linux/config.h>
++#include <linux/netdevice.h>
++
++#include "16c552.h"
++
++#define MAX_IOEXT 5 /*
++		     * The maximum number of io-extenders is 5, as you
++		     * can't have more than 5 ZII boards in any Amiga.
++		     */
++
++#define UART_CLK 7372800
++
++#define IOEXT_BAUD_BASE (UART_CLK / 16)
++
++#define IOEXT_MAX_LINES 2
++
++#define IOEXT_PAR_PLIP  0x0001
++#define IOEXT_PAR_LP    0x0002
++
++
++/*
++ * Macros for the serial driver.
++ */
++#define curruart(info) ((struct uart_16c550 *)(info->port))
++
++#define ser_DTRon(info)  curruart(info)->MCR |=  DTR
++#define ser_RTSon(info)  curruart(info)->MCR |=  RTS
++#define ser_DTRoff(info) curruart(info)->MCR &= ~DTR
++#define ser_RTSoff(info) curruart(info)->MCR &= ~RTS
++
++
++/*
++ * CNTR defines (copied from the GVP SCSI-driver file gvp11.h
++ */
++#define GVP_BUSY	(1<<0)
++#define GVP_IRQ_PEND	(1<<1)
++#define GVP_IRQ_ENA 	(1<<3)
++#define GVP_DIR_WRITE   (1<<4)
++
++
++/*
++ * CTRL defines 
++ */
++#define PORT0_MIDI   (1<<0)  /* CLR = DRIVERS         SET = MIDI      */
++#define PORT1_MIDI   (1<<1)  /* CLR = DRIVERS         SET = MIDI      */
++#define PORT0_DRIVER (1<<2)  /* CLR = RS232,          SET = MIDI      */
++#define PORT1_DRIVER (1<<3)  /* CLR = RS232,          SET = MIDI      */
++#define IRQ_SEL      (1<<4)  /* CLR = INT2,           SET = INT6      */
++#define ROM_BANK_SEL (1<<5)  /* CLR = LOW 32K,        SET = HIGH 32K  */
++#define PORT0_CTRL   (1<<6)  /* CLR = RTSx or RXRDYx, SET = RTSx ONLY */
++#define PORT1_CTRL   (1<<7)  /* CLR = RTSx or RXRDYx, SET = RTSx ONLY */
++
++
++/*
++ * This is the struct describing the registers on the IO-Extender.
++ * NOTE: The board uses a dual uart (16c552), which should be equal to
++ * two 16c550 uarts.
++ */
++typedef struct {
++	char gap0[0x41];
++	volatile unsigned char CNTR;	/* GVP DMAC CNTR (status register)   */
++	char gap1[0x11e];
++	struct uart_16c550 uart0;	/* The first uart                    */
++	char gap2[0xf0];
++	struct uart_16c550 uart1;	/* The second uart                   */
++	char gap3[0xf0];
++	struct IOEXT_par par;		/* The parallel port                 */
++	char gap4[0xfb];
++	volatile unsigned char CTRL;	/* The control-register on the board */
++} IOEXT_struct;
++
++
++typedef struct {
++	int num_uarts;
++	int line[IOEXT_MAX_LINES];
++	volatile struct uart_16c550 *uart[IOEXT_MAX_LINES];
++	IOEXT_struct *board;
++	int spurious_count;
++	unsigned char par_use;		/* IOEXT_PAR_xxx */
++#if defined(CONFIG_GVPIOEXT_PLIP) || defined(CONFIG_GVPIOEXT_PLIP_MODULE)
++	struct nt_device *dev;
++#endif
++#if defined(CONFIG_GVPIOEXT_LP) || defined(CONFIG_GVPIOEXT_LP_MODULE)
++	struct lp_struct *lp_table;
++	int lp_dev;
++	int lp_interrupt;
++#endif
++} IOExtInfoType;
++
++/* Number of detected boards.  */
++extern int ioext_num;
++extern IOExtInfoType ioext_info[MAX_IOEXT];
++
++void ioext_plip_interrupt(struct net_device *dev, int *spurious_count);
++void ioext_lp_interrupt(int dev, int *spurious_count);
++
++extern struct net_device ioext_dev_plip[3];
++extern struct lp_struct ioext_lp_table[1];
++
++#endif
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/char/mc68681.h linux-2.6.13/drivers/char/mc68681.h
+--- linux-2.6.13-i386/drivers/char/mc68681.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.13/drivers/char/mc68681.h	2001-10-22 11:34:32.000000000 +0200
+@@ -0,0 +1,131 @@
++#ifndef _MC68681_H_
++#define _MC68681_H_
++
++/* 
++ * This describes an MC68681 DUART. It has almost only overlayed registers, which
++ * the structure very ugly.
++ * Note that the ri-register isn't really a register of the duart but a kludge of bsc
++ * to make the ring indicator available.
++ * 
++ * The data came from the MFC-31-Developer Kit (from Ralph Seidel,
++ * zodiac at darkness.gun.de) and the data sheet of Phillip's clone device (SCN68681)
++ * (from Richard Hirst, srh at gpt.co.uk)
++ *
++ * 11.11.95 copyright Joerg Dorchain (dorchain at mpi-sb.mpg.de)
++ *
++ */
++
++struct duarthalf {
++union {
++volatile u_char mr1; /* rw */
++volatile u_char mr2; /* rw */
++}  mr;
++volatile u_char ri;   /* special, read */
++union {
++volatile u_char sr;  /* read */
++volatile u_char csr; /* write */
++} sr_csr;
++u_char pad1;
++volatile u_char cr; /* write */
++u_char pad2;
++union {
++volatile u_char rhr; /* read */
++volatile u_char thr; /* write */
++} hr;
++u_char pad3;
++};
++
++struct duart {
++struct duarthalf pa;
++union {
++volatile u_char ipcr; /* read */
++volatile u_char acr;  /* write */
++} ipcr_acr;
++u_char pad1;
++union {
++volatile u_char isr; /* read */
++volatile u_char imr; /* write */
++} ir;
++u_char pad2;
++volatile u_char ctu;
++u_char pad3;
++volatile u_char ctl;
++u_char pad4;
++struct duarthalf pb;
++volatile u_char ivr;
++u_char pad5;
++union {
++volatile u_char ipr; /* read */
++volatile u_char opcr; /* write */
++} ipr_opcr;
++u_char pad6;
++union {
++volatile u_char start; /* read */
++volatile u_char sopc; /* write */
++} start_sopc;
++u_char pad7;
++union {
++volatile u_char stop; /* read */
++volatile u_char ropc; /* write */
++} stop_ropc;
++u_char pad8;
++};
++
++#define MR1_BITS 3
++#define MR1_5BITS 0
++#define MR1_6BITS 1
++#define MR1_7BITS 2
++#define MR1_8BITS 3
++
++#define MR1_PARITY_ODD 4
++
++#define MR1_PARITY 24
++#define MR1_PARITY_WITH 0
++#define MR1_PARITY_FORCE 8
++#define MR1_PARITY_NO 16
++#define MR1_PARITY_MULTIDROP 24
++
++#define MR1_ERROR_BLOCK 32
++#define MR1_FFULL_IRQ 64
++#define MR1_RxRTS_ON 128
++
++#define MR2_STOPS 15
++#define MR2_1STOP 7
++#define MR2_2STOP 15
++
++#define MR2_CTS_ON 16
++#define MR2_TxRTS_ON 32
++
++#define MR2_MODE 192
++#define MR2_NORMAL 0
++#define MR2_ECHO 64
++#define MR2_LOCALLOOP 128
++#define MR2_REMOTELOOP 192
++
++#define CR_RXCOMMAND 3
++#define CR_NONE 0
++#define CR_RX_ON 1
++#define CR_RX_OFF 2
++#define CR_TXCOMMAND 12
++#define CR_TX_ON 4
++#define CR_TX_OFF 8
++#define CR_MISC 112
++#define CR_RESET_MR 16
++#define CR_RESET_RX 32
++#define CR_RESET_TX 48
++#define CR_RESET_ERR 64
++#define CR_RESET_BREAK 80
++#define CR_START_BREAK 96
++#define CR_STOP_BREAK 112
++
++#define SR_RXRDY 1
++#define SR_FFULL 2
++#define SR_TXRDY 4
++#define SR_TXEMPT 8
++#define SR_OVERRUN 16
++#define SR_PARITY 32
++#define SR_FRAMING 64
++#define SR_BREAK 128
++
++
++#endif
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/char/plip_ioext.c linux-2.6.13/drivers/char/plip_ioext.c
+--- linux-2.6.13-i386/drivers/char/plip_ioext.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.13/drivers/char/plip_ioext.c	2004-10-25 16:38:25.000000000 +0200
+@@ -0,0 +1,1058 @@
++/*
++ * plip_ioext: A parallel port "network" driver for GVP IO-Extender.
++ *
++ * Authors:	See drivers/net/plip.c
++ *              IO-Extender version by Steve Bennett, <msteveb at ozemail.com.au>
++ *
++ * This driver is for use with a 5-bit cable (LapLink (R) cable).
++ */
++
++static const char *version = "NET3 PLIP version 2.2/m68k";
++
++#define __NO_VERSION__
++
++#include <linux/module.h>
++#include <linux/types.h>
++#include <linux/sched.h>
++#include <linux/errno.h>
++#include <linux/interrupt.h>
++#include <linux/slab.h>
++#include <linux/termios.h>
++#include <linux/tty.h>
++#include <linux/serial.h>
++
++#include <asm/setup.h>
++#include <asm/irq.h>
++#include <asm/amigahw.h>
++#include <asm/amigaints.h>
++#include <linux/zorro.h>
++
++#include <linux/config.h>
++#include <linux/kernel.h>
++#include <linux/fcntl.h>
++#include <linux/string.h>
++#include <linux/ptrace.h>
++#include <linux/if_ether.h>
++
++#include <asm/system.h>
++
++#include <linux/in.h>
++#include <linux/delay.h>
++/*#include <linux/lp_m68k.h>*/
++
++#include <linux/netdevice.h>
++#include <linux/etherdevice.h>
++#include <linux/inetdevice.h>
++#include <linux/skbuff.h>
++#include <linux/if_plip.h>
++
++#include <linux/tqueue.h>
++#include <linux/ioport.h>
++#include <linux/bitops.h>
++#include <asm/byteorder.h>
++
++#include "ioext.h"
++
++#define DEBUG 0
++
++/* Map 'struct device *' to our control structure */
++#define PLIP_DEV(DEV) (&ioext_info[(DEV)->irq])
++
++/************************************************************************
++**
++** PLIP definitions
++**
++*************************************************************************
++*/
++
++/* Use 0 for production, 1 for verification, >2 for debug */
++#ifndef NET_DEBUG
++#define NET_DEBUG 2
++#endif
++static unsigned int net_debug = NET_DEBUG;
++
++/* In micro second */
++#define PLIP_DELAY_UNIT       1
++
++/* Connection time out = PLIP_TRIGGER_WAIT * PLIP_DELAY_UNIT usec */
++#define PLIP_TRIGGER_WAIT	 500
++
++/* Nibble time out = PLIP_NIBBLE_WAIT * PLIP_DELAY_UNIT usec */
++#define PLIP_NIBBLE_WAIT        3000
++
++#define PAR_DATA(dev)     ((dev)->base_addr+0)
++#define PAR_STATUS(dev)   ((dev)->base_addr+2)
++#define PAR_CONTROL(dev)  ((dev)->base_addr+4)
++
++static void enable_par_irq(struct device *dev, int on);
++static int plip_init(struct device *dev);
++
++/* Bottom halfs */
++static void plip_kick_bh(struct device *dev);
++static void plip_bh(struct device *dev);
++
++/* Functions for DEV methods */
++static int plip_rebuild_header(struct sk_buff *skb);
++static int plip_tx_packet(struct sk_buff *skb, struct device *dev);
++static int plip_open(struct device *dev);
++static int plip_close(struct device *dev);
++static struct enet_statistics *plip_get_stats(struct device *dev);
++static int plip_config(struct device *dev, struct ifmap *map);
++static int plip_ioctl(struct device *dev, struct ifreq *ifr, int cmd);
++
++enum plip_connection_state {
++	PLIP_CN_NONE=0,
++	PLIP_CN_RECEIVE,
++	PLIP_CN_SEND,
++	PLIP_CN_CLOSING,
++	PLIP_CN_ERROR
++};
++
++enum plip_packet_state {
++	PLIP_PK_DONE=0,
++	PLIP_PK_TRIGGER,
++	PLIP_PK_LENGTH_LSB,
++	PLIP_PK_LENGTH_MSB,
++	PLIP_PK_DATA,
++	PLIP_PK_CHECKSUM
++};
++
++enum plip_nibble_state {
++	PLIP_NB_BEGIN,
++	PLIP_NB_1,
++	PLIP_NB_2,
++};
++
++struct plip_local {
++	enum plip_packet_state state;
++	enum plip_nibble_state nibble;
++	union {
++		struct {
++#if defined(__LITTLE_ENDIAN)
++			unsigned char lsb;
++			unsigned char msb;
++#elif defined(__BIG_ENDIAN)
++			unsigned char msb;
++			unsigned char lsb;
++#else
++#error  "Please fix the endianness defines in <asm/byteorder.h>"
++#endif            
++		} b;
++		unsigned short h;
++	} length;
++	unsigned short byte;
++	unsigned char  checksum;
++	unsigned char  data;
++	struct sk_buff *skb;
++};
++
++struct net_local {
++	struct enet_statistics enet_stats;
++	struct tq_struct immediate;
++	struct tq_struct deferred;
++	struct plip_local snd_data;
++	struct plip_local rcv_data;
++	unsigned long  trigger;
++	unsigned long  nibble;
++	enum plip_connection_state connection;
++	unsigned short timeout_count;
++	char is_deferred;
++	int (*orig_rebuild_header)(struct sk_buff *skb);
++};
++
++struct device ioext_dev_plip[] = {
++	{
++		"plip0",
++		0, 0, 0, 0,    /* memory */
++		0, 0,    /* base, irq */
++		0, 0, 0, NULL, plip_init 
++	},
++	{
++		"plip1",
++		0, 0, 0, 0,    /* memory */
++		0, 0,    /* base, irq */
++		0, 0, 0, NULL, plip_init 
++	},
++	{
++		"plip2",
++		0, 0, 0, 0,    /* memory */
++		0, 0,    /* base, irq */
++		0, 0, 0, NULL, plip_init 
++	}
++};
++
++/*
++ * Check for and handle an interrupt for this PLIP device.
++ *
++ */
++void ioext_plip_interrupt(struct device *dev, int *spurious_count)
++{
++	struct net_local *nl;
++	struct plip_local *rcv;
++	unsigned char c0;
++	unsigned long flags;
++
++	nl = (struct net_local *)dev->priv;
++	rcv = &nl->rcv_data;
++
++	c0 = z_readb(PAR_STATUS(dev));
++
++	if (dev->interrupt) {
++		return;
++	}
++
++	if ((c0 & 0xf8) != 0xc0) {
++		/* Not for us */
++		++*spurious_count;
++		return;
++	}
++
++	*spurious_count = 0;
++	dev->interrupt = 1;
++
++	local_irq_save(flags);
++
++	switch (nl->connection) {
++	case PLIP_CN_CLOSING:
++		dev->tbusy = 0;
++	case PLIP_CN_NONE:
++	case PLIP_CN_SEND:
++		dev->last_rx = jiffies;
++		rcv->state = PLIP_PK_TRIGGER;
++		nl->connection = PLIP_CN_RECEIVE;
++		nl->timeout_count = 0;
++		queue_task(&nl->immediate, &tq_immediate);
++		mark_bh(IMMEDIATE_BH);
++		local_irq_restore(flags);
++#if 0
++		printk("%s: receive irq in SEND/NONE/CLOSING (%d) ok\n",
++		       dev->name, nl->connection);
++#endif
++		break;
++
++	case PLIP_CN_RECEIVE:
++		local_irq_restore(flags);
++		printk("%s: receive interrupt when receiving packet\n",
++		       dev->name);
++		break;
++
++	case PLIP_CN_ERROR:
++		local_irq_restore(flags);
++		printk("%s: receive interrupt in error state\n", dev->name);
++		break;
++	}
++}
++
++
++/* Bottom half handler for the delayed request.
++   This routine is kicked by do_timer().
++   Request `plip_bh' to be invoked. */
++static void
++plip_kick_bh(struct device *dev)
++{
++	struct net_local *nl = (struct net_local *)dev->priv;
++
++	if (nl->is_deferred) {
++		queue_task(&nl->immediate, &tq_immediate);
++		mark_bh(IMMEDIATE_BH);
++	}
++}
++
++/* Forward declarations of internal routines */
++static int plip_none(struct device *, struct net_local *,
++		     struct plip_local *, struct plip_local *);
++static int plip_receive_packet(struct device *, struct net_local *,
++			       struct plip_local *, struct plip_local *);
++static int plip_send_packet(struct device *, struct net_local *,
++			    struct plip_local *, struct plip_local *);
++static int plip_connection_close(struct device *, struct net_local *,
++				 struct plip_local *, struct plip_local *);
++static int plip_error(struct device *, struct net_local *,
++		      struct plip_local *, struct plip_local *);
++static int plip_bh_timeout_error(struct device *dev, struct net_local *nl,
++				 struct plip_local *snd,
++				 struct plip_local *rcv,
++				 int error);
++
++#define OK        0
++#define TIMEOUT   1
++#define ERROR     2
++
++typedef int (*plip_func)(struct device *dev, struct net_local *nl,
++			 struct plip_local *snd, struct plip_local *rcv);
++
++static plip_func connection_state_table[] =
++{
++	plip_none,
++	plip_receive_packet,
++	plip_send_packet,
++	plip_connection_close,
++	plip_error
++};
++
++/*
++** enable_par_irq()
++** 
++** Enable or disable parallel irq for 'dev' according to 'on'.
++**
++** It is NOT possible to disable only the parallel irq.
++** So we disable the board interrupt instead. This means that
++** during reception of a PLIP packet, no serial interrupts can
++** happen. Sorry.
++*/
++static void enable_par_irq(struct device *dev, int on)
++{
++	if (on) {
++		PLIP_DEV(dev)->board->CNTR |= GVP_IRQ_ENA;
++	}
++	else {
++		PLIP_DEV(dev)->board->CNTR &= ~GVP_IRQ_ENA;
++	}
++}
++
++/* Bottom half handler of PLIP. */
++static void
++plip_bh(struct device *dev)
++{
++	struct net_local *nl = (struct net_local *)dev->priv;
++	struct plip_local *snd = &nl->snd_data;
++	struct plip_local *rcv = &nl->rcv_data;
++	plip_func f;
++	int r;
++
++	nl->is_deferred = 0;
++	f = connection_state_table[nl->connection];
++	if ((r = (*f)(dev, nl, snd, rcv)) != OK
++	    && (r = plip_bh_timeout_error(dev, nl, snd, rcv, r)) != OK) {
++		nl->is_deferred = 1;
++		queue_task(&nl->deferred, &tq_timer);
++	}
++}
++
++static int
++plip_bh_timeout_error(struct device *dev, struct net_local *nl,
++		      struct plip_local *snd, struct plip_local *rcv,
++		      int error)
++{
++	unsigned char c0;
++	unsigned long flags;
++
++	local_irq_save(flags);
++	if (nl->connection == PLIP_CN_SEND) {
++
++		if (error != ERROR) { /* Timeout */
++			nl->timeout_count++;
++			if ((snd->state == PLIP_PK_TRIGGER
++			     && nl->timeout_count <= 10)
++			    || nl->timeout_count <= 3) {
++				local_irq_restore(flags);
++				/* Try again later */
++				return TIMEOUT;
++			}
++			c0 = z_readb(PAR_STATUS(dev));
++			printk(KERN_INFO "%s: transmit timeout(%d,%02x)\n",
++			       dev->name, snd->state, c0);
++		}
++		nl->enet_stats.tx_errors++;
++		nl->enet_stats.tx_aborted_errors++;
++	} else if (nl->connection == PLIP_CN_RECEIVE) {
++		if (rcv->state == PLIP_PK_TRIGGER) {
++			/* Transmission was interrupted. */
++			local_irq_restore(flags);
++			return OK;
++		}
++		if (error != ERROR) { /* Timeout */
++			if (++nl->timeout_count <= 3) {
++				local_irq_restore(flags);
++				/* Try again later */
++				return TIMEOUT;
++			}
++			c0 = z_readb(PAR_STATUS(dev));
++			printk(KERN_INFO "%s: receive timeout(%d,%02x)\n",
++			       dev->name, rcv->state, c0);
++		}
++		nl->enet_stats.rx_dropped++;
++	}
++	rcv->state = PLIP_PK_DONE;
++	if (rcv->skb) {
++		kfree_skb(rcv->skb);
++		rcv->skb = NULL;
++	}
++	snd->state = PLIP_PK_DONE;
++	if (snd->skb) {
++		dev_kfree_skb(snd->skb);
++		snd->skb = NULL;
++	}
++	enable_par_irq(dev, 0);
++	dev->tbusy = 1;
++	nl->connection = PLIP_CN_ERROR;
++	z_writeb(0x00, PAR_DATA(dev));
++	local_irq_restore(flags);
++
++	return TIMEOUT;
++}
++
++static int
++plip_none(struct device *dev, struct net_local *nl,
++	  struct plip_local *snd, struct plip_local *rcv)
++{
++	return OK;
++}
++
++/* PLIP_RECEIVE --- receive a byte(two nibbles)
++   Returns OK on success, TIMEOUT on timeout */
++inline static int
++plip_receive(struct device *dev, unsigned short nibble_timeout, 
++	     enum plip_nibble_state *ns_p, unsigned char *data_p)
++{
++	unsigned char c0, c1;
++	unsigned int cx;
++
++	switch (*ns_p) {
++	case PLIP_NB_BEGIN:
++		cx = nibble_timeout;
++		while (1) {
++			c0 = z_readb(PAR_STATUS(dev));
++			udelay(PLIP_DELAY_UNIT);
++			if ((c0 & 0x80) == 0) {
++				c1 = z_readb(PAR_STATUS(dev));
++				if (c0 == c1)
++					break;
++			}
++			if (--cx == 0)
++				return TIMEOUT;
++		}
++#if 0
++		printk("received first nybble: %02X -> %02X\n",
++		       c0, (c0 >> 3) & 0x0F);
++#endif
++		*data_p = (c0 >> 3) & 0x0f;
++		z_writeb(0x10, PAR_DATA(dev)); /* send ACK */
++		*ns_p = PLIP_NB_1;
++
++	case PLIP_NB_1:
++		cx = nibble_timeout;
++		while (1) {
++			c0 = z_readb(PAR_STATUS(dev));
++			udelay(PLIP_DELAY_UNIT);
++			if (c0 & 0x80) {
++				c1 = z_readb(PAR_STATUS(dev));
++				if (c0 == c1)
++					break;
++			}
++			if (--cx == 0)
++				return TIMEOUT;
++		}
++#if 0
++		printk("received second nybble: %02X -> %02X\n",
++		       c0, (c0 << 1) & 0xF0);
++#endif
++		*data_p |= (c0 << 1) & 0xf0;
++		z_writeb(0x00, PAR_DATA(dev)); /* send ACK */
++		*ns_p = PLIP_NB_BEGIN;
++	case PLIP_NB_2:
++		break;
++	}
++	return OK;
++}
++
++/* PLIP_RECEIVE_PACKET --- receive a packet */
++static int
++plip_receive_packet(struct device *dev, struct net_local *nl,
++		    struct plip_local *snd, struct plip_local *rcv)
++{
++	unsigned short nibble_timeout = nl->nibble;
++	unsigned char *lbuf;
++	unsigned long flags;
++
++	switch (rcv->state) {
++	case PLIP_PK_TRIGGER:
++		enable_par_irq(dev, 0);
++		dev->interrupt = 0;
++		z_writeb(0x01, PAR_DATA(dev)); /* send ACK */
++		if (net_debug > 2)
++			printk(KERN_DEBUG "%s: receive start\n", dev->name);
++		rcv->state = PLIP_PK_LENGTH_LSB;
++		rcv->nibble = PLIP_NB_BEGIN;
++
++	case PLIP_PK_LENGTH_LSB:
++		if (snd->state != PLIP_PK_DONE) {
++			if (plip_receive(dev, nl->trigger,
++					 &rcv->nibble, &rcv->length.b.lsb)) {
++				/* collision, here dev->tbusy == 1 */
++				rcv->state = PLIP_PK_DONE;
++				nl->is_deferred = 1;
++				nl->connection = PLIP_CN_SEND;
++				queue_task(&nl->deferred, &tq_timer);
++				enable_par_irq(dev, 1);
++				return OK;
++			}
++		} else {
++			if (plip_receive(dev, nibble_timeout, 
++					 &rcv->nibble, &rcv->length.b.lsb))
++				return TIMEOUT;
++		}
++		rcv->state = PLIP_PK_LENGTH_MSB;
++
++	case PLIP_PK_LENGTH_MSB:
++		if (plip_receive(dev, nibble_timeout, 
++				 &rcv->nibble, &rcv->length.b.msb))
++			return TIMEOUT;
++		if (rcv->length.h > dev->mtu + dev->hard_header_len
++		    || rcv->length.h < 8) {
++			printk(KERN_INFO "%s: bogus packet size %d.\n",
++			       dev->name, rcv->length.h);
++			return ERROR;
++		}
++		/* Malloc up new buffer. */
++		rcv->skb = dev_alloc_skb(rcv->length.h);
++		if (rcv->skb == NULL) {
++			printk(KERN_INFO "%s: Memory squeeze.\n", dev->name);
++			return ERROR;
++		}
++		skb_put(rcv->skb,rcv->length.h);
++		rcv->skb->dev = dev;
++		rcv->state = PLIP_PK_DATA;
++		rcv->byte = 0;
++		rcv->checksum = 0;
++
++	case PLIP_PK_DATA:
++		lbuf = rcv->skb->data;
++		do
++			if (plip_receive(dev, nibble_timeout, 
++					 &rcv->nibble, &lbuf[rcv->byte]))
++				return TIMEOUT;
++		while (++rcv->byte < rcv->length.h);
++		do
++			rcv->checksum += lbuf[--rcv->byte];
++		while (rcv->byte);
++		rcv->state = PLIP_PK_CHECKSUM;
++
++	case PLIP_PK_CHECKSUM:
++		if (plip_receive(dev, nibble_timeout, 
++				 &rcv->nibble, &rcv->data))
++			return TIMEOUT;
++		if (rcv->data != rcv->checksum) {
++			nl->enet_stats.rx_crc_errors++;
++			if (net_debug)
++				printk(KERN_INFO "%s: checksum error\n",
++				       dev->name);
++			return ERROR;
++		}
++		rcv->state = PLIP_PK_DONE;
++
++	case PLIP_PK_DONE:
++		/* Inform the upper layer for the arrival of a packet. */
++		rcv->skb->protocol=eth_type_trans(rcv->skb, dev);
++		netif_rx(rcv->skb);
++		nl->enet_stats.rx_packets++;
++		rcv->skb = NULL;
++		if (net_debug > 2)
++			printk(KERN_DEBUG "%s: receive end\n", dev->name);
++
++		/* Close the connection. */
++		z_writeb (0x00, PAR_DATA(dev));
++
++		local_irq_save(flags);
++		if (snd->state != PLIP_PK_DONE) {
++			nl->connection = PLIP_CN_SEND;
++			local_irq_restore(flags);
++			queue_task(&nl->immediate, &tq_immediate);
++			mark_bh(IMMEDIATE_BH);
++			enable_par_irq(dev, 1);
++			return OK;
++		} else {
++			nl->connection = PLIP_CN_NONE;
++			local_irq_restore(flags);
++			enable_par_irq(dev, 1);
++			return OK;
++		}
++	}
++	return OK;
++}
++
++/* PLIP_SEND --- send a byte (two nibbles) 
++   Returns OK on success, TIMEOUT when timeout    */
++inline static int
++plip_send(struct device *dev, unsigned short nibble_timeout, 
++	  enum plip_nibble_state *ns_p, unsigned char data)
++{
++	unsigned char c0;
++	unsigned int cx;
++
++	switch (*ns_p) {
++	case PLIP_NB_BEGIN:
++		z_writeb((data & 0x0f), PAR_DATA(dev));
++		*ns_p = PLIP_NB_1;
++
++	case PLIP_NB_1:
++		z_writeb(0x10 | (data & 0x0f), PAR_DATA(dev));
++		cx = nibble_timeout;
++		while (1) {
++			c0 = z_readb(PAR_STATUS(dev));
++			if ((c0 & 0x80) == 0) 
++				break;
++			if (--cx == 0)
++				return TIMEOUT;
++			udelay(PLIP_DELAY_UNIT);
++		}
++		z_writeb(0x10 | (data >> 4), PAR_DATA(dev));
++		*ns_p = PLIP_NB_2;
++
++	case PLIP_NB_2:
++		z_writeb((data >> 4), PAR_DATA(dev));
++		cx = nibble_timeout;
++		while (1) {
++			c0 = z_readb(PAR_STATUS(dev));
++			if (c0 & 0x80)
++				break;
++			if (--cx == 0)
++				return TIMEOUT;
++			udelay(PLIP_DELAY_UNIT);
++		}
++		*ns_p = PLIP_NB_BEGIN;
++		return OK;
++	}
++	return OK;
++}
++
++/* PLIP_SEND_PACKET --- send a packet */
++static int
++plip_send_packet(struct device *dev, struct net_local *nl,
++		 struct plip_local *snd, struct plip_local *rcv)
++{
++	unsigned short nibble_timeout = nl->nibble;
++	unsigned char *lbuf;
++	unsigned char c0;
++	unsigned int cx;
++	unsigned long flags;
++
++	if (snd->skb == NULL || (lbuf = snd->skb->data) == NULL) {
++		printk(KERN_INFO "%s: send skb lost\n", dev->name);
++		snd->state = PLIP_PK_DONE;
++		snd->skb = NULL;
++		return ERROR;
++	}
++
++	if (snd->length.h == 0) {
++		return OK;
++	}
++
++	switch (snd->state) {
++	case PLIP_PK_TRIGGER:
++		if ((z_readb(PAR_STATUS(dev)) & 0xf8) != 0x80)
++			return TIMEOUT;
++
++		/* Trigger remote rx interrupt. */
++		z_writeb(0x08, PAR_DATA(dev));
++		cx = nl->trigger;
++		while (1) {
++			udelay(PLIP_DELAY_UNIT);
++                        local_irq_save(flags);
++			if (nl->connection == PLIP_CN_RECEIVE) {
++				local_irq_restore(flags);
++				/* interrupted */
++				nl->enet_stats.collisions++;
++				if (net_debug > 1)
++					printk(KERN_INFO "%s: collision.\n",
++					       dev->name);
++				return OK;
++			}
++			c0 = z_readb(PAR_STATUS(dev));
++			if (c0 & 0x08) {
++				enable_par_irq(dev, 0);
++				if (net_debug > 2)
++					printk(KERN_DEBUG "%s: send start\n",
++					       dev->name);
++				snd->state = PLIP_PK_LENGTH_LSB;
++				snd->nibble = PLIP_NB_BEGIN;
++				nl->timeout_count = 0;
++				local_irq_restore(flags);
++				break;
++			}
++			local_irq_restore(flags);
++			if (--cx == 0) {
++				z_writeb(0x00, PAR_DATA(dev));
++				return TIMEOUT;
++			}
++		}
++
++	case PLIP_PK_LENGTH_LSB:
++		if (plip_send(dev, nibble_timeout, 
++			      &snd->nibble, snd->length.b.lsb))
++			return TIMEOUT;
++		snd->state = PLIP_PK_LENGTH_MSB;
++
++	case PLIP_PK_LENGTH_MSB:
++		if (plip_send(dev, nibble_timeout, 
++			      &snd->nibble, snd->length.b.msb))
++			return TIMEOUT;
++		snd->state = PLIP_PK_DATA;
++		snd->byte = 0;
++		snd->checksum = 0;
++
++	case PLIP_PK_DATA:
++		do
++			if (plip_send(dev, nibble_timeout, 
++				      &snd->nibble, lbuf[snd->byte]))
++				return TIMEOUT;
++		while (++snd->byte < snd->length.h);
++		do
++			snd->checksum += lbuf[--snd->byte];
++		while (snd->byte);
++		snd->state = PLIP_PK_CHECKSUM;
++
++	case PLIP_PK_CHECKSUM:
++		if (plip_send(dev, nibble_timeout, 
++			      &snd->nibble, snd->checksum))
++			return TIMEOUT;
++
++		dev_kfree_skb(snd->skb);
++		nl->enet_stats.tx_packets++;
++		snd->state = PLIP_PK_DONE;
++
++	case PLIP_PK_DONE:
++		/* Close the connection */
++		z_writeb (0x00, PAR_DATA(dev));
++		snd->skb = NULL;
++		if (net_debug > 2)
++			printk(KERN_DEBUG "%s: send end\n", dev->name);
++		nl->connection = PLIP_CN_CLOSING;
++		nl->is_deferred = 1;
++		queue_task(&nl->deferred, &tq_timer);
++		enable_par_irq(dev, 1);
++		return OK;
++	}
++	return OK;
++}
++
++static int
++plip_connection_close(struct device *dev, struct net_local *nl,
++		      struct plip_local *snd, struct plip_local *rcv)
++{
++	unsigned long flags;
++
++        local_irq_save(flags);
++	if (nl->connection == PLIP_CN_CLOSING) {
++		nl->connection = PLIP_CN_NONE;
++		dev->tbusy = 0;
++		mark_bh(NET_BH);
++	}
++	local_irq_restore(flags);
++	return OK;
++}
++
++/* PLIP_ERROR --- wait till other end settled */
++static int
++plip_error(struct device *dev, struct net_local *nl,
++	   struct plip_local *snd, struct plip_local *rcv)
++{
++	unsigned char status;
++
++	status = z_readb(PAR_STATUS(dev));
++	if ((status & 0xf8) == 0x80) {
++		if (net_debug > 2)
++			printk(KERN_DEBUG "%s: reset interface.\n", dev->name);
++		nl->connection = PLIP_CN_NONE;
++		dev->tbusy = 0;
++		dev->interrupt = 0;
++		enable_par_irq(dev, 1);
++		mark_bh(NET_BH);
++	} else {
++		nl->is_deferred = 1;
++		queue_task(&nl->deferred, &tq_timer);
++	}
++
++	return OK;
++}
++
++/* We don't need to send arp, for plip is point-to-point. */
++static int
++plip_rebuild_header(struct sk_buff *skb)
++{
++	struct device *dev = skb->dev;
++	struct net_local *nl = (struct net_local *)dev->priv;
++	struct ethhdr *eth = (struct ethhdr *)skb->data;
++	int i;
++
++	if ((dev->flags & IFF_NOARP)==0)
++		return nl->orig_rebuild_header(skb);
++
++	if (eth->h_proto != __constant_htons(ETH_P_IP)
++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
++	    && eth->h_proto != __constant_htons(ETH_P_IPV6)
++#endif
++		) {
++		printk(KERN_ERR "plip_rebuild_header: Don't know how to resolve type %d addresses?\n", (int)eth->h_proto);
++		memcpy(eth->h_source, dev->dev_addr, dev->addr_len);
++		return 0;
++	}
++
++	for (i=0; i < ETH_ALEN - sizeof(u32); i++)
++		eth->h_dest[i] = 0xfc;
++#if 0
++	*(u32 *)(eth->h_dest+i) = dst;
++#else
++	/* Do not want to include net/route.h here.
++	 * In any case, it is TOP of silliness to emulate
++	 * hardware addresses on PtP link. --ANK
++	 */
++	*(u32 *)(eth->h_dest+i) = 0;
++#endif
++	return 0;
++}
++
++static int
++plip_tx_packet(struct sk_buff *skb, struct device *dev)
++{
++	struct net_local *nl = (struct net_local *)dev->priv;
++	struct plip_local *snd = &nl->snd_data;
++	unsigned long flags;
++
++	if (dev->tbusy)
++		return 1;
++
++	if (test_and_set_bit(0, (void*)&dev->tbusy) != 0) {
++		printk(KERN_ERR "%s: Transmitter access conflict.\n",
++		       dev->name);
++		return 1;
++	}
++
++	if (skb->len > dev->mtu + dev->hard_header_len) {
++		printk(KERN_ERR "%s: packet too big, %d.\n",
++		       dev->name, (int)skb->len);
++		dev->tbusy = 0;
++		return 0;
++	}
++
++	if (net_debug > 2)
++		printk(KERN_DEBUG "%s: send request\n", dev->name);
++
++	local_irq_save(flags);
++	dev->trans_start = jiffies;
++	snd->skb = skb;
++	snd->length.h = skb->len;
++	snd->state = PLIP_PK_TRIGGER;
++	if (nl->connection == PLIP_CN_NONE) {
++		nl->connection = PLIP_CN_SEND;
++		nl->timeout_count = 0;
++	}
++	queue_task(&nl->immediate, &tq_immediate);
++	mark_bh(IMMEDIATE_BH);
++	local_irq_restore(flags);
++
++	return 0;
++}
++
++/* Open/initialize the board.  This is called (in the current kernel)
++   sometime after booting when the 'ifconfig' program is run.
++
++ */
++static int
++plip_open(struct device *dev)
++{
++	struct net_local *nl = (struct net_local *)dev->priv;
++	struct in_device *in_dev;
++
++#if defined(CONFIG_GVPIOEXT_LP) || defined(CONFIG_GVPIOEXT_LP_MODULE)
++	/* Yes, there is a race condition here. Fix it later */
++	if (PLIP_DEV(dev)->par_use & IOEXT_PAR_LP) {
++		/* Can't open if lp is in use */
++#if DEBUG
++		printk("par is in use by lp\n");
++#endif
++		return(-EBUSY);
++	}
++#endif
++	PLIP_DEV(dev)->par_use |= IOEXT_PAR_PLIP;
++
++#if DEBUG
++	printk("plip_open(): sending 00 to data port\n");
++#endif
++
++	/* Clear the data port. */
++	z_writeb (0x00, PAR_DATA(dev));
++
++#if DEBUG
++	printk("plip_open(): sent\n");
++#endif
++
++	/* Initialize the state machine. */
++	nl->rcv_data.state = nl->snd_data.state = PLIP_PK_DONE;
++	nl->rcv_data.skb = nl->snd_data.skb = NULL;
++	nl->connection = PLIP_CN_NONE;
++	nl->is_deferred = 0;
++
++	/* Fill in the MAC-level header.
++	   (ab)Use "dev->broadcast" to store point-to-point MAC address.
++
++	   PLIP doesn't have a real mac address, but we need to create one
++	   to be DOS compatible.  */
++	memset(dev->dev_addr,  0xfc, ETH_ALEN);
++	memset(dev->broadcast, 0xfc, ETH_ALEN);
++
++	if ((in_dev=dev->ip_ptr) != NULL) {
++		/*
++		 *	Any address will do - we take the first
++		 */
++		struct in_ifaddr *ifa=in_dev->ifa_list;
++		if (ifa != NULL) {
++			memcpy(dev->dev_addr+2, &ifa->ifa_local, 4);
++			memcpy(dev->broadcast+2, &ifa->ifa_address, 4);
++		}
++	}
++
++	dev->interrupt = 0;
++	dev->start = 1;
++	dev->tbusy = 0;
++
++	MOD_INC_USE_COUNT;
++
++	/* Enable rx interrupt. */
++	enable_par_irq(dev, 1);
++
++	return 0;
++}
++
++/* The inverse routine to plip_open (). */
++static int
++plip_close(struct device *dev)
++{
++	struct net_local *nl = (struct net_local *)dev->priv;
++	struct plip_local *snd = &nl->snd_data;
++	struct plip_local *rcv = &nl->rcv_data;
++	unsigned long flags;
++
++	dev->tbusy = 1;
++	dev->start = 0;
++        local_irq_save(flags);
++	nl->is_deferred = 0;
++	nl->connection = PLIP_CN_NONE;
++	local_irq_restore(flags);
++	z_writeb(0x00, PAR_DATA(dev));
++
++	snd->state = PLIP_PK_DONE;
++	if (snd->skb) {
++		dev_kfree_skb(snd->skb);
++		snd->skb = NULL;
++	}
++	rcv->state = PLIP_PK_DONE;
++	if (rcv->skb) {
++		kfree_skb(rcv->skb);
++		rcv->skb = NULL;
++	}
++
++	PLIP_DEV(dev)->par_use &= ~IOEXT_PAR_PLIP;
++
++	MOD_DEC_USE_COUNT;
++	return 0;
++}
++
++static struct enet_statistics *
++plip_get_stats(struct device *dev)
++{
++	struct net_local *nl = (struct net_local *)dev->priv;
++	struct enet_statistics *r = &nl->enet_stats;
++
++	return r;
++}
++
++static int
++plip_config(struct device *dev, struct ifmap *map)
++{
++	if (dev->flags & IFF_UP)
++		return -EBUSY;
++
++	printk(KERN_INFO "%s: This interface is autodetected (ignored).\n",
++	       dev->name);
++
++	return 0;
++}
++
++static int
++plip_ioctl(struct device *dev, struct ifreq *rq, int cmd)
++{
++	struct net_local *nl = (struct net_local *) dev->priv;
++	struct plipconf *pc = (struct plipconf *) &rq->ifr_data;
++  
++	switch(pc->pcmd) {
++	case PLIP_GET_TIMEOUT:
++		pc->trigger = nl->trigger;
++		pc->nibble  = nl->nibble;
++		break;
++	case PLIP_SET_TIMEOUT:
++		nl->trigger = pc->trigger;
++		nl->nibble  = pc->nibble;
++		break;
++	default:
++		return -EOPNOTSUPP;
++	}
++	return 0;
++}
++
++/*
++ * Detect and initialize all IO-Extenders in this system.
++ *
++ * Both PLIP and serial devices are configured.
++ */
++int plip_init(struct device *dev)
++{
++	IOEXT_struct *board;
++	struct net_local *nl;
++
++	if (ioext_num == 0) {
++		printk(KERN_INFO "%s\n", version);
++	}
++
++	board = PLIP_DEV(dev)->board;
++	dev->base_addr = (unsigned long)&board->par.DATA;
++
++	/* Cheat and use irq to index into our table */
++	dev->irq = ioext_num;
++
++	printk(KERN_INFO "%s: IO-Extender parallel port at 0x%08lX\n", dev->name, dev->base_addr);
++
++	/* Fill in the generic fields of the device structure. */
++	ether_setup(dev);
++
++	/* Then, override parts of it */
++	dev->hard_start_xmit  = plip_tx_packet;
++	dev->open    = plip_open;
++	dev->stop    = plip_close;
++	dev->get_stats     = plip_get_stats;
++	dev->set_config    = plip_config;
++	dev->do_ioctl    = plip_ioctl;
++	dev->tx_queue_len  = 10;
++	dev->flags          = IFF_POINTOPOINT|IFF_NOARP;
++
++	/* Set the private structure */
++	dev->priv = kmalloc(sizeof (struct net_local), GFP_KERNEL);
++	if (dev->priv == NULL) {
++		printk(KERN_ERR "%s: out of memory\n", dev->name);
++		return -ENOMEM;
++	}
++	memset(dev->priv, 0, sizeof(struct net_local));
++	nl = (struct net_local *) dev->priv;
++
++	nl->orig_rebuild_header = dev->rebuild_header;
++	dev->rebuild_header   = plip_rebuild_header;
++
++	/* Initialize constants */
++	nl->trigger  = PLIP_TRIGGER_WAIT;
++	nl->nibble  = PLIP_NIBBLE_WAIT;
++
++	/* Initialize task queue structures */
++	nl->immediate.next = NULL;
++	nl->immediate.sync = 0;
++	nl->immediate.routine = (void *)(void *)plip_bh;
++	nl->immediate.data = dev;
++
++	nl->deferred.next = NULL;
++	nl->deferred.sync = 0;
++	nl->deferred.routine = (void *)(void *)plip_kick_bh;
++	nl->deferred.data = dev;
++
++	/* Don't enable interrupts yet */
++
++	return 0;
++}
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/char/serial167.c linux-2.6.13/drivers/char/serial167.c
+--- linux-2.6.13-i386/drivers/char/serial167.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/char/serial167.c	2005-10-12 16:32:10.000000000 +0200
+@@ -1450,7 +1450,6 @@
+   volatile unsigned char *base_addr = (u_char *)BASE_ADDR;
+   unsigned long flags;
+   unsigned char status;
+-  unsigned int result;
+ 
+     channel = info->line;
+ 
+@@ -1474,7 +1473,6 @@
+   int channel;
+   volatile unsigned char *base_addr = (u_char *)BASE_ADDR;
+   unsigned long flags;
+-  unsigned int arg;
+ 	  
+     channel = info->line;
+ 
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/ide/ide-iops.c linux-2.6.13/drivers/ide/ide-iops.c
+--- linux-2.6.13-i386/drivers/ide/ide-iops.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/ide/ide-iops.c	2005-08-30 16:32:55.000000000 +0200
+@@ -341,6 +341,23 @@
+ 	int i;
+ 	u16 *stringcast;
+ 
++#ifdef __mc68000__
++	if (!MACH_IS_AMIGA && !MACH_IS_MAC && !MACH_IS_Q40 && !MACH_IS_ATARI)
++		return;
++
++#ifdef M68K_IDE_SWAPW
++	if (M68K_IDE_SWAPW) {	/* fix bus byteorder first */
++		u_char *p = (u_char *)id;
++		u_char t;
++		for (i = 0; i < 512; i += 2) {
++			t = p[i];
++			p[i] = p[i+1];
++			p[i+1] = t;
++		}
++	}
++#endif
++#endif /* __mc68000__ */
++
+ 	id->config         = __le16_to_cpu(id->config);
+ 	id->cyls           = __le16_to_cpu(id->cyls);
+ 	id->reserved2      = __le16_to_cpu(id->reserved2);
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/ide/legacy/gayle.c linux-2.6.13/drivers/ide/legacy/gayle.c
+--- linux-2.6.13-i386/drivers/ide/legacy/gayle.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/ide/legacy/gayle.c	2005-09-02 16:32:11.000000000 +0200
+@@ -161,6 +161,7 @@
+ 	base = (unsigned long)ZTWO_VADDR(phys_base);
+ 	ctrlport = GAYLE_HAS_CONTROL_REG ? (base + GAYLE_CONTROL) : 0;
+ 
++	memset(&hw, 0, sizeof(hw));
+ 	ide_setup_ports(&hw, base, gayle_offsets,
+ 			ctrlport, irqport, ack_intr,
+ //			&gayle_iops,
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/input/keyboard/Kconfig linux-2.6.13/drivers/input/keyboard/Kconfig
+--- linux-2.6.13-i386/drivers/input/keyboard/Kconfig	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/input/keyboard/Kconfig	2005-08-30 16:33:05.000000000 +0200
+@@ -154,7 +154,7 @@
+ 
+ config KEYBOARD_HIL_OLD
+ 	tristate "HP HIL keyboard support (simple driver)"
+-	depends on GSC
++	depends on GSC || HP300
+ 	default y
+ 	help
+ 	  The "Human Interface Loop" is a older, 8-channel USB-like
+@@ -171,7 +171,7 @@
+ 
+ config KEYBOARD_HIL
+ 	tristate "HP HIL keyboard support"
+-	depends on GSC
++	depends on GSC || HP300
+ 	default y
+ 	select HP_SDC
+ 	select HIL_MLC
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/input/misc/Kconfig linux-2.6.13/drivers/input/misc/Kconfig
+--- linux-2.6.13-i386/drivers/input/misc/Kconfig	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/input/misc/Kconfig	2005-08-30 16:33:05.000000000 +0200
+@@ -51,7 +51,7 @@
+ 
+ config HP_SDC_RTC
+ 	tristate "HP SDC Real Time Clock"       
+-	depends on GSC
++	depends on GSC || HP300
+ 	select HP_SDC
+ 	help
+ 	  Say Y here if you want to support the built-in real time clock
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/input/mouse/Kconfig linux-2.6.13/drivers/input/mouse/Kconfig
+--- linux-2.6.13-i386/drivers/input/mouse/Kconfig	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/input/mouse/Kconfig	2005-08-30 16:33:05.000000000 +0200
+@@ -129,7 +129,7 @@
+ 
+ config MOUSE_HIL
+ 	tristate "HIL pointers (mice etc)."     
+-	depends on GSC
++	depends on GSC || HP300
+ 	select HP_SDC
+ 	select HIL_MLC
+ 	help
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/input/serio/Kconfig linux-2.6.13/drivers/input/serio/Kconfig
+--- linux-2.6.13-i386/drivers/input/serio/Kconfig	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/input/serio/Kconfig	2005-08-30 16:33:05.000000000 +0200
+@@ -112,7 +112,7 @@
+ 
+ config HP_SDC
+ 	tristate "HP System Device Controller i8042 Support"
+-	depends on GSC && SERIO
++	depends on (GSC || HP300) && SERIO
+ 	default y
+ 	---help---
+ 	  This option enables supports for the the "System Device
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/macintosh/adb.c linux-2.6.13/drivers/macintosh/adb.c
+--- linux-2.6.13-i386/drivers/macintosh/adb.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/macintosh/adb.c	2005-08-30 16:33:07.000000000 +0200
+@@ -476,13 +476,15 @@
+ 		use_sreq = 1;
+ 	} else
+ 		use_sreq = 0;
+-	req->nbytes = nbytes+1;
++	i = (flags & ADBREQ_RAW) ? 0 : 1;
++	req->nbytes = nbytes+i;
+ 	req->done = done;
+ 	req->reply_expected = flags & ADBREQ_REPLY;
+ 	req->data[0] = ADB_PACKET;
+ 	va_start(list, nbytes);
+-	for (i = 0; i < nbytes; ++i)
+-		req->data[i+1] = va_arg(list, int);
++	while (i < req->nbytes) {
++		req->data[i++] = va_arg(list, int);
++	}
+ 	va_end(list);
+ 
+ 	if (flags & ADBREQ_NOSEND)
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/net/Kconfig linux-2.6.13/drivers/net/Kconfig
+--- linux-2.6.13-i386/drivers/net/Kconfig	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/net/Kconfig	2005-08-30 16:33:24.000000000 +0200
+@@ -294,7 +294,7 @@
+ 
+ config MAC89x0
+ 	tristate "Macintosh CS89x0 based ethernet cards"
+-	depends on NET_ETHERNET && MAC && BROKEN
++	depends on NET_ETHERNET && MAC
+ 	---help---
+ 	  Support for CS89x0 chipset based Ethernet cards.  If you have a
+ 	  Nubus or LC-PDS network (Ethernet) card of this type, say Y and
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/net/hplance.c linux-2.6.13/drivers/net/hplance.c
+--- linux-2.6.13-i386/drivers/net/hplance.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/net/hplance.c	2005-10-12 16:32:43.000000000 +0200
+@@ -77,6 +77,7 @@
+ {
+ 	struct net_device *dev;
+ 	int err = -ENOMEM;
++	int i;
+ 
+ 	dev = alloc_etherdev(sizeof(struct hplance_private));
+ 	if (!dev)
+@@ -93,6 +94,15 @@
+ 		goto out_release_mem_region;
+ 
+ 	dio_set_drvdata(d, dev);
++
++	printk(KERN_INFO "%s: %s; select code %d, addr %2.2x", dev->name, d->name, d->scode, dev->dev_addr[0]);
++
++	for (i=1; i<6; i++) {
++		printk(":%2.2x", dev->dev_addr[i]);
++	}
++
++	printk(", irq %d\n", d->ipl);
++
+ 	return 0;
+ 
+  out_release_mem_region:
+@@ -118,9 +128,7 @@
+         unsigned long va = (d->resource.start + DIO_VIRADDRBASE);
+         struct hplance_private *lp;
+         int i;
+-        
+-        printk(KERN_INFO "%s: %s; select code %d, addr", dev->name, d->name, d->scode);
+-
++ 
+         /* reset the board */
+         out_8(va+DIO_IDOFF, 0xff);
+         udelay(100);                              /* ariba! ariba! udelay! udelay! */
+@@ -143,7 +151,6 @@
+                  */
+                 dev->dev_addr[i] = ((in_8(va + HPLANCE_NVRAMOFF + i*4 + 1) & 0xF) << 4)
+                         | (in_8(va + HPLANCE_NVRAMOFF + i*4 + 3) & 0xF);
+-                printk("%c%2.2x", i == 0 ? ' ' : ':', dev->dev_addr[i]);
+         }
+         
+         lp = netdev_priv(dev);
+@@ -160,7 +167,6 @@
+         lp->lance.lance_log_tx_bufs = LANCE_LOG_TX_BUFFERS;
+         lp->lance.rx_ring_mod_mask = RX_RING_MOD_MASK;
+         lp->lance.tx_ring_mod_mask = TX_RING_MOD_MASK;
+-	printk(", irq %d\n", lp->lance.irq);
+ }
+ 
+ /* This is disgusting. We have to check the DIO status register for ack every
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/net/mac89x0.c linux-2.6.13/drivers/net/mac89x0.c
+--- linux-2.6.13-i386/drivers/net/mac89x0.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/net/mac89x0.c	2004-12-30 16:38:24.000000000 +0100
+@@ -128,7 +128,7 @@
+ extern void reset_chip(struct net_device *dev);
+ #endif
+ static int net_open(struct net_device *dev);
+-static int	net_send_packet(struct sk_buff *skb, struct net_device *dev);
++static int net_send_packet(struct sk_buff *skb, struct net_device *dev);
+ static irqreturn_t net_interrupt(int irq, void *dev_id, struct pt_regs *regs);
+ static void set_multicast_list(struct net_device *dev);
+ static void net_rx(struct net_device *dev);
+@@ -374,56 +374,37 @@
+ static int
+ net_send_packet(struct sk_buff *skb, struct net_device *dev)
+ {
+-	if (dev->tbusy) {
+-		/* If we get here, some higher level has decided we are broken.
+-		   There should really be a "kick me" function call instead. */
+-		int tickssofar = jiffies - dev->trans_start;
+-		if (tickssofar < 5)
+-			return 1;
+-		if (net_debug > 0) printk("%s: transmit timed out, %s?\n", dev->name,
+-			   tx_done(dev) ? "IRQ conflict" : "network cable problem");
+-		/* Try to restart the adaptor. */
+-		dev->tbusy=0;
+-		dev->trans_start = jiffies;
+-	}
+-
+-	/* Block a timer-based transmit from overlapping.  This could better be
+-	   done with atomic_swap(1, dev->tbusy), but set_bit() works as well. */
+-	if (test_and_set_bit(0, (void*)&dev->tbusy) != 0)
+-		printk("%s: Transmitter access conflict.\n", dev->name);
+-	else {
+-		struct net_local *lp = netdev_priv(dev);
+-		unsigned long flags;
+-
+-		if (net_debug > 3)
+-			printk("%s: sent %d byte packet of type %x\n",
+-			       dev->name, skb->len,
+-			       (skb->data[ETH_ALEN+ETH_ALEN] << 8)
+-			       | skb->data[ETH_ALEN+ETH_ALEN+1]);
+-
+-		/* keep the upload from being interrupted, since we
+-                   ask the chip to start transmitting before the
+-                   whole packet has been completely uploaded. */
+-		local_irq_save(flags);
+-
+-		/* initiate a transmit sequence */
+-		writereg(dev, PP_TxCMD, lp->send_cmd);
+-		writereg(dev, PP_TxLength, skb->len);
+-
+-		/* Test to see if the chip has allocated memory for the packet */
+-		if ((readreg(dev, PP_BusST) & READY_FOR_TX_NOW) == 0) {
+-			/* Gasp!  It hasn't.  But that shouldn't happen since
+-			   we're waiting for TxOk, so return 1 and requeue this packet. */
+-			local_irq_restore(flags);
+-			return 1;
+-		}
++	struct net_local *lp = netdev_priv(dev);
++	unsigned long flags;
+ 
+-		/* Write the contents of the packet */
+-		memcpy_toio(dev->mem_start + PP_TxFrame, skb->data, skb->len+1);
++	if (net_debug > 3)
++		printk("%s: sent %d byte packet of type %x\n",
++		       dev->name, skb->len,
++		       (skb->data[ETH_ALEN+ETH_ALEN] << 8)
++		       | skb->data[ETH_ALEN+ETH_ALEN+1]);
++
++	/* keep the upload from being interrupted, since we
++	   ask the chip to start transmitting before the
++	   whole packet has been completely uploaded. */
++	local_irq_save(flags);
+ 
++	/* initiate a transmit sequence */
++	writereg(dev, PP_TxCMD, lp->send_cmd);
++	writereg(dev, PP_TxLength, skb->len);
++
++	/* Test to see if the chip has allocated memory for the packet */
++	if ((readreg(dev, PP_BusST) & READY_FOR_TX_NOW) == 0) {
++		/* Gasp!  It hasn't.  But that shouldn't happen since
++		   we're waiting for TxOk, so return 1 and requeue this packet. */
+ 		local_irq_restore(flags);
+-		dev->trans_start = jiffies;
++		return 1;
+ 	}
++
++	/* Write the contents of the packet */
++	memcpy((void *)(dev->mem_start + PP_TxFrame), skb->data, skb->len+1);
++
++	local_irq_restore(flags);
++	dev->trans_start = jiffies;
+ 	dev_kfree_skb (skb);
+ 
+ 	return 0;
+@@ -441,9 +422,6 @@
+ 		printk ("net_interrupt(): irq %d for unknown device.\n", irq);
+ 		return IRQ_NONE;
+ 	}
+-	if (dev->interrupt)
+-		printk("%s: Re-entering the interrupt handler.\n", dev->name);
+-	dev->interrupt = 1;
+ 
+ 	ioaddr = dev->base_addr;
+ 	lp = netdev_priv(dev);
+@@ -464,8 +442,7 @@
+ 			break;
+ 		case ISQ_TRANSMITTER_EVENT:
+ 			lp->stats.tx_packets++;
+-			dev->tbusy = 0;
+-			mark_bh(NET_BH);	/* Inform upper layers. */
++			netif_wake_queue(dev);
+ 			if ((status & TX_OK) == 0) lp->stats.tx_errors++;
+ 			if (status & TX_LOST_CRS) lp->stats.tx_carrier_errors++;
+ 			if (status & TX_SQE_ERROR) lp->stats.tx_heartbeat_errors++;
+@@ -479,8 +456,7 @@
+                                    That shouldn't happen since we only ever
+                                    load one packet.  Shrug.  Do the right
+                                    thing anyway. */
+-				dev->tbusy = 0;
+-				mark_bh(NET_BH);	/* Inform upper layers. */
++				netif_wake_queue(dev);
+ 			}
+ 			if (status & TX_UNDERRUN) {
+ 				if (net_debug > 0) printk("%s: transmit underrun\n", dev->name);
+@@ -497,7 +473,6 @@
+ 			break;
+ 		}
+ 	}
+-	dev->interrupt = 0;
+ 	return IRQ_HANDLED;
+ }
+ 
+@@ -532,7 +507,7 @@
+ 	skb_put(skb, length);
+ 	skb->dev = dev;
+ 
+-	memcpy_fromio(skb->data, dev->mem_start + PP_RxFrame, length);
++	memcpy(skb->data, (void *)(dev->mem_start + PP_RxFrame), length);
+ 
+ 	if (net_debug > 3)printk("%s: received %d byte packet of type %x\n",
+                                  dev->name, length,
+@@ -611,8 +586,6 @@
+ static int set_mac_address(struct net_device *dev, void *addr)
+ {
+ 	int i;
+-	if (dev->start)
+-		return -EBUSY;
+ 	printk("%s: Setting MAC address to ", dev->name);
+ 	for (i = 0; i < 6; i++)
+ 		printk(" %2.2x", dev->dev_addr[i] = ((unsigned char *)addr)[i]);
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/scsi/Kconfig linux-2.6.13/drivers/scsi/Kconfig
+--- linux-2.6.13-i386/drivers/scsi/Kconfig	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/scsi/Kconfig	2005-08-30 16:33:54.000000000 +0200
+@@ -1627,7 +1627,7 @@
+ 
+ config SCSI_AMIGA7XX
+ 	bool "Amiga NCR53c710 SCSI support (EXPERIMENTAL)"
+-	depends on AMIGA && SCSI && EXPERIMENTAL && BROKEN
++	depends on AMIGA && SCSI && EXPERIMENTAL
+ 	help
+ 	  Support for various NCR53c710-based SCSI controllers on the Amiga.
+ 	  This includes:
+@@ -1724,7 +1724,7 @@
+ 
+ config MVME16x_SCSI
+ 	bool "NCR53C710 SCSI driver for MVME16x"
+-	depends on MVME16x && SCSI && BROKEN
++	depends on MVME16x && SCSI
+ 	help
+ 	  The Motorola MVME162, 166, 167, 172 and 177 boards use the NCR53C710
+ 	  SCSI controller chip.  Almost everyone using one of these boards
+@@ -1732,7 +1732,7 @@
+ 
+ config BVME6000_SCSI
+ 	bool "NCR53C710 SCSI driver for BVME6000"
+-	depends on BVME6000 && SCSI && BROKEN
++	depends on BVME6000 && SCSI
+ 	help
+ 	  The BVME4000 and BVME6000 boards from BVM Ltd use the NCR53C710
+ 	  SCSI controller chip.  Almost everyone using one of these boards
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/scsi/amiga7xx.c linux-2.6.13/drivers/scsi/amiga7xx.c
+--- linux-2.6.13-i386/drivers/scsi/amiga7xx.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/scsi/amiga7xx.c	2004-10-30 16:35:43.000000000 +0200
+@@ -27,8 +27,14 @@
+ #include "scsi.h"
+ #include <scsi/scsi_host.h>
+ #include "53c7xx.h"
+-#include "amiga7xx.h"
+ 
++#ifndef CMD_PER_LUN
++#define CMD_PER_LUN 3
++#endif
++
++#ifndef CAN_QUEUE
++#define CAN_QUEUE 24
++#endif
+ 
+ static int amiga7xx_register_one(Scsi_Host_Template *tpnt,
+ 				 unsigned long address)
+@@ -115,8 +121,10 @@
+ {
+ 	if (shost->irq)
+ 		free_irq(shost->irq, NULL);
++#ifdef CONFIG_ISA
+ 	if (shost->dma_channel != 0xff)
+ 		free_dma(shost->dma_channel);
++#endif
+ 	if (shost->io_port && shost->n_io_port)
+ 		release_region(shost->io_port, shost->n_io_port);
+ 	scsi_unregister(shost);
+@@ -128,8 +136,9 @@
+ 	.detect			= amiga7xx_detect,
+ 	.release		= amiga7xx_release,
+ 	.queuecommand		= NCR53c7xx_queue_command,
+-	.abort			= NCR53c7xx_abort,
+-	.reset			= NCR53c7xx_reset,
++	.eh_abort_handler	= NCR53c7xx_abort,
++	.eh_bus_reset_handler	= NCR53c7xx_reset,
++	.slave_configure	= NCR53c7xx_slave_configure,
+ 	.can_queue		= 24,
+ 	.this_id		= 7,
+ 	.sg_tablesize		= 63,
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/scsi/amiga7xx.h linux-2.6.13/drivers/scsi/amiga7xx.h
+--- linux-2.6.13-i386/drivers/scsi/amiga7xx.h	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/scsi/amiga7xx.h	1970-01-01 01:00:00.000000000 +0100
+@@ -1,23 +0,0 @@
+-#ifndef AMIGA7XX_H
+-
+-#include <linux/types.h>
+-
+-int amiga7xx_detect(Scsi_Host_Template *);
+-const char *NCR53c7x0_info(void);
+-int NCR53c7xx_queue_command(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
+-int NCR53c7xx_abort(Scsi_Cmnd *);
+-int NCR53c7x0_release (struct Scsi_Host *);
+-int NCR53c7xx_reset(Scsi_Cmnd *, unsigned int);
+-void NCR53c7x0_intr(int irq, void *dev_id, struct pt_regs * regs);
+-
+-#ifndef CMD_PER_LUN
+-#define CMD_PER_LUN 3
+-#endif
+-
+-#ifndef CAN_QUEUE
+-#define CAN_QUEUE 24
+-#endif
+-
+-#include <scsi/scsicam.h>
+-
+-#endif /* AMIGA7XX_H */
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/scsi/bvme6000.c linux-2.6.13/drivers/scsi/bvme6000.c
+--- linux-2.6.13-i386/drivers/scsi/bvme6000.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/scsi/bvme6000.c	2004-10-30 16:35:43.000000000 +0200
+@@ -19,10 +19,16 @@
+ #include "scsi.h"
+ #include <scsi/scsi_host.h>
+ #include "53c7xx.h"
+-#include "bvme6000.h"
+ 
+ #include<linux/stat.h>
+ 
++#ifndef CMD_PER_LUN
++#define CMD_PER_LUN 3
++#endif
++
++#ifndef CAN_QUEUE
++#define CAN_QUEUE 24
++#endif
+ 
+ int bvme6000_scsi_detect(Scsi_Host_Template *tpnt)
+ {
+@@ -52,8 +58,10 @@
+ {
+ 	if (shost->irq)
+ 		free_irq(shost->irq, NULL);
++#ifdef CONFIG_ISA
+ 	if (shost->dma_channel != 0xff)
+ 		free_dma(shost->dma_channel);
++#endif
+ 	if (shost->io_port && shost->n_io_port)
+ 		release_region(shost->io_port, shost->n_io_port);
+ 	scsi_unregister(shost);
+@@ -65,8 +73,9 @@
+ 	.detect			= bvme6000_scsi_detect,
+ 	.release		= bvme6000_scsi_release,
+ 	.queuecommand		= NCR53c7xx_queue_command,
+-	.abort			= NCR53c7xx_abort,
+-	.reset			= NCR53c7xx_reset,
++	.eh_abort_handler	= NCR53c7xx_abort,
++	.eh_bus_reset_handler	= NCR53c7xx_reset,
++	.slave_configure	= NCR53c7xx_slave_configure,
+ 	.can_queue		= 24,
+ 	.this_id		= 7,
+ 	.sg_tablesize		= 63,
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/scsi/bvme6000.h linux-2.6.13/drivers/scsi/bvme6000.h
+--- linux-2.6.13-i386/drivers/scsi/bvme6000.h	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/scsi/bvme6000.h	1970-01-01 01:00:00.000000000 +0100
+@@ -1,24 +0,0 @@
+-#ifndef BVME6000_SCSI_H
+-#define BVME6000_SCSI_H
+-
+-#include <linux/types.h>
+-
+-int bvme6000_scsi_detect(Scsi_Host_Template *);
+-const char *NCR53c7x0_info(void);
+-int NCR53c7xx_queue_command(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
+-int NCR53c7xx_abort(Scsi_Cmnd *);
+-int NCR53c7x0_release (struct Scsi_Host *);
+-int NCR53c7xx_reset(Scsi_Cmnd *, unsigned int);
+-void NCR53c7x0_intr(int irq, void *dev_id, struct pt_regs * regs);
+-
+-#ifndef CMD_PER_LUN
+-#define CMD_PER_LUN 3
+-#endif
+-
+-#ifndef CAN_QUEUE
+-#define CAN_QUEUE 24
+-#endif
+-
+-#include <scsi/scsicam.h>
+-
+-#endif /* BVME6000_SCSI_H */
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/scsi/mvme16x.c linux-2.6.13/drivers/scsi/mvme16x.c
+--- linux-2.6.13-i386/drivers/scsi/mvme16x.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/scsi/mvme16x.c	2004-10-30 16:35:43.000000000 +0200
+@@ -17,10 +17,16 @@
+ #include "scsi.h"
+ #include <scsi/scsi_host.h>
+ #include "53c7xx.h"
+-#include "mvme16x.h"
+ 
+ #include<linux/stat.h>
+ 
++#ifndef CMD_PER_LUN
++#define CMD_PER_LUN 3
++#endif
++
++#ifndef CAN_QUEUE
++#define CAN_QUEUE 24
++#endif
+ 
+ int mvme16x_scsi_detect(Scsi_Host_Template *tpnt)
+ {
+@@ -54,8 +60,10 @@
+ {
+ 	if (shost->irq)
+ 		free_irq(shost->irq, NULL);
++#ifdef CONFIG_ISA
+ 	if (shost->dma_channel != 0xff)
+ 		free_dma(shost->dma_channel);
++#endif
+ 	if (shost->io_port && shost->n_io_port)
+ 		release_region(shost->io_port, shost->n_io_port);
+ 	scsi_unregister(shost);
+@@ -67,8 +75,9 @@
+ 	.detect			= mvme16x_scsi_detect,
+ 	.release		= mvme16x_scsi_release,
+ 	.queuecommand		= NCR53c7xx_queue_command,
+-	.abort			= NCR53c7xx_abort,
+-	.reset			= NCR53c7xx_reset,
++	.eh_abort_handler	= NCR53c7xx_abort,
++	.eh_bus_reset_handler	= NCR53c7xx_reset,
++	.slave_configure	= NCR53c7xx_slave_configure,
+ 	.can_queue		= 24,
+ 	.this_id		= 7,
+ 	.sg_tablesize		= 63,
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/scsi/mvme16x.h linux-2.6.13/drivers/scsi/mvme16x.h
+--- linux-2.6.13-i386/drivers/scsi/mvme16x.h	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/scsi/mvme16x.h	1970-01-01 01:00:00.000000000 +0100
+@@ -1,24 +0,0 @@
+-#ifndef MVME16x_SCSI_H
+-#define MVME16x_SCSI_H
+-
+-#include <linux/types.h>
+-
+-int mvme16x_scsi_detect(Scsi_Host_Template *);
+-const char *NCR53c7x0_info(void);
+-int NCR53c7xx_queue_command(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
+-int NCR53c7xx_abort(Scsi_Cmnd *);
+-int NCR53c7x0_release (struct Scsi_Host *);
+-int NCR53c7xx_reset(Scsi_Cmnd *, unsigned int);
+-void NCR53c7x0_intr(int irq, void *dev_id, struct pt_regs * regs);
+-
+-#ifndef CMD_PER_LUN
+-#define CMD_PER_LUN 3
+-#endif
+-
+-#ifndef CAN_QUEUE
+-#define CAN_QUEUE 24
+-#endif
+-
+-#include <scsi/scsicam.h>
+-
+-#endif /* MVME16x_SCSI_H */

Added: people/waldi/linux-2.6/debian/patches-debian/m68k-include-m68k.patch
===================================================================
--- people/waldi/linux-2.6/debian/patches-debian/m68k-include-m68k.patch	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-debian/m68k-include-m68k.patch	2005-11-06 16:19:16 UTC (rev 4733)
@@ -0,0 +1,664 @@
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/include/asm-m68k/cacheflush.h linux-2.6.13/include/asm-m68k/cacheflush.h
+--- linux-2.6.13-i386/include/asm-m68k/cacheflush.h	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/include/asm-m68k/cacheflush.h	2005-08-30 16:36:03.000000000 +0200
+@@ -130,20 +130,25 @@
+ #define flush_dcache_mmap_lock(mapping)		do { } while (0)
+ #define flush_dcache_mmap_unlock(mapping)	do { } while (0)
+ #define flush_icache_page(vma, page)	__flush_page_to_ram(page_address(page))
+-#define flush_icache_user_range(vma,pg,adr,len)	do { } while (0)
+-
+-#define copy_to_user_page(vma, page, vaddr, dst, src, len) \
+-	do {							\
+-		flush_cache_page(vma, vaddr, page_to_pfn(page));\
+-		memcpy(dst, src, len);				\
+-	} while (0)
+-
+-#define copy_from_user_page(vma, page, vaddr, dst, src, len) \
+-	do {							\
+-		flush_cache_page(vma, vaddr, page_to_pfn(page));\
+-		memcpy(dst, src, len);				\
+-	} while (0)
+ 
++extern void flush_icache_user_range(struct vm_area_struct *vma, struct page *page,
++				    unsigned long addr, int len);
+ extern void flush_icache_range(unsigned long address, unsigned long endaddr);
+ 
++static inline void copy_to_user_page(struct vm_area_struct *vma,
++				     struct page *page, unsigned long vaddr,
++				     void *dst, void *src, int len)
++{
++	flush_cache_page(vma, vaddr, page_to_pfn(page));
++	memcpy(dst, src, len);
++	flush_icache_user_range(vma, page, vaddr, len);
++}
++static inline void copy_from_user_page(struct vm_area_struct *vma,
++				       struct page *page, unsigned long vaddr,
++				       void *dst, void *src, int len)
++{
++	flush_cache_page(vma, vaddr, page_to_pfn(page));
++	memcpy(dst, src, len);
++}
++
+ #endif /* _M68K_CACHEFLUSH_H */
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/include/asm-m68k/io.h linux-2.6.13/include/asm-m68k/io.h
+--- linux-2.6.13-i386/include/asm-m68k/io.h	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/include/asm-m68k/io.h	2005-06-19 16:35:42.000000000 +0200
+@@ -324,8 +324,6 @@
+ #define writel(val,addr) out_le32((addr),(val))
+ #endif
+ 
+-#define mmiowb()
+-
+ static inline void *ioremap(unsigned long physaddr, unsigned long size)
+ {
+ 	return __ioremap(physaddr, size, IOMAP_NOCACHE_SER);
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/include/asm-m68k/processor.h linux-2.6.13/include/asm-m68k/processor.h
+--- linux-2.6.13-i386/include/asm-m68k/processor.h	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/include/asm-m68k/processor.h	2005-05-30 16:33:26.000000000 +0200
+@@ -14,6 +14,7 @@
+ #define current_text_addr() ({ __label__ _l; _l: &&_l;})
+ 
+ #include <linux/config.h>
++#include <linux/thread_info.h>
+ #include <asm/segment.h>
+ #include <asm/fpu.h>
+ #include <asm/ptrace.h>
+@@ -55,17 +56,6 @@
+ #endif
+ #define TASK_UNMAPPED_ALIGN(addr, off)	PAGE_ALIGN(addr)
+ 
+-struct task_work {
+-	unsigned char sigpending;
+-	unsigned char notify_resume;	/* request for notification on
+-					   userspace execution resumption */
+-	char          need_resched;
+-	unsigned char delayed_trace;	/* single step a syscall */
+-	unsigned char syscall_trace;	/* count of syscall interceptors */
+-	unsigned char memdie;		/* task was selected to be killed */
+-	unsigned char pad[2];
+-};
+-
+ struct thread_struct {
+ 	unsigned long  ksp;		/* kernel stack pointer */
+ 	unsigned long  usp;		/* user stack pointer */
+@@ -78,7 +68,7 @@
+ 	unsigned long  fp[8*3];
+ 	unsigned long  fpcntl[3];	/* fp control regs */
+ 	unsigned char  fpstate[FPSTATESIZE];  /* floating point state */
+-	struct task_work work;
++	struct thread_info info;
+ };
+ 
+ #define INIT_THREAD  {							\
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/include/asm-m68k/serial.h linux-2.6.13/include/asm-m68k/serial.h
+--- linux-2.6.13-i386/include/asm-m68k/serial.h	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/include/asm-m68k/serial.h	2005-08-30 16:36:03.000000000 +0200
+@@ -26,9 +26,11 @@
+ #define STD_COM4_FLAGS ASYNC_BOOT_AUTOCONF
+ #endif
+ 
++#ifdef CONFIG_ISA
+ #define SERIAL_PORT_DFNS			\
+ 	/* UART CLK   PORT IRQ     FLAGS        */			\
+ 	{ 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS },	/* ttyS0 */	\
+ 	{ 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS },	/* ttyS1 */	\
+ 	{ 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS },	/* ttyS2 */	\
+ 	{ 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS },	/* ttyS3 */
++#endif
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/include/asm-m68k/string.h linux-2.6.13/include/asm-m68k/string.h
+--- linux-2.6.13-i386/include/asm-m68k/string.h	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/include/asm-m68k/string.h	2005-08-30 16:36:03.000000000 +0200
+@@ -80,43 +80,6 @@
+   return( (char *) s);
+ }
+ 
+-#if 0
+-#define __HAVE_ARCH_STRPBRK
+-static inline char *strpbrk(const char *cs,const char *ct)
+-{
+-  const char *sc1,*sc2;
+-
+-  for( sc1 = cs; *sc1 != '\0'; ++sc1)
+-    for( sc2 = ct; *sc2 != '\0'; ++sc2)
+-      if (*sc1 == *sc2)
+-	return((char *) sc1);
+-  return( NULL );
+-}
+-#endif
+-
+-#if 0
+-#define __HAVE_ARCH_STRSPN
+-static inline size_t strspn(const char *s, const char *accept)
+-{
+-  const char *p;
+-  const char *a;
+-  size_t count = 0;
+-
+-  for (p = s; *p != '\0'; ++p)
+-    {
+-      for (a = accept; *a != '\0'; ++a)
+-        if (*p == *a)
+-          break;
+-      if (*a == '\0')
+-        return count;
+-      else
+-        ++count;
+-    }
+-
+-  return count;
+-}
+-#endif
+-
+ /* strstr !! */
+ 
+ #define __HAVE_ARCH_STRLEN
+@@ -173,370 +136,18 @@
+ }
+ 
+ #define __HAVE_ARCH_MEMSET
+-/*
+- * This is really ugly, but its highly optimizatiable by the
+- * compiler and is meant as compensation for gcc's missing
+- * __builtin_memset(). For the 680[23]0	it might be worth considering
+- * the optimal number of misaligned writes compared to the number of
+- * tests'n'branches needed to align the destination address. The
+- * 680[46]0 doesn't really care due to their copy-back caches.
+- *						10/09/96 - Jes Sorensen
+- */
+-static inline void * __memset_g(void * s, int c, size_t count)
+-{
+-  void *xs = s;
+-  size_t temp;
+-
+-  if (!count)
+-    return xs;
+-
+-  c &= 0xff;
+-  c |= c << 8;
+-  c |= c << 16;
+-
+-  if (count < 36){
+-	  long *ls = s;
+-
+-	  switch(count){
+-	  case 32: case 33: case 34: case 35:
+-		  *ls++ = c;
+-	  case 28: case 29: case 30: case 31:
+-		  *ls++ = c;
+-	  case 24: case 25: case 26: case 27:
+-		  *ls++ = c;
+-	  case 20: case 21: case 22: case 23:
+-		  *ls++ = c;
+-	  case 16: case 17: case 18: case 19:
+-		  *ls++ = c;
+-	  case 12: case 13: case 14: case 15:
+-		  *ls++ = c;
+-	  case 8: case 9: case 10: case 11:
+-		  *ls++ = c;
+-	  case 4: case 5: case 6: case 7:
+-		  *ls++ = c;
+-		  break;
+-	  default:
+-		  break;
+-	  }
+-	  s = ls;
+-	  if (count & 0x02){
+-		  short *ss = s;
+-		  *ss++ = c;
+-		  s = ss;
+-	  }
+-	  if (count & 0x01){
+-		  char *cs = s;
+-		  *cs++ = c;
+-		  s = cs;
+-	  }
+-	  return xs;
+-  }
+-
+-  if ((long) s & 1)
+-    {
+-      char *cs = s;
+-      *cs++ = c;
+-      s = cs;
+-      count--;
+-    }
+-  if (count > 2 && (long) s & 2)
+-    {
+-      short *ss = s;
+-      *ss++ = c;
+-      s = ss;
+-      count -= 2;
+-    }
+-  temp = count >> 2;
+-  if (temp)
+-    {
+-      long *ls = s;
+-      temp--;
+-      do
+-	*ls++ = c;
+-      while (temp--);
+-      s = ls;
+-    }
+-  if (count & 2)
+-    {
+-      short *ss = s;
+-      *ss++ = c;
+-      s = ss;
+-    }
+-  if (count & 1)
+-    {
+-      char *cs = s;
+-      *cs = c;
+-    }
+-  return xs;
+-}
+-
+-/*
+- * __memset_page assumes that data is longword aligned. Most, if not
+- * all, of these page sized memsets are performed on page aligned
+- * areas, thus we do not need to check if the destination is longword
+- * aligned. Of course we suffer a serious performance loss if this is
+- * not the case but I think the risk of this ever happening is
+- * extremely small. We spend a lot of time clearing pages in
+- * get_empty_page() so I think it is worth it anyway. Besides, the
+- * 680[46]0 do not really care about misaligned writes due to their
+- * copy-back cache.
+- *
+- * The optimized case for the 680[46]0 is implemented using the move16
+- * instruction. My tests showed that this implementation is 35-45%
+- * faster than the original implementation using movel, the only
+- * caveat is that the destination address must be 16-byte aligned.
+- *                                            01/09/96 - Jes Sorensen
+- */
+-static inline void * __memset_page(void * s,int c,size_t count)
+-{
+-  unsigned long data, tmp;
+-  void *xs = s;
+-
+-  c = c & 255;
+-  data = c | (c << 8);
+-  data |= data << 16;
+-
+-#ifdef CPU_M68040_OR_M68060_ONLY
+-
+-  if (((unsigned long) s) & 0x0f)
+-	  __memset_g(s, c, count);
+-  else{
+-	  unsigned long *sp = s;
+-	  *sp++ = data;
+-	  *sp++ = data;
+-	  *sp++ = data;
+-	  *sp++ = data;
+-
+-	  __asm__ __volatile__("1:\t"
+-			       ".chip 68040\n\t"
+-			       "move16 %2 at +,%0 at +\n\t"
+-			       ".chip 68k\n\t"
+-			       "subqw  #8,%2\n\t"
+-			       "subqw  #8,%2\n\t"
+-			       "dbra   %1,1b\n\t"
+-			       : "=a" (sp), "=d" (tmp)
+-			       : "a" (s), "0" (sp), "1" ((count - 16) / 16 - 1)
+-			       );
+-  }
+-
+-#else
+-  __asm__ __volatile__("1:\t"
+-		       "movel %2,%0 at +\n\t"
+-		       "movel %2,%0 at +\n\t"
+-		       "movel %2,%0 at +\n\t"
+-		       "movel %2,%0 at +\n\t"
+-		       "movel %2,%0 at +\n\t"
+-		       "movel %2,%0 at +\n\t"
+-		       "movel %2,%0 at +\n\t"
+-		       "movel %2,%0 at +\n\t"
+-		       "dbra  %1,1b\n\t"
+-		       : "=a" (s), "=d" (tmp)
+-		       : "d" (data), "0" (s), "1" (count / 32 - 1)
+-		       );
+-#endif
+-
+-  return xs;
+-}
+-
+-extern void *memset(void *,int,__kernel_size_t);
+-
+-#define __memset_const(s,c,count) \
+-((count==PAGE_SIZE) ? \
+-  __memset_page((s),(c),(count)) : \
+-  __memset_g((s),(c),(count)))
+-
+-#define memset(s, c, count) \
+-(__builtin_constant_p(count) ? \
+- __memset_const((s),(c),(count)) : \
+- __memset_g((s),(c),(count)))
++extern void *memset(void *, int, __kernel_size_t);
++#define memset(d, c, n) __builtin_memset(d, c, n)
+ 
+ #define __HAVE_ARCH_MEMCPY
+-extern void * memcpy(void *, const void *, size_t );
+-/*
+- * __builtin_memcpy() does not handle page-sized memcpys very well,
+- * thus following the same assumptions as for page-sized memsets, this
+- * function copies page-sized areas using an unrolled loop, without
+- * considering alignment.
+- *
+- * For the 680[46]0 only kernels we use the move16 instruction instead
+- * as it writes through the data-cache, invalidating the cache-lines
+- * touched. In this way we do not use up the entire data-cache (well,
+- * half of it on the 68060) by copying a page. An unrolled loop of two
+- * move16 instructions seem to the fastest. The only caveat is that
+- * both source and destination must be 16-byte aligned, if not we fall
+- * back to the generic memcpy function.  - Jes
+- */
+-static inline void * __memcpy_page(void * to, const void * from, size_t count)
+-{
+-  unsigned long tmp;
+-  void *xto = to;
+-
+-#ifdef CPU_M68040_OR_M68060_ONLY
+-
+-  if (((unsigned long) to | (unsigned long) from) & 0x0f)
+-	  return memcpy(to, from, count);
+-
+-  __asm__ __volatile__("1:\t"
+-		       ".chip 68040\n\t"
+-		       "move16 %1 at +,%0 at +\n\t"
+-		       "move16 %1 at +,%0 at +\n\t"
+-		       ".chip 68k\n\t"
+-		       "dbra  %2,1b\n\t"
+-		       : "=a" (to), "=a" (from), "=d" (tmp)
+-		       : "0" (to), "1" (from) , "2" (count / 32 - 1)
+-		       );
+-#else
+-  __asm__ __volatile__("1:\t"
+-		       "movel %1 at +,%0 at +\n\t"
+-		       "movel %1 at +,%0 at +\n\t"
+-		       "movel %1 at +,%0 at +\n\t"
+-		       "movel %1 at +,%0 at +\n\t"
+-		       "movel %1 at +,%0 at +\n\t"
+-		       "movel %1 at +,%0 at +\n\t"
+-		       "movel %1 at +,%0 at +\n\t"
+-		       "movel %1 at +,%0 at +\n\t"
+-		       "dbra  %2,1b\n\t"
+-		       : "=a" (to), "=a" (from), "=d" (tmp)
+-		       : "0" (to), "1" (from) , "2" (count / 32 - 1)
+-		       );
+-#endif
+-  return xto;
+-}
+-
+-#define __memcpy_const(to, from, n) \
+-((n==PAGE_SIZE) ? \
+-  __memcpy_page((to),(from),(n)) : \
+-  __builtin_memcpy((to),(from),(n)))
+-
+-#define memcpy(to, from, n) \
+-(__builtin_constant_p(n) ? \
+- __memcpy_const((to),(from),(n)) : \
+- memcpy((to),(from),(n)))
++extern void *memcpy(void *, const void *, __kernel_size_t);
++#define memcpy(d, s, n) __builtin_memcpy(d, s, n)
+ 
+ #define __HAVE_ARCH_MEMMOVE
+-static inline void * memmove(void * dest,const void * src, size_t n)
+-{
+-  void *xdest = dest;
+-  size_t temp;
+-
+-  if (!n)
+-    return xdest;
+-
+-  if (dest < src)
+-    {
+-      if ((long) dest & 1)
+-	{
+-	  char *cdest = dest;
+-	  const char *csrc = src;
+-	  *cdest++ = *csrc++;
+-	  dest = cdest;
+-	  src = csrc;
+-	  n--;
+-	}
+-      if (n > 2 && (long) dest & 2)
+-	{
+-	  short *sdest = dest;
+-	  const short *ssrc = src;
+-	  *sdest++ = *ssrc++;
+-	  dest = sdest;
+-	  src = ssrc;
+-	  n -= 2;
+-	}
+-      temp = n >> 2;
+-      if (temp)
+-	{
+-	  long *ldest = dest;
+-	  const long *lsrc = src;
+-	  temp--;
+-	  do
+-	    *ldest++ = *lsrc++;
+-	  while (temp--);
+-	  dest = ldest;
+-	  src = lsrc;
+-	}
+-      if (n & 2)
+-	{
+-	  short *sdest = dest;
+-	  const short *ssrc = src;
+-	  *sdest++ = *ssrc++;
+-	  dest = sdest;
+-	  src = ssrc;
+-	}
+-      if (n & 1)
+-	{
+-	  char *cdest = dest;
+-	  const char *csrc = src;
+-	  *cdest = *csrc;
+-	}
+-    }
+-  else
+-    {
+-      dest = (char *) dest + n;
+-      src = (const char *) src + n;
+-      if ((long) dest & 1)
+-	{
+-	  char *cdest = dest;
+-	  const char *csrc = src;
+-	  *--cdest = *--csrc;
+-	  dest = cdest;
+-	  src = csrc;
+-	  n--;
+-	}
+-      if (n > 2 && (long) dest & 2)
+-	{
+-	  short *sdest = dest;
+-	  const short *ssrc = src;
+-	  *--sdest = *--ssrc;
+-	  dest = sdest;
+-	  src = ssrc;
+-	  n -= 2;
+-	}
+-      temp = n >> 2;
+-      if (temp)
+-	{
+-	  long *ldest = dest;
+-	  const long *lsrc = src;
+-	  temp--;
+-	  do
+-	    *--ldest = *--lsrc;
+-	  while (temp--);
+-	  dest = ldest;
+-	  src = lsrc;
+-	}
+-      if (n & 2)
+-	{
+-	  short *sdest = dest;
+-	  const short *ssrc = src;
+-	  *--sdest = *--ssrc;
+-	  dest = sdest;
+-	  src = ssrc;
+-	}
+-      if (n & 1)
+-	{
+-	  char *cdest = dest;
+-	  const char *csrc = src;
+-	  *--cdest = *--csrc;
+-	}
+-    }
+-  return xdest;
+-}
++extern void *memmove(void *, const void *, __kernel_size_t);
+ 
+ #define __HAVE_ARCH_MEMCMP
+-extern int memcmp(const void * ,const void * ,size_t );
+-#define memcmp(cs, ct, n) \
+-(__builtin_constant_p(n) ? \
+- __builtin_memcmp((cs),(ct),(n)) : \
+- memcmp((cs),(ct),(n)))
+-
+-#define __HAVE_ARCH_MEMCHR
+-static inline void *memchr(const void *cs, int c, size_t count)
+-{
+-	/* Someone else can optimize this, I don't care - tonym at mac.linux-m68k.org */
+-	unsigned char *ret = (unsigned char *)cs;
+-	for(;count>0;count--,ret++)
+-		if(*ret == c) return ret;
+-
+-	return NULL;
+-}
++extern int memcmp(const void *, const void *, __kernel_size_t);
++#define memcmp(d, s, n) __builtin_memcmp(d, s, n)
+ 
+ #endif /* _M68K_STRING_H_ */
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/include/asm-m68k/thread_info.h linux-2.6.13/include/asm-m68k/thread_info.h
+--- linux-2.6.13-i386/include/asm-m68k/thread_info.h	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/include/asm-m68k/thread_info.h	2005-08-30 16:36:04.000000000 +0200
+@@ -2,17 +2,15 @@
+ #define _ASM_M68K_THREAD_INFO_H
+ 
+ #include <asm/types.h>
+-#include <asm/processor.h>
+ #include <asm/page.h>
+ 
+ struct thread_info {
+ 	struct task_struct	*task;		/* main task structure */
++	unsigned long		flags;
+ 	struct exec_domain	*exec_domain;	/* execution domain */
+ 	int			preempt_count;	/* 0 => preemptable, <0 => BUG */
+ 	__u32 cpu; /* should always be 0 on m68k */
+ 	struct restart_block    restart_block;
+-
+-	__u8			supervisor_stack[0];
+ };
+ 
+ #define PREEMPT_ACTIVE		0x4000000
+@@ -28,91 +26,34 @@
+ 
+ /* THREAD_SIZE should be 8k, so handle differently for 4k and 8k machines */
+ #if PAGE_SHIFT == 13 /* 8k machines */
+-#define alloc_thread_info(tsk)   ((struct thread_info *)__get_free_pages(GFP_KERNEL,0))
+-#define free_thread_info(ti)  free_pages((unsigned long)(ti),0)
++#define alloc_thread_stack(tsk) ((void *)__get_free_pages(GFP_KERNEL,0))
++#define free_thread_stack(ti)  free_pages((unsigned long)(ti),0)
+ #else /* otherwise assume 4k pages */
+-#define alloc_thread_info(tsk)   ((struct thread_info *)__get_free_pages(GFP_KERNEL,1))
+-#define free_thread_info(ti)  free_pages((unsigned long)(ti),1)
++#define alloc_thread_stack(tsk) ((void *)__get_free_pages(GFP_KERNEL,1))
++#define free_thread_stack(ti)  free_pages((unsigned long)(ti),1)
+ #endif /* PAGE_SHIFT == 13 */
+ 
+ //#define init_thread_info	(init_task.thread.info)
+ #define init_stack		(init_thread_union.stack)
+ 
+-#define current_thread_info()	(current->thread_info)
++#define task_thread_info(tsk)	(&(tsk)->thread.info)
++#define current_thread_info()	task_thread_info(current)
+ 
++#define setup_thread_stack(p, org) ({			\
++	*(struct task_struct **)(p)->stack = (p);	\
++	task_thread_info(p)->task = (p);		\
++})
+ 
+ #define __HAVE_THREAD_FUNCTIONS
+ 
+-#define TIF_SYSCALL_TRACE	0	/* syscall trace active */
+-#define TIF_DELAYED_TRACE	1	/* single step a syscall */
+-#define TIF_NOTIFY_RESUME	2	/* resumption notification requested */
+-#define TIF_SIGPENDING		3	/* signal pending */
+-#define TIF_NEED_RESCHED	4	/* rescheduling necessary */
+-#define TIF_MEMDIE		5
+-
+-extern int thread_flag_fixme(void);
+-
+-/*
+- * flag set/clear/test wrappers
+- * - pass TIF_xxxx constants to these functions
++/* entry.S relies on these definitions!
++ * bits 0-7 are tested at every exception exit
++ * bits 8-15 are also tested at syscall exit
+  */
+-
+-#define __set_tsk_thread_flag(tsk, flag, val) ({	\
+-	switch (flag) {					\
+-	case TIF_SIGPENDING:				\
+-		tsk->thread.work.sigpending = val;	\
+-		break;					\
+-	case TIF_NEED_RESCHED:				\
+-		tsk->thread.work.need_resched = val;	\
+-		break;					\
+-	case TIF_SYSCALL_TRACE:				\
+-		tsk->thread.work.syscall_trace = val;	\
+-		break;					\
+-	case TIF_MEMDIE:				\
+-		tsk->thread.work.memdie = val;		\
+-		break;					\
+-	default:					\
+-		thread_flag_fixme();			\
+-	}						\
+-})
+-
+-#define __get_tsk_thread_flag(tsk, flag) ({		\
+-	int ___res;					\
+-	switch (flag) {					\
+-	case TIF_SIGPENDING:				\
+-		___res = tsk->thread.work.sigpending;	\
+-		break;					\
+-	case TIF_NEED_RESCHED:				\
+-		___res = tsk->thread.work.need_resched;	\
+-		break;					\
+-	case TIF_SYSCALL_TRACE:				\
+-		___res = tsk->thread.work.syscall_trace;\
+-		break;					\
+-	case TIF_MEMDIE:				\
+-		___res = tsk->thread.work.memdie;\
+-		break;					\
+-	default:					\
+-		___res = thread_flag_fixme();		\
+-	}						\
+-	___res;						\
+-})
+-
+-#define __get_set_tsk_thread_flag(tsk, flag, val) ({	\
+-	int __res = __get_tsk_thread_flag(tsk, flag);	\
+-	__set_tsk_thread_flag(tsk, flag, val);		\
+-	__res;						\
+-})
+-
+-#define set_tsk_thread_flag(tsk, flag) __set_tsk_thread_flag(tsk, flag, ~0)
+-#define clear_tsk_thread_flag(tsk, flag) __set_tsk_thread_flag(tsk, flag, 0)
+-#define test_and_set_tsk_thread_flag(tsk, flag) __get_set_tsk_thread_flag(tsk, flag, ~0)
+-#define test_tsk_thread_flag(tsk, flag) __get_tsk_thread_flag(tsk, flag)
+-
+-#define set_thread_flag(flag) set_tsk_thread_flag(current, flag)
+-#define clear_thread_flag(flag) clear_tsk_thread_flag(current, flag)
+-#define test_thread_flag(flag) test_tsk_thread_flag(current, flag)
+-
+-#define set_need_resched() set_thread_flag(TIF_NEED_RESCHED)
+-#define clear_need_resched() clear_thread_flag(TIF_NEED_RESCHED)
++#define TIF_SIGPENDING		6	/* signal pending */
++#define TIF_NEED_RESCHED	7	/* rescheduling necessary */
++#define TIF_DELAYED_TRACE	14	/* single step a syscall */
++#define TIF_SYSCALL_TRACE	15	/* syscall trace active */
++#define TIF_MEMDIE		16
+ 
+ #endif	/* _ASM_M68K_THREAD_INFO_H */

Added: people/waldi/linux-2.6/debian/patches-debian/m68k-kernel.patch
===================================================================
--- people/waldi/linux-2.6/debian/patches-debian/m68k-kernel.patch	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-debian/m68k-kernel.patch	2005-11-06 16:19:16 UTC (rev 4733)
@@ -0,0 +1,101 @@
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/kernel/exit.c linux-2.6.13/kernel/exit.c
+--- linux-2.6.13-i386/kernel/exit.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/kernel/exit.c	2005-08-30 16:36:41.000000000 +0200
+@@ -846,7 +846,7 @@
+ 	if (group_dead && tsk->signal->leader)
+ 		disassociate_ctty(1);
+ 
+-	module_put(tsk->thread_info->exec_domain->module);
++	module_put(task_thread_info(tsk)->exec_domain->module);
+ 	if (tsk->binfmt)
+ 		module_put(tsk->binfmt->module);
+ 
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/kernel/fork.c linux-2.6.13/kernel/fork.c
+--- linux-2.6.13-i386/kernel/fork.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/kernel/fork.c	2005-08-30 16:36:41.000000000 +0200
+@@ -100,7 +100,7 @@
+ 
+ void free_task(struct task_struct *tsk)
+ {
+-	free_thread_info(tsk->thread_info);
++	free_thread_stack(tsk->stack);
+ 	free_task_struct(tsk);
+ }
+ EXPORT_SYMBOL(free_task);
+@@ -155,7 +155,7 @@
+ static struct task_struct *dup_task_struct(struct task_struct *orig)
+ {
+ 	struct task_struct *tsk;
+-	struct thread_info *ti;
++	void *stack;
+ 
+ 	prepare_to_copy(orig);
+ 
+@@ -163,16 +163,16 @@
+ 	if (!tsk)
+ 		return NULL;
+ 
+-	ti = alloc_thread_info(tsk);
+-	if (!ti) {
++	stack = alloc_thread_stack(tsk);
++	if (!stack) {
+ 		free_task_struct(tsk);
+ 		return NULL;
+ 	}
+ 
+-	*ti = *orig->thread_info;
+ 	*tsk = *orig;
+-	tsk->thread_info = ti;
+-	ti->task = tsk;
++	tsk->stack = stack;
++	*(struct task_struct **)tsk->stack = tsk;
++	setup_thread_stack(tsk, orig);
+ 
+ 	/* One for us, one for whoever does the "release_task()" (usually parent) */
+ 	atomic_set(&tsk->usage,2);
+@@ -898,7 +898,7 @@
+ 	if (nr_threads >= max_threads)
+ 		goto bad_fork_cleanup_count;
+ 
+-	if (!try_module_get(p->thread_info->exec_domain->module))
++	if (!try_module_get(task_thread_info(p)->exec_domain->module))
+ 		goto bad_fork_cleanup_count;
+ 
+ 	if (p->binfmt && !try_module_get(p->binfmt->module))
+@@ -1151,7 +1151,7 @@
+ 	if (p->binfmt)
+ 		module_put(p->binfmt->module);
+ bad_fork_cleanup_put_domain:
+-	module_put(p->thread_info->exec_domain->module);
++	module_put(task_thread_info(p)->exec_domain->module);
+ bad_fork_cleanup_count:
+ 	put_group_info(p->group_info);
+ 	atomic_dec(&p->user->processes);
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/kernel/sched.c linux-2.6.13/kernel/sched.c
+--- linux-2.6.13-i386/kernel/sched.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/kernel/sched.c	2005-08-30 16:36:43.000000000 +0200
+@@ -4121,10 +4121,10 @@
+ #endif
+ #ifdef CONFIG_DEBUG_STACK_USAGE
+ 	{
+-		unsigned long * n = (unsigned long *) (p->thread_info+1);
++		unsigned long * n = end_of_stack(p);
+ 		while (!*n)
+ 			n++;
+-		free = (unsigned long) n - (unsigned long)(p->thread_info+1);
++		free = (unsigned long) n - (unsigned long) end_of_stack(p);
+ 	}
+ #endif
+ 	printk("%5lu %5d %6d ", free, p->pid, p->parent->pid);
+@@ -4204,9 +4204,9 @@
+ 
+ 	/* Set the preempt count _outside_ the spinlocks! */
+ #if defined(CONFIG_PREEMPT) && !defined(CONFIG_PREEMPT_BKL)
+-	idle->thread_info->preempt_count = (idle->lock_depth >= 0);
++	task_thread_info(idle)->preempt_count = (idle->lock_depth >= 0);
+ #else
+-	idle->thread_info->preempt_count = 0;
++	task_thread_info(idle)->preempt_count = 0;
+ #endif
+ }
+ 

Deleted: people/waldi/linux-2.6/debian/patches-debian/m68k-sonic.patch
===================================================================
--- people/waldi/linux-2.6/debian/patches-debian/m68k-sonic.patch	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-debian/m68k-sonic.patch	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,2650 +0,0 @@
-
-The purpose of this patch:
-
-- Adopt the DMA API (jazzsonic, macsonic & core driver).
-
-- Adopt the driver model (macsonic).
-
-This part was cribbed from jazzsonic. As a consequence, macsonic once 
-again works as a module. Driver model is also used by the DMA calls.
-
-- Support 16 bit cards (macsonic & core driver, also affects jazzsonic)
-
-This code was adapted from the mac68k linux 2.2 kernel, where it has 
-languished for a long time.
-
-- Support more 32-bit mac cards (macsonic)
-
-Also from mac68k repo.
-
-- Zero-copy buffer handling (core driver)
-
-Provides a nice performance improvement. The new algorithm incidentally 
-helped to replace the old Jazz DMA code.
-
-The patch was tested on a variety of macs (several 32-bit quadra built-in 
-NICs, a 16-bit LC PDS NIC and a 16-bit comm-slot NIC), and also on MIPS 
-Jazz.
-
-This patch combines the three previous patches in this thread.
-
-
-Signed-off-by: Finn Thain <fthain at telegraphics.com.au>
-Acked-by: Thomas Bogendoerfer <tsbogend at alpha.franken.de>
-Acked-by: Jeff Garzik <jgarzik at pobox.com>
-
-
-
---- orig/drivers/net/Space.c	Sun Jul 10 22:11:34 2005
-+++ linux/drivers/net/Space.c	Sun Jul 10 22:11:46 2005
-@@ -87,7 +87,6 @@
- extern struct net_device *tc515_probe(int unit);
- extern struct net_device *lance_probe(int unit);
- extern struct net_device *mace_probe(int unit);
--extern struct net_device *macsonic_probe(int unit);
- extern struct net_device *mac8390_probe(int unit);
- extern struct net_device *mac89x0_probe(int unit);
- extern struct net_device *mc32_probe(int unit);
-@@ -289,9 +288,6 @@
- #endif
- #ifdef CONFIG_MACMACE		/* Mac 68k Quadra AV builtin Ethernet */
- 	{mace_probe, 0},
--#endif
--#ifdef CONFIG_MACSONIC		/* Mac SONIC-based Ethernet of all sorts */ 
--	{macsonic_probe, 0},
- #endif
- #ifdef CONFIG_MAC8390           /* NuBus NS8390-based cards */
- 	{mac8390_probe, 0},
---- orig/drivers/net/jazzsonic.c	Sun Jul 10 22:11:34 2005
-+++ linux/drivers/net/jazzsonic.c	Sun Jul 10 22:22:39 2005
-@@ -1,5 +1,10 @@
- /*
-- * sonic.c
-+ * jazzsonic.c
-+ *
-+ * (C) 2005 Finn Thain
-+ *
-+ * Converted to DMA API, and (from the mac68k project) introduced
-+ * dhd's support for 16-bit cards.
-  *
-  * (C) 1996,1998 by Thomas Bogendoerfer (tsbogend at alpha.franken.de)
-  * 
-@@ -28,8 +33,8 @@
- #include <linux/netdevice.h>
- #include <linux/etherdevice.h>
- #include <linux/skbuff.h>
--#include <linux/bitops.h>
- #include <linux/device.h>
-+#include <linux/dma-mapping.h>
- 
- #include <asm/bootinfo.h>
- #include <asm/system.h>
-@@ -44,22 +49,20 @@
- 
- #define SONIC_MEM_SIZE	0x100
- 
--#define SREGS_PAD(n)    u16 n;
--
- #include "sonic.h"
- 
- /*
-  * Macros to access SONIC registers
-  */
--#define SONIC_READ(reg) (*((volatile unsigned int *)base_addr+reg))
-+#define SONIC_READ(reg) (*((volatile unsigned int *)dev->base_addr+reg))
- 
- #define SONIC_WRITE(reg,val)						\
- do {									\
--	*((volatile unsigned int *)base_addr+(reg)) = (val);		\
-+	*((volatile unsigned int *)dev->base_addr+(reg)) = (val);		\
- } while (0)
- 
- 
--/* use 0 for production, 1 for verification, >2 for debug */
-+/* use 0 for production, 1 for verification, >1 for debug */
- #ifdef SONIC_DEBUG
- static unsigned int sonic_debug = SONIC_DEBUG;
- #else 
-@@ -85,18 +88,18 @@
- 	0xffff			/* end of list */
- };
- 
--static int __init sonic_probe1(struct net_device *dev, unsigned long base_addr,
--                               unsigned int irq)
-+static int __init sonic_probe1(struct net_device *dev)
- {
- 	static unsigned version_printed;
- 	unsigned int silicon_revision;
- 	unsigned int val;
--	struct sonic_local *lp;
-+	struct sonic_local *lp = netdev_priv(dev);
- 	int err = -ENODEV;
- 	int i;
- 
--	if (!request_mem_region(base_addr, SONIC_MEM_SIZE, jazz_sonic_string))
-+	if (!request_mem_region(dev->base_addr, SONIC_MEM_SIZE, jazz_sonic_string))
- 		return -EBUSY;
-+
- 	/*
- 	 * get the Silicon Revision ID. If this is one of the known
- 	 * one assume that we found a SONIC ethernet controller at
-@@ -120,11 +123,7 @@
- 	if (sonic_debug  &&  version_printed++ == 0)
- 		printk(version);
- 
--	printk("%s: Sonic ethernet found at 0x%08lx, ", dev->name, base_addr);
--
--	/* Fill in the 'dev' fields. */
--	dev->base_addr = base_addr;
--	dev->irq = irq;
-+	printk(KERN_INFO "%s: Sonic ethernet found at 0x%08lx, ", lp->device->bus_id, dev->base_addr);
- 
- 	/*
- 	 * Put the sonic into software reset, then
-@@ -138,84 +137,44 @@
- 		dev->dev_addr[i*2+1] = val >> 8;
- 	}
- 
--	printk("HW Address ");
--	for (i = 0; i < 6; i++) {
--		printk("%2.2x", dev->dev_addr[i]);
--		if (i<5)
--			printk(":");
--	}
--
--	printk(" IRQ %d\n", irq);
--
- 	err = -ENOMEM;
-     
- 	/* Initialize the device structure. */
--	if (dev->priv == NULL) {
--		/*
--		 * the memory be located in the same 64kb segment
--		 */
--		lp = NULL;
--		i = 0;
--		do {
--			lp = kmalloc(sizeof(*lp), GFP_KERNEL);
--			if ((unsigned long) lp >> 16
--			    != ((unsigned long)lp + sizeof(*lp) ) >> 16) {
--				/* FIXME, free the memory later */
--				kfree(lp);
--				lp = NULL;
--			}
--		} while (lp == NULL && i++ < 20);
--
--		if (lp == NULL) {
--			printk("%s: couldn't allocate memory for descriptors\n",
--			       dev->name);
--			goto out;
--		}
- 
--		memset(lp, 0, sizeof(struct sonic_local));
--
--		/* get the virtual dma address */
--		lp->cda_laddr = vdma_alloc(CPHYSADDR(lp),sizeof(*lp));
--		if (lp->cda_laddr == ~0UL) {
--			printk("%s: couldn't get DMA page entry for "
--			       "descriptors\n", dev->name);
--			goto out1;
--		}
--
--		lp->tda_laddr = lp->cda_laddr + sizeof (lp->cda);
--		lp->rra_laddr = lp->tda_laddr + sizeof (lp->tda);
--		lp->rda_laddr = lp->rra_laddr + sizeof (lp->rra);
--	
--		/* allocate receive buffer area */
--		/* FIXME, maybe we should use skbs */
--		lp->rba = kmalloc(SONIC_NUM_RRS * SONIC_RBSIZE, GFP_KERNEL);
--		if (!lp->rba) {
--			printk("%s: couldn't allocate receive buffers\n",
--			       dev->name);
--			goto out2;
--		}
-+	lp->dma_bitmode = SONIC_BITMODE32;
- 
--		/* get virtual dma address */
--		lp->rba_laddr = vdma_alloc(CPHYSADDR(lp->rba),
--		                           SONIC_NUM_RRS * SONIC_RBSIZE);
--		if (lp->rba_laddr == ~0UL) {
--			printk("%s: couldn't get DMA page entry for receive "
--			       "buffers\n",dev->name);
--			goto out3;
--		}
--
--		/* now convert pointer to KSEG1 pointer */
--		lp->rba = (char *)KSEG1ADDR(lp->rba);
--		flush_cache_all();
--		dev->priv = (struct sonic_local *)KSEG1ADDR(lp);
-+	/* Allocate the entire chunk of memory for the descriptors.
-+           Note that this cannot cross a 64K boundary. */
-+	if ((lp->descriptors = dma_alloc_coherent(lp->device,
-+				SIZEOF_SONIC_DESC * SONIC_BUS_SCALE(lp->dma_bitmode),
-+				&lp->descriptors_laddr, GFP_KERNEL)) == NULL) {
-+		printk(KERN_ERR "%s: couldn't alloc DMA memory for descriptors.\n", lp->device->bus_id);
-+		goto out;
- 	}
- 
--	lp = (struct sonic_local *)dev->priv;
-+	/* Now set up the pointers to point to the appropriate places */
-+	lp->cda = lp->descriptors;
-+	lp->tda = lp->cda + (SIZEOF_SONIC_CDA
-+	                     * SONIC_BUS_SCALE(lp->dma_bitmode));
-+	lp->rda = lp->tda + (SIZEOF_SONIC_TD * SONIC_NUM_TDS
-+	                     * SONIC_BUS_SCALE(lp->dma_bitmode));
-+	lp->rra = lp->rda + (SIZEOF_SONIC_RD * SONIC_NUM_RDS
-+	                     * SONIC_BUS_SCALE(lp->dma_bitmode));
-+
-+	lp->cda_laddr = lp->descriptors_laddr;
-+	lp->tda_laddr = lp->cda_laddr + (SIZEOF_SONIC_CDA
-+	                     * SONIC_BUS_SCALE(lp->dma_bitmode));
-+	lp->rda_laddr = lp->tda_laddr + (SIZEOF_SONIC_TD * SONIC_NUM_TDS
-+	                     * SONIC_BUS_SCALE(lp->dma_bitmode));
-+	lp->rra_laddr = lp->rda_laddr + (SIZEOF_SONIC_RD * SONIC_NUM_RDS
-+	                     * SONIC_BUS_SCALE(lp->dma_bitmode));
-+
- 	dev->open = sonic_open;
- 	dev->stop = sonic_close;
- 	dev->hard_start_xmit = sonic_send_packet;
--	dev->get_stats	= sonic_get_stats;
-+	dev->get_stats = sonic_get_stats;
- 	dev->set_multicast_list = &sonic_multicast_list;
-+	dev->tx_timeout = sonic_tx_timeout;
- 	dev->watchdog_timeo = TX_TIMEOUT;
- 
- 	/*
-@@ -226,14 +185,8 @@
- 	SONIC_WRITE(SONIC_MPT,0xffff);
- 
- 	return 0;
--out3:
--	kfree(lp->rba);
--out2:
--	vdma_free(lp->cda_laddr);
--out1:
--	kfree(lp);
- out:
--	release_region(base_addr, SONIC_MEM_SIZE);
-+	release_region(dev->base_addr, SONIC_MEM_SIZE);
- 	return err;
- }
- 
-@@ -245,7 +198,6 @@
- {
- 	struct net_device *dev;
- 	struct sonic_local *lp;
--	unsigned long base_addr;
- 	int err = 0;
- 	int i;
- 
-@@ -255,21 +207,26 @@
- 	if (mips_machgroup != MACH_GROUP_JAZZ)
- 		return -ENODEV;
- 
--	dev = alloc_etherdev(0);
-+	dev = alloc_etherdev(sizeof(struct sonic_local));
- 	if (!dev)
- 		return -ENOMEM;
- 
-+	lp = netdev_priv(dev);
-+	lp->device = device;
-+	SET_NETDEV_DEV(dev, device);
-+ 	SET_MODULE_OWNER(dev);
-+
- 	netdev_boot_setup_check(dev);
--	base_addr = dev->base_addr;
- 
--	if (base_addr >= KSEG0)	{ /* Check a single specified location. */
--		err = sonic_probe1(dev, base_addr, dev->irq);
--	} else if (base_addr != 0) { /* Don't probe at all. */
-+	if (dev->base_addr >= KSEG0) { /* Check a single specified location. */
-+		err = sonic_probe1(dev);
-+	} else if (dev->base_addr != 0) { /* Don't probe at all. */
- 		err = -ENXIO;
- 	} else {
- 		for (i = 0; sonic_portlist[i].port; i++) {
--			int io = sonic_portlist[i].port;
--			if (sonic_probe1(dev, io, sonic_portlist[i].irq) == 0)
-+			dev->base_addr = sonic_portlist[i].port;
-+			dev->irq = sonic_portlist[i].irq;
-+			if (sonic_probe1(dev) == 0)
- 				break;
- 		}
- 		if (!sonic_portlist[i].port)
-@@ -281,14 +238,17 @@
- 	if (err)
- 		goto out1;
- 
-+	printk("%s: MAC ", dev->name);
-+	for (i = 0; i < 6; i++) {
-+		printk("%2.2x", dev->dev_addr[i]);
-+		if (i < 5)
-+			printk(":");
-+	}
-+	printk(" IRQ %d\n", dev->irq);
-+
- 	return 0;
- 
- out1:
--	lp = dev->priv;
--	vdma_free(lp->rba_laddr);
--	kfree(lp->rba);
--	vdma_free(lp->cda_laddr);
--	kfree(lp);
- 	release_region(dev->base_addr, SONIC_MEM_SIZE);
- out:
- 	free_netdev(dev);
-@@ -296,21 +256,22 @@
- 	return err;
- }
- 
--/*
-- *      SONIC uses a normal IRQ
-- */
--#define sonic_request_irq       request_irq
--#define sonic_free_irq          free_irq
-+MODULE_DESCRIPTION("Jazz SONIC ethernet driver");
-+module_param(sonic_debug, int, 0);
-+MODULE_PARM_DESC(sonic_debug, "jazzsonic debug level (1-4)");
- 
--#define sonic_chiptomem(x)      KSEG1ADDR(vdma_log2phys(x))
-+#define SONIC_IRQ_FLAG SA_INTERRUPT
- 
- #include "sonic.c"
- 
- static int __devexit jazz_sonic_device_remove (struct device *device)
- {
- 	struct net_device *dev = device->driver_data;
-+	struct sonic_local* lp = netdev_priv(dev);
- 
- 	unregister_netdev (dev);
-+	dma_free_coherent(lp->device, SIZEOF_SONIC_DESC * SONIC_BUS_SCALE(lp->dma_bitmode),
-+	                  lp->descriptors, lp->descriptors_laddr);
- 	release_region (dev->base_addr, SONIC_MEM_SIZE);
- 	free_netdev (dev);
- 
-@@ -323,7 +284,7 @@
- 	.probe	= jazz_sonic_probe,
- 	.remove	= __devexit_p(jazz_sonic_device_remove),
- };
--                                                                                
-+
- static void jazz_sonic_platform_release (struct device *device)
- {
- 	struct platform_device *pldev;
-@@ -336,10 +297,11 @@
- static int __init jazz_sonic_init_module(void)
- {
- 	struct platform_device *pldev;
-+	int err;
- 
--	if (driver_register(&jazz_sonic_driver)) {
-+	if ((err = driver_register(&jazz_sonic_driver))) {
- 		printk(KERN_ERR "Driver registration failed\n");
--		return -ENOMEM;
-+		return err;
- 	}
- 
- 	jazz_sonic_device = NULL;
---- orig/drivers/net/macsonic.c	Sun Jul 10 22:11:34 2005
-+++ linux/drivers/net/macsonic.c	Sun Jul 10 22:23:06 2005
-@@ -1,6 +1,12 @@
- /*
-  * macsonic.c
-  *
-+ * (C) 2005 Finn Thain
-+ *
-+ * Converted to DMA API, converted to unified driver model, made it work as
-+ * a module again, and from the mac68k project, introduced more 32-bit cards
-+ * and dhd's support for 16-bit cards.
-+ *
-  * (C) 1998 Alan Cox
-  *
-  * Debugging Andreas Ehliar, Michael Schmitz
-@@ -26,8 +32,8 @@
-  */
- 
- #include <linux/kernel.h>
-+#include <linux/module.h>
- #include <linux/types.h>
--#include <linux/ctype.h>
- #include <linux/fcntl.h>
- #include <linux/interrupt.h>
- #include <linux/init.h>
-@@ -41,8 +47,8 @@
- #include <linux/netdevice.h>
- #include <linux/etherdevice.h>
- #include <linux/skbuff.h>
--#include <linux/module.h>
--#include <linux/bitops.h>
-+#include <linux/device.h>
-+#include <linux/dma-mapping.h>
- 
- #include <asm/bootinfo.h>
- #include <asm/system.h>
-@@ -54,25 +60,28 @@
- #include <asm/macints.h>
- #include <asm/mac_via.h>
- 
--#define SREGS_PAD(n)    u16 n;
-+static char mac_sonic_string[] = "macsonic";
-+static struct platform_device *mac_sonic_device;
- 
- #include "sonic.h"
- 
--#define SONIC_READ(reg) \
--	nubus_readl(base_addr+(reg))
--#define SONIC_WRITE(reg,val) \
--	nubus_writel((val), base_addr+(reg))
--#define sonic_read(dev, reg) \
--	nubus_readl((dev)->base_addr+(reg))
--#define sonic_write(dev, reg, val) \
--	nubus_writel((val), (dev)->base_addr+(reg))
--
-+/* These should basically be bus-size and endian independent (since
-+   the SONIC is at least smart enough that it uses the same endianness
-+   as the host, unlike certain less enlightened Macintosh NICs) */
-+#define SONIC_READ(reg) (nubus_readw(dev->base_addr + (reg * 4) \
-+	      + lp->reg_offset))
-+#define SONIC_WRITE(reg,val) (nubus_writew(val, dev->base_addr + (reg * 4) \
-+	      + lp->reg_offset))
-+
-+/* use 0 for production, 1 for verification, >1 for debug */
-+#ifdef SONIC_DEBUG
-+static unsigned int sonic_debug = SONIC_DEBUG;
-+#else 
-+static unsigned int sonic_debug = 1;
-+#endif
- 
--static int sonic_debug;
- static int sonic_version_printed;
- 
--static int reg_offset;
--
- extern int mac_onboard_sonic_probe(struct net_device* dev);
- extern int mac_nubus_sonic_probe(struct net_device* dev);
- 
-@@ -108,40 +117,6 @@
- 
- #define SONIC_READ_PROM(addr) nubus_readb(prom_addr+addr)
- 
--struct net_device * __init macsonic_probe(int unit)
--{
--	struct net_device *dev = alloc_etherdev(0);
--	int err;
--
--	if (!dev)
--		return ERR_PTR(-ENOMEM);
--
--	if (unit >= 0)
--		sprintf(dev->name, "eth%d", unit);
--
-- 	SET_MODULE_OWNER(dev);
--
--	/* This will catch fatal stuff like -ENOMEM as well as success */
--	err = mac_onboard_sonic_probe(dev);
--	if (err == 0)
--		goto found;
--	if (err != -ENODEV)
--		goto out;
--	err = mac_nubus_sonic_probe(dev);
--	if (err)
--		goto out;
--found:
--	err = register_netdev(dev);
--	if (err)
--		goto out1;
--	return dev;
--out1:
--	kfree(dev->priv);
--out:
--	free_netdev(dev);
--	return ERR_PTR(err);
--}
--
- /*
-  * For reversing the PROM address
-  */
-@@ -160,103 +135,55 @@
- 
- int __init macsonic_init(struct net_device* dev)
- {
--	struct sonic_local* lp = NULL;
--	int i;
-+	struct sonic_local* lp = netdev_priv(dev);
- 
- 	/* Allocate the entire chunk of memory for the descriptors.
-            Note that this cannot cross a 64K boundary. */
--	for (i = 0; i < 20; i++) {
--		unsigned long desc_base, desc_top;
--		if((lp = kmalloc(sizeof(struct sonic_local), GFP_KERNEL | GFP_DMA)) == NULL) {
--			printk(KERN_ERR "%s: couldn't allocate descriptor buffers\n", dev->name);
--			return -ENOMEM;
--		}
--
--		desc_base = (unsigned long) lp;
--		desc_top = desc_base + sizeof(struct sonic_local);
--		if ((desc_top & 0xffff) >= (desc_base & 0xffff))
--			break;
--		/* Hmm. try again (FIXME: does this actually work?) */
--		kfree(lp);
--		printk(KERN_DEBUG
--		       "%s: didn't get continguous chunk [%08lx - %08lx], trying again\n",
--		       dev->name, desc_base, desc_top);
--	}
--
--	if (lp == NULL) {
--		printk(KERN_ERR "%s: tried 20 times to allocate descriptor buffers, giving up.\n",
--		       dev->name);
-+	if ((lp->descriptors = dma_alloc_coherent(lp->device,
-+	            SIZEOF_SONIC_DESC * SONIC_BUS_SCALE(lp->dma_bitmode),
-+	            &lp->descriptors_laddr, GFP_KERNEL)) == NULL) {
-+		printk(KERN_ERR "%s: couldn't alloc DMA memory for descriptors.\n", lp->device->bus_id);
- 		return -ENOMEM;
--	}		       
--
--	dev->priv = lp;
--
--#if 0
--	/* this code is only here as a curiousity...   mainly, where the 
--	   fuck did SONIC_BUS_SCALE come from, and what was it supposed
--	   to do?  the normal allocation works great for 32 bit stuffs..  */
-+	}
- 
- 	/* Now set up the pointers to point to the appropriate places */
--	lp->cda = lp->sonic_desc;
--	lp->tda = lp->cda + (SIZEOF_SONIC_CDA * SONIC_BUS_SCALE(lp->dma_bitmode));
-+	lp->cda = lp->descriptors;
-+	lp->tda = lp->cda + (SIZEOF_SONIC_CDA
-+	                     * SONIC_BUS_SCALE(lp->dma_bitmode));
- 	lp->rda = lp->tda + (SIZEOF_SONIC_TD * SONIC_NUM_TDS
--			     * SONIC_BUS_SCALE(lp->dma_bitmode));
-+	                     * SONIC_BUS_SCALE(lp->dma_bitmode));
- 	lp->rra = lp->rda + (SIZEOF_SONIC_RD * SONIC_NUM_RDS
--			     * SONIC_BUS_SCALE(lp->dma_bitmode));
-+	                     * SONIC_BUS_SCALE(lp->dma_bitmode));
- 
--#endif
--	
--	memset(lp, 0, sizeof(struct sonic_local));
--
--	lp->cda_laddr = (unsigned int)&(lp->cda);
--	lp->tda_laddr = (unsigned int)lp->tda;
--	lp->rra_laddr = (unsigned int)lp->rra;
--	lp->rda_laddr = (unsigned int)lp->rda;
--
--	/* FIXME, maybe we should use skbs */
--	if ((lp->rba = (char *)
--	     kmalloc(SONIC_NUM_RRS * SONIC_RBSIZE, GFP_KERNEL | GFP_DMA)) == NULL) {
--		printk(KERN_ERR "%s: couldn't allocate receive buffers\n", dev->name);
--		dev->priv = NULL;
--		kfree(lp);
--		return -ENOMEM;
--	}
--
--	lp->rba_laddr = (unsigned int)lp->rba;
--
--	{
--		int rs, ds;
--
--		/* almost always 12*4096, but let's not take chances */
--		rs = ((SONIC_NUM_RRS * SONIC_RBSIZE + 4095) / 4096) * 4096;
--		/* almost always under a page, but let's not take chances */
--		ds = ((sizeof(struct sonic_local) + 4095) / 4096) * 4096;
--		kernel_set_cachemode(lp->rba, rs, IOMAP_NOCACHE_SER);
--		kernel_set_cachemode(lp, ds, IOMAP_NOCACHE_SER);
--	}
--	
--#if 0
--	flush_cache_all();
--#endif
-+	lp->cda_laddr = lp->descriptors_laddr;
-+	lp->tda_laddr = lp->cda_laddr + (SIZEOF_SONIC_CDA
-+	                     * SONIC_BUS_SCALE(lp->dma_bitmode));
-+	lp->rda_laddr = lp->tda_laddr + (SIZEOF_SONIC_TD * SONIC_NUM_TDS
-+	                     * SONIC_BUS_SCALE(lp->dma_bitmode));
-+	lp->rra_laddr = lp->rda_laddr + (SIZEOF_SONIC_RD * SONIC_NUM_RDS
-+	                     * SONIC_BUS_SCALE(lp->dma_bitmode));
- 
- 	dev->open = sonic_open;
- 	dev->stop = sonic_close;
- 	dev->hard_start_xmit = sonic_send_packet;
- 	dev->get_stats = sonic_get_stats;
- 	dev->set_multicast_list = &sonic_multicast_list;
-+	dev->tx_timeout = sonic_tx_timeout;
-+	dev->watchdog_timeo = TX_TIMEOUT;
- 
- 	/*
- 	 * clear tally counter
- 	 */
--	sonic_write(dev, SONIC_CRCT, 0xffff);
--	sonic_write(dev, SONIC_FAET, 0xffff);
--	sonic_write(dev, SONIC_MPT, 0xffff);
-+	SONIC_WRITE(SONIC_CRCT, 0xffff);
-+	SONIC_WRITE(SONIC_FAET, 0xffff);
-+	SONIC_WRITE(SONIC_MPT, 0xffff);
- 
- 	return 0;
- }
- 
- int __init mac_onboard_sonic_ethernet_addr(struct net_device* dev)
- {
-+	struct sonic_local *lp = netdev_priv(dev);
- 	const int prom_addr = ONBOARD_SONIC_PROM_BASE;
- 	int i;
- 
-@@ -270,6 +197,7 @@
- 	   why this is so. */
- 	if (memcmp(dev->dev_addr, "\x08\x00\x07", 3) &&
- 	    memcmp(dev->dev_addr, "\x00\xA0\x40", 3) &&
-+	    memcmp(dev->dev_addr, "\x00\x80\x19", 3) &&
- 	    memcmp(dev->dev_addr, "\x00\x05\x02", 3))
- 		bit_reverse_addr(dev->dev_addr);
- 	else
-@@ -281,22 +209,23 @@
-            the card... */
- 	if (memcmp(dev->dev_addr, "\x08\x00\x07", 3) &&
- 	    memcmp(dev->dev_addr, "\x00\xA0\x40", 3) &&
-+	    memcmp(dev->dev_addr, "\x00\x80\x19", 3) &&
- 	    memcmp(dev->dev_addr, "\x00\x05\x02", 3))
- 	{
- 		unsigned short val;
- 
- 		printk(KERN_INFO "macsonic: PROM seems to be wrong, trying CAM entry 15\n");
- 		
--		sonic_write(dev, SONIC_CMD, SONIC_CR_RST);
--		sonic_write(dev, SONIC_CEP, 15);
-+		SONIC_WRITE(SONIC_CMD, SONIC_CR_RST);
-+		SONIC_WRITE(SONIC_CEP, 15);
- 
--		val = sonic_read(dev, SONIC_CAP2);
-+		val = SONIC_READ(SONIC_CAP2);
- 		dev->dev_addr[5] = val >> 8;
- 		dev->dev_addr[4] = val & 0xff;
--		val = sonic_read(dev, SONIC_CAP1);
-+		val = SONIC_READ(SONIC_CAP1);
- 		dev->dev_addr[3] = val >> 8;
- 		dev->dev_addr[2] = val & 0xff;
--		val = sonic_read(dev, SONIC_CAP0);
-+		val = SONIC_READ(SONIC_CAP0);
- 		dev->dev_addr[1] = val >> 8;
- 		dev->dev_addr[0] = val & 0xff;
- 		
-@@ -311,6 +240,7 @@
- 
- 	if (memcmp(dev->dev_addr, "\x08\x00\x07", 3) &&
- 	    memcmp(dev->dev_addr, "\x00\xA0\x40", 3) &&
-+	    memcmp(dev->dev_addr, "\x00\x80\x19", 3) &&
- 	    memcmp(dev->dev_addr, "\x00\x05\x02", 3))
- 	{
- 		/*
-@@ -325,8 +255,9 @@
- {
- 	/* Bwahahaha */
- 	static int once_is_more_than_enough;
--	int i;
--	int dma_bitmode;
-+	struct sonic_local* lp = netdev_priv(dev);
-+	int sr;
-+	int commslot = 0;
- 	
- 	if (once_is_more_than_enough)
- 		return -ENODEV;
-@@ -335,20 +266,18 @@
- 	if (!MACH_IS_MAC)
- 		return -ENODEV;
- 
--	printk(KERN_INFO "Checking for internal Macintosh ethernet (SONIC).. ");
--
- 	if (macintosh_config->ether_type != MAC_ETHER_SONIC)
--	{
--		printk("none.\n");
- 		return -ENODEV;
--	}
--
-+	
-+	printk(KERN_INFO "Checking for internal Macintosh ethernet (SONIC).. ");
-+	
- 	/* Bogus probing, on the models which may or may not have
- 	   Ethernet (BTW, the Ethernet *is* always at the same
- 	   address, and nothing else lives there, at least if Apple's
- 	   documentation is to be believed) */
- 	if (macintosh_config->ident == MAC_MODEL_Q630 ||
- 	    macintosh_config->ident == MAC_MODEL_P588 ||
-+	    macintosh_config->ident == MAC_MODEL_P575 ||
- 	    macintosh_config->ident == MAC_MODEL_C610) {
- 		unsigned long flags;
- 		int card_present;
-@@ -361,13 +290,13 @@
- 			printk("none.\n");
- 			return -ENODEV;
- 		}
-+		commslot = 1;
- 	}
- 
- 	printk("yes\n");	
- 
--	/* Danger!  My arms are flailing wildly!  You *must* set this
--           before using sonic_read() */
--
-+	/* Danger!  My arms are flailing wildly!  You *must* set lp->reg_offset
-+	 * and dev->base_addr before using SONIC_READ() or SONIC_WRITE() */
- 	dev->base_addr = ONBOARD_SONIC_REGISTERS;
- 	if (via_alt_mapping)
- 		dev->irq = IRQ_AUTO_3;
-@@ -379,84 +308,66 @@
- 		sonic_version_printed = 1;
- 	}
- 	printk(KERN_INFO "%s: onboard / comm-slot SONIC at 0x%08lx\n",
--	       dev->name, dev->base_addr);
--
--	/* Now do a song and dance routine in an attempt to determine
--           the bus width */
-+	       lp->device->bus_id, dev->base_addr);
- 
- 	/* The PowerBook's SONIC is 16 bit always. */
- 	if (macintosh_config->ident == MAC_MODEL_PB520) {
--		reg_offset = 0;
--		dma_bitmode = 0;
--	} else if (macintosh_config->ident == MAC_MODEL_C610) {
--		reg_offset = 0;
--		dma_bitmode = 1;
--	} else {
-+		lp->reg_offset = 0;
-+		lp->dma_bitmode = SONIC_BITMODE16;
-+		sr = SONIC_READ(SONIC_SR);
-+	} else if (commslot) {
- 		/* Some of the comm-slot cards are 16 bit.  But some
--                   of them are not.  The 32-bit cards use offset 2 and
--                   pad with zeroes or sometimes ones (I think...)
--                   Therefore, if we try offset 0 and get a silicon
--                   revision of 0, we assume 16 bit. */
--		int sr;
--
--		/* Technically this is not necessary since we zeroed
--                   it above */
--		reg_offset = 0;
--		dma_bitmode = 0;
--		sr = sonic_read(dev, SONIC_SR);
--		if (sr == 0 || sr == 0xffff) {
--			reg_offset = 2;
--			/* 83932 is 0x0004, 83934 is 0x0100 or 0x0101 */
--			sr = sonic_read(dev, SONIC_SR);
--			dma_bitmode = 1;
--			
-+		   of them are not.  The 32-bit cards use offset 2 and
-+		   have known revisions, we try reading the revision
-+		   register at offset 2, if we don't get a known revision
-+		   we assume 16 bit at offset 0.  */
-+		lp->reg_offset = 2;
-+		lp->dma_bitmode = SONIC_BITMODE16;
-+
-+		sr = SONIC_READ(SONIC_SR);
-+		if (sr == 0x0004 || sr == 0x0006 || sr == 0x0100 || sr == 0x0101) 
-+			/* 83932 is 0x0004 or 0x0006, 83934 is 0x0100 or 0x0101 */
-+			lp->dma_bitmode = SONIC_BITMODE32;
-+		else {
-+			lp->dma_bitmode = SONIC_BITMODE16;
-+			lp->reg_offset = 0;
-+			sr = SONIC_READ(SONIC_SR);
- 		}
--		printk(KERN_INFO
--		       "%s: revision 0x%04x, using %d bit DMA and register offset %d\n",
--		       dev->name, sr, dma_bitmode?32:16, reg_offset);
--	}
--	
-+	} else {
-+		/* All onboard cards are at offset 2 with 32 bit DMA. */
-+		lp->reg_offset = 2;
-+		lp->dma_bitmode = SONIC_BITMODE32;
-+		sr = SONIC_READ(SONIC_SR);
-+	}
-+	printk(KERN_INFO
-+	       "%s: revision 0x%04x, using %d bit DMA and register offset %d\n",
-+	       lp->device->bus_id, sr, lp->dma_bitmode?32:16, lp->reg_offset);
-+
-+#if 0 /* This is sometimes useful to find out how MacOS configured the card. */
-+	printk(KERN_INFO "%s: DCR: 0x%04x, DCR2: 0x%04x\n", lp->device->bus_id,
-+	       SONIC_READ(SONIC_DCR) & 0xffff, SONIC_READ(SONIC_DCR2) & 0xffff);
-+#endif
- 
--	/* this carries my sincere apologies -- by the time I got to updating
--	   the driver, support for "reg_offsets" appeares nowhere in the sonic
--	   code, going back for over a year.  Fortunately, my Mac does't seem
--	   to use whatever this was.
--
--	   If you know how this is supposed to be implemented, either fix it,
--	   or contact me (sammy at oh.verio.com) to explain what it is. --Sam */
--	   
--	if(reg_offset) {
--		printk("%s: register offset unsupported.  please fix this if you know what it is.\n", dev->name);
--		return -ENODEV;
--	}
--	
- 	/* Software reset, then initialize control registers. */
--	sonic_write(dev, SONIC_CMD, SONIC_CR_RST);
--	sonic_write(dev, SONIC_DCR, SONIC_DCR_BMS |
--		    SONIC_DCR_RFT1 | SONIC_DCR_TFT0 | SONIC_DCR_EXBUS |
--		    (dma_bitmode ? SONIC_DCR_DW : 0));
-+	SONIC_WRITE(SONIC_CMD, SONIC_CR_RST);
-+
-+	SONIC_WRITE(SONIC_DCR, SONIC_DCR_EXBUS | SONIC_DCR_BMS |
-+	                       SONIC_DCR_RFT1  | SONIC_DCR_TFT0 |
-+	                       (lp->dma_bitmode ? SONIC_DCR_DW : 0));
- 
- 	/* This *must* be written back to in order to restore the
--           extended programmable output bits */
--	sonic_write(dev, SONIC_DCR2, 0);
-+	 * extended programmable output bits, as it may not have been
-+	 * initialised since the hardware reset. */
-+	SONIC_WRITE(SONIC_DCR2, 0);
- 
- 	/* Clear *and* disable interrupts to be on the safe side */
--	sonic_write(dev, SONIC_ISR,0x7fff);
--	sonic_write(dev, SONIC_IMR,0);
-+	SONIC_WRITE(SONIC_IMR, 0);
-+	SONIC_WRITE(SONIC_ISR, 0x7fff);
- 
- 	/* Now look for the MAC address. */
- 	if (mac_onboard_sonic_ethernet_addr(dev) != 0)
- 		return -ENODEV;
- 
--	printk(KERN_INFO "MAC ");
--	for (i = 0; i < 6; i++) {
--		printk("%2.2x", dev->dev_addr[i]);
--		if (i < 5)
--			printk(":");
--	}
--
--	printk(" IRQ %d\n", dev->irq);
--
- 	/* Shared init code */
- 	return macsonic_init(dev);
- }
-@@ -468,8 +379,10 @@
- 	int i;
- 	for(i = 0; i < 6; i++)
- 		dev->dev_addr[i] = SONIC_READ_PROM(i);
--	/* For now we are going to assume that they're all bit-reversed */
--	bit_reverse_addr(dev->dev_addr);
-+
-+	/* Some of the addresses are bit-reversed */
-+	if (id != MACSONIC_DAYNA)
-+		bit_reverse_addr(dev->dev_addr);
- 
- 	return 0;
- }
-@@ -487,6 +400,15 @@
- 		else
- 			return MACSONIC_APPLE;
- 	}
-+	
-+	if (ndev->dr_hw == NUBUS_DRHW_SMC9194 &&
-+	    ndev->dr_sw == NUBUS_DRSW_DAYNA)
-+		return MACSONIC_DAYNA;
-+	
-+	if (ndev->dr_hw == NUBUS_DRHW_SONIC_LC &&
-+	    ndev->dr_sw == 0) { /* huh? */
-+		return MACSONIC_APPLE16;
-+	}
- 	return -1;
- }
- 
-@@ -494,12 +416,12 @@
- {
- 	static int slots;
- 	struct nubus_dev* ndev = NULL;
-+	struct sonic_local* lp = netdev_priv(dev);
- 	unsigned long base_addr, prom_addr;
- 	u16 sonic_dcr;
--	int id;
--	int i;
--	int dma_bitmode;
--
-+	int id = -1;
-+	int reg_offset, dma_bitmode;
-+	
- 	/* Find the first SONIC that hasn't been initialized already */
- 	while ((ndev = nubus_find_type(NUBUS_CAT_NETWORK,
- 				       NUBUS_TYPE_ETHERNET, ndev)) != NULL)
-@@ -521,51 +443,52 @@
- 	case MACSONIC_DUODOCK:
- 		base_addr = ndev->board->slot_addr + DUODOCK_SONIC_REGISTERS;
- 		prom_addr = ndev->board->slot_addr + DUODOCK_SONIC_PROM_BASE;
--		sonic_dcr = SONIC_DCR_EXBUS | SONIC_DCR_RFT0 | SONIC_DCR_RFT1
--			| SONIC_DCR_TFT0;
-+		sonic_dcr = SONIC_DCR_EXBUS | SONIC_DCR_RFT0 | SONIC_DCR_RFT1 |
-+		            SONIC_DCR_TFT0;
- 		reg_offset = 2;
--		dma_bitmode = 1;
-+		dma_bitmode = SONIC_BITMODE32;
- 		break;
- 	case MACSONIC_APPLE:
- 		base_addr = ndev->board->slot_addr + APPLE_SONIC_REGISTERS;
- 		prom_addr = ndev->board->slot_addr + APPLE_SONIC_PROM_BASE;
- 		sonic_dcr = SONIC_DCR_BMS | SONIC_DCR_RFT1 | SONIC_DCR_TFT0;
- 		reg_offset = 0;
--		dma_bitmode = 1;
-+		dma_bitmode = SONIC_BITMODE32;
- 		break;
- 	case MACSONIC_APPLE16:
- 		base_addr = ndev->board->slot_addr + APPLE_SONIC_REGISTERS;
- 		prom_addr = ndev->board->slot_addr + APPLE_SONIC_PROM_BASE;
--		sonic_dcr = SONIC_DCR_EXBUS
-- 			| SONIC_DCR_RFT1 | SONIC_DCR_TFT0
--			| SONIC_DCR_PO1 | SONIC_DCR_BMS; 
-+		sonic_dcr = SONIC_DCR_EXBUS | SONIC_DCR_RFT1 | SONIC_DCR_TFT0 |
-+		            SONIC_DCR_PO1 | SONIC_DCR_BMS; 
- 		reg_offset = 0;
--		dma_bitmode = 0;
-+		dma_bitmode = SONIC_BITMODE16;
- 		break;
- 	case MACSONIC_DAYNALINK:
- 		base_addr = ndev->board->slot_addr + APPLE_SONIC_REGISTERS;
- 		prom_addr = ndev->board->slot_addr + DAYNALINK_PROM_BASE;
--		sonic_dcr = SONIC_DCR_RFT1 | SONIC_DCR_TFT0
--			| SONIC_DCR_PO1 | SONIC_DCR_BMS; 
-+		sonic_dcr = SONIC_DCR_RFT1 | SONIC_DCR_TFT0 |
-+		            SONIC_DCR_PO1 | SONIC_DCR_BMS; 
- 		reg_offset = 0;
--		dma_bitmode = 0;
-+		dma_bitmode = SONIC_BITMODE16;
- 		break;
- 	case MACSONIC_DAYNA:
- 		base_addr = ndev->board->slot_addr + DAYNA_SONIC_REGISTERS;
- 		prom_addr = ndev->board->slot_addr + DAYNA_SONIC_MAC_ADDR;
--		sonic_dcr = SONIC_DCR_BMS
--			| SONIC_DCR_RFT1 | SONIC_DCR_TFT0 | SONIC_DCR_PO1;
-+		sonic_dcr = SONIC_DCR_BMS |
-+		            SONIC_DCR_RFT1 | SONIC_DCR_TFT0 | SONIC_DCR_PO1;
- 		reg_offset = 0;
--		dma_bitmode = 0;
-+		dma_bitmode = SONIC_BITMODE16;
- 		break;
- 	default:
- 		printk(KERN_ERR "macsonic: WTF, id is %d\n", id);
- 		return -ENODEV;
- 	}
- 
--	/* Danger!  My arms are flailing wildly!  You *must* set this
--           before using sonic_read() */
-+	/* Danger!  My arms are flailing wildly!  You *must* set lp->reg_offset
-+	 * and dev->base_addr before using SONIC_READ() or SONIC_WRITE() */
- 	dev->base_addr = base_addr;
-+	lp->reg_offset = reg_offset;
-+	lp->dma_bitmode = dma_bitmode;
- 	dev->irq = SLOT2IRQ(ndev->board->slot);
- 
- 	if (!sonic_version_printed) {
-@@ -573,29 +496,66 @@
- 		sonic_version_printed = 1;
- 	}
- 	printk(KERN_INFO "%s: %s in slot %X\n",
--	       dev->name, ndev->board->name, ndev->board->slot);
-+	       lp->device->bus_id, ndev->board->name, ndev->board->slot);
- 	printk(KERN_INFO "%s: revision 0x%04x, using %d bit DMA and register offset %d\n",
--	       dev->name, sonic_read(dev, SONIC_SR), dma_bitmode?32:16, reg_offset);
-+	       lp->device->bus_id, SONIC_READ(SONIC_SR), dma_bitmode?32:16, reg_offset);
- 
--	if(reg_offset) {
--		printk("%s: register offset unsupported.  please fix this if you know what it is.\n", dev->name);
--		return -ENODEV;
--	}
-+#if 0 /* This is sometimes useful to find out how MacOS configured the card. */
-+	printk(KERN_INFO "%s: DCR: 0x%04x, DCR2: 0x%04x\n", lp->device->bus_id,
-+	       SONIC_READ(SONIC_DCR) & 0xffff, SONIC_READ(SONIC_DCR2) & 0xffff);
-+#endif
- 
- 	/* Software reset, then initialize control registers. */
--	sonic_write(dev, SONIC_CMD, SONIC_CR_RST);
--	sonic_write(dev, SONIC_DCR, sonic_dcr
--		    | (dma_bitmode ? SONIC_DCR_DW : 0));
-+	SONIC_WRITE(SONIC_CMD, SONIC_CR_RST);
-+	SONIC_WRITE(SONIC_DCR, sonic_dcr | (dma_bitmode ? SONIC_DCR_DW : 0));
-+	/* This *must* be written back to in order to restore the
-+	 * extended programmable output bits, since it may not have been
-+	 * initialised since the hardware reset. */
-+	SONIC_WRITE(SONIC_DCR2, 0);
- 
- 	/* Clear *and* disable interrupts to be on the safe side */
--	sonic_write(dev, SONIC_ISR,0x7fff);
--	sonic_write(dev, SONIC_IMR,0);
-+	SONIC_WRITE(SONIC_IMR, 0);
-+	SONIC_WRITE(SONIC_ISR, 0x7fff);
- 
- 	/* Now look for the MAC address. */
- 	if (mac_nubus_sonic_ethernet_addr(dev, prom_addr, id) != 0)
- 		return -ENODEV;
- 
--	printk(KERN_INFO "MAC ");
-+	/* Shared init code */
-+	return macsonic_init(dev);
-+}
-+
-+static int __init mac_sonic_probe(struct device *device)
-+{
-+	struct net_device *dev;
-+	struct sonic_local *lp;
-+	int err;
-+	int i;
-+
-+	dev = alloc_etherdev(sizeof(struct sonic_local));
-+	if (!dev)
-+		return -ENOMEM;
-+
-+	lp = netdev_priv(dev);
-+	lp->device = device;
-+	SET_NETDEV_DEV(dev, device);
-+ 	SET_MODULE_OWNER(dev);
-+
-+	/* This will catch fatal stuff like -ENOMEM as well as success */
-+	err = mac_onboard_sonic_probe(dev);
-+	if (err == 0)
-+		goto found;
-+	if (err != -ENODEV)
-+		goto out;
-+	err = mac_nubus_sonic_probe(dev);
-+	if (err)
-+		goto out;
-+found:
-+	err = register_netdev(dev);
-+	if (err)
-+		goto out;
-+
-+	printk("%s: MAC ", dev->name);
- 	for (i = 0; i < 6; i++) {
- 		printk("%2.2x", dev->dev_addr[i]);
- 		if (i < 5)
-@@ -603,55 +563,95 @@
- 	}
- 	printk(" IRQ %d\n", dev->irq);
- 
--	/* Shared init code */
--	return macsonic_init(dev);
--}
-+	return 0;
- 
--#ifdef MODULE
--static struct net_device *dev_macsonic;
-+out:
-+	free_netdev(dev);
-+
-+	return err;
-+}
- 
--MODULE_PARM(sonic_debug, "i");
-+MODULE_DESCRIPTION("Macintosh SONIC ethernet driver");
-+module_param(sonic_debug, int, 0);
- MODULE_PARM_DESC(sonic_debug, "macsonic debug level (1-4)");
- 
--int
--init_module(void)
-+#define SONIC_IRQ_FLAG IRQ_FLG_FAST
-+
-+#include "sonic.c"
-+
-+static int __devexit mac_sonic_device_remove (struct device *device)
- {
--        dev_macsonic = macsonic_probe(-1);
--	if (IS_ERR(dev_macsonic)) {
--                printk(KERN_WARNING "macsonic.c: No card found\n");
--		return PTR_ERR(dev_macsonic);
--	}
-+	struct net_device *dev = device->driver_data;
-+	struct sonic_local* lp = netdev_priv(dev);
-+
-+	unregister_netdev (dev);
-+	dma_free_coherent(lp->device, SIZEOF_SONIC_DESC * SONIC_BUS_SCALE(lp->dma_bitmode),
-+	                  lp->descriptors, lp->descriptors_laddr);
-+	free_netdev (dev);
-+
- 	return 0;
- }
- 
--void
--cleanup_module(void)
-+static struct device_driver mac_sonic_driver = {
-+	.name   = mac_sonic_string,
-+	.bus    = &platform_bus_type,
-+	.probe  = mac_sonic_probe,
-+	.remove = __devexit_p(mac_sonic_device_remove),
-+};
-+
-+static void mac_sonic_platform_release(struct device *device)
- {
--	unregister_netdev(dev_macsonic);
--	kfree(dev_macsonic->priv);
--	free_netdev(dev_macsonic);
-+	struct platform_device *pldev;
-+
-+	/* free device */
-+	pldev = to_platform_device (device);
-+	kfree (pldev);
- }
--#endif /* MODULE */
- 
-+static int __init mac_sonic_init_module(void)
-+{
-+	struct platform_device *pldev;
-+	int err;
-+
-+	if ((err = driver_register(&mac_sonic_driver))) {
-+		printk(KERN_ERR "Driver registration failed\n");
-+		return err;
-+	}
- 
--#define vdma_alloc(foo, bar) ((u32)foo)
--#define vdma_free(baz)
--#define sonic_chiptomem(bat) (bat)
--#define PHYSADDR(quux) (quux)
--#define CPHYSADDR(quux) (quux)
-+	mac_sonic_device = NULL;
- 
--#define sonic_request_irq       request_irq
--#define sonic_free_irq          free_irq
-+	if (!(pldev = kmalloc (sizeof (*pldev), GFP_KERNEL))) {
-+		goto out_unregister;
-+	}
- 
--#include "sonic.c"
-+	memset(pldev, 0, sizeof (*pldev));
-+	pldev->name		= mac_sonic_string;
-+	pldev->id		= 0;
-+	pldev->dev.release	= mac_sonic_platform_release;
-+	mac_sonic_device	= pldev;
- 
--/*
-- * Local variables:
-- *  compile-command: "m68k-linux-gcc -D__KERNEL__ -I../../include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -ffixed-a2 -DMODULE -DMODVERSIONS -include ../../include/linux/modversions.h   -c -o macsonic.o macsonic.c"
-- *  version-control: t
-- *  kept-new-versions: 5
-- *  c-indent-level: 8
-- *  tab-width: 8
-- * End:
-- *
-- */
-+	if (platform_device_register (pldev)) {
-+		kfree(pldev);
-+		mac_sonic_device = NULL;
-+	}
-+
-+	return 0;
-+
-+out_unregister:
-+	platform_device_unregister(pldev);
-+
-+	return -ENOMEM;
-+}
-+
-+static void __exit mac_sonic_cleanup_module(void)
-+{
-+	driver_unregister(&mac_sonic_driver);
-+
-+	if (mac_sonic_device) {
-+		platform_device_unregister(mac_sonic_device);
-+		mac_sonic_device = NULL;
-+	}
-+}
-+
-+module_init(mac_sonic_init_module);
-+module_exit(mac_sonic_cleanup_module);
---- orig/drivers/net/sonic.c	Sun Jul 10 22:11:34 2005
-+++ linux/drivers/net/sonic.c	Sun Jul 10 22:26:14 2005
-@@ -1,6 +1,11 @@
- /*
-  * sonic.c
-  *
-+ * (C) 2005 Finn Thain
-+ *
-+ * Converted to DMA API, added zero-copy buffer handling, and
-+ * (from the mac68k project) introduced dhd's support for 16-bit cards.
-+ *
-  * (C) 1996,1998 by Thomas Bogendoerfer (tsbogend at alpha.franken.de)
-  * 
-  * This driver is based on work from Andreas Busse, but most of
-@@ -9,12 +14,23 @@
-  * (C) 1995 by Andreas Busse (andy at waldorf-gmbh.de)
-  *
-  *    Core code included by system sonic drivers
-+ *
-+ * And... partially rewritten again by David Huggins-Daines in order
-+ * to cope with screwed up Macintosh NICs that may or may not use
-+ * 16-bit DMA.
-+ *
-+ * (C) 1999 David Huggins-Daines <dhd at debian.org>
-+ *
-  */
- 
- /*
-  * Sources: Olivetti M700-10 Risc Personal Computer hardware handbook,
-  * National Semiconductors data sheet for the DP83932B Sonic Ethernet
-  * controller, and the files "8390.c" and "skeleton.c" in this directory.
-+ *
-+ * Additional sources: Nat Semi data sheet for the DP83932C and Nat Semi
-+ * Application Note AN-746, the files "lance.c" and "ibmlana.c". See also
-+ * the NetBSD file "sys/arch/mac68k/dev/if_sn.c".
-  */
- 
- 
-@@ -28,6 +44,9 @@
-  */
- static int sonic_open(struct net_device *dev)
- {
-+	struct sonic_local *lp = netdev_priv(dev);
-+	int i;
-+	
- 	if (sonic_debug > 2)
- 		printk("sonic_open: initializing sonic driver.\n");
- 
-@@ -40,14 +59,59 @@
-  * This means that during execution of the handler interrupt are disabled
-  * covering another bug otherwise corrupting data.  This doesn't mean
-  * this glue works ok under all situations.
-+ *
-+ * Note (dhd): this also appears to prevent lockups on the Macintrash
-+ * when more than one Ethernet card is installed (knock on wood)
-+ *
-+ * Note (fthain): whether the above is still true is anyones guess. Certainly
-+ * the buffer handling algorithms will not tolerate re-entrance without some
-+ * mutual exclusion added. Anyway, the memcpy has now been eliminated from the
-+ * rx code to make this a faster "fast interrupt".
-  */
--//    if (sonic_request_irq(dev->irq, &sonic_interrupt, 0, "sonic", dev)) {
--	if (sonic_request_irq(dev->irq, &sonic_interrupt, SA_INTERRUPT,
--	                      "sonic", dev)) {
--		printk("\n%s: unable to get IRQ %d .\n", dev->name, dev->irq);
-+	if (request_irq(dev->irq, &sonic_interrupt, SONIC_IRQ_FLAG, "sonic", dev)) {
-+		printk(KERN_ERR "\n%s: unable to get IRQ %d .\n", dev->name, dev->irq);
- 		return -EAGAIN;
- 	}
- 
-+	for (i = 0; i < SONIC_NUM_RRS; i++) {
-+		struct sk_buff *skb = dev_alloc_skb(SONIC_RBSIZE + 2);
-+		if (skb == NULL) {
-+			while(i > 0) { /* free any that were allocated successfully */
-+				i--;
-+				dev_kfree_skb(lp->rx_skb[i]);
-+				lp->rx_skb[i] = NULL;
-+			}
-+			printk(KERN_ERR "%s: couldn't allocate receive buffers\n",
-+			       dev->name);
-+			return -ENOMEM;
-+		}
-+		skb->dev = dev;
-+		/* align IP header unless DMA requires otherwise */
-+		if (SONIC_BUS_SCALE(lp->dma_bitmode) == 2)
-+			skb_reserve(skb, 2);
-+		lp->rx_skb[i] = skb;
-+	}
-+
-+	for (i = 0; i < SONIC_NUM_RRS; i++) {
-+		dma_addr_t laddr = dma_map_single(lp->device, skb_put(lp->rx_skb[i], SONIC_RBSIZE),
-+		                                  SONIC_RBSIZE, DMA_FROM_DEVICE);
-+		if (!laddr) {
-+			while(i > 0) { /* free any that were mapped successfully */
-+				i--;
-+				dma_unmap_single(lp->device, lp->rx_laddr[i], SONIC_RBSIZE, DMA_FROM_DEVICE);
-+				lp->rx_laddr[i] = (dma_addr_t)0;
-+			}
-+			for (i = 0; i < SONIC_NUM_RRS; i++) {
-+				dev_kfree_skb(lp->rx_skb[i]);
-+				lp->rx_skb[i] = NULL;
-+			}
-+			printk(KERN_ERR "%s: couldn't map rx DMA buffers\n",
-+			       dev->name);
-+			return -ENOMEM;
-+		}
-+		lp->rx_laddr[i] = laddr;
-+	}
-+
- 	/*
- 	 * Initialize the SONIC
- 	 */
-@@ -67,7 +131,8 @@
-  */
- static int sonic_close(struct net_device *dev)
- {
--	unsigned int base_addr = dev->base_addr;
-+	struct sonic_local *lp = netdev_priv(dev);
-+	int i;
- 
- 	if (sonic_debug > 2)
- 		printk("sonic_close\n");
-@@ -77,20 +142,56 @@
- 	/*
- 	 * stop the SONIC, disable interrupts
- 	 */
--	SONIC_WRITE(SONIC_ISR, 0x7fff);
- 	SONIC_WRITE(SONIC_IMR, 0);
-+	SONIC_WRITE(SONIC_ISR, 0x7fff);
- 	SONIC_WRITE(SONIC_CMD, SONIC_CR_RST);
- 
--	sonic_free_irq(dev->irq, dev);	/* release the IRQ */
-+	/* unmap and free skbs that haven't been transmitted */
-+	for (i = 0; i < SONIC_NUM_TDS; i++) {
-+		if(lp->tx_laddr[i]) {
-+			dma_unmap_single(lp->device, lp->tx_laddr[i], lp->tx_len[i], DMA_TO_DEVICE);
-+			lp->tx_laddr[i] = (dma_addr_t)0;
-+		}
-+		if(lp->tx_skb[i]) {
-+			dev_kfree_skb(lp->tx_skb[i]);
-+			lp->tx_skb[i] = NULL;
-+		}
-+	}
-+
-+	/* unmap and free the receive buffers */
-+	for (i = 0; i < SONIC_NUM_RRS; i++) {
-+		if(lp->rx_laddr[i]) {
-+			dma_unmap_single(lp->device, lp->rx_laddr[i], SONIC_RBSIZE, DMA_FROM_DEVICE);
-+			lp->rx_laddr[i] = (dma_addr_t)0;
-+		}
-+		if(lp->rx_skb[i]) {
-+			dev_kfree_skb(lp->rx_skb[i]);
-+			lp->rx_skb[i] = NULL;
-+		}
-+	}
-+
-+	free_irq(dev->irq, dev);	/* release the IRQ */
- 
- 	return 0;
- }
- 
- static void sonic_tx_timeout(struct net_device *dev)
- {
--	struct sonic_local *lp = (struct sonic_local *) dev->priv;
--	printk("%s: transmit timed out.\n", dev->name);
--
-+	struct sonic_local *lp = netdev_priv(dev);
-+	int i;
-+	/* Stop the interrupts for this */
-+	SONIC_WRITE(SONIC_IMR, 0);
-+	/* We could resend the original skbs. Easier to re-initialise. */
-+	for (i = 0; i < SONIC_NUM_TDS; i++) {
-+		if(lp->tx_laddr[i]) {
-+			dma_unmap_single(lp->device, lp->tx_laddr[i], lp->tx_len[i], DMA_TO_DEVICE);
-+			lp->tx_laddr[i] = (dma_addr_t)0;
-+		}
-+		if(lp->tx_skb[i]) {
-+			dev_kfree_skb(lp->tx_skb[i]);
-+			lp->tx_skb[i] = NULL;
-+		}
-+	}
- 	/* Try to restart the adaptor. */
- 	sonic_init(dev);
- 	lp->stats.tx_errors++;
-@@ -100,60 +201,92 @@
- 
- /*
-  * transmit packet
-+ *
-+ * Appends new TD during transmission thus avoiding any TX interrupts
-+ * until we run out of TDs.
-+ * This routine interacts closely with the ISR in that it may,
-+ *   set tx_skb[i]
-+ *   reset the status flags of the new TD
-+ *   set and reset EOL flags
-+ *   stop the tx queue
-+ * The ISR interacts with this routine in various ways. It may,
-+ *   reset tx_skb[i]
-+ *   test the EOL and status flags of the TDs
-+ *   wake the tx queue
-+ * Concurrently with all of this, the SONIC is potentially writing to
-+ * the status flags of the TDs.
-+ * Until some mutual exclusion is added, this code will not work with SMP. However,
-+ * MIPS Jazz machines and m68k Macs were all uni-processor machines.
-  */
-+
- static int sonic_send_packet(struct sk_buff *skb, struct net_device *dev)
- {
--	struct sonic_local *lp = (struct sonic_local *) dev->priv;
--	unsigned int base_addr = dev->base_addr;
--	unsigned int laddr;
--	int entry, length;
--
--	netif_stop_queue(dev);
-+	struct sonic_local *lp = netdev_priv(dev);
-+	dma_addr_t laddr;
-+	int length;
-+	int entry = lp->next_tx;
- 
- 	if (sonic_debug > 2)
- 		printk("sonic_send_packet: skb=%p, dev=%p\n", skb, dev);
- 
-+	length = skb->len;
-+	if (length < ETH_ZLEN) {
-+		skb = skb_padto(skb, ETH_ZLEN);
-+		if (skb == NULL)
-+			return 0;
-+		length = ETH_ZLEN;
-+	}
-+
- 	/*
- 	 * Map the packet data into the logical DMA address space
- 	 */
--	if ((laddr = vdma_alloc(CPHYSADDR(skb->data), skb->len)) == ~0UL) {
--		printk("%s: no VDMA entry for transmit available.\n",
--		       dev->name);
-+
-+	laddr = dma_map_single(lp->device, skb->data, length, DMA_TO_DEVICE);
-+	if (!laddr) {
-+		printk(KERN_ERR "%s: failed to map tx DMA buffer.\n", dev->name);
- 		dev_kfree_skb(skb);
--		netif_start_queue(dev);
- 		return 1;
- 	}
--	entry = lp->cur_tx & SONIC_TDS_MASK;
--	lp->tx_laddr[entry] = laddr;
--	lp->tx_skb[entry] = skb;
--
--	length = (skb->len < ETH_ZLEN) ? ETH_ZLEN : skb->len;
--	flush_cache_all();
-+   
-+	sonic_tda_put(dev, entry, SONIC_TD_STATUS, 0);       /* clear status */
-+	sonic_tda_put(dev, entry, SONIC_TD_FRAG_COUNT, 1);   /* single fragment */
-+	sonic_tda_put(dev, entry, SONIC_TD_PKTSIZE, length); /* length of packet */
-+	sonic_tda_put(dev, entry, SONIC_TD_FRAG_PTR_L, laddr & 0xffff);
-+	sonic_tda_put(dev, entry, SONIC_TD_FRAG_PTR_H, laddr >> 16);
-+	sonic_tda_put(dev, entry, SONIC_TD_FRAG_SIZE, length);
-+	sonic_tda_put(dev, entry, SONIC_TD_LINK,
-+		sonic_tda_get(dev, entry, SONIC_TD_LINK) | SONIC_EOL);
- 
- 	/*
--	 * Setup the transmit descriptor and issue the transmit command.
-+	 * Must set tx_skb[entry] only after clearing status, and
-+	 * before clearing EOL and before stopping queue
- 	 */
--	lp->tda[entry].tx_status = 0;	/* clear status */
--	lp->tda[entry].tx_frag_count = 1;	/* single fragment */
--	lp->tda[entry].tx_pktsize = length;	/* length of packet */
--	lp->tda[entry].tx_frag_ptr_l = laddr & 0xffff;
--	lp->tda[entry].tx_frag_ptr_h = laddr >> 16;
--	lp->tda[entry].tx_frag_size = length;
--	lp->cur_tx++;
--	lp->stats.tx_bytes += length;
-+	wmb();
-+	lp->tx_len[entry] = length;
-+	lp->tx_laddr[entry] = laddr;
-+	lp->tx_skb[entry] = skb;
-+
-+	wmb();
-+	sonic_tda_put(dev, lp->eol_tx, SONIC_TD_LINK,
-+				  sonic_tda_get(dev, lp->eol_tx, SONIC_TD_LINK) & ~SONIC_EOL);
-+	lp->eol_tx = entry;
-+
-+	lp->next_tx = (entry + 1) & SONIC_TDS_MASK;
-+	if (lp->tx_skb[lp->next_tx] != NULL) {
-+		/* The ring is full, the ISR has yet to process the next TD. */
-+		if (sonic_debug > 3)
-+			printk("%s: stopping queue\n", dev->name);
-+		netif_stop_queue(dev);
-+		/* after this packet, wait for ISR to free up some TDAs */
-+	} else netif_start_queue(dev);
- 
- 	if (sonic_debug > 2)
--		printk("sonic_send_packet: issueing Tx command\n");
-+		printk("sonic_send_packet: issuing Tx command\n");
- 
- 	SONIC_WRITE(SONIC_CMD, SONIC_CR_TXP);
- 
- 	dev->trans_start = jiffies;
- 
--	if (lp->cur_tx < lp->dirty_tx + SONIC_NUM_TDS)
--		netif_start_queue(dev);
--	else
--		lp->tx_full = 1;
--
- 	return 0;
- }
- 
-@@ -164,175 +297,199 @@
- static irqreturn_t sonic_interrupt(int irq, void *dev_id, struct pt_regs *regs)
- {
- 	struct net_device *dev = (struct net_device *) dev_id;
--	unsigned int base_addr = dev->base_addr;
--	struct sonic_local *lp;
-+	struct sonic_local *lp = netdev_priv(dev);
- 	int status;
- 
- 	if (dev == NULL) {
--		printk("sonic_interrupt: irq %d for unknown device.\n", irq);
-+		printk(KERN_ERR "sonic_interrupt: irq %d for unknown device.\n", irq);
- 		return IRQ_NONE;
- 	}
- 
--	lp = (struct sonic_local *) dev->priv;
--
--	status = SONIC_READ(SONIC_ISR);
--	SONIC_WRITE(SONIC_ISR, 0x7fff);	/* clear all bits */
--
--	if (sonic_debug > 2)
--		printk("sonic_interrupt: ISR=%x\n", status);
--
--	if (status & SONIC_INT_PKTRX) {
--		sonic_rx(dev);	/* got packet(s) */
--	}
--
--	if (status & SONIC_INT_TXDN) {
--		int dirty_tx = lp->dirty_tx;
-+	if (!(status = SONIC_READ(SONIC_ISR) & SONIC_IMR_DEFAULT))
-+		return IRQ_NONE;
- 
--		while (dirty_tx < lp->cur_tx) {
--			int entry = dirty_tx & SONIC_TDS_MASK;
--			int status = lp->tda[entry].tx_status;
-+	do {
-+		if (status & SONIC_INT_PKTRX) {
-+			if (sonic_debug > 2)
-+				printk("%s: packet rx\n", dev->name);
-+			sonic_rx(dev);	/* got packet(s) */
-+			SONIC_WRITE(SONIC_ISR, SONIC_INT_PKTRX); /* clear the interrupt */
-+		}
- 
--			if (sonic_debug > 3)
--				printk
--				    ("sonic_interrupt: status %d, cur_tx %d, dirty_tx %d\n",
--				     status, lp->cur_tx, lp->dirty_tx);
-+		if (status & SONIC_INT_TXDN) {
-+			int entry = lp->cur_tx;
-+			int td_status;
-+			int freed_some = 0;
-+
-+			/* At this point, cur_tx is the index of a TD that is one of:
-+			 *   unallocated/freed                          (status set   & tx_skb[entry] clear)
-+			 *   allocated and sent                         (status set   & tx_skb[entry] set  )
-+			 *   allocated and not yet sent                 (status clear & tx_skb[entry] set  )
-+			 *   still being allocated by sonic_send_packet (status clear & tx_skb[entry] clear)
-+			 */
- 
--			if (status == 0) {
--				/* It still hasn't been Txed, kick the sonic again */
--				SONIC_WRITE(SONIC_CMD, SONIC_CR_TXP);
--				break;
--			}
-+			if (sonic_debug > 2)
-+				printk("%s: tx done\n", dev->name);
- 
--			/* put back EOL and free descriptor */
--			lp->tda[entry].tx_frag_count = 0;
--			lp->tda[entry].tx_status = 0;
--
--			if (status & 0x0001)
--				lp->stats.tx_packets++;
--			else {
--				lp->stats.tx_errors++;
--				if (status & 0x0642)
--					lp->stats.tx_aborted_errors++;
--				if (status & 0x0180)
--					lp->stats.tx_carrier_errors++;
--				if (status & 0x0020)
--					lp->stats.tx_window_errors++;
--				if (status & 0x0004)
--					lp->stats.tx_fifo_errors++;
--			}
-+			while (lp->tx_skb[entry] != NULL) {
-+				if ((td_status = sonic_tda_get(dev, entry, SONIC_TD_STATUS)) == 0)
-+					break;
-+
-+				if (td_status & 0x0001) {
-+					lp->stats.tx_packets++;
-+					lp->stats.tx_bytes += sonic_tda_get(dev, entry, SONIC_TD_PKTSIZE);
-+				} else {
-+					lp->stats.tx_errors++;
-+					if (td_status & 0x0642)
-+						lp->stats.tx_aborted_errors++;
-+					if (td_status & 0x0180)
-+						lp->stats.tx_carrier_errors++;
-+					if (td_status & 0x0020)
-+						lp->stats.tx_window_errors++;
-+					if (td_status & 0x0004)
-+						lp->stats.tx_fifo_errors++;
-+				}
- 
--			/* We must free the original skb */
--			if (lp->tx_skb[entry]) {
-+				/* We must free the original skb */
- 				dev_kfree_skb_irq(lp->tx_skb[entry]);
--				lp->tx_skb[entry] = 0;
-+				lp->tx_skb[entry] = NULL;
-+				/* and unmap DMA buffer */
-+				dma_unmap_single(lp->device, lp->tx_laddr[entry], lp->tx_len[entry], DMA_TO_DEVICE);
-+				lp->tx_laddr[entry] = (dma_addr_t)0;
-+				freed_some = 1;
-+
-+				if (sonic_tda_get(dev, entry, SONIC_TD_LINK) & SONIC_EOL) {
-+					entry = (entry + 1) & SONIC_TDS_MASK;
-+					break;
-+				}
-+				entry = (entry + 1) & SONIC_TDS_MASK;
- 			}
--			/* and the VDMA address */
--			vdma_free(lp->tx_laddr[entry]);
--			dirty_tx++;
--		}
- 
--		if (lp->tx_full
--		    && dirty_tx + SONIC_NUM_TDS > lp->cur_tx + 2) {
--			/* The ring is no longer full, clear tbusy. */
--			lp->tx_full = 0;
--			netif_wake_queue(dev);
-+			if (freed_some || lp->tx_skb[entry] == NULL)
-+				netif_wake_queue(dev);  /* The ring is no longer full */
-+			lp->cur_tx = entry;
-+			SONIC_WRITE(SONIC_ISR, SONIC_INT_TXDN); /* clear the interrupt */
- 		}
- 
--		lp->dirty_tx = dirty_tx;
--	}
-+		/*
-+		 * check error conditions
-+		 */
-+		if (status & SONIC_INT_RFO) {
-+			if (sonic_debug > 1)
-+				printk("%s: rx fifo overrun\n", dev->name);
-+			lp->stats.rx_fifo_errors++;
-+			SONIC_WRITE(SONIC_ISR, SONIC_INT_RFO); /* clear the interrupt */
-+		}
-+		if (status & SONIC_INT_RDE) {
-+			if (sonic_debug > 1)
-+				printk("%s: rx descriptors exhausted\n", dev->name);
-+			lp->stats.rx_dropped++;
-+			SONIC_WRITE(SONIC_ISR, SONIC_INT_RDE); /* clear the interrupt */
-+		}
-+		if (status & SONIC_INT_RBAE) {
-+			if (sonic_debug > 1)
-+				printk("%s: rx buffer area exceeded\n", dev->name);
-+			lp->stats.rx_dropped++;
-+			SONIC_WRITE(SONIC_ISR, SONIC_INT_RBAE); /* clear the interrupt */
-+		}
- 
--	/*
--	 * check error conditions
--	 */
--	if (status & SONIC_INT_RFO) {
--		printk("%s: receive fifo underrun\n", dev->name);
--		lp->stats.rx_fifo_errors++;
--	}
--	if (status & SONIC_INT_RDE) {
--		printk("%s: receive descriptors exhausted\n", dev->name);
--		lp->stats.rx_dropped++;
--	}
--	if (status & SONIC_INT_RBE) {
--		printk("%s: receive buffer exhausted\n", dev->name);
--		lp->stats.rx_dropped++;
--	}
--	if (status & SONIC_INT_RBAE) {
--		printk("%s: receive buffer area exhausted\n", dev->name);
--		lp->stats.rx_dropped++;
--	}
-+		/* counter overruns; all counters are 16bit wide */
-+		if (status & SONIC_INT_FAE) {
-+			lp->stats.rx_frame_errors += 65536;
-+			SONIC_WRITE(SONIC_ISR, SONIC_INT_FAE); /* clear the interrupt */
-+		}
-+		if (status & SONIC_INT_CRC) {
-+			lp->stats.rx_crc_errors += 65536;
-+			SONIC_WRITE(SONIC_ISR, SONIC_INT_CRC); /* clear the interrupt */
-+		}
-+		if (status & SONIC_INT_MP) {
-+			lp->stats.rx_missed_errors += 65536;
-+			SONIC_WRITE(SONIC_ISR, SONIC_INT_MP); /* clear the interrupt */
-+		}
- 
--	/* counter overruns; all counters are 16bit wide */
--	if (status & SONIC_INT_FAE)
--		lp->stats.rx_frame_errors += 65536;
--	if (status & SONIC_INT_CRC)
--		lp->stats.rx_crc_errors += 65536;
--	if (status & SONIC_INT_MP)
--		lp->stats.rx_missed_errors += 65536;
-+		/* transmit error */
-+		if (status & SONIC_INT_TXER) {
-+			if ((SONIC_READ(SONIC_TCR) & SONIC_TCR_FU) && (sonic_debug > 2))
-+				printk(KERN_ERR "%s: tx fifo underrun\n", dev->name);
-+			SONIC_WRITE(SONIC_ISR, SONIC_INT_TXER); /* clear the interrupt */
-+		}
- 
--	/* transmit error */
--	if (status & SONIC_INT_TXER)
--		lp->stats.tx_errors++;
-+		/* bus retry */
-+		if (status & SONIC_INT_BR) {
-+			printk(KERN_ERR "%s: Bus retry occurred! Device interrupt disabled.\n",
-+				dev->name);
-+			/* ... to help debug DMA problems causing endless interrupts. */
-+			/* Bounce the eth interface to turn on the interrupt again. */
-+			SONIC_WRITE(SONIC_IMR, 0);
-+			SONIC_WRITE(SONIC_ISR, SONIC_INT_BR); /* clear the interrupt */
-+		}
- 
--	/*
--	 * clear interrupt bits and return
--	 */
--	SONIC_WRITE(SONIC_ISR, status);
-+		/* load CAM done */
-+		if (status & SONIC_INT_LCD)
-+			SONIC_WRITE(SONIC_ISR, SONIC_INT_LCD); /* clear the interrupt */
-+	} while((status = SONIC_READ(SONIC_ISR) & SONIC_IMR_DEFAULT));
- 	return IRQ_HANDLED;
- }
- 
- /*
-- * We have a good packet(s), get it/them out of the buffers.
-+ * We have a good packet(s), pass it/them up the network stack.
-  */
- static void sonic_rx(struct net_device *dev)
- {
--	unsigned int base_addr = dev->base_addr;
--	struct sonic_local *lp = (struct sonic_local *) dev->priv;
--	sonic_rd_t *rd = &lp->rda[lp->cur_rx & SONIC_RDS_MASK];
-+	struct sonic_local *lp = netdev_priv(dev);
- 	int status;
-+	int entry = lp->cur_rx;
- 
--	while (rd->in_use == 0) {
--		struct sk_buff *skb;
-+	while (sonic_rda_get(dev, entry, SONIC_RD_IN_USE) == 0) {
-+		struct sk_buff *used_skb;
-+		struct sk_buff *new_skb;
-+		dma_addr_t new_laddr;
-+		u16 bufadr_l;
-+		u16 bufadr_h;
- 		int pkt_len;
--		unsigned char *pkt_ptr;
- 
--		status = rd->rx_status;
--		if (sonic_debug > 3)
--			printk("status %x, cur_rx %d, cur_rra %x\n",
--			       status, lp->cur_rx, lp->cur_rra);
-+		status = sonic_rda_get(dev, entry, SONIC_RD_STATUS);
- 		if (status & SONIC_RCR_PRX) {
--			pkt_len = rd->rx_pktlen;
--			pkt_ptr =
--			    (char *)
--			    sonic_chiptomem((rd->rx_pktptr_h << 16) +
--					    rd->rx_pktptr_l);
--
--			if (sonic_debug > 3)
--				printk
--				    ("pktptr %p (rba %p) h:%x l:%x, bsize h:%x l:%x\n",
--				     pkt_ptr, lp->rba, rd->rx_pktptr_h,
--				     rd->rx_pktptr_l,
--				     SONIC_READ(SONIC_RBWC1),
--				     SONIC_READ(SONIC_RBWC0));
--
- 			/* Malloc up new buffer. */
--			skb = dev_alloc_skb(pkt_len + 2);
--			if (skb == NULL) {
--				printk
--				    ("%s: Memory squeeze, dropping packet.\n",
--				     dev->name);
-+			new_skb = dev_alloc_skb(SONIC_RBSIZE + 2);
-+			if (new_skb == NULL) {
-+				printk(KERN_ERR "%s: Memory squeeze, dropping packet.\n", dev->name);
- 				lp->stats.rx_dropped++;
- 				break;
- 			}
--			skb->dev = dev;
--			skb_reserve(skb, 2);	/* 16 byte align */
--			skb_put(skb, pkt_len);	/* Make room */
--			eth_copy_and_sum(skb, pkt_ptr, pkt_len, 0);
--			skb->protocol = eth_type_trans(skb, dev);
--			netif_rx(skb);	/* pass the packet to upper layers */
-+			new_skb->dev = dev;
-+			/* provide 16 byte IP header alignment unless DMA requires otherwise */
-+			if(SONIC_BUS_SCALE(lp->dma_bitmode) == 2)
-+				skb_reserve(new_skb, 2); 
-+
-+			new_laddr = dma_map_single(lp->device, skb_put(new_skb, SONIC_RBSIZE),
-+		                               SONIC_RBSIZE, DMA_FROM_DEVICE);
-+			if (!new_laddr) {
-+				dev_kfree_skb(new_skb);
-+				printk(KERN_ERR "%s: Failed to map rx buffer, dropping packet.\n", dev->name);
-+				lp->stats.rx_dropped++;
-+				break;
-+			}
-+
-+			/* now we have a new skb to replace it, pass the used one up the stack */
-+			dma_unmap_single(lp->device, lp->rx_laddr[entry], SONIC_RBSIZE, DMA_FROM_DEVICE);
-+			used_skb = lp->rx_skb[entry];
-+			pkt_len = sonic_rda_get(dev, entry, SONIC_RD_PKTLEN);
-+			skb_trim(used_skb, pkt_len);
-+			used_skb->protocol = eth_type_trans(used_skb, dev);
-+			netif_rx(used_skb);
- 			dev->last_rx = jiffies;
- 			lp->stats.rx_packets++;
- 			lp->stats.rx_bytes += pkt_len;
- 
-+			/* and insert the new skb */
-+			lp->rx_laddr[entry] = new_laddr;
-+			lp->rx_skb[entry] = new_skb;
-+
-+			bufadr_l = (unsigned long)new_laddr & 0xffff;
-+			bufadr_h = (unsigned long)new_laddr >> 16;
-+			sonic_rra_put(dev, entry, SONIC_RR_BUFADR_L, bufadr_l);
-+			sonic_rra_put(dev, entry, SONIC_RR_BUFADR_H, bufadr_h);
- 		} else {
- 			/* This should only happen, if we enable accepting broken packets. */
- 			lp->stats.rx_errors++;
-@@ -341,29 +498,35 @@
- 			if (status & SONIC_RCR_CRCR)
- 				lp->stats.rx_crc_errors++;
- 		}
--
--		rd->in_use = 1;
--		rd = &lp->rda[(++lp->cur_rx) & SONIC_RDS_MASK];
--		/* now give back the buffer to the receive buffer area */
- 		if (status & SONIC_RCR_LPKT) {
- 			/*
--			 * this was the last packet out of the current receice buffer
-+			 * this was the last packet out of the current receive buffer
- 			 * give the buffer back to the SONIC
- 			 */
--			lp->cur_rra += sizeof(sonic_rr_t);
--			if (lp->cur_rra >
--			    (lp->rra_laddr +
--			     (SONIC_NUM_RRS -
--			      1) * sizeof(sonic_rr_t))) lp->cur_rra =
--				    lp->rra_laddr;
--			SONIC_WRITE(SONIC_RWP, lp->cur_rra & 0xffff);
-+			lp->cur_rwp += SIZEOF_SONIC_RR * SONIC_BUS_SCALE(lp->dma_bitmode);
-+			if (lp->cur_rwp >= lp->rra_end) lp->cur_rwp = lp->rra_laddr & 0xffff;
-+			SONIC_WRITE(SONIC_RWP, lp->cur_rwp);
-+			if (SONIC_READ(SONIC_ISR) & SONIC_INT_RBE) {
-+				if (sonic_debug > 2)
-+					printk("%s: rx buffer exhausted\n", dev->name);
-+				SONIC_WRITE(SONIC_ISR, SONIC_INT_RBE); /* clear the flag */
-+			}
- 		} else
--			printk
--			    ("%s: rx desc without RCR_LPKT. Shouldn't happen !?\n",
-+			printk(KERN_ERR "%s: rx desc without RCR_LPKT. Shouldn't happen !?\n",
- 			     dev->name);
-+		/*
-+		 * give back the descriptor
-+		 */
-+		sonic_rda_put(dev, entry, SONIC_RD_LINK,
-+			sonic_rda_get(dev, entry, SONIC_RD_LINK) | SONIC_EOL);
-+		sonic_rda_put(dev, entry, SONIC_RD_IN_USE, 1);
-+		sonic_rda_put(dev, lp->eol_rx, SONIC_RD_LINK,
-+			sonic_rda_get(dev, lp->eol_rx, SONIC_RD_LINK) & ~SONIC_EOL);
-+		lp->eol_rx = entry;
-+		lp->cur_rx = entry = (entry + 1) & SONIC_RDS_MASK;
- 	}
- 	/*
--	 * If any worth-while packets have been received, dev_rint()
-+	 * If any worth-while packets have been received, netif_rx()
- 	 * has done a mark_bh(NET_BH) for us and will work on them
- 	 * when we get to the bottom-half routine.
- 	 */
-@@ -376,8 +539,7 @@
-  */
- static struct net_device_stats *sonic_get_stats(struct net_device *dev)
- {
--	struct sonic_local *lp = (struct sonic_local *) dev->priv;
--	unsigned int base_addr = dev->base_addr;
-+	struct sonic_local *lp = netdev_priv(dev);
- 
- 	/* read the tally counter from the SONIC and reset them */
- 	lp->stats.rx_crc_errors += SONIC_READ(SONIC_CRCT);
-@@ -396,8 +558,7 @@
-  */
- static void sonic_multicast_list(struct net_device *dev)
- {
--	struct sonic_local *lp = (struct sonic_local *) dev->priv;
--	unsigned int base_addr = dev->base_addr;
-+	struct sonic_local *lp = netdev_priv(dev);
- 	unsigned int rcr;
- 	struct dev_mc_list *dmi = dev->mc_list;
- 	unsigned char *addr;
-@@ -413,20 +574,15 @@
- 			rcr |= SONIC_RCR_AMC;
- 		} else {
- 			if (sonic_debug > 2)
--				printk
--				    ("sonic_multicast_list: mc_count %d\n",
--				     dev->mc_count);
--			lp->cda.cam_enable = 1;	/* always enable our own address */
-+				printk("sonic_multicast_list: mc_count %d\n", dev->mc_count);
-+			sonic_set_cam_enable(dev, 1);  /* always enable our own address */
- 			for (i = 1; i <= dev->mc_count; i++) {
- 				addr = dmi->dmi_addr;
- 				dmi = dmi->next;
--				lp->cda.cam_desc[i].cam_cap0 =
--				    addr[1] << 8 | addr[0];
--				lp->cda.cam_desc[i].cam_cap1 =
--				    addr[3] << 8 | addr[2];
--				lp->cda.cam_desc[i].cam_cap2 =
--				    addr[5] << 8 | addr[4];
--				lp->cda.cam_enable |= (1 << i);
-+				sonic_cda_put(dev, i, SONIC_CD_CAP0, addr[1] << 8 | addr[0]);
-+				sonic_cda_put(dev, i, SONIC_CD_CAP1, addr[3] << 8 | addr[2]);
-+				sonic_cda_put(dev, i, SONIC_CD_CAP2, addr[5] << 8 | addr[4]);
-+				sonic_set_cam_enable(dev, sonic_get_cam_enable(dev) | (1 << i));
- 			}
- 			SONIC_WRITE(SONIC_CDC, 16);
- 			/* issue Load CAM command */
-@@ -447,19 +603,16 @@
-  */
- static int sonic_init(struct net_device *dev)
- {
--	unsigned int base_addr = dev->base_addr;
- 	unsigned int cmd;
--	struct sonic_local *lp = (struct sonic_local *) dev->priv;
--	unsigned int rra_start;
--	unsigned int rra_end;
-+	struct sonic_local *lp = netdev_priv(dev);
- 	int i;
- 
- 	/*
- 	 * put the Sonic into software-reset mode and
- 	 * disable all interrupts
- 	 */
--	SONIC_WRITE(SONIC_ISR, 0x7fff);
- 	SONIC_WRITE(SONIC_IMR, 0);
-+	SONIC_WRITE(SONIC_ISR, 0x7fff);
- 	SONIC_WRITE(SONIC_CMD, SONIC_CR_RST);
- 
- 	/*
-@@ -475,34 +628,32 @@
- 	if (sonic_debug > 2)
- 		printk("sonic_init: initialize receive resource area\n");
- 
--	rra_start = lp->rra_laddr & 0xffff;
--	rra_end =
--	    (rra_start + (SONIC_NUM_RRS * sizeof(sonic_rr_t))) & 0xffff;
--
- 	for (i = 0; i < SONIC_NUM_RRS; i++) {
--		lp->rra[i].rx_bufadr_l =
--		    (lp->rba_laddr + i * SONIC_RBSIZE) & 0xffff;
--		lp->rra[i].rx_bufadr_h =
--		    (lp->rba_laddr + i * SONIC_RBSIZE) >> 16;
--		lp->rra[i].rx_bufsize_l = SONIC_RBSIZE >> 1;
--		lp->rra[i].rx_bufsize_h = 0;
-+		u16 bufadr_l = (unsigned long)lp->rx_laddr[i] & 0xffff;
-+		u16 bufadr_h = (unsigned long)lp->rx_laddr[i] >> 16;
-+		sonic_rra_put(dev, i, SONIC_RR_BUFADR_L, bufadr_l);
-+		sonic_rra_put(dev, i, SONIC_RR_BUFADR_H, bufadr_h);
-+		sonic_rra_put(dev, i, SONIC_RR_BUFSIZE_L, SONIC_RBSIZE >> 1);
-+		sonic_rra_put(dev, i, SONIC_RR_BUFSIZE_H, 0);
- 	}
- 
- 	/* initialize all RRA registers */
--	SONIC_WRITE(SONIC_RSA, rra_start);
--	SONIC_WRITE(SONIC_REA, rra_end);
--	SONIC_WRITE(SONIC_RRP, rra_start);
--	SONIC_WRITE(SONIC_RWP, rra_end);
-+	lp->rra_end = (lp->rra_laddr + SONIC_NUM_RRS * SIZEOF_SONIC_RR *
-+					SONIC_BUS_SCALE(lp->dma_bitmode)) & 0xffff;
-+	lp->cur_rwp = (lp->rra_laddr + (SONIC_NUM_RRS - 1) * SIZEOF_SONIC_RR *
-+					SONIC_BUS_SCALE(lp->dma_bitmode)) & 0xffff;
-+  
-+	SONIC_WRITE(SONIC_RSA, lp->rra_laddr & 0xffff);
-+	SONIC_WRITE(SONIC_REA, lp->rra_end);
-+	SONIC_WRITE(SONIC_RRP, lp->rra_laddr & 0xffff);
-+	SONIC_WRITE(SONIC_RWP, lp->cur_rwp);
- 	SONIC_WRITE(SONIC_URRA, lp->rra_laddr >> 16);
--	SONIC_WRITE(SONIC_EOBC, (SONIC_RBSIZE - 2) >> 1);
--
--	lp->cur_rra =
--	    lp->rra_laddr + (SONIC_NUM_RRS - 1) * sizeof(sonic_rr_t);
-+	SONIC_WRITE(SONIC_EOBC, (SONIC_RBSIZE >> 1) - (lp->dma_bitmode ? 2 : 1));
- 
- 	/* load the resource pointers */
- 	if (sonic_debug > 3)
--		printk("sonic_init: issueing RRRA command\n");
--
-+		printk("sonic_init: issuing RRRA command\n");
-+  
- 	SONIC_WRITE(SONIC_CMD, SONIC_CR_RRRA);
- 	i = 0;
- 	while (i++ < 100) {
-@@ -511,27 +662,30 @@
- 	}
- 
- 	if (sonic_debug > 2)
--		printk("sonic_init: status=%x\n", SONIC_READ(SONIC_CMD));
--
-+		printk("sonic_init: status=%x i=%d\n", SONIC_READ(SONIC_CMD), i);
-+    
- 	/*
- 	 * Initialize the receive descriptors so that they
- 	 * become a circular linked list, ie. let the last
- 	 * descriptor point to the first again.
- 	 */
- 	if (sonic_debug > 2)
--		printk("sonic_init: initialize receive descriptors\n");
--	for (i = 0; i < SONIC_NUM_RDS; i++) {
--		lp->rda[i].rx_status = 0;
--		lp->rda[i].rx_pktlen = 0;
--		lp->rda[i].rx_pktptr_l = 0;
--		lp->rda[i].rx_pktptr_h = 0;
--		lp->rda[i].rx_seqno = 0;
--		lp->rda[i].in_use = 1;
--		lp->rda[i].link =
--		    lp->rda_laddr + (i + 1) * sizeof(sonic_rd_t);
-+		printk("sonic_init: initialize receive descriptors\n");      
-+	for (i=0; i<SONIC_NUM_RDS; i++) {
-+		sonic_rda_put(dev, i, SONIC_RD_STATUS, 0);
-+		sonic_rda_put(dev, i, SONIC_RD_PKTLEN, 0);
-+		sonic_rda_put(dev, i, SONIC_RD_PKTPTR_L, 0);
-+		sonic_rda_put(dev, i, SONIC_RD_PKTPTR_H, 0);
-+		sonic_rda_put(dev, i, SONIC_RD_SEQNO, 0);
-+		sonic_rda_put(dev, i, SONIC_RD_IN_USE, 1);
-+		sonic_rda_put(dev, i, SONIC_RD_LINK,
-+			lp->rda_laddr +
-+			((i+1) * SIZEOF_SONIC_RD * SONIC_BUS_SCALE(lp->dma_bitmode)));
- 	}
- 	/* fix last descriptor */
--	lp->rda[SONIC_NUM_RDS - 1].link = lp->rda_laddr;
-+	sonic_rda_put(dev, SONIC_NUM_RDS - 1, SONIC_RD_LINK,
-+		(lp->rda_laddr & 0xffff) | SONIC_EOL);
-+	lp->eol_rx = SONIC_NUM_RDS - 1;
- 	lp->cur_rx = 0;
- 	SONIC_WRITE(SONIC_URDA, lp->rda_laddr >> 16);
- 	SONIC_WRITE(SONIC_CRDA, lp->rda_laddr & 0xffff);
-@@ -542,34 +696,34 @@
- 	if (sonic_debug > 2)
- 		printk("sonic_init: initialize transmit descriptors\n");
- 	for (i = 0; i < SONIC_NUM_TDS; i++) {
--		lp->tda[i].tx_status = 0;
--		lp->tda[i].tx_config = 0;
--		lp->tda[i].tx_pktsize = 0;
--		lp->tda[i].tx_frag_count = 0;
--		lp->tda[i].link =
--		    (lp->tda_laddr +
--		     (i + 1) * sizeof(sonic_td_t)) | SONIC_END_OF_LINKS;
-+		sonic_tda_put(dev, i, SONIC_TD_STATUS, 0);
-+		sonic_tda_put(dev, i, SONIC_TD_CONFIG, 0);
-+		sonic_tda_put(dev, i, SONIC_TD_PKTSIZE, 0);
-+		sonic_tda_put(dev, i, SONIC_TD_FRAG_COUNT, 0);
-+		sonic_tda_put(dev, i, SONIC_TD_LINK,
-+			(lp->tda_laddr & 0xffff) +
-+			(i + 1) * SIZEOF_SONIC_TD * SONIC_BUS_SCALE(lp->dma_bitmode));
-+		lp->tx_skb[i] = NULL;
- 	}
--	lp->tda[SONIC_NUM_TDS - 1].link =
--	    (lp->tda_laddr & 0xffff) | SONIC_END_OF_LINKS;
-+	/* fix last descriptor */
-+	sonic_tda_put(dev, SONIC_NUM_TDS - 1, SONIC_TD_LINK,
-+		(lp->tda_laddr & 0xffff));
- 
- 	SONIC_WRITE(SONIC_UTDA, lp->tda_laddr >> 16);
- 	SONIC_WRITE(SONIC_CTDA, lp->tda_laddr & 0xffff);
--	lp->cur_tx = lp->dirty_tx = 0;
--
-+	lp->cur_tx = lp->next_tx = 0;
-+	lp->eol_tx = SONIC_NUM_TDS - 1;
-+    
- 	/*
- 	 * put our own address to CAM desc[0]
- 	 */
--	lp->cda.cam_desc[0].cam_cap0 =
--	    dev->dev_addr[1] << 8 | dev->dev_addr[0];
--	lp->cda.cam_desc[0].cam_cap1 =
--	    dev->dev_addr[3] << 8 | dev->dev_addr[2];
--	lp->cda.cam_desc[0].cam_cap2 =
--	    dev->dev_addr[5] << 8 | dev->dev_addr[4];
--	lp->cda.cam_enable = 1;
-+	sonic_cda_put(dev, 0, SONIC_CD_CAP0, dev->dev_addr[1] << 8 | dev->dev_addr[0]);
-+	sonic_cda_put(dev, 0, SONIC_CD_CAP1, dev->dev_addr[3] << 8 | dev->dev_addr[2]);
-+	sonic_cda_put(dev, 0, SONIC_CD_CAP2, dev->dev_addr[5] << 8 | dev->dev_addr[4]);
-+	sonic_set_cam_enable(dev, 1);
- 
- 	for (i = 0; i < 16; i++)
--		lp->cda.cam_desc[i].cam_entry_pointer = i;
-+		sonic_cda_put(dev, i, SONIC_CD_ENTRY_POINTER, i);
- 
- 	/*
- 	 * initialize CAM registers
-@@ -588,8 +742,8 @@
- 			break;
- 	}
- 	if (sonic_debug > 2) {
--		printk("sonic_init: CMD=%x, ISR=%x\n",
--		       SONIC_READ(SONIC_CMD), SONIC_READ(SONIC_ISR));
-+		printk("sonic_init: CMD=%x, ISR=%x\n, i=%d",
-+		       SONIC_READ(SONIC_CMD), SONIC_READ(SONIC_ISR), i);
- 	}
- 
- 	/*
-@@ -604,7 +758,7 @@
- 
- 	cmd = SONIC_READ(SONIC_CMD);
- 	if ((cmd & SONIC_CR_RXEN) == 0 || (cmd & SONIC_CR_STP) == 0)
--		printk("sonic_init: failed, status=%x\n", cmd);
-+		printk(KERN_ERR "sonic_init: failed, status=%x\n", cmd);
- 
- 	if (sonic_debug > 2)
- 		printk("sonic_init: new status=%x\n",
---- orig/drivers/net/sonic.h	Sun Jul 10 22:11:34 2005
-+++ linux/drivers/net/sonic.h	Sun Jul 10 22:11:46 2005
-@@ -1,5 +1,5 @@
- /*
-- * Helpfile for sonic.c
-+ * Header file for sonic.c
-  *
-  * (C) Waldorf Electronics, Germany
-  * Written by Andreas Busse
-@@ -9,10 +9,16 @@
-  * and pad structure members must be exchanged. Also, the structures
-  * need to be changed accordingly to the bus size. 
-  *
-- * 981229 MSch:	did just that for the 68k Mac port (32 bit, big endian),
-- *		see CONFIG_MACSONIC branch below.
-+ * 981229 MSch:	did just that for the 68k Mac port (32 bit, big endian)
-  *
-+ * 990611 David Huggins-Daines <dhd at debian.org>: This machine abstraction
-+ * does not cope with 16-bit bus sizes very well.  Therefore I have
-+ * rewritten it with ugly macros and evil inlines.
-+ *
-+ * 050625 Finn Thain: introduced more 32-bit cards and dhd's support
-+ *        for 16-bit cards (from the mac68k project).
-  */
-+
- #ifndef SONIC_H
- #define SONIC_H
- 
-@@ -83,6 +89,7 @@
- /*
-  * Error counters
-  */
-+
- #define SONIC_CRCT              0x2c
- #define SONIC_FAET              0x2d
- #define SONIC_MPT               0x2e
-@@ -182,14 +189,14 @@
- 
- #define SONIC_INT_BR		0x4000
- #define SONIC_INT_HBL		0x2000
--#define SONIC_INT_LCD           0x1000
--#define SONIC_INT_PINT          0x0800
--#define SONIC_INT_PKTRX         0x0400
--#define SONIC_INT_TXDN          0x0200
--#define SONIC_INT_TXER          0x0100
--#define SONIC_INT_TC            0x0080
--#define SONIC_INT_RDE           0x0040
--#define SONIC_INT_RBE           0x0020
-+#define SONIC_INT_LCD		0x1000
-+#define SONIC_INT_PINT		0x0800
-+#define SONIC_INT_PKTRX		0x0400
-+#define SONIC_INT_TXDN		0x0200
-+#define SONIC_INT_TXER		0x0100
-+#define SONIC_INT_TC		0x0080
-+#define SONIC_INT_RDE		0x0040
-+#define SONIC_INT_RBE		0x0020
- #define SONIC_INT_RBAE		0x0010
- #define SONIC_INT_CRC		0x0008
- #define SONIC_INT_FAE		0x0004
-@@ -201,224 +208,61 @@
-  * The interrupts we allow.
-  */
- 
--#define SONIC_IMR_DEFAULT	(SONIC_INT_BR | \
--				SONIC_INT_LCD | \
--                                SONIC_INT_PINT | \
-+#define SONIC_IMR_DEFAULT     ( SONIC_INT_BR | \
-+                                SONIC_INT_LCD | \
-+                                SONIC_INT_RFO | \
-                                 SONIC_INT_PKTRX | \
-                                 SONIC_INT_TXDN | \
-                                 SONIC_INT_TXER | \
-                                 SONIC_INT_RDE | \
--                                SONIC_INT_RBE | \
-                                 SONIC_INT_RBAE | \
-                                 SONIC_INT_CRC | \
-                                 SONIC_INT_FAE | \
-                                 SONIC_INT_MP)
- 
- 
--#define	SONIC_END_OF_LINKS	0x0001
--
--
--#ifdef CONFIG_MACSONIC
--/*
-- * Big endian like structures on 680x0 Macs
-- */
--
--typedef struct {
--	u32 rx_bufadr_l;	/* receive buffer ptr */
--	u32 rx_bufadr_h;
--
--	u32 rx_bufsize_l;	/* no. of words in the receive buffer */
--	u32 rx_bufsize_h;
--} sonic_rr_t;
--
--/*
-- * Sonic receive descriptor. Receive descriptors are
-- * kept in a linked list of these structures.
-- */
--
--typedef struct {
--	SREGS_PAD(pad0);
--	u16 rx_status;		/* status after reception of a packet */
--	 SREGS_PAD(pad1);
--	u16 rx_pktlen;		/* length of the packet incl. CRC */
--
--	/*
--	 * Pointers to the location in the receive buffer area (RBA)
--	 * where the packet resides. A packet is always received into
--	 * a contiguous piece of memory.
--	 */
--	 SREGS_PAD(pad2);
--	u16 rx_pktptr_l;
--	 SREGS_PAD(pad3);
--	u16 rx_pktptr_h;
--
--	 SREGS_PAD(pad4);
--	u16 rx_seqno;		/* sequence no. */
--
--	 SREGS_PAD(pad5);
--	u16 link;		/* link to next RDD (end if EOL bit set) */
--
--	/*
--	 * Owner of this descriptor, 0= driver, 1=sonic
--	 */
--
--	 SREGS_PAD(pad6);
--	u16 in_use;
--
--	caddr_t rda_next;	/* pointer to next RD */
--} sonic_rd_t;
--
--
--/*
-- * Describes a Transmit Descriptor
-- */
--typedef struct {
--	SREGS_PAD(pad0);
--	u16 tx_status;		/* status after transmission of a packet */
--	 SREGS_PAD(pad1);
--	u16 tx_config;		/* transmit configuration for this packet */
--	 SREGS_PAD(pad2);
--	u16 tx_pktsize;		/* size of the packet to be transmitted */
--	 SREGS_PAD(pad3);
--	u16 tx_frag_count;	/* no. of fragments */
--
--	 SREGS_PAD(pad4);
--	u16 tx_frag_ptr_l;
--	 SREGS_PAD(pad5);
--	u16 tx_frag_ptr_h;
--	 SREGS_PAD(pad6);
--	u16 tx_frag_size;
--
--	 SREGS_PAD(pad7);
--	u16 link;		/* ptr to next descriptor */
--} sonic_td_t;
--
--
--/*
-- * Describes an entry in the CAM Descriptor Area.
-- */
--
--typedef struct {
--	SREGS_PAD(pad0);
--	u16 cam_entry_pointer;
--	 SREGS_PAD(pad1);
--	u16 cam_cap0;
--	 SREGS_PAD(pad2);
--	u16 cam_cap1;
--	 SREGS_PAD(pad3);
--	u16 cam_cap2;
--} sonic_cd_t;
--
-+#define SONIC_EOL       0x0001
- #define CAM_DESCRIPTORS 16
- 
-+/* Offsets in the various DMA buffers accessed by the SONIC */
- 
--typedef struct {
--	sonic_cd_t cam_desc[CAM_DESCRIPTORS];
--	 SREGS_PAD(pad);
--	u16 cam_enable;
--} sonic_cda_t;
--
--#else				/* original declarations, little endian 32 bit */
--
--/*
-- * structure definitions
-- */
--
--typedef struct {
--	u32 rx_bufadr_l;	/* receive buffer ptr */
--	u32 rx_bufadr_h;
--
--	u32 rx_bufsize_l;	/* no. of words in the receive buffer */
--	u32 rx_bufsize_h;
--} sonic_rr_t;
--
--/*
-- * Sonic receive descriptor. Receive descriptors are
-- * kept in a linked list of these structures.
-- */
--
--typedef struct {
--	u16 rx_status;		/* status after reception of a packet */
--	 SREGS_PAD(pad0);
--	u16 rx_pktlen;		/* length of the packet incl. CRC */
--	 SREGS_PAD(pad1);
--
--	/*
--	 * Pointers to the location in the receive buffer area (RBA)
--	 * where the packet resides. A packet is always received into
--	 * a contiguous piece of memory.
--	 */
--	u16 rx_pktptr_l;
--	 SREGS_PAD(pad2);
--	u16 rx_pktptr_h;
--	 SREGS_PAD(pad3);
--
--	u16 rx_seqno;		/* sequence no. */
--	 SREGS_PAD(pad4);
--
--	u16 link;		/* link to next RDD (end if EOL bit set) */
--	 SREGS_PAD(pad5);
--
--	/*
--	 * Owner of this descriptor, 0= driver, 1=sonic
--	 */
--
--	u16 in_use;
--	 SREGS_PAD(pad6);
--
--	caddr_t rda_next;	/* pointer to next RD */
--} sonic_rd_t;
--
--
--/*
-- * Describes a Transmit Descriptor
-- */
--typedef struct {
--	u16 tx_status;		/* status after transmission of a packet */
--	 SREGS_PAD(pad0);
--	u16 tx_config;		/* transmit configuration for this packet */
--	 SREGS_PAD(pad1);
--	u16 tx_pktsize;		/* size of the packet to be transmitted */
--	 SREGS_PAD(pad2);
--	u16 tx_frag_count;	/* no. of fragments */
--	 SREGS_PAD(pad3);
--
--	u16 tx_frag_ptr_l;
--	 SREGS_PAD(pad4);
--	u16 tx_frag_ptr_h;
--	 SREGS_PAD(pad5);
--	u16 tx_frag_size;
--	 SREGS_PAD(pad6);
--
--	u16 link;		/* ptr to next descriptor */
--	 SREGS_PAD(pad7);
--} sonic_td_t;
--
--
--/*
-- * Describes an entry in the CAM Descriptor Area.
-- */
--
--typedef struct {
--	u16 cam_entry_pointer;
--	 SREGS_PAD(pad0);
--	u16 cam_cap0;
--	 SREGS_PAD(pad1);
--	u16 cam_cap1;
--	 SREGS_PAD(pad2);
--	u16 cam_cap2;
--	 SREGS_PAD(pad3);
--} sonic_cd_t;
--
--#define CAM_DESCRIPTORS 16
-+#define SONIC_BITMODE16 0
-+#define SONIC_BITMODE32 1
-+#define SONIC_BUS_SCALE(bitmode) ((bitmode) ? 4 : 2)
-+/* Note!  These are all measured in bus-size units, so use SONIC_BUS_SCALE */
-+#define SIZEOF_SONIC_RR 4
-+#define SONIC_RR_BUFADR_L  0
-+#define SONIC_RR_BUFADR_H  1
-+#define SONIC_RR_BUFSIZE_L 2
-+#define SONIC_RR_BUFSIZE_H 3
-+
-+#define SIZEOF_SONIC_RD 7
-+#define SONIC_RD_STATUS   0
-+#define SONIC_RD_PKTLEN   1
-+#define SONIC_RD_PKTPTR_L 2
-+#define SONIC_RD_PKTPTR_H 3
-+#define SONIC_RD_SEQNO    4
-+#define SONIC_RD_LINK     5
-+#define SONIC_RD_IN_USE   6
-+
-+#define SIZEOF_SONIC_TD 8
-+#define SONIC_TD_STATUS       0
-+#define SONIC_TD_CONFIG       1
-+#define SONIC_TD_PKTSIZE      2
-+#define SONIC_TD_FRAG_COUNT   3
-+#define SONIC_TD_FRAG_PTR_L   4
-+#define SONIC_TD_FRAG_PTR_H   5
-+#define SONIC_TD_FRAG_SIZE    6
-+#define SONIC_TD_LINK         7
-+
-+#define SIZEOF_SONIC_CD 4
-+#define SONIC_CD_ENTRY_POINTER 0
-+#define SONIC_CD_CAP0          1
-+#define SONIC_CD_CAP1          2
-+#define SONIC_CD_CAP2          3
- 
--
--typedef struct {
--	sonic_cd_t cam_desc[CAM_DESCRIPTORS];
--	u16 cam_enable;
--	 SREGS_PAD(pad);
--} sonic_cda_t;
--#endif				/* endianness */
-+#define SIZEOF_SONIC_CDA ((CAM_DESCRIPTORS * SIZEOF_SONIC_CD) + 1)
-+#define SONIC_CDA_CAM_ENABLE   (CAM_DESCRIPTORS * SIZEOF_SONIC_CD)
- 
- /*
-  * Some tunables for the buffer areas. Power of 2 is required
-@@ -426,44 +270,60 @@
-  *
-  * MSch: use more buffer space for the slow m68k Macs!
-  */
--#ifdef CONFIG_MACSONIC
--#define SONIC_NUM_RRS    32	/* number of receive resources */
--#define SONIC_NUM_RDS    SONIC_NUM_RRS	/* number of receive descriptors */
--#define SONIC_NUM_TDS    32	/* number of transmit descriptors */
--#else
--#define SONIC_NUM_RRS    16	/* number of receive resources */
--#define SONIC_NUM_RDS    SONIC_NUM_RRS	/* number of receive descriptors */
--#define SONIC_NUM_TDS    16	/* number of transmit descriptors */
--#endif
--#define SONIC_RBSIZE   1520	/* size of one resource buffer */
--
--#define SONIC_RDS_MASK   (SONIC_NUM_RDS-1)
--#define SONIC_TDS_MASK   (SONIC_NUM_TDS-1)
--
-+#define SONIC_NUM_RRS   16            /* number of receive resources */
-+#define SONIC_NUM_RDS   SONIC_NUM_RRS /* number of receive descriptors */
-+#define SONIC_NUM_TDS   16            /* number of transmit descriptors */
-+
-+#define SONIC_RDS_MASK  (SONIC_NUM_RDS-1)
-+#define SONIC_TDS_MASK  (SONIC_NUM_TDS-1)
-+
-+#define SONIC_RBSIZE	1520          /* size of one resource buffer */
-+
-+/* Again, measured in bus size units! */
-+#define SIZEOF_SONIC_DESC (SIZEOF_SONIC_CDA	\
-+	+ (SIZEOF_SONIC_TD * SONIC_NUM_TDS)	\
-+	+ (SIZEOF_SONIC_RD * SONIC_NUM_RDS)	\
-+	+ (SIZEOF_SONIC_RR * SONIC_NUM_RRS))
- 
- /* Information that need to be kept for each board. */
- struct sonic_local {
--	sonic_cda_t cda;	/* virtual CPU address of CDA */
--	sonic_td_t tda[SONIC_NUM_TDS];	/* transmit descriptor area */
--	sonic_rr_t rra[SONIC_NUM_RRS];	/* receive resource area */
--	sonic_rd_t rda[SONIC_NUM_RDS];	/* receive descriptor area */
--	struct sk_buff *tx_skb[SONIC_NUM_TDS];	/* skbuffs for packets to transmit */
--	unsigned int tx_laddr[SONIC_NUM_TDS];	/* logical DMA address fro skbuffs */
--	unsigned char *rba;	/* start of receive buffer areas */
--	unsigned int cda_laddr;	/* logical DMA address of CDA */
--	unsigned int tda_laddr;	/* logical DMA address of TDA */
--	unsigned int rra_laddr;	/* logical DMA address of RRA */
--	unsigned int rda_laddr;	/* logical DMA address of RDA */
--	unsigned int rba_laddr;	/* logical DMA address of RBA */
--	unsigned int cur_rra;	/* current indexes to resource areas */
-+	/* Bus size.  0 == 16 bits, 1 == 32 bits. */
-+	int dma_bitmode;
-+	/* Register offset within the longword (independent of endianness,
-+	   and varies from one type of Macintosh SONIC to another
-+	   (Aarrgh)) */
-+	int reg_offset;
-+	void *descriptors;
-+	/* Crud.  These areas have to be within the same 64K.  Therefore
-+       we allocate a desriptors page, and point these to places within it. */
-+	void *cda;  /* CAM descriptor area */
-+	void *tda;  /* Transmit descriptor area */
-+	void *rra;  /* Receive resource area */
-+	void *rda;  /* Receive descriptor area */
-+	struct sk_buff* volatile rx_skb[SONIC_NUM_RRS];	/* packets to be received */
-+	struct sk_buff* volatile tx_skb[SONIC_NUM_TDS];	/* packets to be transmitted */
-+	unsigned int tx_len[SONIC_NUM_TDS]; /* lengths of tx DMA mappings */
-+	/* Logical DMA addresses on MIPS, bus addresses on m68k
-+	 * (so "laddr" is a bit misleading) */
-+	dma_addr_t descriptors_laddr;
-+	u32 cda_laddr;              /* logical DMA address of CDA */
-+	u32 tda_laddr;              /* logical DMA address of TDA */
-+	u32 rra_laddr;              /* logical DMA address of RRA */
-+	u32 rda_laddr;              /* logical DMA address of RDA */
-+	dma_addr_t rx_laddr[SONIC_NUM_RRS]; /* logical DMA addresses of rx skbuffs */
-+	dma_addr_t tx_laddr[SONIC_NUM_TDS]; /* logical DMA addresses of tx skbuffs */
-+	unsigned int rra_end;
-+	unsigned int cur_rwp;
- 	unsigned int cur_rx;
--	unsigned int cur_tx;
--	unsigned int dirty_tx;	/* last unacked transmit packet */
--	char tx_full;
-+	unsigned int cur_tx;           /* first unacked transmit packet */
-+	unsigned int eol_rx;
-+	unsigned int eol_tx;           /* last unacked transmit packet */
-+	unsigned int next_tx;          /* next free TD */
-+	struct device *device;         /* generic device */
- 	struct net_device_stats stats;
- };
- 
--#define TX_TIMEOUT 6
-+#define TX_TIMEOUT (3 * HZ)
- 
- /* Index to functions, as function prototypes. */
- 
-@@ -476,6 +336,114 @@
- static void sonic_multicast_list(struct net_device *dev);
- static int sonic_init(struct net_device *dev);
- static void sonic_tx_timeout(struct net_device *dev);
-+
-+/* Internal inlines for reading/writing DMA buffers.  Note that bus
-+   size and endianness matter here, whereas they don't for registers,
-+   as far as we can tell. */
-+/* OpenBSD calls this "SWO".  I'd like to think that sonic_buf_put()
-+   is a much better name. */
-+static inline void sonic_buf_put(void* base, int bitmode,
-+				 int offset, __u16 val)
-+{
-+	if (bitmode)
-+#ifdef __BIG_ENDIAN
-+		((__u16 *) base + (offset*2))[1] = val;
-+#else
-+		((__u16 *) base + (offset*2))[0] = val;
-+#endif
-+	else
-+	 	((__u16 *) base)[offset] = val;
-+}
-+
-+static inline __u16 sonic_buf_get(void* base, int bitmode,
-+				  int offset)
-+{
-+	if (bitmode)
-+#ifdef __BIG_ENDIAN
-+		return ((volatile __u16 *) base + (offset*2))[1];
-+#else
-+		return ((volatile __u16 *) base + (offset*2))[0];
-+#endif
-+	else
-+		return ((volatile __u16 *) base)[offset];
-+}
-+
-+/* Inlines that you should actually use for reading/writing DMA buffers */
-+static inline void sonic_cda_put(struct net_device* dev, int entry,
-+				 int offset, __u16 val)
-+{
-+	struct sonic_local* lp = (struct sonic_local *) dev->priv;
-+	sonic_buf_put(lp->cda, lp->dma_bitmode,
-+		      (entry * SIZEOF_SONIC_CD) + offset, val);
-+}
-+
-+static inline __u16 sonic_cda_get(struct net_device* dev, int entry,
-+				  int offset)
-+{
-+	struct sonic_local* lp = (struct sonic_local *) dev->priv;
-+	return sonic_buf_get(lp->cda, lp->dma_bitmode,
-+			     (entry * SIZEOF_SONIC_CD) + offset);
-+}
-+
-+static inline void sonic_set_cam_enable(struct net_device* dev, __u16 val)
-+{
-+	struct sonic_local* lp = (struct sonic_local *) dev->priv;
-+	sonic_buf_put(lp->cda, lp->dma_bitmode, SONIC_CDA_CAM_ENABLE, val);
-+}
-+
-+static inline __u16 sonic_get_cam_enable(struct net_device* dev)
-+{
-+	struct sonic_local* lp = (struct sonic_local *) dev->priv;
-+	return sonic_buf_get(lp->cda, lp->dma_bitmode, SONIC_CDA_CAM_ENABLE);
-+}
-+
-+static inline void sonic_tda_put(struct net_device* dev, int entry,
-+				 int offset, __u16 val)
-+{
-+	struct sonic_local* lp = (struct sonic_local *) dev->priv;
-+	sonic_buf_put(lp->tda, lp->dma_bitmode,
-+		      (entry * SIZEOF_SONIC_TD) + offset, val);
-+}
-+
-+static inline __u16 sonic_tda_get(struct net_device* dev, int entry,
-+				  int offset)
-+{
-+	struct sonic_local* lp = (struct sonic_local *) dev->priv;
-+	return sonic_buf_get(lp->tda, lp->dma_bitmode,
-+			     (entry * SIZEOF_SONIC_TD) + offset);
-+}
-+
-+static inline void sonic_rda_put(struct net_device* dev, int entry,
-+				 int offset, __u16 val)
-+{
-+	struct sonic_local* lp = (struct sonic_local *) dev->priv;
-+	sonic_buf_put(lp->rda, lp->dma_bitmode,
-+		      (entry * SIZEOF_SONIC_RD) + offset, val);
-+}
-+
-+static inline __u16 sonic_rda_get(struct net_device* dev, int entry,
-+				  int offset)
-+{
-+	struct sonic_local* lp = (struct sonic_local *) dev->priv;
-+	return sonic_buf_get(lp->rda, lp->dma_bitmode,
-+			     (entry * SIZEOF_SONIC_RD) + offset);
-+}
-+
-+static inline void sonic_rra_put(struct net_device* dev, int entry,
-+				 int offset, __u16 val)
-+{
-+	struct sonic_local* lp = (struct sonic_local *) dev->priv;
-+	sonic_buf_put(lp->rra, lp->dma_bitmode,
-+		      (entry * SIZEOF_SONIC_RR) + offset, val);
-+}
-+
-+static inline __u16 sonic_rra_get(struct net_device* dev, int entry,
-+				  int offset)
-+{
-+	struct sonic_local* lp = (struct sonic_local *) dev->priv;
-+	return sonic_buf_get(lp->rra, lp->dma_bitmode,
-+			     (entry * SIZEOF_SONIC_RR) + offset);
-+}
- 
- static const char *version =
-     "sonic.c:v0.92 20.9.98 tsbogend at alpha.franken.de\n";

Added: people/waldi/linux-2.6/debian/patches-debian/net-ipconntrack-nat-fix.patch
===================================================================
--- people/waldi/linux-2.6/debian/patches-debian/net-ipconntrack-nat-fix.patch	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-debian/net-ipconntrack-nat-fix.patch	2005-11-06 16:19:16 UTC (rev 4733)
@@ -0,0 +1,37 @@
+diff --git a/net/ipv4/netfilter/ip_conntrack_helper_pptp.c b/net/ipv4/netfilter/ip_conntrack_helper_pptp.c
+--- a/net/ipv4/netfilter/ip_conntrack_helper_pptp.c
++++ b/net/ipv4/netfilter/ip_conntrack_helper_pptp.c
+@@ -270,14 +270,10 @@ exp_gre(struct ip_conntrack *master,
+ 	exp_orig->expectfn = pptp_expectfn;
+ 	exp_orig->flags = 0;
+ 
+-	exp_orig->dir = IP_CT_DIR_ORIGINAL;
+-
+ 	/* both expectations are identical apart from tuple */
+ 	memcpy(exp_reply, exp_orig, sizeof(*exp_reply));
+ 	memcpy(&exp_reply->tuple, &exp_tuples[1], sizeof(exp_reply->tuple));
+ 
+-	exp_reply->dir = !exp_orig->dir;
+-
+ 	if (ip_nat_pptp_hook_exp_gre)
+ 		ret = ip_nat_pptp_hook_exp_gre(exp_orig, exp_reply);
+ 	else {
+diff --git a/net/ipv4/netfilter/ip_nat_helper_pptp.c b/net/ipv4/netfilter/ip_nat_helper_pptp.c
+--- a/net/ipv4/netfilter/ip_nat_helper_pptp.c
++++ b/net/ipv4/netfilter/ip_nat_helper_pptp.c
+@@ -216,6 +216,7 @@ pptp_exp_gre(struct ip_conntrack_expect 
+ 	expect_orig->saved_proto.gre.key = htons(nat_pptp_info->pac_call_id);
+ 	expect_orig->tuple.src.u.gre.key = htons(nat_pptp_info->pns_call_id);
+ 	expect_orig->tuple.dst.u.gre.key = htons(ct_pptp_info->pac_call_id);
++	expect_orig->dir = IP_CT_DIR_ORIGINAL;
+ 	inv_t.src.ip = reply_t->src.ip;
+ 	inv_t.dst.ip = reply_t->dst.ip;
+ 	inv_t.src.u.gre.key = htons(nat_pptp_info->pac_call_id);
+@@ -233,6 +234,7 @@ pptp_exp_gre(struct ip_conntrack_expect 
+ 	expect_reply->saved_proto.gre.key = htons(nat_pptp_info->pns_call_id);
+ 	expect_reply->tuple.src.u.gre.key = htons(nat_pptp_info->pac_call_id);
+ 	expect_reply->tuple.dst.u.gre.key = htons(ct_pptp_info->pns_call_id);
++	expect_reply->dir = IP_CT_DIR_REPLY;
+ 	inv_t.src.ip = orig_t->src.ip;
+ 	inv_t.dst.ip = orig_t->dst.ip;
+ 	inv_t.src.u.gre.key = htons(nat_pptp_info->pns_call_id);

Deleted: people/waldi/linux-2.6/debian/patches-debian/patch-2.6.13.1
===================================================================
--- people/waldi/linux-2.6/debian/patches-debian/patch-2.6.13.1	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-debian/patch-2.6.13.1	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,422 +0,0 @@
-diff --git a/arch/i386/pci/common.c b/arch/i386/pci/common.c
---- a/arch/i386/pci/common.c
-+++ b/arch/i386/pci/common.c
-@@ -165,7 +165,6 @@ static int __init pcibios_init(void)
- 	if ((pci_probe & PCI_BIOS_SORT) && !(pci_probe & PCI_NO_SORT))
- 		pcibios_sort();
- #endif
--	pci_assign_unassigned_resources();
- 	return 0;
- }
- 
-diff --git a/arch/i386/pci/i386.c b/arch/i386/pci/i386.c
---- a/arch/i386/pci/i386.c
-+++ b/arch/i386/pci/i386.c
-@@ -170,43 +170,26 @@ static void __init pcibios_allocate_reso
- static int __init pcibios_assign_resources(void)
- {
- 	struct pci_dev *dev = NULL;
--	int idx;
--	struct resource *r;
-+	struct resource *r, *pr;
- 
--	for_each_pci_dev(dev) {
--		int class = dev->class >> 8;
--
--		/* Don't touch classless devices and host bridges */
--		if (!class || class == PCI_CLASS_BRIDGE_HOST)
--			continue;
--
--		for(idx=0; idx<6; idx++) {
--			r = &dev->resource[idx];
--
--			/*
--			 *  Don't touch IDE controllers and I/O ports of video cards!
--			 */
--			if ((class == PCI_CLASS_STORAGE_IDE && idx < 4) ||
--			    (class == PCI_CLASS_DISPLAY_VGA && (r->flags & IORESOURCE_IO)))
--				continue;
--
--			/*
--			 *  We shall assign a new address to this resource, either because
--			 *  the BIOS forgot to do so or because we have decided the old
--			 *  address was unusable for some reason.
--			 */
--			if (!r->start && r->end)
--				pci_assign_resource(dev, idx);
--		}
--
--		if (pci_probe & PCI_ASSIGN_ROMS) {
-+	if (!(pci_probe & PCI_ASSIGN_ROMS)) {
-+		/* Try to use BIOS settings for ROMs, otherwise let
-+		   pci_assign_unassigned_resources() allocate the new
-+		   addresses. */
-+		for_each_pci_dev(dev) {
- 			r = &dev->resource[PCI_ROM_RESOURCE];
--			r->end -= r->start;
--			r->start = 0;
--			if (r->end)
--				pci_assign_resource(dev, PCI_ROM_RESOURCE);
-+			if (!r->flags || !r->start)
-+				continue;
-+			pr = pci_find_parent_resource(dev, r);
-+			if (!pr || request_resource(pr, r) < 0) {
-+				r->end -= r->start;
-+				r->start = 0;
-+			}
- 		}
- 	}
-+
-+	pci_assign_unassigned_resources();
-+
- 	return 0;
- }
- 
-diff --git a/crypto/cipher.c b/crypto/cipher.c
---- a/crypto/cipher.c
-+++ b/crypto/cipher.c
-@@ -191,6 +191,8 @@ static unsigned int cbc_process_encrypt(
- 	u8 *iv = desc->info;
- 	unsigned int done = 0;
- 
-+	nbytes -= bsize;
-+
- 	do {
- 		xor(iv, src);
- 		fn(crypto_tfm_ctx(tfm), dst, iv);
-@@ -198,7 +200,7 @@ static unsigned int cbc_process_encrypt(
- 
- 		src += bsize;
- 		dst += bsize;
--	} while ((done += bsize) < nbytes);
-+	} while ((done += bsize) <= nbytes);
- 
- 	return done;
- }
-@@ -219,6 +221,8 @@ static unsigned int cbc_process_decrypt(
- 	u8 *iv = desc->info;
- 	unsigned int done = 0;
- 
-+	nbytes -= bsize;
-+
- 	do {
- 		u8 *tmp_dst = *dst_p;
- 
-@@ -230,7 +234,7 @@ static unsigned int cbc_process_decrypt(
- 
- 		src += bsize;
- 		dst += bsize;
--	} while ((done += bsize) < nbytes);
-+	} while ((done += bsize) <= nbytes);
- 
- 	return done;
- }
-@@ -243,12 +247,14 @@ static unsigned int ecb_process(const st
- 	void (*fn)(void *, u8 *, const u8 *) = desc->crfn;
- 	unsigned int done = 0;
- 
-+	nbytes -= bsize;
-+
- 	do {
- 		fn(crypto_tfm_ctx(tfm), dst, src);
- 
- 		src += bsize;
- 		dst += bsize;
--	} while ((done += bsize) < nbytes);
-+	} while ((done += bsize) <= nbytes);
- 
- 	return done;
- }
-diff --git a/drivers/char/rtc.c b/drivers/char/rtc.c
---- a/drivers/char/rtc.c
-+++ b/drivers/char/rtc.c
-@@ -938,10 +938,9 @@ found:
- 
- 	/*
- 	 * XXX Interrupt pin #7 in Espresso is shared between RTC and
--	 * PCI Slot 2 INTA# (and some INTx# in Slot 1). SA_INTERRUPT here
--	 * is asking for trouble with add-on boards. Change to SA_SHIRQ.
-+	 * PCI Slot 2 INTA# (and some INTx# in Slot 1).
- 	 */
--	if (request_irq(rtc_irq, rtc_interrupt, SA_INTERRUPT, "rtc", (void *)&rtc_port)) {
-+	if (request_irq(rtc_irq, rtc_interrupt, SA_SHIRQ, "rtc", (void *)&rtc_port)) {
- 		/*
- 		 * Standard way for sparc to print irq's is to use
- 		 * __irq_itoa(). I think for EBus it's ok to use %d.
-diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
---- a/drivers/media/video/Kconfig
-+++ b/drivers/media/video/Kconfig
-@@ -254,6 +254,7 @@ config VIDEO_SAA7134_DVB
- 	select VIDEO_BUF_DVB
- 	select DVB_MT352
- 	select DVB_CX22702
-+	select DVB_TDA1004X
- 	---help---
- 	  This adds support for DVB cards based on the
- 	  Philips saa7134 chip.
-diff --git a/drivers/pci/rom.c b/drivers/pci/rom.c
---- a/drivers/pci/rom.c
-+++ b/drivers/pci/rom.c
-@@ -21,13 +21,21 @@
-  * between the ROM and other resources, so enabling it may disable access
-  * to MMIO registers or other card memory.
-  */
--static void pci_enable_rom(struct pci_dev *pdev)
-+static int pci_enable_rom(struct pci_dev *pdev)
- {
-+	struct resource *res = pdev->resource + PCI_ROM_RESOURCE;
-+	struct pci_bus_region region;
- 	u32 rom_addr;
- 
-+	if (!res->flags)
-+		return -1;
-+
-+	pcibios_resource_to_bus(pdev, &region, res);
- 	pci_read_config_dword(pdev, pdev->rom_base_reg, &rom_addr);
--	rom_addr |= PCI_ROM_ADDRESS_ENABLE;
-+	rom_addr &= ~PCI_ROM_ADDRESS_MASK;
-+	rom_addr |= region.start | PCI_ROM_ADDRESS_ENABLE;
- 	pci_write_config_dword(pdev, pdev->rom_base_reg, rom_addr);
-+	return 0;
- }
- 
- /**
-@@ -71,19 +79,21 @@ void __iomem *pci_map_rom(struct pci_dev
- 	} else {
- 		if (res->flags & IORESOURCE_ROM_COPY) {
- 			*size = pci_resource_len(pdev, PCI_ROM_RESOURCE);
--			return (void __iomem *)pci_resource_start(pdev, PCI_ROM_RESOURCE);
-+			return (void __iomem *)pci_resource_start(pdev,
-+							     PCI_ROM_RESOURCE);
- 		} else {
- 			/* assign the ROM an address if it doesn't have one */
--			if (res->parent == NULL)
--				pci_assign_resource(pdev, PCI_ROM_RESOURCE);
--
-+			if (res->parent == NULL &&
-+			    pci_assign_resource(pdev,PCI_ROM_RESOURCE))
-+				return NULL;
- 			start = pci_resource_start(pdev, PCI_ROM_RESOURCE);
- 			*size = pci_resource_len(pdev, PCI_ROM_RESOURCE);
- 			if (*size == 0)
- 				return NULL;
- 
- 			/* Enable ROM space decodes */
--			pci_enable_rom(pdev);
-+			if (pci_enable_rom(pdev))
-+				return NULL;
- 		}
- 	}
- 
-diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
---- a/drivers/pci/setup-bus.c
-+++ b/drivers/pci/setup-bus.c
-@@ -40,7 +40,7 @@
-  * FIXME: IO should be max 256 bytes.  However, since we may
-  * have a P2P bridge below a cardbus bridge, we need 4K.
-  */
--#define CARDBUS_IO_SIZE		(256)
-+#define CARDBUS_IO_SIZE		(4*1024)
- #define CARDBUS_MEM_SIZE	(32*1024*1024)
- 
- static void __devinit
-diff --git a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c
---- a/drivers/scsi/aacraid/aachba.c
-+++ b/drivers/scsi/aacraid/aachba.c
-@@ -968,7 +968,7 @@ static int aac_read(struct scsi_cmnd * s
- 		fibsize = sizeof(struct aac_read64) + 
- 			((le32_to_cpu(readcmd->sg.count) - 1) * 
- 			 sizeof (struct sgentry64));
--		BUG_ON (fibsize > (sizeof(struct hw_fib) - 
-+		BUG_ON (fibsize > (dev->max_fib_size - 
- 					sizeof(struct aac_fibhdr)));
- 		/*
- 		 *	Now send the Fib to the adapter
-diff --git a/include/net/compat.h b/include/net/compat.h
---- a/include/net/compat.h
-+++ b/include/net/compat.h
-@@ -33,7 +33,8 @@ extern asmlinkage long compat_sys_sendms
- extern asmlinkage long compat_sys_recvmsg(int,struct compat_msghdr __user *,unsigned);
- extern asmlinkage long compat_sys_getsockopt(int, int, int, char __user *, int __user *);
- extern int put_cmsg_compat(struct msghdr*, int, int, int, void *);
--extern int cmsghdr_from_user_compat_to_kern(struct msghdr *, unsigned char *,
--		int);
-+
-+struct sock;
-+extern int cmsghdr_from_user_compat_to_kern(struct msghdr *, struct sock *, unsigned char *, int);
- 
- #endif /* NET_COMPAT_H */
-diff --git a/net/compat.c b/net/compat.c
---- a/net/compat.c
-+++ b/net/compat.c
-@@ -135,13 +135,14 @@ static inline struct compat_cmsghdr __us
-  * thus placement) of cmsg headers and length are different for
-  * 32-bit apps.  -DaveM
-  */
--int cmsghdr_from_user_compat_to_kern(struct msghdr *kmsg,
-+int cmsghdr_from_user_compat_to_kern(struct msghdr *kmsg, struct sock *sk,
- 			       unsigned char *stackbuf, int stackbuf_size)
- {
- 	struct compat_cmsghdr __user *ucmsg;
- 	struct cmsghdr *kcmsg, *kcmsg_base;
- 	compat_size_t ucmlen;
- 	__kernel_size_t kcmlen, tmp;
-+	int err = -EFAULT;
- 
- 	kcmlen = 0;
- 	kcmsg_base = kcmsg = (struct cmsghdr *)stackbuf;
-@@ -156,6 +157,7 @@ int cmsghdr_from_user_compat_to_kern(str
- 
- 		tmp = ((ucmlen - CMSG_COMPAT_ALIGN(sizeof(*ucmsg))) +
- 		       CMSG_ALIGN(sizeof(struct cmsghdr)));
-+		tmp = CMSG_ALIGN(tmp);
- 		kcmlen += tmp;
- 		ucmsg = cmsg_compat_nxthdr(kmsg, ucmsg, ucmlen);
- 	}
-@@ -167,30 +169,34 @@ int cmsghdr_from_user_compat_to_kern(str
- 	 * until we have successfully copied over all of the data
- 	 * from the user.
- 	 */
--	if(kcmlen > stackbuf_size)
--		kcmsg_base = kcmsg = kmalloc(kcmlen, GFP_KERNEL);
--	if(kcmsg == NULL)
-+	if (kcmlen > stackbuf_size)
-+		kcmsg_base = kcmsg = sock_kmalloc(sk, kcmlen, GFP_KERNEL);
-+	if (kcmsg == NULL)
- 		return -ENOBUFS;
- 
- 	/* Now copy them over neatly. */
- 	memset(kcmsg, 0, kcmlen);
- 	ucmsg = CMSG_COMPAT_FIRSTHDR(kmsg);
- 	while(ucmsg != NULL) {
--		__get_user(ucmlen, &ucmsg->cmsg_len);
-+		if (__get_user(ucmlen, &ucmsg->cmsg_len))
-+			goto Efault;
-+		if (!CMSG_COMPAT_OK(ucmlen, ucmsg, kmsg))
-+			goto Einval;
- 		tmp = ((ucmlen - CMSG_COMPAT_ALIGN(sizeof(*ucmsg))) +
- 		       CMSG_ALIGN(sizeof(struct cmsghdr)));
-+		if ((char *)kcmsg_base + kcmlen - (char *)kcmsg < CMSG_ALIGN(tmp))
-+			goto Einval;
- 		kcmsg->cmsg_len = tmp;
--		__get_user(kcmsg->cmsg_level, &ucmsg->cmsg_level);
--		__get_user(kcmsg->cmsg_type, &ucmsg->cmsg_type);
--
--		/* Copy over the data. */
--		if(copy_from_user(CMSG_DATA(kcmsg),
--				  CMSG_COMPAT_DATA(ucmsg),
--				  (ucmlen - CMSG_COMPAT_ALIGN(sizeof(*ucmsg)))))
--			goto out_free_efault;
-+		tmp = CMSG_ALIGN(tmp);
-+		if (__get_user(kcmsg->cmsg_level, &ucmsg->cmsg_level) ||
-+		    __get_user(kcmsg->cmsg_type, &ucmsg->cmsg_type) ||
-+		    copy_from_user(CMSG_DATA(kcmsg),
-+				   CMSG_COMPAT_DATA(ucmsg),
-+				   (ucmlen - CMSG_COMPAT_ALIGN(sizeof(*ucmsg)))))
-+			goto Efault;
- 
- 		/* Advance. */
--		kcmsg = (struct cmsghdr *)((char *)kcmsg + CMSG_ALIGN(tmp));
-+		kcmsg = (struct cmsghdr *)((char *)kcmsg + tmp);
- 		ucmsg = cmsg_compat_nxthdr(kmsg, ucmsg, ucmlen);
- 	}
- 
-@@ -199,10 +205,12 @@ int cmsghdr_from_user_compat_to_kern(str
- 	kmsg->msg_controllen = kcmlen;
- 	return 0;
- 
--out_free_efault:
--	if(kcmsg_base != (struct cmsghdr *)stackbuf)
--		kfree(kcmsg_base);
--	return -EFAULT;
-+Einval:
-+	err = -EINVAL;
-+Efault:
-+	if (kcmsg_base != (struct cmsghdr *)stackbuf)
-+		sock_kfree_s(sk, kcmsg_base, kcmlen);
-+	return err;
- }
- 
- int put_cmsg_compat(struct msghdr *kmsg, int level, int type, int len, void *data)
-diff --git a/net/core/filter.c b/net/core/filter.c
---- a/net/core/filter.c
-+++ b/net/core/filter.c
-@@ -182,7 +182,7 @@ int sk_run_filter(struct sk_buff *skb, s
- 				A = ntohl(*(u32 *)ptr);
- 				continue;
- 			}
--			return 0;
-+			break;
- 		case BPF_LD|BPF_H|BPF_ABS:
- 			k = fentry->k;
-  load_h:
-@@ -191,7 +191,7 @@ int sk_run_filter(struct sk_buff *skb, s
- 				A = ntohs(*(u16 *)ptr);
- 				continue;
- 			}
--			return 0;
-+			break;
- 		case BPF_LD|BPF_B|BPF_ABS:
- 			k = fentry->k;
- load_b:
-@@ -200,7 +200,7 @@ load_b:
- 				A = *(u8 *)ptr;
- 				continue;
- 			}
--			return 0;
-+			break;
- 		case BPF_LD|BPF_W|BPF_LEN:
- 			A = skb->len;
- 			continue;
-diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c
---- a/net/ipv4/ip_fragment.c
-+++ b/net/ipv4/ip_fragment.c
-@@ -457,7 +457,7 @@ static void ip_frag_queue(struct ipq *qp
- 
- 	if (pskb_pull(skb, ihl) == NULL)
- 		goto err;
--	if (pskb_trim(skb, end-offset))
-+	if (pskb_trim_rcsum(skb, end-offset))
- 		goto err;
- 
- 	/* Find out which fragments are in front and at the back of us
-diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c
---- a/net/ipv4/raw.c
-+++ b/net/ipv4/raw.c
-@@ -358,7 +358,7 @@ static void raw_probe_proto_opt(struct f
- 
- 			if (type && code) {
- 				get_user(fl->fl_icmp_type, type);
--				__get_user(fl->fl_icmp_code, code);
-+			        get_user(fl->fl_icmp_code, code);
- 				probed = 1;
- 			}
- 			break;
-diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c
---- a/net/ipv6/raw.c
-+++ b/net/ipv6/raw.c
-@@ -619,7 +619,7 @@ static void rawv6_probe_proto_opt(struct
- 
- 			if (type && code) {
- 				get_user(fl->fl_icmp_type, type);
--				__get_user(fl->fl_icmp_code, code);
-+				get_user(fl->fl_icmp_code, code);
- 				probed = 1;
- 			}
- 			break;
-diff --git a/net/socket.c b/net/socket.c
---- a/net/socket.c
-+++ b/net/socket.c
-@@ -1739,10 +1739,11 @@ asmlinkage long sys_sendmsg(int fd, stru
- 		goto out_freeiov;
- 	ctl_len = msg_sys.msg_controllen; 
- 	if ((MSG_CMSG_COMPAT & flags) && ctl_len) {
--		err = cmsghdr_from_user_compat_to_kern(&msg_sys, ctl, sizeof(ctl));
-+		err = cmsghdr_from_user_compat_to_kern(&msg_sys, sock->sk, ctl, sizeof(ctl));
- 		if (err)
- 			goto out_freeiov;
- 		ctl_buf = msg_sys.msg_control;
-+		ctl_len = msg_sys.msg_controllen;
- 	} else if (ctl_len) {
- 		if (ctl_len > sizeof(ctl))
- 		{

Deleted: people/waldi/linux-2.6/debian/patches-debian/patch-2.6.13.2
===================================================================
--- people/waldi/linux-2.6/debian/patches-debian/patch-2.6.13.2	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-debian/patch-2.6.13.2	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,328 +0,0 @@
-diff --git a/arch/x86_64/ia32/ia32_ioctl.c b/arch/x86_64/ia32/ia32_ioctl.c
---- a/arch/x86_64/ia32/ia32_ioctl.c
-+++ b/arch/x86_64/ia32/ia32_ioctl.c
-@@ -24,17 +24,26 @@
- static int tiocgdev(unsigned fd, unsigned cmd,  unsigned int __user *ptr) 
- { 
- 
--	struct file *file = fget(fd);
-+	struct file *file;
- 	struct tty_struct *real_tty;
-+	int fput_needed, ret;
- 
-+	file = fget_light(fd, &fput_needed);
- 	if (!file)
- 		return -EBADF;
-+
-+	ret = -EINVAL;
- 	if (file->f_op->ioctl != tty_ioctl)
--		return -EINVAL; 
-+		goto out;
- 	real_tty = (struct tty_struct *)file->private_data;
- 	if (!real_tty) 	
--		return -EINVAL; 
--	return put_user(new_encode_dev(tty_devnum(real_tty)), ptr); 
-+		goto out;
-+
-+	ret = put_user(new_encode_dev(tty_devnum(real_tty)), ptr); 
-+
-+out:
-+	fput_light(file, fput_needed);
-+	return ret;
- } 
- 
- #define RTC_IRQP_READ32	_IOR('p', 0x0b, unsigned int)	 /* Read IRQ rate   */
-diff --git a/drivers/ide/pci/cmd64x.c b/drivers/ide/pci/cmd64x.c
---- a/drivers/ide/pci/cmd64x.c
-+++ b/drivers/ide/pci/cmd64x.c
-@@ -608,7 +608,7 @@ static unsigned int __devinit init_chips
- 
- #ifdef __i386__
- 	if (dev->resource[PCI_ROM_RESOURCE].start) {
--		pci_write_config_byte(dev, PCI_ROM_ADDRESS, dev->resource[PCI_ROM_RESOURCE].start | PCI_ROM_ADDRESS_ENABLE);
-+		pci_write_config_dword(dev, PCI_ROM_ADDRESS, dev->resource[PCI_ROM_RESOURCE].start | PCI_ROM_ADDRESS_ENABLE);
- 		printk(KERN_INFO "%s: ROM enabled at 0x%08lx\n", name, dev->resource[PCI_ROM_RESOURCE].start);
- 	}
- #endif
-diff --git a/drivers/ide/pci/hpt34x.c b/drivers/ide/pci/hpt34x.c
---- a/drivers/ide/pci/hpt34x.c
-+++ b/drivers/ide/pci/hpt34x.c
-@@ -173,7 +173,7 @@ static unsigned int __devinit init_chips
- 
- 	if (cmd & PCI_COMMAND_MEMORY) {
- 		if (pci_resource_start(dev, PCI_ROM_RESOURCE)) {
--			pci_write_config_byte(dev, PCI_ROM_ADDRESS,
-+			pci_write_config_dword(dev, PCI_ROM_ADDRESS,
- 				dev->resource[PCI_ROM_RESOURCE].start | PCI_ROM_ADDRESS_ENABLE);
- 			printk(KERN_INFO "HPT345: ROM enabled at 0x%08lx\n",
- 				dev->resource[PCI_ROM_RESOURCE].start);
-diff --git a/drivers/ide/pci/hpt366.c b/drivers/ide/pci/hpt366.c
---- a/drivers/ide/pci/hpt366.c
-+++ b/drivers/ide/pci/hpt366.c
-@@ -1334,9 +1334,13 @@ static int __devinit init_hpt366(struct 
- static unsigned int __devinit init_chipset_hpt366(struct pci_dev *dev, const char *name)
- {
- 	int ret = 0;
--	/* FIXME: Not portable */
-+
-+	/*
-+	 * FIXME: Not portable. Also, why do we enable the ROM in the first place?
-+	 * We don't seem to be using it.
-+	 */
- 	if (dev->resource[PCI_ROM_RESOURCE].start)
--		pci_write_config_byte(dev, PCI_ROM_ADDRESS,
-+		pci_write_config_dword(dev, PCI_ROM_ADDRESS,
- 			dev->resource[PCI_ROM_RESOURCE].start | PCI_ROM_ADDRESS_ENABLE);
- 
- 	pci_write_config_byte(dev, PCI_CACHE_LINE_SIZE, (L1_CACHE_BYTES / 4));
-diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
---- a/drivers/net/forcedeth.c
-+++ b/drivers/net/forcedeth.c
-@@ -1888,6 +1888,9 @@ static int nv_open(struct net_device *de
- 		writel(NVREG_MIISTAT_MASK, base + NvRegMIIStatus);
- 		dprintk(KERN_INFO "startup: got 0x%08x.\n", miistat);
- 	}
-+	/* set linkspeed to invalid value, thus force nv_update_linkspeed
-+	 * to init hw */
-+	np->linkspeed = 0; 
- 	ret = nv_update_linkspeed(dev);
- 	nv_start_rx(dev);
- 	nv_start_tx(dev);
-diff --git a/drivers/net/sungem.c b/drivers/net/sungem.c
---- a/drivers/net/sungem.c
-+++ b/drivers/net/sungem.c
-@@ -2816,7 +2816,7 @@ static int gem_ioctl(struct net_device *
- 
- #if (!defined(__sparc__) && !defined(CONFIG_PPC_PMAC))
- /* Fetch MAC address from vital product data of PCI ROM. */
--static void find_eth_addr_in_vpd(void __iomem *rom_base, int len, unsigned char *dev_addr)
-+static int find_eth_addr_in_vpd(void __iomem *rom_base, int len, unsigned char *dev_addr)
- {
- 	int this_offset;
- 
-@@ -2837,35 +2837,27 @@ static void find_eth_addr_in_vpd(void __
- 
- 		for (i = 0; i < 6; i++)
- 			dev_addr[i] = readb(p + i);
--		break;
-+		return 1;
- 	}
-+	return 0;
- }
- 
- static void get_gem_mac_nonobp(struct pci_dev *pdev, unsigned char *dev_addr)
- {
--	u32 rom_reg_orig;
--	void __iomem *p;
--
--	if (pdev->resource[PCI_ROM_RESOURCE].parent == NULL) {
--		if (pci_assign_resource(pdev, PCI_ROM_RESOURCE) < 0)
--			goto use_random;
--	}
--
--	pci_read_config_dword(pdev, pdev->rom_base_reg, &rom_reg_orig);
--	pci_write_config_dword(pdev, pdev->rom_base_reg,
--			       rom_reg_orig | PCI_ROM_ADDRESS_ENABLE);
-+	size_t size;
-+	void __iomem *p = pci_map_rom(pdev, &size);
- 
--	p = ioremap(pci_resource_start(pdev, PCI_ROM_RESOURCE), (64 * 1024));
--	if (p != NULL && readb(p) == 0x55 && readb(p + 1) == 0xaa)
--		find_eth_addr_in_vpd(p, (64 * 1024), dev_addr);
-+	if (p) {
-+			int found;
- 
--	if (p != NULL)
--		iounmap(p);
--
--	pci_write_config_dword(pdev, pdev->rom_base_reg, rom_reg_orig);
--	return;
-+		found = readb(p) == 0x55 &&
-+			readb(p + 1) == 0xaa &&
-+			find_eth_addr_in_vpd(p, (64 * 1024), dev_addr);
-+		pci_unmap_rom(pdev, p);
-+		if (found)
-+			return;
-+	}
- 
--use_random:
- 	/* Sun MAC prefix then 3 random bytes. */
- 	dev_addr[0] = 0x08;
- 	dev_addr[1] = 0x00;
-diff --git a/drivers/net/sunhme.c b/drivers/net/sunhme.c
---- a/drivers/net/sunhme.c
-+++ b/drivers/net/sunhme.c
-@@ -2954,7 +2954,7 @@ static int is_quattro_p(struct pci_dev *
- }
- 
- /* Fetch MAC address from vital product data of PCI ROM. */
--static void find_eth_addr_in_vpd(void __iomem *rom_base, int len, int index, unsigned char *dev_addr)
-+static int find_eth_addr_in_vpd(void __iomem *rom_base, int len, int index, unsigned char *dev_addr)
- {
- 	int this_offset;
- 
-@@ -2977,42 +2977,33 @@ static void find_eth_addr_in_vpd(void __
- 
- 			for (i = 0; i < 6; i++)
- 				dev_addr[i] = readb(p + i);
--			break;
-+			return 1;
- 		}
- 		index--;
- 	}
-+	return 0;
- }
- 
- static void get_hme_mac_nonsparc(struct pci_dev *pdev, unsigned char *dev_addr)
- {
--	u32 rom_reg_orig;
--	void __iomem *p;
--	int index;
-+	size_t size;
-+	void __iomem *p = pci_map_rom(pdev, &size);
- 
--	index = 0;
--	if (is_quattro_p(pdev))
--		index = PCI_SLOT(pdev->devfn);
--
--	if (pdev->resource[PCI_ROM_RESOURCE].parent == NULL) {
--		if (pci_assign_resource(pdev, PCI_ROM_RESOURCE) < 0)
--			goto use_random;
-+	if (p) {
-+		int index = 0;
-+		int found;
-+
-+		if (is_quattro_p(pdev))
-+			index = PCI_SLOT(pdev->devfn);
-+
-+		found = readb(p) == 0x55 &&
-+			readb(p + 1) == 0xaa &&
-+			find_eth_addr_in_vpd(p, (64 * 1024), index, dev_addr);
-+		pci_unmap_rom(pdev, p);
-+		if (found)
-+			return;
- 	}
- 
--	pci_read_config_dword(pdev, pdev->rom_base_reg, &rom_reg_orig);
--	pci_write_config_dword(pdev, pdev->rom_base_reg,
--			       rom_reg_orig | PCI_ROM_ADDRESS_ENABLE);
--
--	p = ioremap(pci_resource_start(pdev, PCI_ROM_RESOURCE), (64 * 1024));
--	if (p != NULL && readb(p) == 0x55 && readb(p + 1) == 0xaa)
--		find_eth_addr_in_vpd(p, (64 * 1024), index, dev_addr);
--
--	if (p != NULL)
--		iounmap(p);
--
--	pci_write_config_dword(pdev, pdev->rom_base_reg, rom_reg_orig);
--	return;
--
--use_random:
- 	/* Sun MAC prefix then 3 random bytes. */
- 	dev_addr[0] = 0x08;
- 	dev_addr[1] = 0x00;
-diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
---- a/drivers/usb/serial/ftdi_sio.c
-+++ b/drivers/usb/serial/ftdi_sio.c
-@@ -874,7 +874,7 @@ static void ftdi_determine_type(struct u
- 	unsigned interfaces;
- 
- 	/* Assume it is not the original SIO device for now. */
--	priv->baud_base = 48000000 / 16;
-+	priv->baud_base = 48000000 / 2;
- 	priv->write_offset = 0;
- 
- 	version = le16_to_cpu(udev->descriptor.bcdDevice);
-diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c
---- a/fs/compat_ioctl.c
-+++ b/fs/compat_ioctl.c
-@@ -798,13 +798,16 @@ static int routing_ioctl(unsigned int fd
- 		r = (void *) &r4;
- 	}
- 
--	if (ret)
--		return -EFAULT;
-+	if (ret) {
-+		ret = -EFAULT;
-+		goto out;
-+	}
- 
- 	set_fs (KERNEL_DS);
- 	ret = sys_ioctl (fd, cmd, (unsigned long) r);
- 	set_fs (old_fs);
- 
-+out:
- 	if (mysock)
- 		sockfd_put(mysock);
- 
-diff --git a/fs/jfs/inode.c b/fs/jfs/inode.c
---- a/fs/jfs/inode.c
-+++ b/fs/jfs/inode.c
-@@ -128,21 +128,21 @@ void jfs_delete_inode(struct inode *inod
- {
- 	jfs_info("In jfs_delete_inode, inode = 0x%p", inode);
- 
--	if (is_bad_inode(inode) ||
--	    (JFS_IP(inode)->fileset != cpu_to_le32(FILESYSTEM_I)))
--			return;
-+	if (!is_bad_inode(inode) &&
-+	    (JFS_IP(inode)->fileset == cpu_to_le32(FILESYSTEM_I))) {
- 
--	if (test_cflag(COMMIT_Freewmap, inode))
--		jfs_free_zero_link(inode);
-+		if (test_cflag(COMMIT_Freewmap, inode))
-+			jfs_free_zero_link(inode);
- 
--	diFree(inode);
-+		diFree(inode);
- 
--	/*
--	 * Free the inode from the quota allocation.
--	 */
--	DQUOT_INIT(inode);
--	DQUOT_FREE_INODE(inode);
--	DQUOT_DROP(inode);
-+		/*
-+		 * Free the inode from the quota allocation.
-+		 */
-+		DQUOT_INIT(inode);
-+		DQUOT_FREE_INODE(inode);
-+		DQUOT_DROP(inode);
-+	}
- 
- 	clear_inode(inode);
- }
-diff --git a/mm/mempolicy.c b/mm/mempolicy.c
---- a/mm/mempolicy.c
-+++ b/mm/mempolicy.c
-@@ -333,8 +333,13 @@ check_range(struct mm_struct *mm, unsign
- 		if (prev && prev->vm_end < vma->vm_start)
- 			return ERR_PTR(-EFAULT);
- 		if ((flags & MPOL_MF_STRICT) && !is_vm_hugetlb_page(vma)) {
-+			unsigned long endvma = vma->vm_end; 
-+			if (endvma > end)
-+				endvma = end;
-+			if (vma->vm_start > start)
-+				start = vma->vm_start;
- 			err = check_pgd_range(vma->vm_mm,
--					   vma->vm_start, vma->vm_end, nodes);
-+					   start, endvma, nodes);
- 			if (err) {
- 				first = ERR_PTR(err);
- 				break;
-diff --git a/net/ipv4/netfilter/ipt_MASQUERADE.c b/net/ipv4/netfilter/ipt_MASQUERADE.c
---- a/net/ipv4/netfilter/ipt_MASQUERADE.c
-+++ b/net/ipv4/netfilter/ipt_MASQUERADE.c
-@@ -95,6 +95,12 @@ masquerade_target(struct sk_buff **pskb,
- 	IP_NF_ASSERT(ct && (ctinfo == IP_CT_NEW || ctinfo == IP_CT_RELATED
- 	                    || ctinfo == IP_CT_RELATED + IP_CT_IS_REPLY));
- 
-+	/* Source address is 0.0.0.0 - locally generated packet that is
-+	 * probably not supposed to be masqueraded.
-+	 */
-+	if (ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.src.ip == 0)
-+		return NF_ACCEPT;
-+
- 	mr = targinfo;
- 	rt = (struct rtable *)(*pskb)->dst;
- 	newsrc = inet_select_addr(out, rt->rt_gateway, RT_SCOPE_UNIVERSE);

Added: people/waldi/linux-2.6/debian/patches-debian/powerpc-build-links.patch
===================================================================
--- people/waldi/linux-2.6/debian/patches-debian/powerpc-build-links.patch	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-debian/powerpc-build-links.patch	2005-11-06 16:19:16 UTC (rev 4733)
@@ -0,0 +1,24 @@
+diff -urN ../orig/linux-2.6-2.6.13+2.6.14-rc5/arch/ppc/Makefile linux-2.6-2.6.13+2.6.14-rc5/arch/ppc/Makefile
+--- ../orig/linux-2.6-2.6.13+2.6.14-rc5/arch/ppc/Makefile	2005-10-22 18:17:48.000000000 +0000
++++ linux-2.6-2.6.13+2.6.14-rc5/arch/ppc/Makefile	2005-10-23 13:27:47.000000000 +0000
+@@ -113,7 +113,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
+ 
+ # 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)'

Deleted: people/waldi/linux-2.6/debian/patches-debian/powerpc-fix-power3-ftbfs.patch
===================================================================
--- people/waldi/linux-2.6/debian/patches-debian/powerpc-fix-power3-ftbfs.patch	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-debian/powerpc-fix-power3-ftbfs.patch	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,27 +0,0 @@
-#! /bin/sh -e 
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Description: Works around a broken build system, namely the
-## DP: Description: simple bootloader on power 3/4.
-## DP: Misc: Pulled from the ubuntu tree.
-## DP: Patch author: fabbione at ubuntu.com
-## DP: Upstream status: FTBFS fix, guess it will be fixed upstream too
-
-. $(dirname $0)/DPATCH
-
- at DPATCH@
-diff -urNad linux-source-2.6.10-2.6.10/arch/ppc/boot/simple/misc-prep.c /usr/src/dpatchtemp/dpep.cQRwcC/linux-source-2.6.10-2.6.10/arch/ppc/boot/simple/misc-prep.c
---- linux-source-2.6.10-2.6.10/arch/ppc/boot/simple/misc-prep.c	2004-12-24 22:33:51.000000000 +0100
-+++ /usr/src/dpatchtemp/dpep.cQRwcC/linux-source-2.6.10-2.6.10/arch/ppc/boot/simple/misc-prep.c	2004-12-28 10:43:29.838010536 +0100
-@@ -152,9 +152,11 @@
- 		hold_residual->VitalProductData.Reserved5 = 0xdeadbeef;
- 	}
- 
-+#if defined(CONFIG_6xx)
- 	/* Now go and clear out the BATs and ensure that our MSR is
- 	 * correct .*/
- 	disable_6xx_mmu();
-+#endif
- 
- 	/* Make r3 be a pointer to the residual data. */
- 	return (unsigned long)hold_residual;

Modified: people/waldi/linux-2.6/debian/patches-debian/powerpc-g3-750cxe.patch
===================================================================
--- people/waldi/linux-2.6/debian/patches-debian/powerpc-g3-750cxe.patch	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-debian/powerpc-g3-750cxe.patch	2005-11-06 16:19:16 UTC (rev 4733)
@@ -8,37 +8,43 @@
 . $(dirname $0)/DPATCH
 
 @DPATCH@
---- linux-2.6.11.orig/arch/ppc/kernel/cputable.c	2005-03-02 08:38:09.000000000 +0100
-+++ linux-2.6.11_nico/arch/ppc/kernel/cputable.c	2005-03-04 15:39:11.032975088 +0100
-@@ -198,20 +198,6 @@
+--- linux-2.6.14-rc1/arch/ppc/kernel/cputable.c	2005-09-14 08:14:43.672219560 +0200
++++ linux-2.6.14-rc1_nico/arch/ppc/kernel/cputable.c	2005-09-23 17:01:40.355003000 +0200
+@@ -198,6 +198,7 @@
  		.num_pmcs		= 4,
  		.cpu_setup		= __setup_cpu_750
  	},
--	{	/* 745/755 */
--		.pvr_mask		= 0xfffff000,
--		.pvr_value		= 0x00083000,
--		.cpu_name		= "745/755",
--		.cpu_features		= CPU_FTR_COMMON |
--			CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_MAYBE_CAN_DOZE |
--			CPU_FTR_USE_TB | CPU_FTR_L2CR | CPU_FTR_TAU |
--			CPU_FTR_HPTE_TABLE | CPU_FTR_MAYBE_CAN_NAP,
--		.cpu_user_features	= COMMON_PPC,
--		.icache_bsize		= 32,
--		.dcache_bsize		= 32,
--		.num_pmcs		= 4,
--		.cpu_setup		= __setup_cpu_750
--	},
++	// For the 750CX familly see:  http://www-306.ibm.com/chips/techlib/techlib.nsf/techdocs/291C8D0EF3EAEC1687256B72005C745C#C1
  	{	/* 750CX (80100 and 8010x?) */
  		.pvr_mask		= 0xfffffff0,
  		.pvr_value		= 0x00080100,
-@@ -254,6 +240,34 @@
+@@ -212,10 +213,10 @@
  		.num_pmcs		= 4,
  		.cpu_setup		= __setup_cpu_750cx
  	},
-+	{	/* 750CXe (00082311 or 00083311) revision 3.1 / 3.1 pre_GA */
-+		.pvr_mask		= 0xffff0fff,
-+		.pvr_value		= 0x00080311,
-+		.cpu_name		= "750CXe rev 3.1",
+-	{	/* 750CX (82201 and 82202) */
+-		.pvr_mask		= 0xfffffff0,
+-		.pvr_value		= 0x00082200,
+-		.cpu_name		= "750CX",
++	{	/* 750CXe (82202) */
++		.pvr_mask		= 0xffffffff,
++		.pvr_value		= 0x00082202,
++		.cpu_name		= "750CXe rev 2.2",
+ 		.cpu_features		= CPU_FTR_COMMON |
+ 			CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_MAYBE_CAN_DOZE |
+ 			CPU_FTR_USE_TB | CPU_FTR_L2CR | CPU_FTR_TAU |
+@@ -226,10 +227,24 @@
+ 		.num_pmcs		= 4,
+ 		.cpu_setup		= __setup_cpu_750cx
+ 	},
+-	{	/* 750CXe (82214) */
+-		.pvr_mask		= 0xfffffff0,
+-		.pvr_value		= 0x00082210,
+-		.cpu_name		= "750CXe",
++	{	/* 750CXe (82214 & 82314) */
++		.pvr_mask		= 0xfffff0ff,
++		.pvr_value		= 0x00082214,
++		.cpu_name		= "750CXe rev 2.4",
 +		.cpu_features		= CPU_FTR_COMMON |
 +			CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_MAYBE_CAN_DOZE |
 +			CPU_FTR_USE_TB | CPU_FTR_L2CR | CPU_FTR_TAU |
@@ -49,10 +55,19 @@
 +		.num_pmcs		= 4,
 +		.cpu_setup		= __setup_cpu_750cx
 +	},
-+	{	/* 745/755 */
-+		.pvr_mask		= 0xfffff000,
-+		.pvr_value		= 0x00083000,
-+		.cpu_name		= "745/755",
++	{	/* 750CXe (00082311 or 00083311) revision 3.1 / 3.1 pre_GA */
++		.pvr_mask		= 0xffff0fff,
++		.pvr_value		= 0x00080311,
++		.cpu_name		= "750CXe rev 3.1",
+ 		.cpu_features		= CPU_FTR_COMMON |
+ 			CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_MAYBE_CAN_DOZE |
+ 			CPU_FTR_USE_TB | CPU_FTR_L2CR | CPU_FTR_TAU |
+@@ -243,7 +258,21 @@
+ 	{	/* 750CXe "Gekko" (83214) */
+ 		.pvr_mask		= 0xffffffff,
+ 		.pvr_value		= 0x00083214,
+-		.cpu_name		= "750CXe",
++		.cpu_name		= "750CXe 'Gekko'",
 +		.cpu_features		= CPU_FTR_COMMON |
 +			CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_MAYBE_CAN_DOZE |
 +			CPU_FTR_USE_TB | CPU_FTR_L2CR | CPU_FTR_TAU |
@@ -61,8 +76,12 @@
 +		.icache_bsize		= 32,
 +		.dcache_bsize		= 32,
 +		.num_pmcs		= 4,
-+		.cpu_setup		= __setup_cpu_750
++		.cpu_setup		= __setup_cpu_750cx
 +	},
- 	{	/* 750FX rev 1.x */
- 		.pvr_mask		= 0xffffff00,
- 		.pvr_value		= 0x70000100,
++	{	/* 750CX (82201 and 82202) */
++		.pvr_mask		= 0xfffffff0,
++		.pvr_value		= 0x00082200,
++		.cpu_name		= "750CX",
+ 		.cpu_features		= CPU_FTR_COMMON |
+ 			CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_MAYBE_CAN_DOZE |
+ 			CPU_FTR_USE_TB | CPU_FTR_L2CR | CPU_FTR_TAU |

Modified: people/waldi/linux-2.6/debian/patches-debian/powerpc-mkvmlinuz-support.patch
===================================================================
--- people/waldi/linux-2.6/debian/patches-debian/powerpc-mkvmlinuz-support.patch	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-debian/powerpc-mkvmlinuz-support.patch	2005-11-06 16:19:16 UTC (rev 4733)
@@ -20,7 +20,7 @@
 #
 --- linux-kernel-2.6.12-2.6.12/arch/ppc/boot/Makefile.orig	2005-07-15 12:46:28.000000000 +0000
 +++ linux-kernel-2.6.12-2.6.12/arch/ppc/boot/Makefile	2005-07-15 12:55:56.000000000 +0000
-@@ -32,3 +32,31 @@
+@@ -32,3 +32,37 @@
  $(bootdir-y): $(addprefix $(obj)/,$(subdir-y)) \
  		$(addprefix $(obj)/,$(hostprogs-y))
  	$(Q)$(MAKE) $(build)=$(obj)/$@ $(MAKECMDGOALS)
@@ -28,17 +28,24 @@
 +mkvmlinuz_support_install:
 +	# mkvmlinuz support, based on work done originally by Jens Schmalzing <jensen at debian.org>
 +	mkdir -p $(INSTALL_MKVMLINUZ)/boot
-+	install -m 644 -o root -g root ld.script openfirmware/note $(INSTALL_MKVMLINUZ)/boot
++	install -m 644 -o root -g root ld.script $(INSTALL_MKVMLINUZ)/boot
++	if [ -e openfirmware/note ]; then \
++		install -m 644 -o root -g root openfirmware/note $(INSTALL_MKVMLINUZ)/boot; \
++	fi
 +
 +	mkdir -p $(INSTALL_MKVMLINUZ)/lib
 +	install -m 644 -o root -g root ../../../lib/lib.a $(INSTALL_MKVMLINUZ)/lib
 +	install -m 644 -o root -g root lib/lib.a $(INSTALL_MKVMLINUZ)/lib/ppc.a
 +	install -m 644 -o root -g root common/lib.a $(INSTALL_MKVMLINUZ)/lib/common.a
-+	install -m 644 -o root -g root of1275/lib.a $(INSTALL_MKVMLINUZ)/lib/of.a
++	if [ -e of1275/lib.a ]; then \
++		install -m 644 -o root -g root of1275/lib.a $(INSTALL_MKVMLINUZ)/lib/of.a; \
++	fi
 +
-+	mkdir -p $(INSTALL_MKVMLINUZ)/obj/openfirmware
-+	install -m 644 -o root -g root openfirmware/*.o $(INSTALL_MKVMLINUZ)/obj/openfirmware
-+	rm -f $(INSTALL_MKVMLINUZ)/obj/openfirmware/image*
++	if [ -e openfirmware/common.o ]; then \
++		mkdir -p $(INSTALL_MKVMLINUZ)/obj/openfirmware; \
++		install -m 644 -o root -g root openfirmware/*.o $(INSTALL_MKVMLINUZ)/obj/openfirmware; \
++		rm -f $(INSTALL_MKVMLINUZ)/obj/openfirmware/image*; \
++	fi
 +
 +	mkdir -p $(INSTALL_MKVMLINUZ)/obj/simple
 +	install -m 644 -o root -g root simple/*.o $(INSTALL_MKVMLINUZ)/obj/simple
@@ -51,4 +58,3 @@
 +	install -m 755 -o root -g root utils/mknote $(INSTALL_MKVMLINUZ)/utils
 +	install -m 755 -o root -g root utils/mkprep $(INSTALL_MKVMLINUZ)/utils
 +	install -m 755 -o root -g root utils/mktree $(INSTALL_MKVMLINUZ)/utils
-+

Deleted: people/waldi/linux-2.6/debian/patches-debian/powerpc-pmac-cache-power34-fix.patch
===================================================================
--- people/waldi/linux-2.6/debian/patches-debian/powerpc-pmac-cache-power34-fix.patch	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-debian/powerpc-pmac-cache-power34-fix.patch	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,30 +0,0 @@
-#! /bin/sh -e
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Description: [PATCH] ppc32: fixes FTBFS on power3/4.
-## DP: This patch doesn't build pmac_cache.S on power3/power4, since it is
-## DP: broken there and not needed.
-## DP: Patch author: Sven Luther <luther at debian.org>
-## DP: Upstream status: FTBFS, submitted to linuxppc-dev and benh.
-
-. $(dirname $0)/DPATCH
-
- at DPATCH@
---- kernel-source-2.6.11/arch/ppc/platforms/Makefile.orig	2005-03-27 11:38:25.000000000 +0200
-+++ kernel-source-2.6.11/arch/ppc/platforms/Makefile	2005-03-27 11:39:23.000000000 +0200
-@@ -9,9 +9,15 @@
- ifeq ($(CONFIG_APUS),y)
- obj-$(CONFIG_PCI)		+= apus_pci.o
- endif
-+ifeq ($(CONFIG_6xx),y)
- obj-$(CONFIG_PPC_PMAC)		+= pmac_pic.o pmac_setup.o pmac_time.o \
- 					pmac_feature.o pmac_pci.o pmac_sleep.o \
- 					pmac_low_i2c.o pmac_cache.o
-+else
-+obj-$(CONFIG_PPC_PMAC)		+= pmac_pic.o pmac_setup.o pmac_time.o \
-+					pmac_feature.o pmac_pci.o pmac_sleep.o \
-+					pmac_low_i2c.o
-+endif
- obj-$(CONFIG_PPC_CHRP)		+= chrp_setup.o chrp_time.o chrp_pci.o \
- 					chrp_pegasos_eth.o
- obj-$(CONFIG_PPC_PREP)		+= prep_pci.o prep_setup.o

Deleted: people/waldi/linux-2.6/debian/patches-debian/powerpc-pmac-sound-check.patch
===================================================================
--- people/waldi/linux-2.6/debian/patches-debian/powerpc-pmac-sound-check.patch	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-debian/powerpc-pmac-sound-check.patch	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,30 +0,0 @@
-# Description: checks if ppc_md.feature_call is present before using it.
-# Patch author: David Woodhouse <dwmw2 at infradead.org>
-# Upstream status: submitted.
-
-We shouldn't be assuming that ppc_md.feature_call will be present.
-
-Signed-off-by: David Woodhouse <dwmw2 at infradead.org>
-
---- linux-2.6.12/sound/ppc/pmac.c.orig	2005-08-17 11:19:46.000000000 +0100
-+++ linux-2.6.12/sound/ppc/pmac.c	2005-08-17 11:20:05.000000000 +0100
-@@ -765,7 +765,8 @@ snd_pmac_ctrl_intr(int irq, void *devid,
-  */
- static void snd_pmac_sound_feature(pmac_t *chip, int enable)
- {
--	ppc_md.feature_call(PMAC_FTR_SOUND_CHIP_ENABLE, chip->node, 0, enable);
-+	if (ppc_md.feature_call)
-+		ppc_md.feature_call(PMAC_FTR_SOUND_CHIP_ENABLE, chip->node, 0, enable);
- }
- 
- /*
-
--- 
-dwmw2
-
----------------------------------------------------------------------------------------
-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.
-
-
-

Deleted: people/waldi/linux-2.6/debian/patches-debian/powerpc-ppc64-biarch-override.patch
===================================================================
--- people/waldi/linux-2.6/debian/patches-debian/powerpc-ppc64-biarch-override.patch	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-debian/powerpc-ppc64-biarch-override.patch	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,44 +0,0 @@
-# Subject: [patch 059/167] ppc64: override command line AS/LD/CC variables when adding -m64 and co for biarch compilers
-# To: torvalds at osdl.org
-# Cc: akpm at osdl.org, sven.luther at wanadoo.fr, anton at samba.org,
-#    benh at kernel.crashing.org, paulus at samba.org
-# From: akpm at osdl.org
-#
-# The following kind of calls currently fails :
-#
-#  make ARCH=ppc64 CC="gcc-3.4"
-#
-# Since the code for detecting a biarch compiler and adding the needed 64bit
-# magic argument fails if the AS/LD/CC commands are overriden in the command
-# line.
-#
-# The attached patch fixes this by using the make override and += directive,
-# but i am not 100% sure this will work without gmake, as i am no Makefile
-# expert.
-# 
-# Cc: Paul Mackerras <paulus at samba.org>
-# Cc: Anton Blanchard <anton at samba.org>
-# Cc: Benjamin Herrenschmidt <benh at kernel.crashing.org>
-# Signed-off-by: Andrew Morton <akpm at osdl.org>
-# ---
-#
-# arch/ppc64/Makefile |    6 +++---
-# 1 files changed, 3 insertions(+), 3 deletions(-)
-#
-diff -puN arch/ppc64/Makefile~ppc64-override-command-line-as-ld-cc-variables-when-adding-m64-and-co-for-biarch-compilers arch/ppc64/Makefile
---- 25/arch/ppc64/Makefile~ppc64-override-command-line-as-ld-cc-variables-when-adding-m64-and-co-for-biarch-compilers	2005-06-21 16:29:10.000000000 -0700
-+++ 25-akpm/arch/ppc64/Makefile	2005-06-21 16:29:10.000000000 -0700
-@@ -35,9 +35,9 @@ CROSS32AS	:= $(AS) -a32
- CROSS32LD	:= $(LD) -m elf32ppc
- CROSS32OBJCOPY	:= $(OBJCOPY)
- endif
--AS              := $(AS) -a64
--LD              := $(LD) -m elf64ppc
--CC		:= $(CC) -m64
-+override AS	+= -a64
-+override LD	+= -m elf64ppc
-+override CC	+= -m64
- endif
- 
- export CROSS32CC CROSS32AS CROSS32LD CROSS32OBJCOPY
-_

Added: people/waldi/linux-2.6/debian/patches-debian/powerpc64-audit_sysctl-build.patch
===================================================================
--- people/waldi/linux-2.6/debian/patches-debian/powerpc64-audit_sysctl-build.patch	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-debian/powerpc64-audit_sysctl-build.patch	2005-11-06 16:19:16 UTC (rev 4733)
@@ -0,0 +1,32 @@
+Date: Mon, 31 Oct 2005 22:10:59 +0900
+From: Horms <horms at verge.net.au>
+To: linuxppc-dev at ozlabs.org
+Cc: Andrew Morton <akpm at osdl.org>, david at woodhou.se
+Subject: audit_sysctl_exit can only be used with CONF_AUDIT_SYSCTL
+
+This section of code calls .audit_syscal_exit,
+but is inside CONFIG_AUDIT, so it will fail to build
+if CONFIG_AUDITSYSCALL is not defined. 
+
+After discussion with David Woodhouse, change the 
+ifdef to CONFIG_AUDITSYSCALL
+
+
+Signed-off-by: Horms <horms at verge.net.au>
+
+--
+Backported to 2.6.14 by Horms
+
+diff --git a/arch/ppc64/kernel/entry.S b/arch/ppc64/kernel/entry.S
+index 984a106..2d22bf0 100644
+--- a/arch/ppc64/kernel/entry.S
++++ b/arch/ppc64/kernel/entry.S
+@@ -279,7 +279,7 @@ _GLOBAL(ppc32_rt_sigsuspend)
+ 	bne	syscall_exit
+ 	/* If sigsuspend() returns zero, we are going into a signal handler. We
+ 	   may need to call audit_syscall_exit() to mark the exit from sigsuspend() */
+-#ifdef CONFIG_AUDIT
++#ifdef CONFIG_AUDITSYSCALL
+ 	ld	r3,PACACURRENT(r13)
+ 	ld	r4,AUDITCONTEXT(r3)
+ 	cmpdi	0,r4,0

Modified: people/waldi/linux-2.6/debian/patches-debian/qla2xxx-removed.patch
===================================================================
--- people/waldi/linux-2.6/debian/patches-debian/qla2xxx-removed.patch	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-debian/qla2xxx-removed.patch	2005-11-06 16:19:16 UTC (rev 4733)
@@ -9,3 +9,12 @@
  obj-$(CONFIG_SCSI_LPFC)		+= lpfc/
  obj-$(CONFIG_SCSI_PAS16)	+= pas16.o
  obj-$(CONFIG_SCSI_SEAGATE)	+= seagate.o
+--- a/drivers/scsi/qla2xxx/Kconfig	2005-10-18 20:05:54.000000000 +0900
++++ b/drivers/scsi/qla2xxx/Kconfig	2005-10-18 20:06:07.000000000 +0900
+@@ -1,5 +1,5 @@
+ config SCSI_QLA2XXX
+ 	tristate
+-	default (SCSI && PCI)
++	default (n)
+ 	depends on SCSI && PCI
+ 

Added: people/waldi/linux-2.6/debian/patches-debian/s390-uaccess-const.patch
===================================================================
--- people/waldi/linux-2.6/debian/patches-debian/s390-uaccess-const.patch	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-debian/s390-uaccess-const.patch	2005-11-06 16:19:16 UTC (rev 4733)
@@ -0,0 +1,63 @@
+[patch] s390: const pointer uaccess.
+
+From: Martin Schwidefsky <schwidefsky at de.ibm.com>
+
+Using __typeof__(*ptr) on a pointer to const makes the __x
+variable in __get_user const as well. The latest gcc will
+refuse to write to it.
+
+Signed-off-by: Martin Schwidefsky <schwidefsky at de.ibm.com>
+
+diffstat:
+ include/asm-s390/uaccess.h |   28 ++++++++++++++++++++++------
+ 1 files changed, 22 insertions(+), 6 deletions(-)
+
+diff -urpN linux-2.6/include/asm-s390/uaccess.h linux-2.6-patched/include/asm-s390/uaccess.h
+--- linux-2.6/include/asm-s390/uaccess.h	2005-10-19 15:54:19.000000000 +0200
++++ linux-2.6-patched/include/asm-s390/uaccess.h	2005-10-19 15:54:44.000000000 +0200
+@@ -200,21 +200,37 @@ extern int __put_user_bad(void) __attrib
+ 
+ #define __get_user(x, ptr)					\
+ ({								\
+-	__typeof__(*(ptr)) __x;					\
+ 	int __gu_err;						\
+         __chk_user_ptr(ptr);                                    \
+ 	switch (sizeof(*(ptr))) {				\
+-	case 1:							\
+-	case 2:							\
+-	case 4:							\
+-	case 8:							\
++	case 1: {						\
++		unsigned char __x;				\
+ 		__get_user_asm(__x, ptr, __gu_err);		\
++		(x) = (__typeof__(*(ptr))) __x;			\
+ 		break;						\
++	};							\
++	case 2: {						\
++		unsigned short __x;				\
++		__get_user_asm(__x, ptr, __gu_err);		\
++		(x) = (__typeof__(*(ptr))) __x;			\
++		break;						\
++	};							\
++	case 4: {						\
++		unsigned int __x;				\
++		__get_user_asm(__x, ptr, __gu_err);		\
++		(x) = (__typeof__(*(ptr))) __x;			\
++		break;						\
++	};							\
++	case 8: {						\
++		unsigned long long __x;				\
++		__get_user_asm(__x, ptr, __gu_err);		\
++		(x) = (__typeof__(*(ptr))) __x;			\
++		break;						\
++	};							\
+ 	default:						\
+ 		__get_user_bad();				\
+ 		break;						\
+ 	}							\
+-	(x) = __x;						\
+ 	__gu_err;						\
+ })
+ 
+
+

Deleted: people/waldi/linux-2.6/debian/patches-debian/series/2.6.13-1
===================================================================
--- people/waldi/linux-2.6/debian/patches-debian/series/2.6.13-1	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-debian/series/2.6.13-1	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,27 +0,0 @@
-+ patch-2.6.13.1
-+ amd64-int3-fix.patch
-+ drivers-scsi-megaraid_splitup.patch
-+ fbdev-radeon-noaccel.patch
-+ fs-asfs-2.patch
-+ ia64-irq-affinity-upfix.patch
-+ m68k-42_dma.patch 
-+ m68k-sonic.patch
-+ modular-ide.patch
-+ modular-ide-pnp.patch
-+ powerpc-calibrate-tau.patch
-+ powerpc-fix-power3-ftbfs.patch
-+ powerpc-g3-750cxe.patch
-+ powerpc-g4-l2-flush-errata.patch
-+ powerpc-mkvmlinuz-support.patch
-+ powerpc-pmac-cache-power34-fix.patch
-+ powerpc-serial.patch
-+ qla2xxx-removed.patch
-+ remove-references-to-removed-drivers.patch
-+ sparc64-hme-lockup.patch
-+ tty-locking-fixes9.patch
-+ version.patch
-+ powerpc-mv643xx-hotplug-support.patch
-+ patch-2.6.13.2
-+ amd64-tlb-flush-sigsegv-fix.patch
-+ powerpc-apus.patch
-

Added: people/waldi/linux-2.6/debian/patches-debian/series/2.6.14-1
===================================================================
--- people/waldi/linux-2.6/debian/patches-debian/series/2.6.14-1	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-debian/series/2.6.14-1	2005-11-06 16:19:16 UTC (rev 4733)
@@ -0,0 +1,27 @@
++ amd64-int3-fix.patch
+#+ drivers-scsi-megaraid_splitup.patch
++ fbdev-radeon-noaccel.patch
++ fs-asfs-2.patch
++ ia64-irq-affinity-upfix.patch
+#- m68k-42_dma.patch
+#- m68k-sonic.patch
+#+ m68k-arch.patch
+#+ m68k-drivers.patch
+#+ m68k-kernel.patch
+#+ m68k-include-m68k.patch
++ modular-ide.patch
++ modular-ide-pnp.patch
++ powerpc-calibrate-tau.patch
++ powerpc-g3-750cxe.patch
+#+ powerpc-g4-l2-flush-errata.patch
++ powerpc-mkvmlinuz-support.patch
++ powerpc-serial.patch
++ qla2xxx-removed.patch
+#+ remove-references-to-removed-drivers.patch
++ sparc64-hme-lockup.patch
++ tty-locking-fixes9.patch
++ version.patch
++ powerpc-mv643xx-hotplug-support.patch
++ powerpc-apus.patch
++ s390-uaccess-const.patch
++ powerpc-build-links.patch

Added: people/waldi/linux-2.6/debian/patches-debian/series/2.6.14-2
===================================================================
--- people/waldi/linux-2.6/debian/patches-debian/series/2.6.14-2	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-debian/series/2.6.14-2	2005-11-06 16:19:16 UTC (rev 4733)
@@ -0,0 +1,2 @@
++ alpha-compile-fix.patch
++ powerpc64-audit_sysctl-build.patch

Added: people/waldi/linux-2.6/debian/patches-debian/series/2.6.14-3
===================================================================
--- people/waldi/linux-2.6/debian/patches-debian/series/2.6.14-3	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/patches-debian/series/2.6.14-3	2005-11-06 16:19:16 UTC (rev 4733)
@@ -0,0 +1 @@
++ net-ipconntrack-nat-fix.patch

Modified: people/waldi/linux-2.6/debian/rules
===================================================================
--- people/waldi/linux-2.6/debian/rules	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/rules	2005-11-06 16:19:16 UTC (rev 4733)
@@ -11,7 +11,7 @@
 
 include debian/rules.defs
 
-setup: $(STAMPS_DIR)/setup-stamp
+setup: debian/control $(STAMPS_DIR)/setup-stamp
 $(STAMPS_DIR)/setup-stamp: $(BUILD_DIR) $(STAMPS_DIR)
 	dh_testdir
 	$(MAKE) -f debian/rules.gen setup-$(DEB_HOST_ARCH)
@@ -41,18 +41,16 @@
 maintainerclean:
 	rm -rf $(filter-out debian, $(wildcard *))
 
-clean: unpatch
+clean: debian/control
 	dh_testdir
-	rm -f version.Debian
-	cd debian; rm -f *.kpatches.arch
-	rm -rf $(BUILD_DIR) $(STAMPS_DIR) debian/lib/python/*.pyc
+	rm -rf $(BUILD_DIR) $(STAMPS_DIR) debian/lib/python/*.pyc debian/*.kpatches.arch
 	dh_clean
 
-binary-indep:
+binary-indep: build
 	dh_testdir
 	$(MAKE) -f debian/rules.gen binary-indep
 
-binary-arch:
+binary-arch: build
 	dh_testdir
 	$(MAKE) -f debian/rules.gen binary-arch-$(DEB_HOST_ARCH)
 
@@ -85,4 +83,4 @@
 	@echo
 	exit 1
 
-.PHONY: clean build setup binary-indep binary-arch binary patch unpatch source tree
+.PHONY: clean build setup binary-indep binary-arch binary

Modified: people/waldi/linux-2.6/debian/rules.real
===================================================================
--- people/waldi/linux-2.6/debian/rules.real	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/rules.real	2005-11-06 16:19:16 UTC (rev 4733)
@@ -6,9 +6,9 @@
 # expected to be available (need to be exported from the parent process).
 #
 SHELL  := sh -e
-DEB_HOST_ARCH     := $(shell dpkg-architecture -a$(ARCH) -qDEB_HOST_ARCH)
-DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -a$(ARCH) -qDEB_HOST_GNU_TYPE)
-DEB_BUILD_ARCH    := $(shell dpkg-architecture -a$(ARCH) -qDEB_BUILD_ARCH)
+DEB_HOST_ARCH     := $(shell dpkg-architecture -a'$(ARCH)' -qDEB_HOST_ARCH)
+DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -a'$(ARCH)' -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_ARCH    := $(shell dpkg-architecture -a'$(ARCH)' -qDEB_BUILD_ARCH)
 #
 # Build the list of common config files to be included
 #
@@ -29,34 +29,32 @@
 # in Makefile.inc. @flavour@ in the expressions is going to be
 # replaced by the flavour for which the command is run. 
 #
-kpkg_header := HEADER_CLEAN_HOOK='$(CURDIR)/$(BUILD_DIR)/header-install-$(ARCH)-$(SUBARCH)'
-kpkg_header += make-kpkg --append-to-version "$(KPKG_ABINAME)"
-kpkg_header += --arch $(ARCH)
+kpkg_header += make-kpkg --append-to-version '$(KPKG_ABINAME)'
+kpkg_header += --arch '$(ARCH)'
 kpkg_header += --stem linux
 kpkg_header += --config defconfig
-kpkg_image := make-kpkg --append-to-version "$(KPKG_ABINAME)-$(FLAVOUR)"
-kpkg_image += --arch $(ARCH)
+kpkg_image := make-kpkg --append-to-version '$(KPKG_ABINAME)-$(FLAVOUR)'
+kpkg_image += --arch '$(ARCH)'
 kpkg_image += --stem linux
 kpkg_image += --initrd
 ifdef KPKG_SUBARCH
-  kpkg_image += --subarch $(KPKG_SUBARCH)
-  kpkg_header += --subarch $(KPKG_SUBARCH)
+  kpkg_image += --subarch '$(KPKG_SUBARCH)'
+  kpkg_header += --subarch '$(KPKG_SUBARCH)'
 endif
 ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
-  kpkg_header += --cross-compile=$(DEB_HOST_GNU_TYPE)
-  kpkg_image += --cross-compile=$(DEB_HOST_GNU_TYPE)
+  kpkg_header += --cross-compile='$(DEB_HOST_GNU_TYPE)'
+  kpkg_image += --cross-compile='$(DEB_HOST_GNU_TYPE)'
 endif
 setup_env := env -u ABINAME -u ARCH -u SUBARCH -u FLAVOUR -u VERSION
-setup_env += DEBIAN_ABINAME=$(ABINAME) DEBIAN_FLAVOUR=$(FLAVOUR) DEBIAN_VERSION=$(VERSION)
+setup_env += DEBIAN_ABINAME='$(ABINAME)' DEBIAN_FLAVOUR='$(FLAVOUR)' DEBIAN_VERSION='$(VERSION)'
 setup_makeflags =
 ifdef COMPILER
-  setup_makeflags += CC=$$$$(CROSS_COMPILE)$(COMPILER)
+  setup_makeflags += CC="$$$$(CROSS_COMPILE)$(COMPILER)"
 endif
 setup_env += MAKEFLAGS='$(setup_makeflags)'
 ifndef headers_dirs
   headers_dirs = $(DEB_HOST_ARCH)
 endif
-configs = debian/arch/config debian/arch/$(ARCH)/config debian/arch/$(ARCH)/$(SUBARCH)/config
 
 #
 # Targets
@@ -72,24 +70,7 @@
 setup-subarch: $(STAMPS_DIR)/setup-$(ARCH)-$(SUBARCH)
 setup-flavour: $(STAMPS_DIR)/setup-$(ARCH)-$(SUBARCH)-$(FLAVOUR)
 
-$(BUILD_DIR)/header-install-$(ARCH)-$(SUBARCH): $(TEMPLATES_DIR)/header-install.in
-	sed -e 's, at headers_dirs@,$(headers_dirs),g' $< > $@
-	chmod u+x $@
 #
-# The way to make the correct package names is to make a
-# subarch-specific post-install script...
-#
-ifdef extra_postinstall_command
-  extra_command := $(extra_postinstall_command)
-else
-  extra_command := true
-endif
-$(BUILD_DIR)/post-install-$(ARCH)-$(SUBARCH): $(TEMPLATES_DIR)/post-install.in
-	sed -e 's, at initrd_modules@,$(initrd_modules),'			\
-	    -e 's, at extra_postinstall_command@,$(extra_command),'	\
-	    -e 's, at headers_dirs@,$(headers_dirs),g'			\
-	    $< > $@
-#
 # Generates the kernel config file for a subarch by merging
 # the arch-independent config file (arch/config),
 # arch-specific config file (arch/$(karch)/config),
@@ -98,39 +79,43 @@
 # config file by setting include_common_config = no in the
 # arch/$(karch)/Makefile.inc.
 #
-$(BUILD_DIR)/config.$(ARCH)-$(SUBARCH)-$(FLAVOUR): $(basedir)/config.$(FLAVOUR)
+config_common = debian/arch/config debian/arch/$(ARCH)/config
+ifneq ($(SUBARCH),none)
+  config_common += debian/arch/$(ARCH)/$(SUBARCH)/config
+endif
+$(BUILD_DIR)/config.$(ARCH)-$(SUBARCH)-$(FLAVOUR): $(basedir)/config.$(FLAVOUR) $(config_common)
 	@echo "Generating configuration file $@:"
-	rm -f $@
-	for i in $(configs); do	\
-	  if [ -f $${i} ]; then	\
-	    cat $${i} >> $@;	\
-	  fi;			\
+	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) >> $@			 
+	cat '$(basedir)/config.$(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-$(VERSION)
+$(BUILD_DIR)/linux-source-$(UPSTREAM_VERSION).tar.bz2: DIR = $(BUILD_DIR)/linux-source-$(UPSTREAM_VERSION)
 $(BUILD_DIR)/linux-source-$(UPSTREAM_VERSION).tar.bz2: $(STAMPS_DIR)/source
-	rm -rf $@ $(DIR)
-	cp -al $(SOURCE_DIR) $(DIR)
-	chmod -R u+rw,go=rX $(DIR)
-	cd $(BUILD_DIR); tar -cjf linux-source-$(UPSTREAM_VERSION).tar.bz2 linux-source-$(UPSTREAM_VERSION)
-	rm -rf $(DIR)
+	rm -rf '$@' '$(DIR)'
+	cp -al '$(SOURCE_DIR)' '$(DIR)'
+	chmod -R u+rw,go=rX '$(DIR)'
+	cd '$(BUILD_DIR)'; tar -cjf 'linux-source-$(UPSTREAM_VERSION).tar.bz2' 'linux-source-$(UPSTREAM_VERSION)'
+	rm -rf '$(DIR)'
 
 srcfiles := $(filter-out debian, $(wildcard *))
 $(STAMPS_DIR)/source: DIR=$(BUILD_DIR)/source
 $(STAMPS_DIR)/source: debian/bin/apply
-	rm -rf $(DIR)
-	mkdir -p $(DIR)
-	cp -al $(srcfiles) $(DIR)
-	cd $(DIR); override_version=$(SOURCE_VERSION) home=$(CURDIR)/debian/patches-debian sh $(CURDIR)/debian/bin/apply
+	rm -rf '$(DIR)'
+	mkdir -p '$(DIR)'
+	cp -al $(srcfiles) '$(DIR)'
+	cd '$(DIR)'; override_version='$(SOURCE_VERSION)' override_revisions='$(REVISIONS)' home='$(CURDIR)/debian/patches-debian' sh '$(CURDIR)/debian/bin/apply'
 	#make-kpkg does this when building kernel-source.
-	mv $(DIR)/scripts/package/Makefile $(DIR)/scripts/package/Makefile.dist
-	mv $(DIR)/scripts/package/builddeb $(DIR)/scripts/package/builddeb.dist
-	echo "# Dummy Makefile" > $(DIR)/scripts/package/Makefile
-	echo "all:" >> $(DIR)/scripts/package/Makefile
-	touch $@
+	mv '$(DIR)/scripts/package/Makefile' '$(DIR)/scripts/package/Makefile.dist'
+	mv '$(DIR)/scripts/package/builddeb' '$(DIR)/scripts/package/builddeb.dist'
+	echo "# Dummy Makefile" > '$(DIR)/scripts/package/Makefile'
+	echo "all:" >> '$(DIR)/scripts/package/Makefile'
+	touch '$@'
 
 patches  := $(wildcard debian/patches-arch/$(SUBARCH).*)
 patches  += $(wildcard debian/patches-arch/$(SUBARCH)_*)
@@ -139,20 +124,21 @@
 patches  := $(strip $(patches))
 $(STAMPS_DIR)/source-$(ARCH)-$(SUBARCH): SOURCE_DIR=$(BUILD_DIR)/source
 $(STAMPS_DIR)/source-$(ARCH)-$(SUBARCH): DIR=$(BUILD_DIR)/source-$(ARCH)-$(SUBARCH)
-$(STAMPS_DIR)/source-$(ARCH)-$(SUBARCH): $(BUILD_DIR)/post-install-$(ARCH)-$(SUBARCH) $(STAMPS_DIR)/source
-	rm -rf $(DIR)
-	cp -al $(SOURCE_DIR) $(DIR)
-	mkdir -p $(DIR)/debian
-	cp debian/changelog $(DIR)/debian
-	cp debian/copyright $(DIR)/debian
-	cp debian/control $(DIR)/debian/control
-	touch $(DIR)/debian/official
+$(STAMPS_DIR)/source-$(ARCH)-$(SUBARCH): $(STAMPS_DIR)/source
+	rm -rf '$(DIR)'
+	cp -al '$(SOURCE_DIR)' '$(DIR)'
+	mkdir -p '$(DIR)/debian'
+	cp debian/changelog '$(DIR)/debian'
+	cp debian/copyright '$(DIR)/debian'
+	cp debian/control '$(DIR)/debian/control'
+	touch '$(DIR)/debian/official'
 	if [ -n '$(patches)' ]; then			\
-	  cd $(DIR);					\
-	  cat $(addprefix $(CURDIR)/,$(patches)) | patch -p1;	\
+	  cd '$(DIR)';					\
+	  for patch in $(patches); do			\
+	    cat "$(CURDIR)/$$patch" | patch -p1;	\
+	  done;						\
 	fi
-	install $< $(DIR)/debian/post-install
-	touch $@
+	touch '$@'
 #
 # This target performs a build for a particular flavour. Note
 # that in this file it should be always placed *before* the
@@ -160,29 +146,29 @@
 #
 $(STAMPS_DIR)/build-$(ARCH)-$(SUBARCH)-$(FLAVOUR): DIR=$(BUILD_DIR)/build-$(ARCH)-$(SUBARCH)-$(FLAVOUR)
 $(STAMPS_DIR)/build-$(ARCH)-$(SUBARCH)-$(FLAVOUR): $(STAMPS_DIR)/setup-$(ARCH)-$(SUBARCH)-$(FLAVOUR)
-	ln -fs $$(command -v touch) debian/build/touch.orig
-	cd $(DIR); $(setup_env) PATH=$(CURDIR)/build:$(CURDIR)/bin:$(PATH) $(kpkg_image) build
+	ln -fs "$$(command -v touch)" debian/build/touch.orig
+	cd '$(DIR)'; $(setup_env) PATH='$(CURDIR)/build:$(CURDIR)/bin:$(PATH)' $(kpkg_image) build
 ifdef image_postproc
-	cd $(DIR); $(image_postproc)
+	cd '$(DIR)'; $(image_postproc)
 endif
-	touch $@
+	touch '$@'
 
 $(STAMPS_DIR)/setup-$(ARCH)-$(SUBARCH)-$(FLAVOUR): SOURCE_DIR=$(BUILD_DIR)/source-$(ARCH)-$(SUBARCH)
 $(STAMPS_DIR)/setup-$(ARCH)-$(SUBARCH)-$(FLAVOUR): DIR=$(BUILD_DIR)/build-$(ARCH)-$(SUBARCH)-$(FLAVOUR)
 $(STAMPS_DIR)/setup-$(ARCH)-$(SUBARCH)-$(FLAVOUR): $(BUILD_DIR)/config.$(ARCH)-$(SUBARCH)-$(FLAVOUR) $(STAMPS_DIR)/source-$(ARCH)-$(SUBARCH)
-	rm -rf $(DIR)
-	cp -al $(SOURCE_DIR) $(DIR)
-	cp $< $(DIR)/.config
-	cd $(DIR); $(setup_env) $(kpkg_image) configure
-	touch $@
+	rm -rf '$(DIR)'
+	cp -al '$(SOURCE_DIR)' '$(DIR)'
+	cp '$<' '$(DIR)/.config'
+	cd '$(DIR)'; $(setup_env) $(kpkg_image) configure
+	touch '$@'
 
 $(STAMPS_DIR)/setup-$(ARCH)-$(SUBARCH): SOURCE_DIR=$(BUILD_DIR)/source-$(ARCH)-$(SUBARCH)
 $(STAMPS_DIR)/setup-$(ARCH)-$(SUBARCH): DIR=$(BUILD_DIR)/build-$(ARCH)-$(SUBARCH)
 $(STAMPS_DIR)/setup-$(ARCH)-$(SUBARCH): $(STAMPS_DIR)/source-$(ARCH)-$(SUBARCH)
-	rm -rf $(DIR)
-	cp -al $(SOURCE_DIR) $(DIR)
-	cd $(DIR); $(setup_env) $(kpkg_header) configure
-	touch $@
+	rm -rf '$(DIR)'
+	cp -al '$(SOURCE_DIR)' '$(DIR)'
+	cd '$(DIR)'; $(setup_env) $(kpkg_header) configure
+	touch '$@'
 
 install-base:
 	dh_compress
@@ -195,17 +181,22 @@
 install-doc: SOURCE_DIR=$(BUILD_DIR)/source
 install-doc: DIR=$(BUILD_DIR)/$@
 install-doc: $(STAMPS_DIR)/source
-	rm -rf $(DIR)
-	cp -al $(SOURCE_DIR) $(DIR)
-	mkdir -p $(DIR)/debian
-	cp debian/changelog $(DIR)/debian
-	cp debian/copyright $(DIR)/debian
-	cp debian/control $(DIR)/debian/control
-	touch $(DIR)/debian/official
-	cd $(DIR) && $(setup_env) make-kpkg --stem linux kernel-manual
-	cat $(DIR)/debian/files >> debian/files
-	@for i in $$(awk '{ print $$1; }' $(DIR)/debian/files); do echo mv $(BUILD_DIR)/$$i ..; mv $(BUILD_DIR)/$$i ..; done
-	rm -rf $(DIR)
+	rm -rf '$(DIR)'
+	cp -al '$(SOURCE_DIR)' '$(DIR)'
+	mkdir -p '$(DIR)/debian'
+	cp debian/changelog '$(DIR)/debian'
+	cp debian/copyright '$(DIR)/debian'
+	cp debian/control '$(DIR)/debian/control'
+	touch '$(DIR)/debian/official'
+	rm '$(DIR)/Makefile'
+	sed -e 's,^EXTRAVERSION.*$$,EXTRAVERSION =,' < '$(SOURCE_DIR)/Makefile' > '$(DIR)/Makefile'
+	cd '$(DIR)' && $(setup_env) make-kpkg --stem linux kernel-manual
+	cat '$(DIR)/debian/files' >> debian/files
+	@for i in $$(awk '{ print $$1; }' '$(DIR)/debian/files'); do	\
+	  echo "mv \"$(BUILD_DIR)/$$i\" ..";				\
+	  mv "$(BUILD_DIR)/$$i" ..;					\
+	done
+	rm -rf '$(DIR)'
 
 install-dummy:
 	dh_testdir
@@ -217,35 +208,43 @@
 
 install-image-$(ARCH)-$(SUBARCH)-$(FLAVOUR): SOURCE_DIR=$(BUILD_DIR)/build-$(ARCH)-$(SUBARCH)-$(FLAVOUR)
 install-image-$(ARCH)-$(SUBARCH)-$(FLAVOUR): DIR=$(BUILD_DIR)/$@
-install-image-$(ARCH)-$(SUBARCH)-$(FLAVOUR): $(STAMPS_DIR)/build-$(ARCH)-$(SUBARCH)-$(FLAVOUR)
-	rm -rf $(DIR)
-	cp -al $(SOURCE_DIR) $(DIR)
-	cd $(DIR); $(setup_env) $(kpkg_image) kernel-image
-	cat $(DIR)/debian/files >> debian/files
-	@for i in $$(awk '{ print $$1; }' $(DIR)/debian/files); do echo mv $(BUILD_DIR)/$$i ..; mv $(BUILD_DIR)/$$i ..; done
-	rm -rf $(DIR)
+install-image-$(ARCH)-$(SUBARCH)-$(FLAVOUR): $(STAMPS_DIR)/build-$(ARCH)-$(SUBARCH)-$(FLAVOUR) debian/bin/install-image
+	rm -rf '$(DIR)'
+	cp -al '$(SOURCE_DIR)' '$(DIR)'
+	install debian/bin/install-image '$(DIR)/debian/post-install'
+	cd '$(DIR)'; $(setup_env) $(kpkg_image) kernel-image
+	cat '$(DIR)/debian/files' >> debian/files
+	@for i in $$(awk '{ print $$1; }' '$(DIR)/debian/files'); do	\
+	  echo "mv \"$(BUILD_DIR)/$$i\" ..";				\
+	  mv "$(BUILD_DIR)/$$i" ..;					\
+	done
+	rm -rf '$(DIR)'
 
 install-header-$(ARCH)-$(SUBARCH): SOURCE_DIR=$(BUILD_DIR)/build-$(ARCH)-$(SUBARCH)
 install-header-$(ARCH)-$(SUBARCH): DIR=$(BUILD_DIR)/$@
-install-header-$(ARCH)-$(SUBARCH): $(STAMPS_DIR)/setup-$(ARCH)-$(SUBARCH) $(BUILD_DIR)/header-install-$(ARCH)-$(SUBARCH)
-	rm -rf $(DIR)
-	cp -al $(SOURCE_DIR) $(DIR)
-	cd $(DIR); $(setup_env) $(kpkg_header) kernel-headers
-	cat $(DIR)/debian/files >> debian/files
-	@for i in $$(awk '{ print $$1; }' $(DIR)/debian/files); do echo mv $(BUILD_DIR)/$$i ..; mv $(BUILD_DIR)/$$i ..; done
-	rm -rf $(DIR)
+install-header-$(ARCH)-$(SUBARCH): $(STAMPS_DIR)/setup-$(ARCH)-$(SUBARCH)
+	rm -rf '$(DIR)'
+	cp -al '$(SOURCE_DIR)' '$(DIR)'
+	install debian/bin/install-header '$(DIR)/install-header'
+	cd '$(DIR)'; $(setup_env) HEADER_CLEAN_HOOK='$(CURDIR)/$(DIR)/install-header' $(kpkg_header) kernel-headers
+	cat '$(DIR)/debian/files' >> debian/files
+	@for i in $$(awk '{ print $$1; }' '$(DIR)/debian/files'); do	\
+	  echo "mv \"$(BUILD_DIR)/$$i\" ..";				\
+	  mv "$(BUILD_DIR)/$$i" ..;					\
+	done
+	rm -rf '$(DIR)'
 
 install-headers-all: DH_OPTIONS = -plinux-headers-$(VERSION)
 install-headers-all:
 	dh_testdir
 	dh_testroot
-	dh_install $(DH_OPTIONS) debian/arch /usr/src/linux-headers-$(VERSION)/debian
+	dh_install $(DH_OPTIONS) debian/arch '/usr/src/linux-headers-$(VERSION)/debian'
 	dh_installdocs $(DH_OPTIONS)
 	dh_installchangelogs $(DH_OPTIONS)
-	$(MAKE) -f debian/rules.real install-base DH_OPTIONS=$(DH_OPTIONS)
+	$(MAKE) -f debian/rules.real install-base DH_OPTIONS='$(DH_OPTIONS)'
 
 install-patch: PACKAGE = linux-patch-debian-$(VERSION)
-install-patch: pbase := /usr/src/kernel-patches/all/$(VERSION)
+install-patch: pbase := /usr/src/kernel-patches/all/$(SOURCE_UPSTREAM)
 install-patch: pfull := debian/$(PACKAGE)$(pbase)
 install-patch: ptchs := $(notdir $(wildcard debian/patches-arch/*))
 install-patch: DH_OPTIONS = -p$(PACKAGE)
@@ -253,43 +252,43 @@
 	dh_testdir
 	dh_testroot
 	dh_clean -d -k $(DH_OPTIONS)
-	dh_installdirs $(DH_OPTIONS) $(pbase)/apply $(pbase)/debian $(pbase)/unpatch
-	dh_install $(DH_OPTIONS) debian/patches-debian/* $(pbase)/debian
+	dh_installdirs $(DH_OPTIONS) '$(pbase)/apply' '$(pbase)/debian' '$(pbase)/unpatch'
+	dh_install $(DH_OPTIONS) debian/patches-debian/* '$(pbase)/debian'
 #	Install the debian patches
-	sed 's/@version@/$(release)/g' debian/bin/apply > $(pfull)/apply/debian
-	sed 's/@upstream@/$(version)/g' debian/bin/unpatch > $(pfull)/unpatch/debian
-	chmod 755 $(pfull)/apply/debian $(pfull)/unpatch/debian
-	chmod 644 $(pfull)/debian/*.patch
-	bzip2 -9 $(pfull)/debian/*.patch
+	sed -e 's/@version@/$(SOURCE_VERSION)/g' -e 's/@revisions@/$(REVISIONS)/' debian/bin/apply > '$(pfull)/apply/debian'
+	sed -e 's/@upstream@/$(SOURCE_UPSTREAM)/g' debian/bin/unpatch > '$(pfull)/unpatch/debian'
+	chmod 755 '$(pfull)/apply/debian' '$(pfull)/unpatch/debian'
+	chmod 644 '$(pfull)/debian/'*.patch
+	bzip2 -9 '$(pfull)/debian/'*.patch
 #	Now the arch/subarch-specific patches
 	for i in $(ptchs); do \
-	  arch=$${i%%.*}; \
+	  arch="$${i%%.*}"; \
 	  ( \
 	    echo "Patch-name: $${arch}"; \
-	    echo "Patch-id: $${arch}_$(subst .,_,$(VERSION))"; \
-	    echo "Path-strip-level: 1"; \
-	    echo; \
-	    echo "Patch-file: debian/patches-arch/$${i}"; \
-	    echo "Architecture: $${arch}"; \
-	    echo "Kernel-version: $(VERSION)"; \
-	    echo; \
-	  ) > debian/$(PACKAGE).kpatches.arch; \
-	  dh_installkpatches $(DH_OPTIONS); \
+	    echo "Patch-id: $${arch}_$(subst .,_,$(VERSION))";	\
+	    echo "Path-strip-level: 1";				\
+	    echo;						\
+	    echo "Patch-file: debian/patches-arch/$${i}";	\
+	    echo "Architecture: $${arch}";			\
+	    echo "Kernel-version: $(VERSION)";			\
+	    echo;						\
+	  ) > 'debian/$(PACKAGE).kpatches.arch';		\
+	  dh_installkpatches $(DH_OPTIONS);			\
 	done
 	dh_installdocs $(DH_OPTIONS)
 	dh_installchangelogs $(DH_OPTIONS)
-	$(MAKE) -f debian/rules.real install-base DH_OPTIONS=$(DH_OPTIONS)
+	$(MAKE) -f debian/rules.real install-base DH_OPTIONS='$(DH_OPTIONS)'
 
 install-source: DH_OPTIONS = -plinux-source-$(VERSION)
 install-source: $(BUILD_DIR)/linux-source-$(UPSTREAM_VERSION).tar.bz2
 	dh_testdir
 	dh_testroot
-	dh_install $(DH_OPTIONS) $< /usr/src
+	dh_install $(DH_OPTIONS) '$<' /usr/src
 	dh_installdocs $(DH_OPTIONS) README
 	dh_installchangelogs $(DH_OPTIONS)
-	$(MAKE) -f debian/rules.real install-base DH_OPTIONS=$(DH_OPTIONS)
+	$(MAKE) -f debian/rules.real install-base DH_OPTIONS='$(DH_OPTIONS)'
 
 install-tree: DH_OPTIONS = -plinux-tree-$(VERSION)
 install-tree:
-	$(MAKE) -f debian/rules.real install-dummy DH_OPTIONS=$(DH_OPTIONS)
+	$(MAKE) -f debian/rules.real install-dummy DH_OPTIONS='$(DH_OPTIONS)'
 

Modified: people/waldi/linux-2.6/debian/templates/control.image.in
===================================================================
--- people/waldi/linux-2.6/debian/templates/control.image.in	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/templates/control.image.in	2005-11-06 16:19:16 UTC (rev 4733)
@@ -2,8 +2,8 @@
 Section: base
 Priority: optional
 Provides: linux-image, linux-image- at major@
-Depends: initrd-tools (>= 0.1.78), module-init-tools (>= 0.9.13)
-Conflicts: hotplug (<< 0.0.20040105-1)
+Depends: yaird | initramfs-tools [!alpha] | linux-initramfs-tool, module-init-tools (>= 0.9.13)
+Conflicts: hotplug (<< 0.0.20040105-1), initramfs-tools [alpha]
 Suggests: linux-doc- at version@ | linux-source- at version@
 Description: Linux kernel @version@ image on @class@ machines
  This package provides the binary image and pre-built loadable modules for

Modified: people/waldi/linux-2.6/debian/templates/control.main.in
===================================================================
--- people/waldi/linux-2.6/debian/templates/control.main.in	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/templates/control.main.in	2005-11-06 16:19:16 UTC (rev 4733)
@@ -7,7 +7,11 @@
 Recommends: libc6-dev | libc-dev, gcc, make
 Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-mt-dev
 Description: Linux kernel source for version @version@ with Debian patches
- This package provides the source code for the Linux kernel version @version at .
+ This package provides source code for the Linux kernel version @version at .
+ This source closely tracks official Linux kernel releases.  Debian's
+ modifications to that source consist of security fixes, bug fixes, and
+ features that have already been (or we believe will be) accepted by the
+ upstream maintainers.
  .
  If you wish to use this package to create a custom Linux kernel, then
  it is suggested that you investigate the package kernel-package,
@@ -61,6 +65,6 @@
  patches. Note that these patches do NOT apply against a pristine
  Linux @version@ kernel but only against the kernel tarball
  linux-source- at version@_ at version@.orig.tar.gz from the Debian archive.
- . 
+ .
  This packages is produced using an updated kernel packaging system
- and replaces older kernel-source packages
+ and replaces older kernel-patch-debian packages

Modified: people/waldi/linux-2.6/debian/templates/control.source.in
===================================================================
--- people/waldi/linux-2.6/debian/templates/control.source.in	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/templates/control.source.in	2005-11-06 16:19:16 UTC (rev 4733)
@@ -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>
+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>
 Standards-Version: 3.6.1.0
-Build-Depends: gcc (>= 4:4.0) [!arm !sparc !alpha !m68k], gcc-3.3 [arm sparc alpha 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.006)
+Build-Depends: gcc (>= 4:4.0) [!sparc !m68k], gcc-3.3 [sparc 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-Indep: docbook-utils, gs, transfig, xmlto, dh-kpatches (>= 0.99.3)

Deleted: people/waldi/linux-2.6/debian/templates/header-install.in
===================================================================
--- people/waldi/linux-2.6/debian/templates/header-install.in	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/templates/header-install.in	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,29 +0,0 @@
-#!/bin/sh
-#
-# This is the make-kpkg hook file, which runs when make-kpkg is invoked
-# (from debian/rules) to create the flavour-independent kernel-headers
-# package. The major tasks it performs is removing unneeded
-# include/asm-* directories. 
-#
-set -e
-
-# The scripts/ directory should be supplied for each flavour, since some
-# archs do some *very* strange things...
-rm -rf scripts
-
-# XXX: once we're using a linux-headers-$(version)-$(debnum) that's Arch: all,
-# we'll want to drop this bit of code.  The asm-* directories should remain.
-
-remove=
-cd include
-for i in asm-*; do
-	case ${i#asm-} in
-	generic | @headers_dirs@)
-		;;
-	*)
-		remove="$remove $i"
-		;;
-	esac
-done
-${remove:+rm -r $remove}
-

Deleted: people/waldi/linux-2.6/debian/templates/post-install.in
===================================================================
--- people/waldi/linux-2.6/debian/templates/post-install.in	2005-11-06 15:36:29 UTC (rev 4732)
+++ people/waldi/linux-2.6/debian/templates/post-install.in	2005-11-06 16:19:16 UTC (rev 4733)
@@ -1,151 +0,0 @@
-#!/bin/sh
-#
-# This is the hook file executed by make-kpkg in the end of creation
-# of the linux-image for a particular flavour. The major task it performs
-# is the creation of the flavour-specific linux-headers package.
-#
-set -e
-
-debhelper_pre() {
-	dh_clean -k --package="$1"
-	dh_installdirs --package="$1"
-}
-
-debhelper_post() {
-	dh_installdocs --package="$1"
-	dh_installchangelogs --package="$1"
-	dh_compress --package="$1"
-	dh_fixperms --package="$1"
-	dh_strip --package="$1"
-	dh_installdeb --package="$1"
-	dh_gencontrol --package="$1"
-	dh_md5sums --package="$1"
-	dh_builddeb --package="$1"
-}
-# The version which ends up here is something like
-# $(version)-$(abiname)-$(flavour) and debnum is just
-# -$(abiname), so that the variables get the values:
-# suffix=$(flavour)
-# prefix=$(version)-$(abiname)
-# prefix is then used to form a destination directory
-# to link to. For cases with subarch we need to link
-# to linux-headers-$(subarch)-$(version)-$(abiname),
-# not just linux-headers-$(version)-$(abiname).
-#
-prefix=$DEBIAN_VERSION-$DEBIAN_ABINAME
-pkg=linux-headers-$prefix-$DEBIAN_FLAVOUR
-top=$PWD/debian/$pkg
-dir=$top/usr/src/$pkg
-#
-# Here we need to find the kernel architecture which
-# is appropriate for the current flavour. It is available
-# in kernel-package as KERNEL_ARCH. Cleanest way is to get
-# make-kpkg export it to this script. 
-# 
-# Currently we just use the fact that in the build directory
-# the symlink include/asm must point to include/asm-${arch}
-#
-arch=$(readlink include/asm)
-arch=$(basename "${arch}")
-arch="${arch#asm-}"
-
-debhelper_pre $pkg
-
-#
-# Stuff below is ugly as hell, but does the trick so I'm not
-# touching it until we can invent something better.
-#
-mkdir -p $dir/arch/$arch/kernel
-mkdir -p $dir/include/asm-$arch
-mkdir -p $dir/include/linux
-cp -a .config $dir
-echo $debnum-$suffix > $dir/.extraversion
-cp -a Module.symvers $dir
-
-find . -mindepth 1 -maxdepth 1 \
-	! -name debian -a ! -name Documentation -a ! -name include -a \
-	! -name DEBIAN -a ! -name scripts -a ! -name arch -a ! -name '.*' -a \( \
-	-name Makefile -o -type d \) \
-	-printf "../linux-headers-$prefix/%f\n" |
-	xargs ln -s --target-directory="$dir"
-
-find arch/$arch -mindepth 1 -maxdepth 1 \( \
-	-type d -a ! -name kernel -o \
-	-type f -a \( -name 'Makefile*' -o -name 'Kconfig*' \) \) \
-	-printf "../../../linux-headers-$prefix/%p\n" |
-	xargs ln -s --target-directory=$dir/arch/$arch
-[ -f arch/$arch/kernel/asm-offsets.s ] && ln -f arch/$arch/kernel/asm-offsets.s $dir/arch/$arch/kernel
-ln -s ../../../../linux-headers-$prefix/arch/$arch/kernel/Makefile $dir/arch/$arch/kernel
-find include -mindepth 1 -maxdepth 1 \
-	! -name config -a ! -name linux -a ! -name 'asm-*' \
-	-printf "../../linux-headers-$prefix/%p\n" |
-	xargs ln -s --target-directory=$dir/include
-cp -a include/config $dir/include
-ln -sf asm-${arch} $dir/include/asm
-find include/asm-$arch -mindepth 1 -maxdepth 1 \
-	\( -type f -a ! -links 2 -o ! -type f \) \
-	-printf "../../../linux-headers-$prefix/%p\n" |
-	xargs ln -s --target-directory=$dir/include/asm-$arch
-find include/asm-$arch -mindepth 1 -maxdepth 1 \
-	-type f -links 2 |
-	xargs ln -f --target-directory=$dir/include/asm-$arch
-for i in include/asm-*
-do
-  case ${i#include/asm-} in
-    $arch)
-      ;;
-    generic | @headers_dirs@)
-      ln -s ../../linux-headers-$prefix/$i $dir/$i
-      ;;
-    *)
-      ;;
-  esac
-done
-find include/linux -mindepth 1 -maxdepth 1 \
-	! -name autoconf.h -a ! -name compile.h -a ! -name version.h \
-	-printf "../../../linux-headers-$prefix/%p\n" |
-	xargs ln -s --target-directory=$dir/include/linux
-cp -a include/linux/autoconf.h include/linux/compile.h \
-	include/linux/version.h $dir/include/linux
-
-mkdir -p $top/lib/modules/$version
-ln -s /usr/src/linux-headers-$version $top/lib/modules/$version/build
-
-mkdir -p $dir/scripts
-cp scripts/Makefile* $dir/scripts
-for i in $(find scripts -type f -perm +111 -o -name "*.sh" -o -name "*.pl"); do
-  mkdir -p $dir/$(dirname $i)
-  cp $i $dir/$i
-done
-
-debhelper_post $pkg
-
-#
-# Check whether we should force any modules to be available
-# on the initrd.
-#
-cd ${IMAGE_TOP}/lib/modules/${version}
-modules='@initrd_modules@'
-if [ -n "${modules}" ]; then
-  mkdir initrd
-  for i in ${modules}; do
-    if [ -f "${i}" ]; then
-      ln "${i}" initrd
-    fi
-  done
-fi
-
-# Execute any extra post-install command provided by the arch/subarch/flavour
-if [ '@extra_postinstall_command@' ]; then
-  @extra_postinstall_command@
-fi
-
-#
-# Clean up the build and source symlinks
-#
-if [ -L build ]; then
-  rm -f build
-fi
-if [ -L source ]; then
-  rm -f source
-fi




More information about the Kernel-svn-changes mailing list