summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreisnerd <eisnerd@localhost>2008-01-31 19:04:16 +0000
committereisnerd <eisnerd@localhost>2008-01-31 19:04:16 +0000
commitfc3da479321b8183370835f3318d5bd6e714338d (patch)
tree801109dd3134cc00b4cf418b969fb0078b429829 /sys-kernel
parentx11-drivers/xf86-input-virtualbox: fix pkg_postinst message; fix description (diff)
downloadjokey-fc3da479321b8183370835f3318d5bd6e714338d.tar.gz
jokey-fc3da479321b8183370835f3318d5bd6e714338d.tar.bz2
jokey-fc3da479321b8183370835f3318d5bd6e714338d.zip
sys-kernel/thinkpad-sources: Cleanup (remove broken Versions) and Bump to 2.6.24
svn path=/trunk/; revision=345
Diffstat (limited to 'sys-kernel')
-rw-r--r--sys-kernel/thinkpad-sources/ChangeLog16
-rw-r--r--sys-kernel/thinkpad-sources/Manifest78
-rw-r--r--sys-kernel/thinkpad-sources/files/2.6.23-r2/disk-protect-for-2.6.23.8.patch877
-rw-r--r--sys-kernel/thinkpad-sources/files/2.6.23/combined-2.6.23-cph.patch620
-rw-r--r--sys-kernel/thinkpad-sources/files/2.6.23/input-unknown_keycodes-for-2.6.23.patch11
-rw-r--r--sys-kernel/thinkpad-sources/files/2.6.24/disk-protect-for-2.6.24.patch (renamed from sys-kernel/thinkpad-sources/files/2.6.23/disk-protect-for-2.6.23.patch)361
-rw-r--r--sys-kernel/thinkpad-sources/files/2.6.24/linux-phc-0.3.1-for-2.6.24-rc1.patch (renamed from sys-kernel/thinkpad-sources/files/2.6.23/linux-phc-0.3.1-for-2.6.23.patch)8
-rw-r--r--sys-kernel/thinkpad-sources/files/configs/config-for-core-or-core22009
-rw-r--r--sys-kernel/thinkpad-sources/files/configs/config-for-core-or-core2-2.6.24 (renamed from sys-kernel/thinkpad-sources/files/configs/config-for-core-or-core2-2.6.23-r2)229
-rw-r--r--sys-kernel/thinkpad-sources/files/digest-thinkpad-sources-2.6.23-r118
-rw-r--r--sys-kernel/thinkpad-sources/files/digest-thinkpad-sources-2.6.23-r221
-rw-r--r--sys-kernel/thinkpad-sources/files/digest-thinkpad-sources-2.6.23-r321
-rw-r--r--sys-kernel/thinkpad-sources/thinkpad-sources-2.6.23-r1.ebuild80
-rw-r--r--sys-kernel/thinkpad-sources/thinkpad-sources-2.6.23-r2.ebuild80
-rw-r--r--sys-kernel/thinkpad-sources/thinkpad-sources-2.6.23-r3.ebuild80
-rw-r--r--sys-kernel/thinkpad-sources/thinkpad-sources-2.6.24.ebuild63
16 files changed, 424 insertions, 4148 deletions
diff --git a/sys-kernel/thinkpad-sources/ChangeLog b/sys-kernel/thinkpad-sources/ChangeLog
index 78d1e7f..a2d6432 100644
--- a/sys-kernel/thinkpad-sources/ChangeLog
+++ b/sys-kernel/thinkpad-sources/ChangeLog
@@ -1,5 +1,21 @@
+ 31 Jan 2008; Florian Manschwetus <florianmanschwetus@gmx.de>
+ +files/2.6.24, -files/configs/config-for-core-or-core2,
+ -files/2.6.23/linux-phc-0.3.1-for-2.6.23.patch,
+ +files/2.6.24/linux-phc-0.3.1-for-2.6.24-rc1.patch,
+ -thinkpad-sources-2.6.23-r1.ebuild,
+ -files/configs/config-for-core-or-core2-2.6.23-r2, -files/2.6.23-r2,
+ -thinkpad-sources-2.6.23-r2.ebuild, -thinkpad-sources-2.6.23-r3.ebuild,
+ -files/2.6.23-r2/disk-protect-for-2.6.23.8.patch,
+ -files/2.6.23/combined-2.6.23-cph.patch,
+ -files/2.6.23/disk-protect-for-2.6.23.patch,
+ -files/2.6.23/input-unknown_keycodes-for-2.6.23.patch,
+ +files/configs/config-for-core-or-core2-2.6.24,
+ +thinkpad-sources-2.6.24.ebuild, -files/2.6.23,
+ +files/2.6.24/disk-protect-for-2.6.24.patch:
+ Cleanup (remove broken Versions) and Bump to 2.6.24
+
01 Dec 2007; Florian Manschwetus <florianmanschwetus@gmx.de>
thinkpad-sources-2.6.23-r2.ebuild, +thinkpad-sources-2.6.23-r3.ebuild:
bump to 2.6.23-r3
diff --git a/sys-kernel/thinkpad-sources/Manifest b/sys-kernel/thinkpad-sources/Manifest
index 2fa6455..4a2f104 100644
--- a/sys-kernel/thinkpad-sources/Manifest
+++ b/sys-kernel/thinkpad-sources/Manifest
@@ -1,69 +1,11 @@
-AUX 2.6.23-r2/disk-protect-for-2.6.23.8.patch 27503 RMD160 6738ad87cdc93ba4fa978fae4298a6c11715c373 SHA1 d9075068e360c64fca98248b91c7fab662f4d0dd SHA256 a9cc91134b131b8f09d483b8c16392b8b03649b9b7b41bb09abd27d455e23552
-MD5 f3d9af2d46c4a180bc78152726570cc0 files/2.6.23-r2/disk-protect-for-2.6.23.8.patch 27503
-RMD160 6738ad87cdc93ba4fa978fae4298a6c11715c373 files/2.6.23-r2/disk-protect-for-2.6.23.8.patch 27503
-SHA256 a9cc91134b131b8f09d483b8c16392b8b03649b9b7b41bb09abd27d455e23552 files/2.6.23-r2/disk-protect-for-2.6.23.8.patch 27503
-AUX 2.6.23/combined-2.6.23-cph.patch 19257 RMD160 18be73760b068e279319a73149a2321b01c9a1e6 SHA1 3b76e942e517799d88a1586d0334dbebdc09fccd SHA256 e89db0e631aae0890efa578b45120bacaf404ba235a6b1c268ba32472f6fa1e6
-MD5 5ebd59ff058c6e513297d5933ed14df7 files/2.6.23/combined-2.6.23-cph.patch 19257
-RMD160 18be73760b068e279319a73149a2321b01c9a1e6 files/2.6.23/combined-2.6.23-cph.patch 19257
-SHA256 e89db0e631aae0890efa578b45120bacaf404ba235a6b1c268ba32472f6fa1e6 files/2.6.23/combined-2.6.23-cph.patch 19257
-AUX 2.6.23/disk-protect-for-2.6.23.patch 26537 RMD160 e9d1df866316d10ee7bc2d6967b9858173302de9 SHA1 8ff2eac2cfb635ac14ad742218e0b44224c2a42a SHA256 201d4bc70ebe1cd3d083f4c0d4702df7cc3c2c8f5d02335e2d5e5ba5d6a0af70
-MD5 f2d5efb16326150620023d4880b64aa7 files/2.6.23/disk-protect-for-2.6.23.patch 26537
-RMD160 e9d1df866316d10ee7bc2d6967b9858173302de9 files/2.6.23/disk-protect-for-2.6.23.patch 26537
-SHA256 201d4bc70ebe1cd3d083f4c0d4702df7cc3c2c8f5d02335e2d5e5ba5d6a0af70 files/2.6.23/disk-protect-for-2.6.23.patch 26537
-AUX 2.6.23/input-unknown_keycodes-for-2.6.23.patch 367 RMD160 16564310a1007b173da528d71e358b5a73abf962 SHA1 2b1cc17a7b2b3bb87c53fdf5930bdc8ad2030302 SHA256 ab965750c853f193c248abe53bd73327a5aec608e092fbfa89c3aa06a2751122
-MD5 fb3483cdcd1d3a74ff51656c3f06e3bf files/2.6.23/input-unknown_keycodes-for-2.6.23.patch 367
-RMD160 16564310a1007b173da528d71e358b5a73abf962 files/2.6.23/input-unknown_keycodes-for-2.6.23.patch 367
-SHA256 ab965750c853f193c248abe53bd73327a5aec608e092fbfa89c3aa06a2751122 files/2.6.23/input-unknown_keycodes-for-2.6.23.patch 367
-AUX 2.6.23/linux-phc-0.3.1-for-2.6.23.patch 15430 RMD160 7cc1ecb9168e255ffc366c2ea2dcbce081ec05c3 SHA1 b1bcedc872636588e3e078196d70dd8f41ade405 SHA256 862bb7eecfd02f71ab0a2b3f093f17a071b59d1c82184dbbeccfc744df543c70
-MD5 e0c06375cf563024ea550399d231c4a1 files/2.6.23/linux-phc-0.3.1-for-2.6.23.patch 15430
-RMD160 7cc1ecb9168e255ffc366c2ea2dcbce081ec05c3 files/2.6.23/linux-phc-0.3.1-for-2.6.23.patch 15430
-SHA256 862bb7eecfd02f71ab0a2b3f093f17a071b59d1c82184dbbeccfc744df543c70 files/2.6.23/linux-phc-0.3.1-for-2.6.23.patch 15430
-AUX configs/config-for-core-or-core2 47142 RMD160 78adf8841a9b88e7532da689eb512189df69241f SHA1 40e9afdbec772f86f6a731e44438641e2f7e283d SHA256 755fbbcf216b51754c18a53a04f052594a916326f5b3dec2017c613be060e6c9
-MD5 e5518542c19d6c27704b174ada9a2854 files/configs/config-for-core-or-core2 47142
-RMD160 78adf8841a9b88e7532da689eb512189df69241f files/configs/config-for-core-or-core2 47142
-SHA256 755fbbcf216b51754c18a53a04f052594a916326f5b3dec2017c613be060e6c9 files/configs/config-for-core-or-core2 47142
-AUX configs/config-for-core-or-core2-2.6.23-r2 47445 RMD160 ea57d0b92eb6a9168902ef69f4329ce8152c99f5 SHA1 fe04eabef35654b3d6ce9817b319ea52f053ae5b SHA256 bcee5a423c508c07ae8a9d9d60b4ff6ba05de6ffbd20819c15ece46a78098667
-MD5 a8723607547a1b15e50a53f8b615a113 files/configs/config-for-core-or-core2-2.6.23-r2 47445
-RMD160 ea57d0b92eb6a9168902ef69f4329ce8152c99f5 files/configs/config-for-core-or-core2-2.6.23-r2 47445
-SHA256 bcee5a423c508c07ae8a9d9d60b4ff6ba05de6ffbd20819c15ece46a78098667 files/configs/config-for-core-or-core2-2.6.23-r2 47445
-DIST genpatches-2.6.23-2.base.tar.bz2 6134 RMD160 b4d459e06a1a482fb4cfe51e8b693f9c95a6254b SHA1 b851ef449ec34d4331aba47774fe915cc2408e13 SHA256 fa6c34455470c4d57df1d51829a444343f7cbfca44d726843382baeec5ccbaec
-DIST genpatches-2.6.23-2.extras.tar.bz2 148061 RMD160 ea133cf3c10e061e3c979a8d12c31e320aa48873 SHA1 4c2318276573133374fb66bbd8f358af1ec1c32c SHA256 9fb3221a449cd8c078b327830111e1fb3af1f289e362c98718289d943834d0a9
-DIST genpatches-2.6.23-3.base.tar.bz2 56369 RMD160 1b2b09c8042f39536acfb32398c71d4094250225 SHA1 234a45afda75bb11e24a42397ce6dd2b2562cfbe SHA256 a6cdb742cddfde72ef64a2c5dcd2c034f52a897e63d108f06201a1e8fe065f88
-DIST genpatches-2.6.23-3.extras.tar.bz2 147992 RMD160 bb9cfc7687944b677799b2386bc4b36d95676cea SHA1 fc7f24df398033cdf8e0ff444020c58407aa9925 SHA256 9d272384be06e00ecfdfa1795262a0859e86acd09aa95c531ff311e210d87db6
-DIST genpatches-2.6.23-4.base.tar.bz2 65559 RMD160 a7414e8b8fdf93c6fef8bd2065c4396508d541d8 SHA1 c0f10fc0dc6a487ccb3a10ad6ca46324b50dcbf7 SHA256 b8cbce0f691de566b685fc43f502a7d02e9082a370dad1ab12559a69b20a59a3
-DIST genpatches-2.6.23-4.extras.tar.bz2 147992 RMD160 bb9cfc7687944b677799b2386bc4b36d95676cea SHA1 fc7f24df398033cdf8e0ff444020c58407aa9925 SHA256 9d272384be06e00ecfdfa1795262a0859e86acd09aa95c531ff311e210d87db6
-DIST linux-2.6.23.tar.bz2 45488158 RMD160 755690e80751d5de86d260fe05c6eeadde116c4e SHA1 3a186adf13e44415796ab6381aa8979b16a5d5ca SHA256 d4e67c0935ffb2a4158234bff92cc791b83177866009fc9b2214104e0038dbdb
-DIST patch-2.6.23-hrt3.patch.bz2 43556 RMD160 3234c8eeb3435e3db1690a2913a6c4daab867292 SHA1 d62cc99e3892af99a4f6b8f975e44846b69a5b51 SHA256 ac64d9423a14d78f9929c885fd499f2308fb2d14e96a37d3da16c35bcee40a59
-DIST sco-flowcontrol-v4.3.diff 14993 RMD160 aa6f41adbe8e6093b251731f107acd5ec6612bde SHA1 166135888810f7327c09ac5af20669ac7773467f SHA256 cacd624768bfd60c75843de625f16342f74e25dfe4a0794d79e1a6e14645c5d4
-DIST thinkpad-acpi-0.18-20071013_v2.6.23.1.patch.gz 16176 RMD160 67b55a21934c8d0b7305024a6a1996dec8da7000 SHA1 892aeacc3ca11830e2c5322d6d3b3d33e914b246 SHA256 b7cd7f1e12a6666d2c591c7fd9f7e81de4a93bdd3e4e6be04f56f05685e0d205
-DIST thinkpad-acpi-0.18-20071112_v2.6.23.1.gz 36875 RMD160 428d9305482b560beb98165aa370618d449c63c4 SHA1 6a7e34bc87ec214543542bb408f4ea42568ee67c SHA256 0428995ed00088622111f6a9174a0e985230175280ef5b5dd5968c38810452ae
-DIST tuxonice-3.0-rc2-for-2.6.23.1.patch.bz2 104787 RMD160 c6483adbcfa54582f077781884a4d0a0ccf9b858 SHA1 7b2eba961f29d4cba129648a89789cfb11485221 SHA256 ef86267b6f3d7e309221f5173a881afae1dfa57418be5b3963f2380b0633ca1a
-EBUILD thinkpad-sources-2.6.23-r1.ebuild 2964 RMD160 cf334363f8d5c9835e6b17f02f172bbcfda3dc45 SHA1 25b2117846c2ea260610813e162133db062c8271 SHA256 597ab1ea5d1d148bc111ef5831667fbcf24597469a1c4241ef9f3a5c1a2e9905
-MD5 b2b6de357d96980dad80022de0ec6b41 thinkpad-sources-2.6.23-r1.ebuild 2964
-RMD160 cf334363f8d5c9835e6b17f02f172bbcfda3dc45 thinkpad-sources-2.6.23-r1.ebuild 2964
-SHA256 597ab1ea5d1d148bc111ef5831667fbcf24597469a1c4241ef9f3a5c1a2e9905 thinkpad-sources-2.6.23-r1.ebuild 2964
-EBUILD thinkpad-sources-2.6.23-r2.ebuild 2963 RMD160 93b1ed43b6053803a3a059745b4d95f1e4375108 SHA1 70ccd06a0e14b191a2a0c2cd2f87c2da8e8b8c30 SHA256 5711819f500713b163ede59b12d77cdd2e5ab47e7a7429f8659c2bbdad635ac2
-MD5 b917fe82aa88b7e89411ba02a3e0e09b thinkpad-sources-2.6.23-r2.ebuild 2963
-RMD160 93b1ed43b6053803a3a059745b4d95f1e4375108 thinkpad-sources-2.6.23-r2.ebuild 2963
-SHA256 5711819f500713b163ede59b12d77cdd2e5ab47e7a7429f8659c2bbdad635ac2 thinkpad-sources-2.6.23-r2.ebuild 2963
-EBUILD thinkpad-sources-2.6.23-r3.ebuild 2984 RMD160 3604552d9751605c1adf6ddae287f0d953a10a2d SHA1 77c5754d04d077e45b8c441a3e6d22777d1b6dfa SHA256 2f8338f936557f794f6670574eb24414f5e3aee21a57f2f07a7c30bde700f44d
-MD5 4c35a755565b19d4d06594e9d2facb29 thinkpad-sources-2.6.23-r3.ebuild 2984
-RMD160 3604552d9751605c1adf6ddae287f0d953a10a2d thinkpad-sources-2.6.23-r3.ebuild 2984
-SHA256 2f8338f936557f794f6670574eb24414f5e3aee21a57f2f07a7c30bde700f44d thinkpad-sources-2.6.23-r3.ebuild 2984
-MISC ChangeLog 1370 RMD160 7bb0b2b0e742ab98d7e3f9bbdfa16067ba3abf3b SHA1 4af4d1af6e33e7d98b2c7dcf438659774f79a1f9 SHA256 3f2019866543558e6ca712f6011744718b66e1d8e2eb457fa32aeb294918097e
-MD5 6e4464b44173db087e876ad24c49cde5 ChangeLog 1370
-RMD160 7bb0b2b0e742ab98d7e3f9bbdfa16067ba3abf3b ChangeLog 1370
-SHA256 3f2019866543558e6ca712f6011744718b66e1d8e2eb457fa32aeb294918097e ChangeLog 1370
+AUX 2.6.24/disk-protect-for-2.6.24.patch 26920 RMD160 6ec7ac0b4c56ba15d0bc66cfe1c2ec71263cfbd0 SHA1 917c4d0f3620227f61e399a73bbedf6ec227e357 SHA256 bf831e5a068ffbf4182974287c600646afee84878c12697da05f8bca440ae22e
+AUX 2.6.24/linux-phc-0.3.1-for-2.6.24-rc1.patch 15425 RMD160 a1317ed8dabde11a1abde5887d972912bb8130b3 SHA1 4c31ff80c16ab0238e6fa254507d79f11e301241 SHA256 0789f27d86f8aa580d628ce0190eb50a0232678107f85d63819ba09a435ff057
+AUX configs/config-for-core-or-core2-2.6.24 49564 RMD160 86b3094cfd88db4c201579757d39bc028d6d1f76 SHA1 c957910a711d7cc48387f04a76d1b2173fb60445 SHA256 057354d17eb762163c66af00ca1faa636fa9a52c098ce8a8722951ce810a6ac3
+DIST genpatches-2.6.24-1.base.tar.bz2 960 RMD160 a7b9932bc33e8a56da4bfafbdf16749bf141db6c SHA1 19271490c3faf040b7cf580123690785e95c1c66 SHA256 3f7c948b72494aed970be1187a75c7c8573ad500e35c5bc9610b87ffa42bd54f
+DIST genpatches-2.6.24-1.extras.tar.bz2 41902 RMD160 259b831110120518149bbccdacf9982330af5ef0 SHA1 48d85d6b6cf84369b34d6fbd169fbfdaf97fc83f SHA256 bc8723863cace59d8bcb6d84d678cc9c370a5e2144133f543396b45e4655b063
+DIST linux-2.6.24.tar.bz2 46737783 RMD160 0e5194c69c3d82c41ece689c4f84e638f8776d34 SHA1 351aebc784a5395fe4c92d1e514a89680482f7e2 SHA256 413c64fbbcf81244cb5571be4963644a1e81166a2b0f008a016528363b65c5d3
+DIST thinkpad-acpi-0.19-20080107_v2.6.24-rc7.patch.gz 36028 RMD160 ff652f9416faf533f584950ce1a77fa4cde21703 SHA1 aacfcd3967ff6ca6749e8c9e8bfa5270c2c98986 SHA256 237c12599e6b19908c7a1d8b8347691d4e681de0385bb9f783d2d5b828fbed1c
+DIST tuxonice-3.0-rc5-for-2.6.24-rc8-git4.patch.bz2 113258 RMD160 c1fde23de970b6347302ae2bff71bf3ab1bfbeb3 SHA1 bf559c8dead1d0372d3388e4f9d2c4d145862ec1 SHA256 0a3b502b89bebbcd0f701a0e89c072797257ce766b2ea2d2bda1f6762ca2ce9b
+EBUILD thinkpad-sources-2.6.24.ebuild 2437 RMD160 36d0d67517f6ed70fe5d701d3e98c263d13de640 SHA1 7ecbd46cf4829428ac36e8e206761e21a94ec35e SHA256 065332432fdb9997a51664f7e554374a87ae46be646871740fb61ded15597860
+MISC ChangeLog 2179 RMD160 aeb87362491b606d4170a167a6a2c25c59eae170 SHA1 99877fa39d2c304d9c4a86864fe1a0452e028c36 SHA256 a8496789d18b943239b461f1eac59f9b7eb2fe1d0daa937e3f0db5fb1c9eebac
MISC metadata.xml 284 RMD160 5062b08f804b7eaf9e1765c0d38b7fc95bc467e4 SHA1 687ba9103e597aad8a7231ff9a470d841f7121df SHA256 6ca83c8927bd3516baac49bc9ea82ddbeeddbe38a5a98b637d6eb1f1d436c84a
-MD5 18420ded8684f1ce0703f5a981b9cce7 metadata.xml 284
-RMD160 5062b08f804b7eaf9e1765c0d38b7fc95bc467e4 metadata.xml 284
-SHA256 6ca83c8927bd3516baac49bc9ea82ddbeeddbe38a5a98b637d6eb1f1d436c84a metadata.xml 284
-MD5 6965ecc335a6c3d81a9f19344bb752a7 files/digest-thinkpad-sources-2.6.23-r1 1683
-RMD160 8d158b7ff12f109a488ee17be56eb7f7d0acd7b6 files/digest-thinkpad-sources-2.6.23-r1 1683
-SHA256 152dcc7c116006ce57ed51c30704a05e3a19a7af52d7309912fbc7a8049a63c3 files/digest-thinkpad-sources-2.6.23-r1 1683
-MD5 44776056a7e757b4f1f466c08784ea7d files/digest-thinkpad-sources-2.6.23-r2 1912
-RMD160 90fb940fd362ed45b879e2fccd76218475268bdb files/digest-thinkpad-sources-2.6.23-r2 1912
-SHA256 9180d84431fa9b69eabea4d5959267b6f945bffa3d5fe512ddf05950829b8504 files/digest-thinkpad-sources-2.6.23-r2 1912
-MD5 cac26d96d8990b90a4d4d2fea8003ae4 files/digest-thinkpad-sources-2.6.23-r3 1912
-RMD160 64dd490fdd2550074cd40ed475a232bf60736351 files/digest-thinkpad-sources-2.6.23-r3 1912
-SHA256 1e6252933091823f291e214e48bb2b56d5a7a0e233881a32323f55c8f2b3d82e files/digest-thinkpad-sources-2.6.23-r3 1912
diff --git a/sys-kernel/thinkpad-sources/files/2.6.23-r2/disk-protect-for-2.6.23.8.patch b/sys-kernel/thinkpad-sources/files/2.6.23-r2/disk-protect-for-2.6.23.8.patch
deleted file mode 100644
index 66f168f..0000000
--- a/sys-kernel/thinkpad-sources/files/2.6.23-r2/disk-protect-for-2.6.23.8.patch
+++ /dev/null
@@ -1,877 +0,0 @@
-
- Documentation/block/disk-protection.txt | 79 +++++++++++
- block/ll_rw_blk.c | 224 +++++++++++++++++++++++++++++++
- drivers/ata/libata-scsi.c | 36 +++++
- drivers/ide/ide-disk.c | 142 ++++++++++++++++++++
- drivers/ide/ide-io.c | 14 ++
- drivers/scsi/scsi_lib.c | 169 +++++++++++++++++++++++
- include/linux/ata.h | 1
- include/linux/blkdev.h | 14 ++
- include/linux/ide.h | 1
- 9 files changed, 680 insertions(+), 0 deletions(-)
-
-diff --git a/Documentation/block/disk-protection.txt b/Documentation/block/disk-protection.txt
-new file mode 100644
-index 0000000..508cc5b
---- /dev/null
-+++ b/Documentation/block/disk-protection.txt
-@@ -0,0 +1,79 @@
-+Hard disk protection
-+====================
-+
-+
-+Intro
-+-----
-+ATA/ATAPI-7 specifies the IDLE IMMEDIATE command with UNLOAD FEATURE.
-+Issuing this command should cause the drive to switch to idle mode and
-+unload disk heads. This feature is being used in modern laptops in
-+conjunction with accelerometers and appropriate software to implement
-+a shock protection facility. The idea is to stop all I/O operations on
-+the internal hard drive and park its heads on the ramp when critical
-+situations are anticipated. The desire to have such a feature
-+available on GNU/Linux systems has been the original motivation to
-+implement a generic disk parking interface in the Linux kernel.
-+
-+
-+The interface
-+-------------
-+The interface works as follows: Writing an integer value to
-+/sys/block/*/queue/protect will park the respective drive and freeze
-+the block layer queue for the specified number of seconds. When the
-+timeout expires and no further disk park request has been issued in
-+the meantime, the queue is unfrozen and accumulated I/O operations are
-+performed.
-+
-+IMPORTANT NOTE:
-+Not all ATA drives implement IDLE IMMEDIATE with UNLOAD FEATURE and
-+quite a few of those that do so, don't report this capability as
-+described in the specs. When a disk park has been requested through
-+sysfs as described above, the kernel will try to determine if the
-+drive supports the UNLOAD FEATURE by default. The kernel will only
-+rely on the IDLE IMMEDIATE with UNLOAD FEATURE command if it is
-+convinced that this command is actually supported by the disk drive;
-+otherwise, it will fall back to STANDBY IMMEDIATE. Resuming from the
-+latter will take much longer and it is generally more likely to have a
-+negative impact on the drive's lifetime due to the inclease of spin
-+down and up cycles. If you want to use this interface in a shock
-+protection framework and you know that your drive does indeed support
-+the IDLE IMMEDIATE with UNLOAD FEATURE command despite not saying so,
-+you can force the kernel to issue that command by doing the following
-+on the command line:
-+# echo -n unload > /sys/block/sda/queue/protect_method
-+(replace sda by the drive identifier as appropriate).
-+
-+/sys/block/*/queue/protect_method accepts auto, unload and standby
-+respectively. Reading from protect_method shows the available options
-+surrounding the active one with brackets. When auto is active, this
-+will change to whatever the kernel sees fit after the next disk park
-+command has been issued.
-+
-+
-+References
-+----------
-+
-+There are several laptops from different brands featuring shock
-+protection capabilities. As manufacturers have refused to support open
-+source development of the required software components so far, Linux
-+support for shock protection varies considerably between different
-+hardware implementations. Ideally, this section should contain a list
-+of poiters at different projects aiming at an implementation of shock
-+protection on different systeems. Unfortunately, I only know of a
-+single project which, although still considered experimental, is fit
-+for use. Please feel free to add projects that have been the victims
-+of my ignorance.
-+
-+- http://www.thinkwiki.org/wiki/HDAPS
-+ See this page for information about Linux support of the hard disk
-+ active protection syystem as implemented in IBM/Lenovo Thinkpads.
-+
-+
-+CREDITS
-+-------
-+
-+The patch to implement the interface described in this file has
-+originally been published by Jon Escombe <lists-Xbpc2PeERmvQXOPxS62xeg@public.gmane.org>.
-+
-+
-+05 Dec 2006, Elias Oltmanns <eo-oA28OIkTjSVZXbeN9DUtxg@public.gmane.org>
-diff --git a/block/ll_rw_blk.c b/block/ll_rw_blk.c
-index 026cf24..3a3afd8 100644
---- a/block/ll_rw_blk.c
-+++ b/block/ll_rw_blk.c
-@@ -38,10 +38,14 @@ #include <scsi/scsi_cmnd.h>
-
- static void blk_unplug_work(struct work_struct *work);
- static void blk_unplug_timeout(unsigned long data);
-+static void blk_unfreeze_work(struct work_struct *work);
-+static void blk_unfreeze_timeout(unsigned long data);
- static void drive_stat_acct(struct request *rq, int nr_sectors, int new_io);
- static void init_request_from_bio(struct request *req, struct bio *bio);
- static int __make_request(struct request_queue *q, struct bio *bio);
- static struct io_context *current_io_context(gfp_t gfp_flags, int node);
-+static int blk_protect_register(struct request_queue *q);
-+static void blk_protect_unregister(struct request_queue *q);
-
- /*
- * For the allocated request tables
-@@ -227,6 +231,16 @@ void blk_queue_make_request(struct reque
- q->unplug_timer.function = blk_unplug_timeout;
- q->unplug_timer.data = (unsigned long)q;
-
-+ q->max_unfreeze = 30;
-+
-+ INIT_WORK(&q->unfreeze_work, blk_unfreeze_work);
-+
-+ q->unfreeze_timer.function = blk_unfreeze_timeout;
-+ q->unfreeze_timer.data = (unsigned long)q;
-+
-+ /* Set protect_method to auto detection initially */
-+ q->protect_method = 2;
-+
- /*
- * by default assume old behaviour and bounce for any highmem page
- */
-@@ -318,6 +332,18 @@ void blk_queue_issue_flush_fn(struct req
-
- EXPORT_SYMBOL(blk_queue_issue_flush_fn);
-
-+void blk_queue_issue_protect_fn(struct request_queue *q, issue_protect_fn *ipf)
-+{
-+ q->issue_protect_fn = ipf;
-+}
-+EXPORT_SYMBOL(blk_queue_issue_protect_fn);
-+
-+void blk_queue_issue_unprotect_fn(struct request_queue *q, issue_unprotect_fn *iuf)
-+{
-+ q->issue_unprotect_fn = iuf;
-+}
-+EXPORT_SYMBOL(blk_queue_issue_unprotect_fn);
-+
- /*
- * Cache flushing for ordered writes handling
- */
-@@ -1849,6 +1875,7 @@ struct request_queue *blk_alloc_queue_no
- return NULL;
-
- init_timer(&q->unplug_timer);
-+ init_timer(&q->unfreeze_timer);
-
- snprintf(q->kobj.name, KOBJ_NAME_LEN, "%s", "queue");
- q->kobj.ktype = &queue_ktype;
-@@ -4114,6 +4141,7 @@ int blk_register_queue(struct gendisk *d
- return ret;
- }
-
-+ blk_protect_register(q);
- return 0;
- }
-
-@@ -4122,6 +4150,7 @@ void blk_unregister_queue(struct gendisk
- struct request_queue *q = disk->queue;
-
- if (q && q->request_fn) {
-+ blk_protect_unregister(q);
- elv_unregister_queue(q);
-
- kobject_uevent(&q->kobj, KOBJ_REMOVE);
-@@ -4129,3 +4158,198 @@ void blk_unregister_queue(struct gendisk
- kobject_put(&disk->kobj);
- }
- }
-+
-+/*
-+ * Issue lower level unprotect function if no timers are pending.
-+ */
-+static void blk_unfreeze_work(struct work_struct *work)
-+{
-+ struct request_queue *q = container_of(work, struct request_queue, unfreeze_work);
-+ int pending;
-+ unsigned long flags;
-+
-+ spin_lock_irqsave(q->queue_lock, flags);
-+ pending = timer_pending(&q->unfreeze_timer);
-+ spin_unlock_irqrestore(q->queue_lock, flags);
-+ if (!pending)
-+ q->issue_unprotect_fn(q);
-+}
-+
-+/*
-+ * Called when the queue freeze timeout expires...
-+ */
-+static void blk_unfreeze_timeout(unsigned long data)
-+{
-+ struct request_queue *q = (struct request_queue *) data;
-+
-+ kblockd_schedule_work(&q->unfreeze_work);
-+}
-+
-+/*
-+ * The lower level driver parks and freezes the queue, and this block layer
-+ * function sets up the freeze timeout timer on return. If the queue is
-+ * already frozen then this is called to extend the timer...
-+ */
-+void blk_freeze_queue(struct request_queue *q, int seconds)
-+{
-+ /* Don't accept arbitrarily long freezes */
-+ if (seconds >= q->max_unfreeze)
-+ seconds = q->max_unfreeze;
-+ /* set/reset the timer */
-+ mod_timer(&q->unfreeze_timer, msecs_to_jiffies(seconds*1000) + jiffies);
-+}
-+
-+/*
-+ * When reading the 'protect' attribute, we return seconds remaining
-+ * before unfreeze timeout expires
-+ */
-+static ssize_t queue_protect_show(struct request_queue *q, char *page)
-+{
-+ unsigned int seconds = 0;
-+
-+ spin_lock_irq(q->queue_lock);
-+ if (blk_queue_stopped(q) && timer_pending(&q->unfreeze_timer))
-+ /*
-+ * Adding 1 in order to guarantee nonzero value until timer
-+ * has actually expired.
-+ */
-+ seconds = jiffies_to_msecs(q->unfreeze_timer.expires
-+ - jiffies) / 1000 + 1;
-+ spin_unlock_irq(q->queue_lock);
-+ return queue_var_show(seconds, (page));
-+}
-+
-+/*
-+ * When writing the 'protect' attribute, input is the number of seconds
-+ * to freeze the queue for. We call a lower level helper function to
-+ * park the heads and freeze/block the queue, then we make a block layer
-+ * call to setup the thaw timeout. If input is 0, then we thaw the queue.
-+ */
-+static ssize_t queue_protect_store(struct request_queue *q,
-+ const char *page, size_t count)
-+{
-+ unsigned long freeze = 0;
-+
-+ queue_var_store(&freeze, page, count);
-+
-+ if (freeze>0) {
-+ /* Park and freeze */
-+ if (!blk_queue_stopped(q))
-+ q->issue_protect_fn(q);
-+ /* set / reset the thaw timer */
-+ spin_lock_irq(q->queue_lock);
-+ blk_freeze_queue(q, freeze);
-+ spin_unlock_irq(q->queue_lock);
-+ } else {
-+ spin_lock_irq(q->queue_lock);
-+ freeze = del_timer(&q->unfreeze_timer);
-+ spin_unlock_irq(q->queue_lock);
-+ if (freeze)
-+ q->issue_unprotect_fn(q);
-+ }
-+
-+ return count;
-+}
-+
-+static ssize_t
-+queue_str_show(char *page, char *str, int status)
-+{
-+ ssize_t len;
-+
-+ if (status & 1)
-+ len = sprintf(page, "[%s]", str);
-+ else
-+ len = sprintf(page, "%s", str);
-+ if (status & 2)
-+ len += sprintf(page+len, "\n");
-+ else
-+ len += sprintf(page+len, " ");
-+ return len;
-+}
-+
-+/*
-+ * Returns current protect_method.
-+ */
-+static ssize_t queue_protect_method_show(struct request_queue *q, char *page)
-+{
-+ int len = 0;
-+ int unload = q->protect_method;
-+
-+ len += queue_str_show(page+len, "auto", (unload & 2) >> 1);
-+ len += queue_str_show(page+len, "unload", unload & 1);
-+ len += queue_str_show(page+len, "standby", !unload ? 3 : 2);
-+ return len;
-+}
-+
-+/*
-+ * Stores the device protect method.
-+ */
-+static ssize_t queue_protect_method_store(struct request_queue *q,
-+ const char *page, size_t count)
-+{
-+ spin_lock_irq(q->queue_lock);
-+ if (!strcmp(page, "auto") || !strcmp(page, "auto\n"))
-+ q->protect_method = 2;
-+ else if (!strcmp(page, "unload") || !strcmp(page, "unload\n"))
-+ q->protect_method = 1;
-+ else if (!strcmp(page, "standby") || !strcmp(page, "standby\n"))
-+ q->protect_method = 0;
-+ else {
-+ spin_unlock_irq(q->queue_lock);
-+ return -EINVAL;
-+ }
-+ spin_unlock_irq(q->queue_lock);
-+ return count;
-+}
-+
-+static struct queue_sysfs_entry queue_protect_entry = {
-+ .attr = { .name = "protect", .mode = S_IRUGO | S_IWUSR },
-+ .show = queue_protect_show,
-+ .store = queue_protect_store,
-+};
-+static struct queue_sysfs_entry queue_protect_method_entry = {
-+ .attr = { .name = "protect_method", .mode = S_IRUGO | S_IWUSR },
-+ .show = queue_protect_method_show,
-+ .store = queue_protect_method_store,
-+};
-+
-+static int blk_protect_register(struct request_queue *q)
-+{
-+ int error = 0;
-+
-+ /* check that the lower level driver has a protect handler */
-+ if (!q->issue_protect_fn)
-+ return 1;
-+
-+ /* create the attributes */
-+ error = sysfs_create_file(&q->kobj, &queue_protect_entry.attr);
-+ if (error) {
-+ printk(KERN_ERR
-+ "blk_protect_register(): failed to create protect queue attribute!\n");
-+ return error;
-+ }
-+ kobject_get(&q->kobj);
-+
-+ error = sysfs_create_file(&q->kobj, &queue_protect_method_entry.attr);
-+ if (error) {
-+ printk(KERN_ERR
-+ "blk_protect_register(): failed to create protect_method attribute!\n");
-+ return error;
-+ }
-+ kobject_get(&q->kobj);
-+
-+ return 0;
-+}
-+
-+static void blk_protect_unregister(struct request_queue *q)
-+{
-+ /* check that the lower level driver has a protect handler */
-+ if (!q->issue_protect_fn)
-+ return;
-+
-+ /* remove the attributes */
-+ sysfs_remove_file(&q->kobj, &queue_protect_method_entry.attr);
-+ kobject_put(&q->kobj);
-+ sysfs_remove_file(&q->kobj, &queue_protect_entry.attr);
-+ kobject_put(&q->kobj);
-+}
-diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
-index e836476..c587bf1 100644
---- a/drivers/ata/libata-scsi.c
-+++ b/drivers/ata/libata-scsi.c
-@@ -781,6 +781,38 @@ static void ata_scsi_dev_config(struct s
- }
- }
-
-+extern int scsi_protect_queue(struct request_queue *q, int unload);
-+extern int scsi_unprotect_queue(struct request_queue *q);
-+
-+static int ata_scsi_issue_protect_fn(struct request_queue *q)
-+{
-+ struct scsi_device *sdev = q->queuedata;
-+ struct ata_port *ap = ata_shost_to_port(sdev->host);
-+ struct ata_device *dev = ata_scsi_find_dev(ap, sdev);
-+ int unload = q->protect_method;
-+ unsigned long flags;
-+
-+ if (!dev) {
-+ printk(KERN_DEBUG "ata_scsi_issue_protect_fn(): Couldn't find ATA device to be parked.\n");
-+ return -ENXIO;
-+ }
-+
-+ if (unload == 2) {
-+ unload = ata_id_has_unload(dev->id) ? 1 : 0;
-+ spin_lock_irqsave(q->queue_lock, flags);
-+ q->protect_method = unload;
-+ spin_unlock_irqrestore(q->queue_lock, flags);
-+ }
-+
-+ /* call scsi_protect_queue, requesting either unload or standby */
-+ return scsi_protect_queue(q, unload);
-+}
-+
-+static int ata_scsi_issue_unprotect_fn(struct request_queue *q)
-+{
-+ return scsi_unprotect_queue(q);
-+}
-+
- /**
- * ata_scsi_slave_config - Set SCSI device attributes
- * @sdev: SCSI device to examine
-@@ -806,6 +838,10 @@ int ata_scsi_slave_config(struct scsi_de
-
- if (dev)
- ata_scsi_dev_config(sdev, dev);
-+ blk_queue_issue_protect_fn(sdev->request_queue,
-+ ata_scsi_issue_protect_fn);
-+ blk_queue_issue_unprotect_fn(sdev->request_queue,
-+ ata_scsi_issue_unprotect_fn);
-
- return 0; /* scsi layer doesn't check return value, sigh */
- }
-diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c
-index 4754769..938408d 100644
---- a/drivers/ide/ide-disk.c
-+++ b/drivers/ide/ide-disk.c
-@@ -743,6 +743,145 @@ static int idedisk_issue_flush(struct re
- }
-
- /*
-+ * todo:
-+ * - we freeze the queue regardless of success and rely on the
-+ * ide_protect_queue function to thaw immediately if the command
-+ * failed (to be consistent with the libata handler)... should
-+ * we also inspect here?
-+ */
-+void ide_end_protect_rq(struct request *rq, int error)
-+{
-+ struct completion *waiting = rq->end_io_data;
-+
-+ rq->end_io_data = NULL;
-+ /* spin lock already accquired */
-+ if (!blk_queue_stopped(rq->q))
-+ blk_stop_queue(rq->q);
-+
-+ complete(waiting);
-+}
-+
-+int ide_unprotect_queue(struct request_queue *q)
-+{
-+ struct request rq;
-+ unsigned long flags;
-+ int pending = 0, rc = 0;
-+ ide_drive_t *drive = q->queuedata;
-+ u8 args[7], *argbuf = args;
-+
-+ if (!blk_queue_stopped(q))
-+ return -EIO;
-+
-+ /* Are there any pending jobs on the queue? */
-+ pending = ((q->rq.count[READ] > 0) || (q->rq.count[WRITE] > 0)) ? 1 : 0;
-+
-+ spin_lock_irqsave(q->queue_lock, flags);
-+ blk_start_queue(q);
-+ spin_unlock_irqrestore(q->queue_lock, flags);
-+
-+ /* The unload feature of the IDLE_IMMEDIATE command
-+ temporarily disables HD power management from spinning down
-+ the disk. Any other command will reenable HD pm, so, if
-+ there are no pending jobs on the queue, another
-+ CHECK_POWER_MODE1 command without the unload feature should do
-+ just fine. */
-+ if (!pending) {
-+ printk(KERN_DEBUG "ide_unprotect_queue(): No pending I/O, re-enabling power management..\n");
-+ memset(args, 0, sizeof(args));
-+ argbuf[0] = 0xe5; /* CHECK_POWER_MODE1 */
-+ ide_init_drive_cmd(&rq);
-+ rq.cmd_type = REQ_TYPE_ATA_TASK;
-+ rq.buffer = argbuf;
-+ rc = ide_do_drive_cmd(drive, &rq, ide_head_wait);
-+ }
-+
-+ return rc;
-+}
-+
-+int ide_protect_queue(struct request_queue *q, int unload)
-+{
-+ ide_drive_t *drive = q->queuedata;
-+ struct request rq;
-+ u8 args[7], *argbuf = args;
-+ int ret = 0;
-+ DECLARE_COMPLETION(wait);
-+
-+ memset(&rq, 0, sizeof(rq));
-+ memset(args, 0, sizeof(args));
-+
-+ if (blk_queue_stopped(q))
-+ return -EIO;
-+
-+ if (unload) {
-+ argbuf[0] = 0xe1;
-+ argbuf[1] = 0x44;
-+ argbuf[3] = 0x4c;
-+ argbuf[4] = 0x4e;
-+ argbuf[5] = 0x55;
-+ } else
-+ argbuf[0] = 0xe0;
-+
-+ /* Issue the park command & freeze */
-+ ide_init_drive_cmd(&rq);
-+
-+ rq.cmd_type = REQ_TYPE_ATA_TASK;
-+ rq.buffer = argbuf;
-+ rq.end_io_data = &wait;
-+ rq.end_io = ide_end_protect_rq;
-+
-+ ret = ide_do_drive_cmd(drive, &rq, ide_next);
-+ wait_for_completion(&wait);
-+
-+ if (ret)
-+ {
-+ printk(KERN_DEBUG "ide_protect_queue(): Warning: head NOT parked!..\n");
-+ ide_unprotect_queue(q);
-+ return ret;
-+ }
-+
-+ if (unload) {
-+ if (args[3] == 0xc4)
-+ printk(KERN_DEBUG "ide_protect_queue(): head parked..\n");
-+ else {
-+ /* error parking the head */
-+ printk(KERN_DEBUG "ide_protect_queue(): head NOT parked!..\n");
-+ ret = -EIO;
-+ ide_unprotect_queue(q);
-+ }
-+ } else
-+ printk(KERN_DEBUG "ide_protect_queue(): head park not requested, used standby!..\n");
-+
-+ return ret;
-+}
-+
-+int idedisk_issue_protect_fn(struct request_queue *q)
-+{
-+ ide_drive_t *drive = q->queuedata;
-+ int unload = q->protect_method;
-+ unsigned long flags;
-+
-+ /*
-+ * Check capability of the device -
-+ * - if "idle immediate with unload" is supported we use that, else
-+ * we use "standby immediate" and live with spinning down the drive..
-+ * (Word 84, bit 13 of IDENTIFY DEVICE data)
-+ */
-+ if (unload == 2) {
-+ unload = drive->id->cfsse & (1 << 13) ? 1 : 0;
-+ spin_lock_irqsave(q->queue_lock, flags);
-+ q->protect_method = unload;
-+ spin_unlock_irqrestore(q->queue_lock, flags);
-+ }
-+
-+ return ide_protect_queue(q, unload);
-+}
-+
-+int idedisk_issue_unprotect_fn(struct request_queue *q)
-+{
-+ return ide_unprotect_queue(q);
-+}
-+
-+/*
- * This is tightly woven into the driver->do_special can not touch.
- * DON'T do it again until a total personality rewrite is committed.
- */
-@@ -1017,6 +1156,9 @@ static void idedisk_setup (ide_drive_t *
- drive->wcache = 1;
-
- write_cache(drive, 1);
-+
-+ blk_queue_issue_protect_fn(drive->queue, idedisk_issue_protect_fn);
-+ blk_queue_issue_unprotect_fn(drive->queue, idedisk_issue_unprotect_fn);
- }
-
- static void ide_cacheflush_p(ide_drive_t *drive)
-diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c
-index aa9f5f0..e664f5c 100644
---- a/drivers/ide/ide-io.c
-+++ b/drivers/ide/ide-io.c
-@@ -1276,6 +1276,17 @@ #endif
- }
-
- /*
-+ * Don't accept a request when the queue is stopped (unless we
-+ * are resuming from suspend). Prevents existing queue entries
-+ * being processed after queue is stopped by the hard disk
-+ * protection mechanism...
-+ */
-+ if (test_bit(QUEUE_FLAG_STOPPED, &drive->queue->queue_flags) && !blk_pm_resume_request(rq)) {
-+ hwgroup->busy = 0;
-+ break;
-+ }
-+
-+ /*
- * Sanity: don't accept a request that isn't a PM request
- * if we are currently power managed. This is very important as
- * blk_stop_queue() doesn't prevent the elv_next_request()
-@@ -1773,6 +1784,9 @@ int ide_do_drive_cmd (ide_drive_t *drive
- where = ELEVATOR_INSERT_FRONT;
- rq->cmd_flags |= REQ_PREEMPT;
- }
-+ if (action == ide_next)
-+ where = ELEVATOR_INSERT_FRONT;
-+
- __elv_add_request(drive->queue, rq, where, 0);
- ide_do_request(hwgroup, IDE_NO_IRQ);
- spin_unlock_irqrestore(&ide_lock, flags);
-diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
-index a417a6f..ac5cd9c 100644
---- a/drivers/scsi/scsi_lib.c
-+++ b/drivers/scsi/scsi_lib.c
-@@ -2024,7 +2024,13 @@ EXPORT_SYMBOL(scsi_device_set_state);
- int
- scsi_device_quiesce(struct scsi_device *sdev)
- {
-+ int i;
- int err = scsi_device_set_state(sdev, SDEV_QUIESCE);
-+ for (i = 0; err && (sdev->sdev_state == SDEV_BLOCK) && (i < 100);
-+ i++) {
-+ msleep_interruptible(200);
-+ err = scsi_device_set_state(sdev, SDEV_QUIESCE);
-+ }
- if (err)
- return err;
-
-@@ -2273,3 +2279,166 @@ void scsi_kunmap_atomic_sg(void *virt)
- kunmap_atomic(virt, KM_BIO_SRC_IRQ);
- }
- EXPORT_SYMBOL(scsi_kunmap_atomic_sg);
-+
-+/*
-+ * Structure required for synchronous io completion after queue freezing
-+ */
-+struct scsi_protect_io_context_sync {
-+ struct scsi_device *sdev;
-+ int result;
-+ char *sense;
-+ struct completion *waiting;
-+};
-+
-+/*
-+ * scsi_protect_wait_done()
-+ * Command completion handler for scsi_protect_queue().
-+ *
-+ * Unable to call scsi_internal_device_block() as
-+ * scsi_end_request() already has the spinlock. So,
-+ * we put the necessary functionality inline.
-+ *
-+ * todo:
-+ * - we block the queue regardless of success and rely on the
-+ * scsi_protect_queue function to unblock if the command
-+ * failed... should we also inspect here?
-+ */
-+static void scsi_protect_wait_done(void *data, char *sense, int result, int resid)
-+{
-+ struct scsi_protect_io_context_sync *siocs = data;
-+ struct completion *waiting = siocs->waiting;
-+ struct request_queue *q = siocs->sdev->request_queue;
-+
-+ siocs->waiting = NULL;
-+ siocs->result = result;
-+ memcpy(siocs->sense, sense, SCSI_SENSE_BUFFERSIZE);
-+
-+ if (!scsi_device_set_state(siocs->sdev, SDEV_BLOCK))
-+ blk_stop_queue(q);
-+
-+ complete(waiting);
-+}
-+
-+/*
-+ * scsi_unprotect_queue()
-+ * - release the queue that was previously blocked
-+ */
-+int scsi_unprotect_queue(struct request_queue *q)
-+{
-+ struct scsi_device *sdev = q->queuedata;
-+ int rc = 0, pending = 0;
-+ u8 scsi_cmd[MAX_COMMAND_SIZE];
-+ struct scsi_sense_hdr sshdr;
-+
-+ if (sdev->sdev_state != SDEV_BLOCK)
-+ return -ENXIO;
-+
-+ /* Are there any pending jobs on the queue? */
-+ pending = ((q->rq.count[READ] > 0) || (q->rq.count[WRITE] > 0)) ? 1 : 0;
-+
-+ rc = scsi_internal_device_unblock(sdev);
-+ if (rc)
-+ return rc;
-+
-+ if (!pending) {
-+ printk(KERN_DEBUG "scsi_unprotect_queue(): No pending I/O, re-enabling power management..\n");
-+
-+ memset(scsi_cmd, 0, sizeof(scsi_cmd));
-+ scsi_cmd[0] = ATA_16;
-+ scsi_cmd[1] = (3 << 1); /* Non-data */
-+ /* scsi_cmd[2] is already 0 -- no off.line, cc, or data xfer */
-+ scsi_cmd[14] = 0xe5; /* CHECK_POWER_MODE1 */
-+
-+ /* Good values for timeout and retries? Values below
-+ from scsi_ioctl_send_command() for default case... */
-+ if (scsi_execute_req(sdev, scsi_cmd, DMA_NONE, NULL, 0, &sshdr,
-+ (10*HZ), 5))
-+ rc = -EIO;
-+ }
-+ return rc;
-+}
-+EXPORT_SYMBOL_GPL(scsi_unprotect_queue);
-+
-+/*
-+ * scsi_protect_queue()
-+ * - build and issue the park/standby command..
-+ * - queue is blocked during command completion handler
-+ */
-+int scsi_protect_queue(struct request_queue *q, int unload)
-+{
-+ struct scsi_protect_io_context_sync siocs;
-+ struct scsi_device *sdev = q->queuedata;
-+ int rc = 0;
-+ u8 args[7];
-+ u8 scsi_cmd[MAX_COMMAND_SIZE];
-+ unsigned char sense[SCSI_SENSE_BUFFERSIZE];
-+ unsigned char *desc;
-+ DECLARE_COMPLETION_ONSTACK(wait);
-+
-+ if (sdev->sdev_state != SDEV_RUNNING)
-+ return -ENXIO;
-+
-+ memset(args, 0, sizeof(args));
-+ memset(sense, 0, sizeof(sense));
-+
-+ if (unload) {
-+ args[0] = 0xe1;
-+ args[1] = 0x44;
-+ args[3] = 0x4c;
-+ args[4] = 0x4e;
-+ args[5] = 0x55;
-+ } else
-+ args[0] = 0xe0;
-+
-+ memset(scsi_cmd, 0, sizeof(scsi_cmd));
-+ scsi_cmd[0] = ATA_16;
-+ scsi_cmd[1] = (3 << 1); /* Non-data */
-+ scsi_cmd[2] = 0x20; /* no off.line, or data xfer, request cc */
-+ scsi_cmd[4] = args[1];
-+ scsi_cmd[6] = args[2];
-+ scsi_cmd[8] = args[3];
-+ scsi_cmd[10] = args[4];
-+ scsi_cmd[12] = args[5];
-+ scsi_cmd[14] = args[0];
-+ siocs.sdev = sdev;
-+ siocs.sense = sense;
-+ siocs.waiting = &wait;
-+
-+ scsi_execute_async(sdev, scsi_cmd, COMMAND_SIZE(scsi_cmd[0]),
-+ DMA_NONE, NULL, 0, 0, (10*HZ), 5,
-+ &siocs, &scsi_protect_wait_done, GFP_NOWAIT);
-+ wait_for_completion(&wait);
-+
-+ if (siocs.result != ((DRIVER_SENSE << 24) + SAM_STAT_CHECK_CONDITION)) {
-+ printk(KERN_DEBUG "scsi_protect_queue(): head NOT parked!..\n");
-+ scsi_unprotect_queue(q); /* just in case we still managed to block */
-+ rc = -EIO;
-+ goto out;
-+ }
-+
-+ desc = sense + 8;
-+
-+ /* Retrieve data from check condition */
-+ args[1] = desc[3];
-+ args[2] = desc[5];
-+ args[3] = desc[7];
-+ args[4] = desc[9];
-+ args[5] = desc[11];
-+ args[0] = desc[13];
-+
-+ if (unload) {
-+ if (args[3] == 0xc4)
-+ printk(KERN_DEBUG "scsi_protect_queue(): head parked..\n");
-+ else {
-+ /* error parking the head */
-+ printk(KERN_DEBUG "scsi_protect_queue(): head NOT parked!..\n");
-+ rc = -EIO;
-+ scsi_unprotect_queue(q);
-+ }
-+ } else
-+ printk(KERN_DEBUG "scsi_protect_queue(): head park not requested, used standby!..\n");
-+
-+out:
-+ return rc;
-+}
-+EXPORT_SYMBOL_GPL(scsi_protect_queue);
-diff --git a/include/linux/ata.h b/include/linux/ata.h
-index c043c1c..618906f 100644
---- a/include/linux/ata.h
-+++ b/include/linux/ata.h
-@@ -344,6 +344,7 @@ #define ata_id_is_ata(id) (((id)[0] & (1
- #define ata_id_rahead_enabled(id) ((id)[85] & (1 << 6))
- #define ata_id_wcache_enabled(id) ((id)[85] & (1 << 5))
- #define ata_id_hpa_enabled(id) ((id)[85] & (1 << 10))
-+#define ata_id_has_unload(id) ((id)[84] & (1 << 13))
- #define ata_id_has_fua(id) ((id)[84] & (1 << 6))
- #define ata_id_has_flush(id) ((id)[83] & (1 << 12))
- #define ata_id_has_flush_ext(id) ((id)[83] & (1 << 13))
-diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
-index d26bbb0..2fa892d 100644
---- a/include/linux/blkdev.h
-+++ b/include/linux/blkdev.h
-@@ -347,6 +347,8 @@ typedef int (merge_bvec_fn) (struct requ
- typedef int (issue_flush_fn) (struct request_queue *, struct gendisk *, sector_t *);
- typedef void (prepare_flush_fn) (struct request_queue *, struct request *);
- typedef void (softirq_done_fn)(struct request *);
-+typedef int (issue_protect_fn) (struct request_queue *);
-+typedef int (issue_unprotect_fn) (struct request_queue *);
-
- enum blk_queue_state {
- Queue_down,
-@@ -384,6 +386,8 @@ struct request_queue
- issue_flush_fn *issue_flush_fn;
- prepare_flush_fn *prepare_flush_fn;
- softirq_done_fn *softirq_done_fn;
-+ issue_protect_fn *issue_protect_fn;
-+ issue_unprotect_fn *issue_unprotect_fn;
-
- /*
- * Dispatch queue sorting
-@@ -399,6 +403,14 @@ struct request_queue
- unsigned long unplug_delay; /* After this many jiffies */
- struct work_struct unplug_work;
-
-+ /*
-+ * Auto-unfreeze state
-+ */
-+ struct timer_list unfreeze_timer;
-+ int max_unfreeze; /* At most this many seconds */
-+ struct work_struct unfreeze_work;
-+ int protect_method;
-+
- struct backing_dev_info backing_dev_info;
-
- /*
-@@ -774,6 +786,8 @@ extern int blk_do_ordered(struct request
- extern unsigned blk_ordered_cur_seq(struct request_queue *);
- extern unsigned blk_ordered_req_seq(struct request *);
- extern void blk_ordered_complete_seq(struct request_queue *, unsigned, int);
-+extern void blk_queue_issue_protect_fn(struct request_queue *, issue_protect_fn *);
-+extern void blk_queue_issue_unprotect_fn(struct request_queue *, issue_unprotect_fn *);
-
- extern int blk_rq_map_sg(struct request_queue *, struct request *, struct scatterlist *);
- extern void blk_dump_rq_flags(struct request *, char *);
-diff --git a/include/linux/ide.h b/include/linux/ide.h
-index 20528c0..ee846d5 100644
---- a/include/linux/ide.h
-+++ b/include/linux/ide.h
-@@ -1110,6 +1110,7 @@ extern u64 ide_get_error_location(ide_dr
- */
- typedef enum {
- ide_wait, /* insert rq at end of list, and wait for it */
-+ ide_next, /* insert rq immediately after current request */
- ide_preempt, /* insert rq in front of current request */
- ide_head_wait, /* insert rq in front of current request and wait for it */
- ide_end /* insert rq at end of list, but don't wait for it */
-
diff --git a/sys-kernel/thinkpad-sources/files/2.6.23/combined-2.6.23-cph.patch b/sys-kernel/thinkpad-sources/files/2.6.23/combined-2.6.23-cph.patch
deleted file mode 100644
index 28af1a6..0000000
--- a/sys-kernel/thinkpad-sources/files/2.6.23/combined-2.6.23-cph.patch
+++ /dev/null
@@ -1,620 +0,0 @@
-diff -ruNp linux-2.6.23.orig/Documentation/scsi/link_power_management_policy.txt linux-2.6.23/Documentation/scsi/link_power_management_policy.txt
---- linux-2.6.23.orig/Documentation/scsi/link_power_management_policy.txt 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.23/Documentation/scsi/link_power_management_policy.txt 2007-10-15 21:34:38.000000000 -0400
-@@ -0,0 +1,19 @@
-+This parameter allows the user to set the link (interface) power management.
-+There are 3 possible options:
-+
-+Value Effect
-+----------------------------------------------------------------------------
-+min_power Tell the controller to try to make the link use the
-+ least possible power when possible. This may
-+ sacrifice some performance due to increased latency
-+ when coming out of lower power states.
-+
-+max_performance Generally, this means no power management. Tell
-+ the controller to have performance be a priority
-+ over power management.
-+
-+medium_power Tell the controller to enter a lower power state
-+ when possible, but do not enter the lowest power
-+ state, thus improving latency over min_power setting.
-+
-+
-diff -ruNp linux-2.6.23.orig/drivers/ata/ahci.c linux-2.6.23/drivers/ata/ahci.c
---- linux-2.6.23.orig/drivers/ata/ahci.c 2007-10-09 16:31:38.000000000 -0400
-+++ linux-2.6.23/drivers/ata/ahci.c 2007-10-15 21:35:48.000000000 -0400
-@@ -48,6 +48,9 @@
- #define DRV_NAME "ahci"
- #define DRV_VERSION "2.3"
-
-+static int ahci_enable_alpm(struct ata_port *ap,
-+ enum link_pm policy);
-+static int ahci_disable_alpm(struct ata_port *ap);
-
- enum {
- AHCI_PCI_BAR = 5,
-@@ -98,6 +101,7 @@ enum {
- /* HOST_CAP bits */
- HOST_CAP_SSC = (1 << 14), /* Slumber capable */
- HOST_CAP_CLO = (1 << 24), /* Command List Override support */
-+ HOST_CAP_ALPM = (1 << 26), /* Aggressive Link PM support */
- HOST_CAP_SSS = (1 << 27), /* Staggered Spin-up */
- HOST_CAP_SNTF = (1 << 29), /* SNotification register */
- HOST_CAP_NCQ = (1 << 30), /* Native Command Queueing */
-@@ -153,6 +157,8 @@ enum {
- PORT_IRQ_PIOS_FIS | PORT_IRQ_D2H_REG_FIS,
-
- /* PORT_CMD bits */
-+ PORT_CMD_ASP = (1 << 27), /* Aggressive Slumber/Partial */
-+ PORT_CMD_ALPE = (1 << 26), /* Aggressive Link PM enable */
- PORT_CMD_ATAPI = (1 << 24), /* Device is ATAPI */
- PORT_CMD_LIST_ON = (1 << 15), /* cmd list DMA engine running */
- PORT_CMD_FIS_ON = (1 << 14), /* FIS DMA engine running */
-@@ -175,6 +181,7 @@ enum {
- AHCI_FLAG_32BIT_ONLY = (1 << 28), /* force 32bit */
- AHCI_FLAG_MV_PATA = (1 << 29), /* PATA port */
- AHCI_FLAG_NO_MSI = (1 << 30), /* no PCI MSI */
-+ AHCI_FLAG_NO_HOTPLUG = (1 << 31), /* ignore PxSERR.DIAG.N */
-
- AHCI_FLAG_COMMON = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
- ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA |
-@@ -215,6 +222,7 @@ struct ahci_port_priv {
- unsigned int ncq_saw_d2h:1;
- unsigned int ncq_saw_dmas:1;
- unsigned int ncq_saw_sdb:1;
-+ u32 intr_mask; /* interrupts to enable */
- };
-
- static int ahci_scr_read(struct ata_port *ap, unsigned int sc_reg, u32 *val);
-@@ -242,6 +250,11 @@ static int ahci_pci_device_suspend(struc
- static int ahci_pci_device_resume(struct pci_dev *pdev);
- #endif
-
-+static struct class_device_attribute *ahci_shost_attrs[] = {
-+ &class_device_attr_link_power_management_policy,
-+ NULL
-+};
-+
- static struct scsi_host_template ahci_sht = {
- .module = THIS_MODULE,
- .name = DRV_NAME,
-@@ -259,6 +272,7 @@ static struct scsi_host_template ahci_sh
- .slave_configure = ata_scsi_slave_config,
- .slave_destroy = ata_scsi_slave_destroy,
- .bios_param = ata_std_bios_param,
-+ .shost_attrs = ahci_shost_attrs,
- };
-
- static const struct ata_port_operations ahci_ops = {
-@@ -290,6 +304,8 @@ static const struct ata_port_operations
- .port_suspend = ahci_port_suspend,
- .port_resume = ahci_port_resume,
- #endif
-+ .enable_pm = ahci_enable_alpm,
-+ .disable_pm = ahci_disable_alpm,
-
- .port_start = ahci_port_start,
- .port_stop = ahci_port_stop,
-@@ -778,6 +794,156 @@ static void ahci_power_up(struct ata_por
- writel(cmd | PORT_CMD_ICC_ACTIVE, port_mmio + PORT_CMD);
- }
-
-+static int ahci_disable_alpm(struct ata_port *ap)
-+{
-+ void __iomem *port_mmio = ahci_port_base(ap);
-+ u32 cmd, scontrol;
-+ struct ahci_port_priv *pp = ap->private_data;
-+
-+ /*
-+ * disable Interface Power Management State Transitions
-+ * This is accomplished by setting bits 8:11 of the
-+ * SATA Control register
-+ */
-+ scontrol = readl(port_mmio + PORT_SCR_CTL);
-+ scontrol |= (0x3 << 8);
-+ writel(scontrol, port_mmio + PORT_SCR_CTL);
-+
-+ /* get the existing command bits */
-+ cmd = readl(port_mmio + PORT_CMD);
-+
-+ /* disable ALPM and ASP */
-+ cmd &= ~PORT_CMD_ASP;
-+ cmd &= ~PORT_CMD_ALPE;
-+
-+ /* force the interface back to active */
-+ cmd |= PORT_CMD_ICC_ACTIVE;
-+
-+ /* write out new cmd value */
-+ writel(cmd, port_mmio + PORT_CMD);
-+ cmd = readl(port_mmio + PORT_CMD);
-+
-+ /* wait 10ms to be sure we've come out of any low power state */
-+ msleep(10);
-+
-+ /* clear out any PhyRdy stuff from interrupt status */
-+ writel(PORT_IRQ_PHYRDY, port_mmio + PORT_IRQ_STAT);
-+
-+ /* go ahead and clean out PhyRdy Change from Serror too */
-+ ahci_scr_write(ap, SCR_ERROR, ((1 << 16) | (1 << 18)));
-+
-+ /*
-+ * Clear flag to indicate that we should ignore all PhyRdy
-+ * state changes
-+ */
-+ ap->flags &= ~AHCI_FLAG_NO_HOTPLUG;
-+
-+ /*
-+ * Enable interrupts on Phy Ready.
-+ */
-+ pp->intr_mask |= PORT_IRQ_PHYRDY;
-+ writel(pp->intr_mask, port_mmio + PORT_IRQ_MASK);
-+
-+ /*
-+ * don't change the link pm policy - we can be called
-+ * just to turn of link pm temporarily
-+ */
-+ return 0;
-+}
-+
-+static int ahci_enable_alpm(struct ata_port *ap,
-+ enum link_pm policy)
-+{
-+ struct ahci_host_priv *hpriv = ap->host->private_data;
-+ void __iomem *port_mmio = ahci_port_base(ap);
-+ u32 cmd, scontrol, sstatus;
-+ struct ahci_port_priv *pp = ap->private_data;
-+ u32 asp;
-+
-+ /* Make sure the host is capable of link power management */
-+ if (!(hpriv->cap & HOST_CAP_ALPM)) {
-+ ap->pm_policy = NOT_AVAILABLE;
-+ return -EINVAL;
-+ }
-+
-+ /* make sure we have a device attached */
-+ sstatus = readl(port_mmio + PORT_SCR_STAT);
-+ if (!(sstatus & 0xf00)) {
-+ ap->pm_policy = NOT_AVAILABLE;
-+ return -EINVAL;
-+ }
-+
-+ switch (policy) {
-+ case MAX_PERFORMANCE:
-+ case NOT_AVAILABLE:
-+ /*
-+ * if we came here with NOT_AVAILABLE,
-+ * it just means this is the first time we
-+ * have tried to enable - default to max performance,
-+ * and let the user go to lower power modes on request.
-+ */
-+ ahci_disable_alpm(ap);
-+ ap->pm_policy = MAX_PERFORMANCE;
-+ return 0;
-+ case MIN_POWER:
-+ /* configure HBA to enter SLUMBER */
-+ asp = PORT_CMD_ASP;
-+ break;
-+ case MEDIUM_POWER:
-+ /* configure HBA to enter PARTIAL */
-+ asp = 0;
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-+ ap->pm_policy = policy;
-+
-+ /*
-+ * Disable interrupts on Phy Ready. This keeps us from
-+ * getting woken up due to spurious phy ready interrupts
-+ * TBD - Hot plug should be done via polling now, is
-+ * that even supported?
-+ */
-+ pp->intr_mask &= ~PORT_IRQ_PHYRDY;
-+ writel(pp->intr_mask, port_mmio + PORT_IRQ_MASK);
-+
-+ /*
-+ * Set a flag to indicate that we should ignore all PhyRdy
-+ * state changes since these can happen now whenever we
-+ * change link state
-+ */
-+ ap->flags |= AHCI_FLAG_NO_HOTPLUG;
-+
-+ /* get the existing command bits */
-+ cmd = readl(port_mmio + PORT_CMD);
-+
-+ /*
-+ * enable Interface Power Management State Transitions
-+ * This is accomplished by clearing bits 8:11 of the
-+ * SATA Control register
-+ */
-+ scontrol = readl(port_mmio + PORT_SCR_CTL);
-+ scontrol &= ~(0x3 << 8);
-+ writel(scontrol, port_mmio + PORT_SCR_CTL);
-+
-+ /*
-+ * Set ASP based on Policy
-+ */
-+ cmd |= asp;
-+
-+ /*
-+ * Setting this bit will instruct the HBA to aggressively
-+ * enter a lower power link state when it's appropriate and
-+ * based on the value set above for ASP
-+ */
-+ cmd |= PORT_CMD_ALPE;
-+
-+ /* write out new cmd value */
-+ writel(cmd, port_mmio + PORT_CMD);
-+ cmd = readl(port_mmio + PORT_CMD);
-+ return 0;
-+}
-+
- #ifdef CONFIG_PM
- static void ahci_power_down(struct ata_port *ap)
- {
-@@ -1355,6 +1521,17 @@ static void ahci_port_intr(struct ata_po
- status = readl(port_mmio + PORT_IRQ_STAT);
- writel(status, port_mmio + PORT_IRQ_STAT);
-
-+ /* If we are getting PhyRdy, this is
-+ * just a power state change, we should
-+ * clear out this, plus the PhyRdy/Comm
-+ * Wake bits from Serror
-+ */
-+ if ((ap->flags & AHCI_FLAG_NO_HOTPLUG) &&
-+ (status & PORT_IRQ_PHYRDY)) {
-+ status &= ~PORT_IRQ_PHYRDY;
-+ ahci_scr_write(ap, SCR_ERROR, ((1 << 16) | (1 << 18)));
-+ }
-+
- if (unlikely(status & PORT_IRQ_ERROR)) {
- ahci_error_intr(ap, status);
- return;
-@@ -1520,6 +1697,7 @@ static void ahci_thaw(struct ata_port *a
- void __iomem *mmio = ap->host->iomap[AHCI_PCI_BAR];
- void __iomem *port_mmio = ahci_port_base(ap);
- u32 tmp;
-+ struct ahci_port_priv *pp = ap->private_data;
-
- /* clear IRQ */
- tmp = readl(port_mmio + PORT_IRQ_STAT);
-@@ -1527,7 +1705,7 @@ static void ahci_thaw(struct ata_port *a
- writel(1 << ap->port_no, mmio + HOST_IRQ_STAT);
-
- /* turn IRQ back on */
-- writel(DEF_PORT_IRQ, port_mmio + PORT_IRQ_MASK);
-+ writel(pp->intr_mask, port_mmio + PORT_IRQ_MASK);
- }
-
- static void ahci_error_handler(struct ata_port *ap)
-@@ -1681,6 +1859,12 @@ static int ahci_port_start(struct ata_po
- pp->cmd_tbl = mem;
- pp->cmd_tbl_dma = mem_dma;
-
-+ /*
-+ * Save off initial list of interrupts to be enabled.
-+ * This could be changed later
-+ */
-+ pp->intr_mask = DEF_PORT_IRQ;
-+
- ap->private_data = pp;
-
- /* engage engines, captain */
-@@ -1854,6 +2038,9 @@ static int ahci_init_one(struct pci_dev
- struct ata_port *ap = host->ports[i];
- void __iomem *port_mmio = ahci_port_base(ap);
-
-+ /* set initial link pm policy */
-+ ap->pm_policy = NOT_AVAILABLE;
-+
- /* standard SATA port setup */
- if (hpriv->port_map & (1 << i))
- ap->ioaddr.cmd_addr = port_mmio;
-diff -ruNp linux-2.6.23.orig/drivers/ata/libata-core.c linux-2.6.23/drivers/ata/libata-core.c
---- linux-2.6.23.orig/drivers/ata/libata-core.c 2007-10-09 16:31:38.000000000 -0400
-+++ linux-2.6.23/drivers/ata/libata-core.c 2007-10-15 21:34:39.000000000 -0400
-@@ -1994,6 +1994,9 @@ int ata_dev_configure(struct ata_device
- if (dev->flags & ATA_DFLAG_LBA48)
- dev->max_sectors = ATA_MAX_SECTORS_LBA48;
-
-+ if (ata_id_has_hipm(dev->id) || ata_id_has_dipm(dev->id))
-+ dev->flags |= ATA_DFLAG_IPM;
-+
- if (dev->horkage & ATA_HORKAGE_DIAGNOSTIC) {
- /* Let the user know. We don't want to disallow opens for
- rescue purposes, or in case the vendor is just a blithering
-@@ -2019,6 +2022,13 @@ int ata_dev_configure(struct ata_device
- dev->max_sectors = min_t(unsigned int, ATA_MAX_SECTORS_128,
- dev->max_sectors);
-
-+ if (ata_dev_blacklisted(dev) & ATA_HORKAGE_IPM) {
-+ dev->horkage |= ATA_HORKAGE_IPM;
-+
-+ /* reset link pm_policy for this port to no pm */
-+ ap->pm_policy = MAX_PERFORMANCE;
-+ }
-+
- if (ap->ops->dev_config)
- ap->ops->dev_config(dev);
-
-@@ -5892,6 +5902,27 @@ int ata_flush_cache(struct ata_device *d
- return 0;
- }
-
-+static void ata_host_disable_link_pm(struct ata_host *host)
-+{
-+ int i;
-+
-+ for (i = 0; i < host->n_ports; i++) {
-+ struct ata_port *ap = host->ports[i];
-+ if (ap->ops->disable_pm)
-+ ap->ops->disable_pm(ap);
-+ }
-+}
-+
-+static void ata_host_enable_link_pm(struct ata_host *host)
-+{
-+ int i;
-+
-+ for (i = 0; i < host->n_ports; i++) {
-+ struct ata_port *ap = host->ports[i];
-+ ata_scsi_set_link_pm_policy(ap, ap->pm_policy);
-+ }
-+}
-+
- #ifdef CONFIG_PM
- static int ata_host_request_pm(struct ata_host *host, pm_message_t mesg,
- unsigned int action, unsigned int ehi_flags,
-@@ -5959,6 +5990,12 @@ int ata_host_suspend(struct ata_host *ho
- {
- int rc;
-
-+ /*
-+ * disable link pm on all ports before requesting
-+ * any pm activity
-+ */
-+ ata_host_disable_link_pm(host);
-+
- rc = ata_host_request_pm(host, mesg, 0, ATA_EHI_QUIET, 1);
- if (rc == 0)
- host->dev->power.power_state = mesg;
-@@ -5981,6 +6018,9 @@ void ata_host_resume(struct ata_host *ho
- ata_host_request_pm(host, PMSG_ON, ATA_EH_SOFTRESET,
- ATA_EHI_NO_AUTOPSY | ATA_EHI_QUIET, 0);
- host->dev->power.power_state = PMSG_ON;
-+
-+ /* reenable link pm */
-+ ata_host_enable_link_pm(host);
- }
- #endif
-
-@@ -6478,6 +6518,7 @@ int ata_host_register(struct ata_host *h
- struct ata_port *ap = host->ports[i];
-
- ata_scsi_scan_host(ap, 1);
-+ ata_scsi_set_link_pm_policy(ap, ap->pm_policy);
- }
-
- return 0;
-diff -ruNp linux-2.6.23.orig/drivers/ata/libata-scsi.c linux-2.6.23/drivers/ata/libata-scsi.c
---- linux-2.6.23.orig/drivers/ata/libata-scsi.c 2007-10-09 16:31:38.000000000 -0400
-+++ linux-2.6.23/drivers/ata/libata-scsi.c 2007-10-15 21:34:39.000000000 -0400
-@@ -111,6 +111,78 @@ static struct scsi_transport_template at
- };
-
-
-+static const struct {
-+ enum link_pm value;
-+ char *name;
-+} link_pm_policy[] = {
-+ { NOT_AVAILABLE, "max_performance" },
-+ { MIN_POWER, "min_power" },
-+ { MAX_PERFORMANCE, "max_performance" },
-+ { MEDIUM_POWER, "medium_power" },
-+};
-+
-+const char *ata_scsi_link_pm_policy(enum link_pm policy)
-+{
-+ int i;
-+ char *name = NULL;
-+
-+ for (i = 0; i < ARRAY_SIZE(link_pm_policy); i++) {
-+ if (link_pm_policy[i].value == policy) {
-+ name = link_pm_policy[i].name;
-+ break;
-+ }
-+ }
-+ return name;
-+}
-+
-+static ssize_t store_link_pm_policy(struct class_device *class_dev,
-+ const char *buf, size_t count)
-+{
-+ struct Scsi_Host *shost = class_to_shost(class_dev);
-+ struct ata_port *ap = ata_shost_to_port(shost);
-+ enum link_pm policy = 0;
-+ int i;
-+
-+ /*
-+ * we are skipping array location 0 on purpose - this
-+ * is because a value of NOT_AVAILABLE is displayed
-+ * to the user as max_performance, but when the user
-+ * writes "max_performance", they actually want the
-+ * value to match MAX_PERFORMANCE.
-+ */
-+ for (i = 1; i < ARRAY_SIZE(link_pm_policy); i++) {
-+ const int len = strlen(link_pm_policy[i].name);
-+ if (strncmp(link_pm_policy[i].name, buf, len) == 0 &&
-+ buf[len] == '\n') {
-+ policy = link_pm_policy[i].value;
-+ break;
-+ }
-+ }
-+ if (!policy)
-+ return -EINVAL;
-+
-+ if (ata_scsi_set_link_pm_policy(ap, policy))
-+ return -EINVAL;
-+ return count;
-+}
-+
-+static ssize_t
-+show_link_pm_policy(struct class_device *class_dev, char *buf)
-+{
-+ struct Scsi_Host *shost = class_to_shost(class_dev);
-+ struct ata_port *ap = ata_shost_to_port(shost);
-+ const char *policy =
-+ ata_scsi_link_pm_policy(ap->pm_policy);
-+
-+ if (!policy)
-+ return -EINVAL;
-+
-+ return snprintf(buf, 23, "%s\n", policy);
-+}
-+CLASS_DEVICE_ATTR(link_power_management_policy, S_IRUGO | S_IWUSR,
-+ show_link_pm_policy, store_link_pm_policy);
-+EXPORT_SYMBOL_GPL(class_device_attr_link_power_management_policy);
-+
- static void ata_scsi_invalid_field(struct scsi_cmnd *cmd,
- void (*done)(struct scsi_cmnd *))
- {
-@@ -2905,6 +2977,47 @@ void ata_scsi_simulate(struct ata_device
- }
- }
-
-+int ata_scsi_set_link_pm_policy(struct ata_port *ap,
-+ enum link_pm policy)
-+{
-+ int rc = -EINVAL;
-+ int i;
-+
-+ /*
-+ * make sure no broken devices are on this port,
-+ * and that all devices support interface power
-+ * management
-+ */
-+ for (i = 0; i < ATA_MAX_DEVICES; i++) {
-+ struct ata_device *dev = &ap->device[i];
-+
-+ /* only check drives which exist */
-+ if (!ata_dev_enabled(dev))
-+ continue;
-+
-+ /*
-+ * do we need to handle the case where we've hotplugged
-+ * a broken drive (since hotplug and ALPM are mutually
-+ * exclusive) ?
-+ *
-+ * If so, if we detect a broken drive on a port with
-+ * alpm already enabled, then we should reset the policy
-+ * to off for the entire port.
-+ */
-+ if ((dev->horkage & ATA_HORKAGE_IPM) ||
-+ !(dev->flags & ATA_DFLAG_IPM)) {
-+ ata_dev_printk(dev, KERN_ERR,
-+ "Unable to set Link PM policy\n");
-+ ap->pm_policy = MAX_PERFORMANCE;
-+ }
-+ }
-+
-+ if (ap->ops->enable_pm)
-+ rc = ap->ops->enable_pm(ap, policy);
-+ return rc;
-+}
-+EXPORT_SYMBOL_GPL(ata_scsi_set_link_pm_policy);
-+
- int ata_scsi_add_hosts(struct ata_host *host, struct scsi_host_template *sht)
- {
- int i, rc;
-diff -ruNp linux-2.6.23.orig/include/linux/ata.h linux-2.6.23/include/linux/ata.h
---- linux-2.6.23.orig/include/linux/ata.h 2007-10-09 16:31:38.000000000 -0400
-+++ linux-2.6.23/include/linux/ata.h 2007-10-15 21:34:39.000000000 -0400
-@@ -368,6 +368,12 @@ struct ata_taskfile {
- ((u64) (id)[(n) + 0]) )
-
- #define ata_id_cdb_intr(id) (((id)[0] & 0x60) == 0x20)
-+#define ata_id_has_hipm(id) \
-+ ( (((id)[76] != 0x0000) && ((id)[76] != 0xffff)) && \
-+ ((id)[76] & (1 << 9)) )
-+#define ata_id_has_dipm(id) \
-+ ( (((id)[76] != 0x0000) && ((id)[76] != 0xffff)) && \
-+ ((id)[78] & (1 << 3)) )
-
- static inline unsigned int ata_id_major_version(const u16 *id)
- {
-diff -ruNp linux-2.6.23.orig/include/linux/libata.h linux-2.6.23/include/linux/libata.h
---- linux-2.6.23.orig/include/linux/libata.h 2007-10-09 16:31:38.000000000 -0400
-+++ linux-2.6.23/include/linux/libata.h 2007-10-15 21:35:14.000000000 -0400
-@@ -139,7 +139,8 @@ enum {
- ATA_DFLAG_FLUSH_EXT = (1 << 4), /* do FLUSH_EXT instead of FLUSH */
- ATA_DFLAG_ACPI_PENDING = (1 << 5), /* ACPI resume action pending */
- ATA_DFLAG_ACPI_FAILED = (1 << 6), /* ACPI on devcfg has failed */
-- ATA_DFLAG_CFG_MASK = (1 << 8) - 1,
-+ ATA_DFLAG_IPM = (1 << 7), /* device supports IPM */
-+ ATA_DFLAG_CFG_MASK = (1 << 12) - 1,
-
- ATA_DFLAG_PIO = (1 << 8), /* device limited to PIO mode */
- ATA_DFLAG_NCQ_OFF = (1 << 9), /* device limited to non-NCQ mode */
-@@ -304,6 +305,7 @@ enum {
- ATA_HORKAGE_NONCQ = (1 << 2), /* Don't use NCQ */
- ATA_HORKAGE_MAX_SEC_128 = (1 << 3), /* Limit max sects to 128 */
- ATA_HORKAGE_BROKEN_HPA = (1 << 4), /* Broken HPA */
-+ ATA_HORKAGE_IPM = (1 << 5), /* LPM problems */
- };
-
- enum hsm_task_states {
-@@ -342,6 +344,18 @@ typedef int (*ata_reset_fn_t)(struct ata
- unsigned long deadline);
- typedef void (*ata_postreset_fn_t)(struct ata_port *ap, unsigned int *classes);
-
-+/*
-+ * host pm policy: If you alter this, you also need to alter scsi_sysfs.c
-+ * (for the ascii descriptions)
-+ */
-+enum link_pm {
-+ NOT_AVAILABLE,
-+ MIN_POWER,
-+ MAX_PERFORMANCE,
-+ MEDIUM_POWER,
-+};
-+extern struct class_device_attribute class_device_attr_link_power_management_policy;
-+
- struct ata_ioports {
- void __iomem *cmd_addr;
- void __iomem *data_addr;
-@@ -568,6 +582,7 @@ struct ata_port {
-
- pm_message_t pm_mesg;
- int *pm_result;
-+ enum link_pm pm_policy;
-
- struct timer_list fastdrain_timer;
- unsigned long fastdrain_cnt;
-@@ -633,7 +648,8 @@ struct ata_port_operations {
-
- int (*port_suspend) (struct ata_port *ap, pm_message_t mesg);
- int (*port_resume) (struct ata_port *ap);
--
-+ int (*enable_pm) (struct ata_port *ap, enum link_pm policy);
-+ int (*disable_pm) (struct ata_port *ap);
- int (*port_start) (struct ata_port *ap);
- void (*port_stop) (struct ata_port *ap);
-
-@@ -840,7 +856,7 @@ extern int ata_cable_40wire(struct ata_p
- extern int ata_cable_80wire(struct ata_port *ap);
- extern int ata_cable_sata(struct ata_port *ap);
- extern int ata_cable_unknown(struct ata_port *ap);
--
-+extern int ata_scsi_set_link_pm_policy(struct ata_port *ap, enum link_pm);
- /*
- * Timing helpers
- */
-@@ -869,7 +885,6 @@ enum {
- ATA_TIMING_CYCLE | ATA_TIMING_UDMA,
- };
-
--
- #ifdef CONFIG_PCI
- struct pci_bits {
- unsigned int reg; /* PCI config register to read */
diff --git a/sys-kernel/thinkpad-sources/files/2.6.23/input-unknown_keycodes-for-2.6.23.patch b/sys-kernel/thinkpad-sources/files/2.6.23/input-unknown_keycodes-for-2.6.23.patch
deleted file mode 100644
index 0737d6f..0000000
--- a/sys-kernel/thinkpad-sources/files/2.6.23/input-unknown_keycodes-for-2.6.23.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- linux/drivers/input/input.c 2006-03-05 20:07:54.000000000 +0100
-+++ linux/drivers/input/input.c 2006-03-02 22:18:37.000000000 +0100
-@@ -71,7 +71,7 @@
-
- case EV_KEY:
-
-- if (code > KEY_MAX || !test_bit(code, dev->keybit) || !!test_bit(code, dev->key) == value)
-+ if (code > KEY_MAX || !!test_bit(code, dev->key) == value)
- return;
-
- if (value == 2)
diff --git a/sys-kernel/thinkpad-sources/files/2.6.23/disk-protect-for-2.6.23.patch b/sys-kernel/thinkpad-sources/files/2.6.24/disk-protect-for-2.6.24.patch
index d9d5385..e9d516b 100644
--- a/sys-kernel/thinkpad-sources/files/2.6.23/disk-protect-for-2.6.23.patch
+++ b/sys-kernel/thinkpad-sources/files/2.6.24/disk-protect-for-2.6.24.patch
@@ -1,108 +1,18 @@
-diff --git a/Documentation/block/disk-protection.txt b/Documentation/block/disk-protection.txt
-new file mode 100644
-index 0000000..508cc5b
---- /dev/null
-+++ b/Documentation/block/disk-protection.txt
-@@ -0,0 +1,79 @@
-+Hard disk protection
-+====================
-+
-+
-+Intro
-+-----
-+ATA/ATAPI-7 specifies the IDLE IMMEDIATE command with UNLOAD FEATURE.
-+Issuing this command should cause the drive to switch to idle mode and
-+unload disk heads. This feature is being used in modern laptops in
-+conjunction with accelerometers and appropriate software to implement
-+a shock protection facility. The idea is to stop all I/O operations on
-+the internal hard drive and park its heads on the ramp when critical
-+situations are anticipated. The desire to have such a feature
-+available on GNU/Linux systems has been the original motivation to
-+implement a generic disk parking interface in the Linux kernel.
-+
-+
-+The interface
-+-------------
-+The interface works as follows: Writing an integer value to
-+/sys/block/*/queue/protect will park the respective drive and freeze
-+the block layer queue for the specified number of seconds. When the
-+timeout expires and no further disk park request has been issued in
-+the meantime, the queue is unfrozen and accumulated I/O operations are
-+performed.
-+
-+IMPORTANT NOTE:
-+Not all ATA drives implement IDLE IMMEDIATE with UNLOAD FEATURE and
-+quite a few of those that do so, don't report this capability as
-+described in the specs. When a disk park has been requested through
-+sysfs as described above, the kernel will try to determine if the
-+drive supports the UNLOAD FEATURE by default. The kernel will only
-+rely on the IDLE IMMEDIATE with UNLOAD FEATURE command if it is
-+convinced that this command is actually supported by the disk drive;
-+otherwise, it will fall back to STANDBY IMMEDIATE. Resuming from the
-+latter will take much longer and it is generally more likely to have a
-+negative impact on the drive's lifetime due to the inclease of spin
-+down and up cycles. If you want to use this interface in a shock
-+protection framework and you know that your drive does indeed support
-+the IDLE IMMEDIATE with UNLOAD FEATURE command despite not saying so,
-+you can force the kernel to issue that command by doing the following
-+on the command line:
-+# echo -n unload > /sys/block/sda/queue/protect_method
-+(replace sda by the drive identifier as appropriate).
-+
-+/sys/block/*/queue/protect_method accepts auto, unload and standby
-+respectively. Reading from protect_method shows the available options
-+surrounding the active one with brackets. When auto is active, this
-+will change to whatever the kernel sees fit after the next disk park
-+command has been issued.
-+
-+
-+References
-+----------
-+
-+There are several laptops from different brands featuring shock
-+protection capabilities. As manufacturers have refused to support open
-+source development of the required software components so far, Linux
-+support for shock protection varies considerably between different
-+hardware implementations. Ideally, this section should contain a list
-+of poiters at different projects aiming at an implementation of shock
-+protection on different systeems. Unfortunately, I only know of a
-+single project which, although still considered experimental, is fit
-+for use. Please feel free to add projects that have been the victims
-+of my ignorance.
-+
-+- http://www.thinkwiki.org/wiki/HDAPS
-+ See this page for information about Linux support of the hard disk
-+ active protection syystem as implemented in IBM/Lenovo Thinkpads.
-+
-+
-+CREDITS
-+-------
-+
-+The patch to implement the interface described in this file has
-+originally been published by Jon Escombe <lists-Xbpc2PeERmvQXOPxS62xeg@public.gmane.org>.
-+
-+
-+05 Dec 2006, Elias Oltmanns <eo-oA28OIkTjSVZXbeN9DUtxg@public.gmane.org>
-diff --git a/block/ll_rw_blk.c b/block/ll_rw_blk.c
-index ed39313..cc0e227 100644
---- a/block/ll_rw_blk.c
-+++ b/block/ll_rw_blk.c
-@@ -38,10 +38,14 @@ #include <scsi/scsi_cmnd.h>
+diff -Naur a/block/ll_rw_blk.c b/block/ll_rw_blk.c
+--- a/block/ll_rw_blk.c 2008-01-20 14:45:41.000000000 +0100
++++ b/block/ll_rw_blk.c 2008-01-20 14:47:50.000000000 +0100
+@@ -39,6 +39,10 @@
static void blk_unplug_work(struct work_struct *work);
static void blk_unplug_timeout(unsigned long data);
+static void blk_unfreeze_work(struct work_struct *work);
+static void blk_unfreeze_timeout(unsigned long data);
- static void drive_stat_acct(struct request *rq, int nr_sectors, int new_io);
- static void init_request_from_bio(struct request *req, struct bio *bio);
- static int __make_request(struct request_queue *q, struct bio *bio);
- static struct io_context *current_io_context(gfp_t gfp_flags, int node);
+static int blk_protect_register(struct request_queue *q);
+static void blk_protect_unregister(struct request_queue *q);
-
- /*
- * For the allocated request tables
-@@ -227,6 +231,16 @@ void blk_queue_make_request(struct reque
+ static void drive_stat_acct(struct request *rq, int new_io);
+ static void init_request_from_bio(struct request *req, struct bio *bio);
+ static int __make_request(struct request_queue *q, struct bio *bio);
+@@ -231,6 +235,16 @@
q->unplug_timer.function = blk_unplug_timeout;
q->unplug_timer.data = (unsigned long)q;
@@ -119,9 +29,9 @@ index ed39313..cc0e227 100644
/*
* by default assume old behaviour and bounce for any highmem page
*/
-@@ -318,6 +332,18 @@ void blk_queue_issue_flush_fn(struct req
-
- EXPORT_SYMBOL(blk_queue_issue_flush_fn);
+@@ -263,6 +277,18 @@
+ rq->next_rq = NULL;
+ }
+void blk_queue_issue_protect_fn(struct request_queue *q, issue_protect_fn *ipf)
+{
@@ -135,26 +45,43 @@ index ed39313..cc0e227 100644
+}
+EXPORT_SYMBOL(blk_queue_issue_unprotect_fn);
+
- /*
- * Cache flushing for ordered writes handling
- */
-@@ -1851,6 +1877,7 @@ struct request_queue *blk_alloc_queue_no
- return NULL;
+ /**
+ * blk_queue_ordered - does this queue support ordered writes
+ * @q: the request queue
+@@ -1861,6 +1887,7 @@
+ }
init_timer(&q->unplug_timer);
+ init_timer(&q->unfreeze_timer);
- snprintf(q->kobj.name, KOBJ_NAME_LEN, "%s", "queue");
+ kobject_set_name(&q->kobj, "%s", "queue");
q->kobj.ktype = &queue_ktype;
-@@ -4116,6 +4143,7 @@ int blk_register_queue(struct gendisk *d
- return ret;
+@@ -4191,13 +4218,21 @@
+ kobject_uevent(&q->kobj, KOBJ_ADD);
+
+ ret = elv_register_queue(q);
++ if (ret)
++ goto err;
++
++ ret = blk_protect_register(q);
+ if (ret) {
+- kobject_uevent(&q->kobj, KOBJ_REMOVE);
+- kobject_del(&q->kobj);
+- return ret;
++ elv_unregister_queue(q);
++ goto err;
}
-+ blk_protect_register(q);
return 0;
++
++err:
++ kobject_uevent(&q->kobj, KOBJ_REMOVE);
++ kobject_del(&q->kobj);
++ return ret;
}
-@@ -4124,6 +4152,7 @@ void blk_unregister_queue(struct gendisk
+ void blk_unregister_queue(struct gendisk *disk)
+@@ -4205,6 +4240,7 @@
struct request_queue *q = disk->queue;
if (q && q->request_fn) {
@@ -162,7 +89,7 @@ index ed39313..cc0e227 100644
elv_unregister_queue(q);
kobject_uevent(&q->kobj, KOBJ_REMOVE);
-@@ -4131,3 +4160,198 @@ void blk_unregister_queue(struct gendisk
+@@ -4212,3 +4248,197 @@
kobject_put(&disk->kobj);
}
}
@@ -327,7 +254,7 @@ index ed39313..cc0e227 100644
+
+ /* check that the lower level driver has a protect handler */
+ if (!q->issue_protect_fn)
-+ return 1;
++ return 0;
+
+ /* create the attributes */
+ error = sysfs_create_file(&q->kobj, &queue_protect_entry.attr);
@@ -336,10 +263,10 @@ index ed39313..cc0e227 100644
+ "blk_protect_register(): failed to create protect queue attribute!\n");
+ return error;
+ }
-+ kobject_get(&q->kobj);
+
+ error = sysfs_create_file(&q->kobj, &queue_protect_method_entry.attr);
+ if (error) {
++ sysfs_remove_file(&q->kobj, &queue_protect_entry.attr);
+ printk(KERN_ERR
+ "blk_protect_register(): failed to create protect_method attribute!\n");
+ return error;
@@ -357,15 +284,96 @@ index ed39313..cc0e227 100644
+
+ /* remove the attributes */
+ sysfs_remove_file(&q->kobj, &queue_protect_method_entry.attr);
-+ kobject_put(&q->kobj);
+ sysfs_remove_file(&q->kobj, &queue_protect_entry.attr);
+ kobject_put(&q->kobj);
+}
-diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
-index e836476..c587bf1 100644
---- a/drivers/ata/libata-scsi.c
-+++ b/drivers/ata/libata-scsi.c
-@@ -781,6 +781,38 @@ static void ata_scsi_dev_config(struct s
+diff -Naur a/Documentation/block/disk-protection.txt b/Documentation/block/disk-protection.txt
+--- a/Documentation/block/disk-protection.txt 1970-01-01 01:00:00.000000000 +0100
++++ b/Documentation/block/disk-protection.txt 2008-01-20 14:47:50.000000000 +0100
+@@ -0,0 +1,79 @@
++Hard disk protection
++====================
++
++
++Intro
++-----
++ATA/ATAPI-7 specifies the IDLE IMMEDIATE command with UNLOAD FEATURE.
++Issuing this command should cause the drive to switch to idle mode and
++unload disk heads. This feature is being used in modern laptops in
++conjunction with accelerometers and appropriate software to implement
++a shock protection facility. The idea is to stop all I/O operations on
++the internal hard drive and park its heads on the ramp when critical
++situations are anticipated. The desire to have such a feature
++available on GNU/Linux systems has been the original motivation to
++implement a generic disk parking interface in the Linux kernel.
++
++
++The interface
++-------------
++The interface works as follows: Writing an integer value to
++/sys/block/*/queue/protect will park the respective drive and freeze
++the block layer queue for the specified number of seconds. When the
++timeout expires and no further disk park request has been issued in
++the meantime, the queue is unfrozen and accumulated I/O operations are
++performed.
++
++IMPORTANT NOTE:
++Not all ATA drives implement IDLE IMMEDIATE with UNLOAD FEATURE and
++quite a few of those that do so, don't report this capability as
++described in the specs. When a disk park has been requested through
++sysfs as described above, the kernel will try to determine if the
++drive supports the UNLOAD FEATURE by default. The kernel will only
++rely on the IDLE IMMEDIATE with UNLOAD FEATURE command if it is
++convinced that this command is actually supported by the disk drive;
++otherwise, it will fall back to STANDBY IMMEDIATE. Resuming from the
++latter will take much longer and it is generally more likely to have a
++negative impact on the drive's lifetime due to the inclease of spin
++down and up cycles. If you want to use this interface in a shock
++protection framework and you know that your drive does indeed support
++the IDLE IMMEDIATE with UNLOAD FEATURE command despite not saying so,
++you can force the kernel to issue that command by doing the following
++on the command line:
++# echo -n unload > /sys/block/sda/queue/protect_method
++(replace sda by the drive identifier as appropriate).
++
++/sys/block/*/queue/protect_method accepts auto, unload and standby
++respectively. Reading from protect_method shows the available options
++surrounding the active one with brackets. When auto is active, this
++will change to whatever the kernel sees fit after the next disk park
++command has been issued.
++
++
++References
++----------
++
++There are several laptops from different brands featuring shock
++protection capabilities. As manufacturers have refused to support open
++source development of the required software components so far, Linux
++support for shock protection varies considerably between different
++hardware implementations. Ideally, this section should contain a list
++of poiters at different projects aiming at an implementation of shock
++protection on different systeems. Unfortunately, I only know of a
++single project which, although still considered experimental, is fit
++for use. Please feel free to add projects that have been the victims
++of my ignorance.
++
++- http://www.thinkwiki.org/wiki/HDAPS
++ See this page for information about Linux support of the hard disk
++ active protection syystem as implemented in IBM/Lenovo Thinkpads.
++
++
++CREDITS
++-------
++
++The patch to implement the interface described in this file has
++originally been published by Jon Escombe <lists@...>.
++
++
++05 Dec 2006, Elias Oltmanns <eo@...>
+diff -Naur a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
+--- a/drivers/ata/libata-scsi.c 2008-01-20 14:45:41.000000000 +0100
++++ b/drivers/ata/libata-scsi.c 2008-01-20 14:47:50.000000000 +0100
+@@ -856,6 +856,38 @@
}
}
@@ -404,7 +412,7 @@ index e836476..c587bf1 100644
/**
* ata_scsi_slave_config - Set SCSI device attributes
* @sdev: SCSI device to examine
-@@ -806,6 +838,10 @@ int ata_scsi_slave_config(struct scsi_de
+@@ -877,6 +909,10 @@
if (dev)
ata_scsi_dev_config(sdev, dev);
@@ -415,11 +423,10 @@ index e836476..c587bf1 100644
return 0; /* scsi layer doesn't check return value, sigh */
}
-diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c
-index 4754769..938408d 100644
---- a/drivers/ide/ide-disk.c
-+++ b/drivers/ide/ide-disk.c
-@@ -743,6 +743,145 @@ static int idedisk_issue_flush(struct re
+diff -Naur a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c
+--- a/drivers/ide/ide-disk.c 2008-01-20 14:45:41.000000000 +0100
++++ b/drivers/ide/ide-disk.c 2008-01-20 14:47:50.000000000 +0100
+@@ -675,6 +675,145 @@
}
/*
@@ -565,7 +572,7 @@ index 4754769..938408d 100644
* This is tightly woven into the driver->do_special can not touch.
* DON'T do it again until a total personality rewrite is committed.
*/
-@@ -1017,6 +1156,9 @@ static void idedisk_setup (ide_drive_t *
+@@ -943,6 +1082,9 @@
drive->wcache = 1;
write_cache(drive, 1);
@@ -575,11 +582,10 @@ index 4754769..938408d 100644
}
static void ide_cacheflush_p(ide_drive_t *drive)
-diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c
-index aa9f5f0..e664f5c 100644
---- a/drivers/ide/ide-io.c
-+++ b/drivers/ide/ide-io.c
-@@ -1276,6 +1276,17 @@ #endif
+diff -Naur a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c
+--- a/drivers/ide/ide-io.c 2008-01-20 14:45:41.000000000 +0100
++++ b/drivers/ide/ide-io.c 2008-01-20 14:47:50.000000000 +0100
+@@ -1271,6 +1271,17 @@
}
/*
@@ -597,7 +603,7 @@ index aa9f5f0..e664f5c 100644
* Sanity: don't accept a request that isn't a PM request
* if we are currently power managed. This is very important as
* blk_stop_queue() doesn't prevent the elv_next_request()
-@@ -1773,6 +1784,9 @@ int ide_do_drive_cmd (ide_drive_t *drive
+@@ -1768,6 +1779,9 @@
where = ELEVATOR_INSERT_FRONT;
rq->cmd_flags |= REQ_PREEMPT;
}
@@ -607,11 +613,24 @@ index aa9f5f0..e664f5c 100644
__elv_add_request(drive->queue, rq, where, 0);
ide_do_request(hwgroup, IDE_NO_IRQ);
spin_unlock_irqrestore(&ide_lock, flags);
-diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
-index a417a6f..07d19b3 100644
---- a/drivers/scsi/scsi_lib.c
-+++ b/drivers/scsi/scsi_lib.c
-@@ -2273,3 +2273,166 @@ void scsi_kunmap_atomic_sg(void *virt)
+diff -Naur a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
+--- a/drivers/scsi/scsi_lib.c 2008-01-20 14:45:43.000000000 +0100
++++ b/drivers/scsi/scsi_lib.c 2008-01-20 14:49:04.000000000 +0100
+@@ -2268,7 +2268,13 @@
+ int
+ scsi_device_quiesce(struct scsi_device *sdev)
+ {
++ int i;
+ int err = scsi_device_set_state(sdev, SDEV_QUIESCE);
++ for (i = 0; err && (sdev->sdev_state == SDEV_BLOCK) && (i < 100);
++ i++) {
++ msleep_interruptible(200);
++ err = scsi_device_set_state(sdev, SDEV_QUIESCE);
++ }
+ if (err)
+ return err;
+
+@@ -2518,3 +2524,168 @@
kunmap_atomic(virt, KM_BIO_SRC_IRQ);
}
EXPORT_SYMBOL(scsi_kunmap_atomic_sg);
@@ -740,9 +759,11 @@ index a417a6f..07d19b3 100644
+ siocs.sense = sense;
+ siocs.waiting = &wait;
+
-+ scsi_execute_async(sdev, scsi_cmd, COMMAND_SIZE(scsi_cmd[0]),
++ rc = scsi_execute_async(sdev, scsi_cmd, COMMAND_SIZE(scsi_cmd[0]),
+ DMA_NONE, NULL, 0, 0, (10*HZ), 5,
+ &siocs, &scsi_protect_wait_done, GFP_NOWAIT);
++ if (rc)
++ goto out;
+ wait_for_completion(&wait);
+
+ if (siocs.result != ((DRIVER_SENSE << 24) + SAM_STAT_CHECK_CONDITION)) {
@@ -778,24 +799,33 @@ index a417a6f..07d19b3 100644
+ return rc;
+}
+EXPORT_SYMBOL_GPL(scsi_protect_queue);
-diff --git a/include/linux/ata.h b/include/linux/ata.h
-index c043c1c..618906f 100644
---- a/include/linux/ata.h
-+++ b/include/linux/ata.h
-@@ -344,6 +344,7 @@ #define ata_id_is_ata(id) (((id)[0] & (1
- #define ata_id_rahead_enabled(id) ((id)[85] & (1 << 6))
- #define ata_id_wcache_enabled(id) ((id)[85] & (1 << 5))
- #define ata_id_hpa_enabled(id) ((id)[85] & (1 << 10))
-+#define ata_id_has_unload(id) ((id)[84] & (1 << 13))
- #define ata_id_has_fua(id) ((id)[84] & (1 << 6))
- #define ata_id_has_flush(id) ((id)[83] & (1 << 12))
- #define ata_id_has_flush_ext(id) ((id)[83] & (1 << 13))
-diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
-index b126c6f..12feccc 100644
---- a/include/linux/blkdev.h
-+++ b/include/linux/blkdev.h
-@@ -347,6 +347,8 @@ typedef int (merge_bvec_fn) (struct requ
- typedef int (issue_flush_fn) (struct request_queue *, struct gendisk *, sector_t *);
+diff -Naur a/include/linux/ata.h b/include/linux/ata.h
+--- a/include/linux/ata.h 2008-01-20 14:45:45.000000000 +0100
++++ b/include/linux/ata.h 2008-01-20 14:47:50.000000000 +0100
+@@ -395,6 +395,18 @@
+
+ #define ata_id_cdb_intr(id) (((id)[0] & 0x60) == 0x20)
+
++static inline int ata_id_has_unload(const u16 *id)
++{
++ /* ATA-7 specifies two places to indicate unload feature support.
++ * Since I don't really understand the difference, I'll just check
++ * both and only return zero if none of them indicates otherwise. */
++ if ((id[84] & 0xC000) == 0x4000 && id[84] & (1 << 13))
++ return id[84] & (1 << 13);
++ if ((id[87] & 0xC000) == 0x4000)
++ return id[87] & (1 << 13);
++ return 0;
++}
++
+ static inline bool ata_id_has_hipm(const u16 *id)
+ {
+ u16 val = id[76];
+diff -Naur a/include/linux/blkdev.h b/include/linux/blkdev.h
+--- a/include/linux/blkdev.h 2008-01-20 14:45:45.000000000 +0100
++++ b/include/linux/blkdev.h 2008-01-20 14:47:50.000000000 +0100
+@@ -332,6 +332,8 @@
+ typedef int (merge_bvec_fn) (struct request_queue *, struct bio *, struct bio_vec *);
typedef void (prepare_flush_fn) (struct request_queue *, struct request *);
typedef void (softirq_done_fn)(struct request *);
+typedef int (issue_protect_fn) (struct request_queue *);
@@ -803,8 +833,8 @@ index b126c6f..12feccc 100644
enum blk_queue_state {
Queue_down,
-@@ -385,6 +387,8 @@ struct request_queue
- issue_flush_fn *issue_flush_fn;
+@@ -368,6 +370,8 @@
+ merge_bvec_fn *merge_bvec_fn;
prepare_flush_fn *prepare_flush_fn;
softirq_done_fn *softirq_done_fn;
+ issue_protect_fn *issue_protect_fn;
@@ -812,7 +842,7 @@ index b126c6f..12feccc 100644
/*
* Dispatch queue sorting
-@@ -400,6 +404,14 @@ struct request_queue
+@@ -383,6 +387,14 @@
unsigned long unplug_delay; /* After this many jiffies */
struct work_struct unplug_work;
@@ -827,7 +857,7 @@ index b126c6f..12feccc 100644
struct backing_dev_info backing_dev_info;
/*
-@@ -774,6 +786,8 @@ extern int blk_do_ordered(struct request
+@@ -773,6 +785,8 @@
extern unsigned blk_ordered_cur_seq(struct request_queue *);
extern unsigned blk_ordered_req_seq(struct request *);
extern void blk_ordered_complete_seq(struct request_queue *, unsigned, int);
@@ -836,11 +866,10 @@ index b126c6f..12feccc 100644
extern int blk_rq_map_sg(struct request_queue *, struct request *, struct scatterlist *);
extern void blk_dump_rq_flags(struct request *, char *);
-diff --git a/include/linux/ide.h b/include/linux/ide.h
-index b9f66c1..8491dcf 100644
---- a/include/linux/ide.h
-+++ b/include/linux/ide.h
-@@ -1110,6 +1110,7 @@ extern u64 ide_get_error_location(ide_dr
+diff -Naur a/include/linux/ide.h b/include/linux/ide.h
+--- a/include/linux/ide.h 2008-01-20 14:45:45.000000000 +0100
++++ b/include/linux/ide.h 2008-01-20 14:47:50.000000000 +0100
+@@ -1045,6 +1045,7 @@
*/
typedef enum {
ide_wait, /* insert rq at end of list, and wait for it */
diff --git a/sys-kernel/thinkpad-sources/files/2.6.23/linux-phc-0.3.1-for-2.6.23.patch b/sys-kernel/thinkpad-sources/files/2.6.24/linux-phc-0.3.1-for-2.6.24-rc1.patch
index db9db5b..695743b 100644
--- a/sys-kernel/thinkpad-sources/files/2.6.23/linux-phc-0.3.1-for-2.6.23.patch
+++ b/sys-kernel/thinkpad-sources/files/2.6.24/linux-phc-0.3.1-for-2.6.24-rc1.patch
@@ -1,6 +1,6 @@
-diff --new-file -a --unified=5 --recursive linux-2.6.23-rc3/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c linux-source-2.6.23-rc3/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c
---- linux-2.6.23-rc3/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c 2007-08-13 06:25:24.000000000 +0200
-+++ linux-source-2.6.23-rc3/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c 2007-08-14 15:33:30.000000000 +0200
+diff --new-file -a --unified=5 --recursive linux-2.6.24-rc1/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c linux-2.6.24-rc1_phc/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
+--- linux-2.6.23-rc3/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c 2007-08-13 06:25:24.000000000 +0200
++++ linux-source-2.6.23-rc3/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c 2007-08-14 15:33:30.000000000 +0200
@@ -23,10 +23,15 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*
@@ -26,7 +26,7 @@ diff --new-file -a --unified=5 --recursive linux-2.6.23-rc3/arch/i386/kernel/cpu
+#define INTEL_MSR_VID_MASK (0x00ff)
+#define INTEL_MSR_FID_MASK (0xff00)
+#define INTEL_MSR_FID_SHIFT (0x8)
-+#define PHC_VERSION_STRING "0.3.1"
++#define PHC_VERSION_STRING "0.3.1:1"
+
struct acpi_cpufreq_data {
struct acpi_processor_performance *acpi_data;
diff --git a/sys-kernel/thinkpad-sources/files/configs/config-for-core-or-core2 b/sys-kernel/thinkpad-sources/files/configs/config-for-core-or-core2
deleted file mode 100644
index e324bd9..0000000
--- a/sys-kernel/thinkpad-sources/files/configs/config-for-core-or-core2
+++ /dev/null
@@ -1,2009 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.23-thinkpad-r1
-# Thu Nov 8 09:48:11 2007
-#
-CONFIG_X86_32=y
-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_SEMAPHORE_SLEEPERS=y
-CONFIG_X86=y
-CONFIG_MMU=y
-CONFIG_ZONE_DMA=y
-CONFIG_QUICKLIST=y
-CONFIG_GENERIC_ISA_DMA=y
-CONFIG_GENERIC_IOMAP=y
-CONFIG_GENERIC_BUG=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_ARCH_MAY_HAVE_PC_FDC=y
-CONFIG_DMI=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=y
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-CONFIG_POSIX_MQUEUE=y
-# CONFIG_BSD_PROCESS_ACCT is not set
-# CONFIG_TASKSTATS is not set
-# CONFIG_USER_NS is not set
-CONFIG_AUDIT=y
-CONFIG_AUDITSYSCALL=y
-# CONFIG_IKCONFIG is not set
-CONFIG_LOG_BUF_SHIFT=15
-# CONFIG_CPUSETS is not set
-# CONFIG_SYSFS_DEPRECATED is not set
-# CONFIG_RELAY is not set
-# CONFIG_BLK_DEV_INITRD is not set
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-CONFIG_SYSCTL=y
-# CONFIG_EMBEDDED is not set
-CONFIG_UID16=y
-CONFIG_SYSCTL_SYSCALL=y
-CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_ALL is not set
-# CONFIG_KALLSYMS_EXTRA_PASS is not set
-CONFIG_HOTPLUG=y
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_ANON_INODES=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_SLAB=y
-# CONFIG_SLUB is not set
-# CONFIG_SLOB is not set
-CONFIG_RT_MUTEXES=y
-# CONFIG_TINY_SHMEM is not set
-CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_KMOD=y
-CONFIG_STOP_MACHINE=y
-CONFIG_BLOCK=y
-# CONFIG_LBD is not set
-# CONFIG_BLK_DEV_IO_TRACE is not set
-# CONFIG_LSF is not set
-# CONFIG_BLK_DEV_BSG is not set
-
-#
-# 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"
-
-#
-# 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_X86_PC=y
-# CONFIG_X86_ELAN is not set
-# CONFIG_X86_VOYAGER is not set
-# CONFIG_X86_NUMAQ is not set
-# CONFIG_X86_SUMMIT is not set
-# CONFIG_X86_BIGSMP is not set
-# CONFIG_X86_VISWS is not set
-# CONFIG_X86_GENERICARCH is not set
-# CONFIG_X86_ES7000 is not set
-# CONFIG_PARAVIRT is not set
-# 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_MCORE2=y
-# 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_MWINCHIP2 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_X86_GENERIC is not set
-CONFIG_X86_CMPXCHG=y
-CONFIG_X86_L1_CACHE_SHIFT=6
-CONFIG_X86_XADD=y
-CONFIG_RWSEM_XCHGADD_ALGORITHM=y
-# CONFIG_ARCH_HAS_ILOG2_U32 is not set
-# CONFIG_ARCH_HAS_ILOG2_U64 is not set
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_X86_WP_WORKS_OK=y
-CONFIG_X86_INVLPG=y
-CONFIG_X86_BSWAP=y
-CONFIG_X86_POPAD_OK=y
-CONFIG_X86_GOOD_APIC=y
-CONFIG_X86_INTEL_USERCOPY=y
-CONFIG_X86_USE_PPRO_CHECKSUM=y
-CONFIG_X86_TSC=y
-CONFIG_X86_MINIMUM_CPU_FAMILY=4
-CONFIG_HPET_TIMER=y
-CONFIG_HPET_EMULATE_RTC=y
-CONFIG_NR_CPUS=2
-# CONFIG_SCHED_SMT is not set
-CONFIG_SCHED_MC=y
-# CONFIG_PREEMPT_NONE is not set
-# CONFIG_PREEMPT_VOLUNTARY is not set
-CONFIG_PREEMPT=y
-CONFIG_PREEMPT_BKL=y
-CONFIG_X86_LOCAL_APIC=y
-CONFIG_X86_IO_APIC=y
-CONFIG_X86_MCE=y
-# CONFIG_X86_MCE_NONFATAL is not set
-# CONFIG_X86_MCE_P4THERMAL is not set
-CONFIG_VM86=y
-# CONFIG_TOSHIBA is not set
-# CONFIG_I8K is not set
-# CONFIG_X86_REBOOTFIXUPS is not set
-# CONFIG_MICROCODE is not set
-# CONFIG_X86_MSR is not set
-# CONFIG_X86_CPUID is not set
-
-#
-# Firmware Drivers
-#
-# CONFIG_EDD is not set
-# CONFIG_DELL_RBU is not set
-# CONFIG_DCDBAS is not set
-CONFIG_DMIID=y
-# CONFIG_NOHIGHMEM is not set
-CONFIG_HIGHMEM4G=y
-# CONFIG_HIGHMEM64G is not set
-CONFIG_PAGE_OFFSET=0xC0000000
-CONFIG_HIGHMEM=y
-CONFIG_ARCH_FLATMEM_ENABLE=y
-CONFIG_ARCH_SPARSEMEM_ENABLE=y
-CONFIG_ARCH_SELECT_MEMORY_MODEL=y
-CONFIG_ARCH_POPULATES_NODE_MAP=y
-CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
-# CONFIG_DISCONTIGMEM_MANUAL is not set
-# CONFIG_SPARSEMEM_MANUAL is not set
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-CONFIG_SPARSEMEM_STATIC=y
-CONFIG_SPLIT_PTLOCK_CPUS=4
-# CONFIG_RESOURCES_64BIT is not set
-CONFIG_ZONE_DMA_FLAG=1
-CONFIG_BOUNCE=y
-CONFIG_NR_QUICK=1
-CONFIG_VIRT_TO_BUS=y
-CONFIG_HIGHPTE=y
-# CONFIG_MATH_EMULATION is not set
-CONFIG_MTRR=y
-# CONFIG_EFI is not set
-# CONFIG_IRQBALANCE is not set
-CONFIG_SECCOMP=y
-# CONFIG_HZ_100 is not set
-# CONFIG_HZ_250 is not set
-CONFIG_HZ_300=y
-# CONFIG_HZ_1000 is not set
-CONFIG_HZ=300
-# CONFIG_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 is not set
-CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
-
-#
-# Power management options (ACPI, APM)
-#
-CONFIG_PM=y
-# CONFIG_PM_LEGACY is not set
-# CONFIG_PM_DEBUG is not set
-CONFIG_PM_SLEEP_SMP=y
-CONFIG_PM_SLEEP=y
-CONFIG_SUSPEND_SMP_POSSIBLE=y
-CONFIG_SUSPEND=y
-CONFIG_HIBERNATION_SMP_POSSIBLE=y
-CONFIG_HIBERNATION=y
-CONFIG_PM_STD_PARTITION="/dev/sda5"
-CONFIG_TOI_CORE=y
-
-#
-# Image Storage (you need at least one allocator)
-#
-CONFIG_TOI_FILE=y
-CONFIG_TOI_SWAP=y
-
-#
-# General Options
-#
-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_CHECKSUM=y
-CONFIG_TOI_DEFAULT_WAIT=25
-# CONFIG_TOI_PAGEFLAGS_TEST is not set
-CONFIG_TOI=y
-CONFIG_ACPI=y
-CONFIG_ACPI_SLEEP=y
-CONFIG_ACPI_PROCFS=y
-CONFIG_ACPI_PROC_EVENT=y
-CONFIG_ACPI_AC=y
-CONFIG_ACPI_BATTERY=y
-CONFIG_ACPI_BUTTON=y
-CONFIG_ACPI_FAN=y
-CONFIG_ACPI_DOCK=y
-CONFIG_ACPI_BAY=y
-CONFIG_ACPI_PROCESSOR=y
-CONFIG_ACPI_HOTPLUG_CPU=y
-CONFIG_ACPI_THERMAL=y
-# CONFIG_ACPI_ASUS is not set
-# CONFIG_ACPI_TOSHIBA is not set
-CONFIG_ACPI_BLACKLIST_YEAR=0
-# CONFIG_ACPI_DEBUG is not set
-CONFIG_ACPI_EC=y
-CONFIG_ACPI_POWER=y
-CONFIG_ACPI_SYSTEM=y
-CONFIG_X86_PM_TIMER=y
-CONFIG_ACPI_CONTAINER=y
-# CONFIG_ACPI_SBS is not set
-# 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=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE 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 is not set
-# CONFIG_X86_POWERNOW_K7 is not set
-# CONFIG_X86_POWERNOW_K8 is not set
-# CONFIG_X86_GX_SUSPMOD is not set
-CONFIG_X86_SPEEDSTEP_CENTRINO=y
-CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y
-# CONFIG_X86_SPEEDSTEP_ICH is not set
-# CONFIG_X86_SPEEDSTEP_SMI is not set
-# CONFIG_X86_P4_CLOCKMOD is not set
-# CONFIG_X86_CPUFREQ_NFORCE2 is not set
-# CONFIG_X86_LONGRUN is not set
-# CONFIG_X86_LONGHAUL is not set
-# CONFIG_X86_E_POWERSAVER is not set
-
-#
-# shared options
-#
-# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set
-# CONFIG_X86_SPEEDSTEP_LIB is not set
-
-#
-# CPU idle PM support
-#
-CONFIG_CPU_IDLE=y
-
-#
-# Governors
-#
-CONFIG_CPU_IDLE_GOV_LADDER=y
-CONFIG_CPU_IDLE_GOV_MENU=y
-
-#
-# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
-#
-CONFIG_PCI=y
-# CONFIG_PCI_GOBIOS is not set
-# CONFIG_PCI_GOMMCONFIG is not set
-# CONFIG_PCI_GODIRECT is not set
-CONFIG_PCI_GOANY=y
-CONFIG_PCI_BIOS=y
-CONFIG_PCI_DIRECT=y
-CONFIG_PCI_MMCONFIG=y
-CONFIG_PCIEPORTBUS=y
-CONFIG_HOTPLUG_PCI_PCIE=y
-# CONFIG_HOTPLUG_PCI_PCIE_POLL_EVENT_MODE is not set
-CONFIG_PCIEAER=y
-CONFIG_ARCH_SUPPORTS_MSI=y
-CONFIG_PCI_MSI=y
-# CONFIG_PCI_DEBUG is not set
-CONFIG_HT_IRQ=y
-CONFIG_ISA_DMA_API=y
-CONFIG_ISA=y
-# CONFIG_EISA is not set
-# CONFIG_MCA is not set
-# CONFIG_SCx200 is not set
-
-#
-# PCCARD (PCMCIA/CardBus) support
-#
-CONFIG_PCCARD=y
-# CONFIG_PCMCIA_DEBUG is not set
-CONFIG_PCMCIA=y
-CONFIG_PCMCIA_LOAD_CIS=y
-CONFIG_PCMCIA_IOCTL=y
-CONFIG_CARDBUS=y
-
-#
-# PC-card bridges
-#
-CONFIG_YENTA=y
-CONFIG_YENTA_O2=y
-CONFIG_YENTA_RICOH=y
-CONFIG_YENTA_TI=y
-CONFIG_YENTA_ENE_TUNE=y
-CONFIG_YENTA_TOSHIBA=y
-# CONFIG_PD6729 is not set
-# CONFIG_I82092 is not set
-# CONFIG_I82365 is not set
-# CONFIG_TCIC is not set
-CONFIG_PCMCIA_PROBE=y
-CONFIG_PCCARD_NONSTATIC=y
-CONFIG_HOTPLUG_PCI=y
-# CONFIG_HOTPLUG_PCI_FAKE is not set
-# CONFIG_HOTPLUG_PCI_COMPAQ is not set
-CONFIG_HOTPLUG_PCI_IBM=y
-CONFIG_HOTPLUG_PCI_ACPI=y
-CONFIG_HOTPLUG_PCI_ACPI_IBM=y
-# CONFIG_HOTPLUG_PCI_CPCI is not set
-# CONFIG_HOTPLUG_PCI_SHPC is not set
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_ELF=y
-CONFIG_BINFMT_AOUT=y
-CONFIG_BINFMT_MISC=y
-
-#
-# Networking
-#
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-CONFIG_PACKET_MMAP=y
-CONFIG_UNIX=y
-CONFIG_XFRM=y
-CONFIG_XFRM_USER=m
-# CONFIG_XFRM_SUB_POLICY is not set
-# CONFIG_XFRM_MIGRATE is not set
-# CONFIG_NET_KEY is not set
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_ASK_IP_FIB_HASH=y
-# CONFIG_IP_FIB_TRIE is not set
-CONFIG_IP_FIB_HASH=y
-# CONFIG_IP_MULTIPLE_TABLES is not set
-# CONFIG_IP_ROUTE_MULTIPATH is not set
-# CONFIG_IP_ROUTE_VERBOSE is not set
-# CONFIG_IP_PNP is not set
-CONFIG_NET_IPIP=y
-# CONFIG_NET_IPGRE is not set
-# CONFIG_IP_MROUTE is not set
-# CONFIG_ARPD is not set
-CONFIG_SYN_COOKIES=y
-# CONFIG_INET_AH is not set
-# CONFIG_INET_ESP is not set
-# CONFIG_INET_IPCOMP is not set
-# CONFIG_INET_XFRM_TUNNEL is not set
-CONFIG_INET_TUNNEL=y
-CONFIG_INET_XFRM_MODE_TRANSPORT=m
-CONFIG_INET_XFRM_MODE_TUNNEL=m
-CONFIG_INET_XFRM_MODE_BEET=m
-CONFIG_INET_DIAG=y
-CONFIG_INET_TCP_DIAG=y
-# CONFIG_TCP_CONG_ADVANCED is not set
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_DEFAULT_TCP_CONG="cubic"
-CONFIG_TCP_MD5SIG=y
-# CONFIG_IP_VS is not set
-CONFIG_IPV6=y
-# CONFIG_IPV6_PRIVACY is not set
-# CONFIG_IPV6_ROUTER_PREF is not set
-# CONFIG_IPV6_OPTIMISTIC_DAD is not set
-# CONFIG_INET6_AH is not set
-# CONFIG_INET6_ESP is not set
-# CONFIG_INET6_IPCOMP is not set
-CONFIG_IPV6_MIP6=y
-# CONFIG_INET6_XFRM_TUNNEL is not set
-# CONFIG_INET6_TUNNEL is not set
-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_TUNNEL is not set
-# CONFIG_IPV6_MULTIPLE_TABLES is not set
-# CONFIG_NETWORK_SECMARK is not set
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-
-#
-# Core Netfilter Configuration
-#
-CONFIG_NETFILTER_NETLINK=y
-CONFIG_NETFILTER_NETLINK_QUEUE=y
-CONFIG_NETFILTER_NETLINK_LOG=y
-CONFIG_NF_CONNTRACK_ENABLED=m
-CONFIG_NF_CONNTRACK=m
-CONFIG_NF_CT_ACCT=y
-CONFIG_NF_CONNTRACK_MARK=y
-CONFIG_NF_CONNTRACK_EVENTS=y
-CONFIG_NF_CT_PROTO_GRE=m
-CONFIG_NF_CT_PROTO_SCTP=m
-# CONFIG_NF_CT_PROTO_UDPLITE is not set
-# CONFIG_NF_CONNTRACK_AMANDA is not set
-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 is not set
-CONFIG_NF_CONNTRACK_SIP=m
-CONFIG_NF_CONNTRACK_TFTP=m
-CONFIG_NF_CT_NETLINK=m
-CONFIG_NETFILTER_XTABLES=y
-CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y
-CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
-CONFIG_NETFILTER_XT_TARGET_DSCP=m
-CONFIG_NETFILTER_XT_TARGET_MARK=y
-CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y
-CONFIG_NETFILTER_XT_TARGET_NFLOG=m
-CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
-CONFIG_NETFILTER_XT_TARGET_TRACE=m
-CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
-CONFIG_NETFILTER_XT_MATCH_COMMENT=y
-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=y
-CONFIG_NETFILTER_XT_MATCH_DSCP=m
-# CONFIG_NETFILTER_XT_MATCH_ESP is not set
-CONFIG_NETFILTER_XT_MATCH_HELPER=m
-CONFIG_NETFILTER_XT_MATCH_LENGTH=y
-CONFIG_NETFILTER_XT_MATCH_LIMIT=y
-CONFIG_NETFILTER_XT_MATCH_MAC=y
-CONFIG_NETFILTER_XT_MATCH_MARK=y
-CONFIG_NETFILTER_XT_MATCH_POLICY=m
-# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
-CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y
-CONFIG_NETFILTER_XT_MATCH_QUOTA=m
-CONFIG_NETFILTER_XT_MATCH_REALM=y
-CONFIG_NETFILTER_XT_MATCH_SCTP=y
-CONFIG_NETFILTER_XT_MATCH_STATE=m
-CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
-CONFIG_NETFILTER_XT_MATCH_STRING=y
-CONFIG_NETFILTER_XT_MATCH_TCPMSS=y
-CONFIG_NETFILTER_XT_MATCH_U32=m
-CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_NF_CONNTRACK_IPV4=m
-# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set
-CONFIG_IP_NF_QUEUE=y
-CONFIG_IP_NF_IPTABLES=y
-CONFIG_IP_NF_MATCH_IPRANGE=y
-CONFIG_IP_NF_MATCH_TOS=y
-CONFIG_IP_NF_MATCH_RECENT=y
-CONFIG_IP_NF_MATCH_ECN=y
-# CONFIG_IP_NF_MATCH_AH is not set
-CONFIG_IP_NF_MATCH_TTL=y
-CONFIG_IP_NF_MATCH_OWNER=y
-CONFIG_IP_NF_MATCH_ADDRTYPE=y
-CONFIG_IP_NF_FILTER=y
-CONFIG_IP_NF_TARGET_REJECT=y
-CONFIG_IP_NF_TARGET_LOG=y
-CONFIG_IP_NF_TARGET_ULOG=y
-CONFIG_NF_NAT=m
-CONFIG_NF_NAT_NEEDED=y
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-CONFIG_IP_NF_TARGET_NETMAP=m
-CONFIG_IP_NF_TARGET_SAME=m
-CONFIG_NF_NAT_SNMP_BASIC=m
-CONFIG_NF_NAT_PROTO_GRE=m
-CONFIG_NF_NAT_FTP=m
-CONFIG_NF_NAT_IRC=m
-CONFIG_NF_NAT_TFTP=m
-# CONFIG_NF_NAT_AMANDA is not set
-CONFIG_NF_NAT_PPTP=m
-CONFIG_NF_NAT_H323=m
-CONFIG_NF_NAT_SIP=m
-CONFIG_IP_NF_MANGLE=y
-CONFIG_IP_NF_TARGET_TOS=y
-CONFIG_IP_NF_TARGET_ECN=y
-CONFIG_IP_NF_TARGET_TTL=y
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
-CONFIG_IP_NF_RAW=y
-CONFIG_IP_NF_ARPTABLES=y
-CONFIG_IP_NF_ARPFILTER=y
-CONFIG_IP_NF_ARP_MANGLE=y
-
-#
-# IPv6: Netfilter Configuration (EXPERIMENTAL)
-#
-CONFIG_NF_CONNTRACK_IPV6=m
-CONFIG_IP6_NF_QUEUE=y
-CONFIG_IP6_NF_IPTABLES=y
-CONFIG_IP6_NF_MATCH_RT=y
-CONFIG_IP6_NF_MATCH_OPTS=y
-CONFIG_IP6_NF_MATCH_FRAG=y
-CONFIG_IP6_NF_MATCH_HL=y
-CONFIG_IP6_NF_MATCH_OWNER=y
-CONFIG_IP6_NF_MATCH_IPV6HEADER=y
-# CONFIG_IP6_NF_MATCH_AH is not set
-CONFIG_IP6_NF_MATCH_MH=m
-CONFIG_IP6_NF_MATCH_EUI64=y
-CONFIG_IP6_NF_FILTER=y
-CONFIG_IP6_NF_TARGET_LOG=y
-CONFIG_IP6_NF_TARGET_REJECT=y
-CONFIG_IP6_NF_MANGLE=y
-CONFIG_IP6_NF_TARGET_HL=y
-CONFIG_IP6_NF_RAW=y
-# CONFIG_IP_DCCP is not set
-# CONFIG_IP_SCTP is not set
-# CONFIG_TIPC is not set
-# CONFIG_ATM is not set
-# CONFIG_BRIDGE is not set
-# CONFIG_VLAN_8021Q is not set
-# CONFIG_DECNET is not set
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_ECONET is not set
-# CONFIG_WAN_ROUTER is not set
-
-#
-# QoS and/or fair queueing
-#
-CONFIG_NET_SCHED=y
-CONFIG_NET_SCH_FIFO=y
-
-#
-# Queueing/Scheduling
-#
-# CONFIG_NET_SCH_CBQ is not set
-# CONFIG_NET_SCH_HTB is not set
-# CONFIG_NET_SCH_HFSC is not set
-# CONFIG_NET_SCH_PRIO is not set
-# CONFIG_NET_SCH_RR is not set
-# CONFIG_NET_SCH_RED is not set
-# CONFIG_NET_SCH_SFQ is not set
-# CONFIG_NET_SCH_TEQL is not set
-# CONFIG_NET_SCH_TBF is not set
-# CONFIG_NET_SCH_GRED is not set
-# CONFIG_NET_SCH_DSMARK is not set
-# CONFIG_NET_SCH_NETEM is not set
-# CONFIG_NET_SCH_INGRESS is not set
-
-#
-# Classification
-#
-# CONFIG_NET_CLS_BASIC is not set
-# CONFIG_NET_CLS_TCINDEX is not set
-# CONFIG_NET_CLS_ROUTE4 is not set
-CONFIG_NET_CLS_ROUTE=y
-# CONFIG_NET_CLS_FW is not set
-# CONFIG_NET_CLS_U32 is not set
-# CONFIG_NET_CLS_RSVP is not set
-# CONFIG_NET_CLS_RSVP6 is not set
-# CONFIG_NET_EMATCH is not set
-# CONFIG_NET_CLS_ACT is not set
-# CONFIG_NET_CLS_POLICE is not set
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_HAMRADIO is not set
-# CONFIG_IRDA is not set
-CONFIG_BT=m
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-# CONFIG_BT_BNEP is not set
-CONFIG_BT_HIDP=m
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_HCIUSB=m
-CONFIG_BT_HCIUSB_SCO=y
-# CONFIG_BT_HCIUART is not set
-# CONFIG_BT_HCIBCM203X is not set
-# CONFIG_BT_HCIBPA10X is not set
-# CONFIG_BT_HCIBFUSB is not set
-# CONFIG_BT_HCIDTL1 is not set
-# CONFIG_BT_HCIBT3C is not set
-# CONFIG_BT_HCIBLUECARD is not set
-# CONFIG_BT_HCIBTUART is not set
-# CONFIG_BT_HCIVHCI is not set
-# CONFIG_AF_RXRPC is not set
-
-#
-# Wireless
-#
-CONFIG_CFG80211=y
-CONFIG_WIRELESS_EXT=y
-CONFIG_MAC80211=m
-CONFIG_MAC80211_LEDS=y
-# CONFIG_MAC80211_DEBUG is not set
-CONFIG_IEEE80211=m
-# CONFIG_IEEE80211_DEBUG is not set
-CONFIG_IEEE80211_CRYPT_WEP=m
-CONFIG_IEEE80211_CRYPT_CCMP=m
-CONFIG_IEEE80211_CRYPT_TKIP=m
-# CONFIG_IEEE80211_SOFTMAC is not set
-CONFIG_RFKILL=y
-CONFIG_RFKILL_INPUT=y
-# CONFIG_NET_9P is not set
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-CONFIG_FW_LOADER=y
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
-# CONFIG_SYS_HYPERVISOR is not set
-# CONFIG_CONNECTOR is not set
-# CONFIG_MTD is not set
-CONFIG_PARPORT=y
-CONFIG_PARPORT_PC=y
-# CONFIG_PARPORT_SERIAL is not set
-# CONFIG_PARPORT_PC_FIFO is not set
-# CONFIG_PARPORT_PC_SUPERIO is not set
-# CONFIG_PARPORT_PC_PCMCIA is not set
-# CONFIG_PARPORT_GSC is not set
-# CONFIG_PARPORT_AX88796 is not set
-# CONFIG_PARPORT_1284 is not set
-CONFIG_PNP=y
-# CONFIG_PNP_DEBUG is not set
-
-#
-# Protocols
-#
-# CONFIG_ISAPNP is not set
-# CONFIG_PNPBIOS is not set
-CONFIG_PNPACPI=y
-CONFIG_BLK_DEV=y
-# CONFIG_BLK_DEV_FD is not set
-# CONFIG_BLK_DEV_XD is not set
-# CONFIG_PARIDE is not set
-# CONFIG_BLK_CPQ_DA is not set
-# CONFIG_BLK_CPQ_CISS_DA is not set
-# CONFIG_BLK_DEV_DAC960 is not set
-# CONFIG_BLK_DEV_UMEM is not set
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_BLK_DEV_CRYPTOLOOP=y
-# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_SX8 is not set
-# CONFIG_BLK_DEV_UB is not set
-# CONFIG_BLK_DEV_RAM is not set
-# CONFIG_CDROM_PKTCDVD is not set
-# CONFIG_ATA_OVER_ETH is not set
-CONFIG_MISC_DEVICES=y
-# CONFIG_IBM_ASM is not set
-# CONFIG_PHANTOM is not set
-# CONFIG_EEPROM_93CX6 is not set
-# CONFIG_SGI_IOC4 is not set
-# CONFIG_TIFM_CORE is not set
-# CONFIG_ASUS_LAPTOP is not set
-# CONFIG_MSI_LAPTOP is not set
-# CONFIG_SONY_LAPTOP is not set
-CONFIG_THINKPAD_ACPI=m
-# CONFIG_THINKPAD_ACPI_DEBUG is not set
-CONFIG_THINKPAD_ACPI_BAY=y
-CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-# CONFIG_RAID_ATTRS is not set
-CONFIG_SCSI=y
-CONFIG_SCSI_DMA=y
-# CONFIG_SCSI_TGT is not set
-# CONFIG_SCSI_NETLINK is not set
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=y
-# CONFIG_CHR_DEV_ST is not set
-# CONFIG_CHR_DEV_OSST is not set
-CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
-CONFIG_CHR_DEV_SG=y
-# CONFIG_CHR_DEV_SCH is not set
-
-#
-# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-#
-# CONFIG_SCSI_MULTI_LUN is not set
-# CONFIG_SCSI_CONSTANTS is not set
-# CONFIG_SCSI_LOGGING is not set
-# CONFIG_SCSI_SCAN_ASYNC is not set
-CONFIG_SCSI_WAIT_SCAN=m
-
-#
-# SCSI Transports
-#
-# CONFIG_SCSI_SPI_ATTRS is not set
-# CONFIG_SCSI_FC_ATTRS is not set
-# CONFIG_SCSI_ISCSI_ATTRS is not set
-# CONFIG_SCSI_SAS_LIBSAS is not set
-# CONFIG_SCSI_LOWLEVEL is not set
-# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
-CONFIG_ATA=y
-# CONFIG_ATA_NONSTANDARD is not set
-CONFIG_ATA_ACPI=y
-CONFIG_SATA_AHCI=y
-# CONFIG_SATA_SVW is not set
-CONFIG_ATA_PIIX=y
-# CONFIG_SATA_MV is not set
-# CONFIG_SATA_NV is not set
-# CONFIG_PDC_ADMA is not set
-# CONFIG_SATA_QSTOR is not set
-# CONFIG_SATA_PROMISE is not set
-# CONFIG_SATA_SX4 is not set
-# CONFIG_SATA_SIL is not set
-# CONFIG_SATA_SIL24 is not set
-# CONFIG_SATA_SIS is not set
-# CONFIG_SATA_ULI is not set
-# CONFIG_SATA_VIA is not set
-# CONFIG_SATA_VITESSE is not set
-# CONFIG_SATA_INIC162X is not set
-# CONFIG_PATA_ALI is not set
-# CONFIG_PATA_AMD is not set
-# CONFIG_PATA_ARTOP is not set
-# CONFIG_PATA_ATIIXP is not set
-# CONFIG_PATA_CMD640_PCI is not set
-# CONFIG_PATA_CMD64X is not set
-# CONFIG_PATA_CS5520 is not set
-# CONFIG_PATA_CS5530 is not set
-# CONFIG_PATA_CS5535 is not set
-# CONFIG_PATA_CYPRESS is not set
-# CONFIG_PATA_EFAR is not set
-# CONFIG_ATA_GENERIC is not set
-# CONFIG_PATA_HPT366 is not set
-# CONFIG_PATA_HPT37X is not set
-# CONFIG_PATA_HPT3X2N is not set
-# CONFIG_PATA_HPT3X3 is not set
-# CONFIG_PATA_IT821X is not set
-# CONFIG_PATA_IT8213 is not set
-# CONFIG_PATA_JMICRON is not set
-# CONFIG_PATA_LEGACY is not set
-# CONFIG_PATA_TRIFLEX is not set
-# CONFIG_PATA_MARVELL is not set
-# CONFIG_PATA_MPIIX is not set
-# CONFIG_PATA_OLDPIIX is not set
-# CONFIG_PATA_NETCELL is not set
-# CONFIG_PATA_NS87410 is not set
-# CONFIG_PATA_OPTI is not set
-# CONFIG_PATA_OPTIDMA is not set
-# CONFIG_PATA_PCMCIA is not set
-# CONFIG_PATA_PDC_OLD is not set
-# CONFIG_PATA_QDI is not set
-# CONFIG_PATA_RADISYS is not set
-# CONFIG_PATA_RZ1000 is not set
-# CONFIG_PATA_SC1200 is not set
-# CONFIG_PATA_SERVERWORKS is not set
-# CONFIG_PATA_PDC2027X is not set
-# CONFIG_PATA_SIL680 is not set
-# CONFIG_PATA_SIS is not set
-# CONFIG_PATA_VIA is not set
-# CONFIG_PATA_WINBOND is not set
-# CONFIG_PATA_WINBOND_VLB is not set
-# CONFIG_MD is not set
-
-#
-# Fusion MPT device support
-#
-# CONFIG_FUSION is not set
-# CONFIG_FUSION_SPI is not set
-# CONFIG_FUSION_FC is not set
-# CONFIG_FUSION_SAS is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-# CONFIG_FIREWIRE is not set
-# CONFIG_IEEE1394 is not set
-# CONFIG_I2O is not set
-# CONFIG_MACINTOSH_DRIVERS is not set
-CONFIG_NETDEVICES=y
-CONFIG_NETDEVICES_MULTIQUEUE=y
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_MACVLAN is not set
-# CONFIG_EQUALIZER is not set
-CONFIG_TUN=y
-# CONFIG_NET_SB1000 is not set
-# CONFIG_ARCNET is not set
-# CONFIG_NET_ETHERNET is not set
-CONFIG_MII=m
-CONFIG_NETDEV_1000=y
-# CONFIG_ACENIC is not set
-# CONFIG_DL2K is not set
-CONFIG_E1000=m
-CONFIG_E1000_NAPI=y
-CONFIG_E1000_DISABLE_PACKET_SPLIT=y
-CONFIG_E1000E=m
-# CONFIG_NS83820 is not set
-# CONFIG_HAMACHI is not set
-# CONFIG_YELLOWFIN is not set
-# CONFIG_R8169 is not set
-# CONFIG_SIS190 is not set
-# CONFIG_SKGE is not set
-# CONFIG_SKY2 is not set
-# CONFIG_SK98LIN is not set
-# CONFIG_VIA_VELOCITY is not set
-# CONFIG_TIGON3 is not set
-# CONFIG_BNX2 is not set
-# CONFIG_QLA3XXX is not set
-# CONFIG_ATL1 is not set
-# CONFIG_NETDEV_10000 is not set
-# CONFIG_TR is not set
-
-#
-# Wireless LAN
-#
-# CONFIG_WLAN_PRE80211 is not set
-CONFIG_WLAN_80211=y
-# CONFIG_PCMCIA_RAYCS 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_LIBERTAS is not set
-# CONFIG_AIRO is not set
-# CONFIG_HERMES is not set
-# CONFIG_ATMEL is not set
-# CONFIG_AIRO_CS is not set
-# CONFIG_PCMCIA_WL3501 is not set
-CONFIG_PRISM54=m
-# CONFIG_USB_ZD1201 is not set
-# CONFIG_RTL8187 is not set
-# CONFIG_HOSTAP is not set
-
-#
-# USB Network Adapters
-#
-# CONFIG_USB_CATC is not set
-# CONFIG_USB_KAWETH is not set
-# CONFIG_USB_PEGASUS is not set
-# CONFIG_USB_RTL8150 is not set
-# CONFIG_USB_USBNET_MII is not set
-# CONFIG_USB_USBNET is not set
-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_WAN is not set
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-# CONFIG_PLIP is not set
-# CONFIG_PPP is not set
-# CONFIG_SLIP is not set
-# CONFIG_NET_FC is not set
-# CONFIG_SHAPER is not set
-# CONFIG_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-# CONFIG_ISDN is not set
-# CONFIG_PHONE is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-# CONFIG_INPUT_FF_MEMLESS is not set
-# CONFIG_INPUT_POLLDEV is not set
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1400
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=1050
-# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_TSDEV is not set
-CONFIG_INPUT_EVDEV=y
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-CONFIG_KEYBOARD_ATKBD=y
-# CONFIG_KEYBOARD_SUNKBD is not set
-# CONFIG_KEYBOARD_LKKBD is not set
-# CONFIG_KEYBOARD_XTKBD is not set
-# CONFIG_KEYBOARD_NEWTON is not set
-# CONFIG_KEYBOARD_STOWAWAY is not set
-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_TOUCHKIT is not set
-# CONFIG_MOUSE_SERIAL is not set
-# CONFIG_MOUSE_APPLETOUCH is not set
-# CONFIG_MOUSE_INPORT is not set
-# CONFIG_MOUSE_LOGIBM is not set
-# CONFIG_MOUSE_PC110PAD is not set
-# CONFIG_MOUSE_VSXXXAA is not set
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TABLET is not set
-# CONFIG_INPUT_TOUCHSCREEN is not set
-CONFIG_INPUT_MISC=y
-# CONFIG_INPUT_PCSPKR is not set
-# CONFIG_INPUT_WISTRON_BTNS is not set
-# CONFIG_INPUT_ATLAS_BTNS is not set
-# CONFIG_INPUT_ATI_REMOTE is not set
-# CONFIG_INPUT_ATI_REMOTE2 is not set
-# CONFIG_INPUT_KEYSPAN_REMOTE is not set
-# CONFIG_INPUT_POWERMATE is not set
-# CONFIG_INPUT_YEALINK is not set
-CONFIG_INPUT_UINPUT=m
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-CONFIG_SERIO_I8042=y
-# CONFIG_SERIO_SERPORT is not set
-# CONFIG_SERIO_CT82C710 is not set
-# CONFIG_SERIO_PARKBD is not set
-# CONFIG_SERIO_PCIPS2 is not set
-CONFIG_SERIO_LIBPS2=y
-# CONFIG_SERIO_RAW is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-CONFIG_VT=y
-CONFIG_VT_CONSOLE=y
-CONFIG_HW_CONSOLE=y
-# CONFIG_VT_HW_CONSOLE_BINDING is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-
-#
-# 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 is not set
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_CORE=y
-# CONFIG_SERIAL_JSM is not set
-CONFIG_UNIX98_PTYS=y
-CONFIG_LEGACY_PTYS=y
-CONFIG_LEGACY_PTY_COUNT=256
-# CONFIG_PRINTER is not set
-# CONFIG_PPDEV is not set
-# CONFIG_TIPAR is not set
-# CONFIG_IPMI_HANDLER is not set
-# CONFIG_WATCHDOG is not set
-# CONFIG_HW_RANDOM is not set
-CONFIG_NVRAM=y
-CONFIG_RTC=y
-# CONFIG_DTLK is not set
-# CONFIG_R3964 is not set
-# CONFIG_APPLICOM is not set
-# CONFIG_SONYPI is not set
-# CONFIG_AGP is not set
-# CONFIG_DRM is not set
-
-#
-# PCMCIA character devices
-#
-# CONFIG_SYNCLINK_CS is not set
-# CONFIG_CARDMAN_4000 is not set
-# CONFIG_CARDMAN_4040 is not set
-# CONFIG_MWAVE is not set
-# CONFIG_PC8736x_GPIO is not set
-# CONFIG_NSC_GPIO is not set
-# CONFIG_CS5535_GPIO is not set
-# CONFIG_RAW_DRIVER is not set
-CONFIG_HPET=y
-# CONFIG_HPET_RTC_IRQ is not set
-CONFIG_HPET_MMAP=y
-# CONFIG_HANGCHECK_TIMER is not set
-# CONFIG_TCG_TPM is not set
-# CONFIG_TELCLOCK is not set
-CONFIG_DEVPORT=y
-CONFIG_I2C=m
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_CHARDEV=m
-
-#
-# I2C Algorithms
-#
-CONFIG_I2C_ALGOBIT=m
-CONFIG_I2C_ALGOPCF=m
-CONFIG_I2C_ALGOPCA=m
-
-#
-# I2C Hardware Bus support
-#
-# CONFIG_I2C_ALI1535 is not set
-# CONFIG_I2C_ALI1563 is not set
-# CONFIG_I2C_ALI15X3 is not set
-# CONFIG_I2C_AMD756 is not set
-# CONFIG_I2C_AMD8111 is not set
-# CONFIG_I2C_I801 is not set
-# CONFIG_I2C_I810 is not set
-# CONFIG_I2C_PIIX4 is not set
-# CONFIG_I2C_NFORCE2 is not set
-# CONFIG_I2C_OCORES is not set
-# CONFIG_I2C_PARPORT is not set
-# CONFIG_I2C_PARPORT_LIGHT is not set
-# CONFIG_I2C_PROSAVAGE is not set
-# CONFIG_I2C_SAVAGE4 is not set
-# CONFIG_I2C_SIMTEC is not set
-# CONFIG_SCx200_ACB is not set
-# CONFIG_I2C_SIS5595 is not set
-# CONFIG_I2C_SIS630 is not set
-# CONFIG_I2C_SIS96X is not set
-# CONFIG_I2C_TAOS_EVM is not set
-# CONFIG_I2C_STUB is not set
-# CONFIG_I2C_TINY_USB is not set
-# CONFIG_I2C_VIA is not set
-# CONFIG_I2C_VIAPRO is not set
-# CONFIG_I2C_VOODOO3 is not set
-# CONFIG_I2C_PCA_ISA is not set
-
-#
-# Miscellaneous I2C Chip support
-#
-# CONFIG_SENSORS_DS1337 is not set
-# CONFIG_SENSORS_DS1374 is not set
-# CONFIG_DS1682 is not set
-# CONFIG_SENSORS_EEPROM is not set
-# CONFIG_SENSORS_PCF8574 is not set
-# CONFIG_SENSORS_PCA9539 is not set
-# CONFIG_SENSORS_PCF8591 is not set
-# CONFIG_SENSORS_MAX6875 is not set
-# CONFIG_SENSORS_TSL2550 is not set
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_I2C_DEBUG_CHIP is not set
-
-#
-# SPI support
-#
-# CONFIG_SPI is not set
-# CONFIG_SPI_MASTER is not set
-# CONFIG_W1 is not set
-# CONFIG_POWER_SUPPLY is not set
-CONFIG_HWMON=y
-# CONFIG_HWMON_VID is not set
-# CONFIG_SENSORS_ABITUGURU is not set
-# CONFIG_SENSORS_ABITUGURU3 is not set
-# CONFIG_SENSORS_AD7418 is not set
-# CONFIG_SENSORS_ADM1021 is not set
-# CONFIG_SENSORS_ADM1025 is not set
-# CONFIG_SENSORS_ADM1026 is not set
-# CONFIG_SENSORS_ADM1029 is not set
-# CONFIG_SENSORS_ADM1031 is not set
-# CONFIG_SENSORS_ADM9240 is not set
-# CONFIG_SENSORS_K8TEMP is not set
-# CONFIG_SENSORS_ASB100 is not set
-# CONFIG_SENSORS_ATXP1 is not set
-# CONFIG_SENSORS_DS1621 is not set
-# CONFIG_SENSORS_F71805F is not set
-# CONFIG_SENSORS_FSCHER is not set
-# CONFIG_SENSORS_FSCPOS is not set
-# CONFIG_SENSORS_GL518SM is not set
-# CONFIG_SENSORS_GL520SM is not set
-CONFIG_SENSORS_CORETEMP=y
-# CONFIG_SENSORS_IT87 is not set
-# CONFIG_SENSORS_LM63 is not set
-# CONFIG_SENSORS_LM75 is not set
-# CONFIG_SENSORS_LM77 is not set
-# CONFIG_SENSORS_LM78 is not set
-# CONFIG_SENSORS_LM80 is not set
-# CONFIG_SENSORS_LM83 is not set
-# CONFIG_SENSORS_LM85 is not set
-# CONFIG_SENSORS_LM87 is not set
-# CONFIG_SENSORS_LM90 is not set
-# CONFIG_SENSORS_LM92 is not set
-# CONFIG_SENSORS_LM93 is not set
-# CONFIG_SENSORS_MAX1619 is not set
-# CONFIG_SENSORS_MAX6650 is not set
-# CONFIG_SENSORS_PC87360 is not set
-# CONFIG_SENSORS_PC87427 is not set
-# CONFIG_SENSORS_SIS5595 is not set
-# CONFIG_SENSORS_DME1737 is not set
-# CONFIG_SENSORS_SMSC47M1 is not set
-# CONFIG_SENSORS_SMSC47M192 is not set
-# CONFIG_SENSORS_SMSC47B397 is not set
-# CONFIG_SENSORS_THMC50 is not set
-# CONFIG_SENSORS_VIA686A is not set
-# CONFIG_SENSORS_VT1211 is not set
-# CONFIG_SENSORS_VT8231 is not set
-# CONFIG_SENSORS_W83781D is not set
-# CONFIG_SENSORS_W83791D is not set
-# CONFIG_SENSORS_W83792D is not set
-# CONFIG_SENSORS_W83793 is not set
-# CONFIG_SENSORS_W83L785TS is not set
-# CONFIG_SENSORS_W83627HF is not set
-# CONFIG_SENSORS_W83627EHF is not set
-CONFIG_SENSORS_HDAPS=m
-# CONFIG_SENSORS_APPLESMC is not set
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Multifunction device drivers
-#
-# CONFIG_MFD_SM501 is not set
-
-#
-# Multimedia devices
-#
-CONFIG_VIDEO_DEV=m
-CONFIG_VIDEO_V4L1=y
-CONFIG_VIDEO_V4L1_COMPAT=y
-CONFIG_VIDEO_V4L2=y
-CONFIG_VIDEO_CAPTURE_DRIVERS=y
-# CONFIG_VIDEO_ADV_DEBUG is not set
-CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
-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_WM8775=m
-CONFIG_VIDEO_BT819=m
-CONFIG_VIDEO_BT856=m
-CONFIG_VIDEO_KS0127=m
-CONFIG_VIDEO_OV7670=m
-CONFIG_VIDEO_SAA7110=m
-CONFIG_VIDEO_SAA7111=m
-CONFIG_VIDEO_SAA7114=m
-CONFIG_VIDEO_SAA711X=m
-CONFIG_VIDEO_TVP5150=m
-CONFIG_VIDEO_VPX3220=m
-CONFIG_VIDEO_CX25840=m
-CONFIG_VIDEO_CX2341X=m
-CONFIG_VIDEO_SAA7185=m
-CONFIG_VIDEO_ADV7170=m
-CONFIG_VIDEO_ADV7175=m
-CONFIG_VIDEO_VIVI=m
-CONFIG_VIDEO_BT848=m
-# CONFIG_VIDEO_BT848_DVB is not set
-CONFIG_VIDEO_SAA6588=m
-CONFIG_VIDEO_PMS=m
-CONFIG_VIDEO_BWQCAM=m
-CONFIG_VIDEO_CQCAM=m
-CONFIG_VIDEO_CPIA=m
-CONFIG_VIDEO_CPIA_USB=m
-CONFIG_VIDEO_CPIA2=m
-CONFIG_VIDEO_SAA5246A=m
-CONFIG_VIDEO_SAA5249=m
-CONFIG_TUNER_3036=m
-# CONFIG_TUNER_TEA5761 is not set
-CONFIG_VIDEO_STRADIS=m
-CONFIG_VIDEO_ZORAN_ZR36060=m
-CONFIG_VIDEO_ZORAN=m
-CONFIG_VIDEO_ZORAN_BUZ=m
-CONFIG_VIDEO_ZORAN_DC10=m
-CONFIG_VIDEO_ZORAN_DC30=m
-CONFIG_VIDEO_ZORAN_LML33=m
-CONFIG_VIDEO_ZORAN_LML33R10=m
-CONFIG_VIDEO_ZORAN_AVS6EYES=m
-CONFIG_VIDEO_SAA7134=m
-CONFIG_VIDEO_SAA7134_DVB=m
-CONFIG_VIDEO_MXB=m
-CONFIG_VIDEO_DPC=m
-CONFIG_VIDEO_HEXIUM_ORION=m
-CONFIG_VIDEO_HEXIUM_GEMINI=m
-CONFIG_VIDEO_CX88=m
-CONFIG_VIDEO_CX88_BLACKBIRD=m
-CONFIG_VIDEO_CX88_DVB=m
-CONFIG_VIDEO_CX88_VP3054=m
-# CONFIG_VIDEO_IVTV is not set
-CONFIG_VIDEO_CAFE_CCIC=m
-CONFIG_V4L_USB_DRIVERS=y
-CONFIG_VIDEO_PVRUSB2=m
-CONFIG_VIDEO_PVRUSB2_29XXX=y
-CONFIG_VIDEO_PVRUSB2_24XXX=y
-CONFIG_VIDEO_PVRUSB2_SYSFS=y
-# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
-CONFIG_VIDEO_EM28XX=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_RADIO_ADAPTERS is not set
-CONFIG_DVB_CORE=m
-CONFIG_DVB_CORE_ATTACH=y
-CONFIG_DVB_CAPTURE_DRIVERS=y
-
-#
-# Supported SAA7146 based PCI Adapters
-#
-# CONFIG_DVB_AV7110 is not set
-# CONFIG_DVB_BUDGET is not set
-# CONFIG_DVB_BUDGET_CI is not set
-# CONFIG_DVB_BUDGET_AV is not set
-
-#
-# 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_TTUSB_BUDGET=m
-CONFIG_DVB_TTUSB_DEC=m
-CONFIG_DVB_CINERGYT2=m
-# CONFIG_DVB_CINERGYT2_TUNING is not set
-
-#
-# 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 DVB Frontends
-#
-
-#
-# Customise DVB Frontends
-#
-# CONFIG_DVB_FE_CUSTOMISE is not set
-
-#
-# DVB-S (satellite) frontends
-#
-CONFIG_DVB_STV0299=m
-CONFIG_DVB_CX24110=m
-CONFIG_DVB_CX24123=m
-CONFIG_DVB_TDA8083=m
-CONFIG_DVB_MT312=m
-CONFIG_DVB_VES1X93=m
-CONFIG_DVB_S5H1420=m
-CONFIG_DVB_TDA10086=m
-
-#
-# DVB-T (terrestrial) frontends
-#
-CONFIG_DVB_SP8870=m
-CONFIG_DVB_SP887X=m
-CONFIG_DVB_CX22700=m
-CONFIG_DVB_CX22702=m
-CONFIG_DVB_L64781=m
-CONFIG_DVB_TDA1004X=m
-CONFIG_DVB_NXT6000=m
-CONFIG_DVB_MT352=m
-CONFIG_DVB_ZL10353=m
-CONFIG_DVB_DIB3000MB=m
-CONFIG_DVB_DIB3000MC=m
-CONFIG_DVB_DIB7000M=m
-CONFIG_DVB_DIB7000P=m
-
-#
-# 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
-
-#
-# Tuners/PLL support
-#
-CONFIG_DVB_PLL=m
-CONFIG_DVB_TDA826X=m
-CONFIG_DVB_TDA827X=m
-CONFIG_DVB_TUNER_QT1010=m
-CONFIG_DVB_TUNER_MT2060=m
-
-#
-# Miscellaneous devices
-#
-CONFIG_DVB_LNBP21=m
-CONFIG_DVB_ISL6421=m
-CONFIG_DVB_TUA6100=m
-CONFIG_VIDEO_SAA7146=m
-CONFIG_VIDEO_SAA7146_VV=m
-CONFIG_VIDEO_TUNER=m
-CONFIG_VIDEO_BUF=m
-CONFIG_VIDEO_BUF_DVB=m
-CONFIG_VIDEO_BTCX=m
-CONFIG_VIDEO_IR_I2C=m
-CONFIG_VIDEO_IR=m
-CONFIG_VIDEO_TVEEPROM=m
-# CONFIG_DAB is not set
-
-#
-# Graphics support
-#
-# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
-CONFIG_BACKLIGHT_CLASS_DEVICE=m
-# CONFIG_BACKLIGHT_PROGEAR is not set
-
-#
-# Display device support
-#
-# CONFIG_DISPLAY_SUPPORT is not set
-# CONFIG_VGASTATE is not set
-# CONFIG_VIDEO_OUTPUT_CONTROL is not set
-# CONFIG_FB is not set
-
-#
-# Console display driver support
-#
-CONFIG_VGA_CONSOLE=y
-# CONFIG_VGACON_SOFT_SCROLLBACK is not set
-# CONFIG_VIDEO_SELECT is not set
-# CONFIG_MDA_CONSOLE is not set
-CONFIG_DUMMY_CONSOLE=y
-
-#
-# Sound
-#
-CONFIG_SOUND=y
-
-#
-# Advanced Linux Sound Architecture
-#
-# CONFIG_SND is not set
-
-#
-# Open Sound System
-#
-# CONFIG_SOUND_PRIME is not set
-CONFIG_HID_SUPPORT=y
-CONFIG_HID=y
-# CONFIG_HID_DEBUG is not set
-
-#
-# USB Input Devices
-#
-CONFIG_USB_HID=y
-# CONFIG_USB_HIDINPUT_POWERBOOK is not set
-# CONFIG_HID_FF is not set
-CONFIG_USB_HIDDEV=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
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEVICEFS=y
-CONFIG_USB_DEVICE_CLASS=y
-# CONFIG_USB_DYNAMIC_MINORS is not set
-CONFIG_USB_SUSPEND=y
-# CONFIG_USB_PERSIST is not set
-# CONFIG_USB_OTG is not set
-
-#
-# USB Host Controller Drivers
-#
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_EHCI_SPLIT_ISO=y
-CONFIG_USB_EHCI_ROOT_HUB_TT=y
-CONFIG_USB_EHCI_TT_NEWSCHED=y
-# CONFIG_USB_ISP116X_HCD is not set
-# CONFIG_USB_OHCI_HCD is not set
-CONFIG_USB_UHCI_HCD=m
-# CONFIG_USB_SL811_HCD is not set
-# CONFIG_USB_R8A66597_HCD is not set
-
-#
-# USB Device Class drivers
-#
-# CONFIG_USB_ACM is not set
-CONFIG_USB_PRINTER=y
-
-#
-# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
-#
-
-#
-# 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 is not set
-# CONFIG_USB_STORAGE_FREECOM is not set
-# CONFIG_USB_STORAGE_DPCM is not set
-# CONFIG_USB_STORAGE_USBAT is not set
-# CONFIG_USB_STORAGE_SDDR09 is not set
-# CONFIG_USB_STORAGE_SDDR55 is not set
-# CONFIG_USB_STORAGE_JUMPSHOT is not set
-# CONFIG_USB_STORAGE_ALAUDA is not set
-# CONFIG_USB_STORAGE_KARMA is not set
-# CONFIG_USB_LIBUSUAL is not set
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_MICROTEK is not set
-# CONFIG_USB_MON is not set
-
-#
-# USB port drivers
-#
-# CONFIG_USB_USS720 is not set
-
-#
-# USB Serial Converter support
-#
-# CONFIG_USB_SERIAL is not set
-
-#
-# USB Miscellaneous drivers
-#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
-# CONFIG_USB_ADUTUX is not set
-# CONFIG_USB_AUERSWALD is not set
-# CONFIG_USB_RIO500 is not set
-# CONFIG_USB_LEGOTOWER is not set
-# CONFIG_USB_LCD is not set
-# CONFIG_USB_BERRY_CHARGE is not set
-# CONFIG_USB_LED is not set
-# CONFIG_USB_CYPRESS_CY7C63 is not set
-# CONFIG_USB_CYTHERM is not set
-# CONFIG_USB_PHIDGET is not set
-# CONFIG_USB_IDMOUSE is not set
-# CONFIG_USB_FTDI_ELAN is not set
-# CONFIG_USB_APPLEDISPLAY is not set
-# CONFIG_USB_SISUSBVGA is not set
-# CONFIG_USB_LD is not set
-# CONFIG_USB_TRANCEVIBRATOR is not set
-# CONFIG_USB_IOWARRIOR is not set
-# CONFIG_USB_TEST is not set
-
-#
-# USB DSL modem support
-#
-
-#
-# USB Gadget Support
-#
-# CONFIG_USB_GADGET is not set
-# CONFIG_MMC is not set
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=m
-
-#
-# LED drivers
-#
-
-#
-# LED Triggers
-#
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=m
-CONFIG_LEDS_TRIGGER_HEARTBEAT=m
-# CONFIG_INFINIBAND is not set
-# CONFIG_EDAC is not set
-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 is not set
-# CONFIG_RTC_DRV_TEST is not set
-
-#
-# I2C RTC drivers
-#
-# CONFIG_RTC_DRV_DS1307 is not set
-# CONFIG_RTC_DRV_DS1672 is not set
-# CONFIG_RTC_DRV_MAX6900 is not set
-# CONFIG_RTC_DRV_RS5C372 is not set
-# CONFIG_RTC_DRV_ISL1208 is not set
-# CONFIG_RTC_DRV_X1205 is not set
-# CONFIG_RTC_DRV_PCF8563 is not set
-# CONFIG_RTC_DRV_PCF8583 is not set
-# CONFIG_RTC_DRV_M41T80 is not set
-
-#
-# SPI RTC drivers
-#
-
-#
-# Platform RTC drivers
-#
-# CONFIG_RTC_DRV_CMOS is not set
-# CONFIG_RTC_DRV_DS1553 is not set
-# CONFIG_RTC_DRV_STK17TA8 is not set
-# CONFIG_RTC_DRV_DS1742 is not set
-# CONFIG_RTC_DRV_M48T86 is not set
-# CONFIG_RTC_DRV_M48T59 is not set
-# CONFIG_RTC_DRV_V3020 is not set
-
-#
-# on-CPU RTC drivers
-#
-
-#
-# DMA Engine support
-#
-# CONFIG_DMA_ENGINE is not set
-
-#
-# DMA Clients
-#
-
-#
-# DMA Devices
-#
-CONFIG_AUXDISPLAY=y
-# CONFIG_KS0108 is not set
-# CONFIG_VIRTUALIZATION is not set
-
-#
-# Userspace I/O
-#
-# CONFIG_UIO is not set
-
-#
-# File systems
-#
-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_FS_XIP=y
-CONFIG_EXT3_FS=y
-CONFIG_EXT3_FS_XATTR=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-CONFIG_EXT3_FS_SECURITY=y
-# CONFIG_EXT4DEV_FS is not set
-CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
-CONFIG_FS_MBCACHE=y
-# CONFIG_REISERFS_FS is not set
-# CONFIG_JFS_FS is not set
-CONFIG_FS_POSIX_ACL=y
-CONFIG_XFS_FS=m
-CONFIG_XFS_QUOTA=y
-CONFIG_XFS_SECURITY=y
-CONFIG_XFS_POSIX_ACL=y
-CONFIG_XFS_RT=y
-# CONFIG_GFS2_FS is not set
-# CONFIG_OCFS2_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_ROMFS_FS is not set
-CONFIG_INOTIFY=y
-CONFIG_INOTIFY_USER=y
-# CONFIG_QUOTA is not set
-CONFIG_QUOTACTL=y
-CONFIG_DNOTIFY=y
-# CONFIG_AUTOFS_FS is not set
-CONFIG_AUTOFS4_FS=y
-CONFIG_FUSE_FS=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=850
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-15"
-CONFIG_NTFS_FS=y
-# CONFIG_NTFS_DEBUG is not set
-# CONFIG_NTFS_RW is not set
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_KCORE=y
-CONFIG_PROC_SYSCTL=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-# CONFIG_TMPFS_POSIX_ACL is not set
-# CONFIG_HUGETLBFS is not set
-# CONFIG_HUGETLB_PAGE is not set
-CONFIG_RAMFS=y
-# CONFIG_CONFIGFS_FS is not set
-
-#
-# Miscellaneous filesystems
-#
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EFS_FS is not set
-# CONFIG_CRAMFS is not set
-# CONFIG_SQUASHFS is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-
-#
-# Network File Systems
-#
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=y
-# CONFIG_NFS_DIRECTIO is not set
-CONFIG_NFSD=y
-CONFIG_NFSD_V2_ACL=y
-CONFIG_NFSD_V3=y
-CONFIG_NFSD_V3_ACL=y
-CONFIG_NFSD_V4=y
-CONFIG_NFSD_TCP=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_BIND34 is not set
-CONFIG_RPCSEC_GSS_KRB5=y
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
-CONFIG_SMB_FS=y
-# CONFIG_SMB_NLS_DEFAULT is not set
-# CONFIG_CIFS is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_CODA_FS is not set
-# CONFIG_AFS_FS is not set
-
-#
-# Partition Types
-#
-# CONFIG_PARTITION_ADVANCED is not set
-CONFIG_MSDOS_PARTITION=y
-
-#
-# Native Language Support
-#
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="utf-8"
-# CONFIG_NLS_CODEPAGE_437 is not set
-# CONFIG_NLS_CODEPAGE_737 is not set
-# CONFIG_NLS_CODEPAGE_775 is not set
-CONFIG_NLS_CODEPAGE_850=y
-# CONFIG_NLS_CODEPAGE_852 is not set
-# CONFIG_NLS_CODEPAGE_855 is not set
-# CONFIG_NLS_CODEPAGE_857 is not set
-# CONFIG_NLS_CODEPAGE_860 is not set
-# CONFIG_NLS_CODEPAGE_861 is not set
-# CONFIG_NLS_CODEPAGE_862 is not set
-# CONFIG_NLS_CODEPAGE_863 is not set
-# CONFIG_NLS_CODEPAGE_864 is not set
-# CONFIG_NLS_CODEPAGE_865 is not set
-# CONFIG_NLS_CODEPAGE_866 is not set
-# CONFIG_NLS_CODEPAGE_869 is not set
-# CONFIG_NLS_CODEPAGE_936 is not set
-# CONFIG_NLS_CODEPAGE_950 is not set
-# CONFIG_NLS_CODEPAGE_932 is not set
-# CONFIG_NLS_CODEPAGE_949 is not set
-# CONFIG_NLS_CODEPAGE_874 is not set
-# CONFIG_NLS_ISO8859_8 is not set
-# CONFIG_NLS_CODEPAGE_1250 is not set
-# CONFIG_NLS_CODEPAGE_1251 is not set
-# CONFIG_NLS_ASCII is not set
-CONFIG_NLS_ISO8859_1=y
-# CONFIG_NLS_ISO8859_2 is not set
-# CONFIG_NLS_ISO8859_3 is not set
-# CONFIG_NLS_ISO8859_4 is not set
-# CONFIG_NLS_ISO8859_5 is not set
-# CONFIG_NLS_ISO8859_6 is not set
-# CONFIG_NLS_ISO8859_7 is not set
-# CONFIG_NLS_ISO8859_9 is not set
-# CONFIG_NLS_ISO8859_13 is not set
-# CONFIG_NLS_ISO8859_14 is not set
-CONFIG_NLS_ISO8859_15=y
-# CONFIG_NLS_KOI8_R is not set
-# CONFIG_NLS_KOI8_U is not set
-CONFIG_NLS_UTF8=y
-
-#
-# Distributed Lock Manager
-#
-# CONFIG_DLM is not set
-# CONFIG_INSTRUMENTATION is not set
-
-#
-# Kernel hacking
-#
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-# CONFIG_PRINTK_TIME is not set
-CONFIG_ENABLE_MUST_CHECK=y
-# CONFIG_MAGIC_SYSRQ is not set
-CONFIG_UNUSED_SYMBOLS=y
-# CONFIG_DEBUG_FS is not set
-# CONFIG_HEADERS_CHECK is not set
-CONFIG_DEBUG_KERNEL=y
-# CONFIG_DEBUG_SHIRQ is not set
-# CONFIG_DETECT_SOFTLOCKUP is not set
-# CONFIG_SCHED_DEBUG is not set
-# CONFIG_SCHEDSTATS is not set
-CONFIG_TIMER_STATS=y
-# CONFIG_DEBUG_SLAB is not set
-CONFIG_DEBUG_PREEMPT=y
-# CONFIG_DEBUG_RT_MUTEXES is not set
-# CONFIG_RT_MUTEX_TESTER is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-# CONFIG_DEBUG_MUTEXES is not set
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-# CONFIG_DEBUG_KOBJECT is not set
-# CONFIG_DEBUG_HIGHMEM is not set
-CONFIG_DEBUG_BUGVERBOSE=y
-# CONFIG_DEBUG_INFO is not set
-# CONFIG_DEBUG_VM is not set
-# CONFIG_DEBUG_LIST is not set
-# CONFIG_FRAME_POINTER is not set
-CONFIG_FORCED_INLINING=y
-# CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_FAULT_INJECTION is not set
-CONFIG_EARLY_PRINTK=y
-# CONFIG_DEBUG_STACKOVERFLOW is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
-
-#
-# Page alloc debug is incompatible with Software Suspend on i386
-#
-# CONFIG_DEBUG_RODATA is not set
-# CONFIG_4KSTACKS is not set
-CONFIG_X86_FIND_SMP_CONFIG=y
-CONFIG_X86_MPPARSE=y
-CONFIG_DOUBLEFAULT=y
-
-#
-# Security options
-#
-# CONFIG_KEYS is not set
-# CONFIG_SECURITY is not set
-CONFIG_CRYPTO=y
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_BLKCIPHER=y
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_MANAGER=y
-# CONFIG_CRYPTO_HMAC is not set
-CONFIG_CRYPTO_XCBC=y
-# CONFIG_CRYPTO_NULL is not set
-CONFIG_CRYPTO_MD4=y
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=y
-CONFIG_CRYPTO_SHA256=y
-CONFIG_CRYPTO_SHA512=y
-# CONFIG_CRYPTO_WP512 is not set
-# CONFIG_CRYPTO_TGR192 is not set
-CONFIG_CRYPTO_GF128MUL=m
-CONFIG_CRYPTO_ECB=y
-CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_PCBC=y
-CONFIG_CRYPTO_LRW=m
-# CONFIG_CRYPTO_CRYPTD is not set
-CONFIG_CRYPTO_DES=y
-CONFIG_CRYPTO_FCRYPT=y
-CONFIG_CRYPTO_BLOWFISH=y
-CONFIG_CRYPTO_TWOFISH=y
-CONFIG_CRYPTO_TWOFISH_COMMON=y
-# CONFIG_CRYPTO_TWOFISH_586 is not set
-CONFIG_CRYPTO_SERPENT=y
-CONFIG_CRYPTO_AES=y
-CONFIG_CRYPTO_AES_586=y
-# CONFIG_CRYPTO_CAST5 is not set
-# CONFIG_CRYPTO_CAST6 is not set
-# CONFIG_CRYPTO_TEA is not set
-CONFIG_CRYPTO_ARC4=y
-# CONFIG_CRYPTO_KHAZAD is not set
-# CONFIG_CRYPTO_ANUBIS is not set
-# CONFIG_CRYPTO_DEFLATE is not set
-CONFIG_CRYPTO_LZF=y
-CONFIG_CRYPTO_MICHAEL_MIC=y
-CONFIG_CRYPTO_CRC32C=y
-CONFIG_CRYPTO_CAMELLIA=y
-# CONFIG_CRYPTO_TEST is not set
-# CONFIG_CRYPTO_HW is not set
-
-#
-# Library routines
-#
-CONFIG_BITREVERSE=y
-# CONFIG_CRC_CCITT is not set
-# CONFIG_CRC16 is not set
-CONFIG_CRC_ITU_T=y
-CONFIG_CRC32=y
-CONFIG_CRC7=y
-CONFIG_LIBCRC32C=y
-CONFIG_AUDIT_GENERIC=y
-CONFIG_ZLIB_INFLATE=y
-CONFIG_TEXTSEARCH=y
-CONFIG_TEXTSEARCH_KMP=y
-CONFIG_TEXTSEARCH_BM=y
-CONFIG_TEXTSEARCH_FSM=y
-CONFIG_PLIST=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-CONFIG_HAS_DMA=y
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_PENDING_IRQ=y
-CONFIG_X86_SMP=y
-CONFIG_X86_HT=y
-CONFIG_X86_BIOS_REBOOT=y
-CONFIG_X86_TRAMPOLINE=y
-CONFIG_KTIME_SCALAR=y
diff --git a/sys-kernel/thinkpad-sources/files/configs/config-for-core-or-core2-2.6.23-r2 b/sys-kernel/thinkpad-sources/files/configs/config-for-core-or-core2-2.6.24
index a9bcbfe..e245618 100644
--- a/sys-kernel/thinkpad-sources/files/configs/config-for-core-or-core2-2.6.23-r2
+++ b/sys-kernel/thinkpad-sources/files/configs/config-for-core-or-core2-2.6.24
@@ -1,9 +1,12 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.23-thinkpad-r2
-# Mon Nov 19 15:16:30 2007
+# Linux kernel version: 2.6.24-thinkpad
+# Thu Jan 31 14:19:09 2008
#
+# CONFIG_64BIT is not set
CONFIG_X86_32=y
+# CONFIG_X86_64 is not set
+CONFIG_X86=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
@@ -12,7 +15,6 @@ CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_SEMAPHORE_SLEEPERS=y
-CONFIG_X86=y
CONFIG_MMU=y
CONFIG_ZONE_DMA=y
CONFIG_QUICKLIST=y
@@ -22,6 +24,24 @@ CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_DMI=y
+# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+# CONFIG_GENERIC_TIME_VSYSCALL is not set
+CONFIG_ARCH_SUPPORTS_OPROFILE=y
+# CONFIG_ZONE_DMA32 is not set
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+# CONFIG_AUDIT_ARCH is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_X86_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"
#
@@ -39,11 +59,16 @@ CONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_USER_NS is not set
+# CONFIG_PID_NS is not set
CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_TREE=y
# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=15
-# CONFIG_CPUSETS is not set
+# CONFIG_CGROUPS is not set
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_FAIR_USER_SCHED=y
+# CONFIG_FAIR_CGROUP_SCHED is not set
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_RELAY is not set
# CONFIG_BLK_DEV_INITRD is not set
@@ -70,6 +95,7 @@ CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
+CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
@@ -116,7 +142,9 @@ CONFIG_X86_PC=y
# CONFIG_X86_VISWS is not set
# CONFIG_X86_GENERICARCH is not set
# CONFIG_X86_ES7000 is not set
-# CONFIG_PARAVIRT is not set
+# CONFIG_X86_VSMP is not set
+CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
+# CONFIG_PARAVIRT_GUEST is not set
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
@@ -126,7 +154,6 @@ CONFIG_X86_PC=y
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUMM is not set
-CONFIG_MCORE2=y
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
@@ -141,14 +168,13 @@ CONFIG_MCORE2=y
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
# CONFIG_MVIAC7 is not set
+# CONFIG_MPSC is not set
+CONFIG_MCORE2=y
+# CONFIG_GENERIC_CPU is not set
# CONFIG_X86_GENERIC is not set
CONFIG_X86_CMPXCHG=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_XADD=y
-CONFIG_RWSEM_XCHGADD_ALGORITHM=y
-# CONFIG_ARCH_HAS_ILOG2_U32 is not set
-# CONFIG_ARCH_HAS_ILOG2_U64 is not set
-CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
@@ -179,14 +205,6 @@ CONFIG_VM86=y
# CONFIG_MICROCODE is not set
# CONFIG_X86_MSR is not set
# CONFIG_X86_CPUID is not set
-
-#
-# Firmware Drivers
-#
-# CONFIG_EDD is not set
-# CONFIG_DELL_RBU is not set
-# CONFIG_DCDBAS is not set
-CONFIG_DMIID=y
# CONFIG_NOHIGHMEM is not set
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
@@ -195,7 +213,6 @@ CONFIG_HIGHMEM=y
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
-CONFIG_ARCH_POPULATES_NODE_MAP=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -203,6 +220,7 @@ CONFIG_FLATMEM_MANUAL=y
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_SPARSEMEM_STATIC=y
+# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_RESOURCES_64BIT is not set
CONFIG_ZONE_DMA_FLAG=1
@@ -230,7 +248,7 @@ CONFIG_HOTPLUG_CPU=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
#
-# Power management options (ACPI, APM)
+# Power management options
#
CONFIG_PM=y
# CONFIG_PM_LEGACY is not set
@@ -253,11 +271,14 @@ 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_CLUSTER is not set
CONFIG_TOI_CHECKSUM=y
CONFIG_TOI_DEFAULT_WAIT=25
# CONFIG_TOI_PAGEFLAGS_TEST is not set
@@ -265,6 +286,8 @@ 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
@@ -295,8 +318,10 @@ 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=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+# 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
@@ -326,20 +351,12 @@ CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y
#
# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set
# CONFIG_X86_SPEEDSTEP_LIB is not set
-
-#
-# CPU idle PM support
-#
CONFIG_CPU_IDLE=y
-
-#
-# Governors
-#
CONFIG_CPU_IDLE_GOV_LADDER=y
CONFIG_CPU_IDLE_GOV_MENU=y
#
-# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
+# Bus options (PCI etc.)
#
CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
@@ -349,12 +366,13 @@ CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_DOMAINS=y
CONFIG_PCIEPORTBUS=y
CONFIG_HOTPLUG_PCI_PCIE=y
-# CONFIG_HOTPLUG_PCI_PCIE_POLL_EVENT_MODE is not set
CONFIG_PCIEAER=y
CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_PCI_MSI=y
+CONFIG_PCI_LEGACY=y
# CONFIG_PCI_DEBUG is not set
CONFIG_HT_IRQ=y
CONFIG_ISA_DMA_API=y
@@ -362,10 +380,6 @@ CONFIG_ISA=y
# CONFIG_EISA is not set
# CONFIG_MCA is not set
# CONFIG_SCx200 is not set
-
-#
-# PCCARD (PCMCIA/CardBus) support
-#
CONFIG_PCCARD=y
# CONFIG_PCMCIA_DEBUG is not set
CONFIG_PCMCIA=y
@@ -398,7 +412,7 @@ CONFIG_HOTPLUG_PCI_ACPI_IBM=y
# CONFIG_HOTPLUG_PCI_SHPC is not set
#
-# Executable file formats
+# Executable file formats / Emulations
#
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_AOUT=y
@@ -443,6 +457,7 @@ CONFIG_INET_TUNNEL=y
CONFIG_INET_XFRM_MODE_TRANSPORT=m
CONFIG_INET_XFRM_MODE_TUNNEL=m
CONFIG_INET_XFRM_MODE_BEET=m
+# CONFIG_INET_LRO is not set
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_TCP_CONG_ADVANCED is not set
@@ -528,6 +543,7 @@ CONFIG_NETFILTER_XT_MATCH_STATE=m
CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
CONFIG_NETFILTER_XT_MATCH_STRING=y
CONFIG_NETFILTER_XT_MATCH_TCPMSS=y
+# CONFIG_NETFILTER_XT_MATCH_TIME is not set
CONFIG_NETFILTER_XT_MATCH_U32=m
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
@@ -610,12 +626,7 @@ CONFIG_IP6_NF_RAW=y
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
-
-#
-# QoS and/or fair queueing
-#
CONFIG_NET_SCHED=y
-CONFIG_NET_SCH_FIFO=y
#
# Queueing/Scheduling
@@ -648,6 +659,7 @@ CONFIG_NET_CLS_ROUTE=y
# CONFIG_NET_EMATCH is not set
# CONFIG_NET_CLS_ACT is not set
# CONFIG_NET_CLS_POLICE is not set
+CONFIG_NET_SCH_FIFO=y
#
# Network testing
@@ -683,8 +695,10 @@ CONFIG_BT_HCIUSB_SCO=y
# Wireless
#
CONFIG_CFG80211=y
+CONFIG_NL80211=y
CONFIG_WIRELESS_EXT=y
CONFIG_MAC80211=m
+CONFIG_MAC80211_RCSIMPLE=y
CONFIG_MAC80211_LEDS=y
# CONFIG_MAC80211_DEBUG is not set
CONFIG_IEEE80211=m
@@ -696,6 +710,7 @@ CONFIG_IEEE80211_SOFTMAC=m
# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
CONFIG_RFKILL=y
CONFIG_RFKILL_INPUT=y
+CONFIG_RFKILL_LEDS=y
# CONFIG_NET_9P is not set
#
@@ -705,6 +720,7 @@ CONFIG_RFKILL_INPUT=y
#
# Generic Driver Options
#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
@@ -755,6 +771,7 @@ CONFIG_MISC_DEVICES=y
# CONFIG_SGI_IOC4 is not set
# CONFIG_TIFM_CORE is not set
# CONFIG_ASUS_LAPTOP is not set
+# CONFIG_FUJITSU_LAPTOP is not set
# CONFIG_MSI_LAPTOP is not set
# CONFIG_SONY_LAPTOP is not set
CONFIG_THINKPAD_ACPI=m
@@ -800,6 +817,7 @@ CONFIG_SCSI_WAIT_SCAN=m
# CONFIG_SCSI_FC_ATTRS is not set
# CONFIG_SCSI_ISCSI_ATTRS is not set
# CONFIG_SCSI_SAS_LIBSAS is not set
+# CONFIG_SCSI_SRP_ATTRS is not set
# CONFIG_SCSI_LOWLEVEL is not set
# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
CONFIG_ATA=y
@@ -821,6 +839,7 @@ CONFIG_ATA_PIIX=y
# CONFIG_SATA_VIA is not set
# CONFIG_SATA_VITESSE is not set
# CONFIG_SATA_INIC162X is not set
+# CONFIG_PATA_ACPI is not set
# CONFIG_PATA_ALI is not set
# CONFIG_PATA_AMD is not set
# CONFIG_PATA_ARTOP is not set
@@ -830,6 +849,7 @@ CONFIG_ATA_PIIX=y
# CONFIG_PATA_CS5520 is not set
# CONFIG_PATA_CS5530 is not set
# CONFIG_PATA_CS5535 is not set
+# CONFIG_PATA_CS5536 is not set
# CONFIG_PATA_CYPRESS is not set
# CONFIG_PATA_EFAR is not set
# CONFIG_ATA_GENERIC is not set
@@ -847,6 +867,7 @@ CONFIG_ATA_PIIX=y
# CONFIG_PATA_OLDPIIX is not set
# CONFIG_PATA_NETCELL is not set
# CONFIG_PATA_NS87410 is not set
+# CONFIG_PATA_NS87415 is not set
# CONFIG_PATA_OPTI is not set
# CONFIG_PATA_OPTIDMA is not set
# CONFIG_PATA_PCMCIA is not set
@@ -863,14 +884,7 @@ CONFIG_ATA_PIIX=y
# CONFIG_PATA_WINBOND is not set
# CONFIG_PATA_WINBOND_VLB is not set
# CONFIG_MD is not set
-
-#
-# Fusion MPT device support
-#
# CONFIG_FUSION is not set
-# CONFIG_FUSION_SPI is not set
-# CONFIG_FUSION_FC is not set
-# CONFIG_FUSION_SAS is not set
#
# IEEE 1394 (FireWire) support
@@ -886,6 +900,7 @@ CONFIG_NETDEVICES_MULTIQUEUE=y
# CONFIG_MACVLAN is not set
# CONFIG_EQUALIZER is not set
CONFIG_TUN=y
+# CONFIG_VETH is not set
# CONFIG_NET_SB1000 is not set
# CONFIG_ARCNET is not set
# CONFIG_NET_ETHERNET is not set
@@ -897,6 +912,7 @@ CONFIG_E1000=m
CONFIG_E1000_NAPI=y
CONFIG_E1000_DISABLE_PACKET_SPLIT=y
CONFIG_E1000E=m
+# CONFIG_IP1000 is not set
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
@@ -937,9 +953,21 @@ CONFIG_IPW2200_QOS=y
CONFIG_PRISM54=m
# CONFIG_USB_ZD1201 is not set
# CONFIG_RTL8187 is not set
+# CONFIG_ADM8211 is not set
+# CONFIG_P54_COMMON is not set
+CONFIG_IWLWIFI=y
+# CONFIG_IWLWIFI_DEBUG is not set
+CONFIG_IWLWIFI_SENSITIVITY=y
+CONFIG_IWLWIFI_SPECTRUM_MEASUREMENT=y
+CONFIG_IWLWIFI_QOS=y
+CONFIG_IWL4965=m
+CONFIG_IWL3945=m
# CONFIG_HOSTAP is not set
# CONFIG_BCM43XX is not set
+# CONFIG_B43 is not set
+# CONFIG_B43LEGACY is not set
# CONFIG_ZD1211RW is not set
+# CONFIG_RT2X00 is not set
#
# USB Network Adapters
@@ -948,7 +976,6 @@ CONFIG_PRISM54=m
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
-# CONFIG_USB_USBNET_MII is not set
# CONFIG_USB_USBNET is not set
CONFIG_NET_PCMCIA=y
CONFIG_PCMCIA_3C589=m
@@ -988,7 +1015,7 @@ CONFIG_SLHC=m
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
-# CONFIG_INPUT_POLLDEV is not set
+CONFIG_INPUT_POLLDEV=m
#
# Userland interfaces
@@ -998,7 +1025,6 @@ CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1400
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=1050
# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_TSDEV is not set
CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG is not set
@@ -1085,9 +1111,7 @@ CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
# CONFIG_PRINTER is not set
# CONFIG_PPDEV is not set
-# CONFIG_TIPAR is not set
# CONFIG_IPMI_HANDLER is not set
-# CONFIG_WATCHDOG is not set
# CONFIG_HW_RANDOM is not set
CONFIG_NVRAM=y
CONFIG_RTC=y
@@ -1095,8 +1119,6 @@ CONFIG_RTC=y
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_SONYPI is not set
-# CONFIG_AGP is not set
-# CONFIG_DRM is not set
#
# PCMCIA character devices
@@ -1180,7 +1202,10 @@ CONFIG_I2C_ALGOPCA=m
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set
# CONFIG_W1 is not set
-# CONFIG_POWER_SUPPLY is not set
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+# CONFIG_PDA_POWER is not set
+# CONFIG_BATTERY_DS2760 is not set
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
# CONFIG_SENSORS_ABITUGURU is not set
@@ -1192,13 +1217,18 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_ADM1029 is not set
# CONFIG_SENSORS_ADM1031 is not set
# CONFIG_SENSORS_ADM9240 is not set
+# CONFIG_SENSORS_ADT7470 is not set
# CONFIG_SENSORS_K8TEMP is not set
# CONFIG_SENSORS_ASB100 is not set
# CONFIG_SENSORS_ATXP1 is not set
# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_I5K_AMB is not set
# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_F71882FG is not set
+# CONFIG_SENSORS_F75375S is not set
# CONFIG_SENSORS_FSCHER is not set
# CONFIG_SENSORS_FSCPOS is not set
+# CONFIG_SENSORS_FSCHMD is not set
# CONFIG_SENSORS_GL518SM is not set
# CONFIG_SENSORS_GL520SM is not set
CONFIG_SENSORS_CORETEMP=y
@@ -1237,6 +1267,13 @@ CONFIG_SENSORS_CORETEMP=y
CONFIG_SENSORS_HDAPS=m
# CONFIG_SENSORS_APPLESMC is not set
# CONFIG_HWMON_DEBUG_CHIP is not set
+# CONFIG_WATCHDOG is not set
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB_POSSIBLE=y
+# CONFIG_SSB is not set
#
# Multifunction device drivers
@@ -1289,7 +1326,6 @@ CONFIG_VIDEO_CPIA2=m
CONFIG_VIDEO_SAA5246A=m
CONFIG_VIDEO_SAA5249=m
CONFIG_TUNER_3036=m
-# CONFIG_TUNER_TEA5761 is not set
CONFIG_VIDEO_STRADIS=m
CONFIG_VIDEO_ZORAN_ZR36060=m
CONFIG_VIDEO_ZORAN=m
@@ -1309,6 +1345,7 @@ CONFIG_VIDEO_CX88=m
CONFIG_VIDEO_CX88_BLACKBIRD=m
CONFIG_VIDEO_CX88_DVB=m
CONFIG_VIDEO_CX88_VP3054=m
+# CONFIG_VIDEO_CX23885 is not set
# CONFIG_VIDEO_IVTV is not set
CONFIG_VIDEO_CAFE_CCIC=m
CONFIG_V4L_USB_DRIVERS=y
@@ -1450,6 +1487,7 @@ CONFIG_DVB_OR51211=m
CONFIG_DVB_OR51132=m
CONFIG_DVB_BCM3510=m
CONFIG_DVB_LGDT330X=m
+# CONFIG_DVB_S5H1409 is not set
#
# Tuners/PLL support
@@ -1459,6 +1497,9 @@ CONFIG_DVB_TDA826X=m
CONFIG_DVB_TDA827X=m
CONFIG_DVB_TUNER_QT1010=m
CONFIG_DVB_TUNER_MT2060=m
+CONFIG_DVB_TUNER_MT2266=m
+# CONFIG_DVB_TUNER_MT2131 is not set
+CONFIG_DVB_TUNER_DIB0070=m
#
# Miscellaneous devices
@@ -1469,8 +1510,16 @@ CONFIG_DVB_TUA6100=m
CONFIG_VIDEO_SAA7146=m
CONFIG_VIDEO_SAA7146_VV=m
CONFIG_VIDEO_TUNER=m
-CONFIG_VIDEO_BUF=m
-CONFIG_VIDEO_BUF_DVB=m
+# CONFIG_VIDEO_TUNER_CUSTOMIZE is not set
+CONFIG_TUNER_MT20XX=m
+CONFIG_TUNER_TDA8290=m
+CONFIG_TUNER_TEA5761=m
+CONFIG_TUNER_TEA5767=m
+CONFIG_TUNER_SIMPLE=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_I2C=m
CONFIG_VIDEO_IR=m
@@ -1480,17 +1529,20 @@ CONFIG_VIDEO_TVEEPROM=m
#
# Graphics support
#
+# CONFIG_AGP is not set
+# CONFIG_DRM is not set
+# CONFIG_VGASTATE is not set
+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
+# CONFIG_FB is not set
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=m
+# CONFIG_BACKLIGHT_CORGI is not set
# CONFIG_BACKLIGHT_PROGEAR is not set
#
# Display device support
#
# CONFIG_DISPLAY_SUPPORT is not set
-# CONFIG_VGASTATE is not set
-# CONFIG_VIDEO_OUTPUT_CONTROL is not set
-# CONFIG_FB is not set
#
# Console display driver support
@@ -1518,6 +1570,7 @@ CONFIG_SOUND=y
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
# CONFIG_HID_DEBUG is not set
+# CONFIG_HIDRAW is not set
#
# USB Input Devices
@@ -1573,6 +1626,7 @@ CONFIG_USB_STORAGE=y
# CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_STORAGE_DATAFAB is not set
# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
# CONFIG_USB_STORAGE_DPCM is not set
# CONFIG_USB_STORAGE_USBAT is not set
# CONFIG_USB_STORAGE_SDDR09 is not set
@@ -1666,6 +1720,7 @@ CONFIG_RTC_INTF_DEV=y
# I2C RTC drivers
#
# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
# CONFIG_RTC_DRV_DS1672 is not set
# CONFIG_RTC_DRV_MAX6900 is not set
# CONFIG_RTC_DRV_RS5C372 is not set
@@ -1693,19 +1748,12 @@ CONFIG_RTC_INTF_DEV=y
#
# on-CPU RTC drivers
#
-
-#
-# DMA Engine support
-#
-# CONFIG_DMA_ENGINE is not set
-
-#
-# DMA Clients
-#
+CONFIG_DMADEVICES=y
#
# DMA Devices
#
+# CONFIG_INTEL_IOATDMA is not set
CONFIG_AUXDISPLAY=y
# CONFIG_KS0108 is not set
# CONFIG_VIRTUALIZATION is not set
@@ -1716,6 +1764,14 @@ CONFIG_AUXDISPLAY=y
# CONFIG_UIO is not set
#
+# Firmware Drivers
+#
+# CONFIG_EDD is not set
+# CONFIG_DELL_RBU is not set
+# CONFIG_DCDBAS is not set
+CONFIG_DMIID=y
+
+#
# File systems
#
CONFIG_EXT2_FS=y
@@ -1730,7 +1786,6 @@ CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
# CONFIG_EXT4DEV_FS is not set
CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
@@ -1785,7 +1840,6 @@ CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_HUGETLBFS is not set
# CONFIG_HUGETLB_PAGE is not set
-CONFIG_RAMFS=y
# CONFIG_CONFIGFS_FS is not set
#
@@ -1805,10 +1859,7 @@ CONFIG_RAMFS=y
# CONFIG_QNX4FS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
-
-#
-# Network File Systems
-#
+CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y
@@ -1842,10 +1893,6 @@ CONFIG_SMB_FS=y
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y
-
-#
-# Native Language Support
-#
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="utf-8"
# CONFIG_NLS_CODEPAGE_437 is not set
@@ -1886,10 +1933,6 @@ CONFIG_NLS_ISO8859_15=y
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=y
-
-#
-# Distributed Lock Manager
-#
# CONFIG_DLM is not set
# CONFIG_INSTRUMENTATION is not set
@@ -1898,6 +1941,7 @@ CONFIG_NLS_UTF8=y
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
# CONFIG_MAGIC_SYSRQ is not set
CONFIG_UNUSED_SYMBOLS=y
@@ -1926,10 +1970,13 @@ CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_INFO is not set
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_SG is not set
# CONFIG_FRAME_POINTER is not set
CONFIG_FORCED_INLINING=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_FAULT_INJECTION is not set
+# CONFIG_SAMPLES is not set
CONFIG_EARLY_PRINTK=y
# CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_DEBUG_STACK_USAGE is not set
@@ -1948,6 +1995,7 @@ CONFIG_DOUBLEFAULT=y
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_BLKCIPHER=y
@@ -1968,6 +2016,7 @@ CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_PCBC=y
CONFIG_CRYPTO_LRW=m
+# CONFIG_CRYPTO_XTS is not set
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_FCRYPT=y
@@ -1984,12 +2033,14 @@ CONFIG_CRYPTO_AES_586=y
CONFIG_CRYPTO_ARC4=y
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_SEED is not set
# CONFIG_CRYPTO_DEFLATE is not set
CONFIG_CRYPTO_LZF=y
CONFIG_CRYPTO_MICHAEL_MIC=y
CONFIG_CRYPTO_CRC32C=y
CONFIG_CRYPTO_CAMELLIA=y
# CONFIG_CRYPTO_TEST is not set
+# CONFIG_CRYPTO_AUTHENC is not set
# CONFIG_CRYPTO_HW is not set
#
@@ -2013,11 +2064,3 @@ CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_PENDING_IRQ=y
-CONFIG_X86_SMP=y
-CONFIG_X86_HT=y
-CONFIG_X86_BIOS_REBOOT=y
-CONFIG_X86_TRAMPOLINE=y
-CONFIG_KTIME_SCALAR=y
diff --git a/sys-kernel/thinkpad-sources/files/digest-thinkpad-sources-2.6.23-r1 b/sys-kernel/thinkpad-sources/files/digest-thinkpad-sources-2.6.23-r1
deleted file mode 100644
index e34866f..0000000
--- a/sys-kernel/thinkpad-sources/files/digest-thinkpad-sources-2.6.23-r1
+++ /dev/null
@@ -1,18 +0,0 @@
-RMD160 b4d459e06a1a482fb4cfe51e8b693f9c95a6254b genpatches-2.6.23-2.base.tar.bz2 6134
-SHA256 fa6c34455470c4d57df1d51829a444343f7cbfca44d726843382baeec5ccbaec genpatches-2.6.23-2.base.tar.bz2 6134
-RMD160 ea133cf3c10e061e3c979a8d12c31e320aa48873 genpatches-2.6.23-2.extras.tar.bz2 148061
-SHA256 9fb3221a449cd8c078b327830111e1fb3af1f289e362c98718289d943834d0a9 genpatches-2.6.23-2.extras.tar.bz2 148061
-MD5 2cc2fd4d521dc5d7cfce0d8a9d1b3472 linux-2.6.23.tar.bz2 45488158
-RMD160 755690e80751d5de86d260fe05c6eeadde116c4e linux-2.6.23.tar.bz2 45488158
-SHA256 d4e67c0935ffb2a4158234bff92cc791b83177866009fc9b2214104e0038dbdb linux-2.6.23.tar.bz2 45488158
-MD5 fe38e769137bf5ffc3b138ee874901ca patch-2.6.23-hrt3.patch.bz2 43556
-RMD160 3234c8eeb3435e3db1690a2913a6c4daab867292 patch-2.6.23-hrt3.patch.bz2 43556
-SHA256 ac64d9423a14d78f9929c885fd499f2308fb2d14e96a37d3da16c35bcee40a59 patch-2.6.23-hrt3.patch.bz2 43556
-MD5 47e988ac858c44d11239d770d7814b98 sco-flowcontrol-v4.3.diff 14993
-RMD160 aa6f41adbe8e6093b251731f107acd5ec6612bde sco-flowcontrol-v4.3.diff 14993
-SHA256 cacd624768bfd60c75843de625f16342f74e25dfe4a0794d79e1a6e14645c5d4 sco-flowcontrol-v4.3.diff 14993
-RMD160 67b55a21934c8d0b7305024a6a1996dec8da7000 thinkpad-acpi-0.18-20071013_v2.6.23.1.patch.gz 16176
-SHA256 b7cd7f1e12a6666d2c591c7fd9f7e81de4a93bdd3e4e6be04f56f05685e0d205 thinkpad-acpi-0.18-20071013_v2.6.23.1.patch.gz 16176
-MD5 2241806942ddebdae5254ece310ae5a4 tuxonice-3.0-rc2-for-2.6.23.1.patch.bz2 104787
-RMD160 c6483adbcfa54582f077781884a4d0a0ccf9b858 tuxonice-3.0-rc2-for-2.6.23.1.patch.bz2 104787
-SHA256 ef86267b6f3d7e309221f5173a881afae1dfa57418be5b3963f2380b0633ca1a tuxonice-3.0-rc2-for-2.6.23.1.patch.bz2 104787
diff --git a/sys-kernel/thinkpad-sources/files/digest-thinkpad-sources-2.6.23-r2 b/sys-kernel/thinkpad-sources/files/digest-thinkpad-sources-2.6.23-r2
deleted file mode 100644
index 663e67d..0000000
--- a/sys-kernel/thinkpad-sources/files/digest-thinkpad-sources-2.6.23-r2
+++ /dev/null
@@ -1,21 +0,0 @@
-MD5 3a93a33be8493cb4c534a55865493c48 genpatches-2.6.23-3.base.tar.bz2 56369
-RMD160 1b2b09c8042f39536acfb32398c71d4094250225 genpatches-2.6.23-3.base.tar.bz2 56369
-SHA256 a6cdb742cddfde72ef64a2c5dcd2c034f52a897e63d108f06201a1e8fe065f88 genpatches-2.6.23-3.base.tar.bz2 56369
-MD5 df2ea06b7452990fd75f3b4f55c2feaf genpatches-2.6.23-3.extras.tar.bz2 147992
-RMD160 bb9cfc7687944b677799b2386bc4b36d95676cea genpatches-2.6.23-3.extras.tar.bz2 147992
-SHA256 9d272384be06e00ecfdfa1795262a0859e86acd09aa95c531ff311e210d87db6 genpatches-2.6.23-3.extras.tar.bz2 147992
-MD5 2cc2fd4d521dc5d7cfce0d8a9d1b3472 linux-2.6.23.tar.bz2 45488158
-RMD160 755690e80751d5de86d260fe05c6eeadde116c4e linux-2.6.23.tar.bz2 45488158
-SHA256 d4e67c0935ffb2a4158234bff92cc791b83177866009fc9b2214104e0038dbdb linux-2.6.23.tar.bz2 45488158
-MD5 fe38e769137bf5ffc3b138ee874901ca patch-2.6.23-hrt3.patch.bz2 43556
-RMD160 3234c8eeb3435e3db1690a2913a6c4daab867292 patch-2.6.23-hrt3.patch.bz2 43556
-SHA256 ac64d9423a14d78f9929c885fd499f2308fb2d14e96a37d3da16c35bcee40a59 patch-2.6.23-hrt3.patch.bz2 43556
-MD5 47e988ac858c44d11239d770d7814b98 sco-flowcontrol-v4.3.diff 14993
-RMD160 aa6f41adbe8e6093b251731f107acd5ec6612bde sco-flowcontrol-v4.3.diff 14993
-SHA256 cacd624768bfd60c75843de625f16342f74e25dfe4a0794d79e1a6e14645c5d4 sco-flowcontrol-v4.3.diff 14993
-MD5 6d61f8f34c6fc194f19f0f135b982621 thinkpad-acpi-0.18-20071112_v2.6.23.1.gz 36875
-RMD160 428d9305482b560beb98165aa370618d449c63c4 thinkpad-acpi-0.18-20071112_v2.6.23.1.gz 36875
-SHA256 0428995ed00088622111f6a9174a0e985230175280ef5b5dd5968c38810452ae thinkpad-acpi-0.18-20071112_v2.6.23.1.gz 36875
-MD5 2241806942ddebdae5254ece310ae5a4 tuxonice-3.0-rc2-for-2.6.23.1.patch.bz2 104787
-RMD160 c6483adbcfa54582f077781884a4d0a0ccf9b858 tuxonice-3.0-rc2-for-2.6.23.1.patch.bz2 104787
-SHA256 ef86267b6f3d7e309221f5173a881afae1dfa57418be5b3963f2380b0633ca1a tuxonice-3.0-rc2-for-2.6.23.1.patch.bz2 104787
diff --git a/sys-kernel/thinkpad-sources/files/digest-thinkpad-sources-2.6.23-r3 b/sys-kernel/thinkpad-sources/files/digest-thinkpad-sources-2.6.23-r3
deleted file mode 100644
index 7155551..0000000
--- a/sys-kernel/thinkpad-sources/files/digest-thinkpad-sources-2.6.23-r3
+++ /dev/null
@@ -1,21 +0,0 @@
-MD5 64e8f86eb25eaa270dbebad1d0b0225c genpatches-2.6.23-4.base.tar.bz2 65559
-RMD160 a7414e8b8fdf93c6fef8bd2065c4396508d541d8 genpatches-2.6.23-4.base.tar.bz2 65559
-SHA256 b8cbce0f691de566b685fc43f502a7d02e9082a370dad1ab12559a69b20a59a3 genpatches-2.6.23-4.base.tar.bz2 65559
-MD5 df2ea06b7452990fd75f3b4f55c2feaf genpatches-2.6.23-4.extras.tar.bz2 147992
-RMD160 bb9cfc7687944b677799b2386bc4b36d95676cea genpatches-2.6.23-4.extras.tar.bz2 147992
-SHA256 9d272384be06e00ecfdfa1795262a0859e86acd09aa95c531ff311e210d87db6 genpatches-2.6.23-4.extras.tar.bz2 147992
-MD5 2cc2fd4d521dc5d7cfce0d8a9d1b3472 linux-2.6.23.tar.bz2 45488158
-RMD160 755690e80751d5de86d260fe05c6eeadde116c4e linux-2.6.23.tar.bz2 45488158
-SHA256 d4e67c0935ffb2a4158234bff92cc791b83177866009fc9b2214104e0038dbdb linux-2.6.23.tar.bz2 45488158
-MD5 fe38e769137bf5ffc3b138ee874901ca patch-2.6.23-hrt3.patch.bz2 43556
-RMD160 3234c8eeb3435e3db1690a2913a6c4daab867292 patch-2.6.23-hrt3.patch.bz2 43556
-SHA256 ac64d9423a14d78f9929c885fd499f2308fb2d14e96a37d3da16c35bcee40a59 patch-2.6.23-hrt3.patch.bz2 43556
-MD5 47e988ac858c44d11239d770d7814b98 sco-flowcontrol-v4.3.diff 14993
-RMD160 aa6f41adbe8e6093b251731f107acd5ec6612bde sco-flowcontrol-v4.3.diff 14993
-SHA256 cacd624768bfd60c75843de625f16342f74e25dfe4a0794d79e1a6e14645c5d4 sco-flowcontrol-v4.3.diff 14993
-MD5 6d61f8f34c6fc194f19f0f135b982621 thinkpad-acpi-0.18-20071112_v2.6.23.1.gz 36875
-RMD160 428d9305482b560beb98165aa370618d449c63c4 thinkpad-acpi-0.18-20071112_v2.6.23.1.gz 36875
-SHA256 0428995ed00088622111f6a9174a0e985230175280ef5b5dd5968c38810452ae thinkpad-acpi-0.18-20071112_v2.6.23.1.gz 36875
-MD5 2241806942ddebdae5254ece310ae5a4 tuxonice-3.0-rc2-for-2.6.23.1.patch.bz2 104787
-RMD160 c6483adbcfa54582f077781884a4d0a0ccf9b858 tuxonice-3.0-rc2-for-2.6.23.1.patch.bz2 104787
-SHA256 ef86267b6f3d7e309221f5173a881afae1dfa57418be5b3963f2380b0633ca1a tuxonice-3.0-rc2-for-2.6.23.1.patch.bz2 104787
diff --git a/sys-kernel/thinkpad-sources/thinkpad-sources-2.6.23-r1.ebuild b/sys-kernel/thinkpad-sources/thinkpad-sources-2.6.23-r1.ebuild
deleted file mode 100644
index f0db501..0000000
--- a/sys-kernel/thinkpad-sources/thinkpad-sources-2.6.23-r1.ebuild
+++ /dev/null
@@ -1,80 +0,0 @@
-# Copyright 1999-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: sys-kernel/thinkpad-sources/thinkpad-sources-2.6.23-r1.ebuild 2007 11 08
-
-ETYPE="sources"
-K_WANT_GENPATCHES="base extras"
-K_GENPATCHES_VER="2"
-
-inherit kernel-2
-detect_version
-detect_arch
-
-DESCRIPTION="Software Suspend 2 + Gentoo patchset sources + SCO Flowcontrol + Latest THINKPAD-Acpi"
-HOMEPAGE="http://dev.gentoo.org/~dsd/genpatches http://www.tuxonice.net http://bluetooth-alsa.sourceforge.net/ http://ibm-acpi.sourceforge.net/"
-
-IUSE="sco_flowcontrol"
-
-HRT_VERSION="3"
-HRT_TARGET="2.6.23"
-HRT_SRC="patch-${HRT_TARGET}-hrt${HRT_VERSION}"
-HRT_URI="http://www.kernel.org/pub/linux/kernel/people/tglx/hrtimers/2.6.23/${HRT_SRC}.patch.bz2"
-
-TUXONICE_VERSION="3.0-rc2"
-TUXONICE_TARGET="2.6.23.1"
-TUXONICE_SRC="tuxonice-${TUXONICE_VERSION}-for-${TUXONICE_TARGET}"
-TUXONICE_URI="http://www.tuxonice.net/downloads/all/${TUXONICE_SRC}.patch.bz2"
-
-SCO_FLOWCONTROL_VERSION="4.3"
-SCO_FLOWCONTROL_SRC="sco-flowcontrol-v${SCO_FLOWCONTROL_VERSION}"
-SCO_FLOWCONTROL_URI="http://bluetooth-alsa.cvs.sourceforge.net/*checkout*/bluetooth-alsa/plugz/patches/${SCO_FLOWCONTROL_SRC}.diff"
-
-THINKPAD_ACPI_VERSION="0.18-20071013"
-THINKPAD_ACPI_TARGET="2.6.23.1"
-THINKPAD_ACPI_SRC="thinkpad-acpi-${THINKPAD_ACPI_VERSION}_v${THINKPAD_ACPI_TARGET}.patch.gz"
-THINKPAD_ACPI_URI="mirror://sourceforge/ibm-acpi/${THINKPAD_ACPI_SRC}"
-
-
-
-#IEEE80211_VERSION="1.2.17"
-#IEEE80211_TARGET="2.6.20"
-#IEEE80211_SRC="05-ieee80211-${IEEE80211_VERSION}-for-${IEEE80211_TARGET}.patch"
-#IEEE80211_URI="http://whoopie.gmxhome.de/linux/patches/2.6.20/${IEEE80211_SRC}"
-
-UNIPATCH_LIST=""
-
-if use sco_flowcontrol; then
- UNIPATCH_LIST="${UNIPATCH_LIST} ${DISTDIR}/${SCO_FLOWCONTROL_SRC}.diff"
-fi
-UNIPATCH_LIST="${UNIPATCH_LIST}
- ${FILESDIR}/2.6.23/disk-protect-for-2.6.23.patch
- ${DISTDIR}/${THINKPAD_ACPI_SRC}
- ${DISTDIR}/${IEEE80211_SRC}
- ${FILESDIR}/2.6.23/input-unknown_keycodes-for-2.6.23.patch
- ${FILESDIR}/2.6.23/linux-phc-0.3.1-for-2.6.23.patch
- ${DISTDIR}/${TUXONICE_SRC}.patch.bz2
- ${FILESDIR}/2.6.23/combined-2.6.23-cph.patch
- ${DISTDIR}/${HRT_SRC}.patch.bz2"
-
-
-UNIPATCH_STRICTORDER="yes"
-SRC_URI="${KERNEL_URI} ${GENPATCHES_URI} ${ARCH_URI} ${TUXONICE_URI} ${THINKPAD_ACPI_URI} sco_flowcontrol? ( ${SCO_FLOWCONTROL_URI} ) ${IEEE80211_URI} ${HRT_URI}"
-
-KEYWORDS="~amd64 ~x86"
-
-RDEPEND="${RDEPEND}
- >=sys-apps/tuxonice-userui-0.7.2
- >=sys-power/hibernate-script-1.97"
-
-#K_EXTRAEINFO="If there are issues with this kernel, please direct any
-#queries to the linux-thinkpad mailing list:"
-
-pkg_postinst() {
- kernel-2_pkg_postinst
- einfo "For more info on this patchset, and how to report problems, see:"
- einfo "${HOMEPAGE}"
- einfo "In files dir is an example config suitable for T60"
- einfo "and hopefully all pci-express driven Thinkpads"
- einfo "but at all you should try for all Thinkpads"
- einfo "to NOT alter the given storage device controller configuration"
-}
diff --git a/sys-kernel/thinkpad-sources/thinkpad-sources-2.6.23-r2.ebuild b/sys-kernel/thinkpad-sources/thinkpad-sources-2.6.23-r2.ebuild
deleted file mode 100644
index c11eb0e..0000000
--- a/sys-kernel/thinkpad-sources/thinkpad-sources-2.6.23-r2.ebuild
+++ /dev/null
@@ -1,80 +0,0 @@
-# Copyright 1999-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: sys-kernel/thinkpad-sources/thinkpad-sources-2.6.23-r2.ebuild 2007 11 25
-
-ETYPE="sources"
-K_WANT_GENPATCHES="base extras"
-K_GENPATCHES_VER="3"
-
-inherit kernel-2
-detect_version
-detect_arch
-
-DESCRIPTION="Software Suspend 2 + Gentoo patchset sources + SCO Flowcontrol + Latest THINKPAD-Acpi"
-HOMEPAGE="http://dev.gentoo.org/~dsd/genpatches http://www.tuxonice.net http://bluetooth-alsa.sourceforge.net/ http://ibm-acpi.sourceforge.net/"
-
-IUSE="sco_flowcontrol"
-
-HRT_VERSION="3"
-HRT_TARGET="2.6.23"
-HRT_SRC="patch-${HRT_TARGET}-hrt${HRT_VERSION}"
-HRT_URI="http://www.kernel.org/pub/linux/kernel/people/tglx/hrtimers/2.6.23/${HRT_SRC}.patch.bz2"
-
-TUXONICE_VERSION="3.0-rc2"
-TUXONICE_TARGET="2.6.23.1"
-TUXONICE_SRC="tuxonice-${TUXONICE_VERSION}-for-${TUXONICE_TARGET}"
-TUXONICE_URI="http://www.tuxonice.net/downloads/all/${TUXONICE_SRC}.patch.bz2"
-
-SCO_FLOWCONTROL_VERSION="4.3"
-SCO_FLOWCONTROL_SRC="sco-flowcontrol-v${SCO_FLOWCONTROL_VERSION}"
-SCO_FLOWCONTROL_URI="http://bluetooth-alsa.cvs.sourceforge.net/*checkout*/bluetooth-alsa/plugz/patches/${SCO_FLOWCONTROL_SRC}.diff"
-
-THINKPAD_ACPI_VERSION="0.18-20071112"
-THINKPAD_ACPI_TARGET="2.6.23.1"
-THINKPAD_ACPI_SRC="thinkpad-acpi-${THINKPAD_ACPI_VERSION}_v${THINKPAD_ACPI_TARGET}.gz"
-THINKPAD_ACPI_URI="mirror://sourceforge/ibm-acpi/${THINKPAD_ACPI_SRC}"
-
-
-
-#IEEE80211_VERSION="1.2.17"
-#IEEE80211_TARGET="2.6.20"
-#IEEE80211_SRC="05-ieee80211-${IEEE80211_VERSION}-for-${IEEE80211_TARGET}.patch"
-#IEEE80211_URI="http://whoopie.gmxhome.de/linux/patches/2.6.20/${IEEE80211_SRC}"
-
-UNIPATCH_LIST=""
-
-if use sco_flowcontrol; then
- UNIPATCH_LIST="${UNIPATCH_LIST} ${DISTDIR}/${SCO_FLOWCONTROL_SRC}.diff"
-fi
-UNIPATCH_LIST="${UNIPATCH_LIST}
- ${FILESDIR}/2.6.23-r2/disk-protect-for-2.6.23.8.patch
- ${DISTDIR}/${THINKPAD_ACPI_SRC}
- ${DISTDIR}/${IEEE80211_SRC}
- ${FILESDIR}/2.6.23/input-unknown_keycodes-for-2.6.23.patch
- ${FILESDIR}/2.6.23/linux-phc-0.3.1-for-2.6.23.patch
- ${DISTDIR}/${TUXONICE_SRC}.patch.bz2
- ${FILESDIR}/2.6.23/combined-2.6.23-cph.patch
- ${DISTDIR}/${HRT_SRC}.patch.bz2"
-
-
-UNIPATCH_STRICTORDER="yes"
-SRC_URI="${KERNEL_URI} ${GENPATCHES_URI} ${ARCH_URI} ${TUXONICE_URI} ${THINKPAD_ACPI_URI} sco_flowcontrol? ( ${SCO_FLOWCONTROL_URI} ) ${IEEE80211_URI} ${HRT_URI}"
-
-KEYWORDS="~amd64 ~x86"
-
-RDEPEND="${RDEPEND}
- >=sys-apps/tuxonice-userui-0.7.2
- >=sys-power/hibernate-script-1.97"
-
-#K_EXTRAEINFO="If there are issues with this kernel, please direct any
-#queries to the linux-thinkpad mailing list:"
-
-pkg_postinst() {
- kernel-2_pkg_postinst
- einfo "For more info on this patchset, and how to report problems, see:"
- einfo "${HOMEPAGE}"
- einfo "In files dir is an example config suitable for T60"
- einfo "and hopefully all pci-express driven Thinkpads"
- einfo "but at all you should try for all Thinkpads"
- einfo "to NOT alter the given storage device controller configuration"
-}
diff --git a/sys-kernel/thinkpad-sources/thinkpad-sources-2.6.23-r3.ebuild b/sys-kernel/thinkpad-sources/thinkpad-sources-2.6.23-r3.ebuild
deleted file mode 100644
index c515dc5..0000000
--- a/sys-kernel/thinkpad-sources/thinkpad-sources-2.6.23-r3.ebuild
+++ /dev/null
@@ -1,80 +0,0 @@
-# Copyright 1999-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: sys-kernel/thinkpad-sources/thinkpad-sources-2.6.23-r3.ebuild 2007 12 01
-
-ETYPE="sources"
-K_WANT_GENPATCHES="base extras"
-K_GENPATCHES_VER="4"
-
-inherit kernel-2
-detect_version
-detect_arch
-
-DESCRIPTION="Software Suspend 2 + Gentoo patchset sources + SCO Flowcontrol + Latest THINKPAD-Acpi"
-HOMEPAGE="http://dev.gentoo.org/~dsd/genpatches http://www.tuxonice.net http://bluetooth-alsa.sourceforge.net/ http://ibm-acpi.sourceforge.net/"
-
-IUSE="sco_flowcontrol"
-
-HRT_VERSION="3"
-HRT_TARGET="2.6.23"
-HRT_SRC="patch-${HRT_TARGET}-hrt${HRT_VERSION}"
-HRT_URI="http://www.kernel.org/pub/linux/kernel/people/tglx/hrtimers/2.6.23/${HRT_SRC}.patch.bz2"
-
-TUXONICE_VERSION="3.0-rc2"
-TUXONICE_TARGET="2.6.23.1"
-TUXONICE_SRC="tuxonice-${TUXONICE_VERSION}-for-${TUXONICE_TARGET}"
-TUXONICE_URI="http://www.tuxonice.net/downloads/all/${TUXONICE_SRC}.patch.bz2"
-
-SCO_FLOWCONTROL_VERSION="4.3"
-SCO_FLOWCONTROL_SRC="sco-flowcontrol-v${SCO_FLOWCONTROL_VERSION}"
-SCO_FLOWCONTROL_URI="http://bluetooth-alsa.cvs.sourceforge.net/*checkout*/bluetooth-alsa/plugz/patches/${SCO_FLOWCONTROL_SRC}.diff"
-
-THINKPAD_ACPI_VERSION="0.18-20071112"
-THINKPAD_ACPI_TARGET="2.6.23.1"
-THINKPAD_ACPI_SRC="thinkpad-acpi-${THINKPAD_ACPI_VERSION}_v${THINKPAD_ACPI_TARGET}.gz"
-THINKPAD_ACPI_URI="mirror://sourceforge/ibm-acpi/${THINKPAD_ACPI_SRC}"
-
-
-
-#IEEE80211_VERSION="1.2.17"
-#IEEE80211_TARGET="2.6.20"
-#IEEE80211_SRC="05-ieee80211-${IEEE80211_VERSION}-for-${IEEE80211_TARGET}.patch"
-#IEEE80211_URI="http://whoopie.gmxhome.de/linux/patches/2.6.20/${IEEE80211_SRC}"
-
-UNIPATCH_LIST=""
-
-if use sco_flowcontrol; then
- UNIPATCH_LIST="${UNIPATCH_LIST} ${DISTDIR}/${SCO_FLOWCONTROL_SRC}.diff"
-fi
-UNIPATCH_LIST="${UNIPATCH_LIST}
- ${FILESDIR}/2.6.23-r2/disk-protect-for-2.6.23.8.patch
- ${DISTDIR}/${THINKPAD_ACPI_SRC}
- ${DISTDIR}/${IEEE80211_SRC}
- ${FILESDIR}/2.6.23/input-unknown_keycodes-for-2.6.23.patch
- ${FILESDIR}/2.6.23/linux-phc-0.3.1-for-2.6.23.patch
- ${DISTDIR}/${TUXONICE_SRC}.patch.bz2
- ${FILESDIR}/2.6.23/combined-2.6.23-cph.patch
- ${DISTDIR}/${HRT_SRC}.patch.bz2"
-
-
-UNIPATCH_STRICTORDER="yes"
-SRC_URI="${KERNEL_URI} ${GENPATCHES_URI} ${ARCH_URI} ${TUXONICE_URI} ${THINKPAD_ACPI_URI} sco_flowcontrol? ( ${SCO_FLOWCONTROL_URI} ) ${IEEE80211_URI} ${HRT_URI}"
-
-KEYWORDS="~amd64 ~x86"
-
-RDEPEND="${RDEPEND}
- >=sys-apps/tuxonice-userui-0.7.2
- >=sys-power/hibernate-script-1.97"
-
-#K_EXTRAEINFO="If there are issues with this kernel, please direct any
-#queries to the linux-thinkpad mailing list:"
-
-pkg_postinst() {
- kernel-2_pkg_postinst
- einfo "For more info on this patchset, and how to report problems, see:"
- einfo "${HOMEPAGE}"
- einfo "In files dir is an example config suitable for T60"
- einfo "and hopefully all pci-express driven Thinkpads"
- einfo "but at all you should try for all Thinkpads"
- einfo "to NOT alter the given storage device controller configuration"
-}
diff --git a/sys-kernel/thinkpad-sources/thinkpad-sources-2.6.24.ebuild b/sys-kernel/thinkpad-sources/thinkpad-sources-2.6.24.ebuild
new file mode 100644
index 0000000..fb5e899
--- /dev/null
+++ b/sys-kernel/thinkpad-sources/thinkpad-sources-2.6.24.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: sys-kernel/thinkpad-sources/thinkpad-sources-2.6.24.ebuild 2008 01 31
+
+ETYPE="sources"
+K_WANT_GENPATCHES="base extras"
+K_GENPATCHES_VER="1"
+
+inherit kernel-2
+detect_version
+detect_arch
+
+DESCRIPTION="Software Suspend 2 + Gentoo patchset sources + SCO Flowcontrol + Latest THINKPAD-Acpi"
+HOMEPAGE="http://dev.gentoo.org/~dsd/genpatches http://www.tuxonice.net http://bluetooth-alsa.sourceforge.net/ http://ibm-acpi.sourceforge.net/"
+
+#IUSE="sco_flowcontrol"
+
+TUXONICE_VERSION="3.0-rc5"
+TUXONICE_TARGET="2.6.24-rc8-git4"
+TUXONICE_SRC="tuxonice-${TUXONICE_VERSION}-for-${TUXONICE_TARGET}"
+TUXONICE_URI="http://www.tuxonice.net/downloads/all/${TUXONICE_SRC}.patch.bz2"
+
+#SCO_FLOWCONTROL_VERSION="4.3"
+#SCO_FLOWCONTROL_SRC="sco-flowcontrol-v${SCO_FLOWCONTROL_VERSION}"
+#SCO_FLOWCONTROL_URI="http://bluetooth-alsa.cvs.sourceforge.net/*checkout*/bluetooth-alsa/plugz/patches/${SCO_FLOWCONTROL_SRC}.diff"
+
+THINKPAD_ACPI_VERSION="0.19-20080107"
+THINKPAD_ACPI_TARGET="2.6.24-rc7"
+THINKPAD_ACPI_SRC="thinkpad-acpi-${THINKPAD_ACPI_VERSION}_v${THINKPAD_ACPI_TARGET}.patch.gz"
+THINKPAD_ACPI_URI="mirror://sourceforge/ibm-acpi/${THINKPAD_ACPI_SRC}"
+
+
+UNIPATCH_LIST=""
+
+#if use sco_flowcontrol; then
+# UNIPATCH_LIST="${UNIPATCH_LIST} ${DISTDIR}/${SCO_FLOWCONTROL_SRC}.diff"
+#fi
+UNIPATCH_LIST="${UNIPATCH_LIST}
+ ${FILESDIR}/2.6.24/disk-protect-for-2.6.24.patch
+ ${DISTDIR}/${THINKPAD_ACPI_SRC}
+ ${FILESDIR}/2.6.24/linux-phc-0.3.1-for-2.6.24-rc1.patch
+ ${DISTDIR}/${TUXONICE_SRC}.patch.bz2"
+
+
+UNIPATCH_STRICTORDER="yes"
+#SRC_URI="${KERNEL_URI} ${GENPATCHES_URI} ${ARCH_URI} ${TUXONICE_URI} ${THINKPAD_ACPI_URI} sco_flowcontrol? ( ${SCO_FLOWCONTROL_URI} ) ${IEEE80211_URI} ${HRT_URI}"
+SRC_URI="${KERNEL_URI} ${GENPATCHES_URI} ${ARCH_URI} ${TUXONICE_URI} ${THINKPAD_ACPI_URI} ${IEEE80211_URI} ${HRT_URI}"
+
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="${RDEPEND}
+ >=sys-apps/tuxonice-userui-0.7.2
+ >=sys-power/hibernate-script-1.97-r4"
+
+pkg_postinst() {
+ kernel-2_pkg_postinst
+ einfo "For more info on this patchset, and how to report problems, see:"
+ einfo "${HOMEPAGE}"
+ einfo "In files dir is an example config suitable for T60"
+ einfo "and hopefully all pci-express driven Thinkpads"
+ einfo "but at all you should try for all Thinkpads"
+ einfo "to NOT alter the given storage device controller configuration"
+}