diff options
Diffstat (limited to 'testing')
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 3d7542cb07..0000000000 --- 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 3085218c09..0000000000 --- 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 d647a1f9be..0000000000 --- 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 5451bc6915..0000000000 --- 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 35fe4383e2..0000000000 --- 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 d7a3fe859b..0000000000 --- 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 289aad403b..0000000000 --- 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 67857e2f7d..0000000000 --- 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 735d1c5a3f..0000000000 --- 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(®isterlock); -+ if (hfccard != NULL) { -+ hfccard->cardno = hfc_dev_count++; -+ hfccard->next = hfc_dev_list; -+ hfc_dev_list = hfccard; -+ } -+ spin_unlock(®isterlock); -+} -+ -+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(®isterlock); -+ 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(®isterlock); -+} -+#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 719accdc69..0000000000 --- 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(®isterlock); - } - --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(®isterlock); -+ 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 34901d7e04..0000000000 --- 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 2fb20c4098..0000000000 --- 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 24d8150ae8..0000000000 --- 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 eacc2cb624..0000000000 --- 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 cc471cc4eb..0000000000 --- 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 53861e8932..0000000000 --- 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 e14c1f6dab..0000000000 --- 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 dffd3c8804..0000000000 --- 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 8ad7f3fae8..0000000000 --- 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 9c8aad1e4c..0000000000 --- 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 c5db4163fd..0000000000 --- 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 081dce5a31..0000000000 --- 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) |