[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, ®ion, 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