From 2a6a828db06b2dcf0ea66b310ccf86ce4e9c10fe Mon Sep 17 00:00:00 2001 From: lxnay Date: Tue, 24 Mar 2009 15:14:45 +0000 Subject: [PATCH] linux-sabayon-2.6.29: new kernel, new fun git-svn-id: http://svn.sabayonlinux.org/overlay@2890 d7aec97c-591d-0410-af39-a8856400b30a --- sys-kernel/linux-sabayon/Manifest | 60 +- ...nt-tuxonice-for-head.patch-20090313-v1.bz2 | Bin 0 -> 114830 bytes .../files/2.6.29/genpatches/4100_dm-bbr.patch | 1190 +++++ .../genpatches/4200_fbcondecor-0.9.4.patch | 1777 +++++++ .../genpatches/4400_alpha-sysctl-uac.patch | 162 + .../linux-sabayon-2.6.29-aufs.patch.bz2 | Bin 0 -> 108390 bytes .../2.6.29/mactel/1-bcm5974-headers.patch | 126 + .../2-bcm5974-quad-finger-tapping.patch | 46 + .../mactel/3-bcm5974-macbook5-support.patch | 129 + .../files/linux-sabayon-2.6.29-amd64.config | 4285 ++++++++++++++++ .../files/linux-sabayon-2.6.29-x86.config | 4513 +++++++++++++++++ .../linux-sabayon/linux-sabayon-2.6.29.ebuild | 160 + 12 files changed, 12400 insertions(+), 48 deletions(-) create mode 100644 sys-kernel/linux-sabayon/files/2.6.29/current-tuxonice-for-head.patch-20090313-v1.bz2 create mode 100644 sys-kernel/linux-sabayon/files/2.6.29/genpatches/4100_dm-bbr.patch create mode 100644 sys-kernel/linux-sabayon/files/2.6.29/genpatches/4200_fbcondecor-0.9.4.patch create mode 100644 sys-kernel/linux-sabayon/files/2.6.29/genpatches/4400_alpha-sysctl-uac.patch create mode 100644 sys-kernel/linux-sabayon/files/2.6.29/linux-sabayon-2.6.29-aufs.patch.bz2 create mode 100644 sys-kernel/linux-sabayon/files/2.6.29/mactel/1-bcm5974-headers.patch create mode 100644 sys-kernel/linux-sabayon/files/2.6.29/mactel/2-bcm5974-quad-finger-tapping.patch create mode 100644 sys-kernel/linux-sabayon/files/2.6.29/mactel/3-bcm5974-macbook5-support.patch create mode 100644 sys-kernel/linux-sabayon/files/linux-sabayon-2.6.29-amd64.config create mode 100644 sys-kernel/linux-sabayon/files/linux-sabayon-2.6.29-x86.config create mode 100644 sys-kernel/linux-sabayon/linux-sabayon-2.6.29.ebuild diff --git a/sys-kernel/linux-sabayon/Manifest b/sys-kernel/linux-sabayon/Manifest index 6f9ef67f9..ff97ffdb0 100644 --- a/sys-kernel/linux-sabayon/Manifest +++ b/sys-kernel/linux-sabayon/Manifest @@ -1,41 +1,3 @@ -AUX 2.6.23/2.6.23.12-13.patch 2059 RMD160 4ebb9ce230f045af29ec9990063076ebdd0404ec SHA1 66e9a2615a7be1c9616a4fb2de23e96bceb4279b SHA256 2ee532177e2c999f181a024aeb8cfe91e8ee655728e42caa1b90f91da3786087 -AUX 2.6.23/2.6.23.13-14.patch 731 RMD160 c20ee426a046e05710fc2ddcc822c46e89b722ef SHA1 adf1fbb55b6bd7343556fa9173c6cf3c5c38516f SHA256 a42d1ad69bf9becebfaad5198e06e6574311ed77f5b0225502b8f8723db5e936 -AUX 2.6.23/2.6.23.14-15.patch 258414 RMD160 4e2199b0fd9cefcaa425cb051c6f853edae64201 SHA1 336cbfcc7e63f7b129493f813f3f8fda8663c20c SHA256 4608d405915c9ff9448e60efafe90893998803dc389972cd9e899e6429d413a3 -AUX 2.6.23/2.6.23.15-16.patch 331 RMD160 2e83865218d7b1b1f0d71fab2cc931b1836fb262 SHA1 a76d6191adf993b7954f55e97ec402f46c2b198f SHA256 c409ba238109f21d5e432c8f00a2c3adca844febb70a981d4212409f8a9a48ce -AUX 2.6.23/acer-acpi-2.6.23.patch 39757 RMD160 50082205ffe394296c3a62fb8032baed48425ee2 SHA1 b6e3dacdaaa3c0880ae35d7fc48fe80c86620233 SHA256 543d196a5bad964971281bc13f04581b3a16f549b358dd0f4417bc8ee5bb7b12 -AUX 2.6.23/acpi-release-20070126-2.6.23.patch 265448 RMD160 24726a2f2012debc0bd22cd1eab008076e43799a SHA1 b677ac7d25113fca33571a35e23598f58bc8ab8b SHA256 e441d8d71dcaaa2ed4931362b24ca52278f4bb4803ffa488b881ca749b096269 -AUX 2.6.23/aufs-cvs-0710115-2.6.23.patch 612238 RMD160 60785216b71af708038a3da614330606b681e643 SHA1 d1621de5c2c6a66b1809b89e5e17fc7b11215970 SHA256 0b82fdaa53ac38f3553619d06c435251e92ab24790b1e7ef7de445ef127a8b4b -AUX 2.6.23/hrtimers-2.6.23.patch 188540 RMD160 551fa2c0622a93b4d19e612a556d0f5c359f0607 SHA1 c97d8aa03e0995787028a052a9ddd7bcfd21c706 SHA256 b2238d48c9cf7475e5e568e714a9d6fdac19c045017451bfb0dc62718b427068 -AUX 2.6.23/linux-2.6.23.11-12.patch 2038 RMD160 c50e8d801ddba078fe4e90bea12d8e2a2f516f5a SHA1 7f184333923f00627b9f2cef19bce74de036a852 SHA256 dc09d1bed9844ad79952d24b33fbcd0c66ab5eb4ccc56f24f2ab64d3e299e8f1 -AUX 2.6.23/linux-2.6.23.11.patch 252447 RMD160 17970c08abf911066c05bbd68570db4681dab981 SHA1 4c68719689832b4f5c42433d08693eb581dc4edc SHA256 60fcd70364578ac31869ef46aebf5cdf4f970fd32b78436bda4863bab34893f1 -AUX 2.6.23/linux-2.6.23.9.patch 199789 RMD160 83dbe72bda88b310407b6cf9b7a649bcf25f7f33 SHA1 c903c402a9df3291073842387d144560c620177c SHA256 9b30f12625d7586ca4ac64ebab14d393173f1d6a702b41ee740eb0f2685eacf9 -AUX 2.6.23/linux-phc-0.3.0-pre1-2.6.23.patch 15780 RMD160 c32694073cf315b51063e938d510640d1b333ec9 SHA1 66f63c3391e71fd1f0934305ff68643b9379ca13 SHA256 8dbbda9ab58b801342f037b63ca5d3ede2ed12d4dc75b3affb1bff50e468a933 -AUX 2.6.23/mactel-patches-2.6.23.patch 26289 RMD160 59e2d43eac3a0178bf85293046a1a1ed80062fbc SHA1 06f9eb9e2c52efd7843dbdf7c7993d1301a43852 SHA256 dbe35b10ac9c4a2675b2dab7836f456ae994dd36990b101511cae6dbc7e4165b -AUX 2.6.23/pm_qos-2.6.23.patch 33320 RMD160 7dd597f8c0bff1469c67d4ad089d1d2b89e7e6e6 SHA1 d6528353d1b5d8cf3b93a1e7b7e89cadb21cb245 SHA256 7d47838a9e41c46c3d451c39d224cf0d06114474151b5bb769b0a164f50535a7 -AUX 2.6.23/powertop-2.6.23.patch 4595 RMD160 316af6e73c7feefce19e3ec6bb859f0a5198f73c SHA1 ec81f22cc6620eefa7ff8183dae3e9ad7a20a210 SHA256 f89bc0c7f69a4b5a2b7b353be602019cc07db46da46769d9c3918550df0a171e -AUX 2.6.23/rt2x00-latest-2.6.23.patch 101563 RMD160 51ba6e7be27ea51aa555e09b2c2e1edc641e3364 SHA1 eb820ff9a36fcee7704780e95bbc586d2bfd8e9a SHA256 3e1eadc095921b5f165894684d1f3808988b068aa9cf7a48b3049b7d25d4cb6b -AUX 2.6.23/sabayon-sources-2.6.23-acpi-concurrent-thermal-checks.patch 2060 RMD160 566671e105c41f85aab8dd5dc74b4d635674163a SHA1 e4208bb6bb43b4dde8c62a99d0a29316316292ec SHA256 9d859c85f3e0f644cf9034f2d46ad9576fdbeb42704302e90e434542b7622fc1 -AUX 2.6.23/sabayon-sources-2.6.23-acx-old.patch 670509 RMD160 b87e8c5e1a48dc73125d374a2077bbfba9528ca3 SHA1 2197cf883b51379700262798c606b77f9b2c6028 SHA256 f6687b464a672a786a273eada69bf7a5a8ce006566ed9dd7047be014fea5f929 -AUX 2.6.23/sabayon-sources-2.6.23-acx.patch 454791 RMD160 aa05853b4c4d62985389186d3b7f63f282c8e180 SHA1 4fefdade999cd3c66a92fbbfb5487f4c2d1fe5d6 SHA256 2a3d58dac359a0323fbfcd486f9b383f763a76b54f3351075f4300600d5a5d51 -AUX 2.6.23/sabayon-sources-2.6.23-dm-bbr.patch 32548 RMD160 e6a65d6905107251760f790724875f488d382fe1 SHA1 3d0006db5a527d76d8f800da4c317d18e6d302e9 SHA256 8e823b5c15272a55ecc96e87ba9bddcb42e0c2f727e29d27b598163da4c7a8f0 -AUX 2.6.23/sabayon-sources-2.6.23-e1000e.patch 528527 RMD160 218a8e89f85ab7b34bbb02135b435a4d90053371 SHA1 5263118a4b01d6051eb19b2026b3e1a0a3d58348 SHA256 7d43542ce43de4cc999792f1632509f893615098bb09fe9e7048dfa7558688ee -AUX 2.6.23/sabayon-sources-2.6.23-forcedeth-boot-delay.patch 2224 RMD160 696c0b0f2b4813089e90b8a40ad87628fdfa8016 SHA1 63abe395088c10563eda6c66a618cba57eadcf09 SHA256 e18e052a80a5435a3708d6d40e70f270322a552b2125c606891579992e422d94 -AUX 2.6.23/sabayon-sources-2.6.23-from-ext4dev-to-ext4.patch 1323 RMD160 ee811d53c2ec0f038518655114c346c7191bf8f2 SHA1 67a88a2c4c084913404037dabd06978c413ab5a5 SHA256 787166df34c422ee07c8bdf4ff61c0bbed983e434b4ffb3bb2010744ca7100bb -AUX 2.6.23/sabayon-sources-2.6.23-hostap-netdev-type.patch 4157 RMD160 9d99acab2748dcaba24a6a4108d574c0a4143ca9 SHA1 77eb3a1997baf31b06465e7f970c89feb6dda13a SHA256 25432a2e0d8cacf516a3aa26ac100e4700c6e66f935750cbdb215102e0790d51 -AUX 2.6.23/sabayon-sources-2.6.23-ipw3945-1.2.0-2.6.22.patch 616241 RMD160 c2453879ecd7fc660fa27de27e2d7583c272ba48 SHA1 caaa993d919c872dba0526c7f5ac448ddd83ae63 SHA256 3b5bc542a9ccd35f026ec4916db62d45d9b20ff25e1879a7109f465c9c081df8 -AUX 2.6.23/sabayon-sources-2.6.23-mac80211-drivers.patch 5171213 RMD160 c2050f251556d280d257025f34f6daa0e6c12e2b SHA1 47a6ee890860b848f00db2e4fa9eca68f90ec6a4 SHA256 255db9657ffe4584453d4e36f49cf17647c07f681432d3be954d4761812b4094 -AUX 2.6.23/sabayon-sources-2.6.23-mactel-appleir.patch 11033 RMD160 ed3a534f1ecb29677be835f79708234d0997f925 SHA1 1c33e384b458a389aad42e675b73faf7a4990e47 SHA256 3632638c9c99684743ab26b9edd3f241eecb0d0199436fb771eeb0cc9ad7ca05 -AUX 2.6.23/sabayon-sources-2.6.23-sandbox-violation.patch 527 RMD160 f8ff245f658327137160fa58bc3e64ac957f8f53 SHA1 2bcce7ba68041a38bf7f71c6ba4b9716ad86eef4 SHA256 60b26946f74fd7d15c70c4aa15c669a75486a5cb9f959d3326f079e32c6da558 -AUX 2.6.23/sabayon-sources-2.6.23-squashfs-3.2.patch 132122 RMD160 2b37cf49d9fce432ed974251e31bca2fbd6856d8 SHA1 55f13f44aba49faf45fd1870218dd95256583892 SHA256 c20e4034ba51d9ec2e6e74f10cb94f5f168528cb84dd1e91f9055ac3bd5d4459 -AUX 2.6.23/sabayon-sources-2.6.23-squashfs-update.patch 684 RMD160 ef81e679f67b095b1e1b50b368da96e5a8bf2967 SHA1 6fe33d53a507526bb8bac252735f3edf715468fe SHA256 cf6158a2e12fb7ab01ca0831bd2075548cc94505653e5793b68579d803c219f6 -AUX 2.6.23/thinkpad-2.6.23.patch 134570 RMD160 b072bad16e6e2e29f1d148414d1a413fe6f980ac SHA1 e8e5e07e807b0bb931c5d8be083c5e9cb93ad62e SHA256 d168992d7ed0150e070aad7bc8caea029aae162f469b7195923addc1a3444529 -AUX 2.6.24/2.6.24.2.patch 62693 RMD160 3eaf04a29a3067b02dba8b4539eb3a6698b60519 SHA1 f4d55516492c7be73ee46a215e8b8d642cdd712e SHA256 b450a8eaf10a06f2a3fe661a387b096024f91ae082831502ef69d6e4b231005e -AUX 2.6.24/linux-sabayon-2.6.24-atl2.patch 238702 RMD160 d9d74661226bc2460650d36892e80fbf511bb880 SHA1 2aa877059157eeb31688f26ad3531188c44636d1 SHA256 5d9901d525b89a13f331596f974b55b3be805875521812f8a42047064eb06d10 -AUX 2.6.24/linux-sabayon-2.6.24-aufs-cvs-20080121.patch 744970 RMD160 8ab6021b6e71c56603702ef32ad96f0147970030 SHA1 f9b0c5ea54517b5da83f100e9466202c331cc3b5 SHA256 b2038c4d8273ae6918fb165bcc0c49fb6315f18ba93c27e777ed8997760d1219 -AUX 2.6.24/linux-sabayon-2.6.24-from-ext4dev-to-ext4.patch 1323 RMD160 ee811d53c2ec0f038518655114c346c7191bf8f2 SHA1 67a88a2c4c084913404037dabd06978c413ab5a5 SHA256 787166df34c422ee07c8bdf4ff61c0bbed983e434b4ffb3bb2010744ca7100bb -AUX 2.6.24/linux-sabayon-2.6.24-ipw3945-1.2.0-2.6.22.patch 616241 RMD160 c2453879ecd7fc660fa27de27e2d7583c272ba48 SHA1 caaa993d919c872dba0526c7f5ac448ddd83ae63 SHA256 3b5bc542a9ccd35f026ec4916db62d45d9b20ff25e1879a7109f465c9c081df8 -AUX 2.6.24/linux-sabayon-2.6.24-logfs-744.patch.bz2 41539 RMD160 93776d3fa1009ab75a29b9b64bba6adf92b4cf6a SHA1 9c5d40d3d1dafe97978d3bf2d54731fbefcde215 SHA256 e7eacb22f82ac1e38c53b4ea7e55398854c6dc3f1568a1836bcafa9edb07b956 -AUX 2.6.24/linux-sabayon-2.6.24-squashfs-3.3.patch 128850 RMD160 f7679ec97f92bafad403ec5f4fb614289498769d SHA1 3c2c3d66d9c2e306b9af229c447163389280ca3f SHA256 8b0618c43b6e9bd773d1f3458b1ad0e1061b46985ca660b1db2e1c7b48d902a7 AUX 2.6.25/genpatches/2705_alsa-hda-fujitsu.patch 2720 RMD160 8df328cad743c5ff202dd4e9d66e0cf8e51f05cd SHA1 b84a1fc7c5172b7e91bb52588a439c790da6485d SHA256 7865cee4a0a758cee54d4366a73475f3ddee4dfefae5703e7ffb67ffdc79275e AUX 2.6.25/genpatches/4105_dm-bbr.patch 32548 RMD160 e6a65d6905107251760f790724875f488d382fe1 SHA1 3d0006db5a527d76d8f800da4c317d18e6d302e9 SHA256 8e823b5c15272a55ecc96e87ba9bddcb42e0c2f727e29d27b598163da4c7a8f0 AUX 2.6.25/genpatches/4200_fbcondecor-0.9.4.patch 56203 RMD160 2ee97b46bb30e0fa448efe2a855e20f101e85bf2 SHA1 3a12e5e836cc523a0a22fc91562b05ff0adbae4c SHA256 08d7150d1309acd65e86089ff50fffb77c54422ee146a77647cb63e08e25a9f2 @@ -92,6 +54,14 @@ AUX 2.6.28/mactel/1-bcm5974-headers.patch 4839 RMD160 83f5ca0a53ebe19aeaaa7d952d AUX 2.6.28/mactel/2-bcm5974-quad-finger-tapping.patch 2014 RMD160 8ae24293dd608db76316ea0ebb90ce7e215df14a SHA1 a02b87b190916b193fe3b183e0fed86d34d863d6 SHA256 9ca9ddc1ffe2c9e23b74597479834c11fb98679aa258b61e1b025d3541f43c28 AUX 2.6.28/mactel/3-bcm5974-macbook5-support.patch 4515 RMD160 e69c5aa44b925c76995b5a040327b2ed4b7acc79 SHA1 62a729437a289cd7474d202dbe3fac0607152a83 SHA256 c1f5027fa74591123ff38968aceb9df715a40922efc865ec2ae2b58b728c49cd AUX 2.6.28/patch-2.6.28.8.bz2 162536 RMD160 c659a590bd2660d73f28c22fec1a103b191fd1e0 SHA1 2e36474b805b8331f56ae8c8c938cc59b7d277ed SHA256 98357a434f71081b121d449385bc9a24358eae254d3dff819788e2a0213bc781 +AUX 2.6.29/current-tuxonice-for-head.patch-20090313-v1.bz2 114830 RMD160 2113b151cdb1c8dcbd360fbe0305dad130459bf6 SHA1 321be2b9fbc1762946832248a1c124662870807d SHA256 bb0082f299a6581850aeb06a9c7ab676701cf65950e05b748230575efa1dea48 +AUX 2.6.29/genpatches/4100_dm-bbr.patch 33204 RMD160 0c827115eacc18122f7cb51e652df63f7d7c456d SHA1 7e4543db689bc771241242d98fce8ff8a8875afd SHA256 d05e1550456ff82187b5e43c31f032a63c7e9ff1e8ddd0cdf955d7240a7666c6 +AUX 2.6.29/genpatches/4200_fbcondecor-0.9.4.patch 54491 RMD160 6dfbef0122cee38c5b870d6709171504133183e9 SHA1 b60d0c6a76b4345c3cd8155206623d62aaf8d607 SHA256 352779beb1b242eadc69ee312a9ac56b0eb96f55eef426efd2e8604343cc46af +AUX 2.6.29/genpatches/4400_alpha-sysctl-uac.patch 4916 RMD160 eb693eeac14781165c04908cdfed6d886d291703 SHA1 7233d6309e24de5b9e3f294c73b1f45922f01e3e SHA256 093fa666bd3a3deca2ecb553dd8c72a9dea4294e880134efa9906bce5bce42c2 +AUX 2.6.29/linux-sabayon-2.6.29-aufs.patch.bz2 108390 RMD160 5af6da6523437271618eac3dd4e1b25eeb8a109e SHA1 55c086a788762f09125c133b661cdd1997c97b80 SHA256 4f9ec99d23d8761a63903a8d8a0ab2eb7834c0d5cdba65d7ad9e8d6ea7344705 +AUX 2.6.29/mactel/1-bcm5974-headers.patch 4839 RMD160 83f5ca0a53ebe19aeaaa7d952da5c79187e563af SHA1 157ecb6994b5903cd5a4eccc8552cc2c62b7463d SHA256 33ffab37c533a3a75ac628209bf8ab70e89c3ad81fd4491f2c4051cb66ba1043 +AUX 2.6.29/mactel/2-bcm5974-quad-finger-tapping.patch 2014 RMD160 8ae24293dd608db76316ea0ebb90ce7e215df14a SHA1 a02b87b190916b193fe3b183e0fed86d34d863d6 SHA256 9ca9ddc1ffe2c9e23b74597479834c11fb98679aa258b61e1b025d3541f43c28 +AUX 2.6.29/mactel/3-bcm5974-macbook5-support.patch 4515 RMD160 e69c5aa44b925c76995b5a040327b2ed4b7acc79 SHA1 62a729437a289cd7474d202dbe3fac0607152a83 SHA256 c1f5027fa74591123ff38968aceb9df715a40922efc865ec2ae2b58b728c49cd AUX linux-sabayon-2.6.23-amd64.config 73037 RMD160 e5619e1d7b18cc00642d248889a9cb3e81b7d22e SHA1 35eedefaec835cddacbdf4dfb5073a60d0d6f877 SHA256 9945ce34a5049cc4b66f85587cdf8ee0e00280a1ecca99c60ff10ded40d18527 AUX linux-sabayon-2.6.23-x86.config 80089 RMD160 18ce70bf9d8c04dbfdee6441c844c9383272eacd SHA1 e07793e3e626ae18c7faa432ec1b6c49872efb4b SHA256 c16730bc02590099d21b444a0438fbf64fe02b1a67ad9f2441d7e3fc5b2beb2a AUX linux-sabayon-2.6.24-amd64.config 77355 RMD160 d44cd3a782d2d7fd1ba436c238b9fd078bfd0f14 SHA1 ea21995f973f5c329e13353ca01f503ca0ad8a7d SHA256 4186b87b8d30c95bfe0f81832cc44f206b18cbecb7eeeffc07bcec6d8a880826 @@ -106,26 +76,20 @@ AUX linux-sabayon-2.6.27-amd64.config 84982 RMD160 aa6a307c51bd8fd7a147a6aee14d1 AUX linux-sabayon-2.6.27-x86.config 90343 RMD160 71078df2f8d2aeab473ed94a6d5c336233faf8bd SHA1 60ad3a36cb2c545ab874213f04bd71433d2bb4fd SHA256 062df9112ce96f540aa9262b01e44cee038aaccaac93a4399e3d60d03bbc616d AUX linux-sabayon-2.6.28-amd64.config 89991 RMD160 eab55bcf34cbef9cce894ab28d03deafca32bbe1 SHA1 ad333228f81500b33d1d8e0b543d8e6011863131 SHA256 c265c31aeb3ea7237453c538e10e8f1ed49978847ab218a273cc6483afa7d0a3 AUX linux-sabayon-2.6.28-x86.config 95373 RMD160 a4679c28fd5eb80b0e6b5dc62e2062d62a3f017e SHA1 775c0d21ae23dabec408defd41c6cf2bcb88f6c7 SHA256 63f883c1250b6d68a592dbcb5a54f7562b4994830a3c55f700ee916120d3b37e -DIST fbcondecor-0.9.4-2.6.23-rc7.patch 55955 RMD160 54f09362d763705640dc89b7a9c4b1064335796b SHA1 4f3b9e66682e78b9e8b59bbe76dd87d1b96c3718 SHA256 f0c966d5b0b95ee76b81a79e573b08951d02380097f6e0c2c365b5f716a09bb3 -DIST fbcondecor-0.9.4-2.6.24-rc7.patch 55668 RMD160 1894dabe1d75408efe1406bc69936f60de14b394 SHA1 f4fcc9aa4a1d6521d34521c8832faf7f63dc7884 SHA256 4f43665a39b09f9660faf807662c76dbbee51c85937d3a89402795e568124c65 -DIST linux-2.6.23.tar.bz2 45488158 RMD160 755690e80751d5de86d260fe05c6eeadde116c4e SHA1 3a186adf13e44415796ab6381aa8979b16a5d5ca SHA256 d4e67c0935ffb2a4158234bff92cc791b83177866009fc9b2214104e0038dbdb -DIST linux-2.6.24.tar.bz2 46737783 RMD160 0e5194c69c3d82c41ece689c4f84e638f8776d34 SHA1 351aebc784a5395fe4c92d1e514a89680482f7e2 SHA256 413c64fbbcf81244cb5571be4963644a1e81166a2b0f008a016528363b65c5d3 +AUX linux-sabayon-2.6.29-amd64.config 93419 RMD160 c26895dec38249f1cd3bfa4902d787e1576e045a SHA1 46e8b77cd6c370aea98feec7e1720bf209187374 SHA256 357461e9d9e9f0b77b32cafef97178fcb8e8c89b25a15fca8a9b7e870a5e6413 +AUX linux-sabayon-2.6.29-x86.config 98397 RMD160 368c7cf59d7ac9cea0ed9d571ce1da904cbe5eb5 SHA1 90779c31713530b87520aec84e706c1c6c5e155f SHA256 9d11b75a9d4b832a331fc6017d8d1d0cc22c9f5939007c4b6ec54c154c5c911a DIST linux-2.6.25.tar.bz2 48601689 RMD160 cf3ed52f888fe9df7a93abe4fdc2f598e1ba0ce4 SHA1 aa6187a1c212dd2d8bd906b023fcefdcf711f35e SHA256 108b2a3f2b05c0e57d1d0977619525e46f8d4b425aef4b38b47dcf94292f2dd2 DIST linux-2.6.26.tar.bz2 49441874 RMD160 57c37e81afa48e7c05e1a933d390a12ac2921255 SHA1 3f44384bf84f27add3b6c43ec68f974d7f7e9c67 SHA256 666488e2511393fdb901eaf1e67275bcc38ab37c930e8a9adb290a95c1721a2a DIST linux-2.6.27.tar.bz2 50355835 RMD160 5be4595ad824a4af67c1ec0c692838ad0c31f0c0 SHA1 8425ec3be2652f9d511911ff4fcf99039d4574be SHA256 0e99bf9e83f4d1ae0c656741a84dfddfa9c4d2469cf35475f5939d02dc3e4393 DIST linux-2.6.28.tar.bz2 52665364 RMD160 47e8925220e29e239f9478228fc53543c1f7b300 SHA1 4f40f8bf3fd110b0cc6e1fea5f539c98f9959e94 SHA256 ae0d97c55efe7fce01273c97f8152af0deff5541e3bbf5b9ad98689112b54380 -DIST tuxonice-3.0-rc3-for-2.6.23.9.patch.bz2 111146 RMD160 6a44034aa195e941483f62914be59e7c25b45596 SHA1 8cd1bd0c454f3f5b2a42e8d916577e8c35529a93 SHA256 d3651a4d37545f5640739109dcbf1b0415c44ed491f406e9f427b60a2c0bc699 -DIST tuxonice-3.0-rc5-for-2.6.24.patch.bz2 113258 RMD160 c1fde23de970b6347302ae2bff71bf3ab1bfbeb3 SHA1 bf559c8dead1d0372d3388e4f9d2c4d145862ec1 SHA256 0a3b502b89bebbcd0f701a0e89c072797257ce766b2ea2d2bda1f6762ca2ce9b +DIST linux-2.6.29.tar.bz2 56579370 RMD160 e0e8c0635665ed34618b04fe1140015a4b6ff806 SHA1 0640a2f4bea3fc272541f322b74ea365ad7f2349 SHA256 58a5ea16d499fe06f90fcbf1d687d1235d2cb9bc28bf979867bd3faadf38fc3f DIST tuxonice-3.0-rc7-for-2.6.25.patch.bz2 113685 RMD160 863ca8197572c2b1a14a0922fff21723fe23d455 SHA1 3629a55777740bda65d5df62309aa3e978e91f79 SHA256 1dbd15f436026c5383db42da7ce96708542b3dd42e17446bf809e5b8ce5c3bd2 DIST tuxonice-3.0-rc7a-for-2.6.26.patch.bz2 114165 RMD160 d20a16d73b26ca9ff685a7c0d25b903faf3b8b69 SHA1 6bbd5233740f4d5b4ceb2af0294286a4cd8a9fa7 SHA256 1969b906db3bf478d684e89f5395df69fa9142db6bae56a7046b42adae5c381b -DIST unionfs-2.2.1_for_2.6.23.12.diff.gz 76680 RMD160 9ecdffbb576ce9b7fcce0a145c6c78dddfb74cfb SHA1 a972ec81097b0e4262d6cf596ff741e120811ff5 SHA256 1caa738ba1f6c6ac4185f60c4325d9bad3990690b8476b6145c4704d04a2b5e9 -DIST unionfs-2.2.3_for_2.6.24.diff.gz 76789 RMD160 c213efff91016cd1d7660913e791cf7b2dd6ea95 SHA1 a6d8fb804a7ffd2d94a4356c76c7d08d4d8798d7 SHA256 7bd36244b205f46452b577e79f77ed90b30cd6a5801e36fac57b696573ade513 DIST unionfs-2.3.3_for_2.6.25.diff.gz 79238 RMD160 2d154608374853436dfbe3ac44744a2de1e4584c SHA1 c3632054b37a5f58f63e19c477b39ee13b12e4f2 SHA256 9974ff963a1fbd2269dafe09daba6ed5e34fb92c4dd9c80542a365dac9995d0d DIST unionfs-2.4_for_2.6.26.diff.gz 80293 RMD160 54e7398c40ae747789f3a424cc09068cb3032933 SHA1 0128c4d8b5afc7dcfd1f2503f03860cf3b00be40 SHA256 1e556816d1e5295d69d1d48ca0b1343e84c888d39a2b6f280d7c52a67f160158 DIST unionfs-2.5_for_2.6.27-rc6.diff.gz 79653 RMD160 76865cec929c03aebec728e1526c0e4e0cf49d87 SHA1 82be9b593102a6053433c1964c9b7b4fbfc2ede6 SHA256 15a79b5c88f5a76877f2940736edac3416e29c9e38411d2417f3d81d10a52bd4 -EBUILD linux-sabayon-2.6.23-r1.ebuild 5112 RMD160 0b12eea6662151c0dda0e2c122260d5167fff273 SHA1 c43cade18add53692013eb7674d70512a0ef3e78 SHA256 b65cbdc2ba98527d2502bad93e18a8183a4d211eb424208365d24743d7400747 -EBUILD linux-sabayon-2.6.24.ebuild 4278 RMD160 8ae57542d64433beab8e4ceffe63dc658343ef68 SHA1 600fbc97c3bed826b699adcd20ce493ba582113e SHA256 528f115bd73cd81e4ad6e766286acfed38ee37932478724d0fc5e5bc5b3a6ee1 EBUILD linux-sabayon-2.6.25-r1.ebuild 4523 RMD160 0abb56889e4b02a2caccf23183ac31aec225c935 SHA1 f4afedbc1169f1c3a206c6cfd3df0b6f80388b48 SHA256 ae752e9a46c65e03a78e1277540b8ba84a2adcb568ea7b3234d9864419b8ae6d EBUILD linux-sabayon-2.6.26.ebuild 4420 RMD160 caccddcb71e5076857f75ec2de26d813fd07cf96 SHA1 b1ccb046da66deb1b85d2489cfa03f616ab20078 SHA256 64766a246d1d513cc241c5d4200463b214b984b345882c5ff030be1d867b447c EBUILD linux-sabayon-2.6.27.ebuild 4502 RMD160 f12876eb414137aaba769b8eb370c7cc2144bf99 SHA1 de173bd3adc565a9d2e743aa76f64d35ae147e54 SHA256 002c80afee74b712235762468a4d517fbc704f8d1bdada7432b6d770cebf96e2 EBUILD linux-sabayon-2.6.28.ebuild 4543 RMD160 46992b77f356ef6dd2765bc3d3f4a41419e39d4b SHA1 0889262d5eff1ace2657c527a18fce3bfafac43d SHA256 b450a4fa041f13004a25d19f68419e4ac655f86469d09d6a6d18d3bd7e0b4daa +EBUILD linux-sabayon-2.6.29.ebuild 4460 RMD160 aa606003fe1d54cc07d5e388536c9efc6bdb2d7d SHA1 aefd504d148608d0d5695c261fa2187be9c81451 SHA256 fcef19dd791485619a510a3fc9be7ae56b3840ad03afe85e0061839db84218f1 diff --git a/sys-kernel/linux-sabayon/files/2.6.29/current-tuxonice-for-head.patch-20090313-v1.bz2 b/sys-kernel/linux-sabayon/files/2.6.29/current-tuxonice-for-head.patch-20090313-v1.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..8a7edc29183bef03b35c49567734e822b62ff61a GIT binary patch literal 114830 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�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 Czq3mK literal 0 HcmV?d00001 diff --git a/sys-kernel/linux-sabayon/files/2.6.29/genpatches/4100_dm-bbr.patch b/sys-kernel/linux-sabayon/files/2.6.29/genpatches/4100_dm-bbr.patch new file mode 100644 index 000000000..590aa3708 --- /dev/null +++ b/sys-kernel/linux-sabayon/files/2.6.29/genpatches/4100_dm-bbr.patch @@ -0,0 +1,1190 @@ +BBR Target, updated by dsd@gentoo.org + +Incomplete changelog: + 2008/06/16: updated for new API in 2.6.26 + 2007/07/08: updated for new API in 2.6.22 + +Index: linux-2.6.26-gentoo/drivers/md/Kconfig +=================================================================== +--- linux-2.6.26-gentoo.orig/drivers/md/Kconfig ++++ linux-2.6.26-gentoo/drivers/md/Kconfig +@@ -288,4 +288,15 @@ config DM_UEVENT + ---help--- + Generate udev events for DM events. + ++config BLK_DEV_DM_BBR ++ tristate "Bad Block Relocation Device Target (EXPERIMENTAL)" ++ depends on BLK_DEV_DM && EXPERIMENTAL ++ ---help--- ++ Support for devices with software-based bad-block-relocation. ++ ++ To compile this as a module, choose M here: the module will be ++ called dm-bbr. ++ ++ If unsure, say N. ++ + endif # MD +Index: linux-2.6.26-gentoo/drivers/md/Makefile +=================================================================== +--- linux-2.6.26-gentoo.orig/drivers/md/Makefile ++++ linux-2.6.26-gentoo/drivers/md/Makefile +@@ -41,6 +41,7 @@ obj-$(CONFIG_DM_MULTIPATH_RDAC) += dm-rd + obj-$(CONFIG_DM_SNAPSHOT) += dm-snapshot.o + obj-$(CONFIG_DM_MIRROR) += dm-mirror.o dm-log.o + obj-$(CONFIG_DM_ZERO) += dm-zero.o ++obj-$(CONFIG_BLK_DEV_DM_BBR) += dm-bbr.o + + quiet_cmd_unroll = UNROLL $@ + cmd_unroll = $(PERL) $(srctree)/$(src)/unroll.pl $(UNROLL) \ +Index: linux-2.6.26-gentoo/drivers/md/dm-bbr.c +=================================================================== +--- /dev/null ++++ linux-2.6.26-gentoo/drivers/md/dm-bbr.c +@@ -0,0 +1,1012 @@ ++/* ++ * (C) Copyright IBM Corp. 2002, 2004 ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See ++ * the GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ * ++ * linux/drivers/md/dm-bbr.c ++ * ++ * Bad-block-relocation (BBR) target for device-mapper. ++ * ++ * The BBR target is designed to remap I/O write failures to another safe ++ * location on disk. Note that most disk drives have BBR built into them, ++ * this means that our software BBR will be only activated when all hardware ++ * BBR replacement sectors have been used. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "dm.h" ++#include "dm-bio-list.h" ++#include "dm-bio-record.h" ++#include "dm-bbr.h" ++ ++#define DM_MSG_PREFIX "bbr" ++#define SECTOR_SIZE (1 << SECTOR_SHIFT) ++ ++static struct workqueue_struct *dm_bbr_wq = NULL; ++static void bbr_remap_handler(struct work_struct *work); ++static struct kmem_cache *bbr_remap_cache; ++static struct kmem_cache *bbr_io_cache; ++static mempool_t *bbr_io_pool; ++ ++/** ++ * bbr_binary_tree_destroy ++ * ++ * Destroy the binary tree. ++ **/ ++static void bbr_binary_tree_destroy(struct bbr_runtime_remap *root) ++{ ++ struct bbr_runtime_remap **link = NULL; ++ struct bbr_runtime_remap *node = root; ++ ++ while (node) { ++ if (node->left) { ++ link = &node->left; ++ node = node->left; ++ continue; ++ } ++ if (node->right) { ++ link = &node->right; ++ node = node->right; ++ continue; ++ } ++ ++ kmem_cache_free(bbr_remap_cache, node); ++ if (node == root) { ++ /* If root is deleted, we're done. */ ++ break; ++ } ++ ++ /* Back to root. */ ++ node = root; ++ *link = NULL; ++ } ++} ++ ++static void bbr_free_remap(struct bbr_private *bbr_id) ++{ ++ spin_lock_irq(&bbr_id->remap_root_lock); ++ bbr_binary_tree_destroy(bbr_id->remap_root); ++ bbr_id->remap_root = NULL; ++ spin_unlock_irq(&bbr_id->remap_root_lock); ++} ++ ++static struct bbr_private *bbr_alloc_private(void) ++{ ++ struct bbr_private *bbr_id; ++ ++ bbr_id = kzalloc(sizeof(*bbr_id), GFP_KERNEL); ++ if (bbr_id == NULL) ++ return NULL; ++ ++ INIT_WORK(&bbr_id->remap_work, bbr_remap_handler); ++ spin_lock_init(&bbr_id->remap_root_lock); ++ spin_lock_init(&bbr_id->remap_ios_lock); ++ bbr_id->in_use_replacement_blks = (atomic_t) ATOMIC_INIT(0); ++ ++ return bbr_id; ++} ++ ++static void bbr_free_private(struct bbr_private *bbr_id) ++{ ++ vfree(bbr_id->bbr_table); ++ bbr_free_remap(bbr_id); ++ kfree(bbr_id); ++} ++ ++static u32 crc_table[256]; ++static u32 crc_table_built = 0; ++ ++static void build_crc_table(void) ++{ ++ u32 i, j, crc; ++ ++ for (i = 0; i <= 255; i++) { ++ crc = i; ++ for (j = 8; j > 0; j--) { ++ if (crc & 1) ++ crc = (crc >> 1) ^ CRC_POLYNOMIAL; ++ else ++ crc >>= 1; ++ } ++ crc_table[i] = crc; ++ } ++ crc_table_built = 1; ++} ++ ++static u32 calculate_crc(u32 crc, void *buffer, u32 buffersize) ++{ ++ unsigned char *current_byte; ++ u32 temp1, temp2, i; ++ ++ current_byte = (unsigned char *) buffer; ++ /* Make sure the crc table is available */ ++ if (!crc_table_built) ++ build_crc_table(); ++ /* Process each byte in the buffer. */ ++ for (i = 0; i < buffersize; i++) { ++ temp1 = (crc >> 8) & 0x00FFFFFF; ++ temp2 = crc_table[(crc ^ (u32) * current_byte) & ++ (u32) 0xff]; ++ current_byte++; ++ crc = temp1 ^ temp2; ++ } ++ return crc; ++} ++ ++/** ++ * le_bbr_table_sector_to_cpu ++ * ++ * Convert bbr meta data from on-disk (LE) format ++ * to the native cpu endian format. ++ **/ ++static void le_bbr_table_sector_to_cpu(struct bbr_table *p) ++{ ++ int i; ++ p->signature = le32_to_cpup(&p->signature); ++ p->crc = le32_to_cpup(&p->crc); ++ p->sequence_number = le32_to_cpup(&p->sequence_number); ++ p->in_use_cnt = le32_to_cpup(&p->in_use_cnt); ++ for (i = 0; i < BBR_ENTRIES_PER_SECT; i++) { ++ p->entries[i].bad_sect = ++ le64_to_cpup(&p->entries[i].bad_sect); ++ p->entries[i].replacement_sect = ++ le64_to_cpup(&p->entries[i].replacement_sect); ++ } ++} ++ ++/** ++ * cpu_bbr_table_sector_to_le ++ * ++ * Convert bbr meta data from cpu endian format to on-disk (LE) format ++ **/ ++static void cpu_bbr_table_sector_to_le(struct bbr_table *p, ++ struct bbr_table *le) ++{ ++ int i; ++ le->signature = cpu_to_le32p(&p->signature); ++ le->crc = cpu_to_le32p(&p->crc); ++ le->sequence_number = cpu_to_le32p(&p->sequence_number); ++ le->in_use_cnt = cpu_to_le32p(&p->in_use_cnt); ++ for (i = 0; i < BBR_ENTRIES_PER_SECT; i++) { ++ le->entries[i].bad_sect = ++ cpu_to_le64p(&p->entries[i].bad_sect); ++ le->entries[i].replacement_sect = ++ cpu_to_le64p(&p->entries[i].replacement_sect); ++ } ++} ++ ++/** ++ * validate_bbr_table_sector ++ * ++ * Check the specified BBR table sector for a valid signature and CRC. If it's ++ * valid, endian-convert the table sector. ++ **/ ++static int validate_bbr_table_sector(struct bbr_table *p) ++{ ++ int org_crc, final_crc; ++ ++ if (le32_to_cpup(&p->signature) != BBR_TABLE_SIGNATURE) { ++ DMERR("BBR table signature doesn't match!"); ++ DMERR("Found 0x%x. Expecting 0x%x", ++ le32_to_cpup(&p->signature), BBR_TABLE_SIGNATURE); ++ return -EINVAL; ++ } ++ ++ if (!p->crc) { ++ DMERR("BBR table sector has no CRC!"); ++ return -EINVAL; ++ } ++ ++ org_crc = le32_to_cpup(&p->crc); ++ p->crc = 0; ++ final_crc = calculate_crc(INITIAL_CRC, (void *)p, sizeof(*p)); ++ if (final_crc != org_crc) { ++ DMERR("CRC failed!"); ++ DMERR("Found 0x%x. Expecting 0x%x", ++ org_crc, final_crc); ++ return -EINVAL; ++ } ++ ++ p->crc = cpu_to_le32p(&org_crc); ++ le_bbr_table_sector_to_cpu(p); ++ ++ return 0; ++} ++ ++/** ++ * bbr_binary_tree_insert ++ * ++ * Insert a node into the binary tree. ++ **/ ++static void bbr_binary_tree_insert(struct bbr_runtime_remap **root, ++ struct bbr_runtime_remap *newnode) ++{ ++ struct bbr_runtime_remap **node = root; ++ while (node && *node) { ++ node = (newnode->remap.bad_sect > (*node)->remap.bad_sect) ? ++ &(*node)->right : &(*node)->left; ++ } ++ ++ newnode->left = newnode->right = NULL; ++ *node = newnode; ++} ++ ++/** ++ * bbr_binary_search ++ * ++ * Search for a node that contains bad_sect == lsn. ++ **/ ++static struct bbr_runtime_remap *bbr_binary_search( ++ struct bbr_runtime_remap *root, ++ u64 lsn) ++{ ++ struct bbr_runtime_remap *node = root; ++ while (node) { ++ if (node->remap.bad_sect == lsn) ++ break; ++ ++ node = (lsn > node->remap.bad_sect) ? node->right : node->left; ++ } ++ return node; ++} ++ ++/** ++ * bbr_insert_remap_entry ++ * ++ * Create a new remap entry and add it to the binary tree for this node. ++ **/ ++static int bbr_insert_remap_entry(struct bbr_private *bbr_id, ++ struct bbr_table_entry *new_bbr_entry) ++{ ++ struct bbr_runtime_remap *newnode; ++ ++ newnode = kmem_cache_alloc(bbr_remap_cache, GFP_NOIO); ++ if (!newnode) { ++ DMERR("Could not allocate from remap cache!"); ++ return -ENOMEM; ++ } ++ newnode->remap.bad_sect = new_bbr_entry->bad_sect; ++ newnode->remap.replacement_sect = new_bbr_entry->replacement_sect; ++ spin_lock_irq(&bbr_id->remap_root_lock); ++ bbr_binary_tree_insert(&bbr_id->remap_root, newnode); ++ spin_unlock_irq(&bbr_id->remap_root_lock); ++ return 0; ++} ++ ++/** ++ * bbr_table_to_remap_list ++ * ++ * The on-disk bbr table is sorted by the replacement sector LBA. In order to ++ * improve run time performance, the in memory remap list must be sorted by ++ * the bad sector LBA. This function is called at discovery time to initialize ++ * the remap list. This function assumes that at least one copy of meta data ++ * is valid. ++ **/ ++static u32 bbr_table_to_remap_list(struct bbr_private *bbr_id) ++{ ++ u32 in_use_blks = 0; ++ int i, j; ++ struct bbr_table *p; ++ ++ for (i = 0, p = bbr_id->bbr_table; ++ i < bbr_id->nr_sects_bbr_table; ++ i++, p++) { ++ if (!p->in_use_cnt) ++ break; ++ ++ in_use_blks += p->in_use_cnt; ++ for (j = 0; j < p->in_use_cnt; j++) ++ bbr_insert_remap_entry(bbr_id, &p->entries[j]); ++ } ++ if (in_use_blks) { ++ char b[32]; ++ DMWARN("There are %u BBR entries for device %s", ++ in_use_blks, format_dev_t(b, bbr_id->dev->bdev->bd_dev)); ++ } ++ ++ return in_use_blks; ++} ++ ++/** ++ * bbr_search_remap_entry ++ * ++ * Search remap entry for the specified sector. If found, return a pointer to ++ * the table entry. Otherwise, return NULL. ++ **/ ++static struct bbr_table_entry *bbr_search_remap_entry( ++ struct bbr_private *bbr_id, ++ u64 lsn) ++{ ++ struct bbr_runtime_remap *p; ++ ++ spin_lock_irq(&bbr_id->remap_root_lock); ++ p = bbr_binary_search(bbr_id->remap_root, lsn); ++ spin_unlock_irq(&bbr_id->remap_root_lock); ++ return (p) ? &p->remap : NULL; ++} ++ ++/** ++ * bbr_remap ++ * ++ * If *lsn is in the remap table, return TRUE and modify *lsn, ++ * else, return FALSE. ++ **/ ++static int bbr_remap(struct bbr_private *bbr_id, ++ u64 *lsn) ++{ ++ struct bbr_table_entry *e; ++ ++ if (atomic_read(&bbr_id->in_use_replacement_blks)) { ++ e = bbr_search_remap_entry(bbr_id, *lsn); ++ if (e) { ++ *lsn = e->replacement_sect; ++ return 1; ++ } ++ } ++ return 0; ++} ++ ++/** ++ * bbr_remap_probe ++ * ++ * If any of the sectors in the range [lsn, lsn+nr_sects] are in the remap ++ * table return TRUE, Else, return FALSE. ++ **/ ++static int bbr_remap_probe(struct bbr_private *bbr_id, ++ u64 lsn, u64 nr_sects) ++{ ++ u64 tmp, cnt; ++ ++ if (atomic_read(&bbr_id->in_use_replacement_blks)) { ++ for (cnt = 0, tmp = lsn; ++ cnt < nr_sects; ++ cnt += bbr_id->blksize_in_sects, tmp = lsn + cnt) { ++ if (bbr_remap(bbr_id,&tmp)) ++ return 1; ++ } ++ } ++ return 0; ++} ++ ++static int rw_table(struct bbr_private *bbr_id, void *vma, ++ struct dm_io_region *ptr, int rw) ++{ ++ bbr_id->vma_io_req.bi_rw = rw; ++ bbr_id->vma_io_req.mem.ptr.vma = vma; ++ bbr_id->vma_io_req.notify.fn = NULL; ++ ++ return dm_io(&bbr_id->vma_io_req, 1, ptr, NULL); ++} ++ ++static int io_sync(struct bbr_private *bbr_id, struct page_list *pl, ++ unsigned offset, struct dm_io_region *ptr, int rw) ++{ ++ bbr_id->page_io_req.bi_rw = rw; ++ bbr_id->page_io_req.mem.ptr.pl = pl; ++ bbr_id->page_io_req.mem.offset = offset; ++ bbr_id->page_io_req.notify.fn = NULL; ++ ++ return dm_io(&bbr_id->page_io_req, 1, ptr, NULL); ++} ++ ++/** ++ * bbr_setup ++ * ++ * Read the remap tables from disk and set up the initial remap tree. ++ **/ ++static int bbr_setup(struct bbr_private *bbr_id) ++{ ++ struct bbr_table *table = bbr_id->bbr_table; ++ struct dm_io_region job; ++ int i, rc = 0; ++ ++ job.bdev = bbr_id->dev->bdev; ++ job.count = 1; ++ ++ /* Read and verify each BBR table sector individually. */ ++ for (i = 0; i < bbr_id->nr_sects_bbr_table; i++, table++) { ++ job.sector = bbr_id->lba_table1 + i; ++ rc = rw_table(bbr_id, table, &job, READ); ++ if (rc && bbr_id->lba_table2) { ++ job.sector = bbr_id->lba_table2 + i; ++ rc = rw_table(bbr_id, table, &job, READ); ++ } ++ if (rc) ++ goto out; ++ ++ rc = validate_bbr_table_sector(table); ++ if (rc) ++ goto out; ++ } ++ atomic_set(&bbr_id->in_use_replacement_blks, ++ bbr_table_to_remap_list(bbr_id)); ++ ++out: ++ if (rc) ++ DMERR("error during device setup: %d", rc); ++ return rc; ++} ++ ++/** ++ * bbr_io_remap_error ++ * @bbr_id: Private data for the BBR node. ++ * @rw: READ or WRITE. ++ * @starting_lsn: Starting sector of request to remap. ++ * @count: Number of sectors in the request. ++ * @page: Page containing the data for the request. ++ * @offset: Byte-offset of the data within the page. ++ * ++ * For the requested range, try to write each sector individually. For each ++ * sector that fails, find the next available remap location and write the ++ * data to that new location. Then update the table and write both copies ++ * of the table to disk. Finally, update the in-memory mapping and do any ++ * other necessary bookkeeping. ++ **/ ++static int bbr_io_remap_error(struct bbr_private *bbr_id, ++ int rw, ++ u64 starting_lsn, ++ u64 count, ++ struct page *page, ++ unsigned int offset) ++{ ++ struct bbr_table *bbr_table; ++ struct dm_io_region job; ++ struct page_list pl; ++ unsigned long table_sector_index; ++ unsigned long table_sector_offset; ++ unsigned long index; ++ u64 lsn, new_lsn; ++ char b[32]; ++ int rc; ++ ++ job.bdev = bbr_id->dev->bdev; ++ job.count = 1; ++ pl.page = page; ++ pl.next = NULL; ++ ++ /* For each sector in the request. */ ++ for (lsn = 0; lsn < count; lsn++, offset += SECTOR_SIZE) { ++ job.sector = starting_lsn + lsn; ++ rc = io_sync(bbr_id, &pl, offset, &job, rw); ++ while (rc) { ++ /* Find the next available relocation sector. */ ++ new_lsn = atomic_read(&bbr_id->in_use_replacement_blks); ++ if (new_lsn >= bbr_id->nr_replacement_blks) { ++ /* No more replacement sectors available. */ ++ return -EIO; ++ } ++ new_lsn += bbr_id->start_replacement_sect; ++ ++ /* Write the data to its new location. */ ++ DMWARN("device %s: Trying to remap bad sector "PFU64" to sector "PFU64, ++ format_dev_t(b, bbr_id->dev->bdev->bd_dev), ++ starting_lsn + lsn, new_lsn); ++ job.sector = new_lsn; ++ rc = io_sync(bbr_id, &pl, offset, &job, rw); ++ if (rc) { ++ /* This replacement sector is bad. ++ * Try the next one. ++ */ ++ DMERR("device %s: replacement sector "PFU64" is bad. Skipping.", ++ format_dev_t(b, bbr_id->dev->bdev->bd_dev), new_lsn); ++ atomic_inc(&bbr_id->in_use_replacement_blks); ++ continue; ++ } ++ ++ /* Add this new entry to the on-disk table. */ ++ table_sector_index = new_lsn - ++ bbr_id->start_replacement_sect; ++ table_sector_offset = table_sector_index / ++ BBR_ENTRIES_PER_SECT; ++ index = table_sector_index % BBR_ENTRIES_PER_SECT; ++ ++ bbr_table = &bbr_id->bbr_table[table_sector_offset]; ++ bbr_table->entries[index].bad_sect = starting_lsn + lsn; ++ bbr_table->entries[index].replacement_sect = new_lsn; ++ bbr_table->in_use_cnt++; ++ bbr_table->sequence_number++; ++ bbr_table->crc = 0; ++ bbr_table->crc = calculate_crc(INITIAL_CRC, ++ bbr_table, ++ sizeof(struct bbr_table)); ++ ++ /* Write the table to disk. */ ++ cpu_bbr_table_sector_to_le(bbr_table, bbr_table); ++ if (bbr_id->lba_table1) { ++ job.sector = bbr_id->lba_table1 + table_sector_offset; ++ rc = rw_table(bbr_id, bbr_table, &job, WRITE); ++ } ++ if (bbr_id->lba_table2) { ++ job.sector = bbr_id->lba_table2 + table_sector_offset; ++ rc |= rw_table(bbr_id, bbr_table, &job, WRITE); ++ } ++ le_bbr_table_sector_to_cpu(bbr_table); ++ ++ if (rc) { ++ /* Error writing one of the tables to disk. */ ++ DMERR("device %s: error updating BBR tables on disk.", ++ format_dev_t(b, bbr_id->dev->bdev->bd_dev)); ++ return rc; ++ } ++ ++ /* Insert a new entry in the remapping binary-tree. */ ++ rc = bbr_insert_remap_entry(bbr_id, ++ &bbr_table->entries[index]); ++ if (rc) { ++ DMERR("device %s: error adding new entry to remap tree.", ++ format_dev_t(b, bbr_id->dev->bdev->bd_dev)); ++ return rc; ++ } ++ ++ atomic_inc(&bbr_id->in_use_replacement_blks); ++ } ++ } ++ ++ return 0; ++} ++ ++/** ++ * bbr_io_process_request ++ * ++ * For each sector in this request, check if the sector has already ++ * been remapped. If so, process all previous sectors in the request, ++ * followed by the remapped sector. Then reset the starting lsn and ++ * count, and keep going with the rest of the request as if it were ++ * a whole new request. If any of the sync_io's return an error, ++ * call the remapper to relocate the bad sector(s). ++ * ++ * 2.5 Note: When switching over to bio's for the I/O path, we have made ++ * the assumption that the I/O request described by the bio is one ++ * virtually contiguous piece of memory (even though the bio vector ++ * describes it using a series of physical page addresses). ++ **/ ++static int bbr_io_process_request(struct bbr_private *bbr_id, ++ struct bio *bio) ++{ ++ struct dm_io_region job; ++ u64 starting_lsn = bio->bi_sector; ++ u64 count, lsn, remapped_lsn; ++ struct page_list pl; ++ unsigned int offset; ++ int i, rw = bio_data_dir(bio); ++ int rc = 0; ++ ++ job.bdev = bbr_id->dev->bdev; ++ pl.next = NULL; ++ ++ /* Each bio can contain multiple vectors, each with a different page. ++ * Treat each vector as a separate request. ++ */ ++ /* KMC: Is this the right way to walk the bvec list? */ ++ for (i = 0; ++ i < bio->bi_vcnt; ++ i++, bio->bi_idx++, starting_lsn += count) { ++ ++ /* Bvec info: number of sectors, page, ++ * and byte-offset within page. ++ */ ++ count = bio_iovec(bio)->bv_len >> SECTOR_SHIFT; ++ pl.page = bio_iovec(bio)->bv_page; ++ offset = bio_iovec(bio)->bv_offset; ++ ++ /* For each sector in this bvec, check if the sector has ++ * already been remapped. If so, process all previous sectors ++ * in this request, followed by the remapped sector. Then reset ++ * the starting lsn and count and keep going with the rest of ++ * the request as if it were a whole new request. ++ */ ++ for (lsn = 0; lsn < count; lsn++) { ++ remapped_lsn = starting_lsn + lsn; ++ rc = bbr_remap(bbr_id, &remapped_lsn); ++ if (!rc) { ++ /* This sector is fine. */ ++ continue; ++ } ++ ++ /* Process all sectors in the request up to this one. */ ++ if (lsn > 0) { ++ job.sector = starting_lsn; ++ job.count = lsn; ++ rc = io_sync(bbr_id, &pl, offset, &job, rw); ++ if (rc) { ++ /* If this I/O failed, then one of the ++ * sectors in this request needs to be ++ * relocated. ++ */ ++ rc = bbr_io_remap_error(bbr_id, rw, ++ starting_lsn, ++ lsn, pl.page, ++ offset); ++ if (rc) { ++ /* KMC: Return? Or continue to next bvec? */ ++ return rc; ++ } ++ } ++ offset += (lsn << SECTOR_SHIFT); ++ } ++ ++ /* Process the remapped sector. */ ++ job.sector = remapped_lsn; ++ job.count = 1; ++ rc = io_sync(bbr_id, &pl, offset, &job, rw); ++ if (rc) { ++ /* BUGBUG - Need more processing if this caused ++ * an error. If this I/O failed, then the ++ * existing remap is now bad, and we need to ++ * find a new remap. Can't use ++ * bbr_io_remap_error(), because the existing ++ * map entry needs to be changed, not added ++ * again, and the original table entry also ++ * needs to be changed. ++ */ ++ return rc; ++ } ++ ++ starting_lsn += (lsn + 1); ++ count -= (lsn + 1); ++ lsn = -1; ++ offset += SECTOR_SIZE; ++ } ++ ++ /* Check for any remaining sectors after the last split. This ++ * could potentially be the whole request, but that should be a ++ * rare case because requests should only be processed by the ++ * thread if we know an error occurred or they contained one or ++ * more remapped sectors. ++ */ ++ if (count) { ++ job.sector = starting_lsn; ++ job.count = count; ++ rc = io_sync(bbr_id, &pl, offset, &job, rw); ++ if (rc) { ++ /* If this I/O failed, then one of the sectors ++ * in this request needs to be relocated. ++ */ ++ rc = bbr_io_remap_error(bbr_id, rw, starting_lsn, ++ count, pl.page, offset); ++ if (rc) { ++ /* KMC: Return? Or continue to next bvec? */ ++ return rc; ++ } ++ } ++ } ++ } ++ ++ return 0; ++} ++ ++static void bbr_io_process_requests(struct bbr_private *bbr_id, ++ struct bio *bio) ++{ ++ struct bio *next; ++ int rc; ++ ++ while (bio) { ++ next = bio->bi_next; ++ bio->bi_next = NULL; ++ ++ rc = bbr_io_process_request(bbr_id, bio); ++ ++ bio_endio(bio, rc); ++ ++ bio = next; ++ } ++} ++ ++/** ++ * bbr_remap_handler ++ * ++ * This is the handler for the bbr work-queue. ++ * ++ * I/O requests should only be sent to this handler if we know that: ++ * a) the request contains at least one remapped sector. ++ * or ++ * b) the request caused an error on the normal I/O path. ++ * ++ * This function uses synchronous I/O, so sending a request to this ++ * thread that doesn't need special processing will cause severe ++ * performance degredation. ++ **/ ++static void bbr_remap_handler(struct work_struct *work) ++{ ++ struct bbr_private *bbr_id = ++ container_of(work, struct bbr_private, remap_work); ++ struct bio *bio; ++ unsigned long flags; ++ ++ spin_lock_irqsave(&bbr_id->remap_ios_lock, flags); ++ bio = bio_list_get(&bbr_id->remap_ios); ++ spin_unlock_irqrestore(&bbr_id->remap_ios_lock, flags); ++ ++ bbr_io_process_requests(bbr_id, bio); ++} ++ ++/** ++ * bbr_endio ++ * ++ * This is the callback for normal write requests. Check for an error ++ * during the I/O, and send to the thread for processing if necessary. ++ **/ ++static int bbr_endio(struct dm_target *ti, struct bio *bio, ++ int error, union map_info *map_context) ++{ ++ struct bbr_private *bbr_id = ti->private; ++ struct dm_bio_details *bbr_io = map_context->ptr; ++ ++ if (error && bbr_io) { ++ unsigned long flags; ++ char b[32]; ++ ++ dm_bio_restore(bbr_io, bio); ++ map_context->ptr = NULL; ++ ++ DMERR("device %s: I/O failure on sector %lu. " ++ "Scheduling for retry.", ++ format_dev_t(b, bbr_id->dev->bdev->bd_dev), ++ (unsigned long)bio->bi_sector); ++ ++ spin_lock_irqsave(&bbr_id->remap_ios_lock, flags); ++ bio_list_add(&bbr_id->remap_ios, bio); ++ spin_unlock_irqrestore(&bbr_id->remap_ios_lock, flags); ++ ++ queue_work(dm_bbr_wq, &bbr_id->remap_work); ++ ++ error = 1; ++ } ++ ++ if (bbr_io) ++ mempool_free(bbr_io, bbr_io_pool); ++ ++ return error; ++} ++ ++/** ++ * Construct a bbr mapping ++ **/ ++static int bbr_ctr(struct dm_target *ti, unsigned int argc, char **argv) ++{ ++ struct bbr_private *bbr_id; ++ unsigned long block_size; ++ char *end; ++ int rc = -EINVAL; ++ ++ if (argc != 8) { ++ ti->error = "dm-bbr requires exactly 8 arguments: " ++ "device offset table1_lsn table2_lsn table_size start_replacement nr_replacement_blks block_size"; ++ goto out1; ++ } ++ ++ bbr_id = bbr_alloc_private(); ++ if (!bbr_id) { ++ ti->error = "dm-bbr: Error allocating bbr private data."; ++ goto out1; ++ } ++ ++ bbr_id->offset = simple_strtoull(argv[1], &end, 10); ++ bbr_id->lba_table1 = simple_strtoull(argv[2], &end, 10); ++ bbr_id->lba_table2 = simple_strtoull(argv[3], &end, 10); ++ bbr_id->nr_sects_bbr_table = simple_strtoull(argv[4], &end, 10); ++ bbr_id->start_replacement_sect = simple_strtoull(argv[5], &end, 10); ++ bbr_id->nr_replacement_blks = simple_strtoull(argv[6], &end, 10); ++ block_size = simple_strtoul(argv[7], &end, 10); ++ bbr_id->blksize_in_sects = (block_size >> SECTOR_SHIFT); ++ ++ bbr_id->vma_io_req.mem.type = DM_IO_VMA; ++ bbr_id->vma_io_req.client = dm_io_client_create(1); ++ if (IS_ERR(bbr_id->vma_io_req.client)) { ++ rc = PTR_ERR(bbr_id->vma_io_req.client); ++ DMWARN("couldn't allocate disk VMA io client"); ++ goto out2; ++ } ++ ++ bbr_id->page_io_req.mem.type = DM_IO_PAGE_LIST; ++ bbr_id->page_io_req.client = dm_io_client_create(1); ++ if (IS_ERR(bbr_id->page_io_req.client)) { ++ rc = PTR_ERR(bbr_id->page_io_req.client); ++ DMWARN("couldn't allocate pagelist io client"); ++ goto out3; ++ } ++ ++ bbr_id->bbr_table = vmalloc(bbr_id->nr_sects_bbr_table << SECTOR_SHIFT); ++ if (!bbr_id->bbr_table) { ++ ti->error = "dm-bbr: Error allocating bbr table."; ++ goto out4; ++ } ++ ++ if (dm_get_device(ti, argv[0], 0, ti->len, ++ dm_table_get_mode(ti->table), &bbr_id->dev)) { ++ ti->error = "dm-bbr: Device lookup failed"; ++ goto out4; ++ } ++ ++ rc = bbr_setup(bbr_id); ++ if (rc) { ++ ti->error = "dm-bbr: Device setup failed"; ++ goto out5; ++ } ++ ++ ti->private = bbr_id; ++ return 0; ++ ++out5: ++ dm_put_device(ti, bbr_id->dev); ++out4: ++ dm_io_client_destroy(bbr_id->page_io_req.client); ++out3: ++ dm_io_client_destroy(bbr_id->vma_io_req.client); ++out2: ++ bbr_free_private(bbr_id); ++out1: ++ return rc; ++} ++ ++static void bbr_dtr(struct dm_target *ti) ++{ ++ struct bbr_private *bbr_id = ti->private; ++ ++ dm_put_device(ti, bbr_id->dev); ++ dm_io_client_destroy(bbr_id->page_io_req.client); ++ dm_io_client_destroy(bbr_id->vma_io_req.client); ++ bbr_free_private(bbr_id); ++} ++ ++static int bbr_map(struct dm_target *ti, struct bio *bio, ++ union map_info *map_context) ++{ ++ struct bbr_private *bbr_id = ti->private; ++ struct dm_bio_details *bbr_io; ++ unsigned long flags; ++ int rc = 1; ++ ++ bio->bi_sector += bbr_id->offset; ++ ++ if (atomic_read(&bbr_id->in_use_replacement_blks) == 0 || ++ !bbr_remap_probe(bbr_id, bio->bi_sector, bio_sectors(bio))) { ++ /* No existing remaps or this request doesn't ++ * contain any remapped sectors. ++ */ ++ bio->bi_bdev = bbr_id->dev->bdev; ++ ++ bbr_io = mempool_alloc(bbr_io_pool, GFP_NOIO); ++ dm_bio_record(bbr_io, bio); ++ map_context->ptr = bbr_io; ++ } else { ++ /* This request has at least one remapped sector. ++ * Give it to the work-queue for processing. ++ */ ++ map_context->ptr = NULL; ++ spin_lock_irqsave(&bbr_id->remap_ios_lock, flags); ++ bio_list_add(&bbr_id->remap_ios, bio); ++ spin_unlock_irqrestore(&bbr_id->remap_ios_lock, flags); ++ ++ queue_work(dm_bbr_wq, &bbr_id->remap_work); ++ rc = 0; ++ } ++ ++ return rc; ++} ++ ++static int bbr_status(struct dm_target *ti, status_type_t type, ++ char *result, unsigned int maxlen) ++{ ++ struct bbr_private *bbr_id = ti->private; ++ char b[BDEVNAME_SIZE]; ++ ++ switch (type) { ++ case STATUSTYPE_INFO: ++ result[0] = '\0'; ++ break; ++ ++ case STATUSTYPE_TABLE: ++ snprintf(result, maxlen, "%s "PFU64" "PFU64" "PFU64" "PFU64" "PFU64" "PFU64" %u", ++ format_dev_t(b, bbr_id->dev->bdev->bd_dev), ++ bbr_id->offset, bbr_id->lba_table1, bbr_id->lba_table2, ++ bbr_id->nr_sects_bbr_table, ++ bbr_id->start_replacement_sect, ++ bbr_id->nr_replacement_blks, ++ bbr_id->blksize_in_sects << SECTOR_SHIFT); ++ break; ++ } ++ return 0; ++} ++ ++static struct target_type bbr_target = { ++ .name = "bbr", ++ .version= {1, 0, 1}, ++ .module = THIS_MODULE, ++ .ctr = bbr_ctr, ++ .dtr = bbr_dtr, ++ .map = bbr_map, ++ .end_io = bbr_endio, ++ .status = bbr_status, ++}; ++ ++int __init dm_bbr_init(void) ++{ ++ int rc; ++ ++ rc = dm_register_target(&bbr_target); ++ if (rc) { ++ DMERR("error registering target."); ++ goto err1; ++ } ++ ++ bbr_remap_cache = kmem_cache_create("bbr-remap", ++ sizeof(struct bbr_runtime_remap), ++ 0, SLAB_HWCACHE_ALIGN, NULL); ++ if (!bbr_remap_cache) { ++ DMERR("error creating remap cache."); ++ rc = ENOMEM; ++ goto err2; ++ } ++ ++ bbr_io_cache = kmem_cache_create("bbr-io", sizeof(struct dm_bio_details), ++ 0, SLAB_HWCACHE_ALIGN, NULL); ++ if (!bbr_io_cache) { ++ DMERR("error creating io cache."); ++ rc = ENOMEM; ++ goto err3; ++ } ++ ++ bbr_io_pool = mempool_create(256, mempool_alloc_slab, ++ mempool_free_slab, bbr_io_cache); ++ if (!bbr_io_pool) { ++ DMERR("error creating io mempool."); ++ rc = ENOMEM; ++ goto err4; ++ } ++ ++ dm_bbr_wq = create_workqueue("dm-bbr"); ++ if (!dm_bbr_wq) { ++ DMERR("error creating work-queue."); ++ rc = ENOMEM; ++ goto err5; ++ } ++ ++ return 0; ++ ++err5: ++ mempool_destroy(bbr_io_pool); ++err4: ++ kmem_cache_destroy(bbr_io_cache); ++err3: ++ kmem_cache_destroy(bbr_remap_cache); ++err2: ++ dm_unregister_target(&bbr_target); ++err1: ++ return rc; ++} ++ ++void __exit dm_bbr_exit(void) ++{ ++ destroy_workqueue(dm_bbr_wq); ++ mempool_destroy(bbr_io_pool); ++ kmem_cache_destroy(bbr_io_cache); ++ kmem_cache_destroy(bbr_remap_cache); ++ dm_unregister_target(&bbr_target); ++} ++ ++module_init(dm_bbr_init); ++module_exit(dm_bbr_exit); ++MODULE_LICENSE("GPL"); +Index: linux-2.6.26-gentoo/drivers/md/dm-bbr.h +=================================================================== +--- /dev/null ++++ linux-2.6.26-gentoo/drivers/md/dm-bbr.h +@@ -0,0 +1,130 @@ ++/* ++ * (C) Copyright IBM Corp. 2002, 2004 ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See ++ * the GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ * ++ * linux/drivers/md/dm-bbr.h ++ * ++ * Bad-block-relocation (BBR) target for device-mapper. ++ * ++ * The BBR target is designed to remap I/O write failures to another safe ++ * location on disk. Note that most disk drives have BBR built into them, ++ * this means that our software BBR will be only activated when all hardware ++ * BBR replacement sectors have been used. ++ */ ++ ++#include ++ ++#define BBR_TABLE_SIGNATURE 0x42627254 /* BbrT */ ++#define BBR_ENTRIES_PER_SECT 31 ++#define INITIAL_CRC 0xFFFFFFFF ++#define CRC_POLYNOMIAL 0xEDB88320L ++ ++/** ++ * Macros to cleanly print 64-bit numbers on both 32-bit and 64-bit machines. ++ * Use these in place of %Ld, %Lu, and %Lx. ++ **/ ++#if BITS_PER_LONG > 32 ++#define PFU64 "%llu" ++#else ++#define PFU64 "%Lu" ++#endif ++ ++/** ++ * struct bbr_table_entry ++ * @bad_sect: LBA of bad location. ++ * @replacement_sect: LBA of new location. ++ * ++ * Structure to describe one BBR remap. ++ **/ ++struct bbr_table_entry { ++ u64 bad_sect; ++ u64 replacement_sect; ++}; ++ ++/** ++ * struct bbr_table ++ * @signature: Signature on each BBR table sector. ++ * @crc: CRC for this table sector. ++ * @sequence_number: Used to resolve conflicts when primary and secondary ++ * tables do not match. ++ * @in_use_cnt: Number of in-use table entries. ++ * @entries: Actual table of remaps. ++ * ++ * Structure to describe each sector of the metadata table. Each sector in this ++ * table can describe 31 remapped sectors. ++ **/ ++struct bbr_table { ++ u32 signature; ++ u32 crc; ++ u32 sequence_number; ++ u32 in_use_cnt; ++ struct bbr_table_entry entries[BBR_ENTRIES_PER_SECT]; ++}; ++ ++/** ++ * struct bbr_runtime_remap ++ * ++ * Node in the binary tree used to keep track of remaps. ++ **/ ++struct bbr_runtime_remap { ++ struct bbr_table_entry remap; ++ struct bbr_runtime_remap *left; ++ struct bbr_runtime_remap *right; ++}; ++ ++/** ++ * struct bbr_private ++ * @dev: Info about underlying device. ++ * @bbr_table: Copy of metadata table. ++ * @remap_root: Binary tree containing all remaps. ++ * @remap_root_lock: Lock for the binary tree. ++ * @remap_work: For adding work items to the work-queue. ++ * @remap_ios: List of I/Os for the work-queue to handle. ++ * @remap_ios_lock: Lock for the remap_ios list. ++ * @offset: LBA of data area. ++ * @lba_table1: LBA of primary BBR table. ++ * @lba_table2: LBA of secondary BBR table. ++ * @nr_sects_bbr_table: Size of each BBR table. ++ * @nr_replacement_blks: Number of replacement blocks. ++ * @start_replacement_sect: LBA of start of replacement blocks. ++ * @blksize_in_sects: Size of each block. ++ * @in_use_replacement_blks: Current number of remapped blocks. ++ * ++ * Private data for each BBR target. ++ **/ ++struct bbr_private { ++ struct dm_dev *dev; ++ struct bbr_table *bbr_table; ++ struct bbr_runtime_remap *remap_root; ++ spinlock_t remap_root_lock; ++ ++ struct dm_io_request vma_io_req; ++ struct dm_io_request page_io_req; ++ ++ struct work_struct remap_work; ++ struct bio_list remap_ios; ++ spinlock_t remap_ios_lock; ++ ++ u64 offset; ++ u64 lba_table1; ++ u64 lba_table2; ++ u64 nr_sects_bbr_table; ++ u64 start_replacement_sect; ++ u64 nr_replacement_blks; ++ u32 blksize_in_sects; ++ atomic_t in_use_replacement_blks; ++}; ++ diff --git a/sys-kernel/linux-sabayon/files/2.6.29/genpatches/4200_fbcondecor-0.9.4.patch b/sys-kernel/linux-sabayon/files/2.6.29/genpatches/4200_fbcondecor-0.9.4.patch new file mode 100644 index 000000000..58589c9f1 --- /dev/null +++ b/sys-kernel/linux-sabayon/files/2.6.29/genpatches/4200_fbcondecor-0.9.4.patch @@ -0,0 +1,1777 @@ +diff -Naurp -x .git /tmp/linux/Documentation/fb/00-INDEX ./Documentation/fb/00-INDEX +--- /tmp/linux/Documentation/fb/00-INDEX 2008-03-25 07:24:16.000000000 +0100 ++++ ./Documentation/fb/00-INDEX 2008-03-25 23:04:10.000000000 +0100 +@@ -17,6 +17,8 @@ deferred_io.txt + - an introduction to deferred IO. + fbcon.txt + - intro to and usage guide for the framebuffer console (fbcon). ++fbcondecor.txt ++ - info on the Framebuffer Console Decoration + framebuffer.txt + - introduction to frame buffer devices. + imacfb.txt +diff -Naurp -x .git /tmp/linux/Documentation/fb/fbcondecor.txt ./Documentation/fb/fbcondecor.txt +--- /tmp/linux/Documentation/fb/fbcondecor.txt 1970-01-01 01:00:00.000000000 +0100 ++++ ./Documentation/fb/fbcondecor.txt 2008-03-25 23:04:10.000000000 +0100 +@@ -0,0 +1,207 @@ ++What is it? ++----------- ++ ++The framebuffer decorations are a kernel feature which allows displaying a ++background picture on selected consoles. ++ ++What do I need to get it to work? ++--------------------------------- ++ ++To get fbcondecor up-and-running you will have to: ++ 1) get a copy of splashutils [1] or a similar program ++ 2) get some fbcondecor themes ++ 3) build the kernel helper program ++ 4) build your kernel with the FB_CON_DECOR option enabled. ++ ++To get fbcondecor operational right after fbcon initialization is finished, you ++will have to include a theme and the kernel helper into your initramfs image. ++Please refer to splashutils documentation for instructions on how to do that. ++ ++[1] The splashutils package can be downloaded from: ++ http://dev.gentoo.org/~spock/projects/splashutils/ ++ ++The userspace helper ++-------------------- ++ ++The userspace fbcondecor helper (by default: /sbin/fbcondecor_helper) is called by the ++kernel whenever an important event occurs and the kernel needs some kind of ++job to be carried out. Important events include console switches and video ++mode switches (the kernel requests background images and configuration ++parameters for the current console). The fbcondecor helper must be accessible at ++all times. If it's not, fbcondecor will be switched off automatically. ++ ++It's possible to set path to the fbcondecor helper by writing it to ++/proc/sys/kernel/fbcondecor. ++ ++***************************************************************************** ++ ++The information below is mostly technical stuff. There's probably no need to ++read it unless you plan to develop a userspace helper. ++ ++The fbcondecor protocol ++----------------------- ++ ++The fbcondecor protocol defines a communication interface between the kernel and ++the userspace fbcondecor helper. ++ ++The kernel side is responsible for: ++ ++ * rendering console text, using an image as a background (instead of a ++ standard solid color fbcon uses), ++ * accepting commands from the user via ioctls on the fbcondecor device, ++ * calling the userspace helper to set things up as soon as the fb subsystem ++ is initialized. ++ ++The userspace helper is responsible for everything else, including parsing ++configuration files, decompressing the image files whenever the kernel needs ++it, and communicating with the kernel if necessary. ++ ++The fbcondecor protocol specifies how communication is done in both ways: ++kernel->userspace and userspace->helper. ++ ++Kernel -> Userspace ++------------------- ++ ++The kernel communicates with the userspace helper by calling it and specifying ++the task to be done in a series of arguments. ++ ++The arguments follow the pattern: ++ ++ ++All commands defined in fbcondecor protocol v2 have the following parameters: ++ virtual console ++ framebuffer number ++ theme ++ ++Fbcondecor protocol v1 specified an additional 'fbcondecor mode' after the ++framebuffer number. Fbcondecor protocol v1 is deprecated and should not be used. ++ ++Fbcondecor protocol v2 specifies the following commands: ++ ++getpic ++------ ++ The kernel issues this command to request image data. It's up to the ++ userspace helper to find a background image appropriate for the specified ++ theme and the current resolution. The userspace helper should respond by ++ issuing the FBIOCONDECOR_SETPIC ioctl. ++ ++init ++---- ++ The kernel issues this command after the fbcondecor device is created and ++ the fbcondecor interface is initialized. Upon receiving 'init', the userspace ++ helper should parse the kernel command line (/proc/cmdline) or otherwise ++ decide whether fbcondecor is to be activated. ++ ++ To activate fbcondecor on the first console the helper should issue the ++ FBIOCONDECOR_SETCFG, FBIOCONDECOR_SETPIC and FBIOCONDECOR_SETSTATE commands, ++ in the above-mentioned order. ++ ++ When the userspace helper is called in an early phase of the boot process ++ (right after the initialization of fbcon), no filesystems will be mounted. ++ The helper program should mount sysfs and then create the appropriate ++ framebuffer, fbcondecor and tty0 devices (if they don't already exist) to get ++ current display settings and to be able to communicate with the kernel side. ++ It should probably also mount the procfs to be able to parse the kernel ++ command line parameters. ++ ++ Note that the console sem is not held when the kernel calls fbcondecor_helper ++ with the 'init' command. The fbcondecor helper should perform all ioctls with ++ origin set to FBCON_DECOR_IO_ORIG_USER. ++ ++modechange ++---------- ++ The kernel issues this command on a mode change. The helper's response should ++ be similar to the response to the 'init' command. Note that this time the ++ console sem is held and all ioctls must be performed with origin set to ++ FBCON_DECOR_IO_ORIG_KERNEL. ++ ++ ++Userspace -> Kernel ++------------------- ++ ++Userspace programs can communicate with fbcondecor via ioctls on the ++fbcondecor device. These ioctls are to be used by both the userspace helper ++(called only by the kernel) and userspace configuration tools (run by the users). ++ ++The fbcondecor helper should set the origin field to FBCON_DECOR_IO_ORIG_KERNEL ++when doing the appropriate ioctls. All userspace configuration tools should ++use FBCON_DECOR_IO_ORIG_USER. Failure to set the appropriate value in the origin ++field when performing ioctls from the kernel helper will most likely result ++in a console deadlock. ++ ++FBCON_DECOR_IO_ORIG_KERNEL instructs fbcondecor not to try to acquire the console ++semaphore. Not surprisingly, FBCON_DECOR_IO_ORIG_USER instructs it to acquire ++the console sem. ++ ++The framebuffer console decoration provides the following ioctls (all defined in ++linux/fb.h): ++ ++FBIOCONDECOR_SETPIC ++description: loads a background picture for a virtual console ++argument: struct fbcon_decor_iowrapper*; data: struct fb_image* ++notes: ++If called for consoles other than the current foreground one, the picture data ++will be ignored. ++ ++If the current virtual console is running in a 8-bpp mode, the cmap substruct ++of fb_image has to be filled appropriately: start should be set to 16 (first ++16 colors are reserved for fbcon), len to a value <= 240 and red, green and ++blue should point to valid cmap data. The transp field is ingored. The fields ++dx, dy, bg_color, fg_color in fb_image are ignored as well. ++ ++FBIOCONDECOR_SETCFG ++description: sets the fbcondecor config for a virtual console ++argument: struct fbcon_decor_iowrapper*; data: struct vc_decor* ++notes: The structure has to be filled with valid data. ++ ++FBIOCONDECOR_GETCFG ++description: gets the fbcondecor config for a virtual console ++argument: struct fbcon_decor_iowrapper*; data: struct vc_decor* ++ ++FBIOCONDECOR_SETSTATE ++description: sets the fbcondecor state for a virtual console ++argument: struct fbcon_decor_iowrapper*; data: unsigned int* ++ values: 0 = disabled, 1 = enabled. ++ ++FBIOCONDECOR_GETSTATE ++description: gets the fbcondecor state for a virtual console ++argument: struct fbcon_decor_iowrapper*; data: unsigned int* ++ values: as in FBIOCONDECOR_SETSTATE ++ ++Info on used structures: ++ ++Definition of struct vc_decor can be found in linux/console_decor.h. It's ++heavily commented. Note that the 'theme' field should point to a string ++no longer than FBCON_DECOR_THEME_LEN. When FBIOCONDECOR_GETCFG call is ++performed, the theme field should point to a char buffer of length ++FBCON_DECOR_THEME_LEN. ++ ++Definition of struct fbcon_decor_iowrapper can be found in linux/fb.h. ++The fields in this struct have the following meaning: ++ ++vc: ++Virtual console number. ++ ++origin: ++Specifies if the ioctl is performed as a response to a kernel request. The ++fbcondecor helper should set this field to FBCON_DECOR_IO_ORIG_KERNEL, userspace ++programs should set it to FBCON_DECOR_IO_ORIG_USER. This field is necessary to ++avoid console semaphore deadlocks. ++ ++data: ++Pointer to a data structure appropriate for the performed ioctl. Type of ++the data struct is specified in the ioctls description. ++ ++***************************************************************************** ++ ++Credit ++------ ++ ++Original 'bootsplash' project & implementation by: ++ Volker Poplawski , Stefan Reinauer , ++ Steffen Winterfeldt , Michael Schroeder , ++ Ken Wimer . ++ ++Fbcondecor, fbcondecor protocol design, current implementation & docs by: ++ Michal Januszewski ++ +--- a/drivers/Makefile 2008-10-12 13:30:08.000000000 -0400 ++++ b/drivers/Makefile 2008-10-12 13:30:51.000000000 -0400 +@@ -9,6 +9,9 @@ obj-y += gpio/ + obj-$(CONFIG_PCI) += pci/ + obj-$(CONFIG_PARISC) += parisc/ + obj-$(CONFIG_RAPIDIO) += rapidio/ ++# char/ comes before serial/ etc so that the VT console is the boot-time ++# default. ++obj-y += char/ + obj-y += video/ + obj-$(CONFIG_ACPI) += acpi/ + # PnP must come after ACPI since it will eventually need to check if acpi +@@ -18,9 +21,6 @@ obj-$(CONFIG_ARM_AMBA) += amba/ + + obj-$(CONFIG_XEN) += xen/ + +-# char/ comes before serial/ etc so that the VT console is the boot-time +-# default. +-obj-y += char/ + + # gpu/ comes after char for AGP vs DRM startup + obj-y += gpu/ +diff -Naurp -x .git /tmp/linux/drivers/video/console/bitblit.c ./drivers/video/console/bitblit.c +--- /tmp/linux/drivers/video/console/bitblit.c 2008-03-25 07:24:16.000000000 +0100 ++++ ./drivers/video/console/bitblit.c 2008-03-25 23:04:10.000000000 +0100 +@@ -17,6 +17,7 @@ + #include + #include + #include "fbcon.h" ++#include "fbcondecor.h" + + /* + * Accelerated handlers. +@@ -54,6 +55,13 @@ static void bit_bmove(struct vc_data *vc + area.height = height * vc->vc_font.height; + area.width = width * vc->vc_font.width; + ++ if (fbcon_decor_active(info, vc)) { ++ area.sx += vc->vc_decor.tx; ++ area.sy += vc->vc_decor.ty; ++ area.dx += vc->vc_decor.tx; ++ area.dy += vc->vc_decor.ty; ++ } ++ + info->fbops->fb_copyarea(info, &area); + } + +@@ -379,11 +387,15 @@ static void bit_cursor(struct vc_data *v + cursor.image.depth = 1; + cursor.rop = ROP_XOR; + +- if (info->fbops->fb_cursor) +- err = info->fbops->fb_cursor(info, &cursor); ++ if (fbcon_decor_active(info, vc)) { ++ fbcon_decor_cursor(info, &cursor); ++ } else { ++ if (info->fbops->fb_cursor) ++ err = info->fbops->fb_cursor(info, &cursor); + +- if (err) +- soft_cursor(info, &cursor); ++ if (err) ++ soft_cursor(info, &cursor); ++ } + + ops->cursor_reset = 0; + } +diff -Naurp -x .git /tmp/linux/drivers/video/console/cfbcondecor.c ./drivers/video/console/cfbcondecor.c +--- /tmp/linux/drivers/video/console/cfbcondecor.c 1970-01-01 01:00:00.000000000 +0100 ++++ ./drivers/video/console/cfbcondecor.c 2008-03-25 23:11:30.000000000 +0100 +@@ -0,0 +1,471 @@ ++/* ++ * linux/drivers/video/cfbcon_decor.c -- Framebuffer decor render functions ++ * ++ * Copyright (C) 2004 Michal Januszewski ++ * ++ * Code based upon "Bootdecor" (C) 2001-2003 ++ * Volker Poplawski , ++ * Stefan Reinauer , ++ * Steffen Winterfeldt , ++ * Michael Schroeder , ++ * Ken Wimer . ++ * ++ * This file is subject to the terms and conditions of the GNU General Public ++ * License. See the file COPYING in the main directory of this archive for ++ * more details. ++ */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "fbcon.h" ++#include "fbcondecor.h" ++ ++#define parse_pixel(shift,bpp,type) \ ++ do { \ ++ if (d & (0x80 >> (shift))) \ ++ dd2[(shift)] = fgx; \ ++ else \ ++ dd2[(shift)] = transparent ? *(type *)decor_src : bgx; \ ++ decor_src += (bpp); \ ++ } while (0) \ ++ ++extern int get_color(struct vc_data *vc, struct fb_info *info, ++ u16 c, int is_fg); ++ ++void fbcon_decor_fix_pseudo_pal(struct fb_info *info, struct vc_data *vc) ++{ ++ int i, j, k; ++ int minlen = min(min(info->var.red.length, info->var.green.length), ++ info->var.blue.length); ++ u32 col; ++ ++ for (j = i = 0; i < 16; i++) { ++ k = color_table[i]; ++ ++ col = ((vc->vc_palette[j++] >> (8-minlen)) ++ << info->var.red.offset); ++ col |= ((vc->vc_palette[j++] >> (8-minlen)) ++ << info->var.green.offset); ++ col |= ((vc->vc_palette[j++] >> (8-minlen)) ++ << info->var.blue.offset); ++ ((u32 *)info->pseudo_palette)[k] = col; ++ } ++} ++ ++void fbcon_decor_renderc(struct fb_info *info, int ypos, int xpos, int height, ++ int width, u8* src, u32 fgx, u32 bgx, u8 transparent) ++{ ++ unsigned int x, y; ++ u32 dd; ++ int bytespp = ((info->var.bits_per_pixel + 7) >> 3); ++ unsigned int d = ypos * info->fix.line_length + xpos * bytespp; ++ unsigned int ds = (ypos * info->var.xres + xpos) * bytespp; ++ u16 dd2[4]; ++ ++ u8* decor_src = (u8 *)(info->bgdecor.data + ds); ++ u8* dst = (u8 *)(info->screen_base + d); ++ ++ if ((ypos + height) > info->var.yres || (xpos + width) > info->var.xres) ++ return; ++ ++ for (y = 0; y < height; y++) { ++ switch (info->var.bits_per_pixel) { ++ ++ case 32: ++ for (x = 0; x < width; x++) { ++ ++ if ((x & 7) == 0) ++ d = *src++; ++ if (d & 0x80) ++ dd = fgx; ++ else ++ dd = transparent ? ++ *(u32 *)decor_src : bgx; ++ ++ d <<= 1; ++ decor_src += 4; ++ fb_writel(dd, dst); ++ dst += 4; ++ } ++ break; ++ case 24: ++ for (x = 0; x < width; x++) { ++ ++ if ((x & 7) == 0) ++ d = *src++; ++ if (d & 0x80) ++ dd = fgx; ++ else ++ dd = transparent ? ++ (*(u32 *)decor_src & 0xffffff) : bgx; ++ ++ d <<= 1; ++ decor_src += 3; ++#ifdef __LITTLE_ENDIAN ++ fb_writew(dd & 0xffff, dst); ++ dst += 2; ++ fb_writeb((dd >> 16), dst); ++#else ++ fb_writew(dd >> 8, dst); ++ dst += 2; ++ fb_writeb(dd & 0xff, dst); ++#endif ++ dst++; ++ } ++ break; ++ case 16: ++ for (x = 0; x < width; x += 2) { ++ if ((x & 7) == 0) ++ d = *src++; ++ ++ parse_pixel(0, 2, u16); ++ parse_pixel(1, 2, u16); ++#ifdef __LITTLE_ENDIAN ++ dd = dd2[0] | (dd2[1] << 16); ++#else ++ dd = dd2[1] | (dd2[0] << 16); ++#endif ++ d <<= 2; ++ fb_writel(dd, dst); ++ dst += 4; ++ } ++ break; ++ ++ case 8: ++ for (x = 0; x < width; x += 4) { ++ if ((x & 7) == 0) ++ d = *src++; ++ ++ parse_pixel(0, 1, u8); ++ parse_pixel(1, 1, u8); ++ parse_pixel(2, 1, u8); ++ parse_pixel(3, 1, u8); ++ ++#ifdef __LITTLE_ENDIAN ++ dd = dd2[0] | (dd2[1] << 8) | (dd2[2] << 16) | (dd2[3] << 24); ++#else ++ dd = dd2[3] | (dd2[2] << 8) | (dd2[1] << 16) | (dd2[0] << 24); ++#endif ++ d <<= 4; ++ fb_writel(dd, dst); ++ dst += 4; ++ } ++ } ++ ++ dst += info->fix.line_length - width * bytespp; ++ decor_src += (info->var.xres - width) * bytespp; ++ } ++} ++ ++#define cc2cx(a) \ ++ ((info->fix.visual == FB_VISUAL_TRUECOLOR || \ ++ info->fix.visual == FB_VISUAL_DIRECTCOLOR) ? \ ++ ((u32*)info->pseudo_palette)[a] : a) ++ ++void fbcon_decor_putcs(struct vc_data *vc, struct fb_info *info, ++ const unsigned short *s, int count, int yy, int xx) ++{ ++ unsigned short charmask = vc->vc_hi_font_mask ? 0x1ff : 0xff; ++ struct fbcon_ops *ops = info->fbcon_par; ++ int fg_color, bg_color, transparent; ++ u8 *src; ++ u32 bgx, fgx; ++ u16 c = scr_readw(s); ++ ++ fg_color = get_color(vc, info, c, 1); ++ bg_color = get_color(vc, info, c, 0); ++ ++ /* Don't paint the background image if console is blanked */ ++ transparent = ops->blank_state ? 0 : ++ (vc->vc_decor.bg_color == bg_color); ++ ++ xx = xx * vc->vc_font.width + vc->vc_decor.tx; ++ yy = yy * vc->vc_font.height + vc->vc_decor.ty; ++ ++ fgx = cc2cx(fg_color); ++ bgx = cc2cx(bg_color); ++ ++ while (count--) { ++ c = scr_readw(s++); ++ src = vc->vc_font.data + (c & charmask) * vc->vc_font.height * ++ ((vc->vc_font.width + 7) >> 3); ++ ++ fbcon_decor_renderc(info, yy, xx, vc->vc_font.height, ++ vc->vc_font.width, src, fgx, bgx, transparent); ++ xx += vc->vc_font.width; ++ } ++} ++ ++void fbcon_decor_cursor(struct fb_info *info, struct fb_cursor *cursor) ++{ ++ int i; ++ unsigned int dsize, s_pitch; ++ struct fbcon_ops *ops = info->fbcon_par; ++ struct vc_data* vc; ++ u8 *src; ++ ++ /* we really don't need any cursors while the console is blanked */ ++ if (info->state != FBINFO_STATE_RUNNING || ops->blank_state) ++ return; ++ ++ vc = vc_cons[ops->currcon].d; ++ ++ src = kmalloc(64 + sizeof(struct fb_image), GFP_ATOMIC); ++ if (!src) ++ return; ++ ++ s_pitch = (cursor->image.width + 7) >> 3; ++ dsize = s_pitch * cursor->image.height; ++ if (cursor->enable) { ++ switch (cursor->rop) { ++ case ROP_XOR: ++ for (i = 0; i < dsize; i++) ++ src[i] = cursor->image.data[i] ^ cursor->mask[i]; ++ break; ++ case ROP_COPY: ++ default: ++ for (i = 0; i < dsize; i++) ++ src[i] = cursor->image.data[i] & cursor->mask[i]; ++ break; ++ } ++ } else ++ memcpy(src, cursor->image.data, dsize); ++ ++ fbcon_decor_renderc(info, ++ cursor->image.dy + vc->vc_decor.ty, ++ cursor->image.dx + vc->vc_decor.tx, ++ cursor->image.height, ++ cursor->image.width, ++ (u8*)src, ++ cc2cx(cursor->image.fg_color), ++ cc2cx(cursor->image.bg_color), ++ cursor->image.bg_color == vc->vc_decor.bg_color); ++ ++ kfree(src); ++} ++ ++static void decorset(u8 *dst, int height, int width, int dstbytes, ++ u32 bgx, int bpp) ++{ ++ int i; ++ ++ if (bpp == 8) ++ bgx |= bgx << 8; ++ if (bpp == 16 || bpp == 8) ++ bgx |= bgx << 16; ++ ++ while (height-- > 0) { ++ u8 *p = dst; ++ ++ switch (bpp) { ++ ++ case 32: ++ for (i=0; i < width; i++) { ++ fb_writel(bgx, p); p += 4; ++ } ++ break; ++ case 24: ++ for (i=0; i < width; i++) { ++#ifdef __LITTLE_ENDIAN ++ fb_writew((bgx & 0xffff),(u16*)p); p += 2; ++ fb_writeb((bgx >> 16),p++); ++#else ++ fb_writew((bgx >> 8),(u16*)p); p += 2; ++ fb_writeb((bgx & 0xff),p++); ++#endif ++ } ++ case 16: ++ for (i=0; i < width/4; i++) { ++ fb_writel(bgx,p); p += 4; ++ fb_writel(bgx,p); p += 4; ++ } ++ if (width & 2) { ++ fb_writel(bgx,p); p += 4; ++ } ++ if (width & 1) ++ fb_writew(bgx,(u16*)p); ++ break; ++ case 8: ++ for (i=0; i < width/4; i++) { ++ fb_writel(bgx,p); p += 4; ++ } ++ ++ if (width & 2) { ++ fb_writew(bgx,p); p += 2; ++ } ++ if (width & 1) ++ fb_writeb(bgx,(u8*)p); ++ break; ++ ++ } ++ dst += dstbytes; ++ } ++} ++ ++void fbcon_decor_copy(u8 *dst, u8 *src, int height, int width, int linebytes, ++ int srclinebytes, int bpp) ++{ ++ int i; ++ ++ while (height-- > 0) { ++ u32 *p = (u32 *)dst; ++ u32 *q = (u32 *)src; ++ ++ switch (bpp) { ++ ++ case 32: ++ for (i=0; i < width; i++) ++ fb_writel(*q++, p++); ++ break; ++ case 24: ++ for (i=0; i < (width*3/4); i++) ++ fb_writel(*q++, p++); ++ if ((width*3) % 4) { ++ if (width & 2) { ++ fb_writeb(*(u8*)q, (u8*)p); ++ } else if (width & 1) { ++ fb_writew(*(u16*)q, (u16*)p); ++ fb_writeb(*(u8*)((u16*)q+1),(u8*)((u16*)p+2)); ++ } ++ } ++ break; ++ case 16: ++ for (i=0; i < width/4; i++) { ++ fb_writel(*q++, p++); ++ fb_writel(*q++, p++); ++ } ++ if (width & 2) ++ fb_writel(*q++, p++); ++ if (width & 1) ++ fb_writew(*(u16*)q, (u16*)p); ++ break; ++ case 8: ++ for (i=0; i < width/4; i++) ++ fb_writel(*q++, p++); ++ ++ if (width & 2) { ++ fb_writew(*(u16*)q, (u16*)p); ++ q = (u32*) ((u16*)q + 1); ++ p = (u32*) ((u16*)p + 1); ++ } ++ if (width & 1) ++ fb_writeb(*(u8*)q, (u8*)p); ++ break; ++ } ++ ++ dst += linebytes; ++ src += srclinebytes; ++ } ++} ++ ++static void decorfill(struct fb_info *info, int sy, int sx, int height, ++ int width) ++{ ++ int bytespp = ((info->var.bits_per_pixel + 7) >> 3); ++ int d = sy * info->fix.line_length + sx * bytespp; ++ int ds = (sy * info->var.xres + sx) * bytespp; ++ ++ fbcon_decor_copy((u8 *)(info->screen_base + d), (u8 *)(info->bgdecor.data + ds), ++ height, width, info->fix.line_length, info->var.xres * bytespp, ++ info->var.bits_per_pixel); ++} ++ ++void fbcon_decor_clear(struct vc_data *vc, struct fb_info *info, int sy, int sx, ++ int height, int width) ++{ ++ int bgshift = (vc->vc_hi_font_mask) ? 13 : 12; ++ struct fbcon_ops *ops = info->fbcon_par; ++ u8 *dst; ++ int transparent, bg_color = attr_bgcol_ec(bgshift, vc, info); ++ ++ transparent = (vc->vc_decor.bg_color == bg_color); ++ sy = sy * vc->vc_font.height + vc->vc_decor.ty; ++ sx = sx * vc->vc_font.width + vc->vc_decor.tx; ++ height *= vc->vc_font.height; ++ width *= vc->vc_font.width; ++ ++ /* Don't paint the background image if console is blanked */ ++ if (transparent && !ops->blank_state) { ++ decorfill(info, sy, sx, height, width); ++ } else { ++ dst = (u8 *)(info->screen_base + sy * info->fix.line_length + ++ sx * ((info->var.bits_per_pixel + 7) >> 3)); ++ decorset(dst, height, width, info->fix.line_length, cc2cx(bg_color), ++ info->var.bits_per_pixel); ++ } ++} ++ ++void fbcon_decor_clear_margins(struct vc_data *vc, struct fb_info *info, ++ int bottom_only) ++{ ++ unsigned int tw = vc->vc_cols*vc->vc_font.width; ++ unsigned int th = vc->vc_rows*vc->vc_font.height; ++ ++ if (!bottom_only) { ++ /* top margin */ ++ decorfill(info, 0, 0, vc->vc_decor.ty, info->var.xres); ++ /* left margin */ ++ decorfill(info, vc->vc_decor.ty, 0, th, vc->vc_decor.tx); ++ /* right margin */ ++ decorfill(info, vc->vc_decor.ty, vc->vc_decor.tx + tw, th, ++ info->var.xres - vc->vc_decor.tx - tw); ++ } ++ decorfill(info, vc->vc_decor.ty + th, 0, ++ info->var.yres - vc->vc_decor.ty - th, info->var.xres); ++} ++ ++void fbcon_decor_bmove_redraw(struct vc_data *vc, struct fb_info *info, int y, ++ int sx, int dx, int width) ++{ ++ u16 *d = (u16 *) (vc->vc_origin + vc->vc_size_row * y + dx * 2); ++ u16 *s = d + (dx - sx); ++ u16 *start = d; ++ u16 *ls = d; ++ u16 *le = d + width; ++ u16 c; ++ int x = dx; ++ u16 attr = 1; ++ ++ do { ++ c = scr_readw(d); ++ if (attr != (c & 0xff00)) { ++ attr = c & 0xff00; ++ if (d > start) { ++ fbcon_decor_putcs(vc, info, start, d - start, y, x); ++ x += d - start; ++ start = d; ++ } ++ } ++ if (s >= ls && s < le && c == scr_readw(s)) { ++ if (d > start) { ++ fbcon_decor_putcs(vc, info, start, d - start, y, x); ++ x += d - start + 1; ++ start = d + 1; ++ } else { ++ x++; ++ start++; ++ } ++ } ++ s++; ++ d++; ++ } while (d < le); ++ if (d > start) ++ fbcon_decor_putcs(vc, info, start, d - start, y, x); ++} ++ ++void fbcon_decor_blank(struct vc_data *vc, struct fb_info *info, int blank) ++{ ++ if (blank) { ++ decorset((u8 *)info->screen_base, info->var.yres, info->var.xres, ++ info->fix.line_length, 0, info->var.bits_per_pixel); ++ } else { ++ update_screen(vc); ++ fbcon_decor_clear_margins(vc, info, 0); ++ } ++} ++ +diff -Naurp -x .git /tmp/linux/drivers/video/console/fbcon.c ./drivers/video/console/fbcon.c +--- /tmp/linux/drivers/video/console/fbcon.c 2008-03-25 07:24:16.000000000 +0100 ++++ ./drivers/video/console/fbcon.c 2008-03-25 23:04:10.000000000 +0100 +@@ -90,6 +90,7 @@ + #endif + + #include "fbcon.h" ++#include "fbcondecor.h" + + #ifdef FBCONDEBUG + # define DPRINTK(fmt, args...) printk(KERN_DEBUG "%s: " fmt, __FUNCTION__ , ## args) +@@ -105,7 +106,7 @@ enum { + + static struct display fb_display[MAX_NR_CONSOLES]; + +-static signed char con2fb_map[MAX_NR_CONSOLES]; ++signed char con2fb_map[MAX_NR_CONSOLES]; + static signed char con2fb_map_boot[MAX_NR_CONSOLES]; + #ifndef MODULE + static int logo_height; +@@ -315,7 +316,7 @@ static inline int fbcon_is_inactive(stru + vc->vc_mode != KD_TEXT || ops->graphics); + } + +-static inline int get_color(struct vc_data *vc, struct fb_info *info, ++inline int get_color(struct vc_data *vc, struct fb_info *info, + u16 c, int is_fg) + { + int depth = fb_get_color_depth(&info->var, &info->fix); +@@ -420,6 +421,7 @@ static void fb_flashcursor(struct work_s + CM_ERASE : CM_DRAW; + ops->cursor(vc, info, mode, softback_lines, get_color(vc, info, c, 1), + get_color(vc, info, c, 0)); ++ + release_console_sem(); + } + +@@ -590,6 +592,8 @@ static int fbcon_takeover(int show_logo) + info_idx = -1; + } + ++ fbcon_decor_init(); ++ + return err; + } + +@@ -1031,6 +1035,12 @@ static const char *fbcon_startup(void) + rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres); + cols /= vc->vc_font.width; + rows /= vc->vc_font.height; ++ ++ if (fbcon_decor_active(info, vc)) { ++ cols = vc->vc_decor.twidth / vc->vc_font.width; ++ rows = vc->vc_decor.theight / vc->vc_font.height; ++ } ++ + vc_resize(vc, cols, rows); + + DPRINTK("mode: %s\n", info->fix.id); +@@ -1114,7 +1124,7 @@ static void fbcon_init(struct vc_data *v + cap = info->flags; + + if (vc != svc || logo_shown == FBCON_LOGO_DONTSHOW || +- (info->fix.type == FB_TYPE_TEXT)) ++ (info->fix.type == FB_TYPE_TEXT) || fbcon_decor_active(info, vc)) + logo = 0; + + if (var_to_display(p, &info->var, info)) +@@ -1313,6 +1323,11 @@ static void fbcon_clear(struct vc_data * + if (!height || !width) + return; + ++ if (fbcon_decor_active(info, vc)) { ++ fbcon_decor_clear(vc, info, sy, sx, height, width); ++ return; ++ } ++ + /* Split blits that cross physical y_wrap boundary */ + + y_break = p->vrows - p->yscroll; +@@ -1332,10 +1347,15 @@ static void fbcon_putcs(struct vc_data * + struct display *p = &fb_display[vc->vc_num]; + struct fbcon_ops *ops = info->fbcon_par; + +- if (!fbcon_is_inactive(vc, info)) +- ops->putcs(vc, info, s, count, real_y(p, ypos), xpos, +- get_color(vc, info, scr_readw(s), 1), +- get_color(vc, info, scr_readw(s), 0)); ++ if (!fbcon_is_inactive(vc, info)) { ++ ++ if (fbcon_decor_active(info, vc)) ++ fbcon_decor_putcs(vc, info, s, count, ypos, xpos); ++ else ++ ops->putcs(vc, info, s, count, real_y(p, ypos), xpos, ++ get_color(vc, info, scr_readw(s), 1), ++ get_color(vc, info, scr_readw(s), 0)); ++ } + } + + static void fbcon_putc(struct vc_data *vc, int c, int ypos, int xpos) +@@ -1351,8 +1371,13 @@ static void fbcon_clear_margins(struct v + struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; + struct fbcon_ops *ops = info->fbcon_par; + +- if (!fbcon_is_inactive(vc, info)) +- ops->clear_margins(vc, info, bottom_only); ++ if (!fbcon_is_inactive(vc, info)) { ++ if (fbcon_decor_active(info, vc)) { ++ fbcon_decor_clear_margins(vc, info, bottom_only); ++ } else { ++ ops->clear_margins(vc, info, bottom_only); ++ } ++ } + } + + static void fbcon_cursor(struct vc_data *vc, int mode) +@@ -1872,7 +1897,7 @@ static int fbcon_scroll(struct vc_data * + count = vc->vc_rows; + if (softback_top) + fbcon_softback_note(vc, t, count); +- if (logo_shown >= 0) ++ if (logo_shown >= 0 || fbcon_decor_active(info, vc)) + goto redraw_up; + switch (p->scrollmode) { + case SCROLL_MOVE: +@@ -1965,6 +1990,8 @@ static int fbcon_scroll(struct vc_data * + count = vc->vc_rows; + if (logo_shown >= 0) + goto redraw_down; ++ if (fbcon_decor_active(info, vc)) ++ goto redraw_down; + switch (p->scrollmode) { + case SCROLL_MOVE: + fbcon_redraw_blit(vc, info, p, b - 1, b - t - count, +@@ -2113,6 +2140,13 @@ static void fbcon_bmove_rec(struct vc_da + } + return; + } ++ ++ if (fbcon_decor_active(info, vc) && sy == dy && height == 1) { ++ /* must use slower redraw bmove to keep background pic intact */ ++ fbcon_decor_bmove_redraw(vc, info, sy, sx, dx, width); ++ return; ++ } ++ + ops->bmove(vc, info, real_y(p, sy), sx, real_y(p, dy), dx, + height, width); + } +@@ -2183,8 +2217,8 @@ static int fbcon_resize(struct vc_data * + var.yres = virt_h * virt_fh; + x_diff = info->var.xres - var.xres; + y_diff = info->var.yres - var.yres; +- if (x_diff < 0 || x_diff > virt_fw || +- y_diff < 0 || y_diff > virt_fh) { ++ if ((x_diff < 0 || x_diff > virt_fw || ++ y_diff < 0 || y_diff > virt_fh) && !vc->vc_decor.state) { + const struct fb_videomode *mode; + + DPRINTK("attempting resize %ix%i\n", var.xres, var.yres); +@@ -2220,6 +2254,19 @@ static int fbcon_switch(struct vc_data * + + info = registered_fb[con2fb_map[vc->vc_num]]; + ops = info->fbcon_par; ++ prev_console = ops->currcon; ++ if (prev_console != -1) ++ old_info = registered_fb[con2fb_map[prev_console]]; ++ ++ if (!fbcon_decor_active_vc(vc) && info->fix.visual == FB_VISUAL_DIRECTCOLOR) { ++ struct vc_data *vc_curr = vc_cons[prev_console].d; ++ if (vc_curr && fbcon_decor_active_vc(vc_curr)) { ++ /* Clear the screen to avoid displaying funky colors during ++ * palette updates. */ ++ memset((u8*)info->screen_base + info->fix.line_length * info->var.yoffset, ++ 0, info->var.yres * info->fix.line_length); ++ } ++ } + + if (softback_top) { + if (softback_lines) +@@ -2238,9 +2285,6 @@ static int fbcon_switch(struct vc_data * + logo_shown = FBCON_LOGO_CANSHOW; + } + +- prev_console = ops->currcon; +- if (prev_console != -1) +- old_info = registered_fb[con2fb_map[prev_console]]; + /* + * FIXME: If we have multiple fbdev's loaded, we need to + * update all info->currcon. Perhaps, we can place this +@@ -2280,6 +2324,18 @@ static int fbcon_switch(struct vc_data * + fbcon_del_cursor_timer(old_info); + } + ++ if (fbcon_decor_active_vc(vc)) { ++ struct vc_data *vc_curr = vc_cons[prev_console].d; ++ ++ if (!vc_curr->vc_decor.theme || ++ strcmp(vc->vc_decor.theme, vc_curr->vc_decor.theme) || ++ (fbcon_decor_active_nores(info, vc_curr) && ++ !fbcon_decor_active(info, vc_curr))) { ++ if (fbcon_decor_call_helper("modechange", vc->vc_num)) ++ fbcon_decor_disable(vc, 0); ++ } ++ } ++ + if (fbcon_is_inactive(vc, info) || + ops->blank_state != FB_BLANK_UNBLANK) + fbcon_del_cursor_timer(info); +@@ -2546,13 +2606,22 @@ static int fbcon_do_set_font(struct vc_d + } + + if (resize) { ++ /* reset wrap/pan */ + int cols, rows; + + cols = FBCON_SWAP(ops->rotate, info->var.xres, info->var.yres); + rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres); ++ ++ info->var.xoffset = info->var.yoffset = p->yscroll = 0; ++ if (fbcon_decor_active(info, vc)) { ++ cols = vc->vc_decor.twidth; ++ rows = vc->vc_decor.theight; ++ } + cols /= w; + rows /= h; ++ + vc_resize(vc, cols, rows); ++ + if (CON_IS_VISIBLE(vc) && softback_buf) + fbcon_update_softback(vc); + } else if (CON_IS_VISIBLE(vc) +@@ -2681,7 +2750,7 @@ static int fbcon_set_palette(struct vc_d + int i, j, k, depth; + u8 val; + +- if (fbcon_is_inactive(vc, info)) ++ if (fbcon_is_inactive(vc, info) || vc->vc_num != fg_console) + return -EINVAL; + + if (!CON_IS_VISIBLE(vc)) +@@ -2707,7 +2776,49 @@ static int fbcon_set_palette(struct vc_d + } else + fb_copy_cmap(fb_default_cmap(1 << depth), &palette_cmap); + +- return fb_set_cmap(&palette_cmap, info); ++ if (fbcon_decor_active(info, vc_cons[fg_console].d) && ++ info->fix.visual == FB_VISUAL_DIRECTCOLOR) { ++ ++ u16 *red, *green, *blue; ++ int minlen = min(min(info->var.red.length, info->var.green.length), ++ info->var.blue.length); ++ int h; ++ ++ struct fb_cmap cmap = { ++ .start = 0, ++ .len = (1 << minlen), ++ .red = NULL, ++ .green = NULL, ++ .blue = NULL, ++ .transp = NULL ++ }; ++ ++ red = kmalloc(256 * sizeof(u16) * 3, GFP_KERNEL); ++ ++ if (!red) ++ goto out; ++ ++ green = red + 256; ++ blue = green + 256; ++ cmap.red = red; ++ cmap.green = green; ++ cmap.blue = blue; ++ ++ for (i = 0; i < cmap.len; i++) { ++ red[i] = green[i] = blue[i] = (0xffff * i)/(cmap.len-1); ++ } ++ ++ h = fb_set_cmap(&cmap, info); ++ fbcon_decor_fix_pseudo_pal(info, vc_cons[fg_console].d); ++ kfree(red); ++ ++ return h; ++ ++ } else if (fbcon_decor_active(info, vc_cons[fg_console].d) && ++ info->var.bits_per_pixel == 8 && info->bgdecor.cmap.red != NULL) ++ fb_set_cmap(&info->bgdecor.cmap, info); ++ ++out: return fb_set_cmap(&palette_cmap, info); + } + + static u16 *fbcon_screen_pos(struct vc_data *vc, int offset) +@@ -2933,7 +3044,14 @@ static void fbcon_modechanged(struct fb_ + rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres); + cols /= vc->vc_font.width; + rows /= vc->vc_font.height; +- vc_resize(vc, cols, rows); ++ ++ if (!fbcon_decor_active_nores(info, vc)) { ++ vc_resize(vc, cols, rows); ++ } else { ++ if (fbcon_decor_call_helper("modechange", vc->vc_num)) ++ fbcon_decor_disable(vc, 0); ++ } ++ + updatescrollmode(p, info, vc); + scrollback_max = 0; + scrollback_current = 0; +@@ -3561,6 +3679,7 @@ static void fbcon_exit(void) + } + } + ++ fbcon_decor_exit(); + fbcon_has_exited = 1; + } + +diff -Naurp -x .git /tmp/linux/drivers/video/console/fbcondecor.c ./drivers/video/console/fbcondecor.c +--- /tmp/linux/drivers/video/console/fbcondecor.c 1970-01-01 01:00:00.000000000 +0100 ++++ ./drivers/video/console/fbcondecor.c 2008-03-25 23:04:10.000000000 +0100 +@@ -0,0 +1,420 @@ ++/* ++ * linux/drivers/video/console/fbcondecor.c -- Framebuffer console decorations ++ * ++ * Copyright (C) 2004 Michal Januszewski ++ * ++ * Code based upon "Bootsplash" (C) 2001-2003 ++ * Volker Poplawski , ++ * Stefan Reinauer , ++ * Steffen Winterfeldt , ++ * Michael Schroeder , ++ * Ken Wimer . ++ * ++ * This file is subject to the terms and conditions of the GNU General Public ++ * License. See the file COPYING in the main directory of this archive for ++ * more details. ++ * ++ */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++#include "fbcon.h" ++#include "fbcondecor.h" ++ ++extern signed char con2fb_map[]; ++static int fbcon_decor_enable(struct vc_data *vc); ++char fbcon_decor_path[KMOD_PATH_LEN] = "/sbin/fbcondecor_helper"; ++static int initialized = 0; ++ ++int fbcon_decor_call_helper(char* cmd, unsigned short vc) ++{ ++ char *envp[] = { ++ "HOME=/", ++ "PATH=/sbin:/bin", ++ NULL ++ }; ++ ++ char tfb[5]; ++ char tcons[5]; ++ unsigned char fb = (int) con2fb_map[vc]; ++ ++ char *argv[] = { ++ fbcon_decor_path, ++ "2", ++ cmd, ++ tcons, ++ tfb, ++ vc_cons[vc].d->vc_decor.theme, ++ NULL ++ }; ++ ++ snprintf(tfb,5,"%d",fb); ++ snprintf(tcons,5,"%d",vc); ++ ++ return call_usermodehelper(fbcon_decor_path, argv, envp, 1); ++} ++ ++/* Disables fbcondecor on a virtual console; called with console sem held. */ ++int fbcon_decor_disable(struct vc_data *vc, unsigned char redraw) ++{ ++ struct fb_info* info; ++ ++ if (!vc->vc_decor.state) ++ return -EINVAL; ++ ++ info = registered_fb[(int) con2fb_map[vc->vc_num]]; ++ ++ if (info == NULL) ++ return -EINVAL; ++ ++ vc->vc_decor.state = 0; ++ vc_resize(vc, info->var.xres / vc->vc_font.width, ++ info->var.yres / vc->vc_font.height); ++ ++ if (fg_console == vc->vc_num && redraw) { ++ redraw_screen(vc, 0); ++ update_region(vc, vc->vc_origin + ++ vc->vc_size_row * vc->vc_top, ++ vc->vc_size_row * (vc->vc_bottom - vc->vc_top) / 2); ++ } ++ ++ printk(KERN_INFO "fbcondecor: switched decor state to 'off' on console %d\n", ++ vc->vc_num); ++ ++ return 0; ++} ++ ++/* Enables fbcondecor on a virtual console; called with console sem held. */ ++static int fbcon_decor_enable(struct vc_data *vc) ++{ ++ struct fb_info* info; ++ ++ info = registered_fb[(int) con2fb_map[vc->vc_num]]; ++ ++ if (vc->vc_decor.twidth == 0 || vc->vc_decor.theight == 0 || ++ info == NULL || vc->vc_decor.state || (!info->bgdecor.data && ++ vc->vc_num == fg_console)) ++ return -EINVAL; ++ ++ vc->vc_decor.state = 1; ++ vc_resize(vc, vc->vc_decor.twidth / vc->vc_font.width, ++ vc->vc_decor.theight / vc->vc_font.height); ++ ++ if (fg_console == vc->vc_num) { ++ redraw_screen(vc, 0); ++ update_region(vc, vc->vc_origin + ++ vc->vc_size_row * vc->vc_top, ++ vc->vc_size_row * (vc->vc_bottom - vc->vc_top) / 2); ++ fbcon_decor_clear_margins(vc, info, 0); ++ } ++ ++ printk(KERN_INFO "fbcondecor: switched decor state to 'on' on console %d\n", ++ vc->vc_num); ++ ++ return 0; ++} ++ ++static inline int fbcon_decor_ioctl_dosetstate(struct vc_data *vc, unsigned int __user* state, unsigned char origin) ++{ ++ int tmp, ret; ++ ++ if (get_user(tmp, state)) ++ return -EFAULT; ++ ++ if (origin == FBCON_DECOR_IO_ORIG_USER) ++ acquire_console_sem(); ++ if (!tmp) ++ ret = fbcon_decor_disable(vc, 1); ++ else ++ ret = fbcon_decor_enable(vc); ++ if (origin == FBCON_DECOR_IO_ORIG_USER) ++ release_console_sem(); ++ ++ return ret; ++} ++ ++static inline int fbcon_decor_ioctl_dogetstate(struct vc_data *vc, unsigned int __user *state) ++{ ++ return put_user(vc->vc_decor.state, (unsigned int __user*) state); ++} ++ ++static int fbcon_decor_ioctl_dosetcfg(struct vc_data *vc, struct vc_decor __user *arg, unsigned char origin) ++{ ++ struct vc_decor cfg; ++ struct fb_info *info; ++ int len; ++ char *tmp; ++ ++ info = registered_fb[(int) con2fb_map[vc->vc_num]]; ++ ++ if (copy_from_user(&cfg, arg, sizeof(struct vc_decor))) ++ return -EFAULT; ++ if (info == NULL || !cfg.twidth || !cfg.theight || ++ cfg.tx + cfg.twidth > info->var.xres || ++ cfg.ty + cfg.theight > info->var.yres) ++ return -EINVAL; ++ ++ len = strlen_user(cfg.theme); ++ if (!len || len > FBCON_DECOR_THEME_LEN) ++ return -EINVAL; ++ tmp = kmalloc(len, GFP_KERNEL); ++ if (!tmp) ++ return -ENOMEM; ++ if (copy_from_user(tmp, (void __user *)cfg.theme, len)) ++ return -EFAULT; ++ cfg.theme = tmp; ++ cfg.state = 0; ++ ++ /* If this ioctl is a response to a request from kernel, the console sem ++ * is already held; we also don't need to disable decor because either the ++ * new config and background picture will be successfully loaded, and the ++ * decor will stay on, or in case of a failure it'll be turned off in fbcon. */ ++ if (origin == FBCON_DECOR_IO_ORIG_USER) { ++ acquire_console_sem(); ++ if (vc->vc_decor.state) ++ fbcon_decor_disable(vc, 1); ++ } ++ ++ if (vc->vc_decor.theme) ++ kfree(vc->vc_decor.theme); ++ ++ vc->vc_decor = cfg; ++ ++ if (origin == FBCON_DECOR_IO_ORIG_USER) ++ release_console_sem(); ++ ++ printk(KERN_INFO "fbcondecor: console %d using theme '%s'\n", ++ vc->vc_num, vc->vc_decor.theme); ++ return 0; ++} ++ ++static int fbcon_decor_ioctl_dogetcfg(struct vc_data *vc, struct vc_decor __user *arg) ++{ ++ struct vc_decor decor; ++ char __user *tmp; ++ ++ if (get_user(tmp, &arg->theme)) ++ return -EFAULT; ++ ++ decor = vc->vc_decor; ++ decor.theme = tmp; ++ ++ if (vc->vc_decor.theme) { ++ if (copy_to_user(tmp, vc->vc_decor.theme, strlen(vc->vc_decor.theme) + 1)) ++ return -EFAULT; ++ } else ++ if (put_user(0, tmp)) ++ return -EFAULT; ++ ++ if (copy_to_user(arg, &decor, sizeof(struct vc_decor))) ++ return -EFAULT; ++ ++ return 0; ++} ++ ++static int fbcon_decor_ioctl_dosetpic(struct vc_data *vc, struct fb_image __user *arg, unsigned char origin) ++{ ++ struct fb_image img; ++ struct fb_info *info; ++ int len; ++ u8 *tmp; ++ ++ if (vc->vc_num != fg_console) ++ return -EINVAL; ++ ++ info = registered_fb[(int) con2fb_map[vc->vc_num]]; ++ ++ if (info == NULL) ++ return -EINVAL; ++ ++ if (copy_from_user(&img, arg, sizeof(struct fb_image))) ++ return -EFAULT; ++ ++ if (img.width != info->var.xres || img.height != info->var.yres) { ++ printk(KERN_ERR "fbcondecor: picture dimensions mismatch\n"); ++ return -EINVAL; ++ } ++ ++ if (img.depth != info->var.bits_per_pixel) { ++ printk(KERN_ERR "fbcondecor: picture depth mismatch\n"); ++ return -EINVAL; ++ } ++ ++ if (img.depth == 8) { ++ if (!img.cmap.len || !img.cmap.red || !img.cmap.green || ++ !img.cmap.blue) ++ return -EINVAL; ++ ++ tmp = vmalloc(img.cmap.len * 3 * 2); ++ if (!tmp) ++ return -ENOMEM; ++ ++ if (copy_from_user(tmp, (void __user*)img.cmap.red, img.cmap.len * 2) || ++ copy_from_user(tmp + (img.cmap.len << 1), ++ (void __user*)img.cmap.green, (img.cmap.len << 1)) || ++ copy_from_user(tmp + (img.cmap.len << 2), ++ (void __user*)img.cmap.blue, (img.cmap.len << 1))) { ++ vfree(tmp); ++ return -EFAULT; ++ } ++ ++ img.cmap.transp = NULL; ++ img.cmap.red = (u16*)tmp; ++ img.cmap.green = img.cmap.red + img.cmap.len; ++ img.cmap.blue = img.cmap.green + img.cmap.len; ++ } else { ++ img.cmap.red = NULL; ++ } ++ ++ len = ((img.depth + 7) >> 3) * img.width * img.height; ++ tmp = vmalloc(len); ++ ++ if (!tmp) ++ goto out; ++ ++ if (copy_from_user(tmp, (void __user*)img.data, len)) ++ goto out; ++ ++ img.data = tmp; ++ ++ /* If this ioctl is a response to a request from kernel, the console sem ++ * is already held. */ ++ if (origin == FBCON_DECOR_IO_ORIG_USER) ++ acquire_console_sem(); ++ ++ if (info->bgdecor.data) ++ vfree((u8*)info->bgdecor.data); ++ if (info->bgdecor.cmap.red) ++ vfree(info->bgdecor.cmap.red); ++ ++ info->bgdecor = img; ++ ++ if (origin == FBCON_DECOR_IO_ORIG_USER) ++ release_console_sem(); ++ ++ return 0; ++ ++out: if (img.cmap.red) ++ vfree(img.cmap.red); ++ if (tmp) ++ vfree(tmp); ++ return -ENOMEM; ++} ++ ++static int fbcon_decor_ioctl(struct inode * inode, struct file *filp, u_int cmd, ++ u_long arg) ++{ ++ struct fbcon_decor_iowrapper __user *wrapper = (void __user*) arg; ++ struct vc_data *vc = NULL; ++ unsigned short vc_num = 0; ++ unsigned char origin = 0; ++ void __user *data = NULL; ++ ++ if (!access_ok(VERIFY_READ, wrapper, ++ sizeof(struct fbcon_decor_iowrapper))) ++ return -EFAULT; ++ ++ __get_user(vc_num, &wrapper->vc); ++ __get_user(origin, &wrapper->origin); ++ __get_user(data, &wrapper->data); ++ ++ if (!vc_cons_allocated(vc_num)) ++ return -EINVAL; ++ ++ vc = vc_cons[vc_num].d; ++ ++ switch (cmd) { ++ case FBIOCONDECOR_SETPIC: ++ return fbcon_decor_ioctl_dosetpic(vc, (struct fb_image __user*)data, origin); ++ case FBIOCONDECOR_SETCFG: ++ return fbcon_decor_ioctl_dosetcfg(vc, (struct vc_decor*)data, origin); ++ case FBIOCONDECOR_GETCFG: ++ return fbcon_decor_ioctl_dogetcfg(vc, (struct vc_decor*)data); ++ case FBIOCONDECOR_SETSTATE: ++ return fbcon_decor_ioctl_dosetstate(vc, (unsigned int *)data, origin); ++ case FBIOCONDECOR_GETSTATE: ++ return fbcon_decor_ioctl_dogetstate(vc, (unsigned int *)data); ++ default: ++ return -ENOIOCTLCMD; ++ } ++} ++ ++static struct file_operations fbcon_decor_ops = { ++ .owner = THIS_MODULE, ++ .ioctl = fbcon_decor_ioctl ++}; ++ ++static struct miscdevice fbcon_decor_dev = { ++ .minor = MISC_DYNAMIC_MINOR, ++ .name = "fbcondecor", ++ .fops = &fbcon_decor_ops ++}; ++ ++void fbcon_decor_reset(void) ++{ ++ struct fb_info *info; ++ struct vc_data *vc; ++ int i; ++ ++ vc = vc_cons[0].d; ++ info = registered_fb[0]; ++ ++ for (i = 0; i < num_registered_fb; i++) { ++ registered_fb[i]->bgdecor.data = NULL; ++ registered_fb[i]->bgdecor.cmap.red = NULL; ++ } ++ ++ for (i = 0; i < MAX_NR_CONSOLES && vc_cons[i].d; i++) { ++ vc_cons[i].d->vc_decor.state = vc_cons[i].d->vc_decor.twidth = ++ vc_cons[i].d->vc_decor.theight = 0; ++ vc_cons[i].d->vc_decor.theme = NULL; ++ } ++ ++ return; ++} ++ ++int fbcon_decor_init(void) ++{ ++ int i; ++ ++ fbcon_decor_reset(); ++ ++ if (initialized) ++ return 0; ++ ++ i = misc_register(&fbcon_decor_dev); ++ if (i) { ++ printk(KERN_ERR "fbcondecor: failed to register device\n"); ++ return i; ++ } ++ ++ fbcon_decor_call_helper("init", 0); ++ initialized = 1; ++ return 0; ++} ++ ++int fbcon_decor_exit(void) ++{ ++ fbcon_decor_reset(); ++ return 0; ++} ++ ++EXPORT_SYMBOL(fbcon_decor_path); +diff -Naurp -x .git /tmp/linux/drivers/video/console/fbcondecor.h ./drivers/video/console/fbcondecor.h +--- /tmp/linux/drivers/video/console/fbcondecor.h 1970-01-01 01:00:00.000000000 +0100 ++++ ./drivers/video/console/fbcondecor.h 2008-03-25 23:04:10.000000000 +0100 +@@ -0,0 +1,78 @@ ++/* ++ * linux/drivers/video/console/fbcondecor.h -- Framebuffer Console Decoration headers ++ * ++ * Copyright (C) 2004 Michal Januszewski ++ * ++ */ ++ ++#ifndef __FBCON_DECOR_H ++#define __FBCON_DECOR_H ++ ++#ifndef _LINUX_FB_H ++#include ++#endif ++ ++/* This is needed for vc_cons in fbcmap.c */ ++#include ++ ++struct fb_cursor; ++struct fb_info; ++struct vc_data; ++ ++#ifdef CONFIG_FB_CON_DECOR ++/* fbcondecor.c */ ++int fbcon_decor_init(void); ++int fbcon_decor_exit(void); ++int fbcon_decor_call_helper(char* cmd, unsigned short cons); ++int fbcon_decor_disable(struct vc_data *vc, unsigned char redraw); ++ ++/* cfbcondecor.c */ ++void fbcon_decor_putcs(struct vc_data *vc, struct fb_info *info, const unsigned short *s, int count, int yy, int xx); ++void fbcon_decor_cursor(struct fb_info *info, struct fb_cursor *cursor); ++void fbcon_decor_clear(struct vc_data *vc, struct fb_info *info, int sy, int sx, int height, int width); ++void fbcon_decor_clear_margins(struct vc_data *vc, struct fb_info *info, int bottom_only); ++void fbcon_decor_blank(struct vc_data *vc, struct fb_info *info, int blank); ++void fbcon_decor_bmove_redraw(struct vc_data *vc, struct fb_info *info, int y, int sx, int dx, int width); ++void fbcon_decor_copy(u8 *dst, u8 *src, int height, int width, int linebytes, int srclinesbytes, int bpp); ++void fbcon_decor_fix_pseudo_pal(struct fb_info *info, struct vc_data *vc); ++ ++/* vt.c */ ++void acquire_console_sem(void); ++void release_console_sem(void); ++void do_unblank_screen(int entering_gfx); ++ ++/* struct vc_data *y */ ++#define fbcon_decor_active_vc(y) (y->vc_decor.state && y->vc_decor.theme) ++ ++/* struct fb_info *x, struct vc_data *y */ ++#define fbcon_decor_active_nores(x,y) (x->bgdecor.data && fbcon_decor_active_vc(y)) ++ ++/* struct fb_info *x, struct vc_data *y */ ++#define fbcon_decor_active(x,y) (fbcon_decor_active_nores(x,y) && \ ++ x->bgdecor.width == x->var.xres && \ ++ x->bgdecor.height == x->var.yres && \ ++ x->bgdecor.depth == x->var.bits_per_pixel) ++ ++ ++#else /* CONFIG_FB_CON_DECOR */ ++ ++static inline void fbcon_decor_putcs(struct vc_data *vc, struct fb_info *info, const unsigned short *s, int count, int yy, int xx) {} ++static inline void fbcon_decor_putc(struct vc_data *vc, struct fb_info *info, int c, int ypos, int xpos) {} ++static inline void fbcon_decor_cursor(struct fb_info *info, struct fb_cursor *cursor) {} ++static inline void fbcon_decor_clear(struct vc_data *vc, struct fb_info *info, int sy, int sx, int height, int width) {} ++static inline void fbcon_decor_clear_margins(struct vc_data *vc, struct fb_info *info, int bottom_only) {} ++static inline void fbcon_decor_blank(struct vc_data *vc, struct fb_info *info, int blank) {} ++static inline void fbcon_decor_bmove_redraw(struct vc_data *vc, struct fb_info *info, int y, int sx, int dx, int width) {} ++static inline void fbcon_decor_fix_pseudo_pal(struct fb_info *info, struct vc_data *vc) {} ++static inline int fbcon_decor_call_helper(char* cmd, unsigned short cons) { return 0; } ++static inline int fbcon_decor_init(void) { return 0; } ++static inline int fbcon_decor_exit(void) { return 0; } ++static inline int fbcon_decor_disable(struct vc_data *vc, unsigned char redraw) { return 0; } ++ ++#define fbcon_decor_active_vc(y) (0) ++#define fbcon_decor_active_nores(x,y) (0) ++#define fbcon_decor_active(x,y) (0) ++ ++#endif /* CONFIG_FB_CON_DECOR */ ++ ++#endif /* __FBCON_DECOR_H */ +diff -Naurp -x .git /tmp/linux/drivers/video/console/Kconfig ./drivers/video/console/Kconfig +--- /tmp/linux/drivers/video/console/Kconfig 2008-03-25 07:24:16.000000000 +0100 ++++ ./drivers/video/console/Kconfig 2008-03-25 23:04:10.000000000 +0100 +@@ -144,6 +144,19 @@ config FRAMEBUFFER_CONSOLE_ROTATION + such that other users of the framebuffer will remain normally + oriented. + ++config FB_CON_DECOR ++ bool "Support for the Framebuffer Console Decorations" ++ depends on FRAMEBUFFER_CONSOLE=y && !FB_TILEBLITTING ++ default n ++ ---help--- ++ This option enables support for framebuffer console decorations which ++ makes it possible to display images in the background of the system ++ consoles. Note that userspace utilities are necessary in order to take ++ advantage of these features. Refer to Documentation/fb/fbcondecor.txt ++ for more information. ++ ++ If unsure, say N. ++ + config STI_CONSOLE + bool "STI text console" + depends on PARISC +diff -Naurp -x .git /tmp/linux/drivers/video/console/Makefile ./drivers/video/console/Makefile +--- /tmp/linux/drivers/video/console/Makefile 2008-03-25 07:24:16.000000000 +0100 ++++ ./drivers/video/console/Makefile 2008-03-25 23:04:10.000000000 +0100 +@@ -35,6 +35,7 @@ obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += + fbcon_ccw.o + endif + ++obj-$(CONFIG_FB_CON_DECOR) += fbcondecor.o cfbcondecor.o + obj-$(CONFIG_FB_STI) += sticore.o font.o + + ifeq ($(CONFIG_USB_SISUSBVGA_CON),y) +diff -Naurp -x .git /tmp/linux/drivers/video/fbcmap.c ./drivers/video/fbcmap.c +--- /tmp/linux/drivers/video/fbcmap.c 2008-03-25 07:24:16.000000000 +0100 ++++ ./drivers/video/fbcmap.c 2008-03-25 23:04:10.000000000 +0100 +@@ -17,6 +17,8 @@ + #include + #include + ++#include "console/fbcondecor.h" ++ + static u16 red2[] __read_mostly = { + 0x0000, 0xaaaa + }; +@@ -234,14 +236,17 @@ int fb_set_cmap(struct fb_cmap *cmap, st + if (transp) + htransp = *transp++; + if (info->fbops->fb_setcolreg(start++, +- hred, hgreen, hblue, ++ hred, hgreen, hblue, + htransp, info)) + break; + } + } +- if (rc == 0) ++ if (rc == 0) { + fb_copy_cmap(cmap, &info->cmap); +- ++ if (fbcon_decor_active(info, vc_cons[fg_console].d) && ++ info->fix.visual == FB_VISUAL_DIRECTCOLOR) ++ fbcon_decor_fix_pseudo_pal(info, vc_cons[fg_console].d); ++ } + return rc; + } + +diff -Naurp -x .git /tmp/linux/drivers/video/Kconfig ./drivers/video/Kconfig +--- /tmp/linux/drivers/video/Kconfig 2008-03-25 07:24:16.000000000 +0100 ++++ ./drivers/video/Kconfig 2008-03-25 23:04:10.000000000 +0100 +@@ -1134,7 +1134,6 @@ config FB_MATROX + select FB_CFB_FILLRECT + select FB_CFB_COPYAREA + select FB_CFB_IMAGEBLIT +- select FB_TILEBLITTING + select FB_MACMODES if PPC_PMAC + ---help--- + Say Y here if you have a Matrox Millennium, Matrox Millennium II, +diff -Naurp -x .git /tmp/linux/include/linux/console_decor.h ./include/linux/console_decor.h +--- /tmp/linux/include/linux/console_decor.h 1970-01-01 01:00:00.000000000 +0100 ++++ ./include/linux/console_decor.h 2008-03-25 23:04:10.000000000 +0100 +@@ -0,0 +1,13 @@ ++#ifndef _LINUX_CONSOLE_DECOR_H_ ++#define _LINUX_CONSOLE_DECOR_H_ 1 ++ ++/* A structure used by the framebuffer console decorations (drivers/video/console/fbcondecor.c) */ ++struct vc_decor { ++ __u8 bg_color; /* The color that is to be treated as transparent */ ++ __u8 state; /* Current decor state: 0 = off, 1 = on */ ++ __u16 tx, ty; /* Top left corner coordinates of the text field */ ++ __u16 twidth, theight; /* Width and height of the text field */ ++ char* theme; ++}; ++ ++#endif +diff -Naurp -x .git /tmp/linux/include/linux/console_struct.h ./include/linux/console_struct.h +--- /tmp/linux/include/linux/console_struct.h 2008-03-25 07:24:16.000000000 +0100 ++++ ./include/linux/console_struct.h 2008-03-25 23:04:10.000000000 +0100 +@@ -19,6 +19,7 @@ + struct vt_struct; + + #define NPAR 16 ++#include + + struct vc_data { + unsigned short vc_num; /* Console number */ +@@ -106,6 +107,8 @@ struct vc_data { + struct vc_data **vc_display_fg; /* [!] Ptr to var holding fg console for this display */ + unsigned long vc_uni_pagedir; + unsigned long *vc_uni_pagedir_loc; /* [!] Location of uni_pagedir variable for this console */ ++ ++ struct vc_decor vc_decor; + /* additional information is in vt_kern.h */ + }; + +diff -Naurp -x .git /tmp/linux/include/linux/fb.h ./include/linux/fb.h +--- /tmp/linux/include/linux/fb.h 2008-03-25 07:24:16.000000000 +0100 ++++ ./include/linux/fb.h 2008-03-25 23:04:10.000000000 +0100 +@@ -11,6 +11,13 @@ struct dentry; + #define FB_MAJOR 29 + #define FB_MAX 32 /* sufficient for now */ + ++struct fbcon_decor_iowrapper ++{ ++ unsigned short vc; /* Virtual console */ ++ unsigned char origin; /* Point of origin of the request */ ++ void *data; ++}; ++ + /* ioctls + 0x46 is 'F' */ + #define FBIOGET_VSCREENINFO 0x4600 +@@ -38,7 +45,15 @@ struct dentry; + #define FBIOGET_HWCINFO 0x4616 + #define FBIOPUT_MODEINFO 0x4617 + #define FBIOGET_DISPINFO 0x4618 +- ++#define FBIOCONDECOR_SETCFG _IOWR('F', 0x19, struct fbcon_decor_iowrapper) ++#define FBIOCONDECOR_GETCFG _IOR('F', 0x1A, struct fbcon_decor_iowrapper) ++#define FBIOCONDECOR_SETSTATE _IOWR('F', 0x1B, struct fbcon_decor_iowrapper) ++#define FBIOCONDECOR_GETSTATE _IOR('F', 0x1C, struct fbcon_decor_iowrapper) ++#define FBIOCONDECOR_SETPIC _IOWR('F', 0x1D, struct fbcon_decor_iowrapper) ++ ++#define FBCON_DECOR_THEME_LEN 128 /* Maximum lenght of a theme name */ ++#define FBCON_DECOR_IO_ORIG_KERNEL 0 /* Kernel ioctl origin */ ++#define FBCON_DECOR_IO_ORIG_USER 1 /* User ioctl origin */ + + #define FB_TYPE_PACKED_PIXELS 0 /* Packed Pixels */ + #define FB_TYPE_PLANES 1 /* Non interleaved planes */ +@@ -833,6 +848,9 @@ struct fb_info { + #define FBINFO_STATE_SUSPENDED 1 + u32 state; /* Hardware state i.e suspend */ + void *fbcon_par; /* fbcon use-only private area */ ++ ++ struct fb_image bgdecor; ++ + /* From here on everything is device dependent */ + void *par; + }; +diff -Naurp -x .git /tmp/linux/kernel/sysctl.c ./kernel/sysctl.c +--- /tmp/linux/kernel/sysctl.c 2008-03-25 07:24:16.000000000 +0100 ++++ ./kernel/sysctl.c 2008-03-25 23:04:10.000000000 +0100 +@@ -107,6 +107,9 @@ static int ngroups_max = NGROUPS_MAX; + #ifdef CONFIG_KMOD + extern char modprobe_path[]; + #endif ++#ifdef CONFIG_FB_CON_DECOR ++extern char fbcon_decor_path[]; ++#endif + #ifdef CONFIG_CHR_DEV_SG + extern int sg_big_buff; + #endif +@@ -820,6 +823,18 @@ static struct ctl_table kern_table[] = { + .proc_handler = &proc_dostring, + .strategy = &sysctl_string, + }, ++#ifdef CONFIG_FB_CON_DECOR ++ { ++ .ctl_name = CTL_UNNUMBERED, ++ .procname = "fbcondecor", ++ .data = &fbcon_decor_path, ++ .maxlen = KMOD_PATH_LEN, ++ .mode = 0644, ++ .proc_handler = &proc_dostring, ++ .strategy = &sysctl_string, ++ }, ++#endif ++ + /* + * NOTE: do not add new entries to this table unless you have read + * Documentation/sysctl/ctl_unnumbered.txt diff --git a/sys-kernel/linux-sabayon/files/2.6.29/genpatches/4400_alpha-sysctl-uac.patch b/sys-kernel/linux-sabayon/files/2.6.29/genpatches/4400_alpha-sysctl-uac.patch new file mode 100644 index 000000000..1e206d99d --- /dev/null +++ b/sys-kernel/linux-sabayon/files/2.6.29/genpatches/4400_alpha-sysctl-uac.patch @@ -0,0 +1,162 @@ +Index: linux-2.6.26-gentoo/arch/alpha/Kconfig +=================================================================== +--- linux-2.6.26-gentoo.orig/arch/alpha/Kconfig ++++ linux-2.6.26-gentoo/arch/alpha/Kconfig +@@ -624,6 +624,32 @@ config HZ + default 1200 if ALPHA_RAWHIDE + default 1024 + ++config ALPHA_UAC_SYSCTL ++ bool "Configure UAC policy via sysctl" ++ depends on SYSCTL ++ default y ++ ---help--- ++ Configuring the UAC (unaligned access control) policy on a Linux ++ system usually involves setting a compile time define. If you say ++ Y here, you will be able to modify the UAC policy at runtime using ++ the /proc interface. ++ ++ The UAC policy defines the action Linux should take when an ++ unaligned memory access occurs. The action can include printing a ++ warning message (NOPRINT), sending a signal to the offending ++ program to help developers debug their applications (SIGBUS), or ++ disabling the transparent fixing (NOFIX). ++ ++ The sysctls will be initialized to the compile-time defined UAC ++ policy. You can change these manually, or with the sysctl(8) ++ userspace utility. ++ ++ To disable the warning messages at runtime, you would use ++ ++ echo 1 > /proc/sys/kernel/uac/noprint ++ ++ This is pretty harmless. Say Y if you're not sure. ++ + source "drivers/pci/Kconfig" + source "drivers/eisa/Kconfig" + +Index: linux-2.6.26-gentoo/arch/alpha/kernel/traps.c +=================================================================== +--- linux-2.6.26-gentoo.orig/arch/alpha/kernel/traps.c ++++ linux-2.6.26-gentoo/arch/alpha/kernel/traps.c +@@ -103,6 +103,52 @@ static char * ireg_name[] = {"v0", "t0", + "t10", "t11", "ra", "pv", "at", "gp", "sp", "zero"}; + #endif + ++#ifdef CONFIG_ALPHA_UAC_SYSCTL ++ ++#include ++ ++static int enabled_noprint = 0; ++static int enabled_sigbus = 0; ++static int enabled_nofix = 0; ++ ++ctl_table uac_table[] = { ++ { ++ .ctl_name = CTL_UNNUMBERED, ++ .procname = "noprint", ++ .data = &enabled_noprint, ++ .maxlen = sizeof (int), ++ .mode = 0644, ++ .proc_handler = &proc_dointvec, ++ }, ++ { ++ .ctl_name = CTL_UNNUMBERED, ++ .procname = "sigbus", ++ .data = &enabled_sigbus, ++ .maxlen = sizeof (int), ++ .mode = 0644, ++ .proc_handler = &proc_dointvec, ++ }, ++ { ++ .ctl_name = CTL_UNNUMBERED, ++ .procname = "nofix", ++ .data = &enabled_nofix, ++ .maxlen = sizeof (int), ++ .mode = 0644, ++ .proc_handler = &proc_dointvec, ++ }, ++ { .ctl_name = 0 } ++}; ++ ++static int __init init_uac_sysctl(void) ++{ ++ /* Initialize sysctls with the #defined UAC policy */ ++ enabled_noprint = (test_thread_flag (TIF_UAC_NOPRINT)) ? 1 : 0; ++ enabled_sigbus = (test_thread_flag (TIF_UAC_SIGBUS)) ? 1 : 0; ++ enabled_nofix = (test_thread_flag (TIF_UAC_NOFIX)) ? 1 : 0; ++ return 0; ++} ++#endif ++ + static void + dik_show_code(unsigned int *pc) + { +@@ -782,7 +828,11 @@ do_entUnaUser(void __user * va, unsigned + /* Check the UAC bits to decide what the user wants us to do + with the unaliged access. */ + ++#ifndef CONFIG_ALPHA_UAC_SYSCTL + if (!test_thread_flag (TIF_UAC_NOPRINT)) { ++#else /* CONFIG_ALPHA_UAC_SYSCTL */ ++ if (!(enabled_noprint)) { ++#endif /* CONFIG_ALPHA_UAC_SYSCTL */ + if (cnt >= 5 && time_after(jiffies, last_time + 5 * HZ)) { + cnt = 0; + } +@@ -793,10 +843,18 @@ do_entUnaUser(void __user * va, unsigned + } + last_time = jiffies; + } ++#ifndef CONFIG_ALPHA_UAC_SYSCTL + if (test_thread_flag (TIF_UAC_SIGBUS)) ++#else /* CONFIG_ALPHA_UAC_SYSCTL */ ++ if (enabled_sigbus) ++#endif /* CONFIG_ALPHA_UAC_SYSCTL */ + goto give_sigbus; + /* Not sure why you'd want to use this, but... */ ++#ifndef CONFIG_ALPHA_UAC_SYSCTL + if (test_thread_flag (TIF_UAC_NOFIX)) ++#else /* CONFIG_ALPHA_UAC_SYSCTL */ ++ if (enabled_nofix) ++#endif /* CONFIG_ALPHA_UAC_SYSCTL */ + return; + + /* Don't bother reading ds in the access check since we already +@@ -1091,3 +1149,7 @@ trap_init(void) + wrent(entSys, 5); + wrent(entDbg, 6); + } ++ ++#ifdef CONFIG_ALPHA_UAC_SYSCTL ++ __initcall(init_uac_sysctl); ++#endif +Index: linux-2.6.26-gentoo/kernel/sysctl.c +=================================================================== +--- linux-2.6.26-gentoo.orig/kernel/sysctl.c ++++ linux-2.6.26-gentoo/kernel/sysctl.c +@@ -177,6 +177,9 @@ extern struct ctl_table random_table[]; + #ifdef CONFIG_INOTIFY_USER + extern struct ctl_table inotify_table[]; + #endif ++#ifdef CONFIG_ALPHA_UAC_SYSCTL ++extern struct ctl_table uac_table[]; ++#endif + + #ifdef HAVE_ARCH_PICK_MMAP_LAYOUT + int sysctl_legacy_va_layout; +@@ -832,6 +835,14 @@ static struct ctl_table kern_table[] = { + * NOTE: do not add new entries to this table unless you have read + * Documentation/sysctl/ctl_unnumbered.txt + */ ++#ifdef CONFIG_ALPHA_UAC_SYSCTL ++ { ++ .ctl_name = CTL_UNNUMBERED, ++ .procname = "uac", ++ .mode = 0555, ++ .child = uac_table, ++ }, ++#endif /* CONFIG_ALPHA_UAC_SYSCTL */ + { .ctl_name = 0 } + }; + diff --git a/sys-kernel/linux-sabayon/files/2.6.29/linux-sabayon-2.6.29-aufs.patch.bz2 b/sys-kernel/linux-sabayon/files/2.6.29/linux-sabayon-2.6.29-aufs.patch.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..46d9bceee29b64a09bc19df88b3aad46fb768bb6 GIT binary patch literal 108390 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 KC`cM7B-4QAk{{0i literal 0 HcmV?d00001 diff --git a/sys-kernel/linux-sabayon/files/2.6.29/mactel/1-bcm5974-headers.patch b/sys-kernel/linux-sabayon/files/2.6.29/mactel/1-bcm5974-headers.patch new file mode 100644 index 000000000..07116fa2f --- /dev/null +++ b/sys-kernel/linux-sabayon/files/2.6.29/mactel/1-bcm5974-headers.patch @@ -0,0 +1,126 @@ +The new unibody Macbooks are equipped with an integrated button and +trackpad. The package header of the trackpad interface has changed to +also contain information about the integrated button. This patch +performs the necessary preparations to allow for the new package +header. + +Signed-off-by: Henrik Rydberg +--- + drivers/input/mouse/bcm5974.c | 42 ++++++++++++++++++++++------------------ + 1 files changed, 23 insertions(+), 19 deletions(-) +diff --git a/drivers/input/mouse/bcm5974.c b/drivers/input/mouse/bcm5974.c +index 2998a6a..e97462e 100644 +--- a/drivers/input/mouse/bcm5974.c ++++ b/drivers/input/mouse/bcm5974.c +@@ -96,13 +96,14 @@ struct bt_data { + u8 rel_y; /* relative y coordinate */ + }; + +-/* trackpad header structure */ +-struct tp_header { +- u8 unknown1[16]; /* constants, timers, etc */ +- u8 fingers; /* number of fingers on trackpad */ +- u8 unknown2[9]; /* constants, timers, etc */ ++/* trackpad header types */ ++enum tp_type { ++ TYPE1 /* plain trackpad */ + }; + ++/* trackpad finger data offsets */ ++#define FINGER_TYPE1 26 ++ + /* trackpad finger structure */ + struct tp_finger { + __le16 origin; /* zero when switching track finger */ +@@ -119,11 +120,9 @@ struct tp_finger { + __le16 multi; /* one finger: varies, more fingers: constant */ + }; + +-/* trackpad data structure, empirically at least ten fingers */ +-struct tp_data { +- struct tp_header header; +- struct tp_finger finger[16]; +-}; ++/* trackpad finger data size, empirically at least ten fingers */ ++#define SIZEOF_FINGER sizeof(struct tp_finger) ++#define SIZEOF_ALL_FINGERS (16 * SIZEOF_FINGER) + + /* device-specific parameters */ + struct bcm5974_param { +@@ -139,6 +138,8 @@ struct bcm5974_config { + int bt_ep; /* the endpoint of the button interface */ + int bt_datalen; /* data length of the button interface */ + int tp_ep; /* the endpoint of the trackpad interface */ ++ enum tp_type tp_type; /* type of trackpad interface */ ++ int tp_offset; /* offset to trackpad finger data */ + int tp_datalen; /* data length of the trackpad interface */ + struct bcm5974_param p; /* finger pressure limits */ + struct bcm5974_param w; /* finger width limits */ +@@ -158,7 +159,7 @@ struct bcm5974 { + struct urb *bt_urb; /* button usb request block */ + struct bt_data *bt_data; /* button transferred data */ + struct urb *tp_urb; /* trackpad usb request block */ +- struct tp_data *tp_data; /* trackpad transferred data */ ++ u8 *tp_data; /* trackpad transferred data */ + int fingers; /* number of fingers on trackpad */ + }; + +@@ -184,7 +185,7 @@ static const struct bcm5974_config bcm5974_config_table[] = { + USB_DEVICE_ID_APPLE_WELLSPRING_ISO, + USB_DEVICE_ID_APPLE_WELLSPRING_JIS, + 0x84, sizeof(struct bt_data), +- 0x81, sizeof(struct tp_data), ++ 0x81, TYPE1, FINGER_TYPE1, FINGER_TYPE1 + SIZEOF_ALL_FINGERS, + { DIM_PRESSURE, DIM_PRESSURE / SN_PRESSURE, 0, 256 }, + { DIM_WIDTH, DIM_WIDTH / SN_WIDTH, 0, 2048 }, + { DIM_X, DIM_X / SN_COORD, -4824, 5342 }, +@@ -195,7 +196,7 @@ static const struct bcm5974_config bcm5974_config_table[] = { + USB_DEVICE_ID_APPLE_WELLSPRING2_ISO, + USB_DEVICE_ID_APPLE_WELLSPRING2_JIS, + 0x84, sizeof(struct bt_data), +- 0x81, sizeof(struct tp_data), ++ 0x81, TYPE1, FINGER_TYPE1, FINGER_TYPE1 + SIZEOF_ALL_FINGERS, + { DIM_PRESSURE, DIM_PRESSURE / SN_PRESSURE, 0, 256 }, + { DIM_WIDTH, DIM_WIDTH / SN_WIDTH, 0, 2048 }, + { DIM_X, DIM_X / SN_COORD, -4824, 4824 }, +@@ -276,18 +277,20 @@ static int report_bt_state(struct bcm5974 *dev, int size) + static int report_tp_state(struct bcm5974 *dev, int size) + { + const struct bcm5974_config *c = &dev->cfg; +- const struct tp_finger *f = dev->tp_data->finger; ++ const struct tp_finger *f; + struct input_dev *input = dev->input; +- const int fingers = (size - 26) / 28; +- int raw_p, raw_w, raw_x, raw_y; ++ int raw_p, raw_w, raw_x, raw_y, raw_n; + int ptest = 0, origin = 0, nmin = 0, nmax = 0; + int abs_p = 0, abs_w = 0, abs_x = 0, abs_y = 0; + +- if (size < 26 || (size - 26) % 28 != 0) ++ if (size < c->tp_offset || (size - c->tp_offset) % SIZEOF_FINGER != 0) + return -EIO; + ++ f = (const struct tp_finger *)(dev->tp_data + c->tp_offset); ++ raw_n = (size - c->tp_offset) / SIZEOF_FINGER; ++ + /* always track the first finger; when detached, start over */ +- if (fingers) { ++ if (raw_n) { + raw_p = raw2int(f->force_major); + raw_w = raw2int(f->size_major); + raw_x = raw2int(f->abs_x); +@@ -307,12 +310,13 @@ static int report_tp_state(struct bcm5974 *dev, int size) + abs_w = int2bound(&c->w, raw_w); + abs_x = int2bound(&c->x, raw_x - c->x.devmin); + abs_y = int2bound(&c->y, c->y.devmax - raw_y); +- for (; f != dev->tp_data->finger + fingers; f++) { ++ while (raw_n--) { + ptest = int2bound(&c->p, raw2int(f->force_major)); + if (ptest > PRESSURE_LOW) + nmax++; + if (ptest > PRESSURE_HIGH) + nmin++; ++ f++; + } + } + diff --git a/sys-kernel/linux-sabayon/files/2.6.29/mactel/2-bcm5974-quad-finger-tapping.patch b/sys-kernel/linux-sabayon/files/2.6.29/mactel/2-bcm5974-quad-finger-tapping.patch new file mode 100644 index 000000000..542f37a9a --- /dev/null +++ b/sys-kernel/linux-sabayon/files/2.6.29/mactel/2-bcm5974-quad-finger-tapping.patch @@ -0,0 +1,46 @@ +The integrated button on the new unibody Macbooks presents a need to +report explicit four-finger actions. Evidently, the finger pressing +the button is also touching the trackpad, so in order to fully support +three-finger actions, the driver must be able to report four-finger +actions. This patch adds a new button, BTN_TOOL_QUADTAP, which +achieves this. + +Signed-off-by: Henrik Rydberg +--- + drivers/input/mouse/bcm5974.c | 4 +++- + include/linux/input.h | 1 + + 2 files changed, 4 insertions(+), 1 deletions(-) +diff --git a/drivers/input/mouse/bcm5974.c b/drivers/input/mouse/bcm5974.c +index e97462e..a170574 100644 +--- a/drivers/input/mouse/bcm5974.c ++++ b/drivers/input/mouse/bcm5974.c +@@ -258,6 +258,7 @@ static void setup_events_to_report(struct input_dev *input_dev, + __set_bit(BTN_TOOL_FINGER, input_dev->keybit); + __set_bit(BTN_TOOL_DOUBLETAP, input_dev->keybit); + __set_bit(BTN_TOOL_TRIPLETAP, input_dev->keybit); ++ __set_bit(BTN_TOOL_QUADTAP, input_dev->keybit); + __set_bit(BTN_LEFT, input_dev->keybit); + } + +@@ -328,7 +329,8 @@ static int report_tp_state(struct bcm5974 *dev, int size) + input_report_key(input, BTN_TOUCH, dev->fingers > 0); + input_report_key(input, BTN_TOOL_FINGER, dev->fingers == 1); + input_report_key(input, BTN_TOOL_DOUBLETAP, dev->fingers == 2); +- input_report_key(input, BTN_TOOL_TRIPLETAP, dev->fingers > 2); ++ input_report_key(input, BTN_TOOL_TRIPLETAP, dev->fingers == 3); ++ input_report_key(input, BTN_TOOL_QUADTAP, dev->fingers > 3); + + input_report_abs(input, ABS_PRESSURE, abs_p); + input_report_abs(input, ABS_TOOL_WIDTH, abs_w); +diff --git a/include/linux/input.h b/include/linux/input.h +index b86fb55..0082b24 100644 +--- a/include/linux/input.h ++++ b/include/linux/input.h +@@ -443,6 +443,7 @@ struct input_absinfo { + #define BTN_STYLUS2 0x14c + #define BTN_TOOL_DOUBLETAP 0x14d + #define BTN_TOOL_TRIPLETAP 0x14e ++#define BTN_TOOL_QUADTAP 0x14f /* Four fingers on trackpad */ + + #define BTN_WHEEL 0x150 + #define BTN_GEAR_DOWN 0x150 diff --git a/sys-kernel/linux-sabayon/files/2.6.29/mactel/3-bcm5974-macbook5-support.patch b/sys-kernel/linux-sabayon/files/2.6.29/mactel/3-bcm5974-macbook5-support.patch new file mode 100644 index 000000000..454fec876 --- /dev/null +++ b/sys-kernel/linux-sabayon/files/2.6.29/mactel/3-bcm5974-macbook5-support.patch @@ -0,0 +1,129 @@ +This patch adds support for the new unibody Macbook, with physically +integrated button and trackpad. A new button, BTN_TOOL_PRESS, is +introduced to allow for non-trivial handling of this device in user +space. + +Signed-off-by: Henrik Rydberg +Tested-by: David M. Lary +--- + drivers/input/mouse/bcm5974.c | 42 +++++++++++++++++++++++++++++++++++++++- + include/linux/input.h | 1 + + 2 files changed, 41 insertions(+), 2 deletions(-) +diff --git a/drivers/input/mouse/bcm5974.c b/drivers/input/mouse/bcm5974.c +index a170574..f85a296 100644 +--- a/drivers/input/mouse/bcm5974.c ++++ b/drivers/input/mouse/bcm5974.c +@@ -51,6 +51,10 @@ + #define USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI 0x0230 + #define USB_DEVICE_ID_APPLE_WELLSPRING2_ISO 0x0231 + #define USB_DEVICE_ID_APPLE_WELLSPRING2_JIS 0x0232 ++/* Macbook5,1 (unibody), aka wellspring3 */ ++#define USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI 0x0236 ++#define USB_DEVICE_ID_APPLE_WELLSPRING3_ISO 0x0237 ++#define USB_DEVICE_ID_APPLE_WELLSPRING3_JIS 0x0238 + + #define BCM5974_DEVICE(prod) { \ + .match_flags = (USB_DEVICE_ID_MATCH_DEVICE | \ +@@ -72,6 +76,10 @@ static const struct usb_device_id bcm5974_table[] = { + BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI), + BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING2_ISO), + BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING2_JIS), ++ /* Macbook5,1 */ ++ BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI), ++ BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING3_ISO), ++ BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING3_JIS), + /* Terminating entry */ + {} + }; +@@ -98,11 +106,19 @@ struct bt_data { + + /* trackpad header types */ + enum tp_type { +- TYPE1 /* plain trackpad */ ++ TYPE1, /* plain trackpad */ ++ TYPE2 /* button integrated in trackpad */ + }; + + /* trackpad finger data offsets */ + #define FINGER_TYPE1 26 ++#define FINGER_TYPE2 30 ++ ++/* trackpad button data offsets */ ++#define BUTTON_TYPE2 15 ++ ++/* integrated button capability by configuration */ ++#define HAS_INTEGRATED_BUTTON(c) (c->tp_type == TYPE2) + + /* trackpad finger structure */ + struct tp_finger { +@@ -202,6 +218,17 @@ static const struct bcm5974_config bcm5974_config_table[] = { + { DIM_X, DIM_X / SN_COORD, -4824, 4824 }, + { DIM_Y, DIM_Y / SN_COORD, -172, 4290 } + }, ++ { ++ USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI, ++ USB_DEVICE_ID_APPLE_WELLSPRING3_ISO, ++ USB_DEVICE_ID_APPLE_WELLSPRING3_JIS, ++ 0x84, sizeof(struct bt_data), ++ 0x81, TYPE2, FINGER_TYPE2, FINGER_TYPE2 + SIZEOF_ALL_FINGERS, ++ { DIM_PRESSURE, DIM_PRESSURE / SN_PRESSURE, 0, 300 }, ++ { DIM_WIDTH, DIM_WIDTH / SN_WIDTH, 0, 2048 }, ++ { DIM_X, DIM_X / SN_COORD, -4460, 5166 }, ++ { DIM_Y, DIM_Y / SN_COORD, -75, 6700 } ++ }, + {} + }; + +@@ -259,6 +286,8 @@ static void setup_events_to_report(struct input_dev *input_dev, + __set_bit(BTN_TOOL_DOUBLETAP, input_dev->keybit); + __set_bit(BTN_TOOL_TRIPLETAP, input_dev->keybit); + __set_bit(BTN_TOOL_QUADTAP, input_dev->keybit); ++ if (HAS_INTEGRATED_BUTTON(cfg)) ++ __set_bit(BTN_TOOL_PRESS, input_dev->keybit); + __set_bit(BTN_LEFT, input_dev->keybit); + } + +@@ -281,7 +310,7 @@ static int report_tp_state(struct bcm5974 *dev, int size) + const struct tp_finger *f; + struct input_dev *input = dev->input; + int raw_p, raw_w, raw_x, raw_y, raw_n; +- int ptest = 0, origin = 0, nmin = 0, nmax = 0; ++ int ptest = 0, origin = 0, ibt = 0, nmin = 0, nmax = 0; + int abs_p = 0, abs_w = 0, abs_x = 0, abs_y = 0; + + if (size < c->tp_offset || (size - c->tp_offset) % SIZEOF_FINGER != 0) +@@ -303,6 +332,10 @@ static int report_tp_state(struct bcm5974 *dev, int size) + + ptest = int2bound(&c->p, raw_p); + origin = raw2int(f->origin); ++ ++ /* set the integrated button if applicable */ ++ if (c->tp_type == TYPE2) ++ ibt = raw2int(dev->tp_data[BUTTON_TYPE2]); + } + + /* while tracking finger still valid, count all fingers */ +@@ -346,6 +379,11 @@ static int report_tp_state(struct bcm5974 *dev, int size) + + } + ++ if (HAS_INTEGRATED_BUTTON(c)) { ++ input_report_key(input, BTN_TOOL_PRESS, ibt); ++ input_report_key(input, BTN_LEFT, ibt); ++ } ++ + input_sync(input); + + return 0; +diff --git a/include/linux/input.h b/include/linux/input.h +index 0082b24..6afa6b3 100644 +--- a/include/linux/input.h ++++ b/include/linux/input.h +@@ -438,6 +438,7 @@ struct input_absinfo { + #define BTN_TOOL_FINGER 0x145 + #define BTN_TOOL_MOUSE 0x146 + #define BTN_TOOL_LENS 0x147 ++#define BTN_TOOL_PRESS 0x148 /* The trackpad is a physical button */ + #define BTN_TOUCH 0x14a + #define BTN_STYLUS 0x14b + #define BTN_STYLUS2 0x14c diff --git a/sys-kernel/linux-sabayon/files/linux-sabayon-2.6.29-amd64.config b/sys-kernel/linux-sabayon/files/linux-sabayon-2.6.29-amd64.config new file mode 100644 index 000000000..2270e8256 --- /dev/null +++ b/sys-kernel/linux-sabayon/files/linux-sabayon-2.6.29-amd64.config @@ -0,0 +1,4285 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.29-sabayon +# Tue Mar 24 14:42:21 2009 +# +CONFIG_64BIT=y +# CONFIG_X86_32 is not set +CONFIG_X86_64=y +CONFIG_X86=y +CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_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_FAST_CMPXCHG_LOCAL=y +CONFIG_MMU=y +CONFIG_ZONE_DMA=y +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_GPIO=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set +CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_GENERIC_TIME_VSYSCALL=y +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_HAVE_CPUMASK_OF_CPU_MAP=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ZONE_DMA32=y +CONFIG_ARCH_POPULATES_NODE_MAP=y +CONFIG_AUDIT_ARCH=y +CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_X86_SMP=y +CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_X86_64_SMP=y +CONFIG_X86_HT=y +CONFIG_X86_BIOS_REBOOT=y +CONFIG_X86_TRAMPOLINE=y +# CONFIG_KTIME_SCALAR is not set +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_POSIX_MQUEUE=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +CONFIG_AUDIT=y +CONFIG_AUDITSYSCALL=y +CONFIG_AUDIT_TREE=y + +# +# RCU Subsystem +# +CONFIG_CLASSIC_RCU=y +# CONFIG_TREE_RCU is not set +# CONFIG_PREEMPT_RCU is not set +# CONFIG_TREE_RCU_TRACE is not set +# CONFIG_PREEMPT_RCU_TRACE is not set +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=15 +CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y +CONFIG_GROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_RT_GROUP_SCHED=y +CONFIG_USER_SCHED=y +# CONFIG_CGROUP_SCHED is not set +CONFIG_CGROUPS=y +CONFIG_CGROUP_DEBUG=y +CONFIG_CGROUP_NS=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CPUSETS=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_RESOURCE_COUNTERS=y +CONFIG_CGROUP_MEM_RES_CTLR=y +# CONFIG_CGROUP_MEM_RES_CTLR_SWAP is not set +CONFIG_MM_OWNER=y +CONFIG_SYSFS_DEPRECATED=y +CONFIG_SYSFS_DEPRECATED_V2=y +CONFIG_RELAY=y +CONFIG_NAMESPACES=y +CONFIG_UTS_NS=y +CONFIG_IPC_NS=y +CONFIG_USER_NS=y +CONFIG_PID_NS=y +# CONFIG_NET_NS is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL=y +CONFIG_ANON_INODES=y +# CONFIG_EMBEDDED is not set +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +# CONFIG_KALLSYMS_EXTRA_PASS 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_VM_EVENT_COUNTERS=y +CONFIG_PCI_QUIRKS=y +CONFIG_SLUB_DEBUG=y +CONFIG_COMPAT_BRK=y +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +# CONFIG_PROFILING is not set +CONFIG_TRACEPOINTS=y +# CONFIG_MARKERS is not set +CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set +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_GENERIC_DMA_COHERENT is not set +CONFIG_SLABINFO=y +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +CONFIG_MODULE_FORCE_LOAD=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_MODVERSIONS=y +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_STOP_MACHINE=y +CONFIG_BLOCK=y +CONFIG_BLK_DEV_IO_TRACE=y +CONFIG_BLK_DEV_BSG=y +CONFIG_BLK_DEV_INTEGRITY=y +CONFIG_BLOCK_COMPAT=y + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +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=y +CONFIG_NUMA_MIGRATE_IRQ_DESC=y +CONFIG_X86_FIND_SMP_CONFIG=y +CONFIG_X86_MPPARSE=y +CONFIG_X86_PC=y +# CONFIG_X86_ELAN is not set +# CONFIG_X86_VOYAGER is not set +# CONFIG_X86_GENERICARCH is not set +# CONFIG_X86_VSMP is not set +CONFIG_SCHED_OMIT_FRAME_POINTER=y +# CONFIG_PARAVIRT_GUEST is not set +CONFIG_MEMTEST=y +# CONFIG_M386 is not set +# CONFIG_M486 is not set +# CONFIG_M586 is not set +# 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_GENERIC_CPU=y +CONFIG_X86_CPU=y +CONFIG_X86_L1_CACHE_BYTES=128 +CONFIG_X86_INTERNODE_CACHE_BYTES=128 +CONFIG_X86_CMPXCHG=y +CONFIG_X86_L1_CACHE_SHIFT=7 +CONFIG_X86_WP_WORKS_OK=y +CONFIG_X86_TSC=y +CONFIG_X86_CMPXCHG64=y +CONFIG_X86_CMOV=y +CONFIG_X86_MINIMUM_CPU_FAMILY=64 +CONFIG_X86_DEBUGCTLMSR=y +CONFIG_CPU_SUP_INTEL=y +CONFIG_CPU_SUP_AMD=y +CONFIG_CPU_SUP_CENTAUR_64=y +CONFIG_X86_DS=y +CONFIG_X86_PTRACE_BTS=y +CONFIG_HPET_TIMER=y +CONFIG_HPET_EMULATE_RTC=y +CONFIG_DMI=y +CONFIG_GART_IOMMU=y +CONFIG_CALGARY_IOMMU=y +CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y +CONFIG_AMD_IOMMU=y +# CONFIG_AMD_IOMMU_STATS is not set +CONFIG_SWIOTLB=y +CONFIG_IOMMU_HELPER=y +CONFIG_IOMMU_API=y +CONFIG_NR_CPUS=64 +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=y +CONFIG_X86_MCE=y +CONFIG_X86_MCE_INTEL=y +CONFIG_X86_MCE_AMD=y +CONFIG_I8K=m +CONFIG_MICROCODE=m +CONFIG_MICROCODE_INTEL=y +CONFIG_MICROCODE_AMD=y +CONFIG_MICROCODE_OLD_INTERFACE=y +CONFIG_X86_MSR=y +CONFIG_X86_CPUID=y +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +CONFIG_DIRECT_GBPAGES=y +CONFIG_NUMA=y +CONFIG_K8_NUMA=y +CONFIG_X86_64_ACPI_NUMA=y +CONFIG_NODES_SPAN_OTHER_NODES=y +# CONFIG_NUMA_EMU is not set +CONFIG_NODES_SHIFT=6 +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_SELECT_MEMORY_MODEL=y +# CONFIG_FLATMEM_MANUAL is not set +# CONFIG_DISCONTIGMEM_MANUAL is not set +CONFIG_SPARSEMEM_MANUAL=y +CONFIG_SPARSEMEM=y +CONFIG_NEED_MULTIPLE_NODES=y +CONFIG_HAVE_MEMORY_PRESENT=y +CONFIG_SPARSEMEM_EXTREME=y +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y +CONFIG_SPARSEMEM_VMEMMAP=y + +# +# Memory hotplug is currently incompatible with Software Suspend +# +CONFIG_PAGEFLAGS_EXTENDED=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_MIGRATION=y +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_ZONE_DMA_FLAG=1 +CONFIG_BOUNCE=y +CONFIG_VIRT_TO_BUS=y +CONFIG_UNEVICTABLE_LRU=y +CONFIG_MMU_NOTIFIER=y +CONFIG_X86_CHECK_BIOS_CORRUPTION=y +# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set +CONFIG_X86_RESERVE_LOW_64K=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_EFI=y +CONFIG_SECCOMP=y +# CONFIG_HZ_100 is not set +# CONFIG_HZ_250 is not set +# CONFIG_HZ_300 is not set +CONFIG_HZ_1000=y +CONFIG_HZ=1000 +CONFIG_SCHED_HRTICK=y +# CONFIG_KEXEC is not set +# CONFIG_CRASH_DUMP is not set +CONFIG_PHYSICAL_START=0x200000 +# CONFIG_RELOCATABLE is not set +CONFIG_PHYSICAL_ALIGN=0x200000 +CONFIG_HOTPLUG_CPU=y +CONFIG_COMPAT_VDSO=y +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE="" +# CONFIG_CMDLINE_OVERRIDE is not set +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y +CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y + +# +# Power management and ACPI options +# +CONFIG_ARCH_HIBERNATION_HEADER=y +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=y +CONFIG_PM_STD_PARTITION="" +CONFIG_TOI_CORE=y + +# +# Image Storage (you need at least one allocator) +# +CONFIG_TOI_FILE=y +CONFIG_TOI_SWAP=y + +# +# General Options +# +CONFIG_TOI_DEFAULT_PRE_HIBERNATE="" +CONFIG_TOI_DEFAULT_POST_HIBERNATE="" +CONFIG_TOI_CRYPTO=y +CONFIG_TOI_USERUI=y +CONFIG_TOI_USERUI_DEFAULT_PATH="/usr/local/sbin/tuxonice_fbsplash" +# CONFIG_TOI_KEEP_IMAGE is not set +CONFIG_TOI_REPLACE_SWSUSP=y +# CONFIG_TOI_IGNORE_LATE_INITCALL is not set +CONFIG_TOI_DEFAULT_WAIT=25 +CONFIG_TOI_DEFAULT_EXTRA_PAGES_ALLOWANCE=500 +CONFIG_TOI_CHECKSUM=y +CONFIG_TOI=y +CONFIG_ACPI=y +CONFIG_ACPI_SLEEP=y +CONFIG_ACPI_PROCFS=y +CONFIG_ACPI_PROCFS_POWER=y +CONFIG_ACPI_SYSFS_POWER=y +CONFIG_ACPI_PROC_EVENT=y +CONFIG_ACPI_AC=y +CONFIG_ACPI_BATTERY=y +CONFIG_ACPI_BUTTON=y +CONFIG_ACPI_VIDEO=m +CONFIG_ACPI_FAN=y +CONFIG_ACPI_DOCK=y +CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ACPI_THERMAL=y +CONFIG_ACPI_NUMA=y +CONFIG_ACPI_CUSTOM_DSDT_FILE="" +# CONFIG_ACPI_CUSTOM_DSDT is not set +CONFIG_ACPI_BLACKLIST_YEAR=0 +# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_PCI_SLOT=m +CONFIG_X86_PM_TIMER=y +CONFIG_ACPI_CONTAINER=y +CONFIG_ACPI_SBS=m + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_TABLE=y +# CONFIG_CPU_FREQ_DEBUG is not set +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_STAT_DETAILS=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y +# 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=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y + +# +# CPUFreq processor drivers +# +CONFIG_X86_ACPI_CPUFREQ=y +CONFIG_X86_POWERNOW_K8=y +CONFIG_X86_POWERNOW_K8_ACPI=y +# CONFIG_X86_SPEEDSTEP_CENTRINO is not set +CONFIG_X86_P4_CLOCKMOD=y + +# +# shared options +# +CONFIG_X86_SPEEDSTEP_LIB=y +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y + +# +# Memory power savings +# +CONFIG_I7300_IDLE_IOAT_CHANNEL=y +CONFIG_I7300_IDLE=y + +# +# Bus options (PCI etc.) +# +CONFIG_PCI=y +CONFIG_PCI_DIRECT=y +CONFIG_PCI_MMCONFIG=y +CONFIG_PCI_DOMAINS=y +CONFIG_DMAR=y +CONFIG_DMAR_DEFAULT_ON=y +CONFIG_DMAR_GFX_WA=y +CONFIG_DMAR_FLOPPY_WA=y +CONFIG_INTR_REMAP=y +CONFIG_PCIEPORTBUS=y +CONFIG_HOTPLUG_PCI_PCIE=m +CONFIG_PCIEAER=y +CONFIG_PCIEASPM=y +# CONFIG_PCIEASPM_DEBUG is not set +CONFIG_ARCH_SUPPORTS_MSI=y +CONFIG_PCI_MSI=y +CONFIG_PCI_LEGACY=y +# CONFIG_PCI_STUB is not set +CONFIG_HT_IRQ=y +CONFIG_ISA_DMA_API=y +CONFIG_K8_NB=y +CONFIG_PCCARD=y +# 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_PCCARD_NONSTATIC=m +CONFIG_HOTPLUG_PCI=m +CONFIG_HOTPLUG_PCI_FAKE=m +CONFIG_HOTPLUG_PCI_ACPI=m +CONFIG_HOTPLUG_PCI_ACPI_IBM=m +# CONFIG_HOTPLUG_PCI_CPCI is not set +CONFIG_HOTPLUG_PCI_SHPC=m + +# +# Executable file formats / Emulations +# +CONFIG_BINFMT_ELF=y +CONFIG_COMPAT_BINFMT_ELF=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +# CONFIG_HAVE_AOUT is not set +CONFIG_BINFMT_MISC=y +CONFIG_IA32_EMULATION=y +CONFIG_IA32_AOUT=y +CONFIG_COMPAT=y +CONFIG_COMPAT_FOR_U64_ALIGNMENT=y +CONFIG_SYSVIPC_COMPAT=y +CONFIG_NET=y + +# +# Networking options +# +CONFIG_COMPAT_NET_DEV_OPS=y +CONFIG_PACKET=y +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=y +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=y +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=y +CONFIG_INET_XFRM_MODE_TUNNEL=y +CONFIG_INET_XFRM_MODE_BEET=y +CONFIG_INET_LRO=m +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_CONG_BIC=y +CONFIG_TCP_CONG_CUBIC=m +CONFIG_TCP_CONG_WESTWOOD=m +CONFIG_TCP_CONG_HTCP=m +CONFIG_TCP_CONG_HSTCP=m +CONFIG_TCP_CONG_HYBLA=m +CONFIG_TCP_CONG_VEGAS=m +CONFIG_TCP_CONG_SCALABLE=m +CONFIG_TCP_CONG_LP=m +CONFIG_TCP_CONG_VENO=m +CONFIG_TCP_CONG_YEAH=m +CONFIG_TCP_CONG_ILLINOIS=m +CONFIG_DEFAULT_BIC=y +# CONFIG_DEFAULT_CUBIC is not set +# 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="bic" +CONFIG_TCP_MD5SIG=y +CONFIG_IPV6=m +CONFIG_IPV6_PRIVACY=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y +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=y +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_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_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_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_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_LOG=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_TARGET_HL=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 is not set +CONFIG_SCTP_HMAC_MD5=y +CONFIG_TIPC=m +CONFIG_TIPC_ADVANCED=y +CONFIG_TIPC_ZONES=3 +CONFIG_TIPC_CLUSTERS=1 +CONFIG_TIPC_NODES=255 +CONFIG_TIPC_SLAVE_NODES=0 +CONFIG_TIPC_PORTS=8191 +CONFIG_TIPC_LOG=0 +# CONFIG_TIPC_DEBUG is not set +CONFIG_ATM=m +CONFIG_ATM_CLIP=m +CONFIG_ATM_CLIP_NO_ICMP=y +CONFIG_ATM_LANE=m +CONFIG_ATM_MPOA=m +CONFIG_ATM_BR2684=m +CONFIG_ATM_BR2684_IPFILTER=y +CONFIG_STP=m +CONFIG_GARP=m +CONFIG_BRIDGE=m +CONFIG_NET_DSA=y +CONFIG_NET_DSA_TAG_DSA=y +CONFIG_NET_DSA_TAG_EDSA=y +CONFIG_NET_DSA_TAG_TRAILER=y +CONFIG_NET_DSA_MV88E6XXX=y +CONFIG_NET_DSA_MV88E6060=y +CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y +CONFIG_NET_DSA_MV88E6131=y +CONFIG_NET_DSA_MV88E6123_61_65=y +CONFIG_VLAN_8021Q=m +CONFIG_VLAN_8021Q_GVRP=y +CONFIG_DECNET=m +CONFIG_DECNET_ROUTER=y +CONFIG_LLC=y +CONFIG_LLC2=m +CONFIG_IPX=m +CONFIG_IPX_INTERN=y +CONFIG_ATALK=m +CONFIG_DEV_APPLETALK=m +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_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_CLS_CGROUP is not set +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=y +CONFIG_NET_SCH_FIFO=y +CONFIG_DCB=y + +# +# Network testing +# +CONFIG_NET_PKTGEN=m +CONFIG_HAMRADIO=y + +# +# Packet Radio protocols +# +CONFIG_AX25=m +CONFIG_AX25_DAMA_SLAVE=y +CONFIG_NETROM=m +CONFIG_ROSE=m + +# +# AX.25 network device drivers +# +CONFIG_MKISS=m +CONFIG_6PACK=m +CONFIG_BPQETHER=m +CONFIG_BAYCOM_SER_FDX=m +CONFIG_BAYCOM_SER_HDX=m +CONFIG_BAYCOM_PAR=m +CONFIG_YAM=m +CONFIG_CAN=m +CONFIG_CAN_RAW=m +CONFIG_CAN_BCM=m + +# +# CAN Device Drivers +# +CONFIG_CAN_VCAN=m +# 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_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_AF_RXRPC=m +# CONFIG_AF_RXRPC_DEBUG is not set +CONFIG_RXKAD=m +CONFIG_PHONET=m +CONFIG_FIB_RULES=y +CONFIG_WIRELESS=y +CONFIG_CFG80211=y +# CONFIG_CFG80211_REG_DEBUG is not set +CONFIG_NL80211=y +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 + +# +# Rate control algorithm selection +# +CONFIG_MAC80211_RC_MINSTREL=y +# CONFIG_MAC80211_RC_DEFAULT_PID is not set +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +CONFIG_MAC80211_RC_DEFAULT="minstrel" +CONFIG_MAC80211_MESH=y +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=y +CONFIG_RFKILL_INPUT=m +CONFIG_RFKILL_LEDS=y +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_STANDALONE is not set +# CONFIG_PREVENT_FIRMWARE_BUILD is not set +CONFIG_FW_LOADER=y +CONFIG_FIRMWARE_IN_KERNEL=y +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_SYS_HYPERVISOR is not set +CONFIG_CONNECTOR=y +CONFIG_PROC_EVENTS=y +CONFIG_MTD=y +CONFIG_MTD_DEBUG=y +CONFIG_MTD_DEBUG_VERBOSE=0 +CONFIG_MTD_CONCAT=y +CONFIG_MTD_PARTITIONS=y +# CONFIG_MTD_TESTS is not set +CONFIG_MTD_REDBOOT_PARTS=m +CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 +CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y +CONFIG_MTD_REDBOOT_PARTS_READONLY=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_AR7_PARTS=y + +# +# 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=y +CONFIG_MTD_CFI_NOSWAP=y +# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set +# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set +# CONFIG_MTD_CFI_GEOMETRY 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_OTP 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_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_DILNETPC=m +CONFIG_MTD_DILNETPC_BOOTSIZE=0x80000 +CONFIG_MTD_L440GX=m +CONFIG_MTD_PCI=m +CONFIG_MTD_INTEL_VR_NOR=m +CONFIG_MTD_PLATRAM=m + +# +# Self-contained MTD device drivers +# +CONFIG_MTD_PMC551=m +# CONFIG_MTD_PMC551_BUGFIX is not set +# 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_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=y +CONFIG_MTD_DOCPROBE_55AA=y +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_VERIFY_WRITE=y +CONFIG_MTD_NAND_ECC_SMC=y +CONFIG_MTD_NAND_MUSEUM_IDS=y +CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_NAND_DISKONCHIP=m +CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED=y +CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0x0 +CONFIG_MTD_NAND_DISKONCHIP_PROBE_HIGH=y +CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE=y +CONFIG_MTD_NAND_CAFE=m +CONFIG_MTD_NAND_NANDSIM=m +CONFIG_MTD_NAND_PLATFORM=m +CONFIG_MTD_ALAUDA=m +CONFIG_MTD_ONENAND=m +CONFIG_MTD_ONENAND_VERIFY_WRITE=y +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=y + +# +# 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=y +CONFIG_PARPORT_PC_SUPERIO=y +CONFIG_PARPORT_PC_PCMCIA=m +# CONFIG_PARPORT_GSC is not set +CONFIG_PARPORT_AX88796=m +CONFIG_PARPORT_1284=y +CONFIG_PARPORT_NOT_PC=y +CONFIG_PNP=y +CONFIG_PNP_DEBUG_MESSAGES=y + +# +# Protocols +# +CONFIG_PNPACPI=y +CONFIG_BLK_DEV=y +CONFIG_BLK_DEV_FD=y +CONFIG_PARIDE=m + +# +# Parallel IDE high-level drivers +# +CONFIG_PARIDE_PD=m +CONFIG_PARIDE_PCD=m +CONFIG_PARIDE_PF=m +CONFIG_PARIDE_PT=m +CONFIG_PARIDE_PG=m + +# +# Parallel IDE protocol modules +# +CONFIG_PARIDE_ATEN=m +CONFIG_PARIDE_BPCK=m +CONFIG_PARIDE_COMM=m +CONFIG_PARIDE_DSTR=m +CONFIG_PARIDE_FIT2=m +CONFIG_PARIDE_FIT3=m +CONFIG_PARIDE_EPAT=m +CONFIG_PARIDE_EPATC8=y +CONFIG_PARIDE_EPIA=m +CONFIG_PARIDE_FRIQ=m +CONFIG_PARIDE_FRPW=m +CONFIG_PARIDE_KBIC=m +CONFIG_PARIDE_KTTI=m +CONFIG_PARIDE_ON20=m +CONFIG_PARIDE_ON26=m +CONFIG_BLK_CPQ_DA=y +CONFIG_BLK_CPQ_CISS_DA=y +CONFIG_CISS_SCSI_TAPE=y +CONFIG_BLK_DEV_DAC960=y +CONFIG_BLK_DEV_UMEM=y +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_CRYPTOLOOP=y +CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_SX8=m +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=16384 +# CONFIG_BLK_DEV_XIP is not set +CONFIG_CDROM_PKTCDVD=y +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +CONFIG_CDROM_PKTCDVD_WCACHE=y +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_SGI_XP=m +CONFIG_HP_ILO=m +CONFIG_SGI_GRU=m +# CONFIG_SGI_GRU_DEBUG is not set +CONFIG_DELL_LAPTOP=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_93CX6=m +CONFIG_HAVE_IDE=y +# CONFIG_IDE is not set + +# +# SCSI device support +# +CONFIG_RAID_ATTRS=y +CONFIG_SCSI=y +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=y +CONFIG_CHR_DEV_ST=y +CONFIG_CHR_DEV_OSST=y +CONFIG_BLK_DEV_SR=y +CONFIG_BLK_DEV_SR_VENDOR=y +CONFIG_CHR_DEV_SG=y +CONFIG_CHR_DEV_SCH=m +CONFIG_SCSI_ENCLOSURE=m + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_CONSTANTS is not set +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y +CONFIG_SCSI_WAIT_SCAN=m + +# +# SCSI Transports +# +CONFIG_SCSI_SPI_ATTRS=y +CONFIG_SCSI_FC_ATTRS=y +CONFIG_SCSI_ISCSI_ATTRS=y +CONFIG_SCSI_SAS_ATTRS=y +CONFIG_SCSI_SAS_LIBSAS=y +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=y +# CONFIG_SCSI_CXGB3_ISCSI is not set +CONFIG_BLK_DEV_3W_XXXX_RAID=y +CONFIG_SCSI_3W_9XXX=y +CONFIG_SCSI_ACARD=y +CONFIG_SCSI_AACRAID=y +CONFIG_SCSI_AIC7XXX=y +CONFIG_AIC7XXX_CMDS_PER_DEVICE=32 +CONFIG_AIC7XXX_RESET_DELAY_MS=15000 +CONFIG_AIC7XXX_BUILD_FIRMWARE=y +CONFIG_AIC7XXX_DEBUG_ENABLE=y +CONFIG_AIC7XXX_DEBUG_MASK=0 +CONFIG_AIC7XXX_REG_PRETTY_PRINT=y +CONFIG_SCSI_AIC7XXX_OLD=y +CONFIG_SCSI_AIC79XX=y +CONFIG_AIC79XX_CMDS_PER_DEVICE=32 +CONFIG_AIC79XX_RESET_DELAY_MS=15000 +CONFIG_AIC79XX_BUILD_FIRMWARE=y +# CONFIG_AIC79XX_DEBUG_ENABLE is not set +CONFIG_AIC79XX_DEBUG_MASK=0 +CONFIG_AIC79XX_REG_PRETTY_PRINT=y +CONFIG_SCSI_AIC94XX=y +# CONFIG_AIC94XX_DEBUG is not set +CONFIG_SCSI_DPT_I2O=y +CONFIG_SCSI_ADVANSYS=y +CONFIG_SCSI_ARCMSR=y +CONFIG_SCSI_ARCMSR_AER=y +CONFIG_MEGARAID_NEWGEN=y +CONFIG_MEGARAID_MM=y +CONFIG_MEGARAID_MAILBOX=y +CONFIG_MEGARAID_LEGACY=y +CONFIG_MEGARAID_SAS=y +CONFIG_SCSI_HPTIOP=y +CONFIG_SCSI_BUSLOGIC=y +CONFIG_LIBFC=m +CONFIG_FCOE=m +CONFIG_SCSI_DMX3191D=y +CONFIG_SCSI_EATA=y +CONFIG_SCSI_EATA_TAGGED_QUEUE=y +CONFIG_SCSI_EATA_LINKED_COMMANDS=y +CONFIG_SCSI_EATA_MAX_TAGS=16 +CONFIG_SCSI_FUTURE_DOMAIN=m +CONFIG_SCSI_GDTH=y +CONFIG_SCSI_IPS=y +CONFIG_SCSI_INITIO=y +CONFIG_SCSI_INIA100=y +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_MVSAS=y +CONFIG_SCSI_STEX=y +CONFIG_SCSI_SYM53C8XX_2=y +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_SYM53C8XX_MMIO=y +CONFIG_SCSI_IPR=y +CONFIG_SCSI_IPR_TRACE=y +CONFIG_SCSI_IPR_DUMP=y +CONFIG_SCSI_QLOGIC_1280=y +CONFIG_SCSI_QLA_FC=y +CONFIG_SCSI_QLA_ISCSI=y +CONFIG_SCSI_LPFC=y +# CONFIG_SCSI_LPFC_DEBUG_FS is not set +CONFIG_SCSI_DC395x=y +CONFIG_SCSI_DC390T=y +# CONFIG_SCSI_DEBUG is not set +CONFIG_SCSI_SRP=m +CONFIG_SCSI_LOWLEVEL_PCMCIA=y +CONFIG_PCMCIA_FDOMAIN=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_ATA=y +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_ACPI=y +CONFIG_SATA_PMP=y +CONFIG_SATA_AHCI=y +CONFIG_SATA_SIL24=y +CONFIG_ATA_SFF=y +CONFIG_SATA_SVW=y +CONFIG_ATA_PIIX=y +CONFIG_SATA_MV=y +CONFIG_SATA_NV=y +CONFIG_PDC_ADMA=y +CONFIG_SATA_QSTOR=y +CONFIG_SATA_PROMISE=y +CONFIG_SATA_SX4=y +CONFIG_SATA_SIL=y +CONFIG_SATA_SIS=y +CONFIG_SATA_ULI=y +CONFIG_SATA_VIA=y +CONFIG_SATA_VITESSE=y +CONFIG_SATA_INIC162X=y +CONFIG_PATA_ACPI=y +CONFIG_PATA_ALI=y +CONFIG_PATA_AMD=y +CONFIG_PATA_ARTOP=y +CONFIG_PATA_ATIIXP=y +CONFIG_PATA_CMD640_PCI=y +CONFIG_PATA_CMD64X=y +CONFIG_PATA_CS5520=y +CONFIG_PATA_CS5530=y +CONFIG_PATA_CYPRESS=y +CONFIG_PATA_EFAR=y +CONFIG_ATA_GENERIC=y +CONFIG_PATA_HPT366=y +CONFIG_PATA_HPT37X=y +CONFIG_PATA_HPT3X2N=y +CONFIG_PATA_HPT3X3=y +CONFIG_PATA_HPT3X3_DMA=y +CONFIG_PATA_IT821X=y +CONFIG_PATA_IT8213=y +CONFIG_PATA_JMICRON=y +CONFIG_PATA_TRIFLEX=y +CONFIG_PATA_MARVELL=y +CONFIG_PATA_MPIIX=y +CONFIG_PATA_OLDPIIX=y +CONFIG_PATA_NETCELL=y +CONFIG_PATA_NINJA32=y +CONFIG_PATA_NS87410=y +CONFIG_PATA_NS87415=y +CONFIG_PATA_OPTI=y +CONFIG_PATA_OPTIDMA=y +CONFIG_PATA_PCMCIA=m +CONFIG_PATA_PDC_OLD=y +CONFIG_PATA_RADISYS=y +CONFIG_PATA_RZ1000=y +CONFIG_PATA_SC1200=y +CONFIG_PATA_SERVERWORKS=y +CONFIG_PATA_PDC2027X=y +CONFIG_PATA_SIL680=y +CONFIG_PATA_SIS=y +CONFIG_PATA_VIA=y +CONFIG_PATA_WINBOND=y +CONFIG_PATA_SCH=y +CONFIG_MD=y +CONFIG_BLK_DEV_MD=y +CONFIG_MD_AUTODETECT=y +CONFIG_MD_LINEAR=y +CONFIG_MD_RAID0=y +CONFIG_MD_RAID1=y +CONFIG_MD_RAID10=y +CONFIG_MD_RAID456=y +CONFIG_MD_RAID5_RESHAPE=y +CONFIG_MD_MULTIPATH=y +CONFIG_MD_FAULTY=y +CONFIG_BLK_DEV_DM=y +# CONFIG_DM_DEBUG is not set +CONFIG_DM_CRYPT=y +CONFIG_DM_SNAPSHOT=y +CONFIG_DM_MIRROR=y +CONFIG_DM_ZERO=y +CONFIG_DM_MULTIPATH=m +CONFIG_DM_DELAY=m +# CONFIG_DM_UEVENT is not set +CONFIG_BLK_DEV_DM_BBR=m +CONFIG_FUSION=y +CONFIG_FUSION_SPI=y +CONFIG_FUSION_FC=y +CONFIG_FUSION_SAS=y +CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_CTL=y +CONFIG_FUSION_LAN=y +CONFIG_FUSION_LOGGING=y + +# +# IEEE 1394 (FireWire) support +# + +# +# Enable only one of the two stacks, unless you know what you are doing +# +CONFIG_FIREWIRE=m +CONFIG_FIREWIRE_OHCI=m +CONFIG_FIREWIRE_OHCI_DEBUG=y +CONFIG_FIREWIRE_SBP2=m +CONFIG_IEEE1394=y +CONFIG_IEEE1394_OHCI1394=y +CONFIG_IEEE1394_PCILYNX=m +CONFIG_IEEE1394_SBP2=y +# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set +# CONFIG_IEEE1394_ETH1394_ROM_ENTRY is not set +# CONFIG_IEEE1394_ETH1394 is not set +CONFIG_IEEE1394_RAWIO=m +CONFIG_IEEE1394_VIDEO1394=m +CONFIG_IEEE1394_DV1394=m +# CONFIG_IEEE1394_VERBOSEDEBUG is not set +CONFIG_I2O=y +CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y +CONFIG_I2O_EXT_ADAPTEC=y +CONFIG_I2O_EXT_ADAPTEC_DMA64=y +CONFIG_I2O_CONFIG=y +CONFIG_I2O_CONFIG_OLD_IOCTL=y +CONFIG_I2O_BUS=y +CONFIG_I2O_BLOCK=y +CONFIG_I2O_SCSI=y +CONFIG_I2O_PROC=y +CONFIG_MACINTOSH_DRIVERS=y +CONFIG_MAC_EMUMOUSEBTN=y +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_PCI=m +CONFIG_PHYLIB=y + +# +# MII PHY device drivers +# +CONFIG_MARVELL_PHY=m +CONFIG_DAVICOM_PHY=m +CONFIG_QSEMI_PHY=m +CONFIG_LXT_PHY=m +CONFIG_CICADA_PHY=m +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_FIXED_PHY=y +CONFIG_MDIO_BITBANG=m +CONFIG_MDIO_GPIO=m +CONFIG_NET_ETHERNET=y +CONFIG_MII=y +CONFIG_HAPPYMEAL=m +CONFIG_SUNGEM=m +CONFIG_CASSINI=m +CONFIG_NET_VENDOR_3COM=y +CONFIG_VORTEX=m +CONFIG_TYPHOON=m +CONFIG_ENC28J60=m +# CONFIG_ENC28J60_WRITEVERIFY is not set +CONFIG_DNET=m +CONFIG_NET_TULIP=y +CONFIG_DE2104X=m +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_HP100=y +# 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_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_E100=m +CONFIG_FEALNX=m +CONFIG_NATSEMI=m +CONFIG_NE2K_PCI=m +CONFIG_8139CP=m +CONFIG_8139TOO=m +# CONFIG_8139TOO_PIO is not set +CONFIG_8139TOO_TUNE_TWISTER=y +CONFIG_8139TOO_8129=y +CONFIG_8139_OLD_RX_RESET=y +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_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_LRO is not set +CONFIG_IGB_DCA=y +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_QLA3XXX=m +CONFIG_ATL1=m +CONFIG_ATL1E=m +CONFIG_ATL1C=m +CONFIG_JME=m +CONFIG_NETDEV_10000=y +CONFIG_CHELSIO_T1=m +# CONFIG_CHELSIO_T1_1G is not set +CONFIG_CHELSIO_T3_DEPENDS=y +CONFIG_CHELSIO_T3=m +CONFIG_ENIC=m +CONFIG_IXGBE=m +CONFIG_IXGBE_DCA=y +# CONFIG_IXGBE_DCB is not set +CONFIG_IXGB=m +CONFIG_S2IO=m +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=y +CONFIG_IBMOL=m +CONFIG_3C359=m +CONFIG_TMS380TR=m +CONFIG_TMSPCI=m +CONFIG_ABYSS=m + +# +# Wireless LAN +# +CONFIG_WLAN_PRE80211=y +CONFIG_STRIP=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_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM=m +CONFIG_LIBERTAS_THINFIRM_USB=m +CONFIG_AIRO=m +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_ATMEL=m +CONFIG_PCI_ATMEL=m +CONFIG_PCMCIA_ATMEL=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_ADM8211=m +CONFIG_MAC80211_HWSIM=m +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +CONFIG_P54_PCI=m +CONFIG_ATH5K=m +# CONFIG_ATH5K_DEBUG is not set +CONFIG_ATH9K=m +# CONFIG_ATH9K_DEBUG is not set +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_IWLCORE=m +CONFIG_IWLWIFI_LEDS=y +CONFIG_IWLWIFI_RFKILL=y +# CONFIG_IWLWIFI_DEBUG is not set +CONFIG_IWLAGN=m +CONFIG_IWLAGN_SPECTRUM_MEASUREMENT=y +CONFIG_IWLAGN_LEDS=y +CONFIG_IWL4965=y +CONFIG_IWL5000=y +CONFIG_IWL3945=m +CONFIG_IWL3945_RFKILL=y +CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y +CONFIG_IWL3945_LEDS=y +# CONFIG_IWL3945_DEBUG 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_PIO=y +CONFIG_B43_LEDS=y +CONFIG_B43_RFKILL=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_RFKILL=y +# CONFIG_B43LEGACY_DEBUG is not set +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_RT2X00_LIB_PCI=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_RFKILL=y +CONFIG_RT2X00_LIB_LEDS=y +# CONFIG_RT2X00_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_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_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_PCMCIA_IBMTR=m +CONFIG_WAN=y +CONFIG_LANMEDIA=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_FARSYNC=m +CONFIG_DSCC4=m +CONFIG_DSCC4_PCISYNC=y +CONFIG_DSCC4_PCI_RST=y +CONFIG_DLCI=m +CONFIG_DLCI_MAX=8 +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 is not set +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_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_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 is not set +CONFIG_NET_FC=y +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +CONFIG_VIRTIO_NET=m +CONFIG_ISDN=y +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_ISDN_I4L is not set +CONFIG_ISDN_CAPI=m +# CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON is not set +CONFIG_CAPI_TRACE=y +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_B1PCI=m +CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y +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=m +CONFIG_PHONE_IXJ=m +CONFIG_PHONE_IXJ_PCMCIA=m + +# +# Input device support +# +CONFIG_INPUT=y +CONFIG_INPUT_FF_MEMLESS=y +CONFIG_INPUT_POLLDEV=y + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_INPUT_JOYDEV=m +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=y +CONFIG_KEYBOARD_SUNKBD=y +CONFIG_KEYBOARD_LKKBD=y +CONFIG_KEYBOARD_XTKBD=y +CONFIG_KEYBOARD_NEWTON=y +CONFIG_KEYBOARD_STOWAWAY=y +CONFIG_KEYBOARD_GPIO=y +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=y +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_TOUCHKIT is not set +CONFIG_MOUSE_SERIAL=y +CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MOUSE_BCM5974=m +CONFIG_MOUSE_VSXXXAA=m +CONFIG_MOUSE_GPIO=m +CONFIG_INPUT_JOYSTICK=y +CONFIG_JOYSTICK_ANALOG=m +CONFIG_JOYSTICK_A3D=m +CONFIG_JOYSTICK_ADI=m +CONFIG_JOYSTICK_COBRA=m +CONFIG_JOYSTICK_GF2K=m +CONFIG_JOYSTICK_GRIP=m +CONFIG_JOYSTICK_GRIP_MP=m +CONFIG_JOYSTICK_GUILLEMOT=m +CONFIG_JOYSTICK_INTERACT=m +CONFIG_JOYSTICK_SIDEWINDER=m +CONFIG_JOYSTICK_TMDC=m +CONFIG_JOYSTICK_IFORCE=m +CONFIG_JOYSTICK_IFORCE_USB=y +CONFIG_JOYSTICK_IFORCE_232=y +CONFIG_JOYSTICK_WARRIOR=m +CONFIG_JOYSTICK_MAGELLAN=m +CONFIG_JOYSTICK_SPACEORB=m +CONFIG_JOYSTICK_SPACEBALL=m +CONFIG_JOYSTICK_STINGER=m +CONFIG_JOYSTICK_TWIDJOY=m +CONFIG_JOYSTICK_ZHENHUA=m +CONFIG_JOYSTICK_DB9=m +CONFIG_JOYSTICK_GAMECON=m +CONFIG_JOYSTICK_TURBOGRAFX=m +CONFIG_JOYSTICK_JOYDUMP=m +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y +CONFIG_JOYSTICK_WALKERA0701=m +CONFIG_INPUT_TABLET=y +CONFIG_TABLET_USB_ACECAD=m +CONFIG_TABLET_USB_AIPTEK=m +CONFIG_TABLET_USB_GTCO=m +CONFIG_TABLET_USB_KBTAB=m +CONFIG_TABLET_USB_WACOM=m +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_ADS7846=m +CONFIG_TOUCHSCREEN_FUJITSU=m +CONFIG_TOUCHSCREEN_GUNZE=m +CONFIG_TOUCHSCREEN_ELO=m +CONFIG_TOUCHSCREEN_WACOM_W8001=m +CONFIG_TOUCHSCREEN_MTOUCH=m +CONFIG_TOUCHSCREEN_INEXIO=m +CONFIG_TOUCHSCREEN_MK712=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_TOUCHIT213=m +CONFIG_TOUCHSCREEN_TSC2007=m +CONFIG_INPUT_MISC=y +CONFIG_INPUT_PCSPKR=m +CONFIG_INPUT_APANEL=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_PCF50633_PMU is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_I8042=y +CONFIG_SERIO_SERPORT=y +CONFIG_SERIO_CT82C710=y +CONFIG_SERIO_PARKBD=m +CONFIG_SERIO_PCIPS2=y +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_RAW=m +CONFIG_GAMEPORT=m +CONFIG_GAMEPORT_NS558=m +CONFIG_GAMEPORT_L4=m +CONFIG_GAMEPORT_EMU10K1=m +CONFIG_GAMEPORT_FM801=m + +# +# Character devices +# +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_DEVKMEM=y +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_SX=m +CONFIG_RIO=m +CONFIG_RIO_OLDPCI=y +CONFIG_STALDRV=y +CONFIG_STALLION=m +CONFIG_ISTALLION=m +CONFIG_NOZOMI=m + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +# CONFIG_SERIAL_8250_CONSOLE is not set +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=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_8250_DETECT_IRQ=y +CONFIG_SERIAL_8250_RSA=y + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_JSM=m +CONFIG_UNIX98_PTYS=y +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +CONFIG_PRINTER=m +CONFIG_LP_CONSOLE=y +CONFIG_PPDEV=m +CONFIG_HVC_DRIVER=y +CONFIG_VIRTIO_CONSOLE=m +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=y +CONFIG_HW_RANDOM_INTEL=y +CONFIG_HW_RANDOM_AMD=y +CONFIG_HW_RANDOM_VIRTIO=m +CONFIG_NVRAM=m +CONFIG_R3964=m +CONFIG_APPLICOM=m + +# +# PCMCIA character devices +# +CONFIG_SYNCLINK_CS=m +CONFIG_CARDMAN_4000=m +CONFIG_CARDMAN_4040=m +CONFIG_IPWIRELESS=m +CONFIG_MWAVE=m +CONFIG_PC8736x_GPIO=m +CONFIG_NSC_GPIO=m +# CONFIG_RAW_DRIVER is not set +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_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 + +# +# 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_PLATFORM=m +CONFIG_I2C_STUB=m + +# +# Miscellaneous I2C Chip support +# +CONFIG_DS1682=m +CONFIG_SENSORS_PCF8591=m +CONFIG_SENSORS_MAX6875=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 +CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y +CONFIG_GPIOLIB=y +CONFIG_GPIO_SYSFS=y + +# +# Memory mapped GPIO expanders: +# + +# +# I2C GPIO expanders: +# +CONFIG_GPIO_MAX732X=m +CONFIG_GPIO_PCA953X=m +CONFIG_GPIO_PCF857X=m + +# +# PCI GPIO expanders: +# + +# +# SPI GPIO expanders: +# +CONFIG_GPIO_MAX7301=m +CONFIG_GPIO_MCP23S08=m +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=y +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_BQ27x00=m +# CONFIG_CHARGER_PCF50633 is not set +CONFIG_HWMON=y +CONFIG_HWMON_VID=m +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_FSCHER=m +CONFIG_SENSORS_FSCPOS=m +CONFIG_SENSORS_FSCHMD=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_LTC4245=m +CONFIG_SENSORS_MAX1111=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PC87427=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_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_HDAPS=m +CONFIG_SENSORS_LIS3LV02D=m +CONFIG_SENSORS_APPLESMC=m +# CONFIG_HWMON_DEBUG_CHIP is not set +CONFIG_THERMAL=y +CONFIG_THERMAL_HWMON=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_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_PC87413_WDT=m +CONFIG_60XX_WDT=m +CONFIG_SBC8360_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 + +# +# PCI-based Watchdog Cards +# +CONFIG_PCIPCWATCHDOG=m +CONFIG_WDTPCI=m +CONFIG_WDT_501_PCI=y + +# +# 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_DEBUG=y +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_WM8350=m +CONFIG_MFD_WM8350_I2C=m +CONFIG_MFD_PCF50633=m +CONFIG_PCF50633_ADC=m +CONFIG_PCF50633_GPIO=m +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_DEBUG is not set +# CONFIG_REGULATOR_FIXED_VOLTAGE is not set +CONFIG_REGULATOR_VIRTUAL_CONSUMER=m +CONFIG_REGULATOR_BQ24022=m +CONFIG_REGULATOR_WM8350=m +CONFIG_REGULATOR_WM8400=m +CONFIG_REGULATOR_PCF50633=m + +# +# Multimedia devices +# + +# +# Multimedia core support +# +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L2_COMMON=m +CONFIG_VIDEO_ALLOW_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_DVB_CORE=y +CONFIG_VIDEO_MEDIA=m + +# +# Multimedia drivers +# +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_MEDIA_ATTACH=y +CONFIG_MEDIA_TUNER=m +# CONFIG_MEDIA_TUNER_CUSTOMIZE 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_VIDEO_V4L2=m +CONFIG_VIDEO_V4L1=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 + +# +# Video decoders +# +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_BT866=m +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_OV7670=m +CONFIG_VIDEO_TCM825X=m +CONFIG_VIDEO_SAA7110=m +CONFIG_VIDEO_SAA7111=m +CONFIG_VIDEO_SAA7114=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_SAA717X=m +CONFIG_VIDEO_SAA7191=m +# CONFIG_VIDEO_TVP514X is not set +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 + +# +# 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_SAA6588=m +CONFIG_VIDEO_BWQCAM=m +CONFIG_VIDEO_CQCAM=m +CONFIG_VIDEO_W9966=m +CONFIG_VIDEO_CPIA=m +CONFIG_VIDEO_CPIA_PP=m +CONFIG_VIDEO_CPIA_USB=m +CONFIG_VIDEO_CPIA2=m +CONFIG_VIDEO_SAA5246A=m +CONFIG_VIDEO_SAA5249=m +CONFIG_VIDEO_STRADIS=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_MEYE=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_DVB=m +CONFIG_VIDEO_MXB=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_CAFE_CCIC=m +CONFIG_SOC_CAMERA=m +CONFIG_SOC_CAMERA_MT9M001=m +CONFIG_MT9M001_PCA9536_SWITCH=y +CONFIG_SOC_CAMERA_MT9M111=m +CONFIG_SOC_CAMERA_MT9T031=m +CONFIG_SOC_CAMERA_MT9V022=m +CONFIG_MT9V022_PCA9536_SWITCH=y +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_GSPCA_CONEX=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_OV519=m +CONFIG_USB_GSPCA_OV534=m +CONFIG_USB_GSPCA_PAC207=m +CONFIG_USB_GSPCA_PAC7311=m +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_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_EM28XX=m +CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_USBVIDEO=m +CONFIG_USB_VICAM=m +CONFIG_USB_IBMCAM=m +CONFIG_USB_KONICAWC=m +CONFIG_USB_QUICKCAM_MESSENGER=m +CONFIG_USB_ET61X251=m +CONFIG_VIDEO_OVCAMCHIP=m +CONFIG_USB_W9968CF=m +CONFIG_USB_OV511=m +CONFIG_USB_SE401=m +CONFIG_USB_SN9C102=m +CONFIG_USB_STV680=m +CONFIG_USB_ZC0301=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_ZR364XX=m +CONFIG_USB_STKWEBCAM=m +CONFIG_USB_S2255=m +CONFIG_RADIO_ADAPTERS=y +CONFIG_RADIO_GEMTEK_PCI=m +CONFIG_RADIO_MAXIRADIO=m +CONFIG_RADIO_MAESTRO=m +CONFIG_USB_DSBR=m +CONFIG_USB_SI470X=m +CONFIG_USB_MR800=m +CONFIG_RADIO_TEA5764=m +# 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_FIRMWARE is not set +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_TTUSB_BUDGET=m +CONFIG_DVB_TTUSB_DEC=m +CONFIG_DVB_SIANO_SMS1XXX=m +CONFIG_DVB_SIANO_SMS1XXX_SMS_IDS=y + +# +# 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 DVB Frontends +# + +# +# Customise DVB Frontends +# +CONFIG_DVB_FE_CUSTOMISE=y + +# +# Multistandard (satellite) frontends +# +CONFIG_DVB_STB0899=m +CONFIG_DVB_STB6100=m + +# +# DVB-S (satellite) frontends +# +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_MT312=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STV0299=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 + +# +# DVB-T (terrestrial) frontends +# +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_DRX397XD=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 + +# +# DVB-C (cable) frontends +# +CONFIG_DVB_VES1820=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA10023=m +CONFIG_DVB_STV0297=m + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# +CONFIG_DVB_NXT200X=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_LGDT3304=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_AU8522=m +CONFIG_DVB_S5H1411=m + +# +# ISDB-T (terrestrial) frontends +# +CONFIG_DVB_S921=m + +# +# Digital terrestrial only tuners/PLL +# +CONFIG_DVB_PLL=m +CONFIG_DVB_TUNER_DIB0070=m + +# +# SEC control devices for DVB-S +# +CONFIG_DVB_LNBP21=m +CONFIG_DVB_ISL6405=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_LGS8GL5=m + +# +# Tools to develop new frontends +# +# CONFIG_DVB_DUMMY_FE is not set +CONFIG_DVB_AF9013=m +CONFIG_DAB=y +# CONFIG_USB_DABUSB is not set + +# +# Graphics support +# +CONFIG_AGP=y +CONFIG_AGP_AMD64=y +CONFIG_AGP_INTEL=m +CONFIG_AGP_SIS=m +CONFIG_AGP_VIA=m +CONFIG_DRM=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=y +CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_FB=y +CONFIG_FIRMWARE_EDID=y +# CONFIG_FB_DDC is not set +CONFIG_FB_BOOT_VESA_SUPPORT=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# 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_SVGALIB is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +CONFIG_FB_MODE_HELPERS=y +# CONFIG_FB_TILEBLITTING is not set + +# +# Frame buffer hardware drivers +# +# CONFIG_FB_CIRRUS is not set +# CONFIG_FB_PM2 is not set +# CONFIG_FB_CYBER2000 is not set +# CONFIG_FB_ARC is not set +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set +CONFIG_FB_VGA16=y +CONFIG_FB_UVESA=y +CONFIG_FB_VESA=y +CONFIG_FB_EFI=y +# CONFIG_FB_N411 is not set +# CONFIG_FB_HGA is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_NVIDIA is not set +# CONFIG_FB_RIVA is not set +# CONFIG_FB_LE80578 is not set +# CONFIG_FB_INTEL is not set +# CONFIG_FB_MATROX is not set +# CONFIG_FB_RADEON is not set +# CONFIG_FB_ATY128 is not set +# CONFIG_FB_ATY is not set +# CONFIG_FB_S3 is not set +# CONFIG_FB_SAVAGE is not set +# CONFIG_FB_SIS is not set +# CONFIG_FB_VIA is not set +# CONFIG_FB_NEOMAGIC is not set +# CONFIG_FB_KYRO is not set +# CONFIG_FB_3DFX is not set +# CONFIG_FB_VOODOO1 is not set +# CONFIG_FB_VT8623 is not set +# CONFIG_FB_TRIDENT is not set +# CONFIG_FB_ARK is not set +# CONFIG_FB_PM3 is not set +# CONFIG_FB_CARMINE is not set +# CONFIG_FB_GEODE is not set +# CONFIG_FB_TMIO is not set +# CONFIG_FB_SM501 is not set +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FB_METRONOME is not set +# CONFIG_FB_MB862XX is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_LCD_CLASS_DEVICE=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=y +CONFIG_BACKLIGHT_GENERIC=y +CONFIG_BACKLIGHT_PROGEAR=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_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y +CONFIG_FB_CON_DECOR=y +CONFIG_FONTS=y +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +CONFIG_FONT_6x11=y +CONFIG_FONT_7x14=y +CONFIG_FONT_PEARL_8x8=y +CONFIG_FONT_ACORN_8x8=y +CONFIG_FONT_MINI_4x6=y +CONFIG_FONT_SUN8x16=y +CONFIG_FONT_SUN12x22=y +CONFIG_FONT_10x18=y +CONFIG_LOGO=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_LOGO_LINUX_CLUT224=y +CONFIG_SOUND=y +CONFIG_SOUND_OSS_CORE=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=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set +CONFIG_SND_VMASTER=y +CONFIG_SND_MPU401_UART=m +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_VX_LIB=m +CONFIG_SND_AC97_CODEC=m +CONFIG_SND_DRIVERS=y +# CONFIG_SND_PCSP is not set +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_SB_COMMON=m +CONFIG_SND_SB16_DSP=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=y +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_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_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=y +CONFIG_SND_FM801_TEA575X=m +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDA_HWDEP=y +CONFIG_SND_HDA_RECONFIG=y +CONFIG_SND_HDA_INPUT_BEEP=y +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_CONEXANT=y +CONFIG_SND_HDA_CODEC_CMEDIA=y +CONFIG_SND_HDA_CODEC_SI3054=y +CONFIG_SND_HDA_GENERIC=y +CONFIG_SND_HDA_POWER_SAVE=y +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=10 +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_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_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=y +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_AD73311=m +CONFIG_SND_SOC_AK4535=m +CONFIG_SND_SOC_CS4270=m +CONFIG_SND_SOC_L3=m +CONFIG_SND_SOC_PCM3008=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_WM8510=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_WM8900=m +CONFIG_SND_SOC_WM8903=m +CONFIG_SND_SOC_WM8971=m +CONFIG_SND_SOC_WM8990=m +# CONFIG_SOUND_PRIME is not set +CONFIG_AC97_BUS=m +CONFIG_HID_SUPPORT=y +CONFIG_HID=y +# CONFIG_HID_DEBUG is not set +CONFIG_HIDRAW=y + +# +# USB Input Devices +# +CONFIG_USB_HID=y +CONFIG_HID_PID=y +CONFIG_USB_HIDDEV=y + +# +# Special HID drivers +# +CONFIG_HID_COMPAT=y +CONFIG_HID_A4TECH=y +CONFIG_HID_APPLE=y +CONFIG_HID_BELKIN=y +CONFIG_HID_CHERRY=y +CONFIG_HID_CHICONY=y +CONFIG_HID_CYPRESS=y +CONFIG_HID_EZKEY=y +CONFIG_HID_GYRATION=y +CONFIG_HID_LOGITECH=y +CONFIG_LOGITECH_FF=y +CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MONTEREY=y +CONFIG_HID_NTRIG=y +CONFIG_HID_PANTHERLORD=y +CONFIG_PANTHERLORD_FF=y +CONFIG_HID_PETALYNX=y +CONFIG_HID_SAMSUNG=y +CONFIG_HID_SONY=y +CONFIG_HID_SUNPLUS=y +CONFIG_GREENASIA_FF=m +CONFIG_HID_TOPSEED=y +CONFIG_THRUSTMASTER_FF=y +CONFIG_ZEROPLUS_FF=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB=y +# 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=y +CONFIG_USB_SUSPEND=y +# CONFIG_USB_OTG is not set +CONFIG_USB_MON=y +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_EHCI_HCD=m +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_OXU210HP_HCD=m +CONFIG_USB_ISP116X_HCD=m +CONFIG_USB_ISP1760_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 +# CONFIG_USB_GADGET_MUSB_HDRC is not set + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=y +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 information +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STORAGE_DATAFAB=y +CONFIG_USB_STORAGE_FREECOM=y +CONFIG_USB_STORAGE_ISD200=y +CONFIG_USB_STORAGE_USBAT=y +CONFIG_USB_STORAGE_SDDR09=y +CONFIG_USB_STORAGE_SDDR55=y +CONFIG_USB_STORAGE_JUMPSHOT=y +CONFIG_USB_STORAGE_ALAUDA=y +CONFIG_USB_STORAGE_ONETOUCH=y +CONFIG_USB_STORAGE_KARMA=y +CONFIG_USB_STORAGE_CYPRESS_ATACB=y +CONFIG_USB_LIBUSUAL=y + +# +# USB Imaging devices +# +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m + +# +# 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_CP2101=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_KEYSPAN_MPR=y +CONFIG_USB_SERIAL_KEYSPAN_USA28=y +CONFIG_USB_SERIAL_KEYSPAN_USA28X=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y +CONFIG_USB_SERIAL_KEYSPAN_USA19=y +CONFIG_USB_SERIAL_KEYSPAN_USA18X=y +CONFIG_USB_SERIAL_KEYSPAN_USA19W=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y +CONFIG_USB_SERIAL_KEYSPAN_USA49W=y +CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y +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_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_TI=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_OPTION=m +# CONFIG_USB_SERIAL_OMNINET is not set +CONFIG_USB_SERIAL_OPTICON=m +# CONFIG_USB_SERIAL_DEBUG is not set + +# +# 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=m +CONFIG_USB_LCD=m +CONFIG_USB_BERRY_CHARGE=m +CONFIG_USB_LED=m +CONFIG_USB_CYPRESS_CY7C63=m +CONFIG_USB_CYTHERM=m +CONFIG_USB_PHIDGET=m +CONFIG_USB_PHIDGETKIT=m +CONFIG_USB_PHIDGETMOTORCONTROL=m +CONFIG_USB_PHIDGETSERVO=m +CONFIG_USB_IDMOUSE=m +CONFIG_USB_FTDI_ELAN=m +CONFIG_USB_APPLEDISPLAY=m +CONFIG_USB_SISUSBVGA=m +# CONFIG_USB_SISUSBVGA_CON is not set +CONFIG_USB_LD=m +CONFIG_USB_TRANCEVIBRATOR=m +CONFIG_USB_IOWARRIOR=m +CONFIG_USB_TEST=m +CONFIG_USB_ISIGHTFW=m +CONFIG_USB_VST=m +CONFIG_USB_ATM=m +CONFIG_USB_SPEEDTOUCH=m +CONFIG_USB_CXACRU=m +CONFIG_USB_UEAGLEATM=m +CONFIG_USB_XUSBATM=m +CONFIG_USB_GADGET=m +# CONFIG_USB_GADGET_DEBUG_FILES is not set +# CONFIG_USB_GADGET_DEBUG_FS is not set +CONFIG_USB_GADGET_VBUS_DRAW=2 +CONFIG_USB_GADGET_SELECTED=y +# CONFIG_USB_GADGET_AT91 is not set +# CONFIG_USB_GADGET_ATMEL_USBA is not set +# CONFIG_USB_GADGET_FSL_USB2 is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_PXA25X is not set +# CONFIG_USB_GADGET_PXA27X is not set +# CONFIG_USB_GADGET_S3C2410 is not set +# CONFIG_USB_GADGET_IMX is not set +# CONFIG_USB_GADGET_M66592 is not set +# CONFIG_USB_GADGET_AMD5536UDC is not set +# CONFIG_USB_GADGET_FSL_QE is not set +# CONFIG_USB_GADGET_CI13XXX is not set +CONFIG_USB_GADGET_NET2280=y +CONFIG_USB_NET2280=m +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_DUMMY_HCD is not set +CONFIG_USB_GADGET_DUALSPEED=y +# CONFIG_USB_ZERO is not set +CONFIG_USB_ETH=m +# CONFIG_USB_ETH_RNDIS is not set +CONFIG_USB_GADGETFS=m +CONFIG_USB_FILE_STORAGE=m +# CONFIG_USB_FILE_STORAGE_TEST is not set +CONFIG_USB_G_SERIAL=m +CONFIG_USB_MIDI_GADGET=m +CONFIG_USB_G_PRINTER=m +CONFIG_USB_CDC_COMPOSITE=m + +# +# OTG and related infrastructure +# +CONFIG_USB_OTG_UTILS=y +CONFIG_USB_GPIO_VBUS=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_WBSD=m +CONFIG_MMC_TIFM_SD=m +CONFIG_MMC_SPI=m +CONFIG_MMC_SDRICOH_CS=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_ALIX2=m +CONFIG_LEDS_PCA9532=m +CONFIG_LEDS_GPIO=m +CONFIG_LEDS_CLEVO_MAIL=m +CONFIG_LEDS_PCA955X=m +CONFIG_LEDS_WM8350=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_DEFAULT_ON=m +# CONFIG_ACCESSIBILITY 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=y +CONFIG_INFINIBAND_IPATH=m +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=y +# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set +CONFIG_INFINIBAND_SRP=m +CONFIG_INFINIBAND_ISER=m +CONFIG_EDAC=y + +# +# Reporting subsystems +# +# CONFIG_EDAC_DEBUG is not set +CONFIG_EDAC_MM_EDAC=m +CONFIG_EDAC_E752X=m +CONFIG_EDAC_I82975X=m +CONFIG_EDAC_I3000=m +CONFIG_EDAC_X38=m +CONFIG_EDAC_I5400=m +CONFIG_EDAC_I5000=m +CONFIG_EDAC_I5100=m +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set + +# +# 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 is not set +CONFIG_RTC_DRV_S35390A=m +CONFIG_RTC_DRV_FM3130=m +CONFIG_RTC_DRV_RX8581=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 + +# +# Platform RTC drivers +# +CONFIG_RTC_DRV_CMOS=y +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 + +# +# on-CPU RTC drivers +# +CONFIG_DMADEVICES=y + +# +# DMA Devices +# +CONFIG_INTEL_IOATDMA=m +CONFIG_DMA_ENGINE=y + +# +# DMA Clients +# +CONFIG_NET_DMA=y +# CONFIG_DMATEST is not set +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_SERCOS3=m +# CONFIG_STAGING is not set +CONFIG_X86_PLATFORM_DEVICES=y +CONFIG_ACER_WMI=m +CONFIG_FUJITSU_LAPTOP=m +# CONFIG_FUJITSU_LAPTOP_DEBUG is not set +CONFIG_HP_WMI=m +CONFIG_MSI_LAPTOP=m +CONFIG_PANASONIC_LAPTOP=m +CONFIG_COMPAL_LAPTOP=m +CONFIG_SONY_LAPTOP=m +CONFIG_SONYPI_COMPAT=y +CONFIG_THINKPAD_ACPI=m +# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set +# CONFIG_THINKPAD_ACPI_DEBUG is not set +CONFIG_THINKPAD_ACPI_BAY=y +CONFIG_THINKPAD_ACPI_VIDEO=y +CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y +CONFIG_INTEL_MENLOW=m +CONFIG_EEEPC_LAPTOP=m +CONFIG_ACPI_WMI=y +CONFIG_ACPI_ASUS=y +CONFIG_ACPI_TOSHIBA=y + +# +# Firmware Drivers +# +CONFIG_EDD=m +# CONFIG_EDD_OFF is not set +CONFIG_FIRMWARE_MEMMAP=y +CONFIG_EFI_VARS=m +CONFIG_DELL_RBU=m +CONFIG_DCDBAS=y +CONFIG_DMIID=y +CONFIG_ISCSI_IBFT_FIND=y +CONFIG_ISCSI_IBFT=m + +# +# File systems +# +CONFIG_AUFS=y + +# +# These options are for 2.6.27 +# +CONFIG_AUFS_BRANCH_MAX_127=y +# CONFIG_AUFS_BRANCH_MAX_511 is not set +# CONFIG_AUFS_BRANCH_MAX_1023 is not set +# CONFIG_AUFS_BRANCH_MAX_32767 is not set +CONFIG_AUFS_STAT=y +CONFIG_AUFS_HINOTIFY=y +# CONFIG_AUFS_EXPORT is not set +CONFIG_AUFS_INO_T_64=y +CONFIG_AUFS_ROBR=y +# CONFIG_AUFS_DLGT is not set +CONFIG_AUFS_HIN_OR_DLGT=y +# CONFIG_AUFS_SHWH is not set +# CONFIG_AUFS_RR_SQUASHFS is not set +# CONFIG_AUFS_SPLICE_PATCH is not set +# CONFIG_AUFS_LHASH_PATCH is not set +CONFIG_AUFS_BR_XFS=y +CONFIG_AUFS_WORKAROUND_FUSE=y +CONFIG_AUFS_GETATTR=y +# CONFIG_AUFS_DEBUG is not set +CONFIG_AUFS_COMPAT=y +# CONFIG_AUFS_UNIONFS22_PATCH is not set +# CONFIG_AUFS_UNIONFS23_PATCH is not set +CONFIG_EXT2_FS=y +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +CONFIG_EXT2_FS_XIP=y +CONFIG_EXT3_FS=y +CONFIG_EXT3_FS_XATTR=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_EXT4_FS=y +CONFIG_EXT4DEV_COMPAT=y +CONFIG_EXT4_FS_XATTR=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +CONFIG_FS_XIP=y +CONFIG_JBD=y +# CONFIG_JBD_DEBUG is not set +CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set +CONFIG_FS_MBCACHE=y +CONFIG_REISERFS_FS=y +# 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=y +CONFIG_JFS_FS=y +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_FILE_LOCKING=y +CONFIG_XFS_FS=y +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=m +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 is not set +# CONFIG_BTRFS_FS is not set +CONFIG_DNOTIFY=y +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +CONFIG_QUOTA=y +# CONFIG_QUOTA_NETLINK_INTERFACE is not set +CONFIG_PRINT_QUOTA_WARNING=y +CONFIG_QUOTA_TREE=y +CONFIG_QFMT_V1=y +CONFIG_QFMT_V2=y +CONFIG_QUOTACTL=y +# CONFIG_AUTOFS_FS is not set +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=y +CONFIG_GENERIC_ACL=y + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=y +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=y +CONFIG_UDF_NLS=y + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_NTFS_FS=y +# CONFIG_NTFS_DEBUG is not set +CONFIG_NTFS_RW=y + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_HUGETLBFS=y +CONFIG_HUGETLB_PAGE=y +CONFIG_CONFIGFS_FS=m +CONFIG_MISC_FILESYSTEMS=y +CONFIG_ADFS_FS=m +# CONFIG_ADFS_FS_RW is not set +CONFIG_AFFS_FS=m +CONFIG_ECRYPT_FS=y +CONFIG_HFS_FS=y +CONFIG_HFSPLUS_FS=y +CONFIG_BEFS_FS=m +# CONFIG_BEFS_DEBUG is not set +CONFIG_BFS_FS=m +CONFIG_EFS_FS=m +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +CONFIG_JFFS2_FS_WBUF_VERIFY=y +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=y +CONFIG_UBIFS_FS_ADVANCED_COMPR=y +CONFIG_UBIFS_FS_LZO=y +CONFIG_UBIFS_FS_ZLIB=y +# CONFIG_UBIFS_FS_DEBUG is not set +CONFIG_CRAMFS=m +CONFIG_SQUASHFS=y +CONFIG_SQUASHFS_EMBEDDED=y +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +CONFIG_VXFS_FS=m +CONFIG_MINIX_FS=m +CONFIG_OMFS_FS=m +CONFIG_HPFS_FS=y +CONFIG_QNX4FS_FS=y +CONFIG_ROMFS_FS=y +CONFIG_SYSV_FS=y +CONFIG_UFS_FS=y +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_UFS_DEBUG is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +CONFIG_ROOT_NFS=y +CONFIG_NFSD=y +CONFIG_NFSD_V2_ACL=y +CONFIG_NFSD_V3=y +CONFIG_NFSD_V3_ACL=y +CONFIG_NFSD_V4=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_EXPORTFS=y +CONFIG_NFS_ACL_SUPPORT=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +CONFIG_SUNRPC_GSS=y +CONFIG_SUNRPC_XPRT_RDMA=m +# CONFIG_SUNRPC_REGISTER_V4 is not set +CONFIG_RPCSEC_GSS_KRB5=y +CONFIG_RPCSEC_GSS_SPKM3=m +CONFIG_SMB_FS=y +CONFIG_SMB_NLS_DEFAULT=y +CONFIG_SMB_NLS_REMOTE="cp437" +CONFIG_CIFS=y +CONFIG_CIFS_STATS=y +CONFIG_CIFS_STATS2=y +CONFIG_CIFS_WEAK_PW_HASH=y +CONFIG_CIFS_UPCALL=y +CONFIG_CIFS_XATTR=y +CONFIG_CIFS_POSIX=y +# CONFIG_CIFS_DEBUG2 is not set +CONFIG_CIFS_EXPERIMENTAL=y +CONFIG_CIFS_DFS_UPCALL=y +CONFIG_NCP_FS=m +CONFIG_NCPFS_PACKET_SIGNING=y +CONFIG_NCPFS_IOCTL_LOCKING=y +CONFIG_NCPFS_STRONG=y +CONFIG_NCPFS_NFS_NS=y +CONFIG_NCPFS_OS2_NS=y +CONFIG_NCPFS_SMALLDOS=y +CONFIG_NCPFS_NLS=y +CONFIG_NCPFS_EXTRAS=y +CONFIG_CODA_FS=y +CONFIG_AFS_FS=m +# CONFIG_AFS_DEBUG is not set +CONFIG_9P_FS=m + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +CONFIG_ACORN_PARTITION=y +CONFIG_ACORN_PARTITION_CUMANA=y +CONFIG_ACORN_PARTITION_EESOX=y +CONFIG_ACORN_PARTITION_ICS=y +CONFIG_ACORN_PARTITION_ADFS=y +CONFIG_ACORN_PARTITION_POWERTEC=y +CONFIG_ACORN_PARTITION_RISCIX=y +CONFIG_OSF_PARTITION=y +CONFIG_AMIGA_PARTITION=y +CONFIG_ATARI_PARTITION=y +CONFIG_MAC_PARTITION=y +CONFIG_MSDOS_PARTITION=y +CONFIG_BSD_DISKLABEL=y +CONFIG_MINIX_SUBPARTITION=y +CONFIG_SOLARIS_X86_PARTITION=y +CONFIG_UNIXWARE_DISKLABEL=y +CONFIG_LDM_PARTITION=y +CONFIG_LDM_DEBUG=y +CONFIG_SGI_PARTITION=y +CONFIG_ULTRIX_PARTITION=y +CONFIG_SUN_PARTITION=y +CONFIG_KARMA_PARTITION=y +CONFIG_EFI_PARTITION=y +CONFIG_SYSV68_PARTITION=y +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_737=y +CONFIG_NLS_CODEPAGE_775=y +CONFIG_NLS_CODEPAGE_850=y +CONFIG_NLS_CODEPAGE_852=y +CONFIG_NLS_CODEPAGE_855=y +CONFIG_NLS_CODEPAGE_857=y +CONFIG_NLS_CODEPAGE_860=y +CONFIG_NLS_CODEPAGE_861=y +CONFIG_NLS_CODEPAGE_862=y +CONFIG_NLS_CODEPAGE_863=y +CONFIG_NLS_CODEPAGE_864=y +CONFIG_NLS_CODEPAGE_865=y +CONFIG_NLS_CODEPAGE_866=y +CONFIG_NLS_CODEPAGE_869=y +CONFIG_NLS_CODEPAGE_936=y +CONFIG_NLS_CODEPAGE_950=y +CONFIG_NLS_CODEPAGE_932=y +CONFIG_NLS_CODEPAGE_949=y +CONFIG_NLS_CODEPAGE_874=y +CONFIG_NLS_ISO8859_8=y +CONFIG_NLS_CODEPAGE_1250=y +CONFIG_NLS_CODEPAGE_1251=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_ISO8859_2=y +CONFIG_NLS_ISO8859_3=y +CONFIG_NLS_ISO8859_4=y +CONFIG_NLS_ISO8859_5=y +CONFIG_NLS_ISO8859_6=y +CONFIG_NLS_ISO8859_7=y +CONFIG_NLS_ISO8859_9=y +CONFIG_NLS_ISO8859_13=y +CONFIG_NLS_ISO8859_14=y +CONFIG_NLS_ISO8859_15=y +CONFIG_NLS_KOI8_R=y +CONFIG_NLS_KOI8_U=y +CONFIG_NLS_UTF8=y +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set + +# +# Kernel hacking +# +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_PRINTK_TIME=y +CONFIG_ENABLE_WARN_DEPRECATED=y +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_FRAME_WARN=2048 +CONFIG_MAGIC_SYSRQ=y +CONFIG_UNUSED_SYMBOLS=y +CONFIG_DEBUG_FS=y +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_KERNEL is not set +CONFIG_SCHED_DEBUG=y +CONFIG_SCHEDSTATS=y +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set +CONFIG_STACKTRACE=y +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_DEBUG_MEMORY_INIT=y +CONFIG_ARCH_WANT_FRAME_POINTERS=y +CONFIG_FRAME_POINTER=y +# CONFIG_RCU_CPU_STALL_DETECTOR is not set +CONFIG_LATENCYTOP=y +CONFIG_SYSCTL_SYSCALL_CHECK=y +CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_HW_BRANCH_TRACER=y + +# +# Tracers +# +# CONFIG_SYSPROF_TRACER is not set +# CONFIG_HW_BRANCH_TRACER is not set +# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set +# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set +# CONFIG_DYNAMIC_PRINTK_DEBUG is not set +# CONFIG_SAMPLES is not set +CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_STRICT_DEVMEM is not set +CONFIG_X86_VERBOSE_BOOTUP=y +CONFIG_EARLY_PRINTK=y +# CONFIG_EARLY_PRINTK_DBGP 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 + +# +# Security options +# +CONFIG_KEYS=y +CONFIG_KEYS_DEBUG_PROC_KEYS=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_NETWORK=y +CONFIG_SECURITY_NETWORK_XFRM=y +# CONFIG_SECURITY_PATH is not set +CONFIG_SECURITY_FILE_CAPABILITIES=y +# CONFIG_SECURITY_ROOTPLUG is not set +CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 +# CONFIG_SECURITY_SELINUX is not set +# CONFIG_SECURITY_SMACK is not set +CONFIG_XOR_BLOCKS=y +CONFIG_ASYNC_CORE=y +CONFIG_ASYNC_MEMCPY=y +CONFIG_ASYNC_XOR=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=y +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG=m +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_GF128MUL=m +CONFIG_CRYPTO_NULL=m +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=y +CONFIG_CRYPTO_CTR=m +CONFIG_CRYPTO_CTS=m +CONFIG_CRYPTO_ECB=y +CONFIG_CRYPTO_LRW=m +CONFIG_CRYPTO_PCBC=m +CONFIG_CRYPTO_XTS=m + +# +# Hash modes +# +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_XCBC=m + +# +# Digest +# +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRC32C_INTEL=m +CONFIG_CRYPTO_MD4=y +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_LZF=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=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_WP512=m + +# +# Ciphers +# +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_X86_64=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_ARC4=y +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_DES=y +CONFIG_CRYPTO_FCRYPT=m +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_SALSA20=m +CONFIG_CRYPTO_SALSA20_X86_64=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_X86_64=m + +# +# Compression +# +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_LZO=m + +# +# Random Number Generation +# +CONFIG_CRYPTO_ANSI_CPRNG=m +CONFIG_CRYPTO_HW=y +CONFIG_CRYPTO_DEV_HIFN_795X=m +CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y +CONFIG_HAVE_KVM=y +CONFIG_VIRTUALIZATION=y +CONFIG_KVM=m +CONFIG_KVM_INTEL=m +CONFIG_KVM_AMD=m +CONFIG_VIRTIO=m +CONFIG_VIRTIO_RING=m +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_BALLOON=m + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_GENERIC_FIND_FIRST_BIT=y +CONFIG_GENERIC_FIND_NEXT_BIT=y +CONFIG_GENERIC_FIND_LAST_BIT=y +CONFIG_CRC_CCITT=m +CONFIG_CRC16=y +CONFIG_CRC_T10DIF=y +CONFIG_CRC_ITU_T=y +CONFIG_CRC32=y +CONFIG_CRC7=m +CONFIG_LIBCRC32C=y +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=m +CONFIG_LZO_COMPRESS=m +CONFIG_LZO_DECOMPRESS=m +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_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y +CONFIG_CHECK_SIGNATURE=y diff --git a/sys-kernel/linux-sabayon/files/linux-sabayon-2.6.29-x86.config b/sys-kernel/linux-sabayon/files/linux-sabayon-2.6.29-x86.config new file mode 100644 index 000000000..70a75a5d3 --- /dev/null +++ b/sys-kernel/linux-sabayon/files/linux-sabayon-2.6.29-x86.config @@ -0,0 +1,4513 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.29-sabayon +# Tue Mar 24 15:01:35 2009 +# +# CONFIG_64BIT is not set +CONFIG_X86_32=y +# CONFIG_X86_64 is not set +CONFIG_X86=y +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_FAST_CMPXCHG_LOCAL=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_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_GENERIC_HARDIRQS=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_X86_SMP=y +CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_X86_32_SMP=y +CONFIG_X86_HT=y +CONFIG_X86_BIOS_REBOOT=y +CONFIG_X86_TRAMPOLINE=y +CONFIG_KTIME_SCALAR=y +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_POSIX_MQUEUE=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +CONFIG_AUDIT=y +CONFIG_AUDITSYSCALL=y +CONFIG_AUDIT_TREE=y + +# +# RCU Subsystem +# +CONFIG_CLASSIC_RCU=y +# CONFIG_TREE_RCU is not set +# CONFIG_PREEMPT_RCU is not set +# CONFIG_TREE_RCU_TRACE is not set +# CONFIG_PREEMPT_RCU_TRACE is not set +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=15 +CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y +CONFIG_GROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_RT_GROUP_SCHED=y +CONFIG_USER_SCHED=y +# CONFIG_CGROUP_SCHED is not set +CONFIG_CGROUPS=y +# CONFIG_CGROUP_DEBUG is not set +CONFIG_CGROUP_NS=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CPUSETS=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_RESOURCE_COUNTERS=y +CONFIG_CGROUP_MEM_RES_CTLR=y +CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y +CONFIG_MM_OWNER=y +CONFIG_SYSFS_DEPRECATED=y +CONFIG_SYSFS_DEPRECATED_V2=y +CONFIG_RELAY=y +CONFIG_NAMESPACES=y +CONFIG_UTS_NS=y +CONFIG_IPC_NS=y +CONFIG_USER_NS=y +CONFIG_PID_NS=y +CONFIG_NET_NS=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL=y +CONFIG_ANON_INODES=y +# CONFIG_EMBEDDED is not set +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +# CONFIG_KALLSYMS_EXTRA_PASS 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_VM_EVENT_COUNTERS=y +CONFIG_PCI_QUIRKS=y +CONFIG_SLUB_DEBUG=y +# CONFIG_COMPAT_BRK is not set +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +# CONFIG_PROFILING is not set +CONFIG_TRACEPOINTS=y +# CONFIG_MARKERS is not set +CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set +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_GENERIC_DMA_COHERENT=y +CONFIG_SLABINFO=y +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +CONFIG_MODULE_FORCE_LOAD=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_MODVERSIONS=y +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_STOP_MACHINE=y +CONFIG_BLOCK=y +CONFIG_LBD=y +CONFIG_BLK_DEV_IO_TRACE=y +CONFIG_BLK_DEV_BSG=y +CONFIG_BLK_DEV_INTEGRITY=y + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +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=y +CONFIG_X86_FIND_SMP_CONFIG=y +CONFIG_X86_MPPARSE=y +CONFIG_X86_PC=y +# CONFIG_X86_ELAN is not set +# CONFIG_X86_VOYAGER is not set +# CONFIG_X86_GENERICARCH is not set +# CONFIG_X86_VSMP is not set +# CONFIG_X86_RDC321X is not set +CONFIG_SCHED_OMIT_FRAME_POINTER=y +# CONFIG_PARAVIRT_GUEST is not set +CONFIG_MEMTEST=y +# 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_GENERIC_CPU is not set +CONFIG_X86_GENERIC=y +CONFIG_X86_CPU=y +CONFIG_X86_CMPXCHG=y +CONFIG_X86_L1_CACHE_SHIFT=7 +CONFIG_X86_XADD=y +CONFIG_X86_PPRO_FENCE=y +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_MINIMUM_CPU_FAMILY=4 +CONFIG_CPU_SUP_INTEL=y +CONFIG_CPU_SUP_CYRIX_32=y +CONFIG_CPU_SUP_AMD=y +CONFIG_CPU_SUP_CENTAUR_32=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=64 +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=y +CONFIG_X86_MCE=y +CONFIG_X86_MCE_NONFATAL=m +CONFIG_X86_MCE_P4THERMAL=y +CONFIG_VM86=y +CONFIG_TOSHIBA=y +CONFIG_I8K=y +# CONFIG_X86_REBOOTFIXUPS is not set +CONFIG_MICROCODE=m +CONFIG_MICROCODE_INTEL=y +CONFIG_MICROCODE_AMD=y +CONFIG_MICROCODE_OLD_INTERFACE=y +CONFIG_X86_MSR=y +CONFIG_X86_CPUID=y +# CONFIG_NOHIGHMEM is not set +CONFIG_HIGHMEM4G=y +# CONFIG_HIGHMEM64G is not set +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_HIGHMEM=y +# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set +CONFIG_NEED_NODE_MEMMAP_SIZE=y +CONFIG_ARCH_FLATMEM_ENABLE=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_SELECT_MEMORY_MODEL=y +# CONFIG_FLATMEM_MANUAL is not set +# CONFIG_DISCONTIGMEM_MANUAL is not set +CONFIG_SPARSEMEM_MANUAL=y +CONFIG_SPARSEMEM=y +CONFIG_HAVE_MEMORY_PRESENT=y +CONFIG_SPARSEMEM_STATIC=y + +# +# Memory hotplug is currently incompatible with Software Suspend +# +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_UNEVICTABLE_LRU=y +CONFIG_MMU_NOTIFIER=y +CONFIG_HIGHPTE=y +CONFIG_X86_CHECK_BIOS_CORRUPTION=y +# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set +CONFIG_X86_RESERVE_LOW_64K=y +# CONFIG_MATH_EMULATION is not set +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_EFI=y +CONFIG_SECCOMP=y +# CONFIG_HZ_100 is not set +# CONFIG_HZ_250 is not set +# CONFIG_HZ_300 is not set +CONFIG_HZ_1000=y +CONFIG_HZ=1000 +CONFIG_SCHED_HRTICK=y +# CONFIG_KEXEC is not set +# CONFIG_CRASH_DUMP is not set +CONFIG_PHYSICAL_START=0x100000 +# CONFIG_RELOCATABLE is not set +CONFIG_PHYSICAL_ALIGN=0x100000 +CONFIG_HOTPLUG_CPU=y +CONFIG_COMPAT_VDSO=y +# 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=y +CONFIG_PM_STD_PARTITION="" +CONFIG_TOI_CORE=y + +# +# Image Storage (you need at least one allocator) +# +CONFIG_TOI_FILE=y +CONFIG_TOI_SWAP=y + +# +# General Options +# +CONFIG_TOI_DEFAULT_PRE_HIBERNATE="" +CONFIG_TOI_DEFAULT_POST_HIBERNATE="" +CONFIG_TOI_CRYPTO=y +CONFIG_TOI_USERUI=y +CONFIG_TOI_USERUI_DEFAULT_PATH="/usr/local/sbin/tuxonice_fbsplash" +# CONFIG_TOI_KEEP_IMAGE is not set +CONFIG_TOI_REPLACE_SWSUSP=y +# CONFIG_TOI_IGNORE_LATE_INITCALL is not set +CONFIG_TOI_DEFAULT_WAIT=25 +CONFIG_TOI_DEFAULT_EXTRA_PAGES_ALLOWANCE=500 +CONFIG_TOI_CHECKSUM=y +CONFIG_TOI=y +CONFIG_ACPI=y +CONFIG_ACPI_SLEEP=y +CONFIG_ACPI_PROCFS=y +CONFIG_ACPI_PROCFS_POWER=y +CONFIG_ACPI_SYSFS_POWER=y +CONFIG_ACPI_PROC_EVENT=y +CONFIG_ACPI_AC=m +CONFIG_ACPI_BATTERY=m +CONFIG_ACPI_BUTTON=y +CONFIG_ACPI_VIDEO=m +CONFIG_ACPI_FAN=y +CONFIG_ACPI_DOCK=y +CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ACPI_THERMAL=y +CONFIG_ACPI_CUSTOM_DSDT_FILE="" +# CONFIG_ACPI_CUSTOM_DSDT is not set +CONFIG_ACPI_BLACKLIST_YEAR=0 +# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_PCI_SLOT=m +CONFIG_X86_PM_TIMER=y +CONFIG_ACPI_CONTAINER=y +CONFIG_ACPI_SBS=m +# CONFIG_APM is not set + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_TABLE=y +# CONFIG_CPU_FREQ_DEBUG is not set +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_STAT_DETAILS=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y +# 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=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y + +# +# CPUFreq processor drivers +# +CONFIG_X86_ACPI_CPUFREQ=y +CONFIG_X86_POWERNOW_K6=m +CONFIG_X86_POWERNOW_K7=m +CONFIG_X86_POWERNOW_K7_ACPI=y +CONFIG_X86_POWERNOW_K8=y +CONFIG_X86_POWERNOW_K8_ACPI=y +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_OLPC=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCIEPORTBUS=y +CONFIG_HOTPLUG_PCI_PCIE=m +CONFIG_PCIEAER=y +CONFIG_PCIEASPM=y +CONFIG_PCIEASPM_DEBUG=y +CONFIG_ARCH_SUPPORTS_MSI=y +CONFIG_PCI_MSI=y +CONFIG_PCI_LEGACY=y +# CONFIG_PCI_STUB is not set +CONFIG_HT_IRQ=y +CONFIG_ISA_DMA_API=y +CONFIG_ISA=y +CONFIG_EISA=y +CONFIG_EISA_VLB_PRIMING=y +CONFIG_EISA_PCI_EISA=y +CONFIG_EISA_VIRTUAL_ROOT=y +CONFIG_EISA_NAMES=y +CONFIG_MCA=y +CONFIG_MCA_LEGACY=y +CONFIG_MCA_PROC_FS=y +CONFIG_SCx200=m +CONFIG_SCx200HR_TIMER=m +CONFIG_OLPC=y +CONFIG_K8_NB=y +CONFIG_PCCARD=y +# 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=y +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=y +CONFIG_BINFMT_MISC=y +CONFIG_HAVE_ATOMIC_IOMAP=y +CONFIG_NET=y + +# +# Networking options +# +CONFIG_COMPAT_NET_DEV_OPS=y +CONFIG_PACKET=y +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=y +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=y +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=y +CONFIG_INET_XFRM_MODE_TUNNEL=y +CONFIG_INET_XFRM_MODE_BEET=y +CONFIG_INET_LRO=y +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_CONG_BIC=y +CONFIG_TCP_CONG_CUBIC=m +CONFIG_TCP_CONG_WESTWOOD=m +CONFIG_TCP_CONG_HTCP=m +CONFIG_TCP_CONG_HSTCP=m +CONFIG_TCP_CONG_HYBLA=m +CONFIG_TCP_CONG_VEGAS=m +CONFIG_TCP_CONG_SCALABLE=m +CONFIG_TCP_CONG_LP=m +CONFIG_TCP_CONG_VENO=m +CONFIG_TCP_CONG_YEAH=m +CONFIG_TCP_CONG_ILLINOIS=m +CONFIG_DEFAULT_BIC=y +# CONFIG_DEFAULT_CUBIC is not set +# 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="bic" +CONFIG_TCP_MD5SIG=y +CONFIG_IPV6=m +CONFIG_IPV6_PRIVACY=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y +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 is not set +CONFIG_NETWORK_SECMARK=y +CONFIG_NETFILTER=y +CONFIG_NETFILTER_DEBUG=y +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_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_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_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_IP_VS=m +# CONFIG_IP_VS_IPV6 is not set +# 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_LOG=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_TARGET_HL=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 is not set +CONFIG_SCTP_HMAC_MD5=y +CONFIG_TIPC=m +CONFIG_TIPC_ADVANCED=y +CONFIG_TIPC_ZONES=3 +CONFIG_TIPC_CLUSTERS=1 +CONFIG_TIPC_NODES=255 +CONFIG_TIPC_SLAVE_NODES=0 +CONFIG_TIPC_PORTS=8191 +CONFIG_TIPC_LOG=0 +# CONFIG_TIPC_DEBUG is not set +CONFIG_ATM=m +CONFIG_ATM_CLIP=m +CONFIG_ATM_CLIP_NO_ICMP=y +CONFIG_ATM_LANE=m +CONFIG_ATM_MPOA=m +CONFIG_ATM_BR2684=m +CONFIG_ATM_BR2684_IPFILTER=y +CONFIG_STP=m +CONFIG_GARP=m +CONFIG_BRIDGE=m +CONFIG_NET_DSA=y +CONFIG_NET_DSA_TAG_DSA=y +CONFIG_NET_DSA_TAG_EDSA=y +CONFIG_NET_DSA_TAG_TRAILER=y +CONFIG_NET_DSA_MV88E6XXX=y +CONFIG_NET_DSA_MV88E6060=y +CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y +CONFIG_NET_DSA_MV88E6131=y +CONFIG_NET_DSA_MV88E6123_61_65=y +CONFIG_VLAN_8021Q=m +CONFIG_VLAN_8021Q_GVRP=y +CONFIG_DECNET=m +CONFIG_DECNET_ROUTER=y +CONFIG_LLC=y +CONFIG_LLC2=m +CONFIG_IPX=m +CONFIG_IPX_INTERN=y +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_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_CLS_CGROUP=y +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=y +CONFIG_NET_SCH_FIFO=y +# CONFIG_DCB is not set + +# +# Network testing +# +CONFIG_NET_PKTGEN=m +CONFIG_HAMRADIO=y + +# +# Packet Radio protocols +# +CONFIG_AX25=m +CONFIG_AX25_DAMA_SLAVE=y +CONFIG_NETROM=m +CONFIG_ROSE=m + +# +# AX.25 network device drivers +# +CONFIG_MKISS=m +CONFIG_6PACK=m +CONFIG_BPQETHER=m +CONFIG_SCC=m +CONFIG_SCC_DELAY=y +CONFIG_SCC_TRXECHO=y +CONFIG_BAYCOM_SER_FDX=m +CONFIG_BAYCOM_SER_HDX=m +CONFIG_BAYCOM_PAR=m +CONFIG_BAYCOM_EPP=m +CONFIG_YAM=m +CONFIG_CAN=m +CONFIG_CAN_RAW=m +CONFIG_CAN_BCM=m + +# +# CAN Device Drivers +# +CONFIG_CAN_VCAN=m +# 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_AF_RXRPC=m +# CONFIG_AF_RXRPC_DEBUG is not set +CONFIG_RXKAD=m +CONFIG_PHONET=m +CONFIG_FIB_RULES=y +CONFIG_WIRELESS=y +CONFIG_CFG80211=y +# CONFIG_CFG80211_REG_DEBUG is not set +CONFIG_NL80211=y +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 + +# +# Rate control algorithm selection +# +CONFIG_MAC80211_RC_MINSTREL=y +# CONFIG_MAC80211_RC_DEFAULT_PID is not set +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +CONFIG_MAC80211_RC_DEFAULT="minstrel" +CONFIG_MAC80211_MESH=y +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=y +CONFIG_RFKILL_INPUT=m +CONFIG_RFKILL_LEDS=y +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_STANDALONE is not set +# CONFIG_PREVENT_FIRMWARE_BUILD is not set +CONFIG_FW_LOADER=y +CONFIG_FIRMWARE_IN_KERNEL=y +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_SYS_HYPERVISOR is not set +CONFIG_CONNECTOR=y +CONFIG_PROC_EVENTS=y +CONFIG_MTD=y +CONFIG_MTD_DEBUG=y +CONFIG_MTD_DEBUG_VERBOSE=0 +CONFIG_MTD_CONCAT=y +CONFIG_MTD_PARTITIONS=y +CONFIG_MTD_TESTS=m +CONFIG_MTD_REDBOOT_PARTS=m +CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 +CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y +CONFIG_MTD_REDBOOT_PARTS_READONLY=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_AR7_PARTS=y + +# +# 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_DILNETPC=m +CONFIG_MTD_DILNETPC_BOOTSIZE=0x80000 +CONFIG_MTD_L440GX=m +CONFIG_MTD_PCI=m +CONFIG_MTD_INTEL_VR_NOR=m +CONFIG_MTD_PLATRAM=m + +# +# Self-contained MTD device drivers +# +CONFIG_MTD_PMC551=m +# CONFIG_MTD_PMC551_BUGFIX is not set +# 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_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=y +CONFIG_MTD_DOCPROBE_55AA=y +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_VERIFY_WRITE=y +# CONFIG_MTD_NAND_ECC_SMC is not set +CONFIG_MTD_NAND_MUSEUM_IDS=y +CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_NAND_DISKONCHIP=m +CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED=y +CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0x0 +CONFIG_MTD_NAND_DISKONCHIP_PROBE_HIGH=y +CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE=y +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=y +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=y + +# +# 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=y +# 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=y +CONFIG_PARPORT_NOT_PC=y +CONFIG_PNP=y +CONFIG_PNP_DEBUG_MESSAGES=y + +# +# Protocols +# +CONFIG_ISAPNP=y +CONFIG_PNPBIOS=y +CONFIG_PNPBIOS_PROC_FS=y +CONFIG_PNPACPI=y +CONFIG_BLK_DEV=y +CONFIG_BLK_DEV_FD=y +CONFIG_BLK_DEV_XD=m +CONFIG_PARIDE=m + +# +# Parallel IDE high-level drivers +# +CONFIG_PARIDE_PD=m +CONFIG_PARIDE_PCD=m +CONFIG_PARIDE_PF=m +CONFIG_PARIDE_PT=m +CONFIG_PARIDE_PG=m + +# +# Parallel IDE protocol modules +# +CONFIG_PARIDE_ATEN=m +CONFIG_PARIDE_BPCK=m +CONFIG_PARIDE_BPCK6=m +CONFIG_PARIDE_COMM=m +CONFIG_PARIDE_DSTR=m +CONFIG_PARIDE_FIT2=m +CONFIG_PARIDE_FIT3=m +CONFIG_PARIDE_EPAT=m +CONFIG_PARIDE_EPATC8=y +CONFIG_PARIDE_EPIA=m +CONFIG_PARIDE_FRIQ=m +CONFIG_PARIDE_FRPW=m +CONFIG_PARIDE_KBIC=m +CONFIG_PARIDE_KTTI=m +CONFIG_PARIDE_ON20=m +CONFIG_PARIDE_ON26=m +CONFIG_BLK_CPQ_DA=y +CONFIG_BLK_CPQ_CISS_DA=y +CONFIG_CISS_SCSI_TAPE=y +CONFIG_BLK_DEV_DAC960=y +CONFIG_BLK_DEV_UMEM=y +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_CRYPTOLOOP=y +CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_SX8=m +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=16384 +# CONFIG_BLK_DEV_XIP is not set +CONFIG_CDROM_PKTCDVD=y +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +CONFIG_CDROM_PKTCDVD_WCACHE=y +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_C2PORT=m +CONFIG_C2PORT_DURAMAR_2150=m + +# +# EEPROM support +# +CONFIG_EEPROM_AT24=m +CONFIG_EEPROM_AT25=m +CONFIG_EEPROM_LEGACY=m +CONFIG_EEPROM_93CX6=m +CONFIG_HAVE_IDE=y +# CONFIG_IDE is not set + +# +# SCSI device support +# +CONFIG_RAID_ATTRS=y +CONFIG_SCSI=y +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=y +CONFIG_CHR_DEV_ST=y +CONFIG_CHR_DEV_OSST=y +CONFIG_BLK_DEV_SR=y +CONFIG_BLK_DEV_SR_VENDOR=y +CONFIG_CHR_DEV_SG=y +CONFIG_CHR_DEV_SCH=m +CONFIG_SCSI_ENCLOSURE=m + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_CONSTANTS is not set +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y +CONFIG_SCSI_WAIT_SCAN=m + +# +# SCSI Transports +# +CONFIG_SCSI_SPI_ATTRS=y +CONFIG_SCSI_FC_ATTRS=y +CONFIG_SCSI_ISCSI_ATTRS=y +CONFIG_SCSI_SAS_ATTRS=y +CONFIG_SCSI_SAS_LIBSAS=y +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=y +CONFIG_SCSI_CXGB3_ISCSI=y +CONFIG_BLK_DEV_3W_XXXX_RAID=y +CONFIG_SCSI_3W_9XXX=y +CONFIG_SCSI_7000FASST=y +CONFIG_SCSI_ACARD=y +CONFIG_SCSI_AHA152X=y +CONFIG_SCSI_AHA1542=y +CONFIG_SCSI_AHA1740=y +CONFIG_SCSI_AACRAID=y +CONFIG_SCSI_AIC7XXX=y +CONFIG_AIC7XXX_CMDS_PER_DEVICE=32 +CONFIG_AIC7XXX_RESET_DELAY_MS=15000 +# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set +# CONFIG_AIC7XXX_DEBUG_ENABLE is not set +CONFIG_AIC7XXX_DEBUG_MASK=0 +CONFIG_AIC7XXX_REG_PRETTY_PRINT=y +CONFIG_SCSI_AIC7XXX_OLD=y +CONFIG_SCSI_AIC79XX=y +CONFIG_AIC79XX_CMDS_PER_DEVICE=32 +CONFIG_AIC79XX_RESET_DELAY_MS=15000 +# CONFIG_AIC79XX_BUILD_FIRMWARE is not set +# CONFIG_AIC79XX_DEBUG_ENABLE is not set +CONFIG_AIC79XX_DEBUG_MASK=0 +CONFIG_AIC79XX_REG_PRETTY_PRINT=y +CONFIG_SCSI_AIC94XX=y +# CONFIG_AIC94XX_DEBUG is not set +CONFIG_SCSI_DPT_I2O=y +CONFIG_SCSI_ADVANSYS=y +CONFIG_SCSI_IN2000=y +CONFIG_SCSI_ARCMSR=y +# CONFIG_SCSI_ARCMSR_AER is not set +CONFIG_MEGARAID_NEWGEN=y +CONFIG_MEGARAID_MM=y +CONFIG_MEGARAID_MAILBOX=y +CONFIG_MEGARAID_LEGACY=y +CONFIG_MEGARAID_SAS=y +CONFIG_SCSI_HPTIOP=y +CONFIG_SCSI_BUSLOGIC=y +CONFIG_SCSI_FLASHPOINT=y +CONFIG_LIBFC=m +CONFIG_FCOE=m +CONFIG_SCSI_DMX3191D=y +CONFIG_SCSI_DTC3280=y +CONFIG_SCSI_EATA=y +CONFIG_SCSI_EATA_TAGGED_QUEUE=y +CONFIG_SCSI_EATA_LINKED_COMMANDS=y +CONFIG_SCSI_EATA_MAX_TAGS=16 +CONFIG_SCSI_FUTURE_DOMAIN=m +CONFIG_SCSI_FD_MCS=y +CONFIG_SCSI_GDTH=y +CONFIG_SCSI_GENERIC_NCR5380=y +CONFIG_SCSI_GENERIC_NCR5380_MMIO=y +# CONFIG_SCSI_GENERIC_NCR53C400 is not set +CONFIG_SCSI_IBMMCA=y +CONFIG_IBMMCA_SCSI_ORDER_STANDARD=y +CONFIG_IBMMCA_SCSI_DEV_RESET=y +CONFIG_SCSI_IPS=y +CONFIG_SCSI_INITIO=y +CONFIG_SCSI_INIA100=y +CONFIG_SCSI_PPA=m +CONFIG_SCSI_IMM=m +CONFIG_SCSI_IZIP_EPP16=y +# CONFIG_SCSI_IZIP_SLOW_CTR is not set +CONFIG_SCSI_MVSAS=y +CONFIG_SCSI_NCR53C406A=y +CONFIG_SCSI_NCR_D700=y +CONFIG_SCSI_STEX=y +CONFIG_SCSI_SYM53C8XX_2=y +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_SYM53C8XX_MMIO=y +CONFIG_SCSI_IPR=y +CONFIG_SCSI_IPR_TRACE=y +CONFIG_SCSI_IPR_DUMP=y +CONFIG_SCSI_NCR_Q720=y +CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8 +CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32 +CONFIG_SCSI_NCR53C8XX_SYNC=20 +CONFIG_SCSI_PAS16=y +CONFIG_SCSI_QLOGIC_FAS=y +CONFIG_SCSI_QLOGIC_1280=y +CONFIG_SCSI_QLA_FC=y +CONFIG_SCSI_QLA_ISCSI=y +CONFIG_SCSI_LPFC=y +# CONFIG_SCSI_LPFC_DEBUG_FS is not set +CONFIG_SCSI_SIM710=y +CONFIG_SCSI_SYM53C416=y +CONFIG_SCSI_DC395x=y +CONFIG_SCSI_DC390T=y +CONFIG_SCSI_T128=y +CONFIG_SCSI_U14_34F=y +CONFIG_SCSI_U14_34F_TAGGED_QUEUE=y +CONFIG_SCSI_U14_34F_LINKED_COMMANDS=y +CONFIG_SCSI_U14_34F_MAX_TAGS=8 +CONFIG_SCSI_ULTRASTOR=y +CONFIG_SCSI_NSP32=y +# CONFIG_SCSI_DEBUG is not set +CONFIG_SCSI_SRP=m +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_ATA=y +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_ACPI=y +CONFIG_SATA_PMP=y +CONFIG_SATA_AHCI=y +CONFIG_SATA_SIL24=y +CONFIG_ATA_SFF=y +CONFIG_SATA_SVW=y +CONFIG_ATA_PIIX=y +CONFIG_SATA_MV=y +CONFIG_SATA_NV=y +CONFIG_PDC_ADMA=y +CONFIG_SATA_QSTOR=y +CONFIG_SATA_PROMISE=y +CONFIG_SATA_SX4=y +CONFIG_SATA_SIL=y +CONFIG_SATA_SIS=y +CONFIG_SATA_ULI=y +CONFIG_SATA_VIA=y +CONFIG_SATA_VITESSE=y +CONFIG_SATA_INIC162X=y +CONFIG_PATA_ACPI=y +CONFIG_PATA_ALI=y +CONFIG_PATA_AMD=y +CONFIG_PATA_ARTOP=y +CONFIG_PATA_ATIIXP=y +CONFIG_PATA_CMD640_PCI=y +CONFIG_PATA_CMD64X=y +CONFIG_PATA_CS5520=y +CONFIG_PATA_CS5530=y +CONFIG_PATA_CS5535=y +CONFIG_PATA_CS5536=y +CONFIG_PATA_CYPRESS=y +CONFIG_PATA_EFAR=y +CONFIG_ATA_GENERIC=y +CONFIG_PATA_HPT366=y +CONFIG_PATA_HPT37X=y +CONFIG_PATA_HPT3X2N=y +CONFIG_PATA_HPT3X3=y +# CONFIG_PATA_HPT3X3_DMA is not set +CONFIG_PATA_ISAPNP=y +CONFIG_PATA_IT821X=y +CONFIG_PATA_IT8213=y +CONFIG_PATA_JMICRON=y +CONFIG_PATA_LEGACY=y +CONFIG_PATA_TRIFLEX=y +CONFIG_PATA_MARVELL=y +CONFIG_PATA_MPIIX=y +CONFIG_PATA_OLDPIIX=y +CONFIG_PATA_NETCELL=y +CONFIG_PATA_NINJA32=y +CONFIG_PATA_NS87410=y +CONFIG_PATA_NS87415=y +CONFIG_PATA_OPTI=y +CONFIG_PATA_OPTIDMA=y +CONFIG_PATA_PCMCIA=m +CONFIG_PATA_PDC_OLD=y +CONFIG_PATA_QDI=y +CONFIG_PATA_RADISYS=y +CONFIG_PATA_RZ1000=y +CONFIG_PATA_SC1200=y +CONFIG_PATA_SERVERWORKS=y +CONFIG_PATA_PDC2027X=y +CONFIG_PATA_SIL680=y +CONFIG_PATA_SIS=y +CONFIG_PATA_VIA=y +CONFIG_PATA_WINBOND=y +CONFIG_PATA_WINBOND_VLB=y +CONFIG_PATA_SCH=y +CONFIG_MD=y +CONFIG_BLK_DEV_MD=y +CONFIG_MD_AUTODETECT=y +CONFIG_MD_LINEAR=y +CONFIG_MD_RAID0=y +CONFIG_MD_RAID1=y +CONFIG_MD_RAID10=y +CONFIG_MD_RAID456=y +CONFIG_MD_RAID5_RESHAPE=y +CONFIG_MD_MULTIPATH=y +CONFIG_MD_FAULTY=y +CONFIG_BLK_DEV_DM=y +# CONFIG_DM_DEBUG is not set +CONFIG_DM_CRYPT=y +CONFIG_DM_SNAPSHOT=y +CONFIG_DM_MIRROR=y +CONFIG_DM_ZERO=y +CONFIG_DM_MULTIPATH=m +CONFIG_DM_DELAY=m +# CONFIG_DM_UEVENT is not set +CONFIG_BLK_DEV_DM_BBR=m +CONFIG_FUSION=y +CONFIG_FUSION_SPI=y +CONFIG_FUSION_FC=y +CONFIG_FUSION_SAS=y +CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_CTL=y +CONFIG_FUSION_LAN=y +# CONFIG_FUSION_LOGGING is not set + +# +# IEEE 1394 (FireWire) support +# + +# +# Enable only one of the two stacks, unless you know what you are doing +# +CONFIG_FIREWIRE=m +CONFIG_FIREWIRE_OHCI=m +CONFIG_FIREWIRE_OHCI_DEBUG=y +CONFIG_FIREWIRE_SBP2=m +CONFIG_IEEE1394=y +CONFIG_IEEE1394_OHCI1394=y +CONFIG_IEEE1394_PCILYNX=m +CONFIG_IEEE1394_SBP2=y +# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set +# CONFIG_IEEE1394_ETH1394_ROM_ENTRY is not set +# CONFIG_IEEE1394_ETH1394 is not set +CONFIG_IEEE1394_RAWIO=m +CONFIG_IEEE1394_VIDEO1394=m +CONFIG_IEEE1394_DV1394=m +# CONFIG_IEEE1394_VERBOSEDEBUG is not set +CONFIG_I2O=y +CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y +CONFIG_I2O_EXT_ADAPTEC=y +CONFIG_I2O_CONFIG=y +CONFIG_I2O_CONFIG_OLD_IOCTL=y +CONFIG_I2O_BUS=y +CONFIG_I2O_BLOCK=y +CONFIG_I2O_SCSI=y +CONFIG_I2O_PROC=y +CONFIG_MACINTOSH_DRIVERS=y +CONFIG_MAC_EMUMOUSEBTN=y +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=y + +# +# MII PHY device drivers +# +CONFIG_MARVELL_PHY=m +CONFIG_DAVICOM_PHY=m +CONFIG_QSEMI_PHY=m +CONFIG_LXT_PHY=m +CONFIG_CICADA_PHY=m +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_FIXED_PHY is not set +CONFIG_MDIO_BITBANG=m +CONFIG_MDIO_GPIO=m +CONFIG_NET_ETHERNET=y +CONFIG_MII=y +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_ELMC=m +CONFIG_ELMC_II=m +CONFIG_VORTEX=m +CONFIG_TYPHOON=m +CONFIG_LANCE=m +CONFIG_NET_VENDOR_SMC=y +CONFIG_WD80x3=m +CONFIG_ULTRAMCA=m +CONFIG_ULTRA=m +CONFIG_ULTRA32=m +CONFIG_SMC9194=m +CONFIG_ENC28J60=m +# CONFIG_ENC28J60_WRITEVERIFY is not set +CONFIG_NET_VENDOR_RACAL=y +CONFIG_NI52=m +CONFIG_NI65=m +CONFIG_DNET=m +CONFIG_NET_TULIP=y +CONFIG_DE2104X=m +CONFIG_TULIP=m +CONFIG_TULIP_MWI=y +# 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=y +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_NE2_MCA=m +CONFIG_IBMLANA=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_LNE390=m +CONFIG_FEALNX=m +CONFIG_NATSEMI=m +CONFIG_NE2K_PCI=m +CONFIG_NE3210=m +CONFIG_ES3210=m +CONFIG_8139CP=m +CONFIG_8139TOO=m +# CONFIG_8139TOO_PIO is not set +CONFIG_8139TOO_TUNE_TWISTER=y +CONFIG_8139TOO_8129=y +CONFIG_8139_OLD_RX_RESET=y +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_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_LRO is not set +CONFIG_IGB_DCA=y +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_QLA3XXX=m +CONFIG_ATL1=m +CONFIG_ATL1E=m +CONFIG_ATL1C=m +CONFIG_JME=m +CONFIG_NETDEV_10000=y +CONFIG_CHELSIO_T1=m +# CONFIG_CHELSIO_T1_1G is not set +CONFIG_CHELSIO_T3_DEPENDS=y +CONFIG_CHELSIO_T3=y +CONFIG_ENIC=m +CONFIG_IXGBE=m +CONFIG_IXGBE_DCA=y +CONFIG_IXGB=m +CONFIG_S2IO=m +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=y +CONFIG_IBMTR=m +CONFIG_IBMOL=m +CONFIG_IBMLS=m +CONFIG_3C359=m +CONFIG_TMS380TR=m +CONFIG_TMSPCI=m +CONFIG_SKISA=m +CONFIG_PROTEON=m +CONFIG_ABYSS=m +CONFIG_MADGEMC=m +CONFIG_SMCTR=m + +# +# Wireless LAN +# +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_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM=m +CONFIG_LIBERTAS_THINFIRM_USB=m +CONFIG_AIRO=m +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_ATMEL=m +CONFIG_PCI_ATMEL=m +CONFIG_PCMCIA_ATMEL=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_ADM8211=m +CONFIG_MAC80211_HWSIM=m +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +CONFIG_P54_PCI=m +CONFIG_ATH5K=m +# CONFIG_ATH5K_DEBUG is not set +CONFIG_ATH9K=m +# CONFIG_ATH9K_DEBUG is not set +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_IWLCORE=m +CONFIG_IWLWIFI_LEDS=y +CONFIG_IWLWIFI_RFKILL=y +# CONFIG_IWLWIFI_DEBUG is not set +CONFIG_IWLAGN=m +CONFIG_IWLAGN_SPECTRUM_MEASUREMENT=y +CONFIG_IWLAGN_LEDS=y +CONFIG_IWL4965=y +CONFIG_IWL5000=y +CONFIG_IWL3945=m +CONFIG_IWL3945_RFKILL=y +CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y +CONFIG_IWL3945_LEDS=y +# CONFIG_IWL3945_DEBUG 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_PIO=y +CONFIG_B43_LEDS=y +CONFIG_B43_RFKILL=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_RFKILL=y +# CONFIG_B43LEGACY_DEBUG is not set +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_RT2X00_LIB_PCI=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_RFKILL=y +CONFIG_RT2X00_LIB_LEDS=y +# CONFIG_RT2X00_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_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_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_PCMCIA_IBMTR=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 is not set +# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set +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 is not set +CONFIG_ATM_FORE200E_TX_RETRY=16 +CONFIG_ATM_FORE200E_DEBUG=0 +CONFIG_ATM_HE=m +# CONFIG_ATM_HE_USE_SUNI is not set +CONFIG_ATM_SOLOS=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 is not set +CONFIG_NET_FC=y +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +CONFIG_VIRTIO_NET=m +CONFIG_ISDN=y +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_ISDN_I4L is not set +CONFIG_ISDN_CAPI=m +# CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON is not set +CONFIG_CAPI_TRACE=y +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=m +CONFIG_PHONE_IXJ=m +CONFIG_PHONE_IXJ_PCMCIA=m + +# +# Input device support +# +CONFIG_INPUT=y +CONFIG_INPUT_FF_MEMLESS=y +CONFIG_INPUT_POLLDEV=y + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_INPUT_JOYDEV=m +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=y +CONFIG_KEYBOARD_SUNKBD=y +CONFIG_KEYBOARD_LKKBD=y +CONFIG_KEYBOARD_XTKBD=y +CONFIG_KEYBOARD_NEWTON=y +CONFIG_KEYBOARD_STOWAWAY=y +CONFIG_KEYBOARD_GPIO=y +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=y +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_TOUCHKIT is not set +# CONFIG_MOUSE_PS2_OLPC is not set +CONFIG_MOUSE_SERIAL=y +CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MOUSE_BCM5974=m +CONFIG_MOUSE_INPORT=m +CONFIG_MOUSE_ATIXL=y +CONFIG_MOUSE_LOGIBM=m +CONFIG_MOUSE_PC110PAD=m +CONFIG_MOUSE_VSXXXAA=m +CONFIG_MOUSE_GPIO=m +CONFIG_INPUT_JOYSTICK=y +CONFIG_JOYSTICK_ANALOG=m +CONFIG_JOYSTICK_A3D=m +CONFIG_JOYSTICK_ADI=m +CONFIG_JOYSTICK_COBRA=m +CONFIG_JOYSTICK_GF2K=m +CONFIG_JOYSTICK_GRIP=m +CONFIG_JOYSTICK_GRIP_MP=m +CONFIG_JOYSTICK_GUILLEMOT=m +CONFIG_JOYSTICK_INTERACT=m +CONFIG_JOYSTICK_SIDEWINDER=m +CONFIG_JOYSTICK_TMDC=m +CONFIG_JOYSTICK_IFORCE=m +CONFIG_JOYSTICK_IFORCE_USB=y +CONFIG_JOYSTICK_IFORCE_232=y +CONFIG_JOYSTICK_WARRIOR=m +CONFIG_JOYSTICK_MAGELLAN=m +CONFIG_JOYSTICK_SPACEORB=m +CONFIG_JOYSTICK_SPACEBALL=m +CONFIG_JOYSTICK_STINGER=m +CONFIG_JOYSTICK_TWIDJOY=m +CONFIG_JOYSTICK_ZHENHUA=m +CONFIG_JOYSTICK_DB9=m +CONFIG_JOYSTICK_GAMECON=m +CONFIG_JOYSTICK_TURBOGRAFX=m +CONFIG_JOYSTICK_JOYDUMP=m +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y +CONFIG_JOYSTICK_WALKERA0701=m +CONFIG_INPUT_TABLET=y +CONFIG_TABLET_USB_ACECAD=m +CONFIG_TABLET_USB_AIPTEK=m +CONFIG_TABLET_USB_GTCO=m +CONFIG_TABLET_USB_KBTAB=m +CONFIG_TABLET_USB_WACOM=m +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_ADS7846=m +CONFIG_TOUCHSCREEN_FUJITSU=m +CONFIG_TOUCHSCREEN_GUNZE=m +CONFIG_TOUCHSCREEN_ELO=m +CONFIG_TOUCHSCREEN_WACOM_W8001=m +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_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_PCF50633_PMU is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_I8042=y +CONFIG_SERIO_SERPORT=y +CONFIG_SERIO_CT82C710=y +CONFIG_SERIO_PARKBD=m +CONFIG_SERIO_PCIPS2=y +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_RAW=m +CONFIG_GAMEPORT=m +CONFIG_GAMEPORT_NS558=m +CONFIG_GAMEPORT_L4=m +CONFIG_GAMEPORT_EMU10K1=m +CONFIG_GAMEPORT_FM801=m + +# +# Character devices +# +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_DEVKMEM=y +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_SX=m +CONFIG_RIO=m +CONFIG_RIO_OLDPCI=y +CONFIG_STALDRV=y +CONFIG_STALLION=m +CONFIG_ISTALLION=m +CONFIG_NOZOMI=m + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +# CONFIG_SERIAL_8250_CONSOLE is not set +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=4 +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=y +CONFIG_SERIAL_8250_RSA=y +CONFIG_SERIAL_8250_MCA=m + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_JSM=m +CONFIG_UNIX98_PTYS=y +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +CONFIG_PRINTER=m +CONFIG_LP_CONSOLE=y +CONFIG_PPDEV=m +CONFIG_HVC_DRIVER=y +CONFIG_VIRTIO_CONSOLE=m +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=y +CONFIG_HW_RANDOM_INTEL=y +CONFIG_HW_RANDOM_AMD=y +CONFIG_HW_RANDOM_GEODE=y +CONFIG_HW_RANDOM_VIA=y +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_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 + +# +# 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_PCF8591=m +CONFIG_SENSORS_MAX6875=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 +CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y +CONFIG_GPIOLIB=y +CONFIG_GPIO_SYSFS=y + +# +# Memory mapped GPIO expanders: +# + +# +# I2C GPIO expanders: +# +CONFIG_GPIO_MAX732X=m +CONFIG_GPIO_PCA953X=m +CONFIG_GPIO_PCF857X=m + +# +# PCI GPIO expanders: +# + +# +# SPI GPIO expanders: +# +CONFIG_GPIO_MAX7301=m +CONFIG_GPIO_MCP23S08=m +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=y +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_OLPC=m +CONFIG_BATTERY_BQ27x00=m +# CONFIG_CHARGER_PCF50633 is not set +CONFIG_HWMON=y +CONFIG_HWMON_VID=m +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_FSCHER=m +CONFIG_SENSORS_FSCPOS=m +CONFIG_SENSORS_FSCHMD=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_LTC4245=m +CONFIG_SENSORS_MAX1111=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PC87427=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_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_HDAPS=m +CONFIG_SENSORS_LIS3LV02D=m +CONFIG_SENSORS_APPLESMC=m +# CONFIG_HWMON_DEBUG_CHIP is not set +CONFIG_THERMAL=y +CONFIG_THERMAL_HWMON=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_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 +# CONFIG_WDT_501 is not set + +# +# PCI-based Watchdog Cards +# +CONFIG_PCIPCWATCHDOG=m +CONFIG_WDTPCI=m +CONFIG_WDT_501_PCI=y + +# +# 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_DEBUG=y +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=y +CONFIG_HTC_PASIC3=m +CONFIG_UCB1400_CORE=m +CONFIG_TPS65010=m +# CONFIG_MFD_TMIO is not set +CONFIG_MFD_WM8400=m +CONFIG_MFD_WM8350=m +CONFIG_MFD_WM8350_I2C=m +CONFIG_MFD_PCF50633=m +CONFIG_PCF50633_ADC=m +CONFIG_PCF50633_GPIO=m +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_DEBUG is not set +# CONFIG_REGULATOR_FIXED_VOLTAGE is not set +CONFIG_REGULATOR_VIRTUAL_CONSUMER=m +CONFIG_REGULATOR_BQ24022=m +CONFIG_REGULATOR_WM8350=m +CONFIG_REGULATOR_WM8400=m +CONFIG_REGULATOR_PCF50633=m + +# +# Multimedia devices +# + +# +# Multimedia core support +# +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L2_COMMON=m +CONFIG_VIDEO_ALLOW_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_DVB_CORE=y +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_CUSTOMIZE 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_VIDEO_V4L2=m +CONFIG_VIDEO_V4L1=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 + +# +# Video decoders +# +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_BT866=m +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_OV7670=m +CONFIG_VIDEO_TCM825X=m +CONFIG_VIDEO_SAA7110=m +CONFIG_VIDEO_SAA7111=m +CONFIG_VIDEO_SAA7114=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_SAA717X=m +CONFIG_VIDEO_SAA7191=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 + +# +# 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_SAA6588=m +CONFIG_VIDEO_PMS=m +CONFIG_VIDEO_BWQCAM=m +CONFIG_VIDEO_CQCAM=m +CONFIG_VIDEO_W9966=m +CONFIG_VIDEO_CPIA=m +CONFIG_VIDEO_CPIA_PP=m +CONFIG_VIDEO_CPIA_USB=m +CONFIG_VIDEO_CPIA2=m +CONFIG_VIDEO_SAA5246A=m +CONFIG_VIDEO_SAA5249=m +CONFIG_VIDEO_STRADIS=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_MEYE=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_DVB=m +CONFIG_VIDEO_MXB=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_CAFE_CCIC=m +CONFIG_SOC_CAMERA=m +CONFIG_SOC_CAMERA_MT9M001=m +# CONFIG_MT9M001_PCA9536_SWITCH is not set +CONFIG_SOC_CAMERA_MT9M111=m +CONFIG_SOC_CAMERA_MT9T031=m +CONFIG_SOC_CAMERA_MT9V022=m +# CONFIG_MT9V022_PCA9536_SWITCH is not set +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_GSPCA_CONEX=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_OV519=m +CONFIG_USB_GSPCA_OV534=m +CONFIG_USB_GSPCA_PAC207=m +CONFIG_USB_GSPCA_PAC7311=m +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_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_EM28XX=m +CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_USBVIDEO=m +CONFIG_USB_VICAM=m +CONFIG_USB_IBMCAM=m +CONFIG_USB_KONICAWC=m +CONFIG_USB_QUICKCAM_MESSENGER=m +CONFIG_USB_ET61X251=m +CONFIG_VIDEO_OVCAMCHIP=m +CONFIG_USB_W9968CF=m +CONFIG_USB_OV511=m +CONFIG_USB_SE401=m +CONFIG_USB_SN9C102=m +CONFIG_USB_STV680=m +CONFIG_USB_ZC0301=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +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_TYPHOON_PROC_FS=y +CONFIG_RADIO_ZOLTRIX=m +CONFIG_USB_DSBR=m +CONFIG_USB_SI470X=m +CONFIG_USB_MR800=m +CONFIG_RADIO_TEA5764=m +# 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_FIRMWARE is not set +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_TTUSB_BUDGET=m +CONFIG_DVB_TTUSB_DEC=m +CONFIG_DVB_SIANO_SMS1XXX=m +CONFIG_DVB_SIANO_SMS1XXX_SMS_IDS=y + +# +# 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 DVB Frontends +# + +# +# Customise DVB Frontends +# +CONFIG_DVB_FE_CUSTOMISE=y + +# +# Multistandard (satellite) frontends +# +CONFIG_DVB_STB0899=m +CONFIG_DVB_STB6100=m + +# +# DVB-S (satellite) frontends +# +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_MT312=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STV0299=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 + +# +# DVB-T (terrestrial) frontends +# +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_DRX397XD=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 + +# +# DVB-C (cable) frontends +# +CONFIG_DVB_VES1820=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA10023=m +CONFIG_DVB_STV0297=m + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# +CONFIG_DVB_NXT200X=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_LGDT3304=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_AU8522=m +CONFIG_DVB_S5H1411=m + +# +# ISDB-T (terrestrial) frontends +# +CONFIG_DVB_S921=m + +# +# Digital terrestrial only tuners/PLL +# +CONFIG_DVB_PLL=m +CONFIG_DVB_TUNER_DIB0070=m + +# +# SEC control devices for DVB-S +# +CONFIG_DVB_LNBP21=m +CONFIG_DVB_ISL6405=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_LGS8GL5=m + +# +# Tools to develop new frontends +# +# CONFIG_DVB_DUMMY_FE is not set +CONFIG_DVB_AF9013=m +CONFIG_DAB=y +# CONFIG_USB_DABUSB is not set + +# +# Graphics support +# +CONFIG_AGP=y +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_DRM=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=y +CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_FB=y +CONFIG_FIRMWARE_EDID=y +# CONFIG_FB_DDC is not set +CONFIG_FB_BOOT_VESA_SUPPORT=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# 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_SVGALIB is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +CONFIG_FB_MODE_HELPERS=y +# CONFIG_FB_TILEBLITTING is not set + +# +# Frame buffer hardware drivers +# +# CONFIG_FB_CIRRUS is not set +# CONFIG_FB_PM2 is not set +# CONFIG_FB_CYBER2000 is not set +# CONFIG_FB_ARC is not set +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set +CONFIG_FB_VGA16=y +CONFIG_FB_UVESA=y +CONFIG_FB_VESA=y +CONFIG_FB_EFI=y +# CONFIG_FB_N411 is not set +# CONFIG_FB_HGA is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_NVIDIA is not set +# CONFIG_FB_RIVA is not set +# CONFIG_FB_I810 is not set +# CONFIG_FB_LE80578 is not set +# CONFIG_FB_INTEL is not set +# CONFIG_FB_MATROX is not set +# CONFIG_FB_RADEON is not set +# CONFIG_FB_ATY128 is not set +# CONFIG_FB_ATY is not set +# CONFIG_FB_S3 is not set +# CONFIG_FB_SAVAGE is not set +# CONFIG_FB_SIS is not set +# CONFIG_FB_VIA is not set +# CONFIG_FB_NEOMAGIC is not set +# CONFIG_FB_KYRO is not set +# CONFIG_FB_3DFX is not set +# CONFIG_FB_VOODOO1 is not set +# CONFIG_FB_VT8623 is not set +# CONFIG_FB_CYBLA is not set +# CONFIG_FB_TRIDENT is not set +# CONFIG_FB_ARK is not set +# CONFIG_FB_PM3 is not set +# CONFIG_FB_CARMINE is not set +# CONFIG_FB_GEODE is not set +# CONFIG_FB_TMIO is not set +# CONFIG_FB_SM501 is not set +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FB_METRONOME is not set +# CONFIG_FB_MB862XX is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_LCD_CLASS_DEVICE=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=y +CONFIG_BACKLIGHT_GENERIC=y +CONFIG_BACKLIGHT_PROGEAR=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=y +CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64 +# CONFIG_MDA_CONSOLE is not set +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y +CONFIG_FB_CON_DECOR=y +CONFIG_FONTS=y +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +CONFIG_FONT_6x11=y +CONFIG_FONT_7x14=y +CONFIG_FONT_PEARL_8x8=y +CONFIG_FONT_ACORN_8x8=y +CONFIG_FONT_MINI_4x6=y +CONFIG_FONT_SUN8x16=y +CONFIG_FONT_SUN12x22=y +CONFIG_FONT_10x18=y +CONFIG_LOGO=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_LOGO_LINUX_CLUT224=y +CONFIG_SOUND=y +CONFIG_SOUND_OSS_CORE=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=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set +CONFIG_SND_VMASTER=y +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 is not set +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_CS4232=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_WAVEFRONT_FIRMWARE_IN_KERNEL=y +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=y +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_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_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=y +CONFIG_SND_FM801_TEA575X=m +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDA_HWDEP=y +CONFIG_SND_HDA_RECONFIG=y +CONFIG_SND_HDA_INPUT_BEEP=y +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_CONEXANT=y +CONFIG_SND_HDA_CODEC_CMEDIA=y +CONFIG_SND_HDA_CODEC_SI3054=y +CONFIG_SND_HDA_GENERIC=y +CONFIG_SND_HDA_POWER_SAVE=y +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=10 +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_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=y +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_AD73311=m +CONFIG_SND_SOC_AK4535=m +CONFIG_SND_SOC_CS4270=m +CONFIG_SND_SOC_L3=m +CONFIG_SND_SOC_PCM3008=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_WM8510=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_WM8900=m +CONFIG_SND_SOC_WM8903=m +CONFIG_SND_SOC_WM8971=m +CONFIG_SND_SOC_WM8990=m +# CONFIG_SOUND_PRIME is not set +CONFIG_AC97_BUS=m +CONFIG_HID_SUPPORT=y +CONFIG_HID=y +# CONFIG_HID_DEBUG is not set +CONFIG_HIDRAW=y + +# +# USB Input Devices +# +CONFIG_USB_HID=y +CONFIG_HID_PID=y +CONFIG_USB_HIDDEV=y + +# +# Special HID drivers +# +CONFIG_HID_COMPAT=y +CONFIG_HID_A4TECH=y +CONFIG_HID_APPLE=y +CONFIG_HID_BELKIN=y +CONFIG_HID_CHERRY=y +CONFIG_HID_CHICONY=y +CONFIG_HID_CYPRESS=y +CONFIG_HID_EZKEY=y +CONFIG_HID_GYRATION=y +CONFIG_HID_LOGITECH=y +CONFIG_LOGITECH_FF=y +CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MONTEREY=y +CONFIG_HID_NTRIG=y +CONFIG_HID_PANTHERLORD=y +CONFIG_PANTHERLORD_FF=y +CONFIG_HID_PETALYNX=y +CONFIG_HID_SAMSUNG=y +CONFIG_HID_SONY=y +CONFIG_HID_SUNPLUS=y +CONFIG_GREENASIA_FF=m +CONFIG_HID_TOPSEED=y +CONFIG_THRUSTMASTER_FF=y +CONFIG_ZEROPLUS_FF=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +CONFIG_USB_DEVICE_CLASS=y +CONFIG_USB_DYNAMIC_MINORS=y +CONFIG_USB_SUSPEND=y +# CONFIG_USB_OTG is not set +CONFIG_USB_MON=y +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_EHCI_HCD=m +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_OXU210HP_HCD=m +CONFIG_USB_ISP116X_HCD=m +CONFIG_USB_ISP1760_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 +# CONFIG_USB_GADGET_MUSB_HDRC is not set + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=y +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 information +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STORAGE_DATAFAB=y +CONFIG_USB_STORAGE_FREECOM=y +CONFIG_USB_STORAGE_ISD200=y +CONFIG_USB_STORAGE_USBAT=y +CONFIG_USB_STORAGE_SDDR09=y +CONFIG_USB_STORAGE_SDDR55=y +CONFIG_USB_STORAGE_JUMPSHOT=y +CONFIG_USB_STORAGE_ALAUDA=y +CONFIG_USB_STORAGE_ONETOUCH=y +CONFIG_USB_STORAGE_KARMA=y +CONFIG_USB_STORAGE_CYPRESS_ATACB=y +CONFIG_USB_LIBUSUAL=y + +# +# USB Imaging devices +# +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m + +# +# 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_CP2101=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_KEYSPAN_MPR=y +CONFIG_USB_SERIAL_KEYSPAN_USA28=y +CONFIG_USB_SERIAL_KEYSPAN_USA28X=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y +CONFIG_USB_SERIAL_KEYSPAN_USA19=y +CONFIG_USB_SERIAL_KEYSPAN_USA18X=y +CONFIG_USB_SERIAL_KEYSPAN_USA19W=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y +CONFIG_USB_SERIAL_KEYSPAN_USA49W=y +CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y +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_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_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 is not set + +# +# 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=m +CONFIG_USB_LCD=m +CONFIG_USB_BERRY_CHARGE=m +CONFIG_USB_LED=m +CONFIG_USB_CYPRESS_CY7C63=m +CONFIG_USB_CYTHERM=m +CONFIG_USB_PHIDGET=m +CONFIG_USB_PHIDGETKIT=m +CONFIG_USB_PHIDGETMOTORCONTROL=m +CONFIG_USB_PHIDGETSERVO=m +CONFIG_USB_IDMOUSE=m +CONFIG_USB_FTDI_ELAN=m +CONFIG_USB_APPLEDISPLAY=m +CONFIG_USB_SISUSBVGA=m +# CONFIG_USB_SISUSBVGA_CON is not set +CONFIG_USB_LD=m +CONFIG_USB_TRANCEVIBRATOR=m +CONFIG_USB_IOWARRIOR=m +CONFIG_USB_TEST=m +CONFIG_USB_ISIGHTFW=m +CONFIG_USB_VST=m +CONFIG_USB_ATM=m +CONFIG_USB_SPEEDTOUCH=m +CONFIG_USB_CXACRU=m +CONFIG_USB_UEAGLEATM=m +CONFIG_USB_XUSBATM=m +CONFIG_USB_GADGET=m +# CONFIG_USB_GADGET_DEBUG_FILES is not set +# CONFIG_USB_GADGET_DEBUG_FS is not set +CONFIG_USB_GADGET_VBUS_DRAW=2 +CONFIG_USB_GADGET_SELECTED=y +# CONFIG_USB_GADGET_AT91 is not set +# CONFIG_USB_GADGET_ATMEL_USBA is not set +# CONFIG_USB_GADGET_FSL_USB2 is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_PXA25X is not set +# CONFIG_USB_GADGET_PXA27X is not set +# CONFIG_USB_GADGET_S3C2410 is not set +# CONFIG_USB_GADGET_IMX is not set +# CONFIG_USB_GADGET_M66592 is not set +# CONFIG_USB_GADGET_AMD5536UDC is not set +# CONFIG_USB_GADGET_FSL_QE is not set +# CONFIG_USB_GADGET_CI13XXX is not set +CONFIG_USB_GADGET_NET2280=y +CONFIG_USB_NET2280=m +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_DUMMY_HCD is not set +CONFIG_USB_GADGET_DUALSPEED=y +# CONFIG_USB_ZERO is not set +CONFIG_USB_ETH=m +# CONFIG_USB_ETH_RNDIS is not set +CONFIG_USB_GADGETFS=m +CONFIG_USB_FILE_STORAGE=m +# CONFIG_USB_FILE_STORAGE_TEST is not set +CONFIG_USB_G_SERIAL=m +CONFIG_USB_MIDI_GADGET=m +CONFIG_USB_G_PRINTER=m +CONFIG_USB_CDC_COMPOSITE=m + +# +# OTG and related infrastructure +# +CONFIG_USB_OTG_UTILS=y +CONFIG_USB_GPIO_VBUS=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_WBSD=m +CONFIG_MMC_TIFM_SD=m +CONFIG_MMC_SDRICOH_CS=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_CLEVO_MAIL=m +CONFIG_LEDS_PCA955X=m +CONFIG_LEDS_WM8350=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_DEFAULT_ON=m +# CONFIG_ACCESSIBILITY 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=y +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 is not set +CONFIG_INFINIBAND_IPOIB=m +# CONFIG_INFINIBAND_IPOIB_CM is not set +CONFIG_INFINIBAND_IPOIB_DEBUG=y +# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set +CONFIG_INFINIBAND_SRP=m +CONFIG_INFINIBAND_ISER=m +CONFIG_EDAC=y + +# +# Reporting subsystems +# +# CONFIG_EDAC_DEBUG is not set +CONFIG_EDAC_MM_EDAC=y +CONFIG_EDAC_AMD76X=m +CONFIG_EDAC_E7XXX=m +CONFIG_EDAC_E752X=m +CONFIG_EDAC_I82875P=m +CONFIG_EDAC_I82975X=m +CONFIG_EDAC_I3000=m +CONFIG_EDAC_X38=m +CONFIG_EDAC_I5400=m +CONFIG_EDAC_I82860=m +CONFIG_EDAC_R82600=m +CONFIG_EDAC_I5000=m +CONFIG_EDAC_I5100=m +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set + +# +# 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 is not set +CONFIG_RTC_DRV_S35390A=m +CONFIG_RTC_DRV_FM3130=m +CONFIG_RTC_DRV_RX8581=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 + +# +# Platform RTC drivers +# +CONFIG_RTC_DRV_CMOS=y +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 + +# +# on-CPU RTC drivers +# +CONFIG_DMADEVICES=y + +# +# DMA Devices +# +CONFIG_INTEL_IOATDMA=m +CONFIG_DMA_ENGINE=y + +# +# DMA Clients +# +CONFIG_NET_DMA=y +# CONFIG_DMATEST is not set +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_SERCOS3=m +# CONFIG_STAGING is not set +CONFIG_X86_PLATFORM_DEVICES=y +CONFIG_ACER_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=y +CONFIG_THINKPAD_ACPI=m +# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set +# CONFIG_THINKPAD_ACPI_DEBUG is not set +CONFIG_THINKPAD_ACPI_BAY=y +CONFIG_THINKPAD_ACPI_VIDEO=y +CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y +CONFIG_INTEL_MENLOW=m +CONFIG_EEEPC_LAPTOP=m +CONFIG_ACPI_WMI=y +CONFIG_ACPI_ASUS=y +CONFIG_ACPI_TOSHIBA=y + +# +# Firmware Drivers +# +CONFIG_EDD=m +# CONFIG_EDD_OFF is not set +CONFIG_FIRMWARE_MEMMAP=y +CONFIG_EFI_VARS=m +CONFIG_DELL_RBU=m +CONFIG_DCDBAS=y +CONFIG_DMIID=y +CONFIG_ISCSI_IBFT_FIND=y +CONFIG_ISCSI_IBFT=m + +# +# File systems +# +CONFIG_AUFS=y + +# +# These options are for 2.6.27 +# +CONFIG_AUFS_BRANCH_MAX_127=y +# CONFIG_AUFS_BRANCH_MAX_511 is not set +# CONFIG_AUFS_BRANCH_MAX_1023 is not set +# CONFIG_AUFS_BRANCH_MAX_32767 is not set +CONFIG_AUFS_STAT=y +CONFIG_AUFS_HINOTIFY=y +CONFIG_AUFS_EXPORT=y +CONFIG_AUFS_ROBR=y +# CONFIG_AUFS_DLGT is not set +CONFIG_AUFS_HIN_OR_DLGT=y +# CONFIG_AUFS_SHWH is not set +# CONFIG_AUFS_RR_SQUASHFS is not set +CONFIG_AUFS_SPLICE_PATCH=y +# CONFIG_AUFS_LHASH_PATCH is not set +CONFIG_AUFS_BR_XFS=y +CONFIG_AUFS_WORKAROUND_FUSE=y +CONFIG_AUFS_GETATTR=y +# CONFIG_AUFS_DEBUG is not set +CONFIG_AUFS_COMPAT=y +# CONFIG_AUFS_UNIONFS22_PATCH is not set +# CONFIG_AUFS_UNIONFS23_PATCH is not set +CONFIG_EXT2_FS=y +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +CONFIG_EXT2_FS_XIP=y +CONFIG_EXT3_FS=y +CONFIG_EXT3_FS_XATTR=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_EXT4_FS=y +CONFIG_EXT4DEV_COMPAT=y +CONFIG_EXT4_FS_XATTR=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +CONFIG_FS_XIP=y +CONFIG_JBD=y +# CONFIG_JBD_DEBUG is not set +CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set +CONFIG_FS_MBCACHE=y +CONFIG_REISERFS_FS=y +# 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=y +CONFIG_JFS_FS=y +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_FILE_LOCKING=y +CONFIG_XFS_FS=y +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=m +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 is not set +# CONFIG_BTRFS_FS is not set +CONFIG_DNOTIFY=y +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +CONFIG_QUOTA=y +# CONFIG_QUOTA_NETLINK_INTERFACE is not set +CONFIG_PRINT_QUOTA_WARNING=y +CONFIG_QUOTA_TREE=y +CONFIG_QFMT_V1=y +CONFIG_QFMT_V2=y +CONFIG_QUOTACTL=y +# CONFIG_AUTOFS_FS is not set +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=y +CONFIG_GENERIC_ACL=y + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=y +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=y +CONFIG_UDF_NLS=y + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_NTFS_FS=y +# CONFIG_NTFS_DEBUG is not set +CONFIG_NTFS_RW=y + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_HUGETLBFS=y +CONFIG_HUGETLB_PAGE=y +CONFIG_CONFIGFS_FS=m +CONFIG_MISC_FILESYSTEMS=y +CONFIG_ADFS_FS=m +# CONFIG_ADFS_FS_RW is not set +CONFIG_AFFS_FS=m +CONFIG_ECRYPT_FS=y +CONFIG_HFS_FS=y +CONFIG_HFSPLUS_FS=y +CONFIG_BEFS_FS=m +# CONFIG_BEFS_DEBUG is not set +CONFIG_BFS_FS=m +CONFIG_EFS_FS=m +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +CONFIG_JFFS2_FS_WBUF_VERIFY=y +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=y +CONFIG_UBIFS_FS_ADVANCED_COMPR=y +CONFIG_UBIFS_FS_LZO=y +CONFIG_UBIFS_FS_ZLIB=y +# CONFIG_UBIFS_FS_DEBUG is not set +CONFIG_CRAMFS=m +CONFIG_SQUASHFS=y +CONFIG_SQUASHFS_EMBEDDED=y +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +CONFIG_VXFS_FS=m +CONFIG_MINIX_FS=m +CONFIG_OMFS_FS=m +CONFIG_HPFS_FS=y +CONFIG_QNX4FS_FS=y +CONFIG_ROMFS_FS=y +CONFIG_SYSV_FS=y +CONFIG_UFS_FS=y +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_UFS_DEBUG is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +CONFIG_ROOT_NFS=y +CONFIG_NFSD=y +CONFIG_NFSD_V2_ACL=y +CONFIG_NFSD_V3=y +CONFIG_NFSD_V3_ACL=y +CONFIG_NFSD_V4=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_EXPORTFS=y +CONFIG_NFS_ACL_SUPPORT=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +CONFIG_SUNRPC_GSS=y +CONFIG_SUNRPC_XPRT_RDMA=m +# CONFIG_SUNRPC_REGISTER_V4 is not set +CONFIG_RPCSEC_GSS_KRB5=y +CONFIG_RPCSEC_GSS_SPKM3=m +CONFIG_SMB_FS=y +CONFIG_SMB_NLS_DEFAULT=y +CONFIG_SMB_NLS_REMOTE="cp437" +CONFIG_CIFS=y +CONFIG_CIFS_STATS=y +CONFIG_CIFS_STATS2=y +CONFIG_CIFS_WEAK_PW_HASH=y +CONFIG_CIFS_UPCALL=y +CONFIG_CIFS_XATTR=y +CONFIG_CIFS_POSIX=y +# CONFIG_CIFS_DEBUG2 is not set +CONFIG_CIFS_EXPERIMENTAL=y +CONFIG_CIFS_DFS_UPCALL=y +CONFIG_NCP_FS=m +CONFIG_NCPFS_PACKET_SIGNING=y +CONFIG_NCPFS_IOCTL_LOCKING=y +CONFIG_NCPFS_STRONG=y +CONFIG_NCPFS_NFS_NS=y +CONFIG_NCPFS_OS2_NS=y +CONFIG_NCPFS_SMALLDOS=y +CONFIG_NCPFS_NLS=y +CONFIG_NCPFS_EXTRAS=y +CONFIG_CODA_FS=y +CONFIG_AFS_FS=m +# CONFIG_AFS_DEBUG is not set +CONFIG_9P_FS=m + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +CONFIG_ACORN_PARTITION=y +CONFIG_ACORN_PARTITION_CUMANA=y +CONFIG_ACORN_PARTITION_EESOX=y +CONFIG_ACORN_PARTITION_ICS=y +CONFIG_ACORN_PARTITION_ADFS=y +CONFIG_ACORN_PARTITION_POWERTEC=y +CONFIG_ACORN_PARTITION_RISCIX=y +CONFIG_OSF_PARTITION=y +CONFIG_AMIGA_PARTITION=y +CONFIG_ATARI_PARTITION=y +CONFIG_MAC_PARTITION=y +CONFIG_MSDOS_PARTITION=y +CONFIG_BSD_DISKLABEL=y +CONFIG_MINIX_SUBPARTITION=y +CONFIG_SOLARIS_X86_PARTITION=y +CONFIG_UNIXWARE_DISKLABEL=y +CONFIG_LDM_PARTITION=y +CONFIG_LDM_DEBUG=y +CONFIG_SGI_PARTITION=y +CONFIG_ULTRIX_PARTITION=y +CONFIG_SUN_PARTITION=y +CONFIG_KARMA_PARTITION=y +CONFIG_EFI_PARTITION=y +CONFIG_SYSV68_PARTITION=y +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_737=y +CONFIG_NLS_CODEPAGE_775=y +CONFIG_NLS_CODEPAGE_850=y +CONFIG_NLS_CODEPAGE_852=y +CONFIG_NLS_CODEPAGE_855=y +CONFIG_NLS_CODEPAGE_857=y +CONFIG_NLS_CODEPAGE_860=y +CONFIG_NLS_CODEPAGE_861=y +CONFIG_NLS_CODEPAGE_862=y +CONFIG_NLS_CODEPAGE_863=y +CONFIG_NLS_CODEPAGE_864=y +CONFIG_NLS_CODEPAGE_865=y +CONFIG_NLS_CODEPAGE_866=y +CONFIG_NLS_CODEPAGE_869=y +CONFIG_NLS_CODEPAGE_936=y +CONFIG_NLS_CODEPAGE_950=y +CONFIG_NLS_CODEPAGE_932=y +CONFIG_NLS_CODEPAGE_949=y +CONFIG_NLS_CODEPAGE_874=y +CONFIG_NLS_ISO8859_8=y +CONFIG_NLS_CODEPAGE_1250=y +CONFIG_NLS_CODEPAGE_1251=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_ISO8859_2=y +CONFIG_NLS_ISO8859_3=y +CONFIG_NLS_ISO8859_4=y +CONFIG_NLS_ISO8859_5=y +CONFIG_NLS_ISO8859_6=y +CONFIG_NLS_ISO8859_7=y +CONFIG_NLS_ISO8859_9=y +CONFIG_NLS_ISO8859_13=y +CONFIG_NLS_ISO8859_14=y +CONFIG_NLS_ISO8859_15=y +CONFIG_NLS_KOI8_R=y +CONFIG_NLS_KOI8_U=y +CONFIG_NLS_UTF8=y +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set + +# +# Kernel hacking +# +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_PRINTK_TIME=y +CONFIG_ENABLE_WARN_DEPRECATED=y +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_FRAME_WARN=1024 +CONFIG_MAGIC_SYSRQ=y +CONFIG_UNUSED_SYMBOLS=y +CONFIG_DEBUG_FS=y +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_KERNEL is not set +CONFIG_SCHED_DEBUG=y +CONFIG_SCHEDSTATS=y +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set +CONFIG_STACKTRACE=y +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_DEBUG_MEMORY_INIT=y +CONFIG_ARCH_WANT_FRAME_POINTERS=y +CONFIG_FRAME_POINTER=y +# CONFIG_RCU_CPU_STALL_DETECTOR is not set +CONFIG_LATENCYTOP=y +CONFIG_SYSCTL_SYSCALL_CHECK=y +CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y + +# +# Tracers +# +# CONFIG_SYSPROF_TRACER is not set +# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set +# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set +# CONFIG_DYNAMIC_PRINTK_DEBUG is not set +# CONFIG_SAMPLES is not set +CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_STRICT_DEVMEM is not set +CONFIG_X86_VERBOSE_BOOTUP=y +CONFIG_EARLY_PRINTK=y +# CONFIG_EARLY_PRINTK_DBGP is not set +# CONFIG_4KSTACKS is not set +CONFIG_DOUBLEFAULT=y +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 + +# +# Security options +# +CONFIG_KEYS=y +# CONFIG_KEYS_DEBUG_PROC_KEYS is not set +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_NETWORK=y +CONFIG_SECURITY_NETWORK_XFRM=y +# CONFIG_SECURITY_PATH is not set +CONFIG_SECURITY_FILE_CAPABILITIES=y +# CONFIG_SECURITY_ROOTPLUG is not set +CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 +# CONFIG_SECURITY_SELINUX is not set +CONFIG_XOR_BLOCKS=y +CONFIG_ASYNC_CORE=y +CONFIG_ASYNC_MEMCPY=y +CONFIG_ASYNC_XOR=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=y +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG=m +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_GF128MUL=m +CONFIG_CRYPTO_NULL=m +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=y +CONFIG_CRYPTO_CTR=m +CONFIG_CRYPTO_CTS=m +CONFIG_CRYPTO_ECB=y +CONFIG_CRYPTO_LRW=m +CONFIG_CRYPTO_PCBC=m +CONFIG_CRYPTO_XTS=m + +# +# Hash modes +# +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_XCBC=m + +# +# Digest +# +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRC32C_INTEL=m +CONFIG_CRYPTO_MD4=y +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_LZF=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=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_WP512=m + +# +# Ciphers +# +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_586=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_ARC4=y +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_DES=y +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_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_VIRTUALIZATION=y +CONFIG_KVM=m +CONFIG_KVM_INTEL=m +CONFIG_KVM_AMD=m +CONFIG_LGUEST=m +CONFIG_VIRTIO=m +CONFIG_VIRTIO_RING=m +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_BALLOON=m + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_GENERIC_FIND_FIRST_BIT=y +CONFIG_GENERIC_FIND_NEXT_BIT=y +CONFIG_GENERIC_FIND_LAST_BIT=y +CONFIG_CRC_CCITT=m +CONFIG_CRC16=y +CONFIG_CRC_T10DIF=y +CONFIG_CRC_ITU_T=y +CONFIG_CRC32=y +CONFIG_CRC7=m +CONFIG_LIBCRC32C=y +CONFIG_AUDIT_GENERIC=y +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=m +CONFIG_LZO_COMPRESS=m +CONFIG_LZO_DECOMPRESS=m +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_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y +CONFIG_CHECK_SIGNATURE=y diff --git a/sys-kernel/linux-sabayon/linux-sabayon-2.6.29.ebuild b/sys-kernel/linux-sabayon/linux-sabayon-2.6.29.ebuild new file mode 100644 index 000000000..b79d1b765 --- /dev/null +++ b/sys-kernel/linux-sabayon/linux-sabayon-2.6.29.ebuild @@ -0,0 +1,160 @@ +# Copyright 2007 Sabayon Linux +# Distributed under the terms of the GNU General Public License v2 + +ETYPE="sources" +K_WANT_GENPATCHES="" +K_GENPATCHES_VER="" +inherit kernel-2 +detect_version +detect_arch + +UNIPATCH_STRICTORDER="yes" +KEYWORDS="amd64 x86" +HOMEPAGE="http://www.sabayonlinux.org" +DEPEND=" + !only_sources? (