summaryrefslogtreecommitdiffstats
path: root/testing
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2010-01-06 08:45:11 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2010-01-06 08:45:11 +0000
commit73281af4d137533d84ab57a40a548a5f0fb56bb9 (patch)
tree55c36b96a393de7070a42aff9956eebe103488f1 /testing
parent975f1475c36b7994ec614ab09b083c4f91d2720d (diff)
downloadaports-73281af4d137533d84ab57a40a548a5f0fb56bb9.tar.bz2
aports-73281af4d137533d84ab57a40a548a5f0fb56bb9.tar.xz
main/*-vserver: move from testing
good enough for main now
Diffstat (limited to 'testing')
-rw-r--r--testing/dahdi-linux-vserver/APKBUILD84
-rw-r--r--testing/dahdi-linux-vserver/dahdi-2.2.0.2-driver_data-2.6.32.patch84
-rw-r--r--testing/dahdi-linux-vserver/dahdi-2.2.0.2-gcc44-hack.patch27
-rw-r--r--testing/dahdi-linux-vserver/dahdi-2.2.0.2-includes.patch100
-rw-r--r--testing/dahdi-linux-vserver/dahdi-2.6.31.patch44
-rw-r--r--testing/dahdi-linux-vserver/dahdi-bri_dchan.patch161
-rw-r--r--testing/dahdi-linux-vserver/dahdi-depmod.patch22
-rw-r--r--testing/dahdi-linux-vserver/dahdi-linux-2.2.0-hfc-4s.patch553
-rw-r--r--testing/dahdi-linux-vserver/dahdi-zaphfc.patch1430
-rw-r--r--testing/dahdi-linux-vserver/zaphfc-dahdi-flortz.diff1232
-rw-r--r--testing/linux-vserver/APKBUILD119
-rw-r--r--testing/linux-vserver/kernelconfig.x864508
-rw-r--r--testing/util-vserver/APKBUILD67
-rw-r--r--testing/util-vserver/alpine.patch26
-rw-r--r--testing/util-vserver/busybox.patch11
-rw-r--r--testing/util-vserver/chmod.patch12
-rw-r--r--testing/util-vserver/ensc_pathprog.patch14
-rw-r--r--testing/util-vserver/setup-vs-guest306
-rw-r--r--testing/util-vserver/setup-vs-template44
-rw-r--r--testing/util-vserver/util-vserver.post-install15
l---------testing/util-vserver/util-vserver.post-upgrade1
-rw-r--r--testing/util-vserver/validate.patch10
22 files changed, 0 insertions, 8870 deletions
diff --git a/testing/dahdi-linux-vserver/APKBUILD b/testing/dahdi-linux-vserver/APKBUILD
deleted file mode 100644
index 3d7542cb0..000000000
--- a/testing/dahdi-linux-vserver/APKBUILD
+++ /dev/null
@@ -1,84 +0,0 @@
-# Contributor: Timo Teras <timo.teras@iki.fi>
-# Maintainer: Timo Teras <timo.teras@iki.fi>
-
-_flavor=vserver
-
-# source the kernel version
-if [ -f ../linux-${_flavor}/APKBUILD ]; then
- . ../linux-${_flavor}/APKBUILD
-fi
-
-_kernelver="$pkgver-r$pkgrel"
-_abi_release=${pkgver}-${_flavor}
-_kpkgrel=$pkgrel
-_realname=dahdi-linux
-
-pkgname=${_realname}-${_flavor}
-pkgver=$pkgver
-_dahdiver=2.2.0.2
-_mypkgrel=0
-pkgrel=$(( $_kpkgrel + $_mypkgrel ))
-pkgdesc="Digium Asterisk Hardware Device Interface drivers $_dahdiver"
-url="http://www.asterisk.org"
-license="GPL"
-depends="dahdi-linux linux-${_flavor}=${_kernelver}"
-# we need wget and tar because make install downloads firmware and uses fancy
-# options for tar and wget.
-makedepends="linux-${_flavor}-dev=${_kernelver} wget tar perl"
-install=
-subpackages="$pkgname-dev"
-source="http://downloads.digium.com/pub/telephony/dahdi-linux/releases/${_realname}-$_dahdiver.tar.gz
- dahdi-depmod.patch
- dahdi-bri_dchan.patch
- dahdi-zaphfc.patch
- zaphfc-dahdi-flortz.diff
- dahdi-linux-2.2.0-hfc-4s.patch
- dahdi-2.6.31.patch
- dahdi-2.2.0.2-driver_data-2.6.32.patch
- dahdi-2.2.0.2-includes.patch
- dahdi-2.2.0.2-gcc44-hack.patch
- "
-
-prepare() {
- cd "$srcdir/$_realname-$_dahdiver"
- for i in ../*.patch ../*.diff; do
- msg "Applying $i"
- patch -p1 < $i || return 1;
- done
-}
-
-build() {
- cd "$srcdir/$_realname-$_dahdiver"
- make KVERS="${_abi_release}" DYNFS="yes" MODULES_EXTRA="zaphfc" \
- || return 1
-}
-
-package() {
- cd "$srcdir/$_realname-$_dahdiver"
- make KVERS="${_abi_release}" DYNFS="yes" MODULES_EXTRA="zaphfc" \
- DESTDIR="$pkgdir" install
- rm -rf "$pkgdir"/lib/firmware "$pkgdir"/usr/lib/hotplug/firmware \
- "$pkgdir"/usr/include
-}
-
-# since we sourced the APKBUILD above we got the dev() function there to
-# so we override it again.
-depends_dev="dahdi-linux-dev"
-dev() {
- default_dev
- local dir="$subpkgdir"/usr/src/dahdi-headers-${_abi_release}
- install -D "$srcdir"/$_realname-$pkgver/drivers/dahdi/Module.symvers \
- "$dir"/drivers/dahdi/Module.symvers
- ln -s /usr/include "$dir"/include
-}
-
-md5sums="1f932729ad28f2f028afcf2cc5ccf7ba dahdi-linux-2.2.0.2.tar.gz
-c78fb8d80f9efdffd950297c88ff9273 dahdi-depmod.patch
-4b41a82ff390ac64c08092c5a3eab6a8 dahdi-bri_dchan.patch
-3be420539f5e2e2b94a1bf3d711ec630 dahdi-zaphfc.patch
-291c5c44c86ab02443a742415461ddca zaphfc-dahdi-flortz.diff
-68dfe17a49cca15ae439fd83f4ccfbc5 dahdi-linux-2.2.0-hfc-4s.patch
-bd5e7457ee8f37c10ed7ec383995e4fa dahdi-2.6.31.patch
-7f9452ef37385e03e05147081d6951a1 dahdi-2.2.0.2-driver_data-2.6.32.patch
-6c208d6346a3668cea900baa45298f6a dahdi-2.2.0.2-includes.patch
-eeb4b2870d23d7c020cd99b5b1a633e9 dahdi-2.2.0.2-gcc44-hack.patch"
diff --git a/testing/dahdi-linux-vserver/dahdi-2.2.0.2-driver_data-2.6.32.patch b/testing/dahdi-linux-vserver/dahdi-2.2.0.2-driver_data-2.6.32.patch
deleted file mode 100644
index 3085218c0..000000000
--- a/testing/dahdi-linux-vserver/dahdi-2.2.0.2-driver_data-2.6.32.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-diff -uNr dahdi-linux-2.2.0.2.ORIg/drivers/dahdi/xpp/xbus-sysfs.c dahdi-linux-2.2.0.2/drivers/dahdi/xpp/xbus-sysfs.c
---- dahdi-linux-2.2.0.2.ORIg/drivers/dahdi/xpp/xbus-sysfs.c 2009-10-22 18:04:47.000000000 +0100
-+++ dahdi-linux-2.2.0.2/drivers/dahdi/xpp/xbus-sysfs.c 2009-10-22 18:05:54.000000000 +0100
-@@ -707,7 +707,11 @@
- dev->parent = &xbus->astribank;
- dev_set_name(dev, "%02d:%1x:%1x", xbus->num, xpd->addr.unit,
- xpd->addr.subunit);
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)
-+ dev_set_drvdata(dev, xpd);
-+#else
- dev->driver_data = xpd;
-+#endif
- dev->release = xpd_release;
- ret = device_register(dev);
- if(ret) {
-@@ -728,11 +732,21 @@
- BUG_ON(!xbus);
- XPD_DBG(DEVICES, xpd, "SYSFS\n");
- dev = &xpd->xpd_dev;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)
-+ if(!dev_get_drvdata(dev))
-+ return;
-+ BUG_ON(dev_get_drvdata(dev) != xpd);
-+#else
- if(!dev->driver_data)
- return;
- BUG_ON(dev->driver_data != xpd);
-+#endif
- device_unregister(dev);
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)
-+ dev_set_drvdata(dev, NULL);
-+#else
- dev->driver_data = NULL;
-+#endif
- }
-
- /*--------- Sysfs Device handling ----*/
-@@ -746,9 +760,15 @@
- astribank = &xbus->astribank;
- BUG_ON(!astribank);
- sysfs_remove_link(&astribank->kobj, "transport");
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)
-+ if(!dev_get_drvdata(astribank))
-+ return;
-+ BUG_ON(dev_get_drvdata(astribank) != xbus);
-+#else
- if(!astribank->driver_data)
- return;
- BUG_ON(astribank->driver_data != xbus);
-+#endif
- device_unregister(&xbus->astribank);
- }
-
-@@ -764,18 +784,30 @@
- astribank->bus = &toplevel_bus_type;
- astribank->parent = xbus->transport.transport_device;
- dev_set_name(astribank, "xbus-%02d", xbus->num);
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)
-+ dev_set_drvdata(astribank, xbus);
-+#else
- astribank->driver_data = xbus;
-+#endif
- astribank->release = astribank_release;
- ret = device_register(astribank);
- if(ret) {
- XBUS_ERR(xbus, "%s: device_register failed: %d\n", __FUNCTION__, ret);
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)
-+ dev_set_drvdata(astribank, NULL);
-+#else
- astribank->driver_data = NULL;
-+#endif
- goto out;
- }
- ret = sysfs_create_link(&astribank->kobj, &astribank->parent->kobj, "transport");
- if(ret < 0) {
- XBUS_ERR(xbus, "%s: sysfs_create_link failed: %d\n", __FUNCTION__, ret);
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)
-+ dev_set_drvdata(astribank, NULL);
-+#else
- astribank->driver_data = NULL;
-+#endif
- goto out;
- }
- out:
diff --git a/testing/dahdi-linux-vserver/dahdi-2.2.0.2-gcc44-hack.patch b/testing/dahdi-linux-vserver/dahdi-2.2.0.2-gcc44-hack.patch
deleted file mode 100644
index d647a1f9b..000000000
--- a/testing/dahdi-linux-vserver/dahdi-2.2.0.2-gcc44-hack.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff -uNr dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/xpp/xpp_dahdi.c dahdi-linux-2.2.0.2/drivers/dahdi/xpp/xpp_dahdi.c
---- dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/xpp/xpp_dahdi.c 2009-10-22 18:52:23.000000000 +0100
-+++ dahdi-linux-2.2.0.2/drivers/dahdi/xpp/xpp_dahdi.c 2009-10-22 18:52:55.000000000 +0100
-@@ -865,9 +865,11 @@
- #endif
- spin_lock_irqsave(&xbus->lock, flags);
- atomic_inc(&xpd->open_counter);
-+/*
- LINE_DBG(DEVICES, xpd, pos, "%s[%d]: open_counter=%d\n",
- current->comm, current->pid,
- atomic_read(&xpd->open_counter));
-+*/
- spin_unlock_irqrestore(&xbus->lock, flags);
- if(xpd->xops->card_open)
- xpd->xops->card_open(xpd, pos);
-@@ -885,9 +887,11 @@
- spin_unlock_irqrestore(&xbus->lock, flags);
- if(xpd->xops->card_close)
- xpd->xops->card_close(xpd, pos);
-+/*
- LINE_DBG(DEVICES, xpd, pos, "%s[%d]: open_counter=%d\n",
- current->comm, current->pid,
- atomic_read(&xpd->open_counter));
-+*/
- atomic_dec(&xpd->open_counter); /* from xpp_open() */
- put_xpd(__FUNCTION__, xpd); /* from xpp_open() */
- return 0;
diff --git a/testing/dahdi-linux-vserver/dahdi-2.2.0.2-includes.patch b/testing/dahdi-linux-vserver/dahdi-2.2.0.2-includes.patch
deleted file mode 100644
index 5451bc691..000000000
--- a/testing/dahdi-linux-vserver/dahdi-2.2.0.2-includes.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-diff -uNr dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/dahdi-base.c dahdi-linux-2.2.0.2/drivers/dahdi/dahdi-base.c
---- dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/dahdi-base.c 2009-10-22 17:14:40.000000000 +0100
-+++ dahdi-linux-2.2.0.2/drivers/dahdi/dahdi-base.c 2009-10-22 17:14:49.000000000 +0100
-@@ -46,6 +46,7 @@
- #include <linux/kmod.h>
- #include <linux/moduleparam.h>
- #include <linux/list.h>
-+#include <linux/sched.h>
-
- #include <linux/ppp_defs.h>
-
-diff -uNr dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/pciradio.c dahdi-linux-2.2.0.2/drivers/dahdi/pciradio.c
---- dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/pciradio.c 2009-10-22 17:14:40.000000000 +0100
-+++ dahdi-linux-2.2.0.2/drivers/dahdi/pciradio.c 2009-10-22 17:14:49.000000000 +0100
-@@ -51,6 +51,7 @@
- #include <linux/pci.h>
- #include <linux/interrupt.h>
- #include <linux/moduleparam.h>
-+#include <linux/sched.h>
- #include <asm/io.h>
- #include <asm/delay.h>
-
-diff -uNr dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/voicebus/voicebus.c dahdi-linux-2.2.0.2/drivers/dahdi/voicebus/voicebus.c
---- dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/voicebus/voicebus.c 2009-10-22 17:14:40.000000000 +0100
-+++ dahdi-linux-2.2.0.2/drivers/dahdi/voicebus/voicebus.c 2009-10-22 17:16:44.000000000 +0100
-@@ -35,6 +35,7 @@
- #include <linux/interrupt.h>
- #include <linux/timer.h>
- #include <linux/module.h>
-+#include <linux/sched.h>
-
- #include <dahdi/kernel.h>
- #include "voicebus.h"
-diff -uNr dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/wcfxo.c dahdi-linux-2.2.0.2/drivers/dahdi/wcfxo.c
---- dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/wcfxo.c 2009-10-22 17:14:40.000000000 +0100
-+++ dahdi-linux-2.2.0.2/drivers/dahdi/wcfxo.c 2009-10-22 17:14:49.000000000 +0100
-@@ -30,6 +30,7 @@
- #include <linux/usb.h>
- #include <linux/errno.h>
- #include <linux/pci.h>
-+#include <linux/sched.h>
- #include <asm/io.h>
- #include <linux/moduleparam.h>
-
-diff -uNr dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/wct1xxp.c dahdi-linux-2.2.0.2/drivers/dahdi/wct1xxp.c
---- dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/wct1xxp.c 2009-10-22 17:14:40.000000000 +0100
-+++ dahdi-linux-2.2.0.2/drivers/dahdi/wct1xxp.c 2009-10-22 17:14:49.000000000 +0100
-@@ -33,6 +33,7 @@
- #include <linux/pci.h>
- #include <linux/spinlock.h>
- #include <linux/moduleparam.h>
-+#include <linux/sched.h>
-
- #include <dahdi/kernel.h>
-
-diff -uNr dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/wctdm24xxp/base.c dahdi-linux-2.2.0.2/drivers/dahdi/wctdm24xxp/base.c
---- dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/wctdm24xxp/base.c 2009-10-22 17:14:40.000000000 +0100
-+++ dahdi-linux-2.2.0.2/drivers/dahdi/wctdm24xxp/base.c 2009-10-22 17:14:49.000000000 +0100
-@@ -45,6 +45,7 @@
- #include <linux/workqueue.h>
- #include <linux/delay.h>
- #include <linux/moduleparam.h>
-+#include <linux/sched.h>
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
- #include <linux/semaphore.h>
- #else
-diff -uNr dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/wctdm.c dahdi-linux-2.2.0.2/drivers/dahdi/wctdm.c
---- dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/wctdm.c 2009-10-22 17:14:40.000000000 +0100
-+++ dahdi-linux-2.2.0.2/drivers/dahdi/wctdm.c 2009-10-22 17:14:49.000000000 +0100
-@@ -31,6 +31,8 @@
- #include <linux/pci.h>
- #include <linux/interrupt.h>
- #include <linux/moduleparam.h>
-+#include <linux/sched.h>
-+
- #include <asm/io.h>
- #include "proslic.h"
-
-diff -uNr dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/wcte11xp.c dahdi-linux-2.2.0.2/drivers/dahdi/wcte11xp.c
---- dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/wcte11xp.c 2009-10-22 17:14:40.000000000 +0100
-+++ dahdi-linux-2.2.0.2/drivers/dahdi/wcte11xp.c 2009-10-22 17:14:49.000000000 +0100
-@@ -32,6 +32,7 @@
- #include <linux/pci.h>
- #include <linux/spinlock.h>
- #include <linux/moduleparam.h>
-+#include <linux/sched.h>
-
- #include <dahdi/kernel.h>
-
-diff -uNr dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/xpp/xbus-core.c dahdi-linux-2.2.0.2/drivers/dahdi/xpp/xbus-core.c
---- dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/xpp/xbus-core.c 2009-10-22 17:14:40.000000000 +0100
-+++ dahdi-linux-2.2.0.2/drivers/dahdi/xpp/xbus-core.c 2009-10-22 17:16:10.000000000 +0100
-@@ -35,6 +35,7 @@
- #include <linux/workqueue.h>
- #include <linux/device.h>
- #include <linux/delay.h> /* for msleep() to debug */
-+#include <linux/sched.h>
- #include "xpd.h"
- #include "xpp_dahdi.h"
- #include "xbus-core.h"
diff --git a/testing/dahdi-linux-vserver/dahdi-2.6.31.patch b/testing/dahdi-linux-vserver/dahdi-2.6.31.patch
deleted file mode 100644
index 35fe4383e..000000000
--- a/testing/dahdi-linux-vserver/dahdi-2.6.31.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-Index: drivers/dahdi/wctc4xxp/base.c
-===================================================================
---- a/drivers/dahdi/wctc4xxp/base.c (revision 6716)
-+++ b/drivers/dahdi/wctc4xxp/base.c (revision 6717)
-@@ -742,6 +742,17 @@
- return 0;
- }
-
-+#ifdef HAVE_NET_DEVICE_OPS
-+const struct net_device_ops wctc4xxp_netdev_ops = {
-+ .ndo_set_multicast_list = &wctc4xxp_net_set_multi,
-+ .ndo_open = &wctc4xxp_net_up,
-+ .ndo_stop = &wctc4xxp_net_down,
-+ .ndo_start_xmit = &wctc4xxp_net_hard_start_xmit,
-+ .ndo_get_stats = &wctc4xxp_net_get_stats,
-+ .ndo_do_ioctl = &wctc4xxp_net_ioctl,
-+};
-+#endif
-+
- /**
- * wctc4xxp_net_register - Register a new network interface.
- * @wc: transcoder card to register the interface for.
-@@ -773,14 +784,21 @@
- netdev->priv = wc;
- # endif
- memcpy(netdev->dev_addr, our_mac, sizeof(our_mac));
-+
-+# ifdef HAVE_NET_DEVICE_OPS
-+ netdev->netdev_ops = &wctc4xxp_netdev_ops;
-+# else
- netdev->set_multicast_list = &wctc4xxp_net_set_multi;
- netdev->open = &wctc4xxp_net_up;
- netdev->stop = &wctc4xxp_net_down;
- netdev->hard_start_xmit = &wctc4xxp_net_hard_start_xmit;
- netdev->get_stats = &wctc4xxp_net_get_stats;
- netdev->do_ioctl = &wctc4xxp_net_ioctl;
-+# endif
-+
- netdev->promiscuity = 0;
- netdev->flags |= IFF_NOARP;
-+
- # if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24)
- netdev->poll = &wctc4xxp_poll;
- netdev->weight = 64;
diff --git a/testing/dahdi-linux-vserver/dahdi-bri_dchan.patch b/testing/dahdi-linux-vserver/dahdi-bri_dchan.patch
deleted file mode 100644
index d7a3fe859..000000000
--- a/testing/dahdi-linux-vserver/dahdi-bri_dchan.patch
+++ /dev/null
@@ -1,161 +0,0 @@
-# Translate the D channels to a standard channel data.
-# The HFC chipset provides us the D channel as data, but
-# Zaptel expects it as a standard channel with 1000 samples
-# per second.
-
---- a/include/dahdi/kernel.h
-+++ b/include/dahdi/kernel.h
-@@ -132,6 +132,13 @@ struct dahdi_chan {
- int do_ppp_error;
- struct sk_buff_head ppp_rq;
- #endif
-+#ifdef CONFIG_DAHDI_BRI_DCHANS
-+ int bytes2receive;
-+ int maxbytes2transmit; /* size of the tx buffer in the card driver */
-+ int bytes2transmit;
-+ int eofrx;
-+ int eoftx;
-+#endif
- spinlock_t lock;
- char name[40];
- /* Specified by DAHDI */
-@@ -462,6 +469,9 @@ enum {
- DAHDI_FLAGBIT_LOOPED = 18, /*!< Loopback the receive data from the channel to the transmit */
- DAHDI_FLAGBIT_MTP2 = 19, /*!< Repeats last message in buffer and also discards repeating messages sent to us */
- DAHDI_FLAGBIT_HDLC56 = 20, /*!< Sets the given channel (if in HDLC mode) to use 56K HDLC instead of 64K */
-+#if defined(CONFIG_DAHDI_BRI_DCHANS)
-+ DAHDI_FLAGBIT_BRIDCHAN = 21, /*!< hardhdlc-like handling of the D channel */
-+#endif
- };
-
- /* map flagbits to flag masks */
-@@ -500,6 +510,7 @@ enum {
- #define DAHDI_FLAG_LOOPED DAHDI_FLAG(LOOPED)
- #define DAHDI_FLAG_MTP2 DAHDI_FLAG(MTP2)
- #define DAHDI_FLAG_HDLC56 DAHDI_FLAG(HDLC56)
-+#define DAHDI_FLAG_BRIDCHAN DAHDI_FLAG(BRIDCHAN)
-
- struct dahdi_span {
- spinlock_t lock;
---- a/include/dahdi/dahdi_config.h
-+++ b/include/dahdi/dahdi_config.h
-@@ -174,4 +174,10 @@
- */
- /* #define OPTIMIZE_CHANMUTE */
-
-+/*
-+ * Uncomment the following for BRI D channels
-+ *
-+ */
-+#define CONFIG_DAHDI_BRI_DCHANS
-+
- #endif
---- a/drivers/dahdi/dahdi-base.c
-+++ b/drivers/dahdi/dahdi-base.c
-@@ -5907,11 +5907,40 @@ static inline void __dahdi_getbuf_chunk(
- *(txb++) = fasthdlc_tx_run_nocheck(&ms->txhdlc);
- }
- bytes -= left;
-+#ifdef CONFIG_DAHDI_BRI_DCHANS
-+ } else if (test_bit(DAHDI_FLAGBIT_BRIDCHAN, &ms->flags)) {
-+ /*
-+ * Let's get this right, we want to transmit complete frames only.
-+ * The card driver will do the dirty HDLC work for us.
-+ * txb (transmit buffer) is supposed to be big enough to store one frame
-+ * we will make this as big as the D fifo (1KB or 2KB)
-+ */
-+
-+ /* there are 'left' bytes in the user buffer left to transmit */
-+ left = ms->writen[ms->outwritebuf] - ms->writeidx[ms->outwritebuf] - 2;
-+ if (left > ms->maxbytes2transmit) {
-+ memcpy(txb, buf + ms->writeidx[ms->outwritebuf], ms->maxbytes2transmit);
-+ ms->writeidx[ms->outwritebuf] += ms->maxbytes2transmit;
-+ txb += ms->maxbytes2transmit;
-+ ms->bytes2transmit = ms->maxbytes2transmit;
-+ ms->eoftx = 0;
-+ } else {
-+ memcpy(txb, buf + ms->writeidx[ms->outwritebuf], left);
-+ ms->writeidx[ms->outwritebuf] += left + 2;
-+ txb += left + 2;
-+ ms->bytes2transmit = left;
-+ ms->eoftx = 1;
-+ }
-+ bytes = 0;
-+#endif
- } else {
- memcpy(txb, buf + ms->writeidx[ms->outwritebuf], left);
- ms->writeidx[ms->outwritebuf]+=left;
- txb += left;
- bytes -= left;
-+#if defined(CONFIG_DAHDI_BRI_DCHANS)
-+ ms->bytes2transmit=DAHDI_CHUNKSIZE;
-+#endif
- }
- /* Check buffer status */
- if (ms->writeidx[ms->outwritebuf] >= ms->writen[ms->outwritebuf]) {
-@@ -5968,6 +5997,17 @@ out in the later versions, and is put ba
- /* Transmit a flag if this is an HDLC channel */
- if (ms->flags & DAHDI_FLAG_HDLC)
- fasthdlc_tx_frame_nocheck(&ms->txhdlc);
-+#if defined(CONFIG_DAHDI_BRI_DCHANS)
-+ if (test_bit(DAHDI_FLAGBIT_BRIDCHAN, &ms->flags)) {
-+ // if (ms->bytes2transmit > 0) {
-+ // txb += 2;
-+ // ms->bytes2transmit -= 2;
-+ bytes=0;
-+ ms->eoftx = 1;
-+// printk(KERN_CRIT "zaptel EOF(%d) bytes2transmit %d\n",ms->eoftx,ms->bytes2transmit);
-+ // }
-+ }
-+#endif
- #ifdef CONFIG_DAHDI_NET
- if (ms->flags & DAHDI_FLAG_NETDEV)
- netif_wake_queue(ztchan_to_dev(ms));
-@@ -6028,6 +6068,12 @@ out in the later versions, and is put ba
- memset(txb, 0xFF, bytes);
- }
- bytes = 0;
-+#if defined(CONFIG_DAHDI_BRI_DCHANS)
-+ } else if (test_bit(DAHDI_FLAGBIT_BRIDCHAN, &ms->flags)) {
-+ ms->bytes2transmit = 0;
-+ ms->eoftx = 0;
-+ bytes = 0;
-+#endif
- } else {
- memset(txb, DAHDI_LIN2X(0, ms), bytes); /* Lastly we use silence on telephony channels */
- bytes = 0;
-@@ -6840,6 +6886,14 @@ static inline void __putbuf_chunk(struct
- int res;
- int left, x;
-
-+#if defined(CONFIG_DAHDI_BRI_DCHANS)
-+ if (test_bit(DAHDI_FLAGBIT_BRIDCHAN, &ms->flags)) {
-+ bytes = ms->bytes2receive;
-+ if (bytes < 1) return;
-+// printk(KERN_CRIT "bytes2receive %d\n",ms->bytes2receive);
-+ }
-+#endif
-+
- while(bytes) {
- #if defined(CONFIG_DAHDI_NET) || defined(CONFIG_DAHDI_PPP)
- skb = NULL;
-@@ -6897,6 +6951,19 @@ static inline void __putbuf_chunk(struct
- }
- }
- }
-+#ifdef CONFIG_DAHDI_BRI_DCHANS
-+ } else if (test_bit(DAHDI_FLAGBIT_BRIDCHAN, &ms->flags)) {
-+ memcpy(buf + ms->readidx[ms->inreadbuf], rxb, left);
-+ rxb += left;
-+ ms->readidx[ms->inreadbuf] += left;
-+ bytes -= left;
-+ if (ms->eofrx == 1) {
-+ eof=1;
-+ }
-+// printk(KERN_CRIT "receiving %d bytes\n",ms->bytes2receive);
-+ ms->bytes2receive = 0;
-+ ms->eofrx = 0;
-+#endif
- } else {
- /* Not HDLC */
- memcpy(buf + ms->readidx[ms->inreadbuf], rxb, left);
diff --git a/testing/dahdi-linux-vserver/dahdi-depmod.patch b/testing/dahdi-linux-vserver/dahdi-depmod.patch
deleted file mode 100644
index 289aad403..000000000
--- a/testing/dahdi-linux-vserver/dahdi-depmod.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Index: dahdi-linux-2.0.0-rc4/Makefile
-===================================================================
---- dahdi-linux-2.0.0-rc4.orig/Makefile 2008-09-09 14:07:23.000000000 +0300
-+++ dahdi-linux-2.0.0-rc4/Makefile 2008-09-09 14:12:31.000000000 +0300
-@@ -190,7 +190,7 @@
- build_tools/uninstall-modules dahdi $(KVERS)
- endif
- $(KMAKE) INSTALL_MOD_PATH=$(DESTDIR) INSTALL_MOD_DIR=dahdi modules_install
-- [ `id -u` = 0 ] && /sbin/depmod -a $(KVERS) || :
-+ [ -z "$(DESTDIR)" -a `id -u` = 0 ] && /sbin/depmod -a $(KVERS) || :
-
- uninstall-modules:
- ifdef DESTDIR
-@@ -203,7 +203,7 @@
- rm -rf /lib/modules/$(KVERS)/dahdi; \
- echo "done."; \
- fi
-- [ `id -u` = 0 ] && /sbin/depmod -a $(KVERS) || :
-+ [ -z "$(DESTDIR)" -a `id -u` = 0 ] && /sbin/depmod -a $(KVERS) || :
- endif
-
- update:
diff --git a/testing/dahdi-linux-vserver/dahdi-linux-2.2.0-hfc-4s.patch b/testing/dahdi-linux-vserver/dahdi-linux-2.2.0-hfc-4s.patch
deleted file mode 100644
index 67857e2f7..000000000
--- a/testing/dahdi-linux-vserver/dahdi-linux-2.2.0-hfc-4s.patch
+++ /dev/null
@@ -1,553 +0,0 @@
---- a/drivers/dahdi/wcb4xxp/base.c 2009-06-24 13:17:03.000000000 +0000
-+++ b/drivers/dahdi/wcb4xxp/base.c 2009-06-24 13:40:15.000000000 +0000
-@@ -75,7 +75,7 @@
- #define DBG_SPANFILTER ((1 << bspan->port) & spanfilter)
-
- static int debug = 0;
--static int spanfilter = 15;
-+static int spanfilter = 255; /* Bitmap .. 1, 2, 4, 8, 16, 32, 64, 128 for ports 1-8 */
- #ifdef LOOPBACK_SUPPORTED
- static int loopback = 0;
- #endif
-@@ -114,9 +114,21 @@
- struct devtype {
- char *desc;
- unsigned int flags;
-+ int ports; /* Number of ports the card has */
-+ int has_ec; /* Does the card have an Echo Canceller */
-+ enum cards_ids card_type; /* Card type - Digium B410P, ... */
- };
-
--static struct devtype wcb4xxp = { "Wildcard B410P", 0 };
-+static struct devtype wcb4xxp = { "Wildcard B410P", .ports = 4, .has_ec = 1, .card_type = B410P };
-+static struct devtype hfc2s = { "HFC-2S Junghanns.NET duoBRI PCI", .ports = 2, .has_ec = 0, .card_type = DUOBRI };
-+static struct devtype hfc4s = { "HFC-4S Junghanns.NET quadBRI PCI", .ports = 4, .has_ec = 0, .card_type = QUADBRI };
-+static struct devtype hfc8s = { "HFC-4S Junghanns.NET octoBRI PCI", .ports = 8, .has_ec = 0, .card_type = OCTOBRI };
-+static struct devtype hfc2s_OV ={ "OpenVox B200P", .ports = 2, .has_ec = 0, .card_type = B200P_OV };
-+static struct devtype hfc4s_OV ={ "OpenVox B400P", .ports = 4, .has_ec = 0, .card_type = B400P_OV };
-+static struct devtype hfc8s_OV ={ "OpenVox B800P", .ports = 8, .has_ec = 0, .card_type = B800P_OV };
-+static struct devtype hfc2s_BN ={ "BeroNet BN2S0", .ports = 2, .has_ec = 0, .card_type = BN2S0 };
-+static struct devtype hfc4s_BN ={ "BeroNet BN4S0", .ports = 4, .has_ec = 0, .card_type = BN4S0 };
-+static struct devtype hfc8s_BN ={ "BeroNet BN8S0", .ports = 8, .has_ec = 0, .card_type = BN8S0 };
-
- static int echocan_create(struct dahdi_chan *chan, struct dahdi_echocanparams *ecp,
- struct dahdi_echocanparam *p, struct dahdi_echocan_state **ec);
-@@ -403,7 +415,14 @@
-
- mb();
-
-- b4xxp_setreg8(b4, R_GPIO_SEL, 0xf0); /* GPIO0..7 S/T, 8..15 GPIO */
-+ if ((b4->card_type == OCTOBRI) || (b4->card_type == B800P_OV) || (b4->card_type == BN8S0))
-+ {
-+ b4xxp_setreg8(b4, R_GPIO_SEL, 0x00); /* GPIO0..15 S/T - HFC-8S uses GPIO8-15 for S/T ports 5-8 */
-+ }
-+ else
-+ {
-+ b4xxp_setreg8(b4, R_GPIO_SEL, 0xf0); /* GPIO0..7 S/T, 8..15 GPIO */
-+ }
-
- mb();
-
-@@ -618,13 +637,16 @@
- unsigned char b;
- unsigned int i, j, mask;
-
-+ if (! b4->has_ec) /* Avoid Echo Cancelling for non hardware echo canceller cards */
-+ return;
-+
- /* Setup GPIO */
- for (i=0; i < NUM_EC; i++) {
- b = ec_read(b4, i, 0x1a0);
-
- dev_info(b4->dev, "VPM %d/%d init: chip ver %02x\n", i, NUM_EC - 1, b);
-
-- for (j=0; j < 4; j++) {
-+ for (j=0; j < b4->numspans; j++) {
- ec_write(b4, i, 0x1a8 + j, 0x00); /* GPIO out */
- ec_write(b4, i, 0x1ac + j, 0x00); /* GPIO dir */
- ec_write(b4, i, 0x1b0 + j, 0x00); /* GPIO sel */
-@@ -1008,7 +1030,15 @@
- int fifo, hfc_chan;
- unsigned long irq_flags;
-
-- fifo = port + 8;
-+ if ((b4->card_type == B800P_OV) || (b4->card_type == OCTOBRI) || (b4->card_type == BN8S0))
-+ {
-+ fifo = port + 16; /* In HFC-8S cards we can't use ports 8-11 for dchan FIFOs */
-+ }
-+ else
-+ {
-+ fifo = port + 8;
-+ }
-+
- hfc_chan = (port * 4) + 2;
-
- /* record the host's FIFO # in the span fifo array */
-@@ -1210,7 +1240,7 @@
- int i, j;
- struct b4xxp_span *s;
-
-- for (i=0; i < 4; i++) {
-+ for (i=0; i < b4->numspans; i++) {
- s = &b4->spans[i];
-
- for (j=HFC_T1; j <= HFC_T3; j++) {
-@@ -1413,12 +1443,21 @@
-
- gpio = b4xxp_getreg8(b4, R_GPI_IN3);
-
-- for (i=0; i < 4; i++) {
-+ for (i=0; i < b4->numspans; i++) {
- s = &b4->spans[i];
- s->parent = b4;
- s->port = i;
-
-- nt = ((gpio & (1 << (i + 4))) == 0); /* GPIO=0 = NT mode */
-+ /* The way the Digium B410P card reads the NT/TE mode
-+ * jumper is the oposite of how other HFC-4S cards do:
-+ * - In B410P: GPIO=0: NT
-+ * - In Junghanns: GPIO=0: TE
-+ */
-+ if (b4->card_type == B410P)
-+ nt = ((gpio & (1 << (i + 4))) == 0);
-+ else
-+ nt = ((gpio & (1 << (i + 4))) != 0);
-+
- s->te_mode = !nt;
-
- dev_info(b4->dev, "Port %d: %s mode\n", i + 1, (nt ? "NT" : "TE"));
-@@ -1774,9 +1813,15 @@
-
- /*
- * set up the clock controller
-- * we have a 24.576MHz crystal, so the PCM clock is 2x the incoming clock.
-+ * B410P has a 24.576MHz crystal, so the PCM clock is 2x the incoming clock.
-+ * Other cards have a 49.152Mhz crystal, so the PCM clock equals incoming clock.
- */
-- b4xxp_setreg8(b4, R_BRG_PCM_CFG, 0x02);
-+
-+ if (b4->card_type == B410P)
-+ b4xxp_setreg8(b4, R_BRG_PCM_CFG,0x02);
-+ else
-+ b4xxp_setreg8(b4, R_BRG_PCM_CFG, V_PCM_CLK);
-+
- flush_pci();
-
- udelay(100); /* wait a bit for clock to settle */
-@@ -1807,7 +1852,7 @@
-
- /*
- * set up the flow controller.
-- * B channel map:
-+ * B channel map: (4 ports cards with Hardware Echo Cancel present & active)
- * FIFO 0 connects Port 1 B0 using HFC channel 16 and PCM timeslots 0/1.
- * FIFO 1 connects Port 1 B1 using HFC channel 17 and PCM timeslots 4/5.
- * FIFO 2 connects Port 2 B0 using HFC channel 20 and PCM timeslots 8/9.
-@@ -1822,14 +1867,35 @@
- *
- * D channels are handled by FIFOs 8-11.
- * FIFO 8 connects Port 1 D using HFC channel 3
-- * FIFO 9 connects Port 1 D using HFC channel 7
-- * FIFO 10 connects Port 1 D using HFC channel 11
-- * FIFO 11 connects Port 1 D using HFC channel 15
-+ * FIFO 9 connects Port 2 D using HFC channel 7
-+ * FIFO 10 connects Port 3 D using HFC channel 11
-+ * FIFO 11 connects Port 4 D using HFC channel 15
-+ *
-+ * D channel FIFOs are operated in HDLC mode and interrupt on end of frame.
-+ *
-+ * B channel map: (8 ports cards without Hardware Echo Cancel)
-+ * FIFO 0 connects Port 1 B0 using HFC channel 0
-+ * FIFO 1 connects Port 1 B1 using HFC channel 1
-+ * FIFO 2 connects Port 2 B0 using HFC channel 4
-+ * FIFO 3 connects Port 2 B1 using HFC channel 5
-+ * .........................
-+ * FIFO 14 connects Port 8 B0 using HFC channel 28
-+ * FIFO 15 connects Port 8 B1 using HFC channel 29
-+ *
-+ * All B channel FIFOs have their HDLC controller in transparent mode,
-+ * and only the FIFO for B0 on each port has its interrupt operational.
- *
-+ * D channels are handled by FIFOs 16-23.
-+ * FIFO 16 connects Port 1 D using HFC channel 3
-+ * FIFO 17 connects Port 2 D using HFC channel 7
-+ * FIFO 18 connects Port 3 D using HFC channel 11
-+ * FIFO 19 connects Port 4 D using HFC channel 15
-+ * ................
-+ * FIFO 23 connects Port 8 D using HFC channel 31
- * D channel FIFOs are operated in HDLC mode and interrupt on end of frame.
- */
- for (span=0; span < b4->numspans; span++) {
-- if (vpmsupport) {
-+ if ((vpmsupport) && (b4->has_ec)) {
- hfc_assign_bchan_fifo_ec(b4, span, 0);
- hfc_assign_bchan_fifo_ec(b4, span, 1);
- } else {
-@@ -1854,6 +1920,145 @@
- ec_write(b4, 0, 0x1a8 + 3, val);
- }
-
-+static void b4xxp_update_leds_hfc_8s(struct b4xxp *b4)
-+{
-+ unsigned long lled;
-+ unsigned long leddw;
-+ int i,j;
-+ struct b4xxp_span *bspan;
-+ lled = 0;
-+ j=8;
-+
-+ b4->blinktimer++;
-+ for (i=0; i < 8; i++) {
-+ bspan = &b4->spans[i];
-+ j = j -1 ; /* Leds are in reverse order - Led 7 => Port 0 */
-+ if (bspan->span.flags & DAHDI_FLAG_RUNNING) {
-+ if (bspan->span.alarms) {
-+ lled |= 1 << j; /* Led OFF in alarm state */
-+ } else if (bspan->span.mainttimer || bspan->span.maintstat) {
-+ if (b4->blinktimer >= 0x7f) /* Led Blinking in maint state */
-+ {
-+ lled |= 1 << j;
-+ }
-+ else
-+ {
-+ lled |= 0 << j;
-+ }
-+ } else {
-+
-+ lled |= 0 << j; /* Led ON - No alarms */
-+ }
-+ }
-+ else
-+ lled |= 1 << j; /* Led OFF - Not running */
-+ }
-+ /* Write Leds...*/
-+ leddw = lled << 24 | lled << 16 | lled << 8 | lled;
-+ b4xxp_setreg8(b4, R_BRG_PCM_CFG, 0x21);
-+ iowrite16(0x4000, b4->ioaddr + 4);
-+ iowrite32(leddw, b4->ioaddr);
-+ b4xxp_setreg8(b4, R_BRG_PCM_CFG, 0x20);
-+
-+ if (b4->blinktimer == 0xff) {
-+ b4->blinktimer = -1;
-+ }
-+}
-+
-+static void b4xxp_update_leds_hfc(struct b4xxp *b4)
-+{
-+ int i, leds;
-+ int led[4];
-+ struct b4xxp_span *bspan;
-+
-+ b4->blinktimer++;
-+ for (i=0; i < b4->numspans; i++) {
-+ bspan = &b4->spans[i];
-+
-+ if (bspan->span.flags & DAHDI_FLAG_RUNNING) {
-+ if (bspan->span.alarms) {
-+ if (b4->blinktimer >= 0x7f) /* Red blinking -> Alarm */
-+ {
-+ led[i] = 2;
-+ }
-+ else
-+ {
-+ led[i] = 0;
-+ }
-+ } else if (bspan->span.mainttimer || bspan->span.maintstat) {
-+ if (b4->blinktimer >= 0x7f) /* Green blinking -> Maint status */
-+ {
-+ led[i] = 1;
-+ }
-+ else
-+ {
-+ led[i] = 0;
-+ }
-+ } else {
-+ /* No Alarm - Green */
-+ led[i] = 1;
-+ }
-+ }
-+ else
-+ led[i] = 0; /* OFF - Not running */
-+ }
-+
-+ /* Each card manage leds in a different way. So one section per card type */
-+
-+ if (b4->card_type == B400P_OV) {
-+ leds = ((led[0] > 0) << 0) | ((led[1] > 0) << 1) |
-+ ((led[2] > 0) << 2) | ((led[3] > 0) << 3) |
-+ ((led[0] & 1) << 4) | ((led[1] & 1) << 5) |
-+ ((led[2] & 1) << 6) | ((led[3] & 1) << 7); /* Tested OK */
-+ b4xxp_setreg8(b4, R_GPIO_EN1, leds & 0x0f);
-+ b4xxp_setreg8(b4, R_GPIO_OUT1, leds >> 4);
-+ }
-+
-+ else if (b4->card_type == QUADBRI) {
-+ leds = ((led[0] > 0) << 0) | ((led[1] > 0) << 1) |
-+ ((led[2] > 0) << 2) | ((led[3] > 0) << 3) |
-+ ((led[0] & 1) << 4) | ((led[1] & 1) << 5) |
-+ ((led[2] & 1) << 6) | ((led[3] & 1) << 7); /* UNTESTED */
-+ b4xxp_setreg8(b4, R_GPIO_EN1, leds & 0x0f);
-+ b4xxp_setreg8(b4, R_GPIO_OUT1, leds >> 4);
-+ }
-+
-+ else if (b4->card_type == BN4S0) {
-+ leds = ((led[0] > 0) << 0) | ((led[1] > 0) << 1) |
-+ ((led[2] > 0) << 2) | ((led[3] > 0) << 3) |
-+ ((led[0] & 1) << 4) | ((led[1] & 1) << 5) |
-+ ((led[2] & 1) << 6) | ((led[3] & 1) << 7); /* UNTESTED */
-+ b4xxp_setreg8(b4, R_GPIO_EN1, leds & 0x0f);
-+ b4xxp_setreg8(b4, R_GPIO_OUT1, leds >> 4);
-+ }
-+
-+ else if (b4->card_type == B200P_OV) {
-+ leds = ((led[0] > 0) << 0) | ((led[1] > 0) << 1) |
-+ ((led[0] & 1) << 4) | ((led[1] & 1) << 5);
-+ b4xxp_setreg8(b4, R_GPIO_EN1, leds & 0x0f);
-+ b4xxp_setreg8(b4, R_GPIO_OUT1, leds >> 4); /* Tested OK */
-+ }
-+
-+ else if (b4->card_type == DUOBRI) {
-+ leds = ((led[0] > 0) << 0) | ((led[1] > 0) << 1) |
-+ ((led[0] & 1) << 4) | ((led[1] & 1) << 5);
-+ b4xxp_setreg8(b4, R_GPIO_EN1, leds & 0x0f);
-+ b4xxp_setreg8(b4, R_GPIO_OUT1, leds >> 4); /* UNTESTED */
-+ }
-+
-+ else if (b4->card_type == BN2S0) {
-+ leds = ((led[0] > 0) << 0) | ((led[1] > 0) << 1) |
-+ ((led[0] & 1) << 4) | ((led[1] & 1) << 5);
-+ b4xxp_setreg8(b4, R_GPIO_EN1, leds & 0x0f);
-+ b4xxp_setreg8(b4, R_GPIO_OUT1, leds >> 4); /* UNTESTED */
-+ }
-+
-+ if (b4->blinktimer == 0xff) {
-+ b4->blinktimer = -1;
-+ }
-+
-+}
-+
- static void b4xxp_set_span_led(struct b4xxp *b4, int span, unsigned char val)
- {
- int shift, spanmask;
-@@ -1871,6 +2076,18 @@
- int i;
- struct b4xxp_span *bspan;
-
-+ if (b4->numspans == 8) {
-+ /* Use the alternative function for non-Digium HFC-8S cards */
-+ b4xxp_update_leds_hfc_8s(b4);
-+ return;
-+ }
-+
-+ if (b4->card_type != B410P) {
-+ /* Use the alternative function for non-Digium HFC-4S cards */
-+ b4xxp_update_leds_hfc(b4);
-+ return;
-+ }
-+
- b4->blinktimer++;
- for (i=0; i < b4->numspans; i++) {
- bspan = &b4->spans[i];
-@@ -2174,7 +2391,7 @@
- bspan->span.close = b4xxp_close;
- bspan->span.ioctl = b4xxp_ioctl;
- bspan->span.hdlc_hard_xmit = b4xxp_hdlc_hard_xmit;
-- if (vpmsupport)
-+ if (vpmsupport && b4->has_ec)
- bspan->span.echocan_create = echocan_create;
-
- /* HDLC stuff */
-@@ -2281,13 +2498,24 @@
- static void b4xxp_bottom_half(unsigned long data)
- {
- struct b4xxp *b4 = (struct b4xxp *)data;
-- int i, j, k, gotrxfifo, fifo;
-+ int i, j, k, gotrxfifo, fifo, fifo_low, fifo_high;
- unsigned char b, b2;
-
- if (b4->shutdown)
- return;
-
- gotrxfifo = 0;
-+ if ( b4->numspans == 8 ) /* HFC-4S d-chan fifos 8-11 *** HFC-8S d-chan fifos 16-23 */
-+ {
-+ fifo_low = 16;
-+ fifo_high = 23;
-+ }
-+ else
-+ {
-+ fifo_low = 8;
-+ fifo_high = 11;
-+ }
-+
-
- for (i=0; i < 8; i++) {
- b = b2 = b4->fifo_irqstatus[i];
-@@ -2296,7 +2524,7 @@
- fifo = i*4 + j;
-
- if (b & V_IRQ_FIFOx_TX) {
-- if (fifo >=8 && fifo <= 11) { /* d-chan fifo */
-+ if (fifo >= fifo_low && fifo <= fifo_high) { /* d-chan fifos */
- /*
- * WOW I don't like this.
- * It's bad enough that I have to send a fake frame to get an HDLC TX FIFO interrupt,
-@@ -2305,7 +2533,7 @@
- * Yuck. It works well, but yuck.
- */
- do {
-- k = hdlc_tx_frame(&b4->spans[fifo - 8]);
-+ k = hdlc_tx_frame(&b4->spans[fifo - fifo_low]);
- } while (k);
- } else {
- if (printk_ratelimit())
-@@ -2314,7 +2542,7 @@
- }
-
- if (b & V_IRQ_FIFOx_RX) {
-- if (fifo >=8 && fifo <= 11) {
-+ if (fifo >= fifo_low && fifo <= fifo_high) { /* dchan fifos */
- /*
- * I have to loop here until hdlc_rx_frame says there are no more frames waiting.
- * for whatever reason, the HFC will not generate another interrupt if there are
-@@ -2322,7 +2550,7 @@
- * i.e. I get an int when F1 changes, not when F1 != F2.
- */
- do {
-- k = hdlc_rx_frame(&b4->spans[fifo - 8]);
-+ k = hdlc_rx_frame(&b4->spans[fifo - fifo_low]);
- } while (k);
- } else {
- if (printk_ratelimit())
-@@ -2404,8 +2632,8 @@
- sprintf(sBuf, "Card %d, PCI identifier %s, IRQ %d\n", b4->cardno + 1, b4->dev->bus_id, b4->irq);
-
- strcat(sBuf,"Tx:\n");
-- for (j=0; j<8; j++) {
-- for (i=0; i<12; i++) {
-+ for (j=0; j<(b4->numspans * 2) ; j++) { /* B Channels */
-+ for (i=0; i<(b4->numspans * 3) ; i++) { /* All Channels */
- chan = b4->spans[i/3].chans[i%3];
- sprintf(str, "%02x ", chan->writechunk[j]);
- strcat(sBuf, str);
-@@ -2415,8 +2643,8 @@
- }
-
- strcat(sBuf, "\nRx:\n");
-- for (j=0; j < 8; j++) {
-- for (i=0; i < 12; i++) {
-+ for (j=0; j < (b4->numspans * 2); j++) { /* B Channels */
-+ for (i=0; i < (b4->numspans * 3); i++) { /* All Channels */
- chan = b4->spans[i / 3].chans[i % 3];
- sprintf(str, "%02x%c", chan->readchunk[j], (i == 11) ? '\n' : ' ');
- strcat(sBuf, str);
-@@ -2424,7 +2652,7 @@
- }
-
- strcat(sBuf, "\nPort states:\n");
-- for (i=0; i < 4; i++) {
-+ for (i=0; i < b4->numspans; i++) {
- int state;
- char *x;
- struct b4xxp_span *s = &b4->spans[i];
-@@ -2519,7 +2747,8 @@
- /* card found, enabled and main struct allocated. Fill it out. */
- b4->magic = WCB4XXP_MAGIC;
- b4->variety = dt->desc;
--
-+ b4->has_ec = dt->has_ec;
-+ b4->card_type = dt->card_type;
- b4->pdev = pdev;
- b4->dev = &pdev->dev;
- pci_set_drvdata(pdev, b4);
-@@ -2533,7 +2762,7 @@
- spin_lock_init(&b4->fifolock);
-
- x = b4xxp_getreg8(b4, R_CHIP_ID);
-- if (x != 0xc0) { /* wrong chip? */
-+ if ((x != 0xc0) && ( x != 0x80)) { /* wrong chip? */
- dev_err(&pdev->dev, "Unknown/unsupported controller detected (R_CHIP_ID = 0x%02x)\n", x);
- goto err_out_free_mem;
- }
-@@ -2548,7 +2777,7 @@
- */
-
- /* TODO: determine whether this is a 2, 4 or 8 port card */
-- b4->numspans = 4;
-+ b4->numspans = dt->ports;
- b4->syncspan = -1; /* sync span is unknown */
- if (b4->numspans > MAX_SPANS_PER_CARD) {
- dev_err(b4->dev, "Driver does not know how to handle a %d span card!\n", b4->numspans);
-@@ -2696,7 +2925,17 @@
- static struct pci_device_id b4xx_ids[] __devinitdata =
- {
- { 0xd161, 0xb410, PCI_ANY_ID, PCI_ANY_ID, 0, 0, (unsigned long)&wcb4xxp },
-- { 0, }
-+ { 0x1397, 0x16b8, 0x1397, 0xe552, 0, 0, (unsigned long)&hfc8s },
-+ { 0x1397, 0x08b4, 0x1397, 0xb520, 0, 0, (unsigned long)&hfc4s },
-+ { 0x1397, 0x08b4, 0x1397, 0xb556, 0, 0, (unsigned long)&hfc2s },
-+ { 0x1397, 0x08b4, 0x1397, 0xe884, 0, 0, (unsigned long)&hfc2s_OV },
-+ { 0x1397, 0x08b4, 0x1397, 0xe888, 0, 0, (unsigned long)&hfc4s_OV },
-+ { 0x1397, 0x16b8, 0x1397, 0xe998, 0, 0, (unsigned long)&hfc8s_OV },
-+ { 0x1397, 0x08b4, 0x1397, 0xb566, 0, 0, (unsigned long)&hfc2s_BN },
-+ { 0x1397, 0x08b4, 0x1397, 0xb560, 0, 0, (unsigned long)&hfc4s_BN },
-+ { 0x1397, 0x16b8, 0x1397, 0xb562, 0, 0, (unsigned long)&hfc8s_BN },
-+ {0, }
-+
- };
-
- static struct pci_driver b4xx_driver = {
-@@ -2756,7 +2995,7 @@
- MODULE_PARM_DESC(timer_3_ms, "TE: msec to wait for link activation, NT: unused.");
-
- MODULE_AUTHOR("Digium Incorporated <support@digium.com>");
--MODULE_DESCRIPTION("B410P quad-port BRI module driver.");
-+MODULE_DESCRIPTION("B410P & Similars multi-port BRI module driver.");
- MODULE_LICENSE("GPL");
-
- MODULE_DEVICE_TABLE(pci, b4xx_ids);
---- a/drivers/dahdi/wcb4xxp/wcb4xxp.h 2009-06-24 13:17:03.000000000 +0000
-+++ b/drivers/dahdi/wcb4xxp/wcb4xxp.h 2009-06-24 13:18:07.000000000 +0000
-@@ -378,7 +378,7 @@
- #define HFC_T3 2
-
- #define WCB4XXP_MAGIC 0xb410c0de
--#define MAX_SPANS_PER_CARD 4
-+#define MAX_SPANS_PER_CARD 8
-
- #define WCB4XXP_CHANNELS_PER_SPAN 3 /* 2 B-channels and 1 D-Channel for each BRI span */
- #define WCB4XXP_HDLC_BUF_LEN 32 /* arbitrary, just the max # of byts we will send to DAHDI per call */
-@@ -415,6 +415,19 @@
- struct dahdi_chan _chans[WCB4XXP_CHANNELS_PER_SPAN]; /* Backing memory */
- };
-
-+enum cards_ids { /* Cards ==> Brand & Model */
-+ B410P = 0, /* Digium B410P */
-+ B200P_OV, /* OpenVox B200P */
-+ B400P_OV, /* OpenVox B400P */
-+ B800P_OV, /* OpenVox B800P */
-+ DUOBRI, /* HFC-2S Junghanns.NET duoBRI PCI */
-+ QUADBRI, /* HFC-4S Junghanns.NET quadBRI PCI */
-+ OCTOBRI, /* HFC-8S Junghanns.NET octoBRI PCI */
-+ BN2S0, /* BeroNet BN2S0 */
-+ BN4S0, /* Beronet BN4S0 */
-+ BN8S0 /* BeroNet BN8S0 */
-+ };
-+
- /* This structure exists one per card */
- struct b4xxp {
- unsigned magic; /* magic value to make sure we're looking at our struct */
-@@ -449,10 +462,12 @@
- int globalconfig; /* Whether global setup has been done */
- int syncspan; /* span that HFC uses for sync on this card */
- int running; /* interrupts are enabled */
--
-+
- struct b4xxp_span spans[MAX_SPANS_PER_CARD]; /* Individual spans */
- int order; /* Order */
- int flags; /* Device flags */
-+ int has_ec; /* Has ECHO Cancel */
-+ enum cards_ids card_type; /* Card Identifier (using ids_cards enum)*/
- int master; /* Are we master */
- int ledreg; /* copy of the LED Register */
- unsigned int gpio;
diff --git a/testing/dahdi-linux-vserver/dahdi-zaphfc.patch b/testing/dahdi-linux-vserver/dahdi-zaphfc.patch
deleted file mode 100644
index 735d1c5a3..000000000
--- a/testing/dahdi-linux-vserver/dahdi-zaphfc.patch
+++ /dev/null
@@ -1,1430 +0,0 @@
-Index: dahdi-linux-2.1.0/drivers/dahdi/zaphfc.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ dahdi-linux-2.1.0/drivers/dahdi/zaphfc.c 2008-12-10 12:46:14.000000000 +0200
-@@ -0,0 +1,1130 @@
-+/*
-+ * zaphfc.c - Zaptel driver for HFC-S PCI A based ISDN BRI cards
-+ *
-+ * kernel module inspired by HFC PCI ISDN4Linux and Zaptel drivers
-+ *
-+ * Copyright (C) 2002, 2003, 2004, 2005 Junghanns.NET GmbH
-+ *
-+ * Klaus-Peter Junghanns <kpj@junghanns.net>
-+ *
-+ * This program is free software and may be modified and
-+ * distributed under the terms of the GNU Public License.
-+ *
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/module.h>
-+#ifdef RTAITIMING
-+#include <asm/io.h>
-+#include <rtai.h>
-+#include <rtai_sched.h>
-+#include <rtai_fifos.h>
-+#endif
-+#include <linux/pci.h>
-+#include <linux/init.h>
-+#include <linux/interrupt.h>
-+#include <linux/delay.h>
-+#include <linux/sched.h>
-+#include <dahdi/kernel.h>
-+#include "zaphfc.h"
-+
-+#include <linux/moduleparam.h>
-+
-+#if CONFIG_PCI
-+
-+#define CLKDEL_TE 0x0f /* CLKDEL in TE mode */
-+#define CLKDEL_NT 0x6c /* CLKDEL in NT mode */
-+
-+typedef struct {
-+ int vendor_id;
-+ int device_id;
-+ char *vendor_name;
-+ char *card_name;
-+} PCI_ENTRY;
-+
-+static const PCI_ENTRY id_list[] =
-+{
-+ {PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_2BD0, "CCD/Billion/Asuscom", "2BD0"},
-+ {PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_B000, "Billion", "B000"},
-+ {PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_B006, "Billion", "B006"},
-+ {PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_B007, "Billion", "B007"},
-+ {PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_B008, "Billion", "B008"},
-+ {PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_B009, "Billion", "B009"},
-+ {PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_B00A, "Billion", "B00A"},
-+ {PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_B00B, "Billion", "B00B"},
-+ {PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_B00C, "Billion", "B00C"},
-+ {PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_B100, "Seyeon", "B100"},
-+ {PCI_VENDOR_ID_ABOCOM, PCI_DEVICE_ID_ABOCOM_2BD1, "Abocom/Magitek", "2BD1"},
-+ {PCI_VENDOR_ID_ASUSTEK, PCI_DEVICE_ID_ASUSTEK_0675, "Asuscom/Askey", "675"},
-+ {PCI_VENDOR_ID_BERKOM, PCI_DEVICE_ID_BERKOM_T_CONCEPT, "German telekom", "T-Concept"},
-+ {PCI_VENDOR_ID_BERKOM, PCI_DEVICE_ID_BERKOM_A1T, "German telekom", "A1T"},
-+ {PCI_VENDOR_ID_ANIGMA, PCI_DEVICE_ID_ANIGMA_MC145575, "Motorola MC145575", "MC145575"},
-+ {PCI_VENDOR_ID_ZOLTRIX, PCI_DEVICE_ID_ZOLTRIX_2BD0, "Zoltrix", "2BD0"},
-+ {PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_DIGI_DF_M_IOM2_E,"Digi International", "Digi DataFire Micro V IOM2 (Europe)"},
-+ {PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_DIGI_DF_M_E,"Digi International", "Digi DataFire Micro V (Europe)"},
-+ {PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_DIGI_DF_M_IOM2_A,"Digi International", "Digi DataFire Micro V IOM2 (North America)"},
-+ {PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_DIGI_DF_M_A,"Digi International", "Digi DataFire Micro V (North America)"},
-+ {0x182d, 0x3069,"Sitecom","Isdn 128 PCI"},
-+ {0, 0, NULL, NULL},
-+};
-+
-+static struct hfc_card *hfc_dev_list = NULL;
-+static int hfc_dev_count = 0;
-+static int modes = 0; // all TE
-+static int debug = 0;
-+static struct pci_dev *multi_hfc = NULL;
-+static spinlock_t registerlock = SPIN_LOCK_UNLOCKED;
-+
-+void hfc_shutdownCard(struct hfc_card *hfctmp) {
-+ unsigned long flags;
-+
-+ if (hfctmp == NULL) {
-+ return;
-+ }
-+
-+ if (hfctmp->pci_io == NULL) {
-+ return;
-+ }
-+
-+ spin_lock_irqsave(&hfctmp->lock,flags);
-+
-+ printk(KERN_INFO "zaphfc: shutting down card at %p.\n",hfctmp->pci_io);
-+
-+ /* Clear interrupt mask */
-+ hfctmp->regs.int_m2 = 0;
-+ hfc_outb(hfctmp, hfc_INT_M2, hfctmp->regs.int_m2);
-+
-+ /* Reset pending interrupts */
-+ hfc_inb(hfctmp, hfc_INT_S1);
-+
-+ /* Wait for interrupts that might still be pending */
-+ spin_unlock_irqrestore(&hfctmp->lock, flags);
-+ set_current_state(TASK_UNINTERRUPTIBLE);
-+ schedule_timeout((30 * HZ) / 1000); // wait 30 ms
-+ spin_lock_irqsave(&hfctmp->lock,flags);
-+
-+ /* Remove interrupt handler */
-+ if (hfctmp->irq) {
-+ free_irq(hfctmp->irq, hfctmp);
-+ }
-+
-+ /* Soft-reset the card */
-+ hfc_outb(hfctmp, hfc_CIRM, hfc_CIRM_RESET); // softreset on
-+
-+ spin_unlock_irqrestore(&hfctmp->lock, flags);
-+ set_current_state(TASK_UNINTERRUPTIBLE);
-+ schedule_timeout((30 * HZ) / 1000); // wait 30 ms
-+ spin_lock_irqsave(&hfctmp->lock,flags);
-+
-+ hfc_outb(hfctmp,hfc_CIRM,0); // softreset off
-+
-+ pci_write_config_word(hfctmp->pcidev, PCI_COMMAND, 0); // disable memio and bustmaster
-+
-+ if (hfctmp->fifomem != NULL) {
-+ kfree(hfctmp->fifomem);
-+ }
-+ iounmap((void *) hfctmp->pci_io);
-+ hfctmp->pci_io = NULL;
-+ if (hfctmp->pcidev != NULL) {
-+ pci_disable_device(hfctmp->pcidev);
-+ }
-+ spin_unlock_irqrestore(&hfctmp->lock,flags);
-+ if (hfctmp->ztdev != NULL) {
-+ dahdi_unregister(&hfctmp->ztdev->span);
-+ kfree(hfctmp->ztdev);
-+ printk(KERN_INFO "unregistered from DAHDI.\n");
-+ }
-+}
-+
-+void hfc_resetCard(struct hfc_card *hfctmp) {
-+ unsigned long flags;
-+
-+ spin_lock_irqsave(&hfctmp->lock,flags);
-+ pci_write_config_word(hfctmp->pcidev, PCI_COMMAND, PCI_COMMAND_MEMORY); // enable memio
-+ hfctmp->regs.int_m2 = 0;
-+ hfc_outb(hfctmp, hfc_INT_M2, hfctmp->regs.int_m2);
-+
-+// printk(KERN_INFO "zaphfc: resetting card.\n");
-+ pci_set_master(hfctmp->pcidev);
-+ hfc_outb(hfctmp, hfc_CIRM, hfc_CIRM_RESET); // softreset on
-+ spin_unlock_irqrestore(&hfctmp->lock, flags);
-+
-+ set_current_state(TASK_UNINTERRUPTIBLE);
-+ schedule_timeout((30 * HZ) / 1000); // wait 30 ms
-+ hfc_outb(hfctmp, hfc_CIRM, 0); // softreset off
-+
-+ set_current_state(TASK_UNINTERRUPTIBLE);
-+ schedule_timeout((20 * HZ) / 1000); // wait 20 ms
-+ if (hfc_inb(hfctmp,hfc_STATUS) & hfc_STATUS_PCI_PROC) {
-+ printk(KERN_WARNING "zaphfc: hfc busy.\n");
-+ }
-+
-+// hfctmp->regs.fifo_en = hfc_FIFOEN_D | hfc_FIFOEN_B1 | hfc_FIFOEN_B2;
-+// hfctmp->regs.fifo_en = hfc_FIFOEN_D; /* only D fifos enabled */
-+ hfctmp->regs.fifo_en = 0; /* no fifos enabled */
-+ hfc_outb(hfctmp, hfc_FIFO_EN, hfctmp->regs.fifo_en);
-+
-+ hfctmp->regs.trm = 2;
-+ hfc_outb(hfctmp, hfc_TRM, hfctmp->regs.trm);
-+
-+ if (hfctmp->regs.nt_mode == 1) {
-+ hfc_outb(hfctmp, hfc_CLKDEL, CLKDEL_NT); /* ST-Bit delay for NT-Mode */
-+ } else {
-+ hfc_outb(hfctmp, hfc_CLKDEL, CLKDEL_TE); /* ST-Bit delay for TE-Mode */
-+ }
-+ hfctmp->regs.sctrl_e = hfc_SCTRL_E_AUTO_AWAKE;
-+ hfc_outb(hfctmp, hfc_SCTRL_E, hfctmp->regs.sctrl_e); /* S/T Auto awake */
-+ hfctmp->regs.bswapped = 0; /* no exchange */
-+
-+ hfctmp->regs.ctmt = hfc_CTMT_TRANSB1 | hfc_CTMT_TRANSB2; // all bchans are transparent , no freaking hdlc
-+ hfc_outb(hfctmp, hfc_CTMT, hfctmp->regs.ctmt);
-+
-+ hfctmp->regs.int_m1 = 0;
-+ hfc_outb(hfctmp, hfc_INT_M1, hfctmp->regs.int_m1);
-+
-+#ifdef RTAITIMING
-+ hfctmp->regs.int_m2 = 0;
-+#else
-+ hfctmp->regs.int_m2 = hfc_M2_PROC_TRANS;
-+#endif
-+ hfc_outb(hfctmp, hfc_INT_M2, hfctmp->regs.int_m2);
-+
-+ /* Clear already pending ints */
-+ hfc_inb(hfctmp, hfc_INT_S1);
-+
-+ if (hfctmp->regs.nt_mode == 1) {
-+ hfctmp->regs.sctrl = 3 | hfc_SCTRL_NONE_CAP | hfc_SCTRL_MODE_NT; /* set tx_lo mode, error in datasheet ! */
-+ } else {
-+ hfctmp->regs.sctrl = 3 | hfc_SCTRL_NONE_CAP | hfc_SCTRL_MODE_TE; /* set tx_lo mode, error in datasheet ! */
-+ }
-+
-+ hfctmp->regs.mst_mode = hfc_MST_MODE_MASTER; /* HFC Master Mode */
-+ hfc_outb(hfctmp, hfc_MST_MODE, hfctmp->regs.mst_mode);
-+
-+ hfc_outb(hfctmp, hfc_SCTRL, hfctmp->regs.sctrl);
-+ hfctmp->regs.sctrl_r = 3;
-+ hfc_outb(hfctmp, hfc_SCTRL_R, hfctmp->regs.sctrl_r);
-+
-+ hfctmp->regs.connect = 0;
-+ hfc_outb(hfctmp, hfc_CONNECT, hfctmp->regs.connect);
-+
-+ hfc_outb(hfctmp, hfc_CIRM, 0x80 | 0x40); // bit order
-+
-+ /* Finally enable IRQ output */
-+#ifndef RTAITIMING
-+ hfctmp->regs.int_m2 |= hfc_M2_IRQ_ENABLE;
-+ hfc_outb(hfctmp, hfc_INT_M2, hfctmp->regs.int_m2);
-+#endif
-+
-+ /* clear pending ints */
-+ hfc_inb(hfctmp, hfc_INT_S1);
-+ hfc_inb(hfctmp, hfc_INT_S2);
-+}
-+
-+void hfc_registerCard(struct hfc_card *hfccard) {
-+ spin_lock(&registerlock);
-+ if (hfccard != NULL) {
-+ hfccard->cardno = hfc_dev_count++;
-+ hfccard->next = hfc_dev_list;
-+ hfc_dev_list = hfccard;
-+ }
-+ spin_unlock(&registerlock);
-+}
-+
-+static void hfc_btrans(struct hfc_card *hfctmp, char whichB) {
-+ // we are called with irqs disabled from the irq handler
-+ int count, maxlen, total;
-+ unsigned char *f1, *f2;
-+ unsigned short *z1, *z2, newz1;
-+ int freebytes;
-+
-+ if (whichB == 1) {
-+ f1 = (char *)(hfctmp->fifos + hfc_FIFO_B1TX_F1);
-+ f2 = (char *)(hfctmp->fifos + hfc_FIFO_B1TX_F2);
-+ z1 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_B1TX_Z1 + (*f1 * 4));
-+ z2 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_B1TX_Z2 + (*f1 * 4));
-+ } else {
-+ f1 = (char *)(hfctmp->fifos + hfc_FIFO_B2TX_F1);
-+ f2 = (char *)(hfctmp->fifos + hfc_FIFO_B2TX_F2);
-+ z1 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_B2TX_Z1 + (*f1 * 4));
-+ z2 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_B2TX_Z2 + (*f1 * 4));
-+ }
-+
-+ freebytes = *z2 - *z1;
-+ if (freebytes <= 0) {
-+ freebytes += hfc_B_FIFO_SIZE;
-+ }
-+ count = DAHDI_CHUNKSIZE;
-+
-+ total = count;
-+ if (freebytes < count) {
-+ hfctmp->clicks++;
-+ /* only spit out this warning once per second to not make things worse! */
-+ if (hfctmp->clicks > 100) {
-+ printk(KERN_CRIT "zaphfc: bchan tx fifo full, dropping audio! (z1=%d, z2=%d)\n",*z1,*z2);
-+ hfctmp->clicks = 0;
-+ }
-+ return;
-+ }
-+
-+ maxlen = (hfc_B_FIFO_SIZE + hfc_B_SUB_VAL) - *z1;
-+ if (maxlen > count) {
-+ maxlen = count;
-+ }
-+ newz1 = *z1 + total;
-+ if (newz1 >= (hfc_B_FIFO_SIZE + hfc_B_SUB_VAL)) { newz1 -= hfc_B_FIFO_SIZE; }
-+
-+ if (whichB == 1) {
-+ memcpy((char *)(hfctmp->fifos + hfc_FIFO_B1TX_ZOFF + *z1),hfctmp->ztdev->chans[0].writechunk, maxlen);
-+ } else {
-+ memcpy((char *)(hfctmp->fifos + hfc_FIFO_B2TX_ZOFF + *z1),hfctmp->ztdev->chans[1].writechunk, maxlen);
-+ }
-+
-+ count -= maxlen;
-+ if (count > 0) {
-+ // Buffer wrap
-+ if (whichB == 1) {
-+ memcpy((char *)(hfctmp->fifos + hfc_FIFO_B1TX_ZOFF + hfc_B_SUB_VAL),hfctmp->ztdev->chans[0].writechunk+maxlen, count);
-+ } else {
-+ memcpy((char *)(hfctmp->fifos + hfc_FIFO_B2TX_ZOFF + hfc_B_SUB_VAL),hfctmp->ztdev->chans[1].writechunk+maxlen, count);
-+ }
-+ }
-+
-+ *z1 = newz1; /* send it now */
-+
-+// if (count > 0) printk(KERN_CRIT "zaphfc: bchan tx fifo (f1=%d, f2=%d, z1=%d, z2=%d)\n",(*f1) & hfc_FMASK,(*f2) & hfc_FMASK, *z1, *z2);
-+ return;
-+}
-+
-+static void hfc_brec(struct hfc_card *hfctmp, char whichB) {
-+ // we are called with irqs disabled from the irq handler
-+ int count, maxlen, drop;
-+ volatile unsigned char *f1, *f2;
-+ volatile unsigned short *z1, *z2, newz2;
-+ int bytes = 0;
-+
-+ if (whichB == 1) {
-+ f1 = (char *)(hfctmp->fifos + hfc_FIFO_B1RX_F1);
-+ f2 = (char *)(hfctmp->fifos + hfc_FIFO_B1RX_F2);
-+ z1 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_B1RX_Z1 + (*f1 * 4));
-+ z2 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_B1RX_Z2 + (*f1 * 4));
-+ } else {
-+ f1 = (char *)(hfctmp->fifos + hfc_FIFO_B2RX_F1);
-+ f2 = (char *)(hfctmp->fifos + hfc_FIFO_B2RX_F2);
-+ z1 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_B2RX_Z1 + (*f1 * 4));
-+ z2 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_B2RX_Z2 + (*f1 * 4));
-+ }
-+
-+ bytes = *z1 - *z2;
-+ if (bytes < 0) {
-+ bytes += hfc_B_FIFO_SIZE;
-+ }
-+ count = DAHDI_CHUNKSIZE;
-+
-+ if (bytes < DAHDI_CHUNKSIZE) {
-+#ifndef RTAITIMING
-+ printk(KERN_CRIT "zaphfc: bchan rx fifo not enough bytes to receive! (z1=%d, z2=%d, wanted %d got %d), probably a buffer overrun.\n",*z1,*z2,DAHDI_CHUNKSIZE,bytes);
-+#endif
-+ return;
-+ }
-+
-+ /* allowing the buffering of hfc_BCHAN_BUFFER bytes of audio data works around irq jitter */
-+ if (bytes > hfc_BCHAN_BUFFER + DAHDI_CHUNKSIZE) {
-+ /* if the system is too slow to handle it, we will have to drop it all (except 1 DAHDI chunk) */
-+ drop = bytes - DAHDI_CHUNKSIZE;
-+ hfctmp->clicks++;
-+ /* only spit out this warning once per second to not make things worse! */
-+ if (hfctmp->clicks > 100) {
-+ printk(KERN_CRIT "zaphfc: dropped audio (z1=%d, z2=%d, wanted %d got %d, dropped %d).\n",*z1,*z2,count,bytes,drop);
-+ hfctmp->clicks = 0;
-+ }
-+ /* hm, we are processing the b chan data tooooo slowly... let's drop the lost audio */
-+ newz2 = *z2 + drop;
-+ if (newz2 >= (hfc_B_FIFO_SIZE + hfc_B_SUB_VAL)) {
-+ newz2 -= hfc_B_FIFO_SIZE;
-+ }
-+ *z2 = newz2;
-+ }
-+
-+
-+ maxlen = (hfc_B_FIFO_SIZE + hfc_B_SUB_VAL) - *z2;
-+ if (maxlen > count) {
-+ maxlen = count;
-+ }
-+ if (whichB == 1) {
-+ memcpy(hfctmp->ztdev->chans[0].readchunk,(char *)(hfctmp->fifos + hfc_FIFO_B1RX_ZOFF + *z2), maxlen);
-+ } else {
-+ memcpy(hfctmp->ztdev->chans[1].readchunk,(char *)(hfctmp->fifos + hfc_FIFO_B2RX_ZOFF + *z2), maxlen);
-+ }
-+ newz2 = *z2 + count;
-+ if (newz2 >= (hfc_B_FIFO_SIZE + hfc_B_SUB_VAL)) {
-+ newz2 -= hfc_B_FIFO_SIZE;
-+ }
-+ *z2 = newz2;
-+
-+ count -= maxlen;
-+ if (count > 0) {
-+ // Buffer wrap
-+ if (whichB == 1) {
-+ z2 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_B1RX_Z2 + (*f1 * 4));
-+ memcpy(hfctmp->ztdev->chans[0].readchunk + maxlen,(char *)(hfctmp->fifos + hfc_FIFO_B1RX_ZOFF + hfc_B_SUB_VAL), count);
-+ } else {
-+ z2 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_B2RX_Z2 + (*f1 * 4));
-+ memcpy(hfctmp->ztdev->chans[1].readchunk + maxlen,(char *)(hfctmp->fifos + hfc_FIFO_B2RX_ZOFF + hfc_B_SUB_VAL), count);
-+ }
-+ newz2 = *z2 + count;
-+ if (newz2 >= (hfc_B_FIFO_SIZE + hfc_B_SUB_VAL)) {
-+ newz2 -= hfc_B_FIFO_SIZE;
-+ }
-+ }
-+
-+
-+ if (whichB == 1) {
-+ dahdi_ec_chunk(&hfctmp->ztdev->chans[0], hfctmp->ztdev->chans[0].readchunk, hfctmp->ztdev->chans[0].writechunk);
-+ } else {
-+ dahdi_ec_chunk(&hfctmp->ztdev->chans[1], hfctmp->ztdev->chans[1].readchunk, hfctmp->ztdev->chans[1].writechunk);
-+ }
-+ return;
-+}
-+
-+
-+static void hfc_dtrans(struct hfc_card *hfctmp) {
-+ // we are called with irqs disabled from the irq handler
-+ int x;
-+ int count, maxlen, total;
-+ unsigned char *f1, *f2, newf1;
-+ unsigned short *z1, *z2, newz1;
-+ int frames, freebytes;
-+
-+ if (hfctmp->ztdev->chans[2].bytes2transmit == 0) {
-+ return;
-+ }
-+
-+ f1 = (char *)(hfctmp->fifos + hfc_FIFO_DTX_F1);
-+ f2 = (char *)(hfctmp->fifos + hfc_FIFO_DTX_F2);
-+ z1 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_DTX_Z1 + (*f1 * 4));
-+ z2 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_DTX_Z2 + (*f1 * 4));
-+
-+ frames = (*f1 - *f2) & hfc_FMASK;
-+ if (frames < 0) {
-+ frames += hfc_MAX_DFRAMES + 1;
-+ }
-+
-+ if (frames >= hfc_MAX_DFRAMES) {
-+ printk(KERN_CRIT "zaphfc: dchan tx fifo total number of frames exceeded!\n");
-+ return;
-+ }
-+
-+ freebytes = *z2 - *z1;
-+ if (freebytes <= 0) {
-+ freebytes += hfc_D_FIFO_SIZE;
-+ }
-+ count = hfctmp->ztdev->chans[2].bytes2transmit;
-+
-+ total = count;
-+ if (freebytes < count) {
-+ printk(KERN_CRIT "zaphfc: dchan tx fifo not enough free bytes! (z1=%d, z2=%d)\n",*z1,*z2);
-+ return;
-+ }
-+
-+ newz1 = (*z1 + count) & hfc_ZMASK;
-+ newf1 = ((*f1 + 1) & hfc_MAX_DFRAMES) | (hfc_MAX_DFRAMES + 1); // next frame
-+
-+ if (count > 0) {
-+ if (debug) {
-+ printk(KERN_CRIT "zaphfc: card %d TX [ ", hfctmp->cardno);
-+ for (x=0; x<count; x++) {
-+ printk("%#2x ",hfctmp->dtransbuf[x]);
-+ }
-+ if (hfctmp->ztdev->chans[2].eoftx == 1) {
-+ printk("] %d bytes\n", count);
-+ } else {
-+ printk("..] %d bytes\n", count);
-+ }
-+ }
-+ maxlen = hfc_D_FIFO_SIZE - *z1;
-+ if (maxlen > count) {
-+ maxlen = count;
-+ }
-+ memcpy((char *)(hfctmp->fifos + hfc_FIFO_DTX_ZOFF + *z1),hfctmp->ztdev->chans[2].writechunk, maxlen);
-+ count -= maxlen;
-+ if (count > 0) {
-+ memcpy((char *)(hfctmp->fifos + hfc_FIFO_DTX_ZOFF),(char *)(hfctmp->ztdev->chans[2].writechunk + maxlen), count);
-+ }
-+ }
-+
-+ *z1 = newz1;
-+
-+ if (hfctmp->ztdev->chans[2].eoftx == 1) {
-+ *f1 = newf1;
-+ z1 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_DTX_Z1 + (*f1 * 4));
-+ *z1 = newz1;
-+ hfctmp->ztdev->chans[2].eoftx = 0;
-+ }
-+// printk(KERN_CRIT "zaphfc: dchan tx fifo (f1=%d, f2=%d, z1=%d, z2=%d)\n",(*f1) & hfc_FMASK,(*f2) & hfc_FMASK, *z1, *z2);
-+ return;
-+}
-+
-+/* receive a complete hdlc frame, skip broken or short frames */
-+static void hfc_drec(struct hfc_card *hfctmp) {
-+ int count=0, maxlen=0, framelen=0;
-+ unsigned char *f1, *f2, *crcstat;
-+ unsigned short *z1, *z2, oldz2, newz2;
-+
-+ hfctmp->ztdev->chans[2].bytes2receive=0;
-+ hfctmp->ztdev->chans[2].eofrx = 0;
-+
-+ /* put the received data into the DAHDI buffer
-+ we'll call dahdi_receive() later when the timer fires. */
-+ f1 = (char *)(hfctmp->fifos + hfc_FIFO_DRX_F1);
-+ f2 = (char *)(hfctmp->fifos + hfc_FIFO_DRX_F2);
-+
-+ if (*f1 == *f2) return; /* nothing received, strange eh? */
-+
-+ z1 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_DRX_Z1 + (*f2 * 4));
-+ z2 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_DRX_Z2 + (*f2 * 4));
-+
-+ /* calculate length of frame, including 2 bytes CRC and 1 byte STAT */
-+ count = *z1 - *z2;
-+
-+ if (count < 0) {
-+ count += hfc_D_FIFO_SIZE; /* ring buffer wrapped */
-+ }
-+ count++;
-+ framelen = count;
-+
-+ crcstat = (char *)(hfctmp->fifos + hfc_FIFO_DRX_ZOFF + *z1);
-+
-+ if ((framelen < 4) || (*crcstat != 0x0)) {
-+ /* the frame is too short for a valid HDLC frame or the CRC is borked */
-+ printk(KERN_CRIT "zaphfc: empty HDLC frame or bad CRC received (framelen = %d, stat = %#x, card = %d).\n", framelen, *crcstat, hfctmp->cardno);
-+ oldz2 = *z2;
-+ *f2 = ((*f2 + 1) & hfc_MAX_DFRAMES) | (hfc_MAX_DFRAMES + 1); /* NEXT!!! */
-+ // recalculate z2, because Z2 is a function of F2 Z2(F2) and we INCed F2!!!
-+ z2 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_DRX_Z2 + (*f2 * 4));
-+ *z2 = (oldz2 + framelen) & hfc_ZMASK;
-+ hfctmp->drecinframe = 0;
-+ hfctmp->regs.int_drec--;
-+ /* skip short or broken frames */
-+ hfctmp->ztdev->chans[2].bytes2receive = 0;
-+ return;
-+ }
-+
-+ count -= 1; /* strip STAT */
-+ hfctmp->ztdev->chans[2].eofrx = 1;
-+
-+ if (count + *z2 <= hfc_D_FIFO_SIZE) {
-+ maxlen = count;
-+ } else {
-+ maxlen = hfc_D_FIFO_SIZE - *z2;
-+ }
-+
-+ /* copy first part */
-+ memcpy(hfctmp->drecbuf, (char *)(hfctmp->fifos + hfc_FIFO_DRX_ZOFF + *z2), maxlen);
-+ hfctmp->ztdev->chans[2].bytes2receive += maxlen;
-+
-+ count -= maxlen;
-+ if (count > 0) {
-+ /* ring buffer wrapped, copy rest from start of d fifo */
-+ memcpy(hfctmp->drecbuf + maxlen, (char *)(hfctmp->fifos + hfc_FIFO_DRX_ZOFF), count);
-+ hfctmp->ztdev->chans[2].bytes2receive += count;
-+ }
-+
-+ /* frame read */
-+ oldz2 = *z2;
-+ newz2 = (oldz2 + framelen) & hfc_ZMASK;
-+ *f2 = ((*f2 + 1) & hfc_MAX_DFRAMES) | (hfc_MAX_DFRAMES + 1); /* NEXT!!! */
-+ /* recalculate z2, because Z2 is a function of F2 Z2(F2) and we INCed F2!!! */
-+ z2 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_DRX_Z2 + (*f2 * 4));
-+ *z2 = newz2;
-+ hfctmp->drecinframe = 0;
-+ hfctmp->regs.int_drec--;
-+}
-+
-+#ifndef RTAITIMING
-+DAHDI_IRQ_HANDLER(hfc_interrupt) {
-+ struct hfc_card *hfctmp = dev_id;
-+ unsigned long flags = 0;
-+ unsigned char stat;
-+#else
-+static void hfc_service(struct hfc_card *hfctmp) {
-+#endif
-+ struct dahdi_hfc *zthfc;
-+ unsigned char s1, s2, l1state;
-+ int x;
-+
-+ if (!hfctmp) {
-+#ifndef RTAITIMING
-+ return IRQ_NONE;
-+#else
-+ /* rtai */
-+ return;
-+#endif
-+ }
-+
-+ if (!hfctmp->pci_io) {
-+ printk(KERN_WARNING "%s: IO-mem disabled, cannot handle interrupt\n",
-+ __FUNCTION__);
-+#ifndef RTAITIMING
-+ return IRQ_NONE;
-+#else
-+ /* rtai */
-+ return;
-+#endif
-+ }
-+
-+ /* we assume a few things in this irq handler:
-+ - the hfc-pci will only generate "timer" irqs (proc/non-proc)
-+ - we need to use every 8th IRQ (to generate 1khz timing)
-+ OR
-+ - if we use rtai for timing the hfc-pci will not generate ANY irq,
-+ instead rtai will call this "fake" irq with a 1khz realtime timer. :)
-+ - rtai will directly service the card, not like it used to by triggering
-+ the linux irq
-+ */
-+
-+#ifndef RTAITIMING
-+ spin_lock_irqsave(&hfctmp->lock, flags);
-+ stat = hfc_inb(hfctmp, hfc_STATUS);
-+
-+ if ((stat & hfc_STATUS_ANYINT) == 0) {
-+ // maybe we are sharing the irq
-+ spin_unlock_irqrestore(&hfctmp->lock,flags);
-+ return IRQ_NONE;
-+ }
-+#endif
-+
-+ s1 = hfc_inb(hfctmp, hfc_INT_S1);
-+ s2 = hfc_inb(hfctmp, hfc_INT_S2);
-+ if (s1 != 0) {
-+ if (s1 & hfc_INTS_TIMER) {
-+ // timer (bit 7)
-+ // printk(KERN_CRIT "timer %d %d %d.\n", stat, s1, s2);
-+ }
-+ if (s1 & hfc_INTS_L1STATE) {
-+ // state machine (bit 6)
-+ // printk(KERN_CRIT "zaphfc: layer 1 state machine interrupt\n");
-+ zthfc = hfctmp->ztdev;
-+ l1state = hfc_inb(hfctmp,hfc_STATES) & hfc_STATES_STATE_MASK;
-+ if (hfctmp->regs.nt_mode == 1) {
-+ if (debug) {
-+ printk(KERN_CRIT "zaphfc: card %d layer 1 state = G%d\n", hfctmp->cardno, l1state);
-+ }
-+ switch (l1state) {
-+ case 3:
-+#ifdef RTAITIMING
-+ sprintf(zthfc->span.desc, "HFC-S PCI A ISDN card %d [NT] layer 1 ACTIVATED (G%d) [realtime]", hfctmp->cardno, l1state);
-+#else
-+ sprintf(zthfc->span.desc, "HFC-S PCI A ISDN card %d [NT] layer 1 ACTIVATED (G%d)", hfctmp->cardno, l1state);
-+#endif
-+ break;
-+ default:
-+#ifdef RTAITIMING
-+ sprintf(zthfc->span.desc, "HFC-S PCI A ISDN card %d [NT] layer 1 DEACTIVATED (G%d) [realtime]", hfctmp->cardno, l1state);
-+#else
-+ sprintf(zthfc->span.desc, "HFC-S PCI A ISDN card %d [NT] layer 1 DEACTIVATED (G%d)", hfctmp->cardno, l1state);
-+#endif
-+ }
-+ if (l1state == 2) {
-+ hfc_outb(hfctmp, hfc_STATES, hfc_STATES_ACTIVATE | hfc_STATES_DO_ACTION | hfc_STATES_NT_G2_G3);
-+ } else if (l1state == 3) {
-+ // fix to G3 state (see specs)
-+ hfc_outb(hfctmp, hfc_STATES, hfc_STATES_LOAD_STATE | 3);
-+ }
-+ } else {
-+ if (debug) {
-+ printk(KERN_CRIT "zaphfc: card %d layer 1 state = F%d\n", hfctmp->cardno, l1state);
-+ }
-+ switch (l1state) {
-+ case 7:
-+#ifdef RTAITIMING
-+ sprintf(zthfc->span.desc, "HFC-S PCI A ISDN card %d [TE] layer 1 ACTIVATED (F%d) [realtime]", hfctmp->cardno, l1state);
-+#else
-+ sprintf(zthfc->span.desc, "HFC-S PCI A ISDN card %d [TE] layer 1 ACTIVATED (F%d)", hfctmp->cardno, l1state);
-+#endif
-+ break;
-+ default:
-+#ifdef RTAITIMING
-+ sprintf(zthfc->span.desc, "HFC-S PCI A ISDN card %d [TE] layer 1 DEACTIVATED (F%d) [realtime]", hfctmp->cardno, l1state);
-+#else
-+ sprintf(zthfc->span.desc, "HFC-S PCI A ISDN card %d [TE] layer 1 DEACTIVATED (F%d)", hfctmp->cardno, l1state);
-+#endif
-+ }
-+ if (l1state == 3) {
-+ hfc_outb(hfctmp, hfc_STATES, hfc_STATES_DO_ACTION | hfc_STATES_ACTIVATE);
-+ }
-+ }
-+
-+ }
-+ if (s1 & hfc_INTS_DREC) {
-+ // D chan RX (bit 5)
-+ hfctmp->regs.int_drec++;
-+ // mr. zapata there is something for you!
-+ // printk(KERN_CRIT "d chan rx\n");
-+ }
-+ if (s1 & hfc_INTS_B2REC) {
-+ // B2 chan RX (bit 4)
-+ }
-+ if (s1 & hfc_INTS_B1REC) {
-+ // B1 chan RX (bit 3)
-+ }
-+ if (s1 & hfc_INTS_DTRANS) {
-+ // D chan TX (bit 2)
-+// printk(KERN_CRIT "zaphfc: dchan frame transmitted.\n");
-+ }
-+ if (s1 & hfc_INTS_B2TRANS) {
-+ // B2 chan TX (bit 1)
-+ }
-+ if (s1 & hfc_INTS_B1TRANS) {
-+ // B1 chan TX (bit 0)
-+ }
-+ }
-+#ifdef RTAITIMING
-+ /* fake an irq */
-+ s2 |= hfc_M2_PROC_TRANS;
-+#endif
-+ if (s2 != 0) {
-+ if (s2 & hfc_M2_PMESEL) {
-+ // kaboom irq (bit 7)
-+ printk(KERN_CRIT "zaphfc: sync lost, pci performance too low. you might have some cpu throtteling enabled.\n");
-+ }
-+ if (s2 & hfc_M2_GCI_MON_REC) {
-+ // RxR monitor channel (bit 2)
-+ }
-+ if (s2 & hfc_M2_GCI_I_CHG) {
-+ // GCI I-change (bit 1)
-+ }
-+ if (s2 & hfc_M2_PROC_TRANS) {
-+ // processing/non-processing transition (bit 0)
-+ hfctmp->ticks++;
-+#ifndef RTAITIMING
-+ if (hfctmp->ticks > 7) {
-+ // welcome to DAHDI timing :)
-+#endif
-+ hfctmp->ticks = 0;
-+
-+ if (hfctmp->ztdev->span.flags & DAHDI_FLAG_RUNNING) {
-+ // clear dchan buffer
-+ hfctmp->ztdev->chans[2].bytes2transmit = 0;
-+ hfctmp->ztdev->chans[2].maxbytes2transmit = hfc_D_FIFO_SIZE;
-+
-+ dahdi_transmit(&(hfctmp->ztdev->span));
-+
-+ hfc_btrans(hfctmp,1);
-+ hfc_btrans(hfctmp,2);
-+ hfc_dtrans(hfctmp);
-+ }
-+
-+ hfc_brec(hfctmp,1);
-+ hfc_brec(hfctmp,2);
-+ if (hfctmp->regs.int_drec > 0) {
-+ // dchan data to read
-+ hfc_drec(hfctmp);
-+ if (hfctmp->ztdev->chans[2].bytes2receive > 0) {
-+ if (debug) {
-+ printk(KERN_CRIT "zaphfc: card %d RX [ ", hfctmp->cardno);
-+ if (hfctmp->ztdev->chans[2].eofrx) {
-+ /* dont output CRC == less user confusion */
-+ for (x=0; x < hfctmp->ztdev->chans[2].bytes2receive - 2; x++) {
-+ printk("%#2x ", hfctmp->drecbuf[x]);
-+ }
-+ printk("] %d bytes\n", hfctmp->ztdev->chans[2].bytes2receive - 2);
-+ } else {
-+ for (x=0; x < hfctmp->ztdev->chans[2].bytes2receive; x++) {
-+ printk("%#2x ", hfctmp->drecbuf[x]);
-+ }
-+ printk("..] %d bytes\n", hfctmp->ztdev->chans[2].bytes2receive);
-+ }
-+ }
-+ }
-+ } else {
-+ // hmm....ok, let DAHDI receive nothing
-+ hfctmp->ztdev->chans[2].bytes2receive = 0;
-+ }
-+ if (hfctmp->ztdev->span.flags & DAHDI_FLAG_RUNNING) {
-+ dahdi_receive(&(hfctmp->ztdev->span));
-+ }
-+
-+#ifndef RTAITIMING
-+ }
-+#endif
-+ }
-+
-+ }
-+#ifndef RTAITIMING
-+ spin_unlock_irqrestore(&hfctmp->lock,flags);
-+ return IRQ_RETVAL(1);
-+#endif
-+}
-+
-+
-+static int zthfc_open(struct dahdi_chan *chan) {
-+ struct dahdi_hfc *zthfc = chan->pvt;
-+ struct hfc_card *hfctmp = zthfc->card;
-+
-+ if (!hfctmp) {
-+ return 0;
-+ }
-+ try_module_get(THIS_MODULE);
-+ return 0;
-+}
-+
-+static int zthfc_close(struct dahdi_chan *chan) {
-+ struct dahdi_hfc *zthfc = chan->pvt;
-+ struct hfc_card *hfctmp = zthfc->card;
-+
-+ if (!hfctmp) {
-+ return 0;
-+ }
-+
-+ module_put(THIS_MODULE);
-+ return 0;
-+}
-+
-+static int zthfc_rbsbits(struct dahdi_chan *chan, int bits) {
-+ return 0;
-+}
-+
-+static int zthfc_ioctl(struct dahdi_chan *chan, unsigned int cmd, unsigned long data) {
-+ switch(cmd) {
-+ default:
-+ return -ENOTTY;
-+ }
-+ return 0;
-+}
-+
-+static int zthfc_startup(struct dahdi_span *span) {
-+ struct dahdi_hfc *zthfc = span->pvt;
-+ struct hfc_card *hfctmp = zthfc->card;
-+ int alreadyrunning;
-+
-+ if (hfctmp == NULL) {
-+ printk(KERN_INFO "zaphfc: no card for span at startup!\n");
-+ }
-+ alreadyrunning = span->flags & DAHDI_FLAG_RUNNING;
-+
-+ if (!alreadyrunning) {
-+ span->chans[2]->flags &= ~DAHDI_FLAG_HDLC;
-+ span->chans[2]->flags |= DAHDI_FLAG_BRIDCHAN;
-+
-+ span->flags |= DAHDI_FLAG_RUNNING;
-+
-+ hfctmp->ticks = -2;
-+ hfctmp->clicks = 0;
-+ hfctmp->regs.fifo_en = hfc_FIFOEN_D | hfc_FIFOEN_B1 | hfc_FIFOEN_B2;
-+ hfc_outb(hfctmp, hfc_FIFO_EN, hfctmp->regs.fifo_en);
-+ } else {
-+ return 0;
-+ }
-+
-+ // drivers, start engines!
-+ hfc_outb(hfctmp, hfc_STATES, hfc_STATES_DO_ACTION | hfc_STATES_ACTIVATE);
-+ return 0;
-+}
-+
-+static int zthfc_shutdown(struct dahdi_span *span) {
-+ return 0;
-+}
-+
-+static int zthfc_maint(struct dahdi_span *span, int cmd) {
-+ return 0;
-+}
-+
-+static int zthfc_chanconfig(struct dahdi_chan *chan, int sigtype) {
-+// printk(KERN_CRIT "chan_config sigtype=%d\n", sigtype);
-+ return 0;
-+}
-+
-+static int zthfc_spanconfig(struct dahdi_span *span, struct dahdi_lineconfig *lc) {
-+ span->lineconfig = lc->lineconfig;
-+ return 0;
-+}
-+
-+static int zthfc_initialize(struct dahdi_hfc *zthfc) {
-+ struct hfc_card *hfctmp = zthfc->card;
-+ int i;
-+
-+ memset(&zthfc->span, 0x0, sizeof(struct dahdi_span)); // you never can tell...
-+
-+ sprintf(zthfc->span.name, "ZTHFC%d", hfc_dev_count + 1);
-+ if (hfctmp->regs.nt_mode == 1) {
-+#ifdef RTAITIMING
-+ sprintf(zthfc->span.desc, "HFC-S PCI A ISDN card %d [NT] [realtime]", hfc_dev_count + 1);
-+#else
-+ sprintf(zthfc->span.desc, "HFC-S PCI A ISDN card %d [NT]", hfc_dev_count + 1);
-+#endif
-+ } else {
-+#ifdef RTAITIMING
-+ sprintf(zthfc->span.desc, "HFC-S PCI A ISDN card %d [TE] [realtime]", hfc_dev_count + 1);
-+#else
-+ sprintf(zthfc->span.desc, "HFC-S PCI A ISDN card %d [TE]", hfc_dev_count + 1);
-+#endif
-+ }
-+
-+ zthfc->span.spanconfig = zthfc_spanconfig;
-+ zthfc->span.chanconfig = zthfc_chanconfig;
-+ zthfc->span.startup = zthfc_startup;
-+ zthfc->span.shutdown = zthfc_shutdown;
-+ zthfc->span.maint = zthfc_maint;
-+ zthfc->span.rbsbits = zthfc_rbsbits;
-+ zthfc->span.open = zthfc_open;
-+ zthfc->span.close = zthfc_close;
-+ zthfc->span.ioctl = zthfc_ioctl;
-+
-+ zthfc->span.channels = 3;
-+ zthfc->span.chans = zthfc->_chans;
-+ for (i = 0; i < zthfc->span.channels; i++)
-+ zthfc->_chans[i] = &zthfc->chans[i];
-+
-+ zthfc->span.deflaw = DAHDI_LAW_ALAW;
-+ zthfc->span.linecompat = DAHDI_CONFIG_AMI | DAHDI_CONFIG_CCS; // <--- this is really BS
-+ zthfc->span.offset = 0;
-+ init_waitqueue_head(&zthfc->span.maintq);
-+ zthfc->span.pvt = zthfc;
-+
-+ for (i = 0; i < zthfc->span.channels; i++) {
-+ memset(&(zthfc->chans[i]), 0x0, sizeof(struct dahdi_chan));
-+ sprintf(zthfc->chans[i].name, "ZTHFC%d/%d/%d", hfc_dev_count + 1,0,i + 1);
-+ zthfc->chans[i].pvt = zthfc;
-+ zthfc->chans[i].sigcap = DAHDI_SIG_EM | DAHDI_SIG_CLEAR | DAHDI_SIG_FXSLS | DAHDI_SIG_FXSGS | DAHDI_SIG_FXSKS | DAHDI_SIG_FXOLS | DAHDI_SIG_FXOGS | DAHDI_SIG_FXOKS | DAHDI_SIG_CAS | DAHDI_SIG_SF;
-+ zthfc->chans[i].chanpos = i + 1;
-+ }
-+
-+ if (dahdi_register(&zthfc->span,0)) {
-+ printk(KERN_CRIT "unable to register DAHDI device!\n");
-+ return -1;
-+ }
-+// printk(KERN_CRIT "zaphfc: registered DAHDI device!\n");
-+ return 0;
-+}
-+
-+#ifdef RTAITIMING
-+#define TICK_PERIOD 1000000
-+#define TICK_PERIOD2 1000000000
-+#define TASK_PRIORITY 1
-+#define STACK_SIZE 10000
-+
-+static RT_TASK rt_task;
-+static struct hfc_card *rtai_hfc_list[hfc_MAX_CARDS];
-+static unsigned char rtai_hfc_counter = 0;
-+
-+static void rtai_register_hfc(struct hfc_card *hfctmp) {
-+ rtai_hfc_list[rtai_hfc_counter++] = hfctmp;
-+}
-+
-+static void rtai_loop(int t) {
-+ int i=0;
-+ for (;;) {
-+ for (i=0; i < rtai_hfc_counter; i++) {
-+ if (rtai_hfc_list[i] != NULL)
-+ hfc_service(rtai_hfc_list[i]);
-+ }
-+ rt_task_wait_period();
-+ }
-+}
-+#endif
-+
-+int hfc_findCards(int pcivendor, int pcidevice, char *vendor_name, char *card_name) {
-+ struct pci_dev *tmp;
-+ struct hfc_card *hfctmp = NULL;
-+ struct dahdi_hfc *zthfc = NULL;
-+
-+ tmp = pci_get_device(pcivendor, pcidevice, multi_hfc);
-+ while (tmp != NULL) {
-+ multi_hfc = tmp; // skip this next time.
-+
-+ if (pci_enable_device(tmp)) {
-+ multi_hfc = NULL;
-+ return -1;
-+ }
-+ pci_set_master(tmp);
-+
-+ hfctmp = kmalloc(sizeof(struct hfc_card), GFP_KERNEL);
-+ if (!hfctmp) {
-+ printk(KERN_WARNING "zaphfc: unable to kmalloc!\n");
-+ pci_disable_device(tmp);
-+ multi_hfc = NULL;
-+ return -ENOMEM;
-+ }
-+ memset(hfctmp, 0x0, sizeof(struct hfc_card));
-+ spin_lock_init(&hfctmp->lock);
-+
-+ hfctmp->pcidev = tmp;
-+ hfctmp->pcibus = tmp->bus->number;
-+ hfctmp->pcidevfn = tmp->devfn;
-+
-+ if (!tmp->irq) {
-+ printk(KERN_WARNING "zaphfc: no irq!\n");
-+ } else {
-+ hfctmp->irq = tmp->irq;
-+ }
-+
-+ hfctmp->pci_io = (char *) tmp->resource[1].start;
-+ if (!hfctmp->pci_io) {
-+ printk(KERN_WARNING "zaphfc: no iomem!\n");
-+ kfree(hfctmp);
-+ pci_disable_device(tmp);
-+ multi_hfc = NULL;
-+ return -1;
-+ }
-+
-+ hfctmp->fifomem = kmalloc(65536, GFP_KERNEL);
-+ if (!hfctmp->fifomem) {
-+ printk(KERN_WARNING "zaphfc: unable to kmalloc fifomem!\n");
-+ kfree(hfctmp);
-+ pci_disable_device(tmp);
-+ multi_hfc = NULL;
-+ return -ENOMEM;
-+ } else {
-+ memset(hfctmp->fifomem, 0x0, 65536);
-+ hfctmp->fifos = (void *)(((ulong) hfctmp->fifomem) & ~0x7FFF) + 0x8000;
-+ pci_write_config_dword(hfctmp->pcidev, 0x80, (u_int) virt_to_bus(hfctmp->fifos));
-+ hfctmp->pci_io = ioremap((ulong) hfctmp->pci_io, 256);
-+ }
-+
-+#ifdef RTAITIMING
-+ /* we need no stinking irq */
-+ hfctmp->irq = 0;
-+#else
-+ if (request_irq(hfctmp->irq, &hfc_interrupt, DAHDI_IRQ_SHARED, "zaphfc", hfctmp)) {
-+ printk(KERN_WARNING "zaphfc: unable to register irq\n");
-+ kfree(hfctmp->fifomem);
-+ kfree(hfctmp);
-+ iounmap((void *) hfctmp->pci_io);
-+ pci_disable_device(tmp);
-+ multi_hfc = NULL;
-+ return -EIO;
-+ }
-+#endif
-+
-+#ifdef RTAITIMING
-+ rtai_register_hfc(hfctmp);
-+#endif
-+ printk(KERN_INFO
-+ "zaphfc: %s %s configured at mem %lx fifo %lx(%#x) IRQ %d HZ %d\n",
-+ vendor_name, card_name,
-+ (unsigned long) hfctmp->pci_io,
-+ (unsigned long) hfctmp->fifos,
-+ (u_int) virt_to_bus(hfctmp->fifos),
-+ hfctmp->irq, HZ);
-+ pci_write_config_word(hfctmp->pcidev, PCI_COMMAND, PCI_COMMAND_MEMORY); // enable memio
-+ hfctmp->regs.int_m1 = 0; // no ints
-+ hfctmp->regs.int_m2 = 0; // not at all
-+ hfc_outb(hfctmp,hfc_INT_M1,hfctmp->regs.int_m1);
-+ hfc_outb(hfctmp,hfc_INT_M2,hfctmp->regs.int_m2);
-+
-+ if ((modes & (1 << hfc_dev_count)) != 0) {
-+ printk(KERN_INFO "zaphfc: Card %d configured for NT mode\n",hfc_dev_count);
-+ hfctmp->regs.nt_mode = 1;
-+ } else {
-+ printk(KERN_INFO "zaphfc: Card %d configured for TE mode\n",hfc_dev_count);
-+ hfctmp->regs.nt_mode = 0;
-+ }
-+
-+ zthfc = kmalloc(sizeof(struct dahdi_hfc),GFP_KERNEL);
-+ if (!zthfc) {
-+ printk(KERN_CRIT "zaphfc: unable to kmalloc!\n");
-+ hfc_shutdownCard(hfctmp);
-+ kfree(hfctmp);
-+ multi_hfc = NULL;
-+ return -ENOMEM;
-+ }
-+ memset(zthfc, 0x0, sizeof(struct dahdi_hfc));
-+
-+ zthfc->card = hfctmp;
-+ zthfc_initialize(zthfc);
-+ hfctmp->ztdev = zthfc;
-+
-+ memset(hfctmp->drecbuf, 0x0, sizeof(hfctmp->drecbuf));
-+ hfctmp->ztdev->chans[2].readchunk = hfctmp->drecbuf;
-+
-+ memset(hfctmp->dtransbuf, 0x0, sizeof(hfctmp->dtransbuf));
-+ hfctmp->ztdev->chans[2].writechunk = hfctmp->dtransbuf;
-+
-+ memset(hfctmp->brecbuf[0], 0x0, sizeof(hfctmp->brecbuf[0]));
-+ hfctmp->ztdev->chans[0].readchunk = hfctmp->brecbuf[0];
-+ memset(hfctmp->btransbuf[0], 0x0, sizeof(hfctmp->btransbuf[0]));
-+ hfctmp->ztdev->chans[0].writechunk = hfctmp->btransbuf[0];
-+
-+ memset(hfctmp->brecbuf[1], 0x0, sizeof(hfctmp->brecbuf[1]));
-+ hfctmp->ztdev->chans[1].readchunk = hfctmp->brecbuf[1];
-+ memset(hfctmp->btransbuf[1], 0x0, sizeof(hfctmp->btransbuf[1]));
-+ hfctmp->ztdev->chans[1].writechunk = hfctmp->btransbuf[1];
-+
-+
-+ hfc_registerCard(hfctmp);
-+ hfc_resetCard(hfctmp);
-+ tmp = pci_get_device(pcivendor, pcidevice, multi_hfc);
-+ }
-+ return 0;
-+}
-+
-+
-+
-+int init_module(void) {
-+ int i = 0;
-+#ifdef RTAITIMING
-+ RTIME tick_period;
-+ for (i=0; i < hfc_MAX_CARDS; i++) {
-+ rtai_hfc_list[i] = NULL;
-+ }
-+ rt_set_periodic_mode();
-+#endif
-+ i = 0;
-+ while (id_list[i].vendor_id) {
-+ multi_hfc = NULL;
-+ hfc_findCards(id_list[i].vendor_id, id_list[i].device_id, id_list[i].vendor_name, id_list[i].card_name);
-+ i++;
-+ }
-+#ifdef RTAITIMING
-+ for (i=0; i < hfc_MAX_CARDS; i++) {
-+ if (rtai_hfc_list[i]) {
-+ printk(KERN_INFO
-+ "zaphfc: configured %d at mem %#x fifo %#x(%#x) for realtime servicing\n",
-+ rtai_hfc_list[i]->cardno,
-+ (u_int) rtai_hfc_list[i]->pci_io,
-+ (u_int) rtai_hfc_list[i]->fifos,
-+ (u_int) virt_to_bus(rtai_hfc_list[i]->fifos));
-+
-+ }
-+ }
-+ rt_task_init(&rt_task, rtai_loop, 1, STACK_SIZE, TASK_PRIORITY, 0, 0);
-+ tick_period = start_rt_timer(nano2count(TICK_PERIOD));
-+ rt_task_make_periodic(&rt_task, rt_get_time() + tick_period, tick_period);
-+#endif
-+ printk(KERN_INFO "zaphfc: %d hfc-pci card(s) in this box.\n", hfc_dev_count);
-+ return 0;
-+}
-+
-+void cleanup_module(void) {
-+ struct hfc_card *tmpcard;
-+#ifdef RTAITIMING
-+ stop_rt_timer();
-+ rt_task_delete(&rt_task);
-+#endif
-+ printk(KERN_INFO "zaphfc: stop\n");
-+// spin_lock(&registerlock);
-+ while (hfc_dev_list != NULL) {
-+ if (hfc_dev_list == NULL) break;
-+ hfc_shutdownCard(hfc_dev_list);
-+ tmpcard = hfc_dev_list;
-+ hfc_dev_list = hfc_dev_list->next;
-+ if (tmpcard != NULL) {
-+ kfree(tmpcard);
-+ tmpcard = NULL;
-+ printk(KERN_INFO "zaphfc: freed one card.\n");
-+ }
-+ }
-+// spin_unlock(&registerlock);
-+}
-+#endif
-+
-+
-+module_param(modes, int, 0600);
-+module_param(debug, int, 0600);
-+
-+MODULE_DESCRIPTION("HFC-S PCI A Zaptel Driver");
-+MODULE_AUTHOR("Klaus-Peter Junghanns <kpj@junghanns.net>");
-+#ifdef MODULE_LICENSE
-+MODULE_LICENSE("GPL");
-+#endif
-Index: dahdi-linux-2.1.0/drivers/dahdi/zaphfc.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ dahdi-linux-2.1.0/drivers/dahdi/zaphfc.h 2008-12-10 12:46:14.000000000 +0200
-@@ -0,0 +1,290 @@
-+/*
-+ * zaphfc.h - Zaptel driver for HFC-S PCI A based ISDN BRI cards
-+ *
-+ * kernel module based on HFC PCI ISDN4Linux and Zaptel drivers
-+ *
-+ * Copyright (C) 2002, 2003, 2004, 2005 Junghanns.NET GmbH
-+ *
-+ * Klaus-Peter Junghanns <kpj@junghanns.net>
-+ *
-+ * This program is free software and may be modified and
-+ * distributed under the terms of the GNU Public License.
-+ *
-+ */
-+
-+/* HFC register addresses - accessed using memory mapped I/O */
-+/* For a list, see datasheet section 3.2.1 at page 21 */
-+
-+#define hfc_outb(a,b,c) (writeb((c),(a)->pci_io+(b)))
-+#define hfc_inb(a,b) (readb((a)->pci_io+(b)))
-+
-+/* GCI/IOM bus monitor registers */
-+
-+#define hfc_C_I 0x08
-+#define hfc_TRxR 0x0C
-+#define hfc_MON1_D 0x28
-+#define hfc_MON2_D 0x2C
-+
-+
-+/* GCI/IOM bus timeslot registers */
-+
-+#define hfc_B1_SSL 0x80
-+#define hfc_B2_SSL 0x84
-+#define hfc_AUX1_SSL 0x88
-+#define hfc_AUX2_SSL 0x8C
-+#define hfc_B1_RSL 0x90
-+#define hfc_B2_RSL 0x94
-+#define hfc_AUX1_RSL 0x98
-+#define hfc_AUX2_RSL 0x9C
-+
-+/* GCI/IOM bus data registers */
-+
-+#define hfc_B1_D 0xA0
-+#define hfc_B2_D 0xA4
-+#define hfc_AUX1_D 0xA8
-+#define hfc_AUX2_D 0xAC
-+
-+/* GCI/IOM bus configuration registers */
-+
-+#define hfc_MST_EMOD 0xB4
-+#define hfc_MST_MODE 0xB8
-+#define hfc_CONNECT 0xBC
-+
-+
-+/* Interrupt and status registers */
-+
-+#define hfc_FIFO_EN 0x44
-+#define hfc_TRM 0x48
-+#define hfc_B_MODE 0x4C
-+#define hfc_CHIP_ID 0x58
-+#define hfc_CIRM 0x60
-+#define hfc_CTMT 0x64
-+#define hfc_INT_M1 0x68
-+#define hfc_INT_M2 0x6C
-+#define hfc_INT_S1 0x78
-+#define hfc_INT_S2 0x7C
-+#define hfc_STATUS 0x70
-+
-+/* S/T section registers */
-+
-+#define hfc_STATES 0xC0
-+#define hfc_SCTRL 0xC4
-+#define hfc_SCTRL_E 0xC8
-+#define hfc_SCTRL_R 0xCC
-+#define hfc_SQ 0xD0
-+#define hfc_CLKDEL 0xDC
-+#define hfc_B1_REC 0xF0
-+#define hfc_B1_SEND 0xF0
-+#define hfc_B2_REC 0xF4
-+#define hfc_B2_SEND 0xF4
-+#define hfc_D_REC 0xF8
-+#define hfc_D_SEND 0xF8
-+#define hfc_E_REC 0xFC
-+
-+/* Bits and values in various HFC PCI registers */
-+
-+/* bits in status register (READ) */
-+#define hfc_STATUS_PCI_PROC 0x02
-+#define hfc_STATUS_NBUSY 0x04
-+#define hfc_STATUS_TIMER_ELAP 0x10
-+#define hfc_STATUS_STATINT 0x20
-+#define hfc_STATUS_FRAMEINT 0x40
-+#define hfc_STATUS_ANYINT 0x80
-+
-+/* bits in CTMT (Write) */
-+#define hfc_CTMT_CLTIMER 0x80
-+#define hfc_CTMT_TIM3_125 0x04
-+#define hfc_CTMT_TIM25 0x10
-+#define hfc_CTMT_TIM50 0x14
-+#define hfc_CTMT_TIM400 0x18
-+#define hfc_CTMT_TIM800 0x1C
-+#define hfc_CTMT_AUTO_TIMER 0x20
-+#define hfc_CTMT_TRANSB2 0x02
-+#define hfc_CTMT_TRANSB1 0x01
-+
-+/* bits in CIRM (Write) */
-+#define hfc_CIRM_AUX_MSK 0x07
-+#define hfc_CIRM_RESET 0x08
-+#define hfc_CIRM_B1_REV 0x40
-+#define hfc_CIRM_B2_REV 0x80
-+
-+/* bits in INT_M1 and INT_S1 */
-+#define hfc_INTS_B1TRANS 0x01
-+#define hfc_INTS_B2TRANS 0x02
-+#define hfc_INTS_DTRANS 0x04
-+#define hfc_INTS_B1REC 0x08
-+#define hfc_INTS_B2REC 0x10
-+#define hfc_INTS_DREC 0x20
-+#define hfc_INTS_L1STATE 0x40
-+#define hfc_INTS_TIMER 0x80
-+
-+/* bits in INT_M2 */
-+#define hfc_M2_PROC_TRANS 0x01
-+#define hfc_M2_GCI_I_CHG 0x02
-+#define hfc_M2_GCI_MON_REC 0x04
-+#define hfc_M2_IRQ_ENABLE 0x08
-+#define hfc_M2_PMESEL 0x80
-+
-+/* bits in STATES */
-+#define hfc_STATES_STATE_MASK 0x0F
-+#define hfc_STATES_LOAD_STATE 0x10
-+#define hfc_STATES_ACTIVATE 0x20
-+#define hfc_STATES_DO_ACTION 0x40
-+#define hfc_STATES_NT_G2_G3 0x80
-+
-+/* bits in HFCD_MST_MODE */
-+#define hfc_MST_MODE_MASTER 0x01
-+#define hfc_MST_MODE_SLAVE 0x00
-+/* remaining bits are for codecs control */
-+
-+/* bits in HFCD_SCTRL */
-+#define hfc_SCTRL_B1_ENA 0x01
-+#define hfc_SCTRL_B2_ENA 0x02
-+#define hfc_SCTRL_MODE_TE 0x00
-+#define hfc_SCTRL_MODE_NT 0x04
-+#define hfc_SCTRL_LOW_PRIO 0x08
-+#define hfc_SCTRL_SQ_ENA 0x10
-+#define hfc_SCTRL_TEST 0x20
-+#define hfc_SCTRL_NONE_CAP 0x40
-+#define hfc_SCTRL_PWR_DOWN 0x80
-+
-+/* bits in SCTRL_E */
-+#define hfc_SCTRL_E_AUTO_AWAKE 0x01
-+#define hfc_SCTRL_E_DBIT_1 0x04
-+#define hfc_SCTRL_E_IGNORE_COL 0x08
-+#define hfc_SCTRL_E_CHG_B1_B2 0x80
-+
-+/* bits in FIFO_EN register */
-+#define hfc_FIFOEN_B1TX 0x01
-+#define hfc_FIFOEN_B1RX 0x02
-+#define hfc_FIFOEN_B2TX 0x04
-+#define hfc_FIFOEN_B2RX 0x08
-+#define hfc_FIFOEN_DTX 0x10
-+#define hfc_FIFOEN_DRX 0x20
-+
-+#define hfc_FIFOEN_B1 (hfc_FIFOEN_B1TX|hfc_FIFOEN_B1RX)
-+#define hfc_FIFOEN_B2 (hfc_FIFOEN_B2TX|hfc_FIFOEN_B2RX)
-+#define hfc_FIFOEN_D (hfc_FIFOEN_DTX|hfc_FIFOEN_DRX)
-+
-+/* bits in the CONNECT register */
-+#define hfc_CONNECT_B1_shift 0
-+#define hfc_CONNECT_B2_shift 3
-+
-+#define hfc_CONNECT_HFC_from_ST 0x0
-+#define hfc_CONNECT_HFC_from_GCI 0x1
-+#define hfc_CONNECT_ST_from_HFC 0x0
-+#define hfc_CONNECT_ST_from_GCI 0x2
-+#define hfc_CONNECT_GCI_from_HFC 0x0
-+#define hfc_CONNECT_GCI_from_ST 0x4
-+
-+/* bits in the __SSL and __RSL registers */
-+#define hfc_SRSL_STIO 0x40
-+#define hfc_SRSL_ENABLE 0x80
-+#define hfc_SRCL_SLOT_MASK 0x1f
-+
-+/* FIFO memory definitions */
-+
-+#define hfc_FMASK 0x000f
-+#define hfc_ZMASK 0x01ff
-+#define hfc_ZMASKB 0x1fff
-+
-+#define hfc_D_FIFO_SIZE 0x0200
-+#define hfc_B_SUB_VAL 0x0200
-+#define hfc_B_FIFO_SIZE 0x1E00
-+#define hfc_MAX_DFRAMES 0x000f
-+
-+#define hfc_FIFO_DTX_Z1 0x2080
-+#define hfc_FIFO_DTX_Z2 0x2082
-+#define hfc_FIFO_DTX_F1 0x20a0
-+#define hfc_FIFO_DTX_F2 0x20a1
-+#define hfc_FIFO_DTX 0x0000
-+#define hfc_FIFO_DTX_ZOFF 0x000
-+
-+#define hfc_FIFO_DRX_Z1 0x6080
-+#define hfc_FIFO_DRX_Z2 0x6082
-+#define hfc_FIFO_DRX_F1 0x60a0
-+#define hfc_FIFO_DRX_F2 0x60a1
-+#define hfc_FIFO_DRX 0x4000
-+#define hfc_FIFO_DRX_ZOFF 0x4000
-+
-+#define hfc_FIFO_B1TX_Z1 0x2000
-+#define hfc_FIFO_B1TX_Z2 0x2002
-+#define hfc_FIFO_B1RX_Z1 0x6000
-+#define hfc_FIFO_B1RX_Z2 0x6002
-+
-+#define hfc_FIFO_B1TX_F1 0x2080
-+#define hfc_FIFO_B1TX_F2 0x2081
-+#define hfc_FIFO_B1RX_F1 0x6080
-+#define hfc_FIFO_B1RX_F2 0x6081
-+
-+#define hfc_FIFO_B1RX_ZOFF 0x4000
-+#define hfc_FIFO_B1TX_ZOFF 0x0000
-+
-+#define hfc_FIFO_B2TX_Z1 0x2100
-+#define hfc_FIFO_B2TX_Z2 0x2102
-+#define hfc_FIFO_B2RX_Z1 0x6100
-+#define hfc_FIFO_B2RX_Z2 0x6102
-+
-+#define hfc_FIFO_B2TX_F1 0x2180
-+#define hfc_FIFO_B2TX_F2 0x2181
-+#define hfc_FIFO_B2RX_F1 0x6180
-+#define hfc_FIFO_B2RX_F2 0x6181
-+
-+#define hfc_FIFO_B2RX_ZOFF 0x6000
-+#define hfc_FIFO_B2TX_ZOFF 0x2000
-+
-+#define hfc_BTRANS_THRESHOLD 128
-+#define hfc_BTRANS_THRESMASK 0x00
-+
-+/* Structures */
-+
-+typedef struct hfc_regs {
-+ unsigned char fifo_en;
-+ unsigned char ctmt;
-+ unsigned char int_m1;
-+ unsigned char int_m2;
-+ unsigned char sctrl;
-+ unsigned char sctrl_e;
-+ unsigned char sctrl_r;
-+ unsigned char connect;
-+ unsigned char trm;
-+ unsigned char mst_mode;
-+ unsigned char bswapped;
-+ unsigned char nt_mode;
-+ unsigned char int_drec;
-+} hfc_regs;
-+
-+typedef struct hfc_card {
-+ spinlock_t lock;
-+ unsigned int irq;
-+ unsigned int iomem;
-+ int ticks;
-+ int clicks;
-+ unsigned char *pci_io;
-+ void *fifomem; // start of the shared mem
-+ volatile void *fifos; // 32k aligned mem for the fifos
-+ struct hfc_regs regs;
-+ unsigned int pcibus;
-+ unsigned int pcidevfn;
-+ struct pci_dev *pcidev;
-+ struct dahdi_hfc *ztdev;
-+ int drecinframe;
-+ unsigned char drecbuf[hfc_D_FIFO_SIZE];
-+ unsigned char dtransbuf[hfc_D_FIFO_SIZE];
-+ unsigned char brecbuf[2][DAHDI_CHUNKSIZE];
-+ unsigned char btransbuf[2][DAHDI_CHUNKSIZE];
-+ unsigned char cardno;
-+ struct hfc_card *next;
-+} hfc_card;
-+
-+typedef struct dahdi_hfc {
-+ unsigned int usecount;
-+ struct dahdi_span span;
-+ struct dahdi_chan chans[3];
-+ struct dahdi_chan *_chans[3];
-+ struct hfc_card *card;
-+} dahdi_hfc;
-+
-+/* tune this */
-+#define hfc_BCHAN_BUFFER 8
-+#define hfc_MAX_CARDS 8
diff --git a/testing/dahdi-linux-vserver/zaphfc-dahdi-flortz.diff b/testing/dahdi-linux-vserver/zaphfc-dahdi-flortz.diff
deleted file mode 100644
index 719accdc6..000000000
--- a/testing/dahdi-linux-vserver/zaphfc-dahdi-flortz.diff
+++ /dev/null
@@ -1,1232 +0,0 @@
-Index: dahdi-linux-2.1.0.4/drivers/dahdi/zaphfc.h
-===================================================================
---- dahdi-linux-2.1.0.4.orig/drivers/dahdi/zaphfc.h 2009-03-17 18:13:54.000000000 +0200
-+++ dahdi-linux-2.1.0.4/drivers/dahdi/zaphfc.h 2009-03-17 18:14:44.000000000 +0200
-@@ -135,8 +135,12 @@
- /* bits in HFCD_MST_MODE */
- #define hfc_MST_MODE_MASTER 0x01
- #define hfc_MST_MODE_SLAVE 0x00
-+#define hfc_MST_MODE_F0_LONG_DURATION 0x08
- /* remaining bits are for codecs control */
-
-+/* bits in HFCD_MST_EMOD */
-+#define hfc_MST_EMOD_SLOW_CLOCK_ADJ 0x01
-+
- /* bits in HFCD_SCTRL */
- #define hfc_SCTRL_B1_ENA 0x01
- #define hfc_SCTRL_B2_ENA 0x02
-@@ -236,6 +240,9 @@
- #define hfc_BTRANS_THRESHOLD 128
- #define hfc_BTRANS_THRESMASK 0x00
-
-+#define hfc_FIFO_MEM_SIZE_BYTES (32*1024)
-+#define hfc_FIFO_MEM_SIZE_PAGES ((hfc_FIFO_MEM_SIZE_BYTES+PAGE_SIZE-1)/PAGE_SIZE)
-+
- /* Structures */
-
- typedef struct hfc_regs {
-@@ -249,20 +256,67 @@
- unsigned char connect;
- unsigned char trm;
- unsigned char mst_mode;
-+ unsigned char mst_emod;
- unsigned char bswapped;
- unsigned char nt_mode;
- unsigned char int_drec;
- } hfc_regs;
-
-+struct bch {
-+ int fill_fifo,checkcnt,initialized;
-+ struct {
-+ u16 z2;
-+ struct {
-+ volatile u16 *z1p;
-+ volatile u8 *fifo_base;
-+ int filled;
-+ } c[2];
-+ int diff;
-+ } rx;
-+ struct {
-+ u16 z1;
-+ struct {
-+ volatile u16 *z1p,*z2p;
-+ volatile u8 *fifo_base;
-+ int filled;
-+ } c[2];
-+ int diff;
-+ } tx;
-+};
-+
-+struct dch {
-+ struct {
-+ struct {
-+ volatile u8 *p;
-+ } f1;
-+ struct {
-+ u8 v;
-+ struct {
-+ u16 v;
-+ } z2;
-+ } f2;
-+ } rx;
-+ struct {
-+ struct {
-+ u8 v;
-+ volatile u8 *p;
-+ struct {
-+ u16 v;
-+ } z1;
-+ } f1;
-+ struct {
-+ volatile u8 *p;
-+ } f2;
-+ } tx;
-+};
-+
- typedef struct hfc_card {
- spinlock_t lock;
- unsigned int irq;
- unsigned int iomem;
- int ticks;
-- int clicks;
- unsigned char *pci_io;
-- void *fifomem; // start of the shared mem
-- volatile void *fifos; // 32k aligned mem for the fifos
-+ void *fifos; // 32k aligned mem for the fifos
- struct hfc_regs regs;
- unsigned int pcibus;
- unsigned int pcidevfn;
-@@ -274,6 +328,9 @@
- unsigned char brecbuf[2][DAHDI_CHUNKSIZE];
- unsigned char btransbuf[2][DAHDI_CHUNKSIZE];
- unsigned char cardno;
-+ int active;
-+ struct bch bch;
-+ struct dch dch;
- struct hfc_card *next;
- } hfc_card;
-
-@@ -285,6 +342,3 @@
- struct hfc_card *card;
- } dahdi_hfc;
-
--/* tune this */
--#define hfc_BCHAN_BUFFER 8
--#define hfc_MAX_CARDS 8
-Index: dahdi-linux-2.1.0.4/drivers/dahdi/zaphfc.c
-===================================================================
---- dahdi-linux-2.1.0.4.orig/drivers/dahdi/zaphfc.c 2009-03-17 18:52:47.000000000 +0200
-+++ dahdi-linux-2.1.0.4/drivers/dahdi/zaphfc.c 2009-03-17 18:53:43.000000000 +0200
-@@ -7,19 +7,21 @@
- *
- * Klaus-Peter Junghanns <kpj@junghanns.net>
- *
-+ * Copyright (C) 2004, 2005, 2006 Florian Zumbiehl <florz@gmx.de>
-+ * - support for slave mode of the HFC-S chip which allows it to
-+ * sync its sample clock to an external source/another HFC chip
-+ * - support for "interrupt bundling" (let only one card generate
-+ * 8 kHz timing interrupt no matter how many cards there are
-+ * in the system)
-+ * - interrupt loss tolerant b channel handling
-+ *
- * This program is free software and may be modified and
-- * distributed under the terms of the GNU Public License.
-+ * distributed under the terms of the GNU General Public License.
- *
- */
-
- #include <linux/kernel.h>
- #include <linux/module.h>
--#ifdef RTAITIMING
--#include <asm/io.h>
--#include <rtai.h>
--#include <rtai_sched.h>
--#include <rtai_fifos.h>
--#endif
- #include <linux/pci.h>
- #include <linux/init.h>
- #include <linux/interrupt.h>
-@@ -29,6 +31,8 @@
-
- #include <linux/moduleparam.h>
-
-+#define log2(n) ffz(~(n))
-+
- #if CONFIG_PCI
-
- #define CLKDEL_TE 0x0f /* CLKDEL in TE mode */
-@@ -70,42 +74,31 @@
- static struct hfc_card *hfc_dev_list = NULL;
- static int hfc_dev_count = 0;
- static int modes = 0; // all TE
-+static int sync_slave = 0; // all master
-+static int timer_card = 0;
-+static int jitterbuffer = 1;
- static int debug = 0;
- static struct pci_dev *multi_hfc = NULL;
- static spinlock_t registerlock = SPIN_LOCK_UNLOCKED;
-
--void hfc_shutdownCard(struct hfc_card *hfctmp) {
-- unsigned long flags;
--
-- if (hfctmp == NULL) {
-- return;
-- }
--
-- if (hfctmp->pci_io == NULL) {
-- return;
-- }
--
-- spin_lock_irqsave(&hfctmp->lock,flags);
--
-+void hfc_shutdownCard1(struct hfc_card *hfctmp) {
- printk(KERN_INFO "zaphfc: shutting down card at %p.\n",hfctmp->pci_io);
-
- /* Clear interrupt mask */
- hfctmp->regs.int_m2 = 0;
- hfc_outb(hfctmp, hfc_INT_M2, hfctmp->regs.int_m2);
-
-- /* Reset pending interrupts */
-- hfc_inb(hfctmp, hfc_INT_S1);
-+ /* Remove interrupt handler */
-+ free_irq(hfctmp->irq,hfctmp);
-+}
-+
-+void hfc_shutdownCard2(struct hfc_card *hfctmp) {
-+ unsigned long flags;
-
-- /* Wait for interrupts that might still be pending */
-- spin_unlock_irqrestore(&hfctmp->lock, flags);
-- set_current_state(TASK_UNINTERRUPTIBLE);
-- schedule_timeout((30 * HZ) / 1000); // wait 30 ms
- spin_lock_irqsave(&hfctmp->lock,flags);
-
-- /* Remove interrupt handler */
-- if (hfctmp->irq) {
-- free_irq(hfctmp->irq, hfctmp);
-- }
-+ /* Reset pending interrupts */
-+ hfc_inb(hfctmp, hfc_INT_S1);
-
- /* Soft-reset the card */
- hfc_outb(hfctmp, hfc_CIRM, hfc_CIRM_RESET); // softreset on
-@@ -119,8 +112,8 @@
-
- pci_write_config_word(hfctmp->pcidev, PCI_COMMAND, 0); // disable memio and bustmaster
-
-- if (hfctmp->fifomem != NULL) {
-- kfree(hfctmp->fifomem);
-+ if (hfctmp->fifos != NULL) {
-+ free_pages((unsigned long)hfctmp->fifos,log2(hfc_FIFO_MEM_SIZE_PAGES));
- }
- iounmap((void *) hfctmp->pci_io);
- hfctmp->pci_io = NULL;
-@@ -130,11 +123,24 @@
- spin_unlock_irqrestore(&hfctmp->lock,flags);
- if (hfctmp->ztdev != NULL) {
- dahdi_unregister(&hfctmp->ztdev->span);
-- kfree(hfctmp->ztdev);
-+ vfree(hfctmp->ztdev);
- printk(KERN_INFO "unregistered from DAHDI.\n");
- }
- }
-
-+void hfc_shutdownCard(struct hfc_card *hfctmp) {
-+ if (hfctmp == NULL) {
-+ return;
-+ }
-+
-+ if (hfctmp->pci_io == NULL) {
-+ return;
-+ }
-+
-+ hfc_shutdownCard1(hfctmp);
-+ hfc_shutdownCard2(hfctmp);
-+}
-+
- void hfc_resetCard(struct hfc_card *hfctmp) {
- unsigned long flags;
-
-@@ -178,14 +184,14 @@
- hfctmp->regs.ctmt = hfc_CTMT_TRANSB1 | hfc_CTMT_TRANSB2; // all bchans are transparent , no freaking hdlc
- hfc_outb(hfctmp, hfc_CTMT, hfctmp->regs.ctmt);
-
-- hfctmp->regs.int_m1 = 0;
-+ hfctmp->regs.int_m1=hfc_INTS_L1STATE;
-+ if(hfctmp->cardno==timer_card){
-+ hfctmp->regs.int_m2=hfc_M2_PROC_TRANS;
-+ }else{
-+ hfctmp->regs.int_m1|=hfc_INTS_DREC;
-+ hfctmp->regs.int_m2=0;
-+ }
- hfc_outb(hfctmp, hfc_INT_M1, hfctmp->regs.int_m1);
--
--#ifdef RTAITIMING
-- hfctmp->regs.int_m2 = 0;
--#else
-- hfctmp->regs.int_m2 = hfc_M2_PROC_TRANS;
--#endif
- hfc_outb(hfctmp, hfc_INT_M2, hfctmp->regs.int_m2);
-
- /* Clear already pending ints */
-@@ -197,8 +203,8 @@
- hfctmp->regs.sctrl = 3 | hfc_SCTRL_NONE_CAP | hfc_SCTRL_MODE_TE; /* set tx_lo mode, error in datasheet ! */
- }
-
-- hfctmp->regs.mst_mode = hfc_MST_MODE_MASTER; /* HFC Master Mode */
- hfc_outb(hfctmp, hfc_MST_MODE, hfctmp->regs.mst_mode);
-+ hfc_outb(hfctmp, hfc_MST_EMOD, hfctmp->regs.mst_emod);
-
- hfc_outb(hfctmp, hfc_SCTRL, hfctmp->regs.sctrl);
- hfctmp->regs.sctrl_r = 3;
-@@ -210,10 +216,8 @@
- hfc_outb(hfctmp, hfc_CIRM, 0x80 | 0x40); // bit order
-
- /* Finally enable IRQ output */
--#ifndef RTAITIMING
- hfctmp->regs.int_m2 |= hfc_M2_IRQ_ENABLE;
- hfc_outb(hfctmp, hfc_INT_M2, hfctmp->regs.int_m2);
--#endif
-
- /* clear pending ints */
- hfc_inb(hfctmp, hfc_INT_S1);
-@@ -230,368 +234,210 @@
- spin_unlock(&registerlock);
- }
-
--static void hfc_btrans(struct hfc_card *hfctmp, char whichB) {
-- // we are called with irqs disabled from the irq handler
-- int count, maxlen, total;
-- unsigned char *f1, *f2;
-- unsigned short *z1, *z2, newz1;
-- int freebytes;
--
-- if (whichB == 1) {
-- f1 = (char *)(hfctmp->fifos + hfc_FIFO_B1TX_F1);
-- f2 = (char *)(hfctmp->fifos + hfc_FIFO_B1TX_F2);
-- z1 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_B1TX_Z1 + (*f1 * 4));
-- z2 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_B1TX_Z2 + (*f1 * 4));
-- } else {
-- f1 = (char *)(hfctmp->fifos + hfc_FIFO_B2TX_F1);
-- f2 = (char *)(hfctmp->fifos + hfc_FIFO_B2TX_F2);
-- z1 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_B2TX_Z1 + (*f1 * 4));
-- z2 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_B2TX_Z2 + (*f1 * 4));
-- }
--
-- freebytes = *z2 - *z1;
-- if (freebytes <= 0) {
-- freebytes += hfc_B_FIFO_SIZE;
-- }
-- count = DAHDI_CHUNKSIZE;
--
-- total = count;
-- if (freebytes < count) {
-- hfctmp->clicks++;
-- /* only spit out this warning once per second to not make things worse! */
-- if (hfctmp->clicks > 100) {
-- printk(KERN_CRIT "zaphfc: bchan tx fifo full, dropping audio! (z1=%d, z2=%d)\n",*z1,*z2);
-- hfctmp->clicks = 0;
-- }
-- return;
-- }
--
-- maxlen = (hfc_B_FIFO_SIZE + hfc_B_SUB_VAL) - *z1;
-- if (maxlen > count) {
-- maxlen = count;
-- }
-- newz1 = *z1 + total;
-- if (newz1 >= (hfc_B_FIFO_SIZE + hfc_B_SUB_VAL)) { newz1 -= hfc_B_FIFO_SIZE; }
-+/*===========================================================================*/
-
-- if (whichB == 1) {
-- memcpy((char *)(hfctmp->fifos + hfc_FIFO_B1TX_ZOFF + *z1),hfctmp->ztdev->chans[0].writechunk, maxlen);
-- } else {
-- memcpy((char *)(hfctmp->fifos + hfc_FIFO_B2TX_ZOFF + *z1),hfctmp->ztdev->chans[1].writechunk, maxlen);
-- }
--
-- count -= maxlen;
-- if (count > 0) {
-- // Buffer wrap
-- if (whichB == 1) {
-- memcpy((char *)(hfctmp->fifos + hfc_FIFO_B1TX_ZOFF + hfc_B_SUB_VAL),hfctmp->ztdev->chans[0].writechunk+maxlen, count);
-- } else {
-- memcpy((char *)(hfctmp->fifos + hfc_FIFO_B2TX_ZOFF + hfc_B_SUB_VAL),hfctmp->ztdev->chans[1].writechunk+maxlen, count);
-- }
-- }
-+#if hfc_B_FIFO_SIZE%DAHDI_CHUNKSIZE
-+#error hfc_B_FIFO_SIZE is not a multiple of DAHDI_CHUNKSIZE even though the code assumes this
-+#endif
-+
-+static void hfc_dch_init(struct hfc_card *hfctmp){
-+ struct dch *chtmp=&hfctmp->dch;
-
-- *z1 = newz1; /* send it now */
-+ chtmp->rx.f1.p=(u8 *)(hfctmp->fifos+hfc_FIFO_DRX_F1);
-+ chtmp->rx.f2.v=0x1f;
-+ chtmp->rx.f2.z2.v=0x1ff;
-
--// if (count > 0) printk(KERN_CRIT "zaphfc: bchan tx fifo (f1=%d, f2=%d, z1=%d, z2=%d)\n",(*f1) & hfc_FMASK,(*f2) & hfc_FMASK, *z1, *z2);
-- return;
-+ chtmp->tx.f1.p=(u8 *)(hfctmp->fifos+hfc_FIFO_DTX_F1);
-+ chtmp->tx.f1.v=0x1f;
-+ chtmp->tx.f1.z1.v=0x1ff;
-+ chtmp->tx.f2.p=(u8 *)(hfctmp->fifos+hfc_FIFO_DTX_F2);
- }
-
--static void hfc_brec(struct hfc_card *hfctmp, char whichB) {
-- // we are called with irqs disabled from the irq handler
-- int count, maxlen, drop;
-- volatile unsigned char *f1, *f2;
-- volatile unsigned short *z1, *z2, newz2;
-- int bytes = 0;
--
-- if (whichB == 1) {
-- f1 = (char *)(hfctmp->fifos + hfc_FIFO_B1RX_F1);
-- f2 = (char *)(hfctmp->fifos + hfc_FIFO_B1RX_F2);
-- z1 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_B1RX_Z1 + (*f1 * 4));
-- z2 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_B1RX_Z2 + (*f1 * 4));
-- } else {
-- f1 = (char *)(hfctmp->fifos + hfc_FIFO_B2RX_F1);
-- f2 = (char *)(hfctmp->fifos + hfc_FIFO_B2RX_F2);
-- z1 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_B2RX_Z1 + (*f1 * 4));
-- z2 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_B2RX_Z2 + (*f1 * 4));
-- }
-+static void hfc_bch_init(struct hfc_card *hfctmp){
-+ struct bch *chtmp=&hfctmp->bch;
-
-- bytes = *z1 - *z2;
-- if (bytes < 0) {
-- bytes += hfc_B_FIFO_SIZE;
-- }
-- count = DAHDI_CHUNKSIZE;
--
-- if (bytes < DAHDI_CHUNKSIZE) {
--#ifndef RTAITIMING
-- printk(KERN_CRIT "zaphfc: bchan rx fifo not enough bytes to receive! (z1=%d, z2=%d, wanted %d got %d), probably a buffer overrun.\n",*z1,*z2,DAHDI_CHUNKSIZE,bytes);
--#endif
-- return;
-- }
-+ chtmp->checkcnt=0;
-+ chtmp->fill_fifo=0;
-
-- /* allowing the buffering of hfc_BCHAN_BUFFER bytes of audio data works around irq jitter */
-- if (bytes > hfc_BCHAN_BUFFER + DAHDI_CHUNKSIZE) {
-- /* if the system is too slow to handle it, we will have to drop it all (except 1 DAHDI chunk) */
-- drop = bytes - DAHDI_CHUNKSIZE;
-- hfctmp->clicks++;
-- /* only spit out this warning once per second to not make things worse! */
-- if (hfctmp->clicks > 100) {
-- printk(KERN_CRIT "zaphfc: dropped audio (z1=%d, z2=%d, wanted %d got %d, dropped %d).\n",*z1,*z2,count,bytes,drop);
-- hfctmp->clicks = 0;
-- }
-- /* hm, we are processing the b chan data tooooo slowly... let's drop the lost audio */
-- newz2 = *z2 + drop;
-- if (newz2 >= (hfc_B_FIFO_SIZE + hfc_B_SUB_VAL)) {
-- newz2 -= hfc_B_FIFO_SIZE;
-- }
-- *z2 = newz2;
-- }
-+ chtmp->rx.c[0].z1p=(unsigned short *)(hfctmp->fifos+hfc_FIFO_B1RX_Z1+0x1f*4);
-+ chtmp->rx.c[0].fifo_base=(char *)(hfctmp->fifos+hfc_FIFO_B1RX_ZOFF);
-+ chtmp->rx.c[1].z1p=(unsigned short *)(hfctmp->fifos+hfc_FIFO_B2RX_Z1+0x1f*4);
-+ chtmp->rx.c[1].fifo_base=(char *)(hfctmp->fifos+hfc_FIFO_B2RX_ZOFF);
-+ chtmp->rx.z2=hfc_B_SUB_VAL;
-+ chtmp->rx.diff=0;
-
--
-- maxlen = (hfc_B_FIFO_SIZE + hfc_B_SUB_VAL) - *z2;
-- if (maxlen > count) {
-- maxlen = count;
-- }
-- if (whichB == 1) {
-- memcpy(hfctmp->ztdev->chans[0].readchunk,(char *)(hfctmp->fifos + hfc_FIFO_B1RX_ZOFF + *z2), maxlen);
-- } else {
-- memcpy(hfctmp->ztdev->chans[1].readchunk,(char *)(hfctmp->fifos + hfc_FIFO_B2RX_ZOFF + *z2), maxlen);
-- }
-- newz2 = *z2 + count;
-- if (newz2 >= (hfc_B_FIFO_SIZE + hfc_B_SUB_VAL)) {
-- newz2 -= hfc_B_FIFO_SIZE;
-+ chtmp->tx.c[0].z1p=(unsigned short *)(hfctmp->fifos+hfc_FIFO_B1TX_Z1+0x1f*4);
-+ chtmp->tx.c[0].z2p=(unsigned short *)(hfctmp->fifos+hfc_FIFO_B1TX_Z2+0x1f*4);
-+ chtmp->tx.c[0].fifo_base=(char *)(hfctmp->fifos+hfc_FIFO_B1TX_ZOFF);
-+ chtmp->tx.c[0].filled=0;
-+ chtmp->tx.c[1].z1p=(unsigned short *)(hfctmp->fifos+hfc_FIFO_B2TX_Z1+0x1f*4);
-+ chtmp->tx.c[1].z2p=(unsigned short *)(hfctmp->fifos+hfc_FIFO_B2TX_Z2+0x1f*4);
-+ chtmp->tx.c[1].fifo_base=(char *)(hfctmp->fifos+hfc_FIFO_B2TX_ZOFF);
-+ chtmp->tx.c[1].filled=0;
-+ chtmp->tx.z1=hfc_B_SUB_VAL;
-+ chtmp->tx.diff=0;
-+
-+ hfc_dch_init(hfctmp);
-+
-+ chtmp->initialized=0;
-+}
-+
-+static int hfc_bch_check(struct hfc_card *hfctmp){
-+ struct bch *chtmp=&hfctmp->bch;
-+ int x,r;
-+
-+ for(x=0;x<2;x++){
-+ chtmp->tx.c[x].filled=(chtmp->tx.z1-*chtmp->tx.c[x].z2p+hfc_B_FIFO_SIZE)%hfc_B_FIFO_SIZE;
-+ chtmp->rx.c[x].filled=(*chtmp->rx.c[x].z1p-chtmp->rx.z2+hfc_B_FIFO_SIZE)%hfc_B_FIFO_SIZE;
- }
-- *z2 = newz2;
--
-- count -= maxlen;
-- if (count > 0) {
-- // Buffer wrap
-- if (whichB == 1) {
-- z2 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_B1RX_Z2 + (*f1 * 4));
-- memcpy(hfctmp->ztdev->chans[0].readchunk + maxlen,(char *)(hfctmp->fifos + hfc_FIFO_B1RX_ZOFF + hfc_B_SUB_VAL), count);
-- } else {
-- z2 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_B2RX_Z2 + (*f1 * 4));
-- memcpy(hfctmp->ztdev->chans[1].readchunk + maxlen,(char *)(hfctmp->fifos + hfc_FIFO_B2RX_ZOFF + hfc_B_SUB_VAL), count);
-- }
-- newz2 = *z2 + count;
-- if (newz2 >= (hfc_B_FIFO_SIZE + hfc_B_SUB_VAL)) {
-- newz2 -= hfc_B_FIFO_SIZE;
-+ if(chtmp->fill_fifo){
-+ chtmp->checkcnt++;
-+ chtmp->checkcnt%=DAHDI_CHUNKSIZE;
-+ r=!chtmp->checkcnt;
-+ }else{
-+ x=chtmp->tx.c[0].filled-chtmp->tx.c[1].filled;
-+ if(abs(x-chtmp->tx.diff)>1){
-+ printk(KERN_CRIT "zaphfc[%d]: tx sync changed: %d, %d\n",hfctmp->cardno,chtmp->tx.c[0].filled,chtmp->tx.c[1].filled);
-+ chtmp->tx.diff=x;
- }
-+ r=chtmp->tx.c[0].filled<=DAHDI_CHUNKSIZE*jitterbuffer&&chtmp->tx.c[1].filled<=DAHDI_CHUNKSIZE*jitterbuffer;
- }
-+ return(r);
-+}
-
-+#define hfc_bch_inc_z(a,b) (a)=((a)-hfc_B_SUB_VAL+(b))%hfc_B_FIFO_SIZE+hfc_B_SUB_VAL
-
-- if (whichB == 1) {
-- dahdi_ec_chunk(&hfctmp->ztdev->chans[0], hfctmp->ztdev->chans[0].readchunk, hfctmp->ztdev->chans[0].writechunk);
-- } else {
-- dahdi_ec_chunk(&hfctmp->ztdev->chans[1], hfctmp->ztdev->chans[1].readchunk, hfctmp->ztdev->chans[1].writechunk);
-+static void hfc_bch_tx(struct hfc_card *hfctmp){
-+ struct bch *chtmp=&hfctmp->bch;
-+ int x;
-+
-+ for(x=0;x<2;x++)
-+ memcpy((void *)(chtmp->tx.c[x].fifo_base+chtmp->tx.z1),hfctmp->ztdev->chans[x].writechunk,DAHDI_CHUNKSIZE);
-+ hfc_bch_inc_z(chtmp->tx.z1,DAHDI_CHUNKSIZE);
-+ if(chtmp->fill_fifo){
-+ chtmp->fill_fifo--;
-+ }else if(chtmp->tx.c[0].filled<=1||chtmp->tx.c[1].filled<=1){
-+ chtmp->fill_fifo=jitterbuffer;
-+ if(chtmp->initialized)
-+ printk(KERN_CRIT "zaphfc[%d]: b channel buffer underrun: %d, %d\n",hfctmp->cardno,chtmp->tx.c[0].filled,chtmp->tx.c[1].filled);
- }
-- return;
-+ if(!chtmp->fill_fifo)
-+ for(x=0;x<2;x++)*chtmp->tx.c[x].z1p=chtmp->tx.z1;
- }
-
--
--static void hfc_dtrans(struct hfc_card *hfctmp) {
-- // we are called with irqs disabled from the irq handler
-+static void hfc_bch_rx(struct hfc_card *hfctmp){
-+ struct bch *chtmp=&hfctmp->bch;
- int x;
-- int count, maxlen, total;
-- unsigned char *f1, *f2, newf1;
-- unsigned short *z1, *z2, newz1;
-- int frames, freebytes;
-
-- if (hfctmp->ztdev->chans[2].bytes2transmit == 0) {
-- return;
-+ x=chtmp->rx.c[0].filled-chtmp->rx.c[1].filled;
-+ if(abs(x-chtmp->rx.diff)>1){
-+ printk(KERN_CRIT "zaphfc[%d]: rx sync changed: %d, %d\n",hfctmp->cardno,chtmp->rx.c[0].filled,chtmp->rx.c[1].filled);
-+ chtmp->rx.diff=x;
- }
--
-- f1 = (char *)(hfctmp->fifos + hfc_FIFO_DTX_F1);
-- f2 = (char *)(hfctmp->fifos + hfc_FIFO_DTX_F2);
-- z1 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_DTX_Z1 + (*f1 * 4));
-- z2 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_DTX_Z2 + (*f1 * 4));
--
-- frames = (*f1 - *f2) & hfc_FMASK;
-- if (frames < 0) {
-- frames += hfc_MAX_DFRAMES + 1;
-+ if(chtmp->rx.c[0].filled>=DAHDI_CHUNKSIZE&&chtmp->rx.c[1].filled>=DAHDI_CHUNKSIZE){
-+ if((chtmp->rx.c[0].filled>=DAHDI_CHUNKSIZE*(jitterbuffer+2)&&chtmp->rx.c[1].filled>=DAHDI_CHUNKSIZE*(jitterbuffer+2))||!chtmp->initialized){
-+ if(chtmp->initialized)
-+ printk(KERN_CRIT "zaphfc[%d]: b channel buffer overflow: %d, %d\n",hfctmp->cardno,chtmp->rx.c[0].filled,chtmp->rx.c[1].filled);
-+ hfc_bch_inc_z(chtmp->rx.z2,chtmp->rx.c[0].filled-chtmp->rx.c[0].filled%DAHDI_CHUNKSIZE-DAHDI_CHUNKSIZE);
-+ chtmp->initialized=1;
-+ }
-+ for(x=0;x<2;x++){
-+ memcpy(hfctmp->ztdev->chans[x].readchunk,(void *)(chtmp->rx.c[x].fifo_base+chtmp->rx.z2),DAHDI_CHUNKSIZE);
-+ dahdi_ec_chunk(&hfctmp->ztdev->chans[x],hfctmp->ztdev->chans[x].readchunk,hfctmp->ztdev->chans[x].writechunk);
-+ }
-+ hfc_bch_inc_z(chtmp->rx.z2,DAHDI_CHUNKSIZE);
- }
-+}
-
-- if (frames >= hfc_MAX_DFRAMES) {
-- printk(KERN_CRIT "zaphfc: dchan tx fifo total number of frames exceeded!\n");
-- return;
-- }
-+/*===========================================================================*/
-
-- freebytes = *z2 - *z1;
-- if (freebytes <= 0) {
-- freebytes += hfc_D_FIFO_SIZE;
-- }
-- count = hfctmp->ztdev->chans[2].bytes2transmit;
--
-- total = count;
-- if (freebytes < count) {
-- printk(KERN_CRIT "zaphfc: dchan tx fifo not enough free bytes! (z1=%d, z2=%d)\n",*z1,*z2);
-- return;
-- }
--
-- newz1 = (*z1 + count) & hfc_ZMASK;
-- newf1 = ((*f1 + 1) & hfc_MAX_DFRAMES) | (hfc_MAX_DFRAMES + 1); // next frame
--
-- if (count > 0) {
-- if (debug) {
-- printk(KERN_CRIT "zaphfc: card %d TX [ ", hfctmp->cardno);
-- for (x=0; x<count; x++) {
-+static void hfc_dch_tx(struct hfc_card *hfctmp){
-+ struct dch *chtmp=&hfctmp->dch;
-+ u8 tx_f2_v;
-+ u16 x;
-+
-+ if(hfctmp->ztdev->chans[2].bytes2transmit){
-+ if(debug){
-+ printk(KERN_CRIT "zaphfc[%d]: card TX [ ",hfctmp->cardno);
-+ for(x=0;x<hfctmp->ztdev->chans[2].bytes2transmit;x++){
- printk("%#2x ",hfctmp->dtransbuf[x]);
- }
-- if (hfctmp->ztdev->chans[2].eoftx == 1) {
-- printk("] %d bytes\n", count);
-- } else {
-- printk("..] %d bytes\n", count);
-- }
-- }
-- maxlen = hfc_D_FIFO_SIZE - *z1;
-- if (maxlen > count) {
-- maxlen = count;
-+ printk("] %d bytes\n",hfctmp->ztdev->chans[2].bytes2transmit);
- }
-- memcpy((char *)(hfctmp->fifos + hfc_FIFO_DTX_ZOFF + *z1),hfctmp->ztdev->chans[2].writechunk, maxlen);
-- count -= maxlen;
-- if (count > 0) {
-- memcpy((char *)(hfctmp->fifos + hfc_FIFO_DTX_ZOFF),(char *)(hfctmp->ztdev->chans[2].writechunk + maxlen), count);
-+ tx_f2_v=*chtmp->tx.f2.p;
-+ if(!(tx_f2_v-chtmp->tx.f1.v+hfc_MAX_DFRAMES+1-1)&(hfc_MAX_DFRAMES+1-1)){
-+ printk(KERN_CRIT "zaphfc[%d]: dchan tx fifo total number of frames exceeded!\n",hfctmp->cardno);
-+ }else{
-+ if(((*(volatile u16 *)(hfctmp->fifos+hfc_FIFO_DTX_Z2+tx_f2_v*4)-chtmp->tx.f1.z1.v+hfc_D_FIFO_SIZE-1)&(hfc_D_FIFO_SIZE-1))<hfctmp->ztdev->chans[2].bytes2transmit){
-+ printk(KERN_CRIT "zaphfc[%d]: dchan tx fifo not enough space for frame!\n",hfctmp->cardno);
-+ }else{
-+ chtmp->tx.f1.v=((chtmp->tx.f1.v+1)&hfc_MAX_DFRAMES)|(hfc_MAX_DFRAMES+1);
-+ x=min(hfctmp->ztdev->chans[2].bytes2transmit,hfc_D_FIFO_SIZE-chtmp->tx.f1.z1.v);
-+ memcpy(hfctmp->fifos+hfc_FIFO_DTX_ZOFF+chtmp->tx.f1.z1.v,hfctmp->ztdev->chans[2].writechunk,x);
-+ memcpy(hfctmp->fifos+hfc_FIFO_DTX_ZOFF,hfctmp->ztdev->chans[2].writechunk+x,hfctmp->ztdev->chans[2].bytes2transmit-x);
-+ *(volatile u16 *)(hfctmp->fifos+hfc_FIFO_DTX_Z2+chtmp->tx.f1.v*4)=chtmp->tx.f1.z1.v;
-+ chtmp->tx.f1.z1.v=(chtmp->tx.f1.z1.v+hfctmp->ztdev->chans[2].bytes2transmit+hfc_D_FIFO_SIZE)&(hfc_D_FIFO_SIZE-1);
-+ *(volatile u16 *)(hfctmp->fifos+hfc_FIFO_DTX_Z1+chtmp->tx.f1.v*4)=chtmp->tx.f1.z1.v;
-+ *chtmp->tx.f1.p=chtmp->tx.f1.v;
-+ }
- }
- }
--
-- *z1 = newz1;
--
-- if (hfctmp->ztdev->chans[2].eoftx == 1) {
-- *f1 = newf1;
-- z1 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_DTX_Z1 + (*f1 * 4));
-- *z1 = newz1;
-- hfctmp->ztdev->chans[2].eoftx = 0;
-- }
--// printk(KERN_CRIT "zaphfc: dchan tx fifo (f1=%d, f2=%d, z1=%d, z2=%d)\n",(*f1) & hfc_FMASK,(*f2) & hfc_FMASK, *z1, *z2);
-- return;
- }
-
--/* receive a complete hdlc frame, skip broken or short frames */
--static void hfc_drec(struct hfc_card *hfctmp) {
-- int count=0, maxlen=0, framelen=0;
-- unsigned char *f1, *f2, *crcstat;
-- unsigned short *z1, *z2, oldz2, newz2;
-+static void hfc_dch_rx(struct hfc_card *hfctmp){
-+ struct dch *chtmp=&hfctmp->dch;
-+ u16 size;
-
- hfctmp->ztdev->chans[2].bytes2receive=0;
-- hfctmp->ztdev->chans[2].eofrx = 0;
--
-- /* put the received data into the DAHDI buffer
-- we'll call dahdi_receive() later when the timer fires. */
-- f1 = (char *)(hfctmp->fifos + hfc_FIFO_DRX_F1);
-- f2 = (char *)(hfctmp->fifos + hfc_FIFO_DRX_F2);
--
-- if (*f1 == *f2) return; /* nothing received, strange eh? */
--
-- z1 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_DRX_Z1 + (*f2 * 4));
-- z2 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_DRX_Z2 + (*f2 * 4));
--
-- /* calculate length of frame, including 2 bytes CRC and 1 byte STAT */
-- count = *z1 - *z2;
--
-- if (count < 0) {
-- count += hfc_D_FIFO_SIZE; /* ring buffer wrapped */
-- }
-- count++;
-- framelen = count;
--
-- crcstat = (char *)(hfctmp->fifos + hfc_FIFO_DRX_ZOFF + *z1);
--
-- if ((framelen < 4) || (*crcstat != 0x0)) {
-- /* the frame is too short for a valid HDLC frame or the CRC is borked */
-- printk(KERN_CRIT "zaphfc: empty HDLC frame or bad CRC received (framelen = %d, stat = %#x, card = %d).\n", framelen, *crcstat, hfctmp->cardno);
-- oldz2 = *z2;
-- *f2 = ((*f2 + 1) & hfc_MAX_DFRAMES) | (hfc_MAX_DFRAMES + 1); /* NEXT!!! */
-- // recalculate z2, because Z2 is a function of F2 Z2(F2) and we INCed F2!!!
-- z2 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_DRX_Z2 + (*f2 * 4));
-- *z2 = (oldz2 + framelen) & hfc_ZMASK;
-- hfctmp->drecinframe = 0;
-- hfctmp->regs.int_drec--;
-- /* skip short or broken frames */
-- hfctmp->ztdev->chans[2].bytes2receive = 0;
-- return;
-- }
--
-- count -= 1; /* strip STAT */
-- hfctmp->ztdev->chans[2].eofrx = 1;
--
-- if (count + *z2 <= hfc_D_FIFO_SIZE) {
-- maxlen = count;
-- } else {
-- maxlen = hfc_D_FIFO_SIZE - *z2;
-+ hfctmp->ztdev->chans[2].eofrx=0;
-+ if(*chtmp->rx.f1.p==chtmp->rx.f2.v){
-+ hfctmp->regs.int_drec=0;
-+ }else{
-+ size=((*(volatile u16 *)(hfctmp->fifos+hfc_FIFO_DRX_Z1+chtmp->rx.f2.v*4)-chtmp->rx.f2.z2.v+hfc_D_FIFO_SIZE)&(hfc_D_FIFO_SIZE-1))+1;
-+ if(size<4){
-+ printk(KERN_CRIT "zaphfc[%d]: empty HDLC frame received.\n",hfctmp->cardno);
-+ }else{
-+ u16 x=min(size,(u16)(hfc_D_FIFO_SIZE-chtmp->rx.f2.z2.v));
-+ memcpy(hfctmp->drecbuf,hfctmp->fifos+hfc_FIFO_DRX_ZOFF+chtmp->rx.f2.z2.v,x);
-+ memcpy(hfctmp->drecbuf+x,hfctmp->fifos+hfc_FIFO_DRX_ZOFF,size-x);
-+ if(hfctmp->drecbuf[size-1]){
-+ printk(KERN_CRIT "zaphfc[%d]: received d channel frame with bad CRC.\n",hfctmp->cardno);
-+ }else{
-+ hfctmp->ztdev->chans[2].bytes2receive=size-1;
-+ hfctmp->ztdev->chans[2].eofrx=1;
-+ }
-+ }
-+ chtmp->rx.f2.z2.v=(chtmp->rx.f2.z2.v+size)&(hfc_D_FIFO_SIZE-1);
-+ chtmp->rx.f2.v=((chtmp->rx.f2.v+1)&hfc_MAX_DFRAMES)|(hfc_MAX_DFRAMES+1);
- }
--
-- /* copy first part */
-- memcpy(hfctmp->drecbuf, (char *)(hfctmp->fifos + hfc_FIFO_DRX_ZOFF + *z2), maxlen);
-- hfctmp->ztdev->chans[2].bytes2receive += maxlen;
--
-- count -= maxlen;
-- if (count > 0) {
-- /* ring buffer wrapped, copy rest from start of d fifo */
-- memcpy(hfctmp->drecbuf + maxlen, (char *)(hfctmp->fifos + hfc_FIFO_DRX_ZOFF), count);
-- hfctmp->ztdev->chans[2].bytes2receive += count;
-- }
--
-- /* frame read */
-- oldz2 = *z2;
-- newz2 = (oldz2 + framelen) & hfc_ZMASK;
-- *f2 = ((*f2 + 1) & hfc_MAX_DFRAMES) | (hfc_MAX_DFRAMES + 1); /* NEXT!!! */
-- /* recalculate z2, because Z2 is a function of F2 Z2(F2) and we INCed F2!!! */
-- z2 = (unsigned short *)(hfctmp->fifos + hfc_FIFO_DRX_Z2 + (*f2 * 4));
-- *z2 = newz2;
-- hfctmp->drecinframe = 0;
-- hfctmp->regs.int_drec--;
- }
-
--#ifndef RTAITIMING
- DAHDI_IRQ_HANDLER(hfc_interrupt) {
- struct hfc_card *hfctmp = dev_id;
-- unsigned long flags = 0;
-- unsigned char stat;
--#else
--static void hfc_service(struct hfc_card *hfctmp) {
--#endif
-+ struct hfc_card *hfctmp2;
- struct dahdi_hfc *zthfc;
-- unsigned char s1, s2, l1state;
-+ unsigned char stat, s1, s2, l1state;
-+ unsigned long flags = 0;
-+ unsigned long flags2 = 0;
- int x;
-
- if (!hfctmp) {
--#ifndef RTAITIMING
-- return IRQ_NONE;
--#else
-- /* rtai */
-- return;
--#endif
-+ return IRQ_NONE;
- }
-
- if (!hfctmp->pci_io) {
- printk(KERN_WARNING "%s: IO-mem disabled, cannot handle interrupt\n",
- __FUNCTION__);
--#ifndef RTAITIMING
- return IRQ_NONE;
--#else
-- /* rtai */
-- return;
--#endif
- }
-
-- /* we assume a few things in this irq handler:
-- - the hfc-pci will only generate "timer" irqs (proc/non-proc)
-- - we need to use every 8th IRQ (to generate 1khz timing)
-- OR
-- - if we use rtai for timing the hfc-pci will not generate ANY irq,
-- instead rtai will call this "fake" irq with a 1khz realtime timer. :)
-- - rtai will directly service the card, not like it used to by triggering
-- the linux irq
-- */
--
--#ifndef RTAITIMING
- spin_lock_irqsave(&hfctmp->lock, flags);
- stat = hfc_inb(hfctmp, hfc_STATUS);
--
- if ((stat & hfc_STATUS_ANYINT) == 0) {
- // maybe we are sharing the irq
- spin_unlock_irqrestore(&hfctmp->lock,flags);
- return IRQ_NONE;
- }
--#endif
-
- s1 = hfc_inb(hfctmp, hfc_INT_S1);
- s2 = hfc_inb(hfctmp, hfc_INT_S2);
-@@ -611,18 +457,10 @@
- }
- switch (l1state) {
- case 3:
--#ifdef RTAITIMING
-- sprintf(zthfc->span.desc, "HFC-S PCI A ISDN card %d [NT] layer 1 ACTIVATED (G%d) [realtime]", hfctmp->cardno, l1state);
--#else
- sprintf(zthfc->span.desc, "HFC-S PCI A ISDN card %d [NT] layer 1 ACTIVATED (G%d)", hfctmp->cardno, l1state);
--#endif
- break;
- default:
--#ifdef RTAITIMING
-- sprintf(zthfc->span.desc, "HFC-S PCI A ISDN card %d [NT] layer 1 DEACTIVATED (G%d) [realtime]", hfctmp->cardno, l1state);
--#else
- sprintf(zthfc->span.desc, "HFC-S PCI A ISDN card %d [NT] layer 1 DEACTIVATED (G%d)", hfctmp->cardno, l1state);
--#endif
- }
- if (l1state == 2) {
- hfc_outb(hfctmp, hfc_STATES, hfc_STATES_ACTIVATE | hfc_STATES_DO_ACTION | hfc_STATES_NT_G2_G3);
-@@ -636,18 +474,10 @@
- }
- switch (l1state) {
- case 7:
--#ifdef RTAITIMING
-- sprintf(zthfc->span.desc, "HFC-S PCI A ISDN card %d [TE] layer 1 ACTIVATED (F%d) [realtime]", hfctmp->cardno, l1state);
--#else
- sprintf(zthfc->span.desc, "HFC-S PCI A ISDN card %d [TE] layer 1 ACTIVATED (F%d)", hfctmp->cardno, l1state);
--#endif
- break;
- default:
--#ifdef RTAITIMING
-- sprintf(zthfc->span.desc, "HFC-S PCI A ISDN card %d [TE] layer 1 DEACTIVATED (F%d) [realtime]", hfctmp->cardno, l1state);
--#else
- sprintf(zthfc->span.desc, "HFC-S PCI A ISDN card %d [TE] layer 1 DEACTIVATED (F%d)", hfctmp->cardno, l1state);
--#endif
- }
- if (l1state == 3) {
- hfc_outb(hfctmp, hfc_STATES, hfc_STATES_DO_ACTION | hfc_STATES_ACTIVATE);
-@@ -657,7 +487,7 @@
- }
- if (s1 & hfc_INTS_DREC) {
- // D chan RX (bit 5)
-- hfctmp->regs.int_drec++;
-+ hfctmp->regs.int_drec = 1;
- // mr. zapata there is something for you!
- // printk(KERN_CRIT "d chan rx\n");
- }
-@@ -678,14 +508,10 @@
- // B1 chan TX (bit 0)
- }
- }
--#ifdef RTAITIMING
-- /* fake an irq */
-- s2 |= hfc_M2_PROC_TRANS;
--#endif
- if (s2 != 0) {
- if (s2 & hfc_M2_PMESEL) {
- // kaboom irq (bit 7)
-- printk(KERN_CRIT "zaphfc: sync lost, pci performance too low. you might have some cpu throtteling enabled.\n");
-+ //printk(KERN_CRIT "zaphfc: sync lost, pci performance too low. you might have some cpu throtteling enabled.\n");
- }
- if (s2 & hfc_M2_GCI_MON_REC) {
- // RxR monitor channel (bit 2)
-@@ -693,32 +519,31 @@
- if (s2 & hfc_M2_GCI_I_CHG) {
- // GCI I-change (bit 1)
- }
-- if (s2 & hfc_M2_PROC_TRANS) {
-+ if((s2&hfc_M2_PROC_TRANS)&&(hfctmp->cardno==timer_card)){
- // processing/non-processing transition (bit 0)
-- hfctmp->ticks++;
--#ifndef RTAITIMING
-- if (hfctmp->ticks > 7) {
-- // welcome to DAHDI timing :)
--#endif
-- hfctmp->ticks = 0;
--
-- if (hfctmp->ztdev->span.flags & DAHDI_FLAG_RUNNING) {
-+ hfctmp2=hfctmp;
-+ hfctmp=hfc_dev_list;
-+ while(hfctmp){
-+ if(hfctmp->active){
-+ if(hfctmp!=hfctmp2)spin_lock_irqsave(&hfctmp->lock, flags2);
-+ if(hfc_bch_check(hfctmp)){
-+ if (hfctmp->ztdev->span.flags & DAHDI_FLAG_RUNNING) {
- // clear dchan buffer
-+ // memset(hfctmp->drecbuf, 0x0, sizeof(hfctmp->drecbuf));
-+
- hfctmp->ztdev->chans[2].bytes2transmit = 0;
- hfctmp->ztdev->chans[2].maxbytes2transmit = hfc_D_FIFO_SIZE;
-
- dahdi_transmit(&(hfctmp->ztdev->span));
-
-- hfc_btrans(hfctmp,1);
-- hfc_btrans(hfctmp,2);
-- hfc_dtrans(hfctmp);
-+ hfc_bch_tx(hfctmp);
-+ hfc_dch_tx(hfctmp);
- }
-
-- hfc_brec(hfctmp,1);
-- hfc_brec(hfctmp,2);
-- if (hfctmp->regs.int_drec > 0) {
-+ hfc_bch_rx(hfctmp);
-+ if (hfctmp->regs.int_drec) {
- // dchan data to read
-- hfc_drec(hfctmp);
-+ hfc_dch_rx(hfctmp);
- if (hfctmp->ztdev->chans[2].bytes2receive > 0) {
- if (debug) {
- printk(KERN_CRIT "zaphfc: card %d RX [ ", hfctmp->cardno);
-@@ -743,17 +568,16 @@
- if (hfctmp->ztdev->span.flags & DAHDI_FLAG_RUNNING) {
- dahdi_receive(&(hfctmp->ztdev->span));
- }
--
--#ifndef RTAITIMING
- }
--#endif
-+ if(hfctmp!=hfctmp2)spin_unlock_irqrestore(&hfctmp->lock,flags2);
-+ }
-+ hfctmp=hfctmp->next;
-+ }
-+ hfctmp=hfctmp2;
- }
--
- }
--#ifndef RTAITIMING
- spin_unlock_irqrestore(&hfctmp->lock,flags);
-- return IRQ_RETVAL(1);
--#endif
-+ return IRQ_RETVAL(1);
- }
-
-
-@@ -802,22 +626,22 @@
- }
- alreadyrunning = span->flags & DAHDI_FLAG_RUNNING;
-
-- if (!alreadyrunning) {
-- span->chans[2]->flags &= ~DAHDI_FLAG_HDLC;
-- span->chans[2]->flags |= DAHDI_FLAG_BRIDCHAN;
--
-- span->flags |= DAHDI_FLAG_RUNNING;
-+ if (alreadyrunning) return 0;
-
-- hfctmp->ticks = -2;
-- hfctmp->clicks = 0;
-- hfctmp->regs.fifo_en = hfc_FIFOEN_D | hfc_FIFOEN_B1 | hfc_FIFOEN_B2;
-- hfc_outb(hfctmp, hfc_FIFO_EN, hfctmp->regs.fifo_en);
-- } else {
-- return 0;
-- }
-+ span->chans[2]->flags &= ~DAHDI_FLAG_HDLC;
-+ span->chans[2]->flags |= DAHDI_FLAG_BRIDCHAN;
-+
-+ span->flags |= DAHDI_FLAG_RUNNING;
-+
-+ hfctmp->ticks = -2;
-+ hfctmp->regs.fifo_en = hfc_FIFOEN_D | hfc_FIFOEN_B1 | hfc_FIFOEN_B2;
-+ hfc_outb(hfctmp, hfc_FIFO_EN, hfctmp->regs.fifo_en);
-+
-+ hfc_bch_init(hfctmp);
-
- // drivers, start engines!
- hfc_outb(hfctmp, hfc_STATES, hfc_STATES_DO_ACTION | hfc_STATES_ACTIVATE);
-+ hfctmp->active=1;
- return 0;
- }
-
-@@ -847,17 +671,9 @@
-
- sprintf(zthfc->span.name, "ZTHFC%d", hfc_dev_count + 1);
- if (hfctmp->regs.nt_mode == 1) {
--#ifdef RTAITIMING
-- sprintf(zthfc->span.desc, "HFC-S PCI A ISDN card %d [NT] [realtime]", hfc_dev_count + 1);
--#else
- sprintf(zthfc->span.desc, "HFC-S PCI A ISDN card %d [NT]", hfc_dev_count + 1);
--#endif
- } else {
--#ifdef RTAITIMING
-- sprintf(zthfc->span.desc, "HFC-S PCI A ISDN card %d [TE] [realtime]", hfc_dev_count + 1);
--#else
- sprintf(zthfc->span.desc, "HFC-S PCI A ISDN card %d [TE]", hfc_dev_count + 1);
--#endif
- }
-
- zthfc->span.spanconfig = zthfc_spanconfig;
-@@ -897,32 +713,6 @@
- return 0;
- }
-
--#ifdef RTAITIMING
--#define TICK_PERIOD 1000000
--#define TICK_PERIOD2 1000000000
--#define TASK_PRIORITY 1
--#define STACK_SIZE 10000
--
--static RT_TASK rt_task;
--static struct hfc_card *rtai_hfc_list[hfc_MAX_CARDS];
--static unsigned char rtai_hfc_counter = 0;
--
--static void rtai_register_hfc(struct hfc_card *hfctmp) {
-- rtai_hfc_list[rtai_hfc_counter++] = hfctmp;
--}
--
--static void rtai_loop(int t) {
-- int i=0;
-- for (;;) {
-- for (i=0; i < rtai_hfc_counter; i++) {
-- if (rtai_hfc_list[i] != NULL)
-- hfc_service(rtai_hfc_list[i]);
-- }
-- rt_task_wait_period();
-- }
--}
--#endif
--
- int hfc_findCards(int pcivendor, int pcidevice, char *vendor_name, char *card_name) {
- struct pci_dev *tmp;
- struct hfc_card *hfctmp = NULL;
-@@ -938,9 +728,9 @@
- }
- pci_set_master(tmp);
-
-- hfctmp = kmalloc(sizeof(struct hfc_card), GFP_KERNEL);
-+ hfctmp = vmalloc(sizeof(struct hfc_card));
- if (!hfctmp) {
-- printk(KERN_WARNING "zaphfc: unable to kmalloc!\n");
-+ printk(KERN_WARNING "zaphfc: unable to vmalloc!\n");
- pci_disable_device(tmp);
- multi_hfc = NULL;
- return -ENOMEM;
-@@ -948,6 +738,7 @@
- memset(hfctmp, 0x0, sizeof(struct hfc_card));
- spin_lock_init(&hfctmp->lock);
-
-+ hfctmp->active=0;
- hfctmp->pcidev = tmp;
- hfctmp->pcibus = tmp->bus->number;
- hfctmp->pcidevfn = tmp->devfn;
-@@ -961,49 +752,39 @@
- hfctmp->pci_io = (char *) tmp->resource[1].start;
- if (!hfctmp->pci_io) {
- printk(KERN_WARNING "zaphfc: no iomem!\n");
-- kfree(hfctmp);
-+ vfree(hfctmp);
- pci_disable_device(tmp);
- multi_hfc = NULL;
- return -1;
- }
--
-- hfctmp->fifomem = kmalloc(65536, GFP_KERNEL);
-- if (!hfctmp->fifomem) {
-- printk(KERN_WARNING "zaphfc: unable to kmalloc fifomem!\n");
-- kfree(hfctmp);
-+
-+ hfctmp->fifos=(void *)__get_free_pages(GFP_KERNEL,log2(hfc_FIFO_MEM_SIZE_PAGES));
-+ if (!hfctmp->fifos) {
-+ printk(KERN_WARNING "zaphfc: unable to __get_free_pages fifomem!\n");
-+ vfree(hfctmp);
- pci_disable_device(tmp);
- multi_hfc = NULL;
- return -ENOMEM;
- } else {
-- memset(hfctmp->fifomem, 0x0, 65536);
-- hfctmp->fifos = (void *)(((ulong) hfctmp->fifomem) & ~0x7FFF) + 0x8000;
- pci_write_config_dword(hfctmp->pcidev, 0x80, (u_int) virt_to_bus(hfctmp->fifos));
- hfctmp->pci_io = ioremap((ulong) hfctmp->pci_io, 256);
- }
-
--#ifdef RTAITIMING
-- /* we need no stinking irq */
-- hfctmp->irq = 0;
--#else
- if (request_irq(hfctmp->irq, &hfc_interrupt, DAHDI_IRQ_SHARED, "zaphfc", hfctmp)) {
- printk(KERN_WARNING "zaphfc: unable to register irq\n");
-- kfree(hfctmp->fifomem);
-- kfree(hfctmp);
-+ free_pages((unsigned long)hfctmp->fifos,log2(hfc_FIFO_MEM_SIZE_PAGES));
-+ vfree(hfctmp);
- iounmap((void *) hfctmp->pci_io);
- pci_disable_device(tmp);
- multi_hfc = NULL;
- return -EIO;
- }
--#endif
-
--#ifdef RTAITIMING
-- rtai_register_hfc(hfctmp);
--#endif
- printk(KERN_INFO
-- "zaphfc: %s %s configured at mem %lx fifo %lx(%#x) IRQ %d HZ %d\n",
-+ "zaphfc: %s %s configured at mem %#x fifo %#x(%#x) IRQ %d HZ %d\n",
- vendor_name, card_name,
-- (unsigned long) hfctmp->pci_io,
-- (unsigned long) hfctmp->fifos,
-+ (u_int) hfctmp->pci_io,
-+ (u_int) hfctmp->fifos,
- (u_int) virt_to_bus(hfctmp->fifos),
- hfctmp->irq, HZ);
- pci_write_config_word(hfctmp->pcidev, PCI_COMMAND, PCI_COMMAND_MEMORY); // enable memio
-@@ -1020,11 +801,21 @@
- hfctmp->regs.nt_mode = 0;
- }
-
-- zthfc = kmalloc(sizeof(struct dahdi_hfc),GFP_KERNEL);
-+ if(sync_slave&(1<<hfc_dev_count)){
-+ printk(KERN_INFO "zaphfc: Card %d configured for slave mode\n",hfc_dev_count);
-+ hfctmp->regs.mst_mode=hfc_MST_MODE_SLAVE|hfc_MST_MODE_F0_LONG_DURATION;
-+ hfctmp->regs.mst_emod=hfc_MST_EMOD_SLOW_CLOCK_ADJ;
-+ }else{
-+ printk(KERN_INFO "zaphfc: Card %d configured for master mode\n",hfc_dev_count);
-+ hfctmp->regs.mst_mode=hfc_MST_MODE_MASTER|hfc_MST_MODE_F0_LONG_DURATION;
-+ hfctmp->regs.mst_emod=0;
-+ }
-+
-+ zthfc = vmalloc(sizeof(struct dahdi_hfc));
- if (!zthfc) {
-- printk(KERN_CRIT "zaphfc: unable to kmalloc!\n");
-+ printk(KERN_CRIT "zaphfc: unable to vmalloc!\n");
- hfc_shutdownCard(hfctmp);
-- kfree(hfctmp);
-+ vfree(hfctmp);
- multi_hfc = NULL;
- return -ENOMEM;
- }
-@@ -1050,7 +841,6 @@
- memset(hfctmp->btransbuf[1], 0x0, sizeof(hfctmp->btransbuf[1]));
- hfctmp->ztdev->chans[1].writechunk = hfctmp->btransbuf[1];
-
--
- hfc_registerCard(hfctmp);
- hfc_resetCard(hfctmp);
- tmp = pci_get_device(pcivendor, pcidevice, multi_hfc);
-@@ -1058,58 +848,42 @@
- return 0;
- }
-
--
--
- int init_module(void) {
- int i = 0;
--#ifdef RTAITIMING
-- RTIME tick_period;
-- for (i=0; i < hfc_MAX_CARDS; i++) {
-- rtai_hfc_list[i] = NULL;
-+ if(jitterbuffer<1){
-+ printk(KERN_INFO "zaphfc: invalid jitterbuffer size specified: %d - changing to minimum of 1\n",jitterbuffer);
-+ jitterbuffer=1;
-+ }else if(jitterbuffer>500){
-+ printk(KERN_INFO "zaphfc: invalid jitterbuffer size specified: %d - changing to maximum of 500\n",jitterbuffer);
-+ jitterbuffer=500;
- }
-- rt_set_periodic_mode();
--#endif
-- i = 0;
-+ printk(KERN_INFO "zaphfc: jitterbuffer size: %d\n",jitterbuffer);
- while (id_list[i].vendor_id) {
- multi_hfc = NULL;
- hfc_findCards(id_list[i].vendor_id, id_list[i].device_id, id_list[i].vendor_name, id_list[i].card_name);
- i++;
- }
--#ifdef RTAITIMING
-- for (i=0; i < hfc_MAX_CARDS; i++) {
-- if (rtai_hfc_list[i]) {
-- printk(KERN_INFO
-- "zaphfc: configured %d at mem %#x fifo %#x(%#x) for realtime servicing\n",
-- rtai_hfc_list[i]->cardno,
-- (u_int) rtai_hfc_list[i]->pci_io,
-- (u_int) rtai_hfc_list[i]->fifos,
-- (u_int) virt_to_bus(rtai_hfc_list[i]->fifos));
--
-- }
-- }
-- rt_task_init(&rt_task, rtai_loop, 1, STACK_SIZE, TASK_PRIORITY, 0, 0);
-- tick_period = start_rt_timer(nano2count(TICK_PERIOD));
-- rt_task_make_periodic(&rt_task, rt_get_time() + tick_period, tick_period);
--#endif
- printk(KERN_INFO "zaphfc: %d hfc-pci card(s) in this box.\n", hfc_dev_count);
- return 0;
- }
-
- void cleanup_module(void) {
- struct hfc_card *tmpcard;
--#ifdef RTAITIMING
-- stop_rt_timer();
-- rt_task_delete(&rt_task);
--#endif
-+
- printk(KERN_INFO "zaphfc: stop\n");
- // spin_lock(&registerlock);
-+ tmpcard=hfc_dev_list;
-+ while(tmpcard){
-+ hfc_shutdownCard1(tmpcard);
-+ tmpcard=tmpcard->next;
-+ }
- while (hfc_dev_list != NULL) {
- if (hfc_dev_list == NULL) break;
-- hfc_shutdownCard(hfc_dev_list);
-+ hfc_shutdownCard2(hfc_dev_list);
- tmpcard = hfc_dev_list;
- hfc_dev_list = hfc_dev_list->next;
- if (tmpcard != NULL) {
-- kfree(tmpcard);
-+ vfree(tmpcard);
- tmpcard = NULL;
- printk(KERN_INFO "zaphfc: freed one card.\n");
- }
-@@ -1119,8 +893,11 @@
- #endif
-
-
--module_param(modes, int, 0600);
-+module_param(modes, int, 0400);
- module_param(debug, int, 0600);
-+module_param(sync_slave, int, 0400);
-+module_param(timer_card, int, 0400);
-+module_param(jitterbuffer, int, 0400);
-
- MODULE_DESCRIPTION("HFC-S PCI A Zaptel Driver");
- MODULE_AUTHOR("Klaus-Peter Junghanns <kpj@junghanns.net>");
diff --git a/testing/linux-vserver/APKBUILD b/testing/linux-vserver/APKBUILD
deleted file mode 100644
index 34901d7e0..000000000
--- a/testing/linux-vserver/APKBUILD
+++ /dev/null
@@ -1,119 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-
-_flavor=vserver
-pkgname=linux-${_flavor}
-pkgver=2.6.32.2
-_kernver=2.6.32
-pkgrel=0
-pkgdesc="Linux kernel with vserver"
-url="http://linux-vserver.org/"
-depends="mkinitfs linux-firmware"
-makedepends="perl installkernel"
-options="!strip"
-_config=${config:-kernelconfig.${CARCH:-x86}}
-install=
-source="ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_kernver.tar.bz2
- ftp://ftp.kernel.org/pub/linux/kernel/v2.6/patch-$pkgver.bz2
- http://vserver.13thfloor.at/Experimental/patch-2.6.32.2-vs2.3.0.36.28.diff
- kernelconfig.x86
- "
-subpackages="$pkgname-dev"
-license="GPL-2"
-
-_abi_release=${pkgver}-${_flavor}
-
-prepare() {
- cd "$srcdir"/linux-$_kernver
- if [ "$_kernver" != "$pkgver" ]; then
- bunzip2 -c < ../patch-$pkgver.bz2 | patch -p1 -N || return 1
- fi
-
- for i in ../*.diff ../*.patch; do
- [ -f $i ] || continue
- msg "Applying $i..."
- patch -p1 -N < $i || return 1
- done
-
- mkdir -p "$srcdir"/build
- cp "$srcdir"/$_config "$srcdir"/build/.config
- make -C "$srcdir"/linux-$_kernver O="$srcdir"/build HOSTCC="$CC" \
- silentoldconfig
-}
-
-# this is so we can do: 'abuild menuconfig' to reconfigure kernel
-menuconfig() {
- cd "$srcdir"/build
- make menuconfig
- cp .config "$startdir"/$_config
-}
-
-build() {
- cd "$srcdir"/build
- make CC="$CC" || return 1
-}
-
-package() {
- cd "$srcdir"/build
- mkdir -p "$pkgdir"/boot "$pkgdir"/lib/modules
- make modules_install install \
- INSTALL_MOD_PATH="$pkgdir" \
- INSTALL_PATH="$pkgdir"/boot
-
- rm -f "$pkgdir"/lib/modules/${_abi_release}/build \
- "$pkgdir"/lib/modules/${_abi_release}/source
- rm -rf "$pkgdir"/lib/firmware
-
- install -D include/config/kernel.release \
- "$pkgdir"/usr/share/kernel/$_flavor/kernel.release
-}
-
-dev() {
- # copy the only the parts that we really need for build 3rd party
- # kernel modules and install those as /usr/src/linux-headers,
- # simlar to what ubuntu does
- #
- # this way you dont need to install the 300-400 kernel sources to
- # build a tiny kernel module
- #
- pkgdesc="Headers and script for third party modules for grsec kernel"
- local dir="$subpkgdir"/usr/src/linux-headers-${_abi_release}
-
- # first we import config, run prepare to set up for building
- # external modules, and create the scripts
- mkdir -p "$dir"
- cp "$srcdir"/$_config "$dir"/.config
- make -j1 -C "$srcdir"/linux-$_kernver O="$dir" HOSTCC="$CC" \
- silentoldconfig prepare scripts
-
- # remove the stuff that poits to real sources. we want 3rd party
- # modules to believe this is the soruces
- rm "$dir"/Makefile "$dir"/source
-
- # copy the needed stuff from real sources
- #
- # this is taken from ubuntu kernel build script
- # http://kernel.ubuntu.com/git?p=ubuntu/ubuntu-jaunty.git;a=blob;f=debian/rules.d/3-binary-indep.mk;hb=HEAD
- cd "$srcdir"/linux-$_kernver
- find . -path './include/*' -prune -o -path './scripts/*' -prune \
- -o -type f \( -name 'Makefile*' -o -name 'Kconfig*' \
- -o -name 'Kbuild*' -o -name '*.sh' -o -name '*.pl' \
- -o -name '*.lds' \) | cpio -pdm "$dir"
- cp -a drivers/media/dvb/dvb-core/*.h "$dir"/drivers/media/dvb/dvb-core
- cp -a drivers/media/video/*.h "$dir"/drivers/media/video
- cp -a drivers/media/dvb/frontends/*.h "$dir"/drivers/media/dvb/frontends
- cp -a scripts include "$dir"
- find $(find arch -name include -type d -print) -type f \
- | cpio -pdm "$dir"
-
- install -Dm644 "$srcdir"/build/Module.symvers \
- "$dir"/Module.symvers
-
- mkdir -p "$subpkgdir"/lib/modules/${_abi_release}
- ln -sf /usr/src/linux-headers-${_abi_release} \
- "$subpkgdir"/lib/modules/${_abi_release}/build
-}
-
-md5sums="260551284ac224c3a43c4adac7df4879 linux-2.6.32.tar.bz2
-924b7aa0fcd6e54c12ecc9b3c3082f59 patch-2.6.32.2.bz2
-9427ad984e951ddecf57bd1a1ff1e1f1 patch-2.6.32.2-vs2.3.0.36.28.diff
-86d5988d01198848fdad6f663fdbb39d kernelconfig.x86"
diff --git a/testing/linux-vserver/kernelconfig.x86 b/testing/linux-vserver/kernelconfig.x86
deleted file mode 100644
index 2fb20c409..000000000
--- a/testing/linux-vserver/kernelconfig.x86
+++ /dev/null
@@ -1,4508 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.32-vs2.3.0.36.27
-# Thu Dec 17 07:38:56 2009
-#
-# CONFIG_64BIT is not set
-CONFIG_X86_32=y
-# CONFIG_X86_64 is not set
-CONFIG_X86=y
-CONFIG_OUTPUT_FORMAT="elf32-i386"
-CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
-CONFIG_GENERIC_TIME=y
-CONFIG_GENERIC_CMOS_UPDATE=y
-CONFIG_CLOCKSOURCE_WATCHDOG=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_HAVE_LATENCYTOP_SUPPORT=y
-CONFIG_MMU=y
-CONFIG_ZONE_DMA=y
-CONFIG_GENERIC_ISA_DMA=y
-CONFIG_GENERIC_IOMAP=y
-CONFIG_GENERIC_BUG=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_GPIO=y
-CONFIG_ARCH_MAY_HAVE_PC_FDC=y
-# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
-CONFIG_RWSEM_XCHGADD_ALGORITHM=y
-CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-# CONFIG_GENERIC_TIME_VSYSCALL is not set
-CONFIG_ARCH_HAS_CPU_RELAX=y
-CONFIG_ARCH_HAS_DEFAULT_IDLE=y
-CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
-CONFIG_HAVE_SETUP_PER_CPU_AREA=y
-CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
-CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
-# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set
-CONFIG_ARCH_HIBERNATION_POSSIBLE=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-# CONFIG_ZONE_DMA32 is not set
-CONFIG_ARCH_POPULATES_NODE_MAP=y
-# CONFIG_AUDIT_ARCH is not set
-CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
-CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_PENDING_IRQ=y
-CONFIG_USE_GENERIC_SMP_HELPERS=y
-CONFIG_X86_32_SMP=y
-CONFIG_X86_HT=y
-CONFIG_X86_TRAMPOLINE=y
-CONFIG_X86_32_LAZY_GS=y
-CONFIG_KTIME_SCALAR=y
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_CONSTRUCTORS=y
-
-#
-# General setup
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_LOCK_KERNEL=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_LOCALVERSION=""
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_HAVE_KERNEL_GZIP=y
-CONFIG_HAVE_KERNEL_BZIP2=y
-CONFIG_HAVE_KERNEL_LZMA=y
-CONFIG_KERNEL_GZIP=y
-# CONFIG_KERNEL_BZIP2 is not set
-# CONFIG_KERNEL_LZMA is not set
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-# CONFIG_POSIX_MQUEUE is not set
-CONFIG_BSD_PROCESS_ACCT=y
-CONFIG_BSD_PROCESS_ACCT_V3=y
-# CONFIG_TASKSTATS is not set
-# CONFIG_AUDIT is not set
-
-#
-# RCU Subsystem
-#
-CONFIG_TREE_RCU=y
-# CONFIG_TREE_PREEMPT_RCU is not set
-# CONFIG_RCU_TRACE is not set
-CONFIG_RCU_FANOUT=32
-# CONFIG_RCU_FANOUT_EXACT is not set
-# CONFIG_TREE_RCU_TRACE is not set
-CONFIG_IKCONFIG=m
-CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
-CONFIG_GROUP_SCHED=y
-CONFIG_FAIR_GROUP_SCHED=y
-# CONFIG_RT_GROUP_SCHED is not set
-CONFIG_USER_SCHED=y
-# CONFIG_CGROUP_SCHED is not set
-# CONFIG_CGROUPS is not set
-# CONFIG_SYSFS_DEPRECATED_V2 is not set
-# CONFIG_RELAY is not set
-CONFIG_NAMESPACES=y
-CONFIG_UTS_NS=y
-CONFIG_IPC_NS=y
-CONFIG_USER_NS=y
-# CONFIG_PID_NS is not set
-CONFIG_NET_NS=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_RD_GZIP=y
-CONFIG_RD_BZIP2=y
-CONFIG_RD_LZMA=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-CONFIG_SYSCTL=y
-CONFIG_ANON_INODES=y
-CONFIG_EMBEDDED=y
-CONFIG_UID16=y
-CONFIG_SYSCTL_SYSCALL=y
-# CONFIG_KALLSYMS is not set
-CONFIG_HOTPLUG=y
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_PCSPKR_PLATFORM=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_AIO=y
-CONFIG_HAVE_PERF_EVENTS=y
-
-#
-# Kernel Performance Events And Counters
-#
-CONFIG_PERF_EVENTS=y
-# CONFIG_EVENT_PROFILE is not set
-CONFIG_PERF_COUNTERS=y
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_PCI_QUIRKS=y
-# CONFIG_SLUB_DEBUG is not set
-# CONFIG_COMPAT_BRK is not set
-# CONFIG_SLAB is not set
-CONFIG_SLUB=y
-# CONFIG_SLOB is not set
-CONFIG_PROFILING=y
-CONFIG_TRACEPOINTS=y
-CONFIG_OPROFILE=m
-# CONFIG_OPROFILE_IBS is not set
-# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
-CONFIG_HAVE_OPROFILE=y
-CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
-CONFIG_HAVE_IOREMAP_PROT=y
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_ARCH_TRACEHOOK=y
-CONFIG_HAVE_DMA_ATTRS=y
-CONFIG_HAVE_DMA_API_DEBUG=y
-
-#
-# GCOV-based kernel profiling
-#
-# CONFIG_GCOV_KERNEL is not set
-CONFIG_SLOW_WORK=y
-# CONFIG_SLOW_WORK_DEBUG is not set
-CONFIG_HAVE_GENERIC_DMA_COHERENT=y
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-# CONFIG_MODULE_FORCE_LOAD is not set
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_MODULE_FORCE_UNLOAD is not set
-CONFIG_MODVERSIONS=y
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_STOP_MACHINE=y
-CONFIG_BLOCK=y
-CONFIG_LBDAF=y
-CONFIG_BLK_DEV_BSG=y
-# CONFIG_BLK_DEV_INTEGRITY is not set
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=m
-CONFIG_IOSCHED_DEADLINE=m
-CONFIG_IOSCHED_CFQ=y
-# CONFIG_DEFAULT_AS is not set
-# CONFIG_DEFAULT_DEADLINE is not set
-CONFIG_DEFAULT_CFQ=y
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="cfq"
-CONFIG_PREEMPT_NOTIFIERS=y
-CONFIG_FREEZER=y
-
-#
-# Processor type and features
-#
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-CONFIG_SMP=y
-# CONFIG_SPARSE_IRQ is not set
-CONFIG_X86_MPPARSE=y
-# CONFIG_X86_BIGSMP is not set
-CONFIG_X86_EXTENDED_PLATFORM=y
-# CONFIG_X86_ELAN is not set
-# CONFIG_X86_MRST is not set
-# CONFIG_X86_RDC321X is not set
-# CONFIG_X86_32_NON_STANDARD is not set
-CONFIG_SCHED_OMIT_FRAME_POINTER=y
-CONFIG_PARAVIRT_GUEST=y
-CONFIG_VMI=y
-CONFIG_KVM_CLOCK=y
-CONFIG_KVM_GUEST=y
-CONFIG_LGUEST_GUEST=y
-CONFIG_PARAVIRT=y
-# CONFIG_PARAVIRT_SPINLOCKS is not set
-CONFIG_PARAVIRT_CLOCK=y
-# CONFIG_MEMTEST is not set
-# CONFIG_M386 is not set
-# CONFIG_M486 is not set
-CONFIG_M586=y
-# CONFIG_M586TSC is not set
-# CONFIG_M586MMX is not set
-# CONFIG_M686 is not set
-# CONFIG_MPENTIUMII is not set
-# CONFIG_MPENTIUMIII is not set
-# CONFIG_MPENTIUMM is not set
-# CONFIG_MPENTIUM4 is not set
-# CONFIG_MK6 is not set
-# CONFIG_MK7 is not set
-# CONFIG_MK8 is not set
-# CONFIG_MCRUSOE is not set
-# CONFIG_MEFFICEON is not set
-# CONFIG_MWINCHIPC6 is not set
-# CONFIG_MWINCHIP3D is not set
-# CONFIG_MGEODEGX1 is not set
-# CONFIG_MGEODE_LX is not set
-# CONFIG_MCYRIXIII is not set
-# CONFIG_MVIAC3_2 is not set
-# CONFIG_MVIAC7 is not set
-# CONFIG_MPSC is not set
-# CONFIG_MCORE2 is not set
-# CONFIG_MATOM is not set
-# CONFIG_GENERIC_CPU is not set
-CONFIG_X86_GENERIC=y
-CONFIG_X86_CPU=y
-CONFIG_X86_L1_CACHE_BYTES=64
-CONFIG_X86_INTERNODE_CACHE_BYTES=64
-CONFIG_X86_CMPXCHG=y
-CONFIG_X86_L1_CACHE_SHIFT=5
-CONFIG_X86_XADD=y
-# CONFIG_X86_PPRO_FENCE is not set
-CONFIG_X86_F00F_BUG=y
-CONFIG_X86_WP_WORKS_OK=y
-CONFIG_X86_INVLPG=y
-CONFIG_X86_BSWAP=y
-CONFIG_X86_POPAD_OK=y
-CONFIG_X86_ALIGNMENT_16=y
-CONFIG_X86_INTEL_USERCOPY=y
-CONFIG_X86_CMPXCHG64=y
-CONFIG_X86_MINIMUM_CPU_FAMILY=5
-# CONFIG_PROCESSOR_SELECT is not set
-CONFIG_CPU_SUP_INTEL=y
-CONFIG_CPU_SUP_CYRIX_32=y
-CONFIG_CPU_SUP_AMD=y
-CONFIG_CPU_SUP_CENTAUR=y
-CONFIG_CPU_SUP_TRANSMETA_32=y
-CONFIG_CPU_SUP_UMC_32=y
-CONFIG_HPET_TIMER=y
-CONFIG_HPET_EMULATE_RTC=y
-CONFIG_DMI=y
-# CONFIG_IOMMU_HELPER is not set
-# CONFIG_IOMMU_API is not set
-CONFIG_NR_CPUS=8
-CONFIG_SCHED_SMT=y
-CONFIG_SCHED_MC=y
-# CONFIG_PREEMPT_NONE is not set
-CONFIG_PREEMPT_VOLUNTARY=y
-# CONFIG_PREEMPT is not set
-CONFIG_X86_LOCAL_APIC=y
-CONFIG_X86_IO_APIC=y
-# CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set
-# CONFIG_X86_MCE is not set
-CONFIG_VM86=y
-CONFIG_TOSHIBA=m
-CONFIG_I8K=m
-CONFIG_X86_REBOOTFIXUPS=y
-CONFIG_MICROCODE=m
-CONFIG_MICROCODE_INTEL=y
-CONFIG_MICROCODE_AMD=y
-CONFIG_MICROCODE_OLD_INTERFACE=y
-CONFIG_X86_MSR=m
-CONFIG_X86_CPUID=m
-CONFIG_X86_CPU_DEBUG=m
-# CONFIG_NOHIGHMEM is not set
-CONFIG_HIGHMEM4G=y
-# CONFIG_HIGHMEM64G is not set
-CONFIG_VMSPLIT_3G=y
-# CONFIG_VMSPLIT_3G_OPT is not set
-# CONFIG_VMSPLIT_2G is not set
-# CONFIG_VMSPLIT_2G_OPT is not set
-# CONFIG_VMSPLIT_1G is not set
-CONFIG_PAGE_OFFSET=0xC0000000
-CONFIG_HIGHMEM=y
-# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
-CONFIG_ARCH_FLATMEM_ENABLE=y
-CONFIG_ARCH_SPARSEMEM_ENABLE=y
-CONFIG_ARCH_SELECT_MEMORY_MODEL=y
-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=y
-CONFIG_PAGEFLAGS_EXTENDED=y
-CONFIG_SPLIT_PTLOCK_CPUS=4
-# CONFIG_PHYS_ADDR_T_64BIT is not set
-CONFIG_ZONE_DMA_FLAG=1
-CONFIG_BOUNCE=y
-CONFIG_VIRT_TO_BUS=y
-CONFIG_HAVE_MLOCK=y
-CONFIG_HAVE_MLOCKED_PAGE_BIT=y
-CONFIG_MMU_NOTIFIER=y
-# CONFIG_KSM is not set
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-# CONFIG_HIGHPTE is not set
-# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
-CONFIG_X86_RESERVE_LOW_64K=y
-CONFIG_MATH_EMULATION=y
-CONFIG_MTRR=y
-CONFIG_MTRR_SANITIZER=y
-CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
-CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
-CONFIG_X86_PAT=y
-CONFIG_ARCH_USES_PG_UNCACHED=y
-# CONFIG_EFI is not set
-# CONFIG_SECCOMP is not set
-# CONFIG_CC_STACKPROTECTOR is not set
-# CONFIG_HZ_100 is not set
-# CONFIG_HZ_250 is not set
-CONFIG_HZ_300=y
-# CONFIG_HZ_1000 is not set
-CONFIG_HZ=300
-CONFIG_SCHED_HRTICK=y
-# CONFIG_KEXEC is not set
-# CONFIG_CRASH_DUMP is not set
-CONFIG_PHYSICAL_START=0x1000000
-# CONFIG_RELOCATABLE is not set
-CONFIG_PHYSICAL_ALIGN=0x1000000
-CONFIG_HOTPLUG_CPU=y
-# CONFIG_COMPAT_VDSO is not set
-# CONFIG_CMDLINE_BOOL is not set
-CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
-
-#
-# Power management and ACPI options
-#
-CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
-CONFIG_PM_SLEEP_SMP=y
-CONFIG_PM_SLEEP=y
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
-# CONFIG_HIBERNATION is not set
-# CONFIG_PM_RUNTIME is not set
-CONFIG_ACPI=y
-CONFIG_ACPI_SLEEP=y
-CONFIG_ACPI_PROCFS=y
-CONFIG_ACPI_PROCFS_POWER=y
-# CONFIG_ACPI_POWER_METER is not set
-CONFIG_ACPI_SYSFS_POWER=y
-CONFIG_ACPI_PROC_EVENT=y
-CONFIG_ACPI_AC=m
-CONFIG_ACPI_BATTERY=m
-CONFIG_ACPI_BUTTON=m
-CONFIG_ACPI_VIDEO=m
-CONFIG_ACPI_FAN=m
-CONFIG_ACPI_DOCK=y
-CONFIG_ACPI_PROCESSOR=m
-CONFIG_ACPI_HOTPLUG_CPU=y
-# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set
-CONFIG_ACPI_THERMAL=m
-# CONFIG_ACPI_CUSTOM_DSDT is not set
-CONFIG_ACPI_BLACKLIST_YEAR=2000
-# CONFIG_ACPI_DEBUG is not set
-CONFIG_ACPI_PCI_SLOT=m
-CONFIG_X86_PM_TIMER=y
-CONFIG_ACPI_CONTAINER=m
-CONFIG_ACPI_SBS=m
-# CONFIG_SFI is not set
-# CONFIG_APM is not set
-
-#
-# CPU Frequency scaling
-#
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_TABLE=m
-# CONFIG_CPU_FREQ_DEBUG is not set
-CONFIG_CPU_FREQ_STAT=m
-# CONFIG_CPU_FREQ_STAT_DETAILS is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=m
-CONFIG_CPU_FREQ_GOV_USERSPACE=m
-CONFIG_CPU_FREQ_GOV_ONDEMAND=m
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
-
-#
-# CPUFreq processor drivers
-#
-CONFIG_X86_ACPI_CPUFREQ=m
-CONFIG_X86_POWERNOW_K6=m
-CONFIG_X86_POWERNOW_K7=m
-CONFIG_X86_POWERNOW_K7_ACPI=y
-CONFIG_X86_POWERNOW_K8=m
-CONFIG_X86_GX_SUSPMOD=m
-CONFIG_X86_SPEEDSTEP_CENTRINO=m
-CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y
-CONFIG_X86_SPEEDSTEP_ICH=m
-CONFIG_X86_SPEEDSTEP_SMI=m
-CONFIG_X86_P4_CLOCKMOD=m
-CONFIG_X86_CPUFREQ_NFORCE2=m
-CONFIG_X86_LONGRUN=m
-CONFIG_X86_LONGHAUL=m
-CONFIG_X86_E_POWERSAVER=m
-
-#
-# shared options
-#
-CONFIG_X86_SPEEDSTEP_LIB=m
-CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y
-CONFIG_CPU_IDLE=y
-CONFIG_CPU_IDLE_GOV_LADDER=y
-CONFIG_CPU_IDLE_GOV_MENU=y
-
-#
-# Bus options (PCI etc.)
-#
-CONFIG_PCI=y
-# CONFIG_PCI_GOBIOS is not set
-# CONFIG_PCI_GOMMCONFIG is not set
-# CONFIG_PCI_GODIRECT is not set
-# CONFIG_PCI_GOOLPC is not set
-CONFIG_PCI_GOANY=y
-CONFIG_PCI_BIOS=y
-CONFIG_PCI_DIRECT=y
-CONFIG_PCI_MMCONFIG=y
-CONFIG_PCI_DOMAINS=y
-CONFIG_PCIEPORTBUS=y
-CONFIG_HOTPLUG_PCI_PCIE=m
-# CONFIG_PCIEAER is not set
-CONFIG_PCIEASPM=y
-# CONFIG_PCIEASPM_DEBUG is not set
-CONFIG_ARCH_SUPPORTS_MSI=y
-# CONFIG_PCI_MSI is not set
-CONFIG_PCI_LEGACY=y
-CONFIG_PCI_STUB=m
-CONFIG_HT_IRQ=y
-# CONFIG_PCI_IOV is not set
-CONFIG_ISA_DMA_API=y
-CONFIG_ISA=y
-# CONFIG_EISA is not set
-# CONFIG_MCA is not set
-CONFIG_SCx200=m
-CONFIG_SCx200HR_TIMER=m
-# CONFIG_OLPC is not set
-CONFIG_K8_NB=y
-CONFIG_PCCARD=m
-# CONFIG_PCMCIA_DEBUG is not set
-CONFIG_PCMCIA=m
-CONFIG_PCMCIA_LOAD_CIS=y
-CONFIG_PCMCIA_IOCTL=y
-CONFIG_CARDBUS=y
-
-#
-# PC-card bridges
-#
-CONFIG_YENTA=m
-CONFIG_YENTA_O2=y
-CONFIG_YENTA_RICOH=y
-CONFIG_YENTA_TI=y
-CONFIG_YENTA_ENE_TUNE=y
-CONFIG_YENTA_TOSHIBA=y
-CONFIG_PD6729=m
-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
-CONFIG_HOTPLUG_PCI_COMPAQ=m
-# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
-CONFIG_HOTPLUG_PCI_IBM=m
-CONFIG_HOTPLUG_PCI_ACPI=m
-CONFIG_HOTPLUG_PCI_ACPI_IBM=m
-CONFIG_HOTPLUG_PCI_CPCI=y
-CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
-CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
-CONFIG_HOTPLUG_PCI_SHPC=m
-
-#
-# Executable file formats / Emulations
-#
-CONFIG_BINFMT_ELF=y
-# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-CONFIG_HAVE_AOUT=y
-CONFIG_BINFMT_AOUT=m
-CONFIG_BINFMT_MISC=m
-CONFIG_HAVE_ATOMIC_IOMAP=y
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=m
-CONFIG_PACKET_MMAP=y
-CONFIG_UNIX=y
-CONFIG_XFRM=y
-CONFIG_XFRM_USER=m
-CONFIG_XFRM_SUB_POLICY=y
-CONFIG_XFRM_MIGRATE=y
-# CONFIG_XFRM_STATISTICS is not set
-CONFIG_XFRM_IPCOMP=m
-CONFIG_NET_KEY=m
-CONFIG_NET_KEY_MIGRATE=y
-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_MULTIPATH=y
-CONFIG_IP_ROUTE_VERBOSE=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_PNP_BOOTP=y
-CONFIG_IP_PNP_RARP=y
-CONFIG_NET_IPIP=m
-CONFIG_NET_IPGRE=m
-CONFIG_NET_IPGRE_BROADCAST=y
-CONFIG_IP_MROUTE=y
-# CONFIG_IP_PIMSM_V1 is not set
-CONFIG_IP_PIMSM_V2=y
-CONFIG_ARPD=y
-CONFIG_SYN_COOKIES=y
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_XFRM_TUNNEL=m
-CONFIG_INET_TUNNEL=m
-CONFIG_INET_XFRM_MODE_TRANSPORT=m
-CONFIG_INET_XFRM_MODE_TUNNEL=m
-CONFIG_INET_XFRM_MODE_BEET=m
-CONFIG_INET_LRO=y
-CONFIG_INET_DIAG=m
-CONFIG_INET_TCP_DIAG=m
-CONFIG_TCP_CONG_ADVANCED=y
-CONFIG_TCP_CONG_BIC=m
-CONFIG_TCP_CONG_CUBIC=y
-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_TCP_CONG_LP=m
-CONFIG_TCP_CONG_VENO=m
-CONFIG_TCP_CONG_YEAH=m
-CONFIG_TCP_CONG_ILLINOIS=m
-# CONFIG_DEFAULT_BIC is not set
-CONFIG_DEFAULT_CUBIC=y
-# CONFIG_DEFAULT_HTCP is not set
-# CONFIG_DEFAULT_VEGAS is not set
-# CONFIG_DEFAULT_WESTWOOD is not set
-# CONFIG_DEFAULT_RENO is not set
-CONFIG_DEFAULT_TCP_CONG="cubic"
-CONFIG_TCP_MD5SIG=y
-CONFIG_IPV6=y
-CONFIG_IPV6_PRIVACY=y
-CONFIG_IPV6_ROUTER_PREF=y
-CONFIG_IPV6_ROUTE_INFO=y
-# CONFIG_IPV6_OPTIMISTIC_DAD is not set
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_IPCOMP=m
-CONFIG_IPV6_MIP6=m
-CONFIG_INET6_XFRM_TUNNEL=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_TRANSPORT=m
-CONFIG_INET6_XFRM_MODE_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_BEET=m
-CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
-CONFIG_IPV6_SIT=m
-CONFIG_IPV6_NDISC_NODETYPE=y
-CONFIG_IPV6_TUNNEL=m
-CONFIG_IPV6_MULTIPLE_TABLES=y
-CONFIG_IPV6_SUBTREES=y
-CONFIG_IPV6_MROUTE=y
-CONFIG_IPV6_PIMSM_V2=y
-CONFIG_NETLABEL=y
-CONFIG_NETWORK_SECMARK=y
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-CONFIG_NETFILTER_ADVANCED=y
-CONFIG_BRIDGE_NETFILTER=y
-
-#
-# Core Netfilter Configuration
-#
-CONFIG_NETFILTER_NETLINK=m
-CONFIG_NETFILTER_NETLINK_QUEUE=m
-CONFIG_NETFILTER_NETLINK_LOG=m
-CONFIG_NF_CONNTRACK=m
-CONFIG_NF_CT_ACCT=y
-CONFIG_NF_CONNTRACK_MARK=y
-CONFIG_NF_CONNTRACK_SECMARK=y
-CONFIG_NF_CONNTRACK_EVENTS=y
-CONFIG_NF_CT_PROTO_DCCP=m
-CONFIG_NF_CT_PROTO_GRE=m
-CONFIG_NF_CT_PROTO_SCTP=m
-CONFIG_NF_CT_PROTO_UDPLITE=m
-CONFIG_NF_CONNTRACK_AMANDA=m
-CONFIG_NF_CONNTRACK_FTP=m
-CONFIG_NF_CONNTRACK_H323=m
-CONFIG_NF_CONNTRACK_IRC=m
-CONFIG_NF_CONNTRACK_NETBIOS_NS=m
-CONFIG_NF_CONNTRACK_PPTP=m
-CONFIG_NF_CONNTRACK_SANE=m
-CONFIG_NF_CONNTRACK_SIP=m
-CONFIG_NF_CONNTRACK_TFTP=m
-CONFIG_NF_CT_NETLINK=m
-CONFIG_NETFILTER_TPROXY=m
-CONFIG_NETFILTER_XTABLES=m
-CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
-CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
-CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
-CONFIG_NETFILTER_XT_TARGET_DSCP=m
-CONFIG_NETFILTER_XT_TARGET_HL=m
-CONFIG_NETFILTER_XT_TARGET_LED=m
-CONFIG_NETFILTER_XT_TARGET_MARK=m
-CONFIG_NETFILTER_XT_TARGET_NFLOG=m
-CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
-CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
-CONFIG_NETFILTER_XT_TARGET_RATEEST=m
-CONFIG_NETFILTER_XT_TARGET_TPROXY=m
-CONFIG_NETFILTER_XT_TARGET_TRACE=m
-CONFIG_NETFILTER_XT_TARGET_SECMARK=m
-CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
-CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
-CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
-CONFIG_NETFILTER_XT_MATCH_COMMENT=m
-CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
-CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
-CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
-CONFIG_NETFILTER_XT_MATCH_DCCP=m
-CONFIG_NETFILTER_XT_MATCH_DSCP=m
-CONFIG_NETFILTER_XT_MATCH_ESP=m
-CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_HELPER=m
-CONFIG_NETFILTER_XT_MATCH_HL=m
-CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
-CONFIG_NETFILTER_XT_MATCH_LENGTH=m
-CONFIG_NETFILTER_XT_MATCH_LIMIT=m
-CONFIG_NETFILTER_XT_MATCH_MAC=m
-CONFIG_NETFILTER_XT_MATCH_MARK=m
-CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
-CONFIG_NETFILTER_XT_MATCH_OWNER=m
-CONFIG_NETFILTER_XT_MATCH_POLICY=m
-CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
-CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
-CONFIG_NETFILTER_XT_MATCH_QUOTA=m
-CONFIG_NETFILTER_XT_MATCH_RATEEST=m
-CONFIG_NETFILTER_XT_MATCH_REALM=m
-CONFIG_NETFILTER_XT_MATCH_RECENT=m
-# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
-CONFIG_NETFILTER_XT_MATCH_SCTP=m
-CONFIG_NETFILTER_XT_MATCH_SOCKET=m
-CONFIG_NETFILTER_XT_MATCH_STATE=m
-CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
-CONFIG_NETFILTER_XT_MATCH_STRING=m
-CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
-CONFIG_NETFILTER_XT_MATCH_TIME=m
-CONFIG_NETFILTER_XT_MATCH_U32=m
-CONFIG_NETFILTER_XT_MATCH_OSF=m
-CONFIG_IP_VS=m
-CONFIG_IP_VS_IPV6=y
-# CONFIG_IP_VS_DEBUG is not set
-CONFIG_IP_VS_TAB_BITS=12
-
-#
-# IPVS transport protocol load balancing support
-#
-CONFIG_IP_VS_PROTO_TCP=y
-CONFIG_IP_VS_PROTO_UDP=y
-CONFIG_IP_VS_PROTO_AH_ESP=y
-CONFIG_IP_VS_PROTO_ESP=y
-CONFIG_IP_VS_PROTO_AH=y
-
-#
-# IPVS scheduler
-#
-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
-
-#
-# IPVS application helper
-#
-CONFIG_IP_VS_FTP=m
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV4=m
-CONFIG_NF_CONNTRACK_IPV4=m
-CONFIG_NF_CONNTRACK_PROC_COMPAT=y
-CONFIG_IP_NF_QUEUE=m
-CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_ADDRTYPE=m
-CONFIG_IP_NF_MATCH_AH=m
-CONFIG_IP_NF_MATCH_ECN=m
-CONFIG_IP_NF_MATCH_TTL=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_NF_NAT=m
-CONFIG_NF_NAT_NEEDED=y
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-CONFIG_IP_NF_TARGET_NETMAP=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-CONFIG_NF_NAT_SNMP_BASIC=m
-CONFIG_NF_NAT_PROTO_DCCP=m
-CONFIG_NF_NAT_PROTO_GRE=m
-CONFIG_NF_NAT_PROTO_UDPLITE=m
-CONFIG_NF_NAT_PROTO_SCTP=m
-CONFIG_NF_NAT_FTP=m
-CONFIG_NF_NAT_IRC=m
-CONFIG_NF_NAT_TFTP=m
-CONFIG_NF_NAT_AMANDA=m
-CONFIG_NF_NAT_PPTP=m
-CONFIG_NF_NAT_H323=m
-CONFIG_NF_NAT_SIP=m
-CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
-CONFIG_IP_NF_TARGET_ECN=m
-CONFIG_IP_NF_TARGET_TTL=m
-CONFIG_IP_NF_RAW=m
-CONFIG_IP_NF_SECURITY=m
-CONFIG_IP_NF_ARPTABLES=m
-CONFIG_IP_NF_ARPFILTER=m
-CONFIG_IP_NF_ARP_MANGLE=m
-
-#
-# IPv6: Netfilter Configuration
-#
-CONFIG_NF_CONNTRACK_IPV6=m
-CONFIG_IP6_NF_QUEUE=m
-CONFIG_IP6_NF_IPTABLES=m
-CONFIG_IP6_NF_MATCH_AH=m
-CONFIG_IP6_NF_MATCH_EUI64=m
-CONFIG_IP6_NF_MATCH_FRAG=m
-CONFIG_IP6_NF_MATCH_OPTS=m
-CONFIG_IP6_NF_MATCH_HL=m
-CONFIG_IP6_NF_MATCH_IPV6HEADER=m
-CONFIG_IP6_NF_MATCH_MH=m
-CONFIG_IP6_NF_MATCH_RT=m
-CONFIG_IP6_NF_TARGET_HL=m
-CONFIG_IP6_NF_TARGET_LOG=m
-CONFIG_IP6_NF_FILTER=m
-CONFIG_IP6_NF_TARGET_REJECT=m
-CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_RAW=m
-CONFIG_IP6_NF_SECURITY=m
-
-#
-# DECnet: Netfilter Configuration
-#
-CONFIG_DECNET_NF_GRABULATOR=m
-CONFIG_BRIDGE_NF_EBTABLES=m
-CONFIG_BRIDGE_EBT_BROUTE=m
-CONFIG_BRIDGE_EBT_T_FILTER=m
-CONFIG_BRIDGE_EBT_T_NAT=m
-CONFIG_BRIDGE_EBT_802_3=m
-CONFIG_BRIDGE_EBT_AMONG=m
-CONFIG_BRIDGE_EBT_ARP=m
-CONFIG_BRIDGE_EBT_IP=m
-CONFIG_BRIDGE_EBT_IP6=m
-CONFIG_BRIDGE_EBT_LIMIT=m
-CONFIG_BRIDGE_EBT_MARK=m
-CONFIG_BRIDGE_EBT_PKTTYPE=m
-CONFIG_BRIDGE_EBT_STP=m
-CONFIG_BRIDGE_EBT_VLAN=m
-CONFIG_BRIDGE_EBT_ARPREPLY=m
-CONFIG_BRIDGE_EBT_DNAT=m
-CONFIG_BRIDGE_EBT_MARK_T=m
-CONFIG_BRIDGE_EBT_REDIRECT=m
-CONFIG_BRIDGE_EBT_SNAT=m
-CONFIG_BRIDGE_EBT_LOG=m
-CONFIG_BRIDGE_EBT_ULOG=m
-CONFIG_BRIDGE_EBT_NFLOG=m
-CONFIG_IP_DCCP=m
-CONFIG_INET_DCCP_DIAG=m
-
-#
-# DCCP CCIDs Configuration (EXPERIMENTAL)
-#
-# CONFIG_IP_DCCP_CCID2_DEBUG is not set
-CONFIG_IP_DCCP_CCID3=y
-# CONFIG_IP_DCCP_CCID3_DEBUG is not set
-CONFIG_IP_DCCP_CCID3_RTO=100
-CONFIG_IP_DCCP_TFRC_LIB=y
-CONFIG_IP_SCTP=m
-# CONFIG_SCTP_DBG_MSG is not set
-# CONFIG_SCTP_DBG_OBJCNT is not set
-# CONFIG_SCTP_HMAC_NONE is not set
-CONFIG_SCTP_HMAC_SHA1=y
-# CONFIG_SCTP_HMAC_MD5 is not set
-CONFIG_RDS=m
-# CONFIG_RDS_RDMA is not set
-# CONFIG_RDS_TCP is not set
-# CONFIG_RDS_DEBUG is not set
-CONFIG_TIPC=m
-# CONFIG_TIPC_ADVANCED is not set
-# CONFIG_TIPC_DEBUG is not set
-CONFIG_ATM=m
-CONFIG_ATM_CLIP=m
-# CONFIG_ATM_CLIP_NO_ICMP is not set
-CONFIG_ATM_LANE=m
-CONFIG_ATM_MPOA=m
-CONFIG_ATM_BR2684=m
-# CONFIG_ATM_BR2684_IPFILTER is not set
-CONFIG_STP=m
-CONFIG_BRIDGE=m
-# CONFIG_NET_DSA is not set
-CONFIG_VLAN_8021Q=m
-# CONFIG_VLAN_8021Q_GVRP is not set
-CONFIG_DECNET=m
-CONFIG_DECNET_ROUTER=y
-CONFIG_LLC=m
-CONFIG_LLC2=m
-CONFIG_IPX=m
-# CONFIG_IPX_INTERN is not set
-CONFIG_ATALK=m
-CONFIG_DEV_APPLETALK=m
-CONFIG_LTPC=m
-CONFIG_COPS=m
-CONFIG_COPS_DAYNA=y
-CONFIG_COPS_TANGENT=y
-CONFIG_IPDDP=m
-CONFIG_IPDDP_ENCAP=y
-CONFIG_IPDDP_DECAP=y
-CONFIG_X25=m
-CONFIG_LAPB=m
-CONFIG_ECONET=m
-CONFIG_ECONET_AUNUDP=y
-CONFIG_ECONET_NATIVE=y
-CONFIG_WAN_ROUTER=m
-CONFIG_PHONET=m
-CONFIG_IEEE802154=m
-CONFIG_NET_SCHED=y
-
-#
-# Queueing/Scheduling
-#
-CONFIG_NET_SCH_CBQ=m
-CONFIG_NET_SCH_HTB=m
-CONFIG_NET_SCH_HFSC=m
-CONFIG_NET_SCH_ATM=m
-CONFIG_NET_SCH_PRIO=m
-CONFIG_NET_SCH_MULTIQ=m
-CONFIG_NET_SCH_RED=m
-CONFIG_NET_SCH_SFQ=m
-CONFIG_NET_SCH_TEQL=m
-CONFIG_NET_SCH_TBF=m
-CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
-CONFIG_NET_SCH_NETEM=m
-CONFIG_NET_SCH_DRR=m
-CONFIG_NET_SCH_INGRESS=m
-
-#
-# Classification
-#
-CONFIG_NET_CLS=y
-CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
-CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_ROUTE=y
-CONFIG_NET_CLS_FW=m
-CONFIG_NET_CLS_U32=m
-CONFIG_CLS_U32_PERF=y
-CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
-CONFIG_NET_CLS_FLOW=m
-CONFIG_NET_EMATCH=y
-CONFIG_NET_EMATCH_STACK=32
-CONFIG_NET_EMATCH_CMP=m
-CONFIG_NET_EMATCH_NBYTE=m
-CONFIG_NET_EMATCH_U32=m
-CONFIG_NET_EMATCH_META=m
-CONFIG_NET_EMATCH_TEXT=m
-CONFIG_NET_CLS_ACT=y
-CONFIG_NET_ACT_POLICE=m
-CONFIG_NET_ACT_GACT=m
-CONFIG_GACT_PROB=y
-CONFIG_NET_ACT_MIRRED=m
-CONFIG_NET_ACT_IPT=m
-CONFIG_NET_ACT_NAT=m
-CONFIG_NET_ACT_PEDIT=m
-CONFIG_NET_ACT_SIMP=m
-CONFIG_NET_ACT_SKBEDIT=m
-# CONFIG_NET_CLS_IND is not set
-CONFIG_NET_SCH_FIFO=y
-# CONFIG_DCB is not set
-
-#
-# Network testing
-#
-CONFIG_NET_PKTGEN=m
-# CONFIG_NET_DROP_MONITOR is not set
-# CONFIG_HAMRADIO is not set
-CONFIG_CAN=m
-CONFIG_CAN_RAW=m
-CONFIG_CAN_BCM=m
-
-#
-# CAN Device Drivers
-#
-CONFIG_CAN_VCAN=m
-CONFIG_CAN_DEV=m
-# CONFIG_CAN_CALC_BITTIMING is not set
-CONFIG_CAN_SJA1000=m
-# CONFIG_CAN_SJA1000_ISA is not set
-CONFIG_CAN_SJA1000_PLATFORM=m
-CONFIG_CAN_EMS_PCI=m
-CONFIG_CAN_KVASER_PCI=m
-
-#
-# CAN USB interfaces
-#
-# CONFIG_CAN_EMS_USB is not set
-# CONFIG_CAN_DEBUG_DEVICES 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 is not set
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=m
-
-#
-# Dongle support
-#
-CONFIG_DONGLE=y
-CONFIG_ESI_DONGLE=m
-CONFIG_ACTISYS_DONGLE=m
-CONFIG_TEKRAM_DONGLE=m
-CONFIG_TOIM3232_DONGLE=m
-CONFIG_LITELINK_DONGLE=m
-CONFIG_MA600_DONGLE=m
-CONFIG_GIRBIL_DONGLE=m
-CONFIG_MCP2120_DONGLE=m
-CONFIG_OLD_BELKIN_DONGLE=m
-CONFIG_ACT200L_DONGLE=m
-CONFIG_KINGSUN_DONGLE=m
-CONFIG_KSDAZZLE_DONGLE=m
-CONFIG_KS959_DONGLE=m
-
-#
-# FIR device drivers
-#
-CONFIG_USB_IRDA=m
-CONFIG_SIGMATEL_FIR=m
-CONFIG_NSC_FIR=m
-CONFIG_WINBOND_FIR=m
-CONFIG_TOSHIBA_FIR=m
-CONFIG_SMC_IRCC_FIR=m
-CONFIG_ALI_FIR=m
-CONFIG_VLSI_FIR=m
-CONFIG_VIA_FIR=m
-CONFIG_MCS_FIR=m
-CONFIG_BT=m
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_CMTP=m
-CONFIG_BT_HIDP=m
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_HCIBTUSB=m
-CONFIG_BT_HCIBTSDIO=m
-CONFIG_BT_HCIUART=m
-CONFIG_BT_HCIUART_H4=y
-CONFIG_BT_HCIUART_BCSP=y
-CONFIG_BT_HCIUART_LL=y
-CONFIG_BT_HCIBCM203X=m
-CONFIG_BT_HCIBPA10X=m
-CONFIG_BT_HCIBFUSB=m
-CONFIG_BT_HCIDTL1=m
-CONFIG_BT_HCIBT3C=m
-CONFIG_BT_HCIBLUECARD=m
-CONFIG_BT_HCIBTUART=m
-CONFIG_BT_HCIVHCI=m
-# CONFIG_BT_MRVL is not set
-CONFIG_AF_RXRPC=m
-# CONFIG_AF_RXRPC_DEBUG is not set
-CONFIG_RXKAD=m
-CONFIG_FIB_RULES=y
-CONFIG_WIRELESS=y
-CONFIG_CFG80211=m
-# CONFIG_NL80211_TESTMODE is not set
-# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
-# CONFIG_CFG80211_REG_DEBUG is not set
-CONFIG_CFG80211_DEFAULT_PS=y
-CONFIG_CFG80211_DEFAULT_PS_VALUE=1
-# CONFIG_CFG80211_DEBUGFS is not set
-CONFIG_WIRELESS_OLD_REGULATORY=y
-CONFIG_WIRELESS_EXT=y
-CONFIG_WIRELESS_EXT_SYSFS=y
-CONFIG_LIB80211=m
-CONFIG_LIB80211_CRYPT_WEP=m
-CONFIG_LIB80211_CRYPT_CCMP=m
-CONFIG_LIB80211_CRYPT_TKIP=m
-# CONFIG_LIB80211_DEBUG is not set
-CONFIG_MAC80211=m
-CONFIG_MAC80211_RC_PID=y
-CONFIG_MAC80211_RC_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT_PID=y
-# CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set
-CONFIG_MAC80211_RC_DEFAULT="pid"
-# CONFIG_MAC80211_MESH is not set
-CONFIG_MAC80211_LEDS=y
-# CONFIG_MAC80211_DEBUGFS is not set
-# CONFIG_MAC80211_DEBUG_MENU is not set
-CONFIG_WIMAX=m
-CONFIG_WIMAX_DEBUG_LEVEL=8
-CONFIG_RFKILL=m
-CONFIG_RFKILL_LEDS=y
-# CONFIG_RFKILL_INPUT is not set
-CONFIG_NET_9P=m
-CONFIG_NET_9P_VIRTIO=m
-CONFIG_NET_9P_RDMA=m
-# CONFIG_NET_9P_DEBUG is not set
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-# CONFIG_DEVTMPFS is not set
-CONFIG_STANDALONE=y
-# CONFIG_PREVENT_FIRMWARE_BUILD is not set
-CONFIG_FW_LOADER=m
-# CONFIG_FIRMWARE_IN_KERNEL is not set
-CONFIG_EXTRA_FIRMWARE=""
-# CONFIG_SYS_HYPERVISOR is not set
-CONFIG_CONNECTOR=m
-CONFIG_MTD=m
-# CONFIG_MTD_DEBUG is not set
-CONFIG_MTD_TESTS=m
-CONFIG_MTD_CONCAT=m
-CONFIG_MTD_PARTITIONS=y
-CONFIG_MTD_REDBOOT_PARTS=m
-CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
-# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
-# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
-CONFIG_MTD_AR7_PARTS=m
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_CHAR=m
-CONFIG_HAVE_MTD_OTP=y
-CONFIG_MTD_BLKDEVS=m
-CONFIG_MTD_BLOCK=m
-CONFIG_MTD_BLOCK_RO=m
-CONFIG_FTL=m
-CONFIG_NFTL=m
-CONFIG_NFTL_RW=y
-CONFIG_INFTL=m
-CONFIG_RFD_FTL=m
-CONFIG_SSFDC=m
-CONFIG_MTD_OOPS=m
-
-#
-# RAM/ROM/Flash chip drivers
-#
-CONFIG_MTD_CFI=m
-CONFIG_MTD_JEDECPROBE=m
-CONFIG_MTD_GEN_PROBE=m
-# 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=m
-CONFIG_MTD_CFI_AMDSTD=m
-CONFIG_MTD_CFI_STAA=m
-CONFIG_MTD_CFI_UTIL=m
-CONFIG_MTD_RAM=m
-CONFIG_MTD_ROM=m
-CONFIG_MTD_ABSENT=m
-
-#
-# Mapping drivers for chip access
-#
-CONFIG_MTD_COMPLEX_MAPPINGS=y
-CONFIG_MTD_PHYSMAP=m
-# CONFIG_MTD_PHYSMAP_COMPAT is not set
-CONFIG_MTD_SC520CDP=m
-CONFIG_MTD_NETSC520=m
-CONFIG_MTD_TS5500=m
-CONFIG_MTD_SBC_GXX=m
-CONFIG_MTD_SCx200_DOCFLASH=m
-CONFIG_MTD_AMD76XROM=m
-CONFIG_MTD_ICHXROM=m
-CONFIG_MTD_ESB2ROM=m
-CONFIG_MTD_CK804XROM=m
-CONFIG_MTD_SCB2_FLASH=m
-CONFIG_MTD_NETtel=m
-CONFIG_MTD_L440GX=m
-CONFIG_MTD_PCI=m
-# CONFIG_MTD_GPIO_ADDR is not set
-CONFIG_MTD_INTEL_VR_NOR=m
-CONFIG_MTD_PLATRAM=m
-
-#
-# Self-contained MTD device drivers
-#
-CONFIG_MTD_PMC551=m
-CONFIG_MTD_PMC551_BUGFIX=y
-# CONFIG_MTD_PMC551_DEBUG is not set
-CONFIG_MTD_DATAFLASH=m
-# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
-# CONFIG_MTD_DATAFLASH_OTP is not set
-CONFIG_MTD_M25P80=m
-CONFIG_M25PXX_USE_FAST_READ=y
-# CONFIG_MTD_SST25L is not set
-CONFIG_MTD_SLRAM=m
-CONFIG_MTD_PHRAM=m
-CONFIG_MTD_MTDRAM=m
-CONFIG_MTDRAM_TOTAL_SIZE=4096
-CONFIG_MTDRAM_ERASE_SIZE=128
-CONFIG_MTD_BLOCK2MTD=m
-
-#
-# Disk-On-Chip Device Drivers
-#
-CONFIG_MTD_DOC2000=m
-CONFIG_MTD_DOC2001=m
-CONFIG_MTD_DOC2001PLUS=m
-CONFIG_MTD_DOCPROBE=m
-CONFIG_MTD_DOCECC=m
-CONFIG_MTD_DOCPROBE_ADVANCED=y
-CONFIG_MTD_DOCPROBE_ADDRESS=0x0000
-# CONFIG_MTD_DOCPROBE_HIGH is not set
-# CONFIG_MTD_DOCPROBE_55AA is not set
-CONFIG_MTD_NAND=m
-# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-CONFIG_MTD_NAND_ECC_SMC=y
-# CONFIG_MTD_NAND_MUSEUM_IDS is not set
-CONFIG_MTD_NAND_IDS=m
-CONFIG_MTD_NAND_DISKONCHIP=m
-# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
-CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
-# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
-CONFIG_MTD_NAND_CAFE=m
-CONFIG_MTD_NAND_CS553X=m
-CONFIG_MTD_NAND_NANDSIM=m
-CONFIG_MTD_NAND_PLATFORM=m
-CONFIG_MTD_ALAUDA=m
-CONFIG_MTD_ONENAND=m
-# CONFIG_MTD_ONENAND_VERIFY_WRITE is not set
-# CONFIG_MTD_ONENAND_GENERIC is not set
-CONFIG_MTD_ONENAND_OTP=y
-CONFIG_MTD_ONENAND_2X_PROGRAM=y
-CONFIG_MTD_ONENAND_SIM=m
-
-#
-# LPDDR flash memory drivers
-#
-CONFIG_MTD_LPDDR=m
-CONFIG_MTD_QINFO_PROBE=m
-
-#
-# UBI - Unsorted block images
-#
-CONFIG_MTD_UBI=m
-CONFIG_MTD_UBI_WL_THRESHOLD=4096
-CONFIG_MTD_UBI_BEB_RESERVE=1
-# CONFIG_MTD_UBI_GLUEBI is not set
-
-#
-# UBI debugging options
-#
-# CONFIG_MTD_UBI_DEBUG is not set
-CONFIG_PARPORT=m
-CONFIG_PARPORT_PC=m
-CONFIG_PARPORT_SERIAL=m
-# CONFIG_PARPORT_PC_FIFO is not set
-# CONFIG_PARPORT_PC_SUPERIO is not set
-CONFIG_PARPORT_PC_PCMCIA=m
-# CONFIG_PARPORT_GSC is not set
-CONFIG_PARPORT_AX88796=m
-# CONFIG_PARPORT_1284 is not set
-CONFIG_PARPORT_NOT_PC=y
-CONFIG_PNP=y
-# CONFIG_PNP_DEBUG_MESSAGES is not set
-
-#
-# Protocols
-#
-CONFIG_ISAPNP=y
-CONFIG_PNPBIOS=y
-# CONFIG_PNPBIOS_PROC_FS is not set
-CONFIG_PNPACPI=y
-CONFIG_BLK_DEV=y
-CONFIG_BLK_DEV_FD=m
-CONFIG_BLK_DEV_XD=m
-# CONFIG_PARIDE is not set
-CONFIG_BLK_CPQ_DA=m
-CONFIG_BLK_CPQ_CISS_DA=m
-CONFIG_CISS_SCSI_TAPE=y
-CONFIG_BLK_DEV_DAC960=m
-CONFIG_BLK_DEV_UMEM=m
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_CRYPTOLOOP=m
-CONFIG_BLK_DEV_VROOT=m
-CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_OSD=m
-CONFIG_BLK_DEV_SX8=m
-CONFIG_BLK_DEV_UB=m
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=4096
-# CONFIG_BLK_DEV_XIP is not set
-CONFIG_CDROM_PKTCDVD=m
-CONFIG_CDROM_PKTCDVD_BUFFERS=8
-# CONFIG_CDROM_PKTCDVD_WCACHE is not set
-CONFIG_ATA_OVER_ETH=m
-CONFIG_VIRTIO_BLK=m
-# CONFIG_BLK_DEV_HD is not set
-CONFIG_MISC_DEVICES=y
-CONFIG_IBM_ASM=m
-CONFIG_PHANTOM=m
-CONFIG_SGI_IOC4=m
-CONFIG_TIFM_CORE=m
-CONFIG_TIFM_7XX1=m
-CONFIG_ICS932S401=m
-CONFIG_ENCLOSURE_SERVICES=m
-CONFIG_HP_ILO=m
-CONFIG_DELL_LAPTOP=m
-CONFIG_ISL29003=m
-CONFIG_C2PORT=m
-CONFIG_C2PORT_DURAMAR_2150=m
-
-#
-# EEPROM support
-#
-CONFIG_EEPROM_AT24=m
-CONFIG_EEPROM_AT25=m
-CONFIG_EEPROM_LEGACY=m
-CONFIG_EEPROM_MAX6875=m
-CONFIG_EEPROM_93CX6=m
-CONFIG_CB710_CORE=m
-# CONFIG_CB710_DEBUG is not set
-CONFIG_CB710_DEBUG_ASSUMPTIONS=y
-CONFIG_HAVE_IDE=y
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-CONFIG_RAID_ATTRS=m
-CONFIG_SCSI=m
-CONFIG_SCSI_DMA=y
-CONFIG_SCSI_TGT=m
-CONFIG_SCSI_NETLINK=y
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=m
-CONFIG_CHR_DEV_ST=m
-CONFIG_CHR_DEV_OSST=m
-CONFIG_BLK_DEV_SR=m
-CONFIG_BLK_DEV_SR_VENDOR=y
-CONFIG_CHR_DEV_SG=m
-CONFIG_CHR_DEV_SCH=m
-CONFIG_SCSI_ENCLOSURE=m
-CONFIG_SCSI_MULTI_LUN=y
-# CONFIG_SCSI_CONSTANTS is not set
-# CONFIG_SCSI_LOGGING is not set
-CONFIG_SCSI_SCAN_ASYNC=y
-CONFIG_SCSI_WAIT_SCAN=m
-
-#
-# SCSI Transports
-#
-CONFIG_SCSI_SPI_ATTRS=m
-CONFIG_SCSI_FC_ATTRS=m
-CONFIG_SCSI_FC_TGT_ATTRS=y
-CONFIG_SCSI_ISCSI_ATTRS=m
-CONFIG_SCSI_SAS_ATTRS=m
-CONFIG_SCSI_SAS_LIBSAS=m
-CONFIG_SCSI_SAS_ATA=y
-CONFIG_SCSI_SAS_HOST_SMP=y
-# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
-CONFIG_SCSI_SRP_ATTRS=m
-CONFIG_SCSI_SRP_TGT_ATTRS=y
-CONFIG_SCSI_LOWLEVEL=y
-CONFIG_ISCSI_TCP=m
-CONFIG_SCSI_CXGB3_ISCSI=m
-CONFIG_SCSI_BNX2_ISCSI=m
-# CONFIG_BE2ISCSI is not set
-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_BUILD_FIRMWARE is not set
-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_BUILD_FIRMWARE is not set
-CONFIG_AIC79XX_DEBUG_ENABLE=y
-CONFIG_AIC79XX_DEBUG_MASK=0
-CONFIG_AIC79XX_REG_PRETTY_PRINT=y
-CONFIG_SCSI_AIC94XX=m
-# CONFIG_AIC94XX_DEBUG is not set
-CONFIG_SCSI_MVSAS=m
-CONFIG_SCSI_MVSAS_DEBUG=y
-CONFIG_SCSI_DPT_I2O=m
-CONFIG_SCSI_ADVANSYS=m
-CONFIG_SCSI_IN2000=m
-CONFIG_SCSI_ARCMSR=m
-CONFIG_MEGARAID_NEWGEN=y
-CONFIG_MEGARAID_MM=m
-CONFIG_MEGARAID_MAILBOX=m
-CONFIG_MEGARAID_LEGACY=m
-CONFIG_MEGARAID_SAS=m
-CONFIG_SCSI_MPT2SAS=m
-CONFIG_SCSI_MPT2SAS_MAX_SGE=128
-# CONFIG_SCSI_MPT2SAS_LOGGING is not set
-CONFIG_SCSI_HPTIOP=m
-CONFIG_SCSI_BUSLOGIC=m
-CONFIG_SCSI_FLASHPOINT=y
-CONFIG_LIBFC=m
-CONFIG_LIBFCOE=m
-CONFIG_FCOE=m
-CONFIG_FCOE_FNIC=m
-CONFIG_SCSI_DMX3191D=m
-CONFIG_SCSI_DTC3280=m
-CONFIG_SCSI_EATA=m
-# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set
-# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set
-CONFIG_SCSI_EATA_MAX_TAGS=16
-CONFIG_SCSI_FUTURE_DOMAIN=m
-CONFIG_SCSI_GDTH=m
-CONFIG_SCSI_GENERIC_NCR5380=m
-CONFIG_SCSI_GENERIC_NCR5380_MMIO=m
-CONFIG_SCSI_GENERIC_NCR53C400=y
-CONFIG_SCSI_IPS=m
-CONFIG_SCSI_INITIO=m
-CONFIG_SCSI_INIA100=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_NCR53C406A=m
-CONFIG_SCSI_STEX=m
-CONFIG_SCSI_SYM53C8XX_2=m
-CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
-CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
-CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
-CONFIG_SCSI_SYM53C8XX_MMIO=y
-CONFIG_SCSI_IPR=m
-CONFIG_SCSI_IPR_TRACE=y
-# CONFIG_SCSI_IPR_DUMP is not set
-CONFIG_SCSI_PAS16=m
-CONFIG_SCSI_QLOGIC_FAS=m
-CONFIG_SCSI_QLOGIC_1280=m
-CONFIG_SCSI_QLA_FC=m
-CONFIG_SCSI_QLA_ISCSI=m
-CONFIG_SCSI_LPFC=m
-# CONFIG_SCSI_LPFC_DEBUG_FS is not set
-CONFIG_SCSI_SYM53C416=m
-CONFIG_SCSI_DC395x=m
-CONFIG_SCSI_DC390T=m
-CONFIG_SCSI_T128=m
-CONFIG_SCSI_U14_34F=m
-# CONFIG_SCSI_U14_34F_TAGGED_QUEUE is not set
-# CONFIG_SCSI_U14_34F_LINKED_COMMANDS is not set
-CONFIG_SCSI_U14_34F_MAX_TAGS=8
-CONFIG_SCSI_ULTRASTOR=m
-CONFIG_SCSI_NSP32=m
-CONFIG_SCSI_DEBUG=m
-# CONFIG_SCSI_PMCRAID is not set
-CONFIG_SCSI_SRP=m
-# CONFIG_SCSI_BFA_FC is not set
-CONFIG_SCSI_LOWLEVEL_PCMCIA=y
-CONFIG_PCMCIA_AHA152X=m
-CONFIG_PCMCIA_FDOMAIN=m
-CONFIG_PCMCIA_NINJA_SCSI=m
-CONFIG_PCMCIA_QLOGIC=m
-CONFIG_PCMCIA_SYM53C500=m
-CONFIG_SCSI_DH=m
-CONFIG_SCSI_DH_RDAC=m
-CONFIG_SCSI_DH_HP_SW=m
-CONFIG_SCSI_DH_EMC=m
-CONFIG_SCSI_DH_ALUA=m
-CONFIG_SCSI_OSD_INITIATOR=m
-CONFIG_SCSI_OSD_ULD=m
-CONFIG_SCSI_OSD_DPRINT_SENSE=1
-# CONFIG_SCSI_OSD_DEBUG is not set
-CONFIG_ATA=m
-# CONFIG_ATA_NONSTANDARD is not set
-CONFIG_ATA_VERBOSE_ERROR=y
-CONFIG_ATA_ACPI=y
-CONFIG_SATA_PMP=y
-CONFIG_SATA_AHCI=m
-CONFIG_SATA_SIL24=m
-CONFIG_ATA_SFF=y
-CONFIG_SATA_SVW=m
-CONFIG_ATA_PIIX=m
-CONFIG_SATA_MV=m
-CONFIG_SATA_NV=m
-CONFIG_PDC_ADMA=m
-CONFIG_SATA_QSTOR=m
-CONFIG_SATA_PROMISE=m
-CONFIG_SATA_SX4=m
-CONFIG_SATA_SIL=m
-CONFIG_SATA_SIS=m
-CONFIG_SATA_ULI=m
-CONFIG_SATA_VIA=m
-CONFIG_SATA_VITESSE=m
-CONFIG_SATA_INIC162X=m
-CONFIG_PATA_ACPI=m
-CONFIG_PATA_ALI=m
-CONFIG_PATA_AMD=m
-CONFIG_PATA_ARTOP=m
-CONFIG_PATA_ATP867X=m
-CONFIG_PATA_ATIIXP=m
-CONFIG_PATA_CMD640_PCI=m
-CONFIG_PATA_CMD64X=m
-CONFIG_PATA_CS5520=m
-CONFIG_PATA_CS5530=m
-CONFIG_PATA_CS5535=m
-CONFIG_PATA_CS5536=m
-CONFIG_PATA_CYPRESS=m
-CONFIG_PATA_EFAR=m
-CONFIG_ATA_GENERIC=m
-CONFIG_PATA_HPT366=m
-CONFIG_PATA_HPT37X=m
-CONFIG_PATA_HPT3X2N=m
-CONFIG_PATA_HPT3X3=m
-CONFIG_PATA_HPT3X3_DMA=y
-CONFIG_PATA_ISAPNP=m
-CONFIG_PATA_IT821X=m
-CONFIG_PATA_IT8213=m
-CONFIG_PATA_JMICRON=m
-CONFIG_PATA_LEGACY=m
-CONFIG_PATA_TRIFLEX=m
-CONFIG_PATA_MARVELL=m
-CONFIG_PATA_MPIIX=m
-CONFIG_PATA_OLDPIIX=m
-CONFIG_PATA_NETCELL=m
-CONFIG_PATA_NINJA32=m
-CONFIG_PATA_NS87410=m
-CONFIG_PATA_NS87415=m
-CONFIG_PATA_OPTI=m
-CONFIG_PATA_OPTIDMA=m
-CONFIG_PATA_PCMCIA=m
-CONFIG_PATA_PDC_OLD=m
-CONFIG_PATA_QDI=m
-CONFIG_PATA_RADISYS=m
-CONFIG_PATA_RDC=m
-CONFIG_PATA_RZ1000=m
-CONFIG_PATA_SC1200=m
-CONFIG_PATA_SERVERWORKS=m
-CONFIG_PATA_PDC2027X=m
-CONFIG_PATA_SIL680=m
-CONFIG_PATA_SIS=m
-CONFIG_PATA_VIA=m
-CONFIG_PATA_WINBOND=m
-CONFIG_PATA_WINBOND_VLB=m
-CONFIG_PATA_PLATFORM=m
-CONFIG_PATA_SCH=m
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=y
-# CONFIG_MD_AUTODETECT is not set
-CONFIG_MD_LINEAR=m
-CONFIG_MD_RAID0=m
-CONFIG_MD_RAID1=m
-CONFIG_MD_RAID10=m
-CONFIG_MD_RAID456=m
-# CONFIG_MULTICORE_RAID456 is not set
-CONFIG_MD_RAID6_PQ=m
-# CONFIG_ASYNC_RAID6_TEST is not set
-CONFIG_MD_MULTIPATH=m
-CONFIG_MD_FAULTY=m
-CONFIG_BLK_DEV_DM=m
-# CONFIG_DM_DEBUG is not set
-CONFIG_DM_CRYPT=m
-CONFIG_DM_SNAPSHOT=m
-CONFIG_DM_MIRROR=m
-CONFIG_DM_LOG_USERSPACE=m
-CONFIG_DM_ZERO=m
-CONFIG_DM_MULTIPATH=m
-CONFIG_DM_MULTIPATH_QL=m
-CONFIG_DM_MULTIPATH_ST=m
-CONFIG_DM_DELAY=m
-# CONFIG_DM_UEVENT is not set
-CONFIG_FUSION=y
-CONFIG_FUSION_SPI=m
-CONFIG_FUSION_FC=m
-CONFIG_FUSION_SAS=m
-CONFIG_FUSION_MAX_SGE=128
-CONFIG_FUSION_CTL=m
-# CONFIG_FUSION_LOGGING is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-
-#
-# You can enable one or both FireWire driver stacks.
-#
-
-#
-# See the help texts for more information.
-#
-CONFIG_FIREWIRE=m
-CONFIG_FIREWIRE_OHCI=m
-CONFIG_FIREWIRE_OHCI_DEBUG=y
-CONFIG_FIREWIRE_SBP2=m
-CONFIG_FIREWIRE_NET=m
-CONFIG_IEEE1394=m
-CONFIG_IEEE1394_OHCI1394=m
-CONFIG_IEEE1394_PCILYNX=m
-CONFIG_IEEE1394_SBP2=m
-# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set
-CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y
-CONFIG_IEEE1394_ETH1394=m
-CONFIG_IEEE1394_RAWIO=m
-CONFIG_IEEE1394_VIDEO1394=m
-CONFIG_IEEE1394_DV1394=m
-# CONFIG_IEEE1394_VERBOSEDEBUG is not set
-CONFIG_I2O=m
-CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
-CONFIG_I2O_EXT_ADAPTEC=y
-CONFIG_I2O_CONFIG=m
-CONFIG_I2O_CONFIG_OLD_IOCTL=y
-CONFIG_I2O_BUS=m
-CONFIG_I2O_BLOCK=m
-CONFIG_I2O_SCSI=m
-CONFIG_I2O_PROC=m
-# CONFIG_MACINTOSH_DRIVERS is not set
-CONFIG_NETDEVICES=y
-CONFIG_IFB=m
-CONFIG_DUMMY=m
-CONFIG_BONDING=m
-CONFIG_MACVLAN=m
-CONFIG_EQUALIZER=m
-CONFIG_TUN=m
-CONFIG_VETH=m
-CONFIG_NET_SB1000=m
-CONFIG_ARCNET=m
-CONFIG_ARCNET_1201=m
-CONFIG_ARCNET_1051=m
-CONFIG_ARCNET_RAW=m
-CONFIG_ARCNET_CAP=m
-CONFIG_ARCNET_COM90xx=m
-CONFIG_ARCNET_COM90xxIO=m
-CONFIG_ARCNET_RIM_I=m
-CONFIG_ARCNET_COM20020=m
-CONFIG_ARCNET_COM20020_ISA=m
-CONFIG_ARCNET_COM20020_PCI=m
-CONFIG_PHYLIB=m
-
-#
-# MII PHY device drivers
-#
-CONFIG_MARVELL_PHY=m
-CONFIG_DAVICOM_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_LXT_PHY=m
-CONFIG_CICADA_PHY=m
-CONFIG_VITESSE_PHY=m
-CONFIG_SMSC_PHY=m
-CONFIG_BROADCOM_PHY=m
-CONFIG_ICPLUS_PHY=m
-CONFIG_REALTEK_PHY=m
-CONFIG_NATIONAL_PHY=m
-CONFIG_STE10XP=m
-CONFIG_LSI_ET1011C_PHY=m
-CONFIG_MDIO_BITBANG=m
-CONFIG_MDIO_GPIO=m
-CONFIG_NET_ETHERNET=y
-CONFIG_MII=m
-CONFIG_HAPPYMEAL=m
-CONFIG_SUNGEM=m
-CONFIG_CASSINI=m
-CONFIG_NET_VENDOR_3COM=y
-CONFIG_EL1=m
-CONFIG_EL2=m
-CONFIG_ELPLUS=m
-CONFIG_EL16=m
-CONFIG_EL3=m
-CONFIG_3C515=m
-CONFIG_VORTEX=m
-CONFIG_TYPHOON=m
-CONFIG_LANCE=m
-CONFIG_NET_VENDOR_SMC=y
-CONFIG_WD80x3=m
-CONFIG_ULTRA=m
-CONFIG_SMC9194=m
-CONFIG_ENC28J60=m
-# CONFIG_ENC28J60_WRITEVERIFY is not set
-CONFIG_ETHOC=m
-CONFIG_NET_VENDOR_RACAL=y
-CONFIG_NI52=m
-CONFIG_NI65=m
-CONFIG_DNET=m
-CONFIG_NET_TULIP=y
-CONFIG_DE2104X=m
-CONFIG_DE2104X_DSL=0
-CONFIG_TULIP=m
-# CONFIG_TULIP_MWI is not set
-# CONFIG_TULIP_MMIO is not set
-# CONFIG_TULIP_NAPI is not set
-CONFIG_DE4X5=m
-CONFIG_WINBOND_840=m
-CONFIG_DM9102=m
-CONFIG_ULI526X=m
-CONFIG_PCMCIA_XIRCOM=m
-CONFIG_AT1700=m
-CONFIG_DEPCA=m
-CONFIG_HP100=m
-CONFIG_NET_ISA=y
-CONFIG_E2100=m
-CONFIG_EWRK3=m
-CONFIG_EEXPRESS=m
-CONFIG_EEXPRESS_PRO=m
-CONFIG_HPLAN_PLUS=m
-CONFIG_HPLAN=m
-CONFIG_LP486E=m
-CONFIG_ETH16I=m
-CONFIG_NE2000=m
-CONFIG_ZNET=m
-CONFIG_SEEQ8005=m
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-CONFIG_NET_PCI=y
-CONFIG_PCNET32=m
-CONFIG_AMD8111_ETH=m
-CONFIG_ADAPTEC_STARFIRE=m
-CONFIG_AC3200=m
-CONFIG_APRICOT=m
-CONFIG_B44=m
-CONFIG_B44_PCI_AUTOSELECT=y
-CONFIG_B44_PCICORE_AUTOSELECT=y
-CONFIG_B44_PCI=y
-CONFIG_FORCEDETH=m
-# CONFIG_FORCEDETH_NAPI is not set
-CONFIG_CS89x0=m
-CONFIG_E100=m
-CONFIG_FEALNX=m
-CONFIG_NATSEMI=m
-CONFIG_NE2K_PCI=m
-CONFIG_8139CP=m
-CONFIG_8139TOO=m
-CONFIG_8139TOO_PIO=y
-# CONFIG_8139TOO_TUNE_TWISTER is not set
-# CONFIG_8139TOO_8129 is not set
-# CONFIG_8139_OLD_RX_RESET is not set
-CONFIG_R6040=m
-CONFIG_SIS900=m
-CONFIG_EPIC100=m
-CONFIG_SMSC9420=m
-CONFIG_SUNDANCE=m
-# CONFIG_SUNDANCE_MMIO is not set
-CONFIG_TLAN=m
-CONFIG_KS8842=m
-CONFIG_KS8851=m
-CONFIG_KS8851_MLL=m
-CONFIG_VIA_RHINE=m
-# CONFIG_VIA_RHINE_MMIO is not set
-CONFIG_SC92031=m
-CONFIG_NET_POCKET=y
-CONFIG_ATP=m
-CONFIG_DE600=m
-CONFIG_DE620=m
-CONFIG_ATL2=m
-CONFIG_NETDEV_1000=y
-CONFIG_ACENIC=m
-# CONFIG_ACENIC_OMIT_TIGON_I is not set
-CONFIG_DL2K=m
-CONFIG_E1000=m
-CONFIG_E1000E=m
-CONFIG_IP1000=m
-CONFIG_IGB=m
-CONFIG_IGB_DCA=y
-CONFIG_IGBVF=m
-CONFIG_NS83820=m
-CONFIG_HAMACHI=m
-CONFIG_YELLOWFIN=m
-CONFIG_R8169=m
-CONFIG_R8169_VLAN=y
-CONFIG_SIS190=m
-CONFIG_SKGE=m
-# CONFIG_SKGE_DEBUG is not set
-CONFIG_SKY2=m
-# CONFIG_SKY2_DEBUG is not set
-CONFIG_VIA_VELOCITY=m
-CONFIG_TIGON3=m
-CONFIG_BNX2=m
-CONFIG_CNIC=m
-CONFIG_QLA3XXX=m
-CONFIG_ATL1=m
-CONFIG_ATL1E=m
-CONFIG_ATL1C=m
-CONFIG_JME=m
-CONFIG_NETDEV_10000=y
-CONFIG_MDIO=m
-CONFIG_CHELSIO_T1=m
-CONFIG_CHELSIO_T1_1G=y
-CONFIG_CHELSIO_T3_DEPENDS=y
-CONFIG_CHELSIO_T3=m
-CONFIG_ENIC=m
-CONFIG_IXGBE=m
-CONFIG_IXGBE_DCA=y
-CONFIG_IXGB=m
-CONFIG_S2IO=m
-CONFIG_VXGE=m
-# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
-CONFIG_MYRI10GE=m
-CONFIG_MYRI10GE_DCA=y
-CONFIG_NETXEN_NIC=m
-CONFIG_NIU=m
-CONFIG_MLX4_EN=m
-CONFIG_MLX4_CORE=m
-CONFIG_MLX4_DEBUG=y
-CONFIG_TEHUTI=m
-CONFIG_BNX2X=m
-CONFIG_QLGE=m
-CONFIG_SFC=m
-CONFIG_SFC_MTD=y
-CONFIG_BE2NET=m
-# CONFIG_TR is not set
-CONFIG_WLAN=y
-CONFIG_WLAN_PRE80211=y
-CONFIG_STRIP=m
-CONFIG_ARLAN=m
-CONFIG_WAVELAN=m
-CONFIG_PCMCIA_WAVELAN=m
-CONFIG_PCMCIA_NETWAVE=m
-CONFIG_WLAN_80211=y
-CONFIG_PCMCIA_RAYCS=m
-CONFIG_LIBERTAS=m
-CONFIG_LIBERTAS_USB=m
-CONFIG_LIBERTAS_CS=m
-CONFIG_LIBERTAS_SDIO=m
-CONFIG_LIBERTAS_SPI=m
-# CONFIG_LIBERTAS_DEBUG is not set
-CONFIG_LIBERTAS_THINFIRM=m
-CONFIG_LIBERTAS_THINFIRM_USB=m
-CONFIG_AIRO=m
-CONFIG_ATMEL=m
-CONFIG_PCI_ATMEL=m
-CONFIG_PCMCIA_ATMEL=m
-CONFIG_AT76C50X_USB=m
-CONFIG_AIRO_CS=m
-CONFIG_PCMCIA_WL3501=m
-CONFIG_PRISM54=m
-CONFIG_USB_ZD1201=m
-CONFIG_USB_NET_RNDIS_WLAN=m
-CONFIG_RTL8180=m
-CONFIG_RTL8187=m
-CONFIG_RTL8187_LEDS=y
-CONFIG_ADM8211=m
-CONFIG_MAC80211_HWSIM=m
-CONFIG_MWL8K=m
-CONFIG_P54_COMMON=m
-CONFIG_P54_USB=m
-CONFIG_P54_PCI=m
-CONFIG_P54_SPI=m
-CONFIG_P54_LEDS=y
-CONFIG_ATH_COMMON=m
-CONFIG_ATH5K=m
-# CONFIG_ATH5K_DEBUG is not set
-CONFIG_ATH9K=m
-# CONFIG_ATH9K_DEBUG is not set
-CONFIG_AR9170_USB=m
-CONFIG_AR9170_LEDS=y
-CONFIG_IPW2100=m
-CONFIG_IPW2100_MONITOR=y
-# CONFIG_IPW2100_DEBUG is not set
-CONFIG_IPW2200=m
-CONFIG_IPW2200_MONITOR=y
-CONFIG_IPW2200_RADIOTAP=y
-CONFIG_IPW2200_PROMISCUOUS=y
-CONFIG_IPW2200_QOS=y
-# CONFIG_IPW2200_DEBUG is not set
-CONFIG_LIBIPW=m
-# CONFIG_LIBIPW_DEBUG is not set
-CONFIG_IWLWIFI=m
-# CONFIG_IWLWIFI_LEDS is not set
-# CONFIG_IWLWIFI_SPECTRUM_MEASUREMENT is not set
-# CONFIG_IWLWIFI_DEBUG is not set
-CONFIG_IWLAGN=m
-CONFIG_IWL4965=y
-CONFIG_IWL5000=y
-CONFIG_IWL3945=m
-# CONFIG_IWL3945_SPECTRUM_MEASUREMENT is not set
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-CONFIG_HOSTAP_FIRMWARE_NVRAM=y
-CONFIG_HOSTAP_PLX=m
-CONFIG_HOSTAP_PCI=m
-CONFIG_HOSTAP_CS=m
-CONFIG_B43=m
-CONFIG_B43_PCI_AUTOSELECT=y
-CONFIG_B43_PCICORE_AUTOSELECT=y
-CONFIG_B43_PCMCIA=y
-CONFIG_B43_SDIO=y
-CONFIG_B43_PIO=y
-CONFIG_B43_PHY_LP=y
-CONFIG_B43_LEDS=y
-CONFIG_B43_HWRNG=y
-# CONFIG_B43_DEBUG is not set
-CONFIG_B43LEGACY=m
-CONFIG_B43LEGACY_PCI_AUTOSELECT=y
-CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
-CONFIG_B43LEGACY_LEDS=y
-CONFIG_B43LEGACY_HWRNG=y
-CONFIG_B43LEGACY_DEBUG=y
-CONFIG_B43LEGACY_DMA=y
-CONFIG_B43LEGACY_PIO=y
-CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
-# CONFIG_B43LEGACY_DMA_MODE is not set
-# CONFIG_B43LEGACY_PIO_MODE is not set
-CONFIG_ZD1211RW=m
-# CONFIG_ZD1211RW_DEBUG is not set
-CONFIG_RT2X00=m
-CONFIG_RT2400PCI=m
-CONFIG_RT2500PCI=m
-CONFIG_RT61PCI=m
-CONFIG_RT2500USB=m
-CONFIG_RT73USB=m
-CONFIG_RT2800USB=m
-CONFIG_RT2X00_LIB_PCI=m
-CONFIG_RT2X00_LIB_USB=m
-CONFIG_RT2X00_LIB=m
-CONFIG_RT2X00_LIB_HT=y
-CONFIG_RT2X00_LIB_FIRMWARE=y
-CONFIG_RT2X00_LIB_CRYPTO=y
-CONFIG_RT2X00_LIB_LEDS=y
-# CONFIG_RT2X00_DEBUG is not set
-CONFIG_HERMES=m
-CONFIG_HERMES_CACHE_FW_ON_INIT=y
-CONFIG_PLX_HERMES=m
-CONFIG_TMD_HERMES=m
-CONFIG_NORTEL_HERMES=m
-CONFIG_PCI_HERMES=m
-CONFIG_PCMCIA_HERMES=m
-CONFIG_PCMCIA_SPECTRUM=m
-CONFIG_WL12XX=m
-CONFIG_WL1251=m
-CONFIG_WL1251_SPI=m
-CONFIG_WL1251_SDIO=m
-CONFIG_WL1271=m
-CONFIG_IWM=m
-# CONFIG_IWM_DEBUG is not set
-
-#
-# WiMAX Wireless Broadband devices
-#
-CONFIG_WIMAX_I2400M=m
-CONFIG_WIMAX_I2400M_USB=m
-CONFIG_WIMAX_I2400M_SDIO=m
-CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
-
-#
-# USB Network Adapters
-#
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_USBNET=m
-CONFIG_USB_NET_AX8817X=m
-CONFIG_USB_NET_CDCETHER=m
-CONFIG_USB_NET_CDC_EEM=m
-CONFIG_USB_NET_DM9601=m
-CONFIG_USB_NET_SMSC95XX=m
-CONFIG_USB_NET_GL620A=m
-CONFIG_USB_NET_NET1080=m
-CONFIG_USB_NET_PLUSB=m
-CONFIG_USB_NET_MCS7830=m
-CONFIG_USB_NET_RNDIS_HOST=m
-CONFIG_USB_NET_CDC_SUBSET=m
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_AN2720=y
-CONFIG_USB_BELKIN=y
-CONFIG_USB_ARMLINUX=y
-CONFIG_USB_EPSON2888=y
-CONFIG_USB_KC2190=y
-CONFIG_USB_NET_ZAURUS=m
-CONFIG_USB_HSO=m
-CONFIG_USB_NET_INT51X1=m
-CONFIG_USB_CDC_PHONET=m
-CONFIG_NET_PCMCIA=y
-CONFIG_PCMCIA_3C589=m
-CONFIG_PCMCIA_3C574=m
-CONFIG_PCMCIA_FMVJ18X=m
-CONFIG_PCMCIA_PCNET=m
-CONFIG_PCMCIA_NMCLAN=m
-CONFIG_PCMCIA_SMC91C92=m
-CONFIG_PCMCIA_XIRC2PS=m
-CONFIG_PCMCIA_AXNET=m
-CONFIG_ARCNET_COM20020_CS=m
-CONFIG_WAN=y
-CONFIG_HOSTESS_SV11=m
-CONFIG_COSA=m
-CONFIG_LANMEDIA=m
-CONFIG_SEALEVEL_4021=m
-CONFIG_HDLC=m
-CONFIG_HDLC_RAW=m
-CONFIG_HDLC_RAW_ETH=m
-CONFIG_HDLC_CISCO=m
-CONFIG_HDLC_FR=m
-CONFIG_HDLC_PPP=m
-CONFIG_HDLC_X25=m
-CONFIG_PCI200SYN=m
-CONFIG_WANXL=m
-# CONFIG_WANXL_BUILD_FIRMWARE is not set
-CONFIG_PC300TOO=m
-CONFIG_N2=m
-CONFIG_C101=m
-CONFIG_FARSYNC=m
-CONFIG_DSCC4=m
-CONFIG_DSCC4_PCISYNC=y
-CONFIG_DSCC4_PCI_RST=y
-CONFIG_DLCI=m
-CONFIG_DLCI_MAX=8
-CONFIG_SDLA=m
-CONFIG_WAN_ROUTER_DRIVERS=m
-CONFIG_CYCLADES_SYNC=m
-CONFIG_CYCLOMX_X25=y
-CONFIG_LAPBETHER=m
-CONFIG_X25_ASY=m
-CONFIG_SBNI=m
-CONFIG_SBNI_MULTILINE=y
-CONFIG_ATM_DRIVERS=y
-CONFIG_ATM_DUMMY=m
-CONFIG_ATM_TCP=m
-CONFIG_ATM_LANAI=m
-CONFIG_ATM_ENI=m
-# CONFIG_ATM_ENI_DEBUG is not set
-# CONFIG_ATM_ENI_TUNE_BURST is not set
-CONFIG_ATM_FIRESTREAM=m
-CONFIG_ATM_ZATM=m
-# CONFIG_ATM_ZATM_DEBUG is not set
-CONFIG_ATM_NICSTAR=m
-CONFIG_ATM_NICSTAR_USE_SUNI=y
-CONFIG_ATM_NICSTAR_USE_IDT77105=y
-CONFIG_ATM_IDT77252=m
-# CONFIG_ATM_IDT77252_DEBUG is not set
-# CONFIG_ATM_IDT77252_RCV_ALL is not set
-CONFIG_ATM_IDT77252_USE_SUNI=y
-CONFIG_ATM_AMBASSADOR=m
-# CONFIG_ATM_AMBASSADOR_DEBUG is not set
-CONFIG_ATM_HORIZON=m
-# CONFIG_ATM_HORIZON_DEBUG is not set
-CONFIG_ATM_IA=m
-# CONFIG_ATM_IA_DEBUG is not set
-CONFIG_ATM_FORE200E=m
-CONFIG_ATM_FORE200E_USE_TASKLET=y
-CONFIG_ATM_FORE200E_TX_RETRY=16
-CONFIG_ATM_FORE200E_DEBUG=0
-CONFIG_ATM_HE=m
-CONFIG_ATM_HE_USE_SUNI=y
-CONFIG_ATM_SOLOS=m
-CONFIG_IEEE802154_DRIVERS=m
-CONFIG_IEEE802154_FAKEHARD=m
-CONFIG_FDDI=y
-CONFIG_DEFXX=m
-# CONFIG_DEFXX_MMIO is not set
-CONFIG_SKFP=m
-CONFIG_HIPPI=y
-CONFIG_ROADRUNNER=m
-# CONFIG_ROADRUNNER_LARGE_RINGS is not set
-CONFIG_PLIP=m
-CONFIG_PPP=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_MPPE=m
-CONFIG_PPPOE=m
-CONFIG_PPPOATM=m
-CONFIG_PPPOL2TP=m
-CONFIG_SLIP=m
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLHC=m
-CONFIG_SLIP_SMART=y
-CONFIG_SLIP_MODE_SLIP6=y
-# CONFIG_NET_FC is not set
-CONFIG_NETCONSOLE=m
-CONFIG_NETCONSOLE_DYNAMIC=y
-CONFIG_NETPOLL=y
-# CONFIG_NETPOLL_TRAP is not set
-CONFIG_NET_POLL_CONTROLLER=y
-CONFIG_VIRTIO_NET=m
-CONFIG_VMXNET3=m
-CONFIG_ISDN=y
-# CONFIG_ISDN_I4L is not set
-CONFIG_MISDN=m
-CONFIG_MISDN_DSP=m
-CONFIG_MISDN_L1OIP=m
-
-#
-# mISDN hardware drivers
-#
-CONFIG_MISDN_HFCPCI=m
-CONFIG_MISDN_HFCMULTI=m
-CONFIG_MISDN_HFCUSB=m
-CONFIG_MISDN_AVMFRITZ=m
-# CONFIG_MISDN_SPEEDFAX is not set
-# CONFIG_MISDN_INFINEON is not set
-# CONFIG_MISDN_W6692 is not set
-# CONFIG_MISDN_NETJET is not set
-CONFIG_MISDN_IPAC=m
-CONFIG_ISDN_CAPI=m
-# CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON is not set
-# CONFIG_CAPI_TRACE is not set
-CONFIG_ISDN_CAPI_MIDDLEWARE=y
-CONFIG_ISDN_CAPI_CAPI20=m
-CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
-CONFIG_ISDN_CAPI_CAPIFS=m
-
-#
-# CAPI hardware drivers
-#
-CONFIG_CAPI_AVM=y
-CONFIG_ISDN_DRV_AVMB1_B1ISA=m
-CONFIG_ISDN_DRV_AVMB1_B1PCI=m
-CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
-CONFIG_ISDN_DRV_AVMB1_T1ISA=m
-CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
-CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
-CONFIG_ISDN_DRV_AVMB1_T1PCI=m
-CONFIG_ISDN_DRV_AVMB1_C4=m
-CONFIG_CAPI_EICON=y
-CONFIG_ISDN_DIVAS=m
-CONFIG_ISDN_DIVAS_BRIPCI=y
-CONFIG_ISDN_DIVAS_PRIPCI=y
-CONFIG_ISDN_DIVAS_DIVACAPI=m
-CONFIG_ISDN_DIVAS_USERIDI=m
-CONFIG_ISDN_DIVAS_MAINT=m
-# CONFIG_PHONE is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-CONFIG_INPUT_FF_MEMLESS=m
-CONFIG_INPUT_POLLDEV=m
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=m
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-CONFIG_INPUT_JOYDEV=m
-CONFIG_INPUT_EVDEV=m
-CONFIG_INPUT_EVBUG=m
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-# CONFIG_KEYBOARD_ADP5588 is not set
-CONFIG_KEYBOARD_ATKBD=y
-CONFIG_QT2160=m
-CONFIG_KEYBOARD_LKKBD=m
-CONFIG_KEYBOARD_GPIO=m
-CONFIG_KEYBOARD_MATRIX=m
-CONFIG_KEYBOARD_LM8323=m
-# CONFIG_KEYBOARD_MAX7359 is not set
-CONFIG_KEYBOARD_NEWTON=m
-# CONFIG_KEYBOARD_OPENCORES is not set
-CONFIG_KEYBOARD_STOWAWAY=m
-CONFIG_KEYBOARD_SUNKBD=m
-CONFIG_KEYBOARD_XTKBD=m
-CONFIG_INPUT_MOUSE=y
-CONFIG_MOUSE_PS2=m
-CONFIG_MOUSE_PS2_ALPS=y
-CONFIG_MOUSE_PS2_LOGIPS2PP=y
-CONFIG_MOUSE_PS2_SYNAPTICS=y
-CONFIG_MOUSE_PS2_LIFEBOOK=y
-CONFIG_MOUSE_PS2_TRACKPOINT=y
-# CONFIG_MOUSE_PS2_ELANTECH is not set
-# CONFIG_MOUSE_PS2_SENTELIC is not set
-# CONFIG_MOUSE_PS2_TOUCHKIT is not set
-CONFIG_MOUSE_SERIAL=m
-CONFIG_MOUSE_APPLETOUCH=m
-CONFIG_MOUSE_BCM5974=m
-CONFIG_MOUSE_INPORT=m
-# CONFIG_MOUSE_ATIXL is not set
-CONFIG_MOUSE_LOGIBM=m
-CONFIG_MOUSE_PC110PAD=m
-CONFIG_MOUSE_VSXXXAA=m
-CONFIG_MOUSE_GPIO=m
-CONFIG_MOUSE_SYNAPTICS_I2C=m
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TABLET is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_ADS7846=m
-CONFIG_TOUCHSCREEN_AD7877=m
-CONFIG_TOUCHSCREEN_AD7879_I2C=m
-CONFIG_TOUCHSCREEN_AD7879=m
-CONFIG_TOUCHSCREEN_EETI=m
-CONFIG_TOUCHSCREEN_FUJITSU=m
-CONFIG_TOUCHSCREEN_GUNZE=m
-CONFIG_TOUCHSCREEN_ELO=m
-CONFIG_TOUCHSCREEN_WACOM_W8001=m
-# CONFIG_TOUCHSCREEN_MCS5000 is not set
-CONFIG_TOUCHSCREEN_MTOUCH=m
-CONFIG_TOUCHSCREEN_INEXIO=m
-CONFIG_TOUCHSCREEN_MK712=m
-CONFIG_TOUCHSCREEN_HTCPEN=m
-CONFIG_TOUCHSCREEN_PENMOUNT=m
-CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
-CONFIG_TOUCHSCREEN_TOUCHWIN=m
-CONFIG_TOUCHSCREEN_UCB1400=m
-CONFIG_TOUCHSCREEN_WM97XX=m
-CONFIG_TOUCHSCREEN_WM9705=y
-CONFIG_TOUCHSCREEN_WM9712=y
-CONFIG_TOUCHSCREEN_WM9713=y
-CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
-CONFIG_TOUCHSCREEN_USB_EGALAX=y
-CONFIG_TOUCHSCREEN_USB_PANJIT=y
-CONFIG_TOUCHSCREEN_USB_3M=y
-CONFIG_TOUCHSCREEN_USB_ITM=y
-CONFIG_TOUCHSCREEN_USB_ETURBO=y
-CONFIG_TOUCHSCREEN_USB_GUNZE=y
-CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
-CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
-CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
-CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
-CONFIG_TOUCHSCREEN_USB_GOTOP=y
-CONFIG_TOUCHSCREEN_USB_JASTEC=y
-CONFIG_TOUCHSCREEN_USB_E2I=y
-CONFIG_TOUCHSCREEN_TOUCHIT213=m
-CONFIG_TOUCHSCREEN_TSC2007=m
-CONFIG_INPUT_MISC=y
-CONFIG_INPUT_PCSPKR=m
-CONFIG_INPUT_APANEL=m
-CONFIG_INPUT_WISTRON_BTNS=m
-CONFIG_INPUT_ATLAS_BTNS=m
-CONFIG_INPUT_ATI_REMOTE=m
-CONFIG_INPUT_ATI_REMOTE2=m
-CONFIG_INPUT_KEYSPAN_REMOTE=m
-CONFIG_INPUT_POWERMATE=m
-CONFIG_INPUT_YEALINK=m
-CONFIG_INPUT_CM109=m
-CONFIG_INPUT_UINPUT=m
-CONFIG_INPUT_WINBOND_CIR=m
-CONFIG_INPUT_PCF50633_PMU=m
-CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-CONFIG_SERIO_I8042=y
-CONFIG_SERIO_SERPORT=m
-CONFIG_SERIO_CT82C710=m
-CONFIG_SERIO_PARKBD=m
-CONFIG_SERIO_PCIPS2=m
-CONFIG_SERIO_LIBPS2=y
-CONFIG_SERIO_RAW=m
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-CONFIG_VT=y
-CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_VT_CONSOLE=y
-CONFIG_HW_CONSOLE=y
-# CONFIG_VT_HW_CONSOLE_BINDING is not set
-# CONFIG_DEVKMEM is not set
-CONFIG_SERIAL_NONSTANDARD=y
-CONFIG_COMPUTONE=m
-CONFIG_ROCKETPORT=m
-CONFIG_CYCLADES=m
-# CONFIG_CYZ_INTR is not set
-CONFIG_DIGIEPCA=m
-CONFIG_MOXA_INTELLIO=m
-CONFIG_MOXA_SMARTIO=m
-CONFIG_ISI=m
-CONFIG_SYNCLINK=m
-CONFIG_SYNCLINKMP=m
-CONFIG_SYNCLINK_GT=m
-CONFIG_N_HDLC=m
-CONFIG_RISCOM8=m
-CONFIG_SPECIALIX=m
-CONFIG_STALDRV=y
-CONFIG_STALLION=m
-CONFIG_ISTALLION=m
-CONFIG_NOZOMI=m
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_FIX_EARLYCON_MEM=y
-CONFIG_SERIAL_8250_PCI=y
-CONFIG_SERIAL_8250_PNP=y
-CONFIG_SERIAL_8250_CS=m
-CONFIG_SERIAL_8250_NR_UARTS=16
-CONFIG_SERIAL_8250_RUNTIME_UARTS=4
-CONFIG_SERIAL_8250_EXTENDED=y
-CONFIG_SERIAL_8250_MANY_PORTS=y
-CONFIG_SERIAL_8250_FOURPORT=m
-CONFIG_SERIAL_8250_ACCENT=m
-CONFIG_SERIAL_8250_BOCA=m
-CONFIG_SERIAL_8250_EXAR_ST16C554=m
-CONFIG_SERIAL_8250_HUB6=m
-CONFIG_SERIAL_8250_SHARE_IRQ=y
-# CONFIG_SERIAL_8250_DETECT_IRQ is not set
-CONFIG_SERIAL_8250_RSA=y
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_MAX3100=m
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-CONFIG_SERIAL_JSM=m
-CONFIG_UNIX98_PTYS=y
-# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
-# CONFIG_LEGACY_PTYS is not set
-CONFIG_PRINTER=m
-# CONFIG_LP_CONSOLE is not set
-CONFIG_PPDEV=m
-CONFIG_HVC_DRIVER=y
-CONFIG_VIRTIO_CONSOLE=y
-CONFIG_IPMI_HANDLER=m
-# CONFIG_IPMI_PANIC_EVENT is not set
-CONFIG_IPMI_DEVICE_INTERFACE=m
-CONFIG_IPMI_SI=m
-CONFIG_IPMI_WATCHDOG=m
-CONFIG_IPMI_POWEROFF=m
-CONFIG_HW_RANDOM=m
-CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_HW_RANDOM_INTEL=m
-CONFIG_HW_RANDOM_AMD=m
-CONFIG_HW_RANDOM_GEODE=m
-CONFIG_HW_RANDOM_VIA=m
-CONFIG_HW_RANDOM_VIRTIO=m
-CONFIG_NVRAM=m
-CONFIG_DTLK=m
-CONFIG_R3964=m
-CONFIG_APPLICOM=m
-CONFIG_SONYPI=m
-
-#
-# PCMCIA character devices
-#
-CONFIG_SYNCLINK_CS=m
-CONFIG_CARDMAN_4000=m
-CONFIG_CARDMAN_4040=m
-CONFIG_IPWIRELESS=m
-CONFIG_MWAVE=m
-CONFIG_SCx200_GPIO=m
-CONFIG_PC8736x_GPIO=m
-CONFIG_NSC_GPIO=m
-CONFIG_CS5535_GPIO=m
-CONFIG_RAW_DRIVER=m
-CONFIG_MAX_RAW_DEVS=256
-CONFIG_HPET=y
-CONFIG_HPET_MMAP=y
-CONFIG_HANGCHECK_TIMER=m
-CONFIG_TCG_TPM=m
-CONFIG_TCG_TIS=m
-CONFIG_TCG_NSC=m
-CONFIG_TCG_ATMEL=m
-CONFIG_TCG_INFINEON=m
-CONFIG_TELCLOCK=m
-CONFIG_DEVPORT=y
-CONFIG_I2C=m
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_COMPAT=y
-CONFIG_I2C_CHARDEV=m
-CONFIG_I2C_HELPER_AUTO=y
-CONFIG_I2C_ALGOBIT=m
-CONFIG_I2C_ALGOPCA=m
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# PC SMBus host controller drivers
-#
-CONFIG_I2C_ALI1535=m
-CONFIG_I2C_ALI1563=m
-CONFIG_I2C_ALI15X3=m
-CONFIG_I2C_AMD756=m
-CONFIG_I2C_AMD756_S4882=m
-CONFIG_I2C_AMD8111=m
-CONFIG_I2C_I801=m
-CONFIG_I2C_ISCH=m
-CONFIG_I2C_PIIX4=m
-CONFIG_I2C_NFORCE2=m
-CONFIG_I2C_NFORCE2_S4985=m
-CONFIG_I2C_SIS5595=m
-CONFIG_I2C_SIS630=m
-CONFIG_I2C_SIS96X=m
-CONFIG_I2C_VIA=m
-CONFIG_I2C_VIAPRO=m
-
-#
-# ACPI drivers
-#
-CONFIG_I2C_SCMI=m
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-CONFIG_I2C_GPIO=m
-CONFIG_I2C_OCORES=m
-CONFIG_I2C_SIMTEC=m
-
-#
-# External I2C/SMBus adapter drivers
-#
-CONFIG_I2C_PARPORT=m
-CONFIG_I2C_PARPORT_LIGHT=m
-CONFIG_I2C_TAOS_EVM=m
-CONFIG_I2C_TINY_USB=m
-
-#
-# Graphics adapter I2C/DDC channel drivers
-#
-CONFIG_I2C_VOODOO3=m
-
-#
-# Other I2C/SMBus bus drivers
-#
-CONFIG_I2C_PCA_ISA=m
-CONFIG_I2C_PCA_PLATFORM=m
-CONFIG_I2C_STUB=m
-CONFIG_SCx200_I2C=m
-CONFIG_SCx200_I2C_SCL=12
-CONFIG_SCx200_I2C_SDA=13
-CONFIG_SCx200_ACB=m
-
-#
-# Miscellaneous I2C Chip support
-#
-CONFIG_DS1682=m
-CONFIG_SENSORS_TSL2550=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
-CONFIG_SPI=y
-CONFIG_SPI_MASTER=y
-
-#
-# SPI Master Controller Drivers
-#
-CONFIG_SPI_BITBANG=m
-CONFIG_SPI_BUTTERFLY=m
-CONFIG_SPI_GPIO=m
-CONFIG_SPI_LM70_LLP=m
-
-#
-# SPI Protocol Masters
-#
-CONFIG_SPI_SPIDEV=m
-CONFIG_SPI_TLE62X0=m
-
-#
-# PPS support
-#
-# CONFIG_PPS is not set
-CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
-CONFIG_GPIOLIB=y
-# CONFIG_GPIO_SYSFS is not set
-
-#
-# Memory mapped GPIO expanders:
-#
-
-#
-# I2C GPIO expanders:
-#
-CONFIG_GPIO_MAX732X=m
-CONFIG_GPIO_PCA953X=m
-CONFIG_GPIO_PCF857X=m
-
-#
-# PCI GPIO expanders:
-#
-# CONFIG_GPIO_LANGWELL is not set
-
-#
-# SPI GPIO expanders:
-#
-CONFIG_GPIO_MAX7301=m
-CONFIG_GPIO_MCP23S08=m
-# CONFIG_GPIO_MC33880 is not set
-
-#
-# AC97 GPIO expanders:
-#
-# CONFIG_GPIO_UCB1400 is not set
-CONFIG_W1=m
-CONFIG_W1_CON=y
-
-#
-# 1-wire Bus Masters
-#
-CONFIG_W1_MASTER_MATROX=m
-CONFIG_W1_MASTER_DS2490=m
-CONFIG_W1_MASTER_DS2482=m
-CONFIG_W1_MASTER_GPIO=m
-
-#
-# 1-wire Slaves
-#
-CONFIG_W1_SLAVE_THERM=m
-CONFIG_W1_SLAVE_SMEM=m
-CONFIG_W1_SLAVE_DS2431=m
-CONFIG_W1_SLAVE_DS2433=m
-# CONFIG_W1_SLAVE_DS2433_CRC is not set
-CONFIG_W1_SLAVE_DS2760=m
-CONFIG_W1_SLAVE_BQ27000=m
-CONFIG_POWER_SUPPLY=y
-# CONFIG_POWER_SUPPLY_DEBUG is not set
-CONFIG_PDA_POWER=m
-CONFIG_WM8350_POWER=m
-CONFIG_BATTERY_DS2760=m
-CONFIG_BATTERY_DS2782=m
-CONFIG_BATTERY_BQ27x00=m
-CONFIG_BATTERY_MAX17040=m
-CONFIG_CHARGER_PCF50633=m
-CONFIG_HWMON=m
-CONFIG_HWMON_VID=m
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Native drivers
-#
-CONFIG_SENSORS_ABITUGURU=m
-CONFIG_SENSORS_ABITUGURU3=m
-CONFIG_SENSORS_AD7414=m
-CONFIG_SENSORS_AD7418=m
-CONFIG_SENSORS_ADCXX=m
-CONFIG_SENSORS_ADM1021=m
-CONFIG_SENSORS_ADM1025=m
-CONFIG_SENSORS_ADM1026=m
-CONFIG_SENSORS_ADM1029=m
-CONFIG_SENSORS_ADM1031=m
-CONFIG_SENSORS_ADM9240=m
-CONFIG_SENSORS_ADT7462=m
-CONFIG_SENSORS_ADT7470=m
-CONFIG_SENSORS_ADT7473=m
-CONFIG_SENSORS_ADT7475=m
-CONFIG_SENSORS_K8TEMP=m
-CONFIG_SENSORS_ASB100=m
-CONFIG_SENSORS_ATXP1=m
-CONFIG_SENSORS_DS1621=m
-CONFIG_SENSORS_I5K_AMB=m
-CONFIG_SENSORS_F71805F=m
-CONFIG_SENSORS_F71882FG=m
-CONFIG_SENSORS_F75375S=m
-CONFIG_SENSORS_FSCHMD=m
-CONFIG_SENSORS_G760A=m
-CONFIG_SENSORS_GL518SM=m
-CONFIG_SENSORS_GL520SM=m
-CONFIG_SENSORS_CORETEMP=m
-CONFIG_SENSORS_IBMAEM=m
-CONFIG_SENSORS_IBMPEX=m
-CONFIG_SENSORS_IT87=m
-CONFIG_SENSORS_LM63=m
-CONFIG_SENSORS_LM70=m
-CONFIG_SENSORS_LM75=m
-CONFIG_SENSORS_LM77=m
-CONFIG_SENSORS_LM78=m
-CONFIG_SENSORS_LM80=m
-CONFIG_SENSORS_LM83=m
-CONFIG_SENSORS_LM85=m
-CONFIG_SENSORS_LM87=m
-CONFIG_SENSORS_LM90=m
-CONFIG_SENSORS_LM92=m
-CONFIG_SENSORS_LM93=m
-CONFIG_SENSORS_LTC4215=m
-CONFIG_SENSORS_LTC4245=m
-CONFIG_SENSORS_LM95241=m
-CONFIG_SENSORS_MAX1111=m
-CONFIG_SENSORS_MAX1619=m
-CONFIG_SENSORS_MAX6650=m
-CONFIG_SENSORS_PC87360=m
-CONFIG_SENSORS_PC87427=m
-CONFIG_SENSORS_PCF8591=m
-CONFIG_SENSORS_SHT15=m
-CONFIG_SENSORS_SIS5595=m
-CONFIG_SENSORS_DME1737=m
-CONFIG_SENSORS_SMSC47M1=m
-CONFIG_SENSORS_SMSC47M192=m
-CONFIG_SENSORS_SMSC47B397=m
-CONFIG_SENSORS_ADS7828=m
-CONFIG_SENSORS_THMC50=m
-CONFIG_SENSORS_TMP401=m
-CONFIG_SENSORS_TMP421=m
-CONFIG_SENSORS_VIA686A=m
-CONFIG_SENSORS_VT1211=m
-CONFIG_SENSORS_VT8231=m
-CONFIG_SENSORS_W83781D=m
-CONFIG_SENSORS_W83791D=m
-CONFIG_SENSORS_W83792D=m
-CONFIG_SENSORS_W83793=m
-CONFIG_SENSORS_W83L785TS=m
-CONFIG_SENSORS_W83L786NG=m
-CONFIG_SENSORS_W83627HF=m
-CONFIG_SENSORS_W83627EHF=m
-# CONFIG_SENSORS_WM8350 is not set
-CONFIG_SENSORS_HDAPS=m
-CONFIG_SENSORS_APPLESMC=m
-
-#
-# ACPI drivers
-#
-CONFIG_SENSORS_ATK0110=m
-CONFIG_SENSORS_LIS3LV02D=m
-CONFIG_THERMAL=y
-CONFIG_WATCHDOG=y
-# CONFIG_WATCHDOG_NOWAYOUT is not set
-
-#
-# Watchdog Device Drivers
-#
-CONFIG_SOFT_WATCHDOG=m
-CONFIG_WM8350_WATCHDOG=m
-CONFIG_ACQUIRE_WDT=m
-CONFIG_ADVANTECH_WDT=m
-CONFIG_ALIM1535_WDT=m
-CONFIG_ALIM7101_WDT=m
-CONFIG_SC520_WDT=m
-# CONFIG_SBC_FITPC2_WATCHDOG is not set
-CONFIG_EUROTECH_WDT=m
-CONFIG_IB700_WDT=m
-CONFIG_IBMASR=m
-CONFIG_WAFER_WDT=m
-CONFIG_I6300ESB_WDT=m
-CONFIG_ITCO_WDT=m
-CONFIG_ITCO_VENDOR_SUPPORT=y
-CONFIG_IT8712F_WDT=m
-CONFIG_IT87_WDT=m
-CONFIG_HP_WATCHDOG=m
-CONFIG_SC1200_WDT=m
-CONFIG_SCx200_WDT=m
-CONFIG_PC87413_WDT=m
-CONFIG_60XX_WDT=m
-CONFIG_SBC8360_WDT=m
-CONFIG_SBC7240_WDT=m
-CONFIG_CPU5_WDT=m
-CONFIG_SMSC_SCH311X_WDT=m
-CONFIG_SMSC37B787_WDT=m
-CONFIG_W83627HF_WDT=m
-CONFIG_W83697HF_WDT=m
-CONFIG_W83697UG_WDT=m
-CONFIG_W83877F_WDT=m
-CONFIG_W83977F_WDT=m
-CONFIG_MACHZ_WDT=m
-CONFIG_SBC_EPX_C3_WATCHDOG=m
-
-#
-# ISA-based Watchdog Cards
-#
-CONFIG_PCWATCHDOG=m
-CONFIG_MIXCOMWD=m
-CONFIG_WDT=m
-
-#
-# PCI-based Watchdog Cards
-#
-CONFIG_PCIPCWATCHDOG=m
-CONFIG_WDTPCI=m
-
-#
-# USB-based Watchdog Cards
-#
-CONFIG_USBPCWATCHDOG=m
-CONFIG_SSB_POSSIBLE=y
-
-#
-# Sonics Silicon Backplane
-#
-CONFIG_SSB=m
-CONFIG_SSB_SPROM=y
-CONFIG_SSB_BLOCKIO=y
-CONFIG_SSB_PCIHOST_POSSIBLE=y
-CONFIG_SSB_PCIHOST=y
-CONFIG_SSB_B43_PCI_BRIDGE=y
-CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
-CONFIG_SSB_PCMCIAHOST=y
-CONFIG_SSB_SDIOHOST_POSSIBLE=y
-CONFIG_SSB_SDIOHOST=y
-# CONFIG_SSB_SILENT is not set
-# CONFIG_SSB_DEBUG is not set
-CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
-CONFIG_SSB_DRIVER_PCICORE=y
-
-#
-# Multifunction device drivers
-#
-CONFIG_MFD_CORE=m
-CONFIG_MFD_SM501=m
-# CONFIG_MFD_SM501_GPIO is not set
-CONFIG_HTC_PASIC3=m
-CONFIG_UCB1400_CORE=m
-CONFIG_TPS65010=m
-# CONFIG_MFD_TMIO is not set
-CONFIG_MFD_WM8400=m
-# CONFIG_MFD_WM831X is not set
-CONFIG_MFD_WM8350=m
-CONFIG_MFD_WM8350_I2C=m
-CONFIG_MFD_PCF50633=m
-# CONFIG_MFD_MC13783 is not set
-CONFIG_PCF50633_ADC=m
-CONFIG_PCF50633_GPIO=m
-CONFIG_AB3100_CORE=m
-CONFIG_AB3100_OTP=m
-# CONFIG_EZX_PCAP is not set
-CONFIG_REGULATOR=y
-# CONFIG_REGULATOR_DEBUG is not set
-# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
-CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
-CONFIG_REGULATOR_USERSPACE_CONSUMER=m
-CONFIG_REGULATOR_BQ24022=m
-CONFIG_REGULATOR_MAX1586=m
-CONFIG_REGULATOR_WM8350=m
-CONFIG_REGULATOR_WM8400=m
-CONFIG_REGULATOR_PCF50633=m
-CONFIG_REGULATOR_LP3971=m
-CONFIG_REGULATOR_AB3100=m
-# CONFIG_REGULATOR_TPS65023 is not set
-# CONFIG_REGULATOR_TPS6507X is not set
-CONFIG_MEDIA_SUPPORT=m
-
-#
-# Multimedia core support
-#
-CONFIG_VIDEO_DEV=m
-CONFIG_VIDEO_V4L2_COMMON=m
-# CONFIG_VIDEO_ALLOW_V4L1 is not set
-CONFIG_VIDEO_V4L1_COMPAT=y
-CONFIG_DVB_CORE=m
-CONFIG_VIDEO_MEDIA=m
-
-#
-# Multimedia drivers
-#
-CONFIG_VIDEO_SAA7146=m
-CONFIG_VIDEO_SAA7146_VV=m
-# CONFIG_MEDIA_ATTACH is not set
-CONFIG_MEDIA_TUNER=m
-# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
-CONFIG_MEDIA_TUNER_SIMPLE=m
-CONFIG_MEDIA_TUNER_TDA8290=m
-CONFIG_MEDIA_TUNER_TDA827X=m
-CONFIG_MEDIA_TUNER_TDA18271=m
-CONFIG_MEDIA_TUNER_TDA9887=m
-CONFIG_MEDIA_TUNER_TEA5761=m
-CONFIG_MEDIA_TUNER_TEA5767=m
-CONFIG_MEDIA_TUNER_MT20XX=m
-CONFIG_MEDIA_TUNER_MT2060=m
-CONFIG_MEDIA_TUNER_MT2266=m
-CONFIG_MEDIA_TUNER_MT2131=m
-CONFIG_MEDIA_TUNER_QT1010=m
-CONFIG_MEDIA_TUNER_XC2028=m
-CONFIG_MEDIA_TUNER_XC5000=m
-CONFIG_MEDIA_TUNER_MXL5005S=m
-CONFIG_MEDIA_TUNER_MXL5007T=m
-CONFIG_MEDIA_TUNER_MC44S803=m
-CONFIG_VIDEO_V4L2=m
-CONFIG_VIDEOBUF_GEN=m
-CONFIG_VIDEOBUF_DMA_SG=m
-CONFIG_VIDEOBUF_VMALLOC=m
-CONFIG_VIDEOBUF_DVB=m
-CONFIG_VIDEO_BTCX=m
-CONFIG_VIDEO_IR=m
-CONFIG_VIDEO_TVEEPROM=m
-CONFIG_VIDEO_TUNER=m
-CONFIG_VIDEO_CAPTURE_DRIVERS=y
-# CONFIG_VIDEO_ADV_DEBUG is not set
-# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
-# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
-CONFIG_VIDEO_IR_I2C=m
-
-#
-# Encoders/decoders and other helper chips
-#
-
-#
-# Audio decoders
-#
-CONFIG_VIDEO_TVAUDIO=m
-CONFIG_VIDEO_TDA7432=m
-CONFIG_VIDEO_TDA9840=m
-CONFIG_VIDEO_TDA9875=m
-CONFIG_VIDEO_TEA6415C=m
-CONFIG_VIDEO_TEA6420=m
-CONFIG_VIDEO_MSP3400=m
-CONFIG_VIDEO_CS5345=m
-CONFIG_VIDEO_CS53L32A=m
-CONFIG_VIDEO_M52790=m
-CONFIG_VIDEO_TLV320AIC23B=m
-CONFIG_VIDEO_WM8775=m
-CONFIG_VIDEO_WM8739=m
-CONFIG_VIDEO_VP27SMPX=m
-
-#
-# RDS decoders
-#
-CONFIG_VIDEO_SAA6588=m
-
-#
-# Video decoders
-#
-# CONFIG_VIDEO_ADV7180 is not set
-CONFIG_VIDEO_BT819=m
-CONFIG_VIDEO_BT856=m
-CONFIG_VIDEO_BT866=m
-CONFIG_VIDEO_KS0127=m
-CONFIG_VIDEO_OV7670=m
-CONFIG_VIDEO_MT9V011=m
-CONFIG_VIDEO_TCM825X=m
-CONFIG_VIDEO_SAA7110=m
-CONFIG_VIDEO_SAA711X=m
-CONFIG_VIDEO_SAA717X=m
-CONFIG_VIDEO_TVP514X=m
-CONFIG_VIDEO_TVP5150=m
-CONFIG_VIDEO_VPX3220=m
-
-#
-# Video and audio decoders
-#
-CONFIG_VIDEO_CX25840=m
-
-#
-# MPEG video encoders
-#
-CONFIG_VIDEO_CX2341X=m
-
-#
-# Video encoders
-#
-CONFIG_VIDEO_SAA7127=m
-CONFIG_VIDEO_SAA7185=m
-CONFIG_VIDEO_ADV7170=m
-CONFIG_VIDEO_ADV7175=m
-CONFIG_VIDEO_THS7303=m
-CONFIG_VIDEO_ADV7343=m
-
-#
-# Video improvement chips
-#
-CONFIG_VIDEO_UPD64031A=m
-CONFIG_VIDEO_UPD64083=m
-CONFIG_VIDEO_VIVI=m
-CONFIG_VIDEO_BT848=m
-CONFIG_VIDEO_BT848_DVB=y
-CONFIG_VIDEO_SAA5246A=m
-CONFIG_VIDEO_SAA5249=m
-CONFIG_VIDEO_ZORAN=m
-CONFIG_VIDEO_ZORAN_DC30=m
-CONFIG_VIDEO_ZORAN_ZR36060=m
-CONFIG_VIDEO_ZORAN_BUZ=m
-CONFIG_VIDEO_ZORAN_DC10=m
-CONFIG_VIDEO_ZORAN_LML33=m
-CONFIG_VIDEO_ZORAN_LML33R10=m
-CONFIG_VIDEO_ZORAN_AVS6EYES=m
-CONFIG_VIDEO_SAA7134=m
-CONFIG_VIDEO_SAA7134_ALSA=m
-CONFIG_VIDEO_SAA7134_DVB=m
-CONFIG_VIDEO_HEXIUM_ORION=m
-CONFIG_VIDEO_HEXIUM_GEMINI=m
-CONFIG_VIDEO_CX88=m
-CONFIG_VIDEO_CX88_ALSA=m
-CONFIG_VIDEO_CX88_BLACKBIRD=m
-CONFIG_VIDEO_CX88_DVB=m
-CONFIG_VIDEO_CX88_MPEG=m
-CONFIG_VIDEO_CX88_VP3054=m
-CONFIG_VIDEO_CX23885=m
-CONFIG_VIDEO_AU0828=m
-CONFIG_VIDEO_IVTV=m
-CONFIG_VIDEO_FB_IVTV=m
-CONFIG_VIDEO_CX18=m
-CONFIG_VIDEO_SAA7164=m
-CONFIG_VIDEO_CAFE_CCIC=m
-CONFIG_SOC_CAMERA=m
-CONFIG_SOC_CAMERA_MT9M001=m
-CONFIG_SOC_CAMERA_MT9M111=m
-CONFIG_SOC_CAMERA_MT9T031=m
-CONFIG_SOC_CAMERA_MT9V022=m
-CONFIG_SOC_CAMERA_TW9910=m
-CONFIG_SOC_CAMERA_PLATFORM=m
-CONFIG_SOC_CAMERA_OV772X=m
-CONFIG_V4L_USB_DRIVERS=y
-CONFIG_USB_VIDEO_CLASS=m
-CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
-CONFIG_USB_GSPCA=m
-CONFIG_USB_M5602=m
-CONFIG_USB_STV06XX=m
-CONFIG_USB_GL860=m
-CONFIG_USB_GSPCA_CONEX=m
-CONFIG_USB_GSPCA_ETOMS=m
-CONFIG_USB_GSPCA_FINEPIX=m
-CONFIG_USB_GSPCA_JEILINJ=m
-CONFIG_USB_GSPCA_MARS=m
-CONFIG_USB_GSPCA_MR97310A=m
-CONFIG_USB_GSPCA_OV519=m
-CONFIG_USB_GSPCA_OV534=m
-CONFIG_USB_GSPCA_PAC207=m
-CONFIG_USB_GSPCA_PAC7311=m
-CONFIG_USB_GSPCA_SN9C20X=m
-CONFIG_USB_GSPCA_SN9C20X_EVDEV=y
-CONFIG_USB_GSPCA_SONIXB=m
-CONFIG_USB_GSPCA_SONIXJ=m
-CONFIG_USB_GSPCA_SPCA500=m
-CONFIG_USB_GSPCA_SPCA501=m
-CONFIG_USB_GSPCA_SPCA505=m
-CONFIG_USB_GSPCA_SPCA506=m
-CONFIG_USB_GSPCA_SPCA508=m
-CONFIG_USB_GSPCA_SPCA561=m
-CONFIG_USB_GSPCA_SQ905=m
-CONFIG_USB_GSPCA_SQ905C=m
-CONFIG_USB_GSPCA_STK014=m
-CONFIG_USB_GSPCA_SUNPLUS=m
-CONFIG_USB_GSPCA_T613=m
-CONFIG_USB_GSPCA_TV8532=m
-CONFIG_USB_GSPCA_VC032X=m
-CONFIG_USB_GSPCA_ZC3XX=m
-CONFIG_VIDEO_PVRUSB2=m
-CONFIG_VIDEO_PVRUSB2_SYSFS=y
-CONFIG_VIDEO_PVRUSB2_DVB=y
-# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
-CONFIG_VIDEO_HDPVR=m
-CONFIG_VIDEO_EM28XX=m
-CONFIG_VIDEO_EM28XX_ALSA=m
-CONFIG_VIDEO_EM28XX_DVB=m
-CONFIG_VIDEO_CX231XX=m
-CONFIG_VIDEO_CX231XX_ALSA=m
-CONFIG_VIDEO_CX231XX_DVB=m
-CONFIG_VIDEO_USBVISION=m
-CONFIG_USB_ET61X251=m
-CONFIG_USB_SN9C102=m
-CONFIG_USB_ZC0301=m
-CONFIG_USB_PWC_INPUT_EVDEV=y
-CONFIG_USB_ZR364XX=m
-CONFIG_USB_STKWEBCAM=m
-CONFIG_USB_S2255=m
-CONFIG_RADIO_ADAPTERS=y
-CONFIG_RADIO_CADET=m
-CONFIG_RADIO_RTRACK=m
-CONFIG_RADIO_RTRACK2=m
-CONFIG_RADIO_AZTECH=m
-CONFIG_RADIO_GEMTEK=m
-CONFIG_RADIO_GEMTEK_PCI=m
-CONFIG_RADIO_MAXIRADIO=m
-CONFIG_RADIO_MAESTRO=m
-CONFIG_RADIO_SF16FMI=m
-CONFIG_RADIO_SF16FMR2=m
-CONFIG_RADIO_TERRATEC=m
-CONFIG_RADIO_TRUST=m
-CONFIG_RADIO_TYPHOON=m
-CONFIG_RADIO_ZOLTRIX=m
-# CONFIG_I2C_SI4713 is not set
-# CONFIG_RADIO_SI4713 is not set
-CONFIG_USB_DSBR=m
-# CONFIG_RADIO_SI470X is not set
-CONFIG_USB_MR800=m
-CONFIG_RADIO_TEA5764=m
-CONFIG_DVB_MAX_ADAPTERS=8
-# CONFIG_DVB_DYNAMIC_MINORS is not set
-CONFIG_DVB_CAPTURE_DRIVERS=y
-
-#
-# Supported SAA7146 based PCI Adapters
-#
-CONFIG_TTPCI_EEPROM=m
-CONFIG_DVB_AV7110=m
-CONFIG_DVB_AV7110_OSD=y
-CONFIG_DVB_BUDGET_CORE=m
-CONFIG_DVB_BUDGET=m
-CONFIG_DVB_BUDGET_CI=m
-CONFIG_DVB_BUDGET_AV=m
-CONFIG_DVB_BUDGET_PATCH=m
-
-#
-# Supported USB Adapters
-#
-CONFIG_DVB_USB=m
-# CONFIG_DVB_USB_DEBUG is not set
-CONFIG_DVB_USB_A800=m
-CONFIG_DVB_USB_DIBUSB_MB=m
-# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set
-CONFIG_DVB_USB_DIBUSB_MC=m
-CONFIG_DVB_USB_DIB0700=m
-CONFIG_DVB_USB_UMT_010=m
-CONFIG_DVB_USB_CXUSB=m
-CONFIG_DVB_USB_M920X=m
-CONFIG_DVB_USB_GL861=m
-CONFIG_DVB_USB_AU6610=m
-CONFIG_DVB_USB_DIGITV=m
-CONFIG_DVB_USB_VP7045=m
-CONFIG_DVB_USB_VP702X=m
-CONFIG_DVB_USB_GP8PSK=m
-CONFIG_DVB_USB_NOVA_T_USB2=m
-CONFIG_DVB_USB_TTUSB2=m
-CONFIG_DVB_USB_DTT200U=m
-CONFIG_DVB_USB_OPERA1=m
-CONFIG_DVB_USB_AF9005=m
-CONFIG_DVB_USB_AF9005_REMOTE=m
-CONFIG_DVB_USB_DW2102=m
-CONFIG_DVB_USB_CINERGY_T2=m
-CONFIG_DVB_USB_ANYSEE=m
-CONFIG_DVB_USB_DTV5100=m
-CONFIG_DVB_USB_AF9015=m
-CONFIG_DVB_USB_CE6230=m
-# CONFIG_DVB_USB_FRIIO is not set
-CONFIG_DVB_TTUSB_BUDGET=m
-CONFIG_DVB_TTUSB_DEC=m
-CONFIG_SMS_SIANO_MDTV=m
-
-#
-# Siano module components
-#
-CONFIG_SMS_USB_DRV=m
-CONFIG_SMS_SDIO_DRV=m
-
-#
-# Supported FlexCopII (B2C2) Adapters
-#
-CONFIG_DVB_B2C2_FLEXCOP=m
-CONFIG_DVB_B2C2_FLEXCOP_PCI=m
-CONFIG_DVB_B2C2_FLEXCOP_USB=m
-# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
-
-#
-# Supported BT878 Adapters
-#
-CONFIG_DVB_BT8XX=m
-
-#
-# Supported Pluto2 Adapters
-#
-CONFIG_DVB_PLUTO2=m
-
-#
-# Supported SDMC DM1105 Adapters
-#
-CONFIG_DVB_DM1105=m
-
-#
-# Supported FireWire (IEEE 1394) Adapters
-#
-CONFIG_DVB_FIREDTV=m
-CONFIG_DVB_FIREDTV_IEEE1394=y
-CONFIG_DVB_FIREDTV_INPUT=y
-
-#
-# Supported Earthsoft PT1 Adapters
-#
-# CONFIG_DVB_PT1 is not set
-
-#
-# Supported DVB Frontends
-#
-# CONFIG_DVB_FE_CUSTOMISE is not set
-CONFIG_DVB_STB0899=m
-CONFIG_DVB_STB6100=m
-CONFIG_DVB_CX24110=m
-CONFIG_DVB_CX24123=m
-CONFIG_DVB_MT312=m
-CONFIG_DVB_ZL10036=m
-CONFIG_DVB_ZL10039=m
-CONFIG_DVB_S5H1420=m
-CONFIG_DVB_STV0288=m
-CONFIG_DVB_STB6000=m
-CONFIG_DVB_STV0299=m
-CONFIG_DVB_STV6110=m
-CONFIG_DVB_STV0900=m
-CONFIG_DVB_TDA8083=m
-CONFIG_DVB_TDA10086=m
-CONFIG_DVB_TDA8261=m
-CONFIG_DVB_VES1X93=m
-CONFIG_DVB_TUNER_ITD1000=m
-CONFIG_DVB_TUNER_CX24113=m
-CONFIG_DVB_TDA826X=m
-CONFIG_DVB_TUA6100=m
-CONFIG_DVB_CX24116=m
-CONFIG_DVB_SI21XX=m
-CONFIG_DVB_SP8870=m
-CONFIG_DVB_SP887X=m
-CONFIG_DVB_CX22700=m
-CONFIG_DVB_CX22702=m
-CONFIG_DVB_L64781=m
-CONFIG_DVB_TDA1004X=m
-CONFIG_DVB_NXT6000=m
-CONFIG_DVB_MT352=m
-CONFIG_DVB_ZL10353=m
-CONFIG_DVB_DIB3000MB=m
-CONFIG_DVB_DIB3000MC=m
-CONFIG_DVB_DIB7000M=m
-CONFIG_DVB_DIB7000P=m
-CONFIG_DVB_TDA10048=m
-CONFIG_DVB_AF9013=m
-CONFIG_DVB_VES1820=m
-CONFIG_DVB_TDA10021=m
-CONFIG_DVB_TDA10023=m
-CONFIG_DVB_STV0297=m
-CONFIG_DVB_NXT200X=m
-CONFIG_DVB_OR51211=m
-CONFIG_DVB_OR51132=m
-CONFIG_DVB_BCM3510=m
-CONFIG_DVB_LGDT330X=m
-CONFIG_DVB_LGDT3305=m
-CONFIG_DVB_S5H1409=m
-CONFIG_DVB_AU8522=m
-CONFIG_DVB_S5H1411=m
-CONFIG_DVB_DIB8000=m
-CONFIG_DVB_PLL=m
-CONFIG_DVB_TUNER_DIB0070=m
-CONFIG_DVB_LNBP21=m
-CONFIG_DVB_ISL6405=m
-CONFIG_DVB_ISL6421=m
-CONFIG_DVB_LGS8GL5=m
-CONFIG_DAB=y
-CONFIG_USB_DABUSB=m
-
-#
-# Graphics support
-#
-CONFIG_AGP=m
-CONFIG_AGP_ALI=m
-CONFIG_AGP_ATI=m
-CONFIG_AGP_AMD=m
-CONFIG_AGP_AMD64=m
-CONFIG_AGP_INTEL=m
-CONFIG_AGP_NVIDIA=m
-CONFIG_AGP_SIS=m
-CONFIG_AGP_SWORKS=m
-CONFIG_AGP_VIA=m
-CONFIG_AGP_EFFICEON=m
-# CONFIG_VGA_ARB is not set
-CONFIG_DRM=m
-CONFIG_DRM_KMS_HELPER=m
-CONFIG_DRM_TTM=m
-CONFIG_DRM_TDFX=m
-CONFIG_DRM_R128=m
-CONFIG_DRM_RADEON=m
-CONFIG_DRM_I810=m
-CONFIG_DRM_I830=m
-CONFIG_DRM_I915=m
-# CONFIG_DRM_I915_KMS is not set
-CONFIG_DRM_MGA=m
-CONFIG_DRM_SIS=m
-CONFIG_DRM_VIA=m
-CONFIG_DRM_SAVAGE=m
-CONFIG_VGASTATE=m
-CONFIG_VIDEO_OUTPUT_CONTROL=m
-CONFIG_FB=m
-# CONFIG_FIRMWARE_EDID is not set
-CONFIG_FB_DDC=m
-# CONFIG_FB_BOOT_VESA_SUPPORT is not set
-CONFIG_FB_CFB_FILLRECT=m
-CONFIG_FB_CFB_COPYAREA=m
-CONFIG_FB_CFB_IMAGEBLIT=m
-# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
-CONFIG_FB_SYS_FILLRECT=m
-CONFIG_FB_SYS_COPYAREA=m
-CONFIG_FB_SYS_IMAGEBLIT=m
-# CONFIG_FB_FOREIGN_ENDIAN is not set
-CONFIG_FB_SYS_FOPS=m
-CONFIG_FB_DEFERRED_IO=y
-CONFIG_FB_HECUBA=m
-CONFIG_FB_SVGALIB=m
-# CONFIG_FB_MACMODES is not set
-CONFIG_FB_BACKLIGHT=y
-CONFIG_FB_MODE_HELPERS=y
-CONFIG_FB_TILEBLITTING=y
-
-#
-# Frame buffer hardware drivers
-#
-CONFIG_FB_CIRRUS=m
-CONFIG_FB_PM2=m
-CONFIG_FB_PM2_FIFO_DISCONNECT=y
-CONFIG_FB_CYBER2000=m
-CONFIG_FB_ARC=m
-CONFIG_FB_VGA16=m
-CONFIG_FB_UVESA=m
-CONFIG_FB_N411=m
-CONFIG_FB_HGA=m
-# CONFIG_FB_HGA_ACCEL is not set
-CONFIG_FB_S1D13XXX=m
-CONFIG_FB_NVIDIA=m
-CONFIG_FB_NVIDIA_I2C=y
-# CONFIG_FB_NVIDIA_DEBUG is not set
-CONFIG_FB_NVIDIA_BACKLIGHT=y
-CONFIG_FB_RIVA=m
-CONFIG_FB_RIVA_I2C=y
-# CONFIG_FB_RIVA_DEBUG is not set
-CONFIG_FB_RIVA_BACKLIGHT=y
-CONFIG_FB_I810=m
-CONFIG_FB_I810_GTF=y
-CONFIG_FB_I810_I2C=y
-CONFIG_FB_LE80578=m
-CONFIG_FB_CARILLO_RANCH=m
-CONFIG_FB_INTEL=m
-# CONFIG_FB_INTEL_DEBUG is not set
-CONFIG_FB_INTEL_I2C=y
-CONFIG_FB_MATROX=m
-CONFIG_FB_MATROX_MILLENIUM=y
-CONFIG_FB_MATROX_MYSTIQUE=y
-CONFIG_FB_MATROX_G=y
-CONFIG_FB_MATROX_I2C=m
-CONFIG_FB_MATROX_MAVEN=m
-CONFIG_FB_RADEON=m
-CONFIG_FB_RADEON_I2C=y
-CONFIG_FB_RADEON_BACKLIGHT=y
-# CONFIG_FB_RADEON_DEBUG is not set
-CONFIG_FB_ATY128=m
-CONFIG_FB_ATY128_BACKLIGHT=y
-CONFIG_FB_ATY=m
-CONFIG_FB_ATY_CT=y
-CONFIG_FB_ATY_GENERIC_LCD=y
-CONFIG_FB_ATY_GX=y
-CONFIG_FB_ATY_BACKLIGHT=y
-CONFIG_FB_S3=m
-CONFIG_FB_SAVAGE=m
-CONFIG_FB_SAVAGE_I2C=y
-CONFIG_FB_SAVAGE_ACCEL=y
-CONFIG_FB_SIS=m
-CONFIG_FB_SIS_300=y
-CONFIG_FB_SIS_315=y
-CONFIG_FB_VIA=m
-CONFIG_FB_NEOMAGIC=m
-CONFIG_FB_KYRO=m
-CONFIG_FB_3DFX=m
-CONFIG_FB_3DFX_ACCEL=y
-CONFIG_FB_3DFX_I2C=y
-CONFIG_FB_VOODOO1=m
-CONFIG_FB_VT8623=m
-CONFIG_FB_TRIDENT=m
-CONFIG_FB_ARK=m
-CONFIG_FB_PM3=m
-CONFIG_FB_CARMINE=m
-CONFIG_FB_CARMINE_DRAM_EVAL=y
-# CONFIG_CARMINE_DRAM_CUSTOM is not set
-CONFIG_FB_GEODE=y
-CONFIG_FB_GEODE_LX=m
-CONFIG_FB_GEODE_GX=m
-CONFIG_FB_GEODE_GX1=m
-CONFIG_FB_TMIO=m
-CONFIG_FB_TMIO_ACCELL=y
-CONFIG_FB_SM501=m
-# CONFIG_FB_VIRTUAL is not set
-CONFIG_FB_METRONOME=m
-CONFIG_FB_MB862XX=m
-# CONFIG_FB_MB862XX_PCI_GDC is not set
-CONFIG_FB_BROADSHEET=m
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-CONFIG_LCD_CLASS_DEVICE=m
-CONFIG_LCD_LMS283GF05=m
-CONFIG_LCD_LTV350QV=m
-CONFIG_LCD_ILI9320=m
-CONFIG_LCD_TDO24M=m
-CONFIG_LCD_VGG2432A4=m
-CONFIG_LCD_PLATFORM=m
-CONFIG_BACKLIGHT_CLASS_DEVICE=m
-CONFIG_BACKLIGHT_GENERIC=m
-CONFIG_BACKLIGHT_PROGEAR=m
-CONFIG_BACKLIGHT_CARILLO_RANCH=m
-CONFIG_BACKLIGHT_MBP_NVIDIA=m
-CONFIG_BACKLIGHT_SAHARA=m
-
-#
-# Display device support
-#
-CONFIG_DISPLAY_SUPPORT=m
-
-#
-# Display hardware drivers
-#
-
-#
-# Console display driver support
-#
-CONFIG_VGA_CONSOLE=y
-# CONFIG_VGACON_SOFT_SCROLLBACK is not set
-CONFIG_MDA_CONSOLE=m
-CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=m
-CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
-CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
-# CONFIG_FONTS is not set
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
-# CONFIG_LOGO is not set
-CONFIG_SOUND=m
-CONFIG_SOUND_OSS_CORE=y
-CONFIG_SOUND_OSS_CORE_PRECLAIM=y
-CONFIG_SND=m
-CONFIG_SND_TIMER=m
-CONFIG_SND_PCM=m
-CONFIG_SND_HWDEP=m
-CONFIG_SND_RAWMIDI=m
-CONFIG_SND_JACK=y
-CONFIG_SND_SEQUENCER=m
-CONFIG_SND_SEQ_DUMMY=m
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-CONFIG_SND_PCM_OSS_PLUGINS=y
-CONFIG_SND_SEQUENCER_OSS=y
-CONFIG_SND_HRTIMER=m
-CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
-CONFIG_SND_DYNAMIC_MINORS=y
-# CONFIG_SND_SUPPORT_OLD_API is not set
-# CONFIG_SND_VERBOSE_PROCFS is not set
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-CONFIG_SND_VMASTER=y
-CONFIG_SND_DMA_SGBUF=y
-CONFIG_SND_RAWMIDI_SEQ=m
-CONFIG_SND_OPL3_LIB_SEQ=m
-CONFIG_SND_OPL4_LIB_SEQ=m
-CONFIG_SND_SBAWE_SEQ=m
-CONFIG_SND_EMU10K1_SEQ=m
-CONFIG_SND_MPU401_UART=m
-CONFIG_SND_OPL3_LIB=m
-CONFIG_SND_OPL4_LIB=m
-CONFIG_SND_VX_LIB=m
-CONFIG_SND_AC97_CODEC=m
-CONFIG_SND_DRIVERS=y
-CONFIG_SND_PCSP=m
-CONFIG_SND_DUMMY=m
-CONFIG_SND_VIRMIDI=m
-CONFIG_SND_MTPAV=m
-CONFIG_SND_MTS64=m
-CONFIG_SND_SERIAL_U16550=m
-CONFIG_SND_MPU401=m
-CONFIG_SND_PORTMAN2X4=m
-CONFIG_SND_AC97_POWER_SAVE=y
-CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
-CONFIG_SND_WSS_LIB=m
-CONFIG_SND_SB_COMMON=m
-CONFIG_SND_SB8_DSP=m
-CONFIG_SND_SB16_DSP=m
-CONFIG_SND_ISA=y
-CONFIG_SND_ADLIB=m
-CONFIG_SND_AD1816A=m
-CONFIG_SND_AD1848=m
-CONFIG_SND_ALS100=m
-CONFIG_SND_AZT2320=m
-CONFIG_SND_CMI8330=m
-CONFIG_SND_CS4231=m
-CONFIG_SND_CS4236=m
-CONFIG_SND_DT019X=m
-CONFIG_SND_ES968=m
-CONFIG_SND_ES1688=m
-CONFIG_SND_ES18XX=m
-CONFIG_SND_SC6000=m
-CONFIG_SND_GUSCLASSIC=m
-CONFIG_SND_GUSEXTREME=m
-CONFIG_SND_GUSMAX=m
-CONFIG_SND_INTERWAVE=m
-CONFIG_SND_INTERWAVE_STB=m
-CONFIG_SND_OPL3SA2=m
-CONFIG_SND_OPTI92X_AD1848=m
-CONFIG_SND_OPTI92X_CS4231=m
-CONFIG_SND_OPTI93X=m
-CONFIG_SND_MIRO=m
-CONFIG_SND_SB8=m
-CONFIG_SND_SB16=m
-CONFIG_SND_SBAWE=m
-CONFIG_SND_SB16_CSP=y
-CONFIG_SND_SGALAXY=m
-CONFIG_SND_SSCAPE=m
-CONFIG_SND_WAVEFRONT=m
-CONFIG_SND_MSND_PINNACLE=m
-CONFIG_SND_MSND_CLASSIC=m
-CONFIG_SND_PCI=y
-CONFIG_SND_AD1889=m
-CONFIG_SND_ALS300=m
-CONFIG_SND_ALS4000=m
-CONFIG_SND_ALI5451=m
-CONFIG_SND_ATIIXP=m
-CONFIG_SND_ATIIXP_MODEM=m
-CONFIG_SND_AU8810=m
-CONFIG_SND_AU8820=m
-CONFIG_SND_AU8830=m
-CONFIG_SND_AW2=m
-CONFIG_SND_AZT3328=m
-CONFIG_SND_BT87X=m
-# CONFIG_SND_BT87X_OVERCLOCK is not set
-CONFIG_SND_CA0106=m
-CONFIG_SND_CMIPCI=m
-CONFIG_SND_OXYGEN_LIB=m
-CONFIG_SND_OXYGEN=m
-CONFIG_SND_CS4281=m
-CONFIG_SND_CS46XX=m
-CONFIG_SND_CS46XX_NEW_DSP=y
-CONFIG_SND_CS5530=m
-CONFIG_SND_CS5535AUDIO=m
-CONFIG_SND_CTXFI=m
-CONFIG_SND_DARLA20=m
-CONFIG_SND_GINA20=m
-CONFIG_SND_LAYLA20=m
-CONFIG_SND_DARLA24=m
-CONFIG_SND_GINA24=m
-CONFIG_SND_LAYLA24=m
-CONFIG_SND_MONA=m
-CONFIG_SND_MIA=m
-CONFIG_SND_ECHO3G=m
-CONFIG_SND_INDIGO=m
-CONFIG_SND_INDIGOIO=m
-CONFIG_SND_INDIGODJ=m
-CONFIG_SND_INDIGOIOX=m
-CONFIG_SND_INDIGODJX=m
-CONFIG_SND_EMU10K1=m
-CONFIG_SND_EMU10K1X=m
-CONFIG_SND_ENS1370=m
-CONFIG_SND_ENS1371=m
-CONFIG_SND_ES1938=m
-CONFIG_SND_ES1968=m
-CONFIG_SND_FM801=m
-# CONFIG_SND_FM801_TEA575X_BOOL is not set
-CONFIG_SND_HDA_INTEL=m
-CONFIG_SND_HDA_HWDEP=y
-# CONFIG_SND_HDA_RECONFIG is not set
-CONFIG_SND_HDA_INPUT_BEEP=y
-CONFIG_SND_HDA_INPUT_JACK=y
-# CONFIG_SND_HDA_PATCH_LOADER is not set
-CONFIG_SND_HDA_CODEC_REALTEK=y
-CONFIG_SND_HDA_CODEC_ANALOG=y
-CONFIG_SND_HDA_CODEC_SIGMATEL=y
-CONFIG_SND_HDA_CODEC_VIA=y
-CONFIG_SND_HDA_CODEC_ATIHDMI=y
-CONFIG_SND_HDA_CODEC_NVHDMI=y
-CONFIG_SND_HDA_CODEC_INTELHDMI=y
-CONFIG_SND_HDA_ELD=y
-CONFIG_SND_HDA_CODEC_CIRRUS=y
-CONFIG_SND_HDA_CODEC_CONEXANT=y
-CONFIG_SND_HDA_CODEC_CA0110=y
-CONFIG_SND_HDA_CODEC_CMEDIA=y
-CONFIG_SND_HDA_CODEC_SI3054=y
-CONFIG_SND_HDA_GENERIC=y
-# CONFIG_SND_HDA_POWER_SAVE is not set
-CONFIG_SND_HDSP=m
-CONFIG_SND_HDSPM=m
-CONFIG_SND_HIFIER=m
-CONFIG_SND_ICE1712=m
-CONFIG_SND_ICE1724=m
-CONFIG_SND_INTEL8X0=m
-CONFIG_SND_INTEL8X0M=m
-CONFIG_SND_KORG1212=m
-CONFIG_SND_LX6464ES=m
-CONFIG_SND_MAESTRO3=m
-CONFIG_SND_MIXART=m
-CONFIG_SND_NM256=m
-CONFIG_SND_PCXHR=m
-CONFIG_SND_RIPTIDE=m
-CONFIG_SND_RME32=m
-CONFIG_SND_RME96=m
-CONFIG_SND_RME9652=m
-CONFIG_SND_SIS7019=m
-CONFIG_SND_SONICVIBES=m
-CONFIG_SND_TRIDENT=m
-CONFIG_SND_VIA82XX=m
-CONFIG_SND_VIA82XX_MODEM=m
-CONFIG_SND_VIRTUOSO=m
-CONFIG_SND_VX222=m
-CONFIG_SND_YMFPCI=m
-CONFIG_SND_SPI=y
-CONFIG_SND_USB=y
-CONFIG_SND_USB_AUDIO=m
-CONFIG_SND_USB_USX2Y=m
-CONFIG_SND_USB_CAIAQ=m
-# CONFIG_SND_USB_CAIAQ_INPUT is not set
-CONFIG_SND_USB_US122L=m
-CONFIG_SND_PCMCIA=y
-CONFIG_SND_VXPOCKET=m
-CONFIG_SND_PDAUDIOCF=m
-CONFIG_SND_SOC=m
-CONFIG_SND_SOC_I2C_AND_SPI=m
-CONFIG_SND_SOC_ALL_CODECS=m
-CONFIG_SND_SOC_WM_HUBS=m
-CONFIG_SND_SOC_AD1836=m
-CONFIG_SND_SOC_AD1938=m
-CONFIG_SND_SOC_AD73311=m
-CONFIG_SND_SOC_AK4104=m
-CONFIG_SND_SOC_AK4535=m
-CONFIG_SND_SOC_AK4642=m
-CONFIG_SND_SOC_CS4270=m
-CONFIG_SND_SOC_L3=m
-CONFIG_SND_SOC_PCM3008=m
-CONFIG_SND_SOC_SPDIF=m
-CONFIG_SND_SOC_SSM2602=m
-CONFIG_SND_SOC_TLV320AIC23=m
-CONFIG_SND_SOC_TLV320AIC26=m
-CONFIG_SND_SOC_TLV320AIC3X=m
-CONFIG_SND_SOC_UDA134X=m
-CONFIG_SND_SOC_UDA1380=m
-CONFIG_SND_SOC_WM8350=m
-CONFIG_SND_SOC_WM8400=m
-CONFIG_SND_SOC_WM8510=m
-CONFIG_SND_SOC_WM8523=m
-CONFIG_SND_SOC_WM8580=m
-CONFIG_SND_SOC_WM8728=m
-CONFIG_SND_SOC_WM8731=m
-CONFIG_SND_SOC_WM8750=m
-CONFIG_SND_SOC_WM8753=m
-CONFIG_SND_SOC_WM8776=m
-CONFIG_SND_SOC_WM8900=m
-CONFIG_SND_SOC_WM8903=m
-CONFIG_SND_SOC_WM8940=m
-CONFIG_SND_SOC_WM8960=m
-CONFIG_SND_SOC_WM8961=m
-CONFIG_SND_SOC_WM8971=m
-CONFIG_SND_SOC_WM8974=m
-CONFIG_SND_SOC_WM8988=m
-CONFIG_SND_SOC_WM8990=m
-CONFIG_SND_SOC_WM8993=m
-CONFIG_SND_SOC_WM9081=m
-CONFIG_SND_SOC_MAX9877=m
-# CONFIG_SOUND_PRIME is not set
-CONFIG_AC97_BUS=m
-CONFIG_HID_SUPPORT=y
-CONFIG_HID=m
-CONFIG_HIDRAW=y
-
-#
-# USB Input Devices
-#
-CONFIG_USB_HID=m
-# CONFIG_HID_PID is not set
-# CONFIG_USB_HIDDEV is not set
-
-#
-# USB HID Boot Protocol drivers
-#
-CONFIG_USB_KBD=m
-CONFIG_USB_MOUSE=m
-
-#
-# Special HID drivers
-#
-# CONFIG_HID_A4TECH is not set
-# CONFIG_HID_APPLE is not set
-# CONFIG_HID_BELKIN is not set
-# CONFIG_HID_CHERRY is not set
-# CONFIG_HID_CHICONY is not set
-# CONFIG_HID_CYPRESS is not set
-# CONFIG_HID_DRAGONRISE is not set
-# CONFIG_HID_EZKEY is not set
-# CONFIG_HID_KYE is not set
-# CONFIG_HID_GYRATION is not set
-# CONFIG_HID_TWINHAN is not set
-# CONFIG_HID_KENSINGTON is not set
-# CONFIG_HID_LOGITECH is not set
-# CONFIG_HID_MICROSOFT is not set
-# CONFIG_HID_MONTEREY is not set
-# CONFIG_HID_NTRIG is not set
-# CONFIG_HID_PANTHERLORD is not set
-# CONFIG_HID_PETALYNX is not set
-# CONFIG_HID_SAMSUNG is not set
-# CONFIG_HID_SONY is not set
-# CONFIG_HID_SUNPLUS is not set
-# CONFIG_HID_GREENASIA is not set
-# CONFIG_HID_SMARTJOYPLUS is not set
-# CONFIG_HID_TOPSEED is not set
-# CONFIG_HID_THRUSTMASTER is not set
-# CONFIG_HID_WACOM is not set
-# CONFIG_HID_ZEROPLUS is not set
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB_ARCH_HAS_OHCI=y
-CONFIG_USB_ARCH_HAS_EHCI=y
-CONFIG_USB=m
-# CONFIG_USB_DEBUG is not set
-CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEVICEFS=y
-CONFIG_USB_DEVICE_CLASS=y
-# CONFIG_USB_DYNAMIC_MINORS is not set
-# CONFIG_USB_SUSPEND is not set
-# CONFIG_USB_OTG is not set
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-CONFIG_USB_MON=m
-CONFIG_USB_WUSB=m
-CONFIG_USB_WUSB_CBAF=m
-# CONFIG_USB_WUSB_CBAF_DEBUG is not set
-
-#
-# USB Host Controller Drivers
-#
-CONFIG_USB_C67X00_HCD=m
-CONFIG_USB_XHCI_HCD=m
-# CONFIG_USB_XHCI_HCD_DEBUGGING is not set
-CONFIG_USB_EHCI_HCD=m
-# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-# CONFIG_USB_EHCI_TT_NEWSCHED is not set
-CONFIG_USB_OXU210HP_HCD=m
-CONFIG_USB_ISP116X_HCD=m
-CONFIG_USB_ISP1760_HCD=m
-CONFIG_USB_ISP1362_HCD=m
-CONFIG_USB_OHCI_HCD=m
-CONFIG_USB_OHCI_HCD_SSB=y
-# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
-# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_UHCI_HCD=m
-CONFIG_USB_U132_HCD=m
-CONFIG_USB_SL811_HCD=m
-CONFIG_USB_SL811_CS=m
-CONFIG_USB_R8A66597_HCD=m
-CONFIG_USB_WHCI_HCD=m
-CONFIG_USB_HWA_HCD=m
-
-#
-# Enable Host or Gadget support to see Inventra options
-#
-
-#
-# USB Device Class drivers
-#
-CONFIG_USB_ACM=m
-CONFIG_USB_PRINTER=m
-CONFIG_USB_WDM=m
-CONFIG_USB_TMC=m
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#
-
-#
-# also be needed; see USB_STORAGE Help for more info
-#
-CONFIG_USB_STORAGE=m
-# CONFIG_USB_STORAGE_DEBUG is not set
-CONFIG_USB_STORAGE_DATAFAB=m
-CONFIG_USB_STORAGE_FREECOM=m
-CONFIG_USB_STORAGE_ISD200=m
-CONFIG_USB_STORAGE_USBAT=m
-CONFIG_USB_STORAGE_SDDR09=m
-CONFIG_USB_STORAGE_SDDR55=m
-CONFIG_USB_STORAGE_JUMPSHOT=m
-CONFIG_USB_STORAGE_ALAUDA=m
-CONFIG_USB_STORAGE_ONETOUCH=m
-CONFIG_USB_STORAGE_KARMA=m
-CONFIG_USB_STORAGE_CYPRESS_ATACB=m
-CONFIG_USB_LIBUSUAL=y
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_MICROTEK is not set
-
-#
-# USB port drivers
-#
-CONFIG_USB_USS720=m
-CONFIG_USB_SERIAL=m
-CONFIG_USB_EZUSB=y
-CONFIG_USB_SERIAL_GENERIC=y
-CONFIG_USB_SERIAL_AIRCABLE=m
-CONFIG_USB_SERIAL_ARK3116=m
-CONFIG_USB_SERIAL_BELKIN=m
-CONFIG_USB_SERIAL_CH341=m
-CONFIG_USB_SERIAL_WHITEHEAT=m
-CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
-CONFIG_USB_SERIAL_CP210X=m
-CONFIG_USB_SERIAL_CYPRESS_M8=m
-CONFIG_USB_SERIAL_EMPEG=m
-CONFIG_USB_SERIAL_FTDI_SIO=m
-CONFIG_USB_SERIAL_FUNSOFT=m
-CONFIG_USB_SERIAL_VISOR=m
-CONFIG_USB_SERIAL_IPAQ=m
-CONFIG_USB_SERIAL_IR=m
-CONFIG_USB_SERIAL_EDGEPORT=m
-CONFIG_USB_SERIAL_EDGEPORT_TI=m
-CONFIG_USB_SERIAL_GARMIN=m
-CONFIG_USB_SERIAL_IPW=m
-CONFIG_USB_SERIAL_IUU=m
-CONFIG_USB_SERIAL_KEYSPAN_PDA=m
-CONFIG_USB_SERIAL_KEYSPAN=m
-CONFIG_USB_SERIAL_KLSI=m
-CONFIG_USB_SERIAL_KOBIL_SCT=m
-CONFIG_USB_SERIAL_MCT_U232=m
-CONFIG_USB_SERIAL_MOS7720=m
-CONFIG_USB_SERIAL_MOS7840=m
-CONFIG_USB_SERIAL_MOTOROLA=m
-CONFIG_USB_SERIAL_NAVMAN=m
-CONFIG_USB_SERIAL_PL2303=m
-CONFIG_USB_SERIAL_OTI6858=m
-CONFIG_USB_SERIAL_QUALCOMM=m
-CONFIG_USB_SERIAL_SPCP8X5=m
-CONFIG_USB_SERIAL_HP4X=m
-CONFIG_USB_SERIAL_SAFE=m
-CONFIG_USB_SERIAL_SAFE_PADDED=y
-CONFIG_USB_SERIAL_SIEMENS_MPI=m
-CONFIG_USB_SERIAL_SIERRAWIRELESS=m
-CONFIG_USB_SERIAL_SYMBOL=m
-CONFIG_USB_SERIAL_TI=m
-CONFIG_USB_SERIAL_CYBERJACK=m
-CONFIG_USB_SERIAL_XIRCOM=m
-CONFIG_USB_SERIAL_OPTION=m
-CONFIG_USB_SERIAL_OMNINET=m
-CONFIG_USB_SERIAL_OPTICON=m
-CONFIG_USB_SERIAL_DEBUG=m
-
-#
-# USB Miscellaneous drivers
-#
-CONFIG_USB_EMI62=m
-CONFIG_USB_EMI26=m
-CONFIG_USB_ADUTUX=m
-CONFIG_USB_SEVSEG=m
-CONFIG_USB_RIO500=m
-# CONFIG_USB_LEGOTOWER is not set
-CONFIG_USB_LCD=m
-# CONFIG_USB_BERRY_CHARGE is not set
-CONFIG_USB_LED=m
-CONFIG_USB_CYPRESS_CY7C63=m
-CONFIG_USB_CYTHERM=m
-CONFIG_USB_IDMOUSE=m
-CONFIG_USB_FTDI_ELAN=m
-# CONFIG_USB_APPLEDISPLAY is not set
-CONFIG_USB_SISUSBVGA=m
-CONFIG_USB_SISUSBVGA_CON=y
-CONFIG_USB_LD=m
-# CONFIG_USB_TRANCEVIBRATOR is not set
-CONFIG_USB_IOWARRIOR=m
-CONFIG_USB_TEST=m
-CONFIG_USB_ISIGHTFW=m
-# CONFIG_USB_VST is not set
-CONFIG_USB_ATM=m
-CONFIG_USB_SPEEDTOUCH=m
-CONFIG_USB_CXACRU=m
-CONFIG_USB_UEAGLEATM=m
-CONFIG_USB_XUSBATM=m
-# CONFIG_USB_GADGET is not set
-
-#
-# OTG and related infrastructure
-#
-CONFIG_USB_OTG_UTILS=y
-CONFIG_USB_GPIO_VBUS=m
-CONFIG_NOP_USB_XCEIV=m
-CONFIG_UWB=m
-CONFIG_UWB_HWA=m
-CONFIG_UWB_WHCI=m
-CONFIG_UWB_WLP=m
-CONFIG_UWB_I1480U=m
-CONFIG_UWB_I1480U_WLP=m
-CONFIG_MMC=m
-# CONFIG_MMC_DEBUG is not set
-# CONFIG_MMC_UNSAFE_RESUME is not set
-
-#
-# MMC/SD/SDIO Card Drivers
-#
-CONFIG_MMC_BLOCK=m
-CONFIG_MMC_BLOCK_BOUNCE=y
-CONFIG_SDIO_UART=m
-CONFIG_MMC_TEST=m
-
-#
-# MMC/SD/SDIO Host Controller Drivers
-#
-CONFIG_MMC_SDHCI=m
-CONFIG_MMC_SDHCI_PCI=m
-CONFIG_MMC_RICOH_MMC=m
-CONFIG_MMC_SDHCI_PLTFM=m
-CONFIG_MMC_WBSD=m
-# CONFIG_MMC_AT91 is not set
-# CONFIG_MMC_ATMELMCI is not set
-CONFIG_MMC_TIFM_SD=m
-CONFIG_MMC_SDRICOH_CS=m
-CONFIG_MMC_CB710=m
-CONFIG_MMC_VIA_SDMMC=m
-CONFIG_MEMSTICK=m
-# CONFIG_MEMSTICK_DEBUG is not set
-
-#
-# MemoryStick drivers
-#
-# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
-CONFIG_MSPRO_BLOCK=m
-
-#
-# MemoryStick Host Controller Drivers
-#
-CONFIG_MEMSTICK_TIFM_MS=m
-CONFIG_MEMSTICK_JMICRON_38X=m
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=m
-
-#
-# LED drivers
-#
-CONFIG_LEDS_NET48XX=m
-CONFIG_LEDS_WRAP=m
-CONFIG_LEDS_ALIX2=m
-CONFIG_LEDS_PCA9532=m
-CONFIG_LEDS_GPIO=m
-CONFIG_LEDS_GPIO_PLATFORM=y
-CONFIG_LEDS_LP3944=m
-CONFIG_LEDS_CLEVO_MAIL=m
-CONFIG_LEDS_PCA955X=m
-CONFIG_LEDS_WM8350=m
-CONFIG_LEDS_DAC124S085=m
-CONFIG_LEDS_BD2802=m
-
-#
-# LED Triggers
-#
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=m
-CONFIG_LEDS_TRIGGER_HEARTBEAT=m
-CONFIG_LEDS_TRIGGER_BACKLIGHT=m
-CONFIG_LEDS_TRIGGER_GPIO=m
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
-
-#
-# iptables trigger is under Netfilter config (LED target)
-#
-CONFIG_ACCESSIBILITY=y
-# CONFIG_A11Y_BRAILLE_CONSOLE is not set
-CONFIG_INFINIBAND=m
-CONFIG_INFINIBAND_USER_MAD=m
-CONFIG_INFINIBAND_USER_ACCESS=m
-CONFIG_INFINIBAND_USER_MEM=y
-CONFIG_INFINIBAND_ADDR_TRANS=y
-CONFIG_INFINIBAND_MTHCA=m
-# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
-CONFIG_INFINIBAND_AMSO1100=m
-# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set
-CONFIG_INFINIBAND_CXGB3=m
-# CONFIG_INFINIBAND_CXGB3_DEBUG is not set
-CONFIG_MLX4_INFINIBAND=m
-CONFIG_INFINIBAND_NES=m
-# CONFIG_INFINIBAND_NES_DEBUG is not set
-CONFIG_INFINIBAND_IPOIB=m
-# CONFIG_INFINIBAND_IPOIB_CM is not set
-# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
-CONFIG_INFINIBAND_SRP=m
-CONFIG_INFINIBAND_ISER=m
-# CONFIG_EDAC is not set
-CONFIG_RTC_LIB=m
-CONFIG_RTC_CLASS=m
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-CONFIG_RTC_INTF_DEV_UIE_EMUL=y
-CONFIG_RTC_DRV_TEST=m
-
-#
-# I2C RTC drivers
-#
-CONFIG_RTC_DRV_DS1307=m
-CONFIG_RTC_DRV_DS1374=m
-CONFIG_RTC_DRV_DS1672=m
-CONFIG_RTC_DRV_MAX6900=m
-CONFIG_RTC_DRV_RS5C372=m
-CONFIG_RTC_DRV_ISL1208=m
-CONFIG_RTC_DRV_X1205=m
-CONFIG_RTC_DRV_PCF8563=m
-CONFIG_RTC_DRV_PCF8583=m
-CONFIG_RTC_DRV_M41T80=m
-CONFIG_RTC_DRV_M41T80_WDT=y
-CONFIG_RTC_DRV_S35390A=m
-CONFIG_RTC_DRV_FM3130=m
-CONFIG_RTC_DRV_RX8581=m
-CONFIG_RTC_DRV_RX8025=m
-
-#
-# SPI RTC drivers
-#
-CONFIG_RTC_DRV_M41T94=m
-CONFIG_RTC_DRV_DS1305=m
-CONFIG_RTC_DRV_DS1390=m
-CONFIG_RTC_DRV_MAX6902=m
-CONFIG_RTC_DRV_R9701=m
-CONFIG_RTC_DRV_RS5C348=m
-CONFIG_RTC_DRV_DS3234=m
-CONFIG_RTC_DRV_PCF2123=m
-
-#
-# Platform RTC drivers
-#
-CONFIG_RTC_DRV_CMOS=m
-CONFIG_RTC_DRV_DS1286=m
-CONFIG_RTC_DRV_DS1511=m
-CONFIG_RTC_DRV_DS1553=m
-CONFIG_RTC_DRV_DS1742=m
-CONFIG_RTC_DRV_STK17TA8=m
-CONFIG_RTC_DRV_M48T86=m
-CONFIG_RTC_DRV_M48T35=m
-CONFIG_RTC_DRV_M48T59=m
-CONFIG_RTC_DRV_BQ4802=m
-CONFIG_RTC_DRV_V3020=m
-CONFIG_RTC_DRV_WM8350=m
-CONFIG_RTC_DRV_PCF50633=m
-CONFIG_RTC_DRV_AB3100=m
-
-#
-# on-CPU RTC drivers
-#
-CONFIG_DMADEVICES=y
-
-#
-# DMA Devices
-#
-CONFIG_ASYNC_TX_DISABLE_CHANNEL_SWITCH=y
-CONFIG_INTEL_IOATDMA=m
-CONFIG_DMA_ENGINE=y
-
-#
-# DMA Clients
-#
-CONFIG_NET_DMA=y
-# CONFIG_ASYNC_TX_DMA is not set
-CONFIG_DMATEST=m
-CONFIG_DCA=m
-CONFIG_AUXDISPLAY=y
-CONFIG_KS0108=m
-CONFIG_KS0108_PORT=0x378
-CONFIG_KS0108_DELAY=2
-CONFIG_CFAG12864B=m
-CONFIG_CFAG12864B_RATE=20
-CONFIG_UIO=m
-CONFIG_UIO_CIF=m
-CONFIG_UIO_PDRV=m
-CONFIG_UIO_PDRV_GENIRQ=m
-CONFIG_UIO_SMX=m
-CONFIG_UIO_AEC=m
-CONFIG_UIO_SERCOS3=m
-# CONFIG_UIO_PCI_GENERIC is not set
-
-#
-# TI VLYNQ
-#
-# CONFIG_STAGING is not set
-CONFIG_X86_PLATFORM_DEVICES=y
-CONFIG_ACER_WMI=m
-CONFIG_ASUS_LAPTOP=m
-CONFIG_DELL_WMI=m
-CONFIG_FUJITSU_LAPTOP=m
-# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
-CONFIG_TC1100_WMI=m
-CONFIG_HP_WMI=m
-CONFIG_MSI_LAPTOP=m
-CONFIG_PANASONIC_LAPTOP=m
-CONFIG_COMPAL_LAPTOP=m
-CONFIG_SONY_LAPTOP=m
-# CONFIG_SONYPI_COMPAT is not set
-CONFIG_THINKPAD_ACPI=m
-# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
-# CONFIG_THINKPAD_ACPI_DEBUG is not set
-# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
-CONFIG_THINKPAD_ACPI_VIDEO=y
-CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
-CONFIG_INTEL_MENLOW=m
-CONFIG_EEEPC_LAPTOP=m
-CONFIG_ACPI_WMI=m
-CONFIG_ACPI_ASUS=m
-# CONFIG_TOPSTAR_LAPTOP is not set
-CONFIG_ACPI_TOSHIBA=m
-
-#
-# Firmware Drivers
-#
-CONFIG_EDD=m
-# CONFIG_EDD_OFF is not set
-CONFIG_FIRMWARE_MEMMAP=y
-CONFIG_DELL_RBU=m
-CONFIG_DCDBAS=m
-CONFIG_DMIID=y
-# CONFIG_ISCSI_IBFT_FIND is not set
-
-#
-# File systems
-#
-CONFIG_EXT2_FS=m
-CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_POSIX_ACL=y
-CONFIG_EXT2_FS_SECURITY=y
-CONFIG_EXT2_FS_XIP=y
-CONFIG_EXT3_FS=m
-# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
-CONFIG_EXT3_FS_XATTR=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-CONFIG_EXT3_FS_SECURITY=y
-CONFIG_EXT4_FS=m
-CONFIG_EXT4_FS_XATTR=y
-CONFIG_EXT4_FS_POSIX_ACL=y
-CONFIG_EXT4_FS_SECURITY=y
-# CONFIG_EXT4_DEBUG is not set
-CONFIG_FS_XIP=y
-CONFIG_JBD=m
-# CONFIG_JBD_DEBUG is not set
-CONFIG_JBD2=m
-# CONFIG_JBD2_DEBUG is not set
-CONFIG_FS_MBCACHE=m
-CONFIG_REISERFS_FS=m
-# CONFIG_REISERFS_CHECK is not set
-CONFIG_REISERFS_PROC_INFO=y
-CONFIG_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-# CONFIG_REISERFS_FS_SECURITY is not set
-CONFIG_JFS_FS=m
-CONFIG_JFS_POSIX_ACL=y
-CONFIG_JFS_SECURITY=y
-# CONFIG_JFS_DEBUG is not set
-CONFIG_JFS_STATISTICS=y
-CONFIG_FS_POSIX_ACL=y
-CONFIG_XFS_FS=m
-CONFIG_XFS_QUOTA=y
-CONFIG_XFS_POSIX_ACL=y
-CONFIG_XFS_RT=y
-# CONFIG_XFS_DEBUG is not set
-CONFIG_GFS2_FS=m
-CONFIG_GFS2_FS_LOCKING_DLM=y
-CONFIG_OCFS2_FS=m
-CONFIG_OCFS2_FS_O2CB=m
-CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
-CONFIG_OCFS2_FS_STATS=y
-CONFIG_OCFS2_DEBUG_MASKLOG=y
-# CONFIG_OCFS2_DEBUG_FS is not set
-CONFIG_OCFS2_FS_POSIX_ACL=y
-CONFIG_BTRFS_FS=m
-CONFIG_BTRFS_FS_POSIX_ACL=y
-CONFIG_NILFS2_FS=m
-CONFIG_FILE_LOCKING=y
-CONFIG_FSNOTIFY=y
-# CONFIG_DNOTIFY is not set
-CONFIG_INOTIFY=y
-CONFIG_INOTIFY_USER=y
-CONFIG_QUOTA=y
-CONFIG_QUOTA_NETLINK_INTERFACE=y
-# CONFIG_PRINT_QUOTA_WARNING is not set
-CONFIG_QUOTA_TREE=m
-CONFIG_QFMT_V1=m
-CONFIG_QFMT_V2=m
-CONFIG_QUOTACTL=y
-CONFIG_AUTOFS_FS=m
-CONFIG_AUTOFS4_FS=m
-CONFIG_FUSE_FS=m
-# CONFIG_CUSE is not set
-
-#
-# Caches
-#
-CONFIG_FSCACHE=m
-CONFIG_FSCACHE_STATS=y
-CONFIG_FSCACHE_HISTOGRAM=y
-# CONFIG_FSCACHE_DEBUG is not set
-# CONFIG_FSCACHE_OBJECT_LIST is not set
-CONFIG_CACHEFILES=m
-# CONFIG_CACHEFILES_DEBUG is not set
-# CONFIG_CACHEFILES_HISTOGRAM is not set
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-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_PROC_KCORE is not set
-CONFIG_PROC_SYSCTL=y
-CONFIG_PROC_PAGE_MONITOR=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-# CONFIG_TMPFS_POSIX_ACL is not set
-# CONFIG_HUGETLBFS is not set
-# CONFIG_HUGETLB_PAGE is not set
-CONFIG_CONFIGFS_FS=m
-CONFIG_MISC_FILESYSTEMS=y
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-CONFIG_ECRYPT_FS=m
-CONFIG_HFS_FS=m
-CONFIG_HFSPLUS_FS=m
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-CONFIG_EFS_FS=m
-CONFIG_JFFS2_FS=m
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-CONFIG_JFFS2_SUMMARY=y
-CONFIG_JFFS2_FS_XATTR=y
-CONFIG_JFFS2_FS_POSIX_ACL=y
-CONFIG_JFFS2_FS_SECURITY=y
-CONFIG_JFFS2_COMPRESSION_OPTIONS=y
-CONFIG_JFFS2_ZLIB=y
-CONFIG_JFFS2_LZO=y
-CONFIG_JFFS2_RTIME=y
-CONFIG_JFFS2_RUBIN=y
-# CONFIG_JFFS2_CMODE_NONE is not set
-CONFIG_JFFS2_CMODE_PRIORITY=y
-# CONFIG_JFFS2_CMODE_SIZE is not set
-# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
-CONFIG_UBIFS_FS=m
-# CONFIG_UBIFS_FS_XATTR is not set
-# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
-CONFIG_UBIFS_FS_LZO=y
-CONFIG_UBIFS_FS_ZLIB=y
-# CONFIG_UBIFS_FS_DEBUG is not set
-CONFIG_CRAMFS=m
-CONFIG_SQUASHFS=m
-# CONFIG_SQUASHFS_EMBEDDED is not set
-CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
-# CONFIG_VXFS_FS is not set
-CONFIG_MINIX_FS=m
-CONFIG_OMFS_FS=m
-CONFIG_HPFS_FS=m
-# CONFIG_QNX4FS_FS is not set
-CONFIG_ROMFS_FS=m
-CONFIG_ROMFS_BACKED_BY_BLOCK=y
-# CONFIG_ROMFS_BACKED_BY_MTD is not set
-# CONFIG_ROMFS_BACKED_BY_BOTH is not set
-CONFIG_ROMFS_ON_BLOCK=y
-CONFIG_SYSV_FS=m
-CONFIG_UFS_FS=m
-# CONFIG_UFS_FS_WRITE is not set
-# CONFIG_UFS_DEBUG is not set
-CONFIG_EXOFS_FS=m
-# CONFIG_EXOFS_DEBUG is not set
-CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=m
-CONFIG_NFS_V3=y
-# CONFIG_NFS_V3_ACL is not set
-CONFIG_NFS_V4=y
-# CONFIG_NFS_V4_1 is not set
-# CONFIG_NFS_FSCACHE is not set
-CONFIG_NFSD=m
-CONFIG_NFSD_V3=y
-# CONFIG_NFSD_V3_ACL is not set
-CONFIG_NFSD_V4=y
-CONFIG_LOCKD=m
-CONFIG_LOCKD_V4=y
-CONFIG_EXPORTFS=m
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=m
-CONFIG_SUNRPC_GSS=m
-CONFIG_SUNRPC_XPRT_RDMA=m
-CONFIG_RPCSEC_GSS_KRB5=m
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
-# CONFIG_SMB_FS is not set
-CONFIG_CIFS=m
-# CONFIG_CIFS_STATS is not set
-# CONFIG_CIFS_WEAK_PW_HASH is not set
-# CONFIG_CIFS_UPCALL is not set
-CONFIG_CIFS_XATTR=y
-CONFIG_CIFS_POSIX=y
-# CONFIG_CIFS_DEBUG2 is not set
-CONFIG_CIFS_DFS_UPCALL=y
-CONFIG_CIFS_EXPERIMENTAL=y
-# 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
-#
-# CONFIG_PARTITION_ADVANCED is not set
-CONFIG_MSDOS_PARTITION=y
-CONFIG_NLS=m
-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
-CONFIG_DLM=m
-# CONFIG_DLM_DEBUG is not set
-
-#
-# Kernel hacking
-#
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-# CONFIG_PRINTK_TIME is not set
-CONFIG_ENABLE_WARN_DEPRECATED=y
-# CONFIG_ENABLE_MUST_CHECK is not set
-CONFIG_FRAME_WARN=1024
-# CONFIG_MAGIC_SYSRQ is not set
-# CONFIG_STRIP_ASM_SYMS is not set
-# CONFIG_UNUSED_SYMBOLS is not set
-CONFIG_DEBUG_FS=y
-# CONFIG_HEADERS_CHECK is not set
-# CONFIG_DEBUG_KERNEL is not set
-CONFIG_STACKTRACE=y
-# CONFIG_DEBUG_BUGVERBOSE is not set
-# CONFIG_DEBUG_MEMORY_INIT is not set
-CONFIG_ARCH_WANT_FRAME_POINTERS=y
-CONFIG_FRAME_POINTER=y
-# CONFIG_RCU_CPU_STALL_DETECTOR is not set
-# CONFIG_LATENCYTOP is not set
-CONFIG_SYSCTL_SYSCALL_CHECK=y
-CONFIG_USER_STACKTRACE_SUPPORT=y
-CONFIG_NOP_TRACER=y
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
-CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
-CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
-CONFIG_RING_BUFFER=y
-CONFIG_EVENT_TRACING=y
-CONFIG_CONTEXT_SWITCH_TRACER=y
-CONFIG_RING_BUFFER_ALLOW_SWAP=y
-CONFIG_TRACING=y
-CONFIG_TRACING_SUPPORT=y
-# CONFIG_FTRACE is not set
-# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
-# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
-# CONFIG_DYNAMIC_DEBUG is not set
-# CONFIG_DMA_API_DEBUG is not set
-# CONFIG_SAMPLES is not set
-CONFIG_HAVE_ARCH_KGDB=y
-CONFIG_HAVE_ARCH_KMEMCHECK=y
-CONFIG_STRICT_DEVMEM=y
-# CONFIG_X86_VERBOSE_BOOTUP is not set
-# CONFIG_EARLY_PRINTK is not set
-# CONFIG_4KSTACKS is not set
-# CONFIG_DOUBLEFAULT is not set
-# CONFIG_IOMMU_STRESS is not set
-CONFIG_HAVE_MMIOTRACE_SUPPORT=y
-CONFIG_IO_DELAY_TYPE_0X80=0
-CONFIG_IO_DELAY_TYPE_0XED=1
-CONFIG_IO_DELAY_TYPE_UDELAY=2
-CONFIG_IO_DELAY_TYPE_NONE=3
-CONFIG_IO_DELAY_0X80=y
-# CONFIG_IO_DELAY_0XED is not set
-# CONFIG_IO_DELAY_UDELAY is not set
-# CONFIG_IO_DELAY_NONE is not set
-CONFIG_DEFAULT_IO_DELAY_TYPE=0
-# CONFIG_OPTIMIZE_INLINING is not set
-
-#
-# Linux VServer
-#
-CONFIG_VSERVER_AUTO_LBACK=y
-CONFIG_VSERVER_AUTO_SINGLE=y
-CONFIG_VSERVER_COWBL=y
-# CONFIG_VSERVER_VTIME is not set
-# CONFIG_VSERVER_DEVICE is not set
-CONFIG_VSERVER_PROC_SECURE=y
-CONFIG_VSERVER_HARDCPU=y
-CONFIG_VSERVER_IDLETIME=y
-# CONFIG_VSERVER_IDLELIMIT is not set
-# CONFIG_TAGGING_NONE is not set
-# CONFIG_TAGGING_UID16 is not set
-# CONFIG_TAGGING_GID16 is not set
-CONFIG_TAGGING_ID24=y
-# CONFIG_TAGGING_INTERN is not set
-# CONFIG_TAG_NFSD is not set
-# CONFIG_VSERVER_PRIVACY is not set
-CONFIG_VSERVER_CONTEXTS=256
-CONFIG_VSERVER_WARN=y
-# CONFIG_VSERVER_DEBUG is not set
-CONFIG_VSERVER=y
-CONFIG_VSERVER_SECURITY=y
-
-#
-# Security options
-#
-CONFIG_KEYS=y
-# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
-CONFIG_SECURITY=y
-CONFIG_SECURITYFS=y
-# CONFIG_SECURITY_NETWORK is not set
-# CONFIG_SECURITY_PATH is not set
-CONFIG_SECURITY_FILE_CAPABILITIES=y
-# CONFIG_SECURITY_TOMOYO is not set
-# CONFIG_IMA is not set
-CONFIG_XOR_BLOCKS=m
-CONFIG_ASYNC_CORE=m
-CONFIG_ASYNC_MEMCPY=m
-CONFIG_ASYNC_XOR=m
-CONFIG_ASYNC_PQ=m
-CONFIG_ASYNC_RAID6_RECOV=m
-CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
-CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-CONFIG_CRYPTO_FIPS=y
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_ALGAPI2=y
-CONFIG_CRYPTO_AEAD=m
-CONFIG_CRYPTO_AEAD2=y
-CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_BLKCIPHER2=y
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_HASH2=y
-CONFIG_CRYPTO_RNG=m
-CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_PCOMP=y
-CONFIG_CRYPTO_MANAGER=m
-CONFIG_CRYPTO_MANAGER2=y
-CONFIG_CRYPTO_GF128MUL=m
-CONFIG_CRYPTO_NULL=m
-CONFIG_CRYPTO_WORKQUEUE=y
-CONFIG_CRYPTO_CRYPTD=m
-CONFIG_CRYPTO_AUTHENC=m
-CONFIG_CRYPTO_TEST=m
-
-#
-# Authenticated Encryption with Associated Data
-#
-CONFIG_CRYPTO_CCM=m
-CONFIG_CRYPTO_GCM=m
-CONFIG_CRYPTO_SEQIV=m
-
-#
-# Block modes
-#
-CONFIG_CRYPTO_CBC=m
-CONFIG_CRYPTO_CTR=m
-CONFIG_CRYPTO_CTS=m
-CONFIG_CRYPTO_ECB=m
-CONFIG_CRYPTO_LRW=m
-CONFIG_CRYPTO_PCBC=m
-CONFIG_CRYPTO_XTS=m
-
-#
-# Hash modes
-#
-CONFIG_CRYPTO_HMAC=m
-CONFIG_CRYPTO_XCBC=m
-CONFIG_CRYPTO_VMAC=m
-
-#
-# Digest
-#
-CONFIG_CRYPTO_CRC32C=m
-CONFIG_CRYPTO_CRC32C_INTEL=m
-CONFIG_CRYPTO_GHASH=m
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_RMD128=m
-CONFIG_CRYPTO_RMD160=m
-CONFIG_CRYPTO_RMD256=m
-CONFIG_CRYPTO_RMD320=m
-CONFIG_CRYPTO_SHA1=m
-CONFIG_CRYPTO_SHA256=y
-CONFIG_CRYPTO_SHA512=m
-CONFIG_CRYPTO_TGR192=m
-CONFIG_CRYPTO_WP512=m
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES=m
-CONFIG_CRYPTO_AES_586=m
-CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_CAMELLIA=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_DES=m
-CONFIG_CRYPTO_FCRYPT=m
-CONFIG_CRYPTO_KHAZAD=m
-CONFIG_CRYPTO_SALSA20=m
-CONFIG_CRYPTO_SALSA20_586=m
-CONFIG_CRYPTO_SEED=m
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_TWOFISH_COMMON=m
-CONFIG_CRYPTO_TWOFISH_586=m
-
-#
-# Compression
-#
-CONFIG_CRYPTO_DEFLATE=m
-CONFIG_CRYPTO_ZLIB=m
-CONFIG_CRYPTO_LZO=m
-
-#
-# Random Number Generation
-#
-CONFIG_CRYPTO_ANSI_CPRNG=m
-CONFIG_CRYPTO_HW=y
-CONFIG_CRYPTO_DEV_PADLOCK=m
-CONFIG_CRYPTO_DEV_PADLOCK_AES=m
-CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
-CONFIG_CRYPTO_DEV_GEODE=m
-CONFIG_CRYPTO_DEV_HIFN_795X=m
-CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
-CONFIG_HAVE_KVM=y
-CONFIG_HAVE_KVM_IRQCHIP=y
-CONFIG_HAVE_KVM_EVENTFD=y
-CONFIG_KVM_APIC_ARCHITECTURE=y
-CONFIG_VIRTUALIZATION=y
-CONFIG_KVM=m
-CONFIG_KVM_INTEL=m
-CONFIG_KVM_AMD=m
-CONFIG_LGUEST=m
-CONFIG_VIRTIO=y
-CONFIG_VIRTIO_RING=y
-CONFIG_VIRTIO_PCI=m
-CONFIG_VIRTIO_BALLOON=m
-CONFIG_BINARY_PRINTF=y
-
-#
-# Library routines
-#
-CONFIG_BITREVERSE=m
-CONFIG_GENERIC_FIND_FIRST_BIT=y
-CONFIG_GENERIC_FIND_NEXT_BIT=y
-CONFIG_GENERIC_FIND_LAST_BIT=y
-CONFIG_CRC_CCITT=m
-CONFIG_CRC16=m
-CONFIG_CRC_T10DIF=m
-CONFIG_CRC_ITU_T=m
-CONFIG_CRC32=m
-CONFIG_CRC7=m
-CONFIG_LIBCRC32C=m
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=m
-CONFIG_LZO_COMPRESS=m
-CONFIG_LZO_DECOMPRESS=m
-CONFIG_DECOMPRESS_GZIP=y
-CONFIG_DECOMPRESS_BZIP2=y
-CONFIG_DECOMPRESS_LZMA=y
-CONFIG_GENERIC_ALLOCATOR=y
-CONFIG_REED_SOLOMON=m
-CONFIG_REED_SOLOMON_DEC16=y
-CONFIG_TEXTSEARCH=y
-CONFIG_TEXTSEARCH_KMP=m
-CONFIG_TEXTSEARCH_BM=m
-CONFIG_TEXTSEARCH_FSM=m
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-CONFIG_HAS_DMA=y
-CONFIG_CHECK_SIGNATURE=y
-CONFIG_NLATTR=y
diff --git a/testing/util-vserver/APKBUILD b/testing/util-vserver/APKBUILD
deleted file mode 100644
index 24d8150ae..000000000
--- a/testing/util-vserver/APKBUILD
+++ /dev/null
@@ -1,67 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=util-vserver
-pkgver=0.30.216_pre2864
-_realver=0.30.216-pre2864
-pkgrel=5
-pkgdesc="Linux-VServer admin utilities"
-url="http://www.nongnu.org/util-vserver/"
-license="GPL"
-install="$pkgname.post-install $pkgname.post-upgrade"
-makedepends="iptables-dev e2fsprogs-dev beecrypt-dev autoconf automake
- pkgconfig libtool"
-depends="bash make"
-
-source="http://people.linux-vserver.org/~dhozac/t/uv-testing/util-vserver-$_realver.tar.bz2
- busybox.patch
- chmod.patch
- ensc_pathprog.patch
- validate.patch
- alpine.patch
- setup-vs-template
- setup-vs-guest
- "
-subpackages="$pkgname-doc $pkgname-dev"
-
-_builddir="$srcdir"/$pkgname-$_realver
-
-build() {
- local i
- cd "$_builddir"
- for i in ../*.patch; do
- [ -r "$i" ] || continue
- msg "Applying $i"
- patch -p1 -i $i || return 1
- done
- msg "Running autotools..."
- aclocal -I m4 && autoconf && automake && libtoolize || return 1
-
- # this is an ugly workaround
- sed -i -e "s:as_echo=.*:as_echo=echo:g" configure
-
- ./configure --prefix=/usr \
- --mandir=/usr/share/man \
- --sysconfdir=/etc \
- --with-initscripts=gentoo \
- --localstatedir=/var \
- || return 1
-
- # use busybox ionice rather than util-linux-ng
- sed -i -e 's:/usr/bin/ionice:/bin/ionice:' Makefile
- make || return 1
-}
-
-package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir/" install install-distribution
- install -Dm755 ../setup-vs-template "$pkgdir"/usr/sbin/setup-vs-template
- install -Dm755 ../setup-vs-guest "$pkgdir"/usr/sbin/setup-vs-guest
-}
-
-md5sums="f686d72b39399fba96bbabd7debab549 util-vserver-0.30.216-pre2864.tar.bz2
-62b7b9bbe5902b95f4614272af003dfd busybox.patch
-73c7437dea6937a57cf38d166ef83c09 chmod.patch
-ff8f561f672524eb46fe633f584ef60e ensc_pathprog.patch
-da8b70c4fd40e68894b3903ffd121397 validate.patch
-04000261fd990a3963b0e98260b481bd alpine.patch
-49bca7969cc284adf68e0ef284c0660e setup-vs-template
-838511f74983453ef9827ed875b70d59 setup-vs-guest"
diff --git a/testing/util-vserver/alpine.patch b/testing/util-vserver/alpine.patch
deleted file mode 100644
index eacc2cb62..000000000
--- a/testing/util-vserver/alpine.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Index: distrib/alpine/initpost
-===================================================================
---- a/distrib/alpine/initpost (revision 2855)
-+++ b/distrib/alpine/initpost (working copy)
-@@ -1,6 +1,6 @@
- #!/bin/bash
-
--# Copyright (C) 2007 Natanael Copa <ncopa@alpinelinux.org>
-+# Copyright (C) 2007, 2009 Natanael Copa <ncopa@alpinelinux.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
-@@ -37,7 +37,12 @@
- $_VSERVER "$vserver" stop &>/dev/null || true
- $_VSERVER "$vserver" start --rescue --rescue-init /bin/busybox sh -c '
- /bin/busybox --install -s
-- /sbin/rc_add -s 20 -k syslog
-+ if [ -x /sbin/rc-update ]; then
-+ /sbin/rc-update add syslog boot
-+ /bin/rmdir /etc/rcL.d /etc/rcK.d
-+ else
-+ /sbin/rc_add -s 20 -k syslog
-+ fi
- '
-
- # set up hostname
diff --git a/testing/util-vserver/busybox.patch b/testing/util-vserver/busybox.patch
deleted file mode 100644
index cc471cc4e..000000000
--- a/testing/util-vserver/busybox.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/scripts/start-vservers Mon Oct 26 13:58:40 2009
-+++ b/scripts/start-vservers Mon Oct 26 13:59:31 2009
-@@ -131,7 +131,7 @@
- d=$__CONFDIR/${vservers[$i]}/apps/init
- f=$d/mark
- { test -n "$OPTION_MARK_ANY"; } || \
-- { test -n "$OPTION_MARK" -a -r "$f" && grep -qx "$OPTION_MARK" "$f"; } || \
-+ { test -n "$OPTION_MARK" -a -r "$f" && grep -q "^${OPTION_MARK}$" "$f"; } || \
- { test -z "$OPTION_MARK" && test ! -e "$f"; } || \
- unset vservers[$i]
- done
diff --git a/testing/util-vserver/chmod.patch b/testing/util-vserver/chmod.patch
deleted file mode 100644
index 53861e893..000000000
--- a/testing/util-vserver/chmod.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ru a/Makefile.am b/Makefile.am
---- a/Makefile.am 2009-09-29 13:48:10.000000000 +0000
-+++ b/Makefile.am 2009-09-29 13:50:00.000000000 +0000
-@@ -149,7 +149,7 @@
- @mkdir -p $$(dirname '$@')
- @echo "$(SED) -e '...' $*.pathsubst >$*"
- @$(SED) -e '$(pathsubst_RULES)' '$<' >'$@.tmp'
-- @-chmod --reference='$<' '$@.tmp'
-+ @-chmod $$(stat -c %a '$<') '$@.tmp'
- @if cmp -s '$@.tmp' '$*'; then \
- echo "... no changes, reusing old version"; \
- rm -f '$@.tmp'; \
diff --git a/testing/util-vserver/ensc_pathprog.patch b/testing/util-vserver/ensc_pathprog.patch
deleted file mode 100644
index e14c1f6da..000000000
--- a/testing/util-vserver/ensc_pathprog.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -ru a/m4/ensc_pathprog.m4 b/m4/ensc_pathprog.m4
---- a/m4/ensc_pathprog.m4 2009-10-02 17:25:49.000000000 +0000
-+++ b/m4/ensc_pathprog.m4 2009-10-02 17:31:28.000000000 +0000
-@@ -61,7 +61,9 @@
-
- if test "x$5" = x; then
- if test -h "${$1}"; then
-- $1=`readlink -f "${$1}"`
-+ case `readlink "{$1}"` in
-+ ../*) $1=`readlink -f "${$1}"`;;
-+ esac
- fi
- fi
-
diff --git a/testing/util-vserver/setup-vs-guest b/testing/util-vserver/setup-vs-guest
deleted file mode 100644
index dffd3c880..000000000
--- a/testing/util-vserver/setup-vs-guest
+++ /dev/null
@@ -1,306 +0,0 @@
-#!/bin/sh
-
-# simple script to set up a new vserver guest
-
-# test the first argument against the remaining ones, return success on a match
-isin() {
- local _a=$1 _b
-
- shift
- for _b; do
- [ "$_a" = "$_b" ] && return 0
- done
- return 1
-}
-
-# remove all occurrences of first argument from list formed by
-# the remaining arguments
-rmel() {
- local _a=$1 _b
-
- shift
- for _b; do
- [ "$_a" != "$_b" ] && echo -n "$_b "
- done
-}
-
-# Issue a read into the global variable $resp.
-_ask() {
- local _redo=0
-
- read resp
- case "$resp" in
- !) echo "Type 'exit' to return to setup."
- sh
- _redo=1
- ;;
- !*) eval "${resp#?}"
- _redo=1
- ;;
- esac
- return $_redo
-}
-
-# Ask for user input.
-#
-# $1 = the question to ask the user
-# $2 = the default answer
-#
-# Save the user input (or the default) in $resp.
-#
-# Allow the user to escape to shells ('!') or execute commands
-# ('!foo') before entering the input.
-ask() {
- local _question=$1 _default=$2
-
- while :; do
- echo -n "$_question "
- [ -z "$_default" ] || echo -n "[$_default] "
- _ask && : ${resp:=$_default} && break
- done
-}
-
-# Ask for user input until a non-empty reply is entered.
-#
-# $1 = the question to ask the user
-# $2 = the default answer
-#
-# Save the user input (or the default) in $resp.
-ask_until() {
- resp=
- while [ -z "$resp" ] ; do
- ask "$1" "$2"
- done
-}
-
-# Ask for the user to select one value from a list, or 'done'.
-#
-# $1 = name of the list items (disk, cd, etc.)
-# $2 = question to ask
-# $3 = list of valid choices
-# $4 = default choice, if it is not specified use the first item in $3
-#
-# N.B.! $3 and $4 will be "expanded" using eval, so be sure to escape them
-# if they contain spooky stuff
-#
-# At exit $resp holds selected item, or 'done'
-ask_which() {
- local _name=$1 _query=$2 _list=$3 _def=$4 _dynlist _dyndef
-
- while :; do
- # Put both lines in ask prompt, rather than use a
- # separate 'echo' to ensure the entire question is
- # re-ask'ed after a '!' or '!foo' shell escape.
- eval "_dynlist=\"$_list\""
- eval "_dyndef=\"$_def\""
-
- # Clean away whitespace and determine the default
- set -o noglob
- set -- $_dyndef; _dyndef="$1"
- set -- $_dynlist; _dynlist="$*"
- set +o noglob
- [ $# -lt 1 ] && resp=done && return
-
- : ${_dyndef:=$1}
- echo "Available ${_name}s are: $_dynlist."
- echo -n "Which one $_query? (or 'done') "
- [ -n "$_dyndef" ] && echo -n "[$_dyndef] "
- _ask || continue
- [ -z "$resp" ] && resp="$_dyndef"
-
- # Quote $resp to prevent user from confusing isin() by
- # entering something like 'a a'.
- isin "$resp" $_dynlist done && break
- echo "'$resp' is not a valid choice."
- done
-}
-
-# Ask for user input until a non-empty reply is entered.
-#
-# $1 = the question to ask the user
-# $2 = the default answer
-#
-# Save the user input (or the default) in $resp.
-ask_until() {
- resp=
- while [ -z "$resp" ] ; do
- ask "$1" "$2"
- done
-}
-
-# http://en.wikipedia.org/wiki/Hostname#Restrictions_on_valid_host_names
-valid_hostname() {
- # check length
- if [ $(echo "$1" | wc -c) -gt 63 ]; then
- echo "Hostname '$1' is too long."
- return 1
- fi
- # check that it only contains valid chars
- if ! [ -z "$(echo $1 | sed 's/[0-9a-z-]//g')" ]; then
- echo "Hostname must only contain letters (a-z), digits (0-9) or -"
- return 1
- fi
- # must not start with -
- case "$1" in
- -*) echo "Hostname must not start with a '-'"; return 1;;
- esac
- return 0
-}
-
-# return last ipv4 address and mask
-#
-# $1 = interface
-#
-last_ipv4_addr_mask() {
- local _iface=$1
- ip addr show dev $_iface | awk '$1 == "inet" {print $2}' | tail -n1
-}
-
-valid_ip() {
- [ "$1" ] || return 0
- ipcalc -s $1
-}
-
-# ask for hostname
-#
-# $1 = default
-#
-# retrusn hostname in global var $resp
-#
-ask_hostname() {
- while true; do
- ask "Hostname for new vserver:" $1
- if [ -d /etc/vservers/$resp ]; then
- echo "/etc/vservers/$resp already exist"
- continue
- fi
- if [ -d /vservers/$resp ]; then
- echo "/vservers/$resp already exist"
- continue
- fi
- valid_hostname $resp && break
- done
-}
-
-ask_ifaceopts() {
- # get ip address(es)
- resp=
- local ifaceopts= _def= _iface=
- local ifaces=$(ip addr | awk -F: '$1 ~ /^[0-9]/ {printf "%s" $2} END {printf "\n"}')
- local last_iface=$(echo $ifaces | sed 's/.* //')
- while [ "$resp" != "done" ]; do
- if [ -z "$ifaces" ] || [ "$ifaces" = "lo " ] || [ -n "$ifaceopts" ]; then
- _def="done"
- else
- _def=$(echo $ifaces | sed 's/.* //')
- fi
- ask_which "network interface" "to use for $_hostname" \
- "$ifaces" $_def
- [ "$resp" = "done" ] && break
-
- _iface=$resp
- ifaces=$(rmel $_iface $ifaces)
- # suggested ip by last digit + 1
- _last_ip_mask=$(last_ipv4_addr_mask $_iface)
- _last_ip=${_last_ip_mask%/*}
- _last_ip_digit=${_last_ip##*.}
- _ip=${_last_ip%.*}.$((($_last_ip_digit + 1) % 256))
- _mask=${_last_ip_mask#*/}
- while true; do
- ask "Enter IP address/mask for $_iface:" $_ip/$_mask
- valid_ip $resp && break
- echo "$resp is not a valid IPv4 address/mask"
- done
- _ip_mask=$resp
- ifaceopts="$ifaceopts --interface $_iface:$_ip_mask"
-
- # suggest context from last digit in first ip address
- if [ -z "$_context" ]; then
- _ip=${_ip_mask%/*}
- _last_digit=${_ip##*.}
- _context=$((10000 + $_last_digit))
- fi
- done
- resp="$ifacesopts"
-}
-
-ask_context() {
- # get context id
- while true; do
- ask "Enter context id for $_hostname:" $_context
- if echo "$resp" | egrep -q "[0-9]+"; then
- [ $resp -ge 0 ] && [ $resp -lt 65535 ] && break
- fi
- echo "Context id must be a 0-65534 number"
- done
-}
-
-ask_template() {
- local temp
- # get template
- while true; do
- ask "Enter template file (or empty for generate a new):" \
- $_template
- if [ -z "$resp" ] || [ -r "$resp" ]; then
- break
- fi
- echo "Can not read $resp"
- done
- temp=$resp
- if [ -z "$temp" ]; then
- temp=/vservers/template.tar.gz
- echo -n "Generating template..."
- if setup-vs-template -q -o $temp; then
- echo "ok"
- else
- echo "Failed to create template"
- exit 1
- fi
- fi
- resp=$temp
-}
-
-usage() {
- echo "Usage: ${0##*/} [-h] [HOSTNAME...]"
- exit 1
-}
-
-while getopts "h" opt; do
- case "$opt" in
- h) usage;;
- ?) usage;;
- esac
-done
-
-shift $(($OPTIND - 1))
-
-if [ "$(whoami)" != "root" ]; then
- echo "Need to be root. Sorry."
- exit 1
-fi
-
-while true; do
- ask_hostname $1
- _hostname=$resp
-
- ask_ifaceopts
- _ifaceopts=$resp
-
- ask_context
- _context=$resp
-
- ask_template
- _template=$resp
-
- vserver $_hostname build \
- --hostname $_hostname \
- $_ifaceopts \
- --context $_context \
- -m template -- -t "$_template" -d alpine \
- && cp /etc/resolv.conf /vservers/$_hostname/etc/ \
- && cp /etc/apk/repositories /vservers/$_hostname/etc/apk/ \
- || exit 1
-
- shift
- [ $# -le 0 ] && exit 0
-done
diff --git a/testing/util-vserver/setup-vs-template b/testing/util-vserver/setup-vs-template
deleted file mode 100644
index 8ad7f3fae..000000000
--- a/testing/util-vserver/setup-vs-template
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/bin/sh
-
-# create a vserver template
-PROG=$0
-
-usage() {
- echo "usage: $PROG [-fhq] [-o OUTFILE] [-X repository] [packages...]"
- exit $1
-}
-
-clean_exit() {
- rm -rf "$tmpdir"
- exit $1
-}
-
-outfile=template.tar.gz
-fakeroot=
-repos=
-while getopts "ho:qX:" opt; do
- case "$opt" in
- h) usage 0;;
- o) outfile="$OPTARG";;
- q) quiet=-q;;
- X) repos="$repos --repository $OPTARG";;
- esac
-done
-shift $(( $OPTIND - 1 ))
-
-if [ "$(whoami)" != "root" ]; then
- echo "Warning: you need root permissions" >&2
-fi
-
-tmpdir=$(mktemp -d ${TMPDIR:-/tmp}/setup-vs-template-XXXXXX)
-
-apk add --root "$tmpdir" --initdb --keys-dir /etc/apk/keys -U \
- $quiet ${repos:---repositories-file /etc/apk/repositories} \
- alpine-base $@ \
- || clean_exit 1
-
-tar -czf "$outfile" -C "$tmpdir" $(ls "$tmpdir") || clean_exit 1
-
-[ -z "$quiet" ] && echo "Created $outfile"
-clean_exit 0
-
diff --git a/testing/util-vserver/util-vserver.post-install b/testing/util-vserver/util-vserver.post-install
deleted file mode 100644
index 9c8aad1e4..000000000
--- a/testing/util-vserver/util-vserver.post-install
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-
-if [ -f /etc/vservers/.defaults/rlimits/nproc ]; then
- exit 0
-fi
-
-# calculate the nproc limit from amount of ram
-memtotal=$(awk '$1 == "MemTotal:" {print $2}' /proc/meminfo 2>/dev/null)
-nproc=$(( ${memtotal:-524288} / 256 ))
-
-# set a "sane" default nproc limit
-echo "Setting default nproc limit to $nproc"
-mkdir -p /etc/vservers/.defaults/rlimits
-echo $nproc > /etc/vservers/.defaults/rlimits/nproc
-
diff --git a/testing/util-vserver/util-vserver.post-upgrade b/testing/util-vserver/util-vserver.post-upgrade
deleted file mode 120000
index c5db4163f..000000000
--- a/testing/util-vserver/util-vserver.post-upgrade
+++ /dev/null
@@ -1 +0,0 @@
-util-vserver.post-install \ No newline at end of file
diff --git a/testing/util-vserver/validate.patch b/testing/util-vserver/validate.patch
deleted file mode 100644
index 081dce5a3..000000000
--- a/testing/util-vserver/validate.patch
+++ /dev/null
@@ -1,10 +0,0 @@
-diff -ru a/m4/validate.am b/m4/validate.am
---- a/m4/validate.am 2009-10-02 17:57:03.000000000 +0000
-+++ b/m4/validate.am 2009-10-02 17:58:15.000000000 +0000
-@@ -26,5 +26,5 @@
- .%-up-to-date:
- @rm -f .*-up-to-date
- @$(MAKE) -s clean
-- @touch -t 197001020000 '$@'
-+ @cp -a Makefile.am '$@'
- @$(MAKE) -s $(BUILT_SOURCES)