diff options
author | Jeffrey Gardner <je_fro@gentoo.org> | 2008-02-27 18:05:45 +0000 |
---|---|---|
committer | Jeffrey Gardner <je_fro@gentoo.org> | 2008-02-27 18:05:45 +0000 |
commit | d2066dda0d8fb82a21c46970f32aeac40bdf6020 (patch) | |
tree | 49005ff91bb67c10d399596ad7e38bee39bd4983 /sys-kernel/mactel-linux-sources | |
parent | latest svn and light cleanup (diff) | |
download | je_fro-d2066dda0d8fb82a21c46970f32aeac40bdf6020.tar.gz je_fro-d2066dda0d8fb82a21c46970f32aeac40bdf6020.tar.bz2 je_fro-d2066dda0d8fb82a21c46970f32aeac40bdf6020.zip |
more cleanup
svn path=/; revision=186
Diffstat (limited to 'sys-kernel/mactel-linux-sources')
10 files changed, 0 insertions, 1484 deletions
diff --git a/sys-kernel/mactel-linux-sources/Manifest b/sys-kernel/mactel-linux-sources/Manifest index 1673204..75161d1 100644 --- a/sys-kernel/mactel-linux-sources/Manifest +++ b/sys-kernel/mactel-linux-sources/Manifest @@ -31,24 +31,6 @@ AUX 2.6.24-mactel-patches-r151/appletouch.patch 653 RMD160 7af72520cfc712a37ad3a AUX 2.6.24-mactel-patches-r151/hid-add-new-apple-keyboard.patch 7103 RMD160 8bdb5b56f18d76dc6b4e88f66a4a0879f17b239e SHA1 b316416b5f218a058468de523716ba11316fa342 SHA256 6d6bc7bb44d08ee10ed7c386b67601a30ef292daa7343ea966eab998b88150d7 AUX 2.6.24-mactel-patches-r151/sigmatel_audio_display_all_controls_when_subsystem_id_is_wrong.patch 819 RMD160 8bec3f90f028e060695aebf0f8bae63778cd013c SHA1 19142c8fd86614727b95a0374539315995768e25 SHA256 94e7415487d455cbd1d0f6a3d5a393b4d008ac6dedf1a335a2aa40b70d6767f2 AUX 2.6.24-mactel-patches-r151/sigmatel_audio_fix_macbook_v2.patch 855 RMD160 f9a8a9c67f2a69e9e6cd5012c4a58e493d05930b SHA1 677656bd94f432aa92ad77b13c8fe32fd738a71b SHA256 4ad9524f09b2d3ffc2d3643be844a25e5ad11e7e7b4638e98340d10d27c5a722 -AUX mactel-patches-r141/appleir-undo-hid-blacklist.patch 1243 RMD160 9cab09367c6aa4d4d77a4c7c3a04879e6ae6d24c SHA1 781ebfa912ab0cade15a2db978ec4bc0824e7211 SHA256 cbb945e2691f71f58baff171156778b99d59e31b89c10c604a2adf67cd29fa7e -AUX mactel-patches-r141/applesmc-add-macbook-temperature-keys.patch 1608 RMD160 55c9ee3672d26328eae98013d4bd1170d7980ada SHA1 9b545fe0aec185d4d074935b2e7bff68211892ba SHA256 8598fe0a787d14c48da1fa364bbfe4e38a21d1ef05d504adfb2c347e5a4faf37 -AUX mactel-patches-r141/applesmc-for-mac-pro-2-x-quad-core.patch 7939 RMD160 f6974a36923a13d82565c7828e74656bf422df88 SHA1 146adfb5bab85466fefaff3f1066f52c74b0ddeb SHA256 5af5d1a007507126745cd29bbb2972e64232d83b7fb32e69f2fd0d147806f346 -AUX mactel-patches-r141/applesmc-retry-when-accessing-keys.patch 3004 RMD160 4920359edd1379e275d128c6250c2598acb634c9 SHA1 d701ce6419f87a3b37324cd118f2cf7cde90236f SHA256 98858d10cb5ff835b807d8661d0a5901c05892304cf81fcedf1e99aa655abd8d -AUX mactel-patches-r141/applesmc-use-input-polldev.patch 6730 RMD160 4bb41be03d0cac7cc363607308be747aa963b7a0 SHA1 b70322552e936ccb1359f28a0368c67ac873f417 SHA256 3db966ce685b0a580bd71ef3d8ee14e0fa6ba1fd9c1740515e88b15e8b6e79a4 -AUX mactel-patches-r141/applesmc_int.patch 11196 RMD160 f912efb66a80e8b4df8d1be12f93cff68a782ffa SHA1 28dbe12de2c63cd14318733104f37fdb6cacb5e6 SHA256 64757e0fa7c483f6e0b060553672f5a9d6c644dd2a2758357b8095dd019c76c2 -AUX mactel-patches-r141/appletouch-shut-up-when-it-has-nothing-to-say.patch 6532 RMD160 692a4f4cd1b35691ca5627a7887ad8e3ca277d46 SHA1 f474eb6bbf9a77d228510879b90b7ab494694916 SHA256 c3ebafd0dc2db7905561e19321bfde3547638d88b29ecc60e19c67d02c30de11 -AUX mactel-patches-r141/appletouch.patch 673 RMD160 a999e0be735e8773aa8de7e1c46eb065c344ad93 SHA1 bd923cabc3a07382c698f9fdd571bbf92c79c4d8 SHA256 e32bd2088ebeb99f03e7bf52301b047b0ff5b595565af0b70df71ba1e5a7a604 -AUX mactel-patches-r141/appletouch_new.patch 13074 RMD160 949a469e8d1908472ce2749529a14d9a2d07e7e4 SHA1 9b53511e3f783afd161f16af1634c9bac0708c39 SHA256 c2957c8a66df426e949105842841ee41b86d6539d3bd9c3a57e9654c9efe8cb7 -AUX mactel-patches-r141/sigmatel-backport-2.6.23.patch 11073 RMD160 da1596221d9235dc367c38562d710606d088a010 SHA1 d6e7972cb462853b8951efb8f31303a6b6acfd5d SHA256 001bf670cfdb292a3c28ba9cbf09066f07fc373b469fbb6f41d3e115cbb74c77 -AUX mactel-patches-r142/applesmc-for-mac-pro-2-x-quad-core.patch 7945 RMD160 0d37e3d9f8716215b1de5cee3c2cd27329257212 SHA1 816783576641e77d46927deda9c5ca0af20a3516 SHA256 68ebffb49bc6363edcf35b65e0df540ffb953ae89f187022c2fb6fce513a1698 -AUX mactel-patches-r142/applesmc-retry-when-accessing-keys.patch 3004 RMD160 4920359edd1379e275d128c6250c2598acb634c9 SHA1 d701ce6419f87a3b37324cd118f2cf7cde90236f SHA256 98858d10cb5ff835b807d8661d0a5901c05892304cf81fcedf1e99aa655abd8d -AUX mactel-patches-r142/applesmc-use-input-polldev.patch 6732 RMD160 6a66f9b2d40000882a21ede343c786d3a4fa1f2b SHA1 e62f0f32af450f8e22208c85de6b20e1535de73a SHA256 8e9ef49709a76169ed92c97862662f6d477cbf2732d34e08207b05b41ae28171 -AUX mactel-patches-r142/applesmc_int.patch 11196 RMD160 f1aab1302478373644ee6372ee7d56ac3d267e8e SHA1 bd477fbd19992d331d93450ee979a015a0992f5a SHA256 344c50897e4105c79b327587ad8eabd87466309b6e90be63fe3aa2018049efa0 -AUX mactel-patches-r142/appletouch-new.patch 13336 RMD160 7b5d6d63bf327d78d9aa3abaa1aea75b736c389e SHA1 253212ff2213c62a2cd3124f2e96139eed9f80a9 SHA256 f49b9247e8d81bd57d9b0a656b9dbb33143c0811310c9ed58f464425de1ab0b9 -AUX mactel-patches-r142/appletouch.patch 673 RMD160 50ef1f3d00d621391d0414acbd814f1b89303854 SHA1 7d1ecad4d8c0801ab6949e6431eeb20dc6d57211 SHA256 c3a9011238a1ea7c416e0488fdc2578c2a34617c2147d67bb0b06f5bc11371a3 -AUX mactel-patches-r142/sigmatel_audio_display_all_controls_when_subsystem_id_is_wrong.patch 819 RMD160 1b47b1e5ad15ed6cdb1ec526d4edc219bf8be19a SHA1 af98a6837dda50b24401af7465a7a12a8b16c2b0 SHA256 698190ea52264b1831679130e449b35f166f9efde8cfa51a0561ae29d955d044 -AUX mactel-patches-r142/sigmatel_audio_fix_macbook_v2.patch 855 RMD160 8c4db3512daad3393851c7da2b1375873a7a4bd5 SHA1 b6b35f125630db2d37de371859c66b53b9307457 SHA256 be4d3d0d91125eaf975a3c585c6c5abd72b7d2601c4d9e31799a87c809d16886 AUX mactel-patches-r147/applesmc-for-mac-pro-2-x-quad-core.patch 7939 RMD160 f6974a36923a13d82565c7828e74656bf422df88 SHA1 146adfb5bab85466fefaff3f1066f52c74b0ddeb SHA256 5af5d1a007507126745cd29bbb2972e64232d83b7fb32e69f2fd0d147806f346 AUX mactel-patches-r147/applesmc-int-protect.patch 8677 RMD160 43683284d005614ecea1098c99b884561536b7c9 SHA1 b52899fd258ffed5dde19c5d8f9958a46a35accd SHA256 7d4079e50cfc9f26ca68ce08cb7f4dbe1ae02ce06762be90a8678ae0290a2c75 AUX mactel-patches-r147/applesmc-macbook2.patch 3087 RMD160 a9f6f3932c83306cc3f6e86793204d460893d750 SHA1 381bd9d153fca5b51820152855bdd346f7bb94f1 SHA256 513eba6bc15f9d37d537657450227e23d7aaddf25e99b1a1f2d7fceaac9f99f7 @@ -63,10 +45,6 @@ AUX mactel-patches-r147/disk-protect.patch 27830 RMD160 d02d18affff697131e0c8ae8 AUX mactel-patches-r147/export-lookup_dev.patch 422 RMD160 752272834b67c6c5ef9beac68bd4b013910d8ad9 SHA1 c1734b06377c6efbabc618ea64ecb27b5e012240 SHA256 fc2497fd867be26ba91248377d114a744f528f7025d5c0974f7898b458f2b900 AUX mactel-patches-r147/sigmatel_audio_display_all_controls_when_subsystem_id_is_wrong.patch 819 RMD160 50a2062ffb6c9e22c699ce6703d61bdafdbb568b SHA1 69006e0d2dfbe60de246f7827293e8bf2c992c5a SHA256 4c1ca6bbec2960f405d922ec5e585bd814c19877e36f2b926762f2b0c59cbfdc AUX mactel-patches-r147/sigmatel_audio_fix_macbook_v2.patch 855 RMD160 8135541c8f9c988d78f4892c81b503d703a26b97 SHA1 1b39cf5e36063cb9043ccae8e01709366fb25102 SHA256 08362cac191683e4d615e5f1220c976cf62bc2cf0d2850ee23c5c14d75638ac6 -DIST genpatches-2.6.22-6.base.tar.bz2 37424 RMD160 ad09510b3330014fd0ee945dfe5c5665b7571e4e SHA1 3cf8563ad950bddc7cef4cb569f429104efa8319 SHA256 7dad76e531041f4254a38c8ffbc94300cdabcf92dbc6b8c3d5f48e5f42b408fb -DIST genpatches-2.6.22-6.extras.tar.bz2 63748 RMD160 8e3f1503ab8ecb036b50bd9b5ce4d919f8841bf0 SHA1 05cb23861a665ba577f91d93f41e04054cb10826 SHA256 7dc5a4390c9f073261a7019023cdef0c2a583441d1e0ec512f54662246c83d3f -DIST genpatches-2.6.23-1.base.tar.bz2 3147 RMD160 555ed180e4e700f3ce913fe460f05eb8f71dfe46 SHA1 3d68154d4d956460aa66b6c6d30e857696d8c2f2 SHA256 773cbe243642b1c10a49cab1175fa1c54c0ca67d6471257ce66417a754d87578 -DIST genpatches-2.6.23-1.extras.tar.bz2 57252 RMD160 201fdd76ba5024f662da2c2d20e03093bcecc6d5 SHA1 196238c658d68d9046b70c98d1340a1305a102df SHA256 50bf8799ea7816d72b0db7c0fa4b886379b7b49f366fd647130318ad5de314b6 DIST genpatches-2.6.23-5.base.tar.bz2 82324 RMD160 b49a59910d95bd12f077a5de51961cbb5799895e SHA1 edff5b23fb3c9949a76f5c58d95c1542f72d757b SHA256 d778784f81b1bfd342e0b94cbe2fc5324c102024c025e3152cf06c1e86787041 DIST genpatches-2.6.23-5.extras.tar.bz2 147992 RMD160 bb9cfc7687944b677799b2386bc4b36d95676cea SHA1 fc7f24df398033cdf8e0ff444020c58407aa9925 SHA256 9d272384be06e00ecfdfa1795262a0859e86acd09aa95c531ff311e210d87db6 DIST genpatches-2.6.24-1.base.tar.bz2 960 RMD160 a7b9932bc33e8a56da4bfafbdf16749bf141db6c SHA1 19271490c3faf040b7cf580123690785e95c1c66 SHA256 3f7c948b72494aed970be1187a75c7c8573ad500e35c5bc9610b87ffa42bd54f @@ -77,12 +55,9 @@ DIST genpatches-2.6.24-3.base.tar.bz2 22714 RMD160 826ab844e3f4d96f94e09d8763a01 DIST genpatches-2.6.24-3.extras.tar.bz2 43587 RMD160 a41366bb7372c168d4ede2de420256e25560122c SHA1 3a048660019206344a065beaa8dbaadbfa0a7f3b SHA256 8cee70233f609bd01c1645e9cb90c4637ee6f989b4583d652ea2df57a8894296 DIST genpatches-2.6.24-4.base.tar.bz2 39369 RMD160 c6c0bd063edbd4a2d1606cc53580530e6b0e01c4 SHA1 b6e0d72b5d452648ca3f33a529e4b6a063b10ed7 SHA256 bae9b6d932d18089283ca5ec4a8999b888dbf8d5ae3f5be8302c823f14b6f082 DIST genpatches-2.6.24-4.extras.tar.bz2 43587 RMD160 a41366bb7372c168d4ede2de420256e25560122c SHA1 3a048660019206344a065beaa8dbaadbfa0a7f3b SHA256 8cee70233f609bd01c1645e9cb90c4637ee6f989b4583d652ea2df57a8894296 -DIST linux-2.6.22.tar.bz2 45119878 RMD160 c4b2ca5ee8e71c0f8f1c95f3c9c5f261f2785912 SHA1 39401f195a618f397312d6d84ff9aebe28d99381 SHA256 73c10604c53f1a6ee65ef805293d23903696f8cef864f42d7de9506f0d2ba4c7 DIST linux-2.6.23.tar.bz2 45488158 RMD160 755690e80751d5de86d260fe05c6eeadde116c4e SHA1 3a186adf13e44415796ab6381aa8979b16a5d5ca SHA256 d4e67c0935ffb2a4158234bff92cc791b83177866009fc9b2214104e0038dbdb DIST linux-2.6.24.tar.bz2 46737783 RMD160 0e5194c69c3d82c41ece689c4f84e638f8776d34 SHA1 351aebc784a5395fe4c92d1e514a89680482f7e2 SHA256 413c64fbbcf81244cb5571be4963644a1e81166a2b0f008a016528363b65c5d3 -EBUILD mactel-linux-sources-2.6.22-r3.ebuild 1078 RMD160 4cd254b19d7d44da181dfd4b55937de6b4e89874 SHA1 bb8c9ca2faeb73a2db2632b7a1eec6907f047e00 SHA256 83c556df36a29032649bf8cb577f846319c5c402acbc1a8c9356854173008c38 EBUILD mactel-linux-sources-2.6.23-r4.ebuild 1399 RMD160 8e498711091da40a9043349ffa712b1c734b734e SHA1 ddf8a256f24cdd963997c3e4bb5dff11725adda1 SHA256 9e2b46d64079a4089174972077c2780c4655e150d473d571b5e8c4d405ea8542 -EBUILD mactel-linux-sources-2.6.23.ebuild 1156 RMD160 4c3b8420602b14a72171871be7c020fc63c05035 SHA1 64eb69b750c1835baa6cb0c6739404e694458cae SHA256 67940fc4f01bde5f9de48f9fc40c24294115684e5f0b9ac8b8d40892e11e2119 EBUILD mactel-linux-sources-2.6.24-r1.ebuild 1151 RMD160 6ef9ab524a56008e0536378cfa3e112fc835dc45 SHA1 c18c164d49f76106c15110b44d83ab4311cc45c7 SHA256 b7520cdb8c33451468f85fbe8d7af1cdf47ca10a815e740cd53bedbc9f1a9b17 EBUILD mactel-linux-sources-2.6.24-r2.ebuild 1151 RMD160 3062875a537f2bc7b2f70eabbc3b92fdf18c1efe SHA1 8402bc13eecff1b22d86204971e5fae1fc5161aa SHA256 f8a459ee7d302c6ab1dff77ad2f632cbec43655ed02854548f55cef3fbfa5293 EBUILD mactel-linux-sources-2.6.24-r3.ebuild 1196 RMD160 f5e02f5dc00c27d1af90a7fda0c259f5f79b6b3a SHA1 0b90bd716953e5fad55ac6ea05265a9db162191c SHA256 62933738e49924e7b33d0af3bcec6d43671bb82df2d9bf745f7014bad832a82f diff --git a/sys-kernel/mactel-linux-sources/files/mactel-patches-r142/applesmc-for-mac-pro-2-x-quad-core.patch b/sys-kernel/mactel-linux-sources/files/mactel-patches-r142/applesmc-for-mac-pro-2-x-quad-core.patch deleted file mode 100644 index e0571a8..0000000 --- a/sys-kernel/mactel-linux-sources/files/mactel-patches-r142/applesmc-for-mac-pro-2-x-quad-core.patch +++ /dev/null @@ -1,202 +0,0 @@ -At least the 2x Quad-Core Apple Mac Pro appears to have some over-heat - -From: Nicolas Boichat <nicolas@boichat.ch> - -protection which suddenly powers off the whole box under load. This adds -support for the fans and temerature sensors in the Mac Pro - later some -"windwarm" a-like code should probably monitor the values. For now -manually tweaking the fans prevents the sudden shutdown for me. - -cd /sys/devices/platform/applesmc.768 -for x in fan{1,2,3,4}; do - echo 1 > ${x}_manual - echo 1285 > ${x}_output -done - -Two sensors are 0, while four are 129 °C, those might be removed again, -later. - -Signed-off-by: René Rebe <rene@exactcode.de -Cc: Mark M. Hoffman <mhoffman@lightlink.com> -Cc: Nicolas Boichat <nicolas@boichat.ch> -Cc: Jean Delvare <khali@linux-fr.org> -Signed-off-by: Andrew Morton <akpm@linux-foundation.org> ---- - - drivers/hwmon/applesmc.c | 107 +++++++++++++++++++++++++++++++++++++++++++--- - 1 files changed, 101 insertions(+), 6 deletions(-) - -diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c -index 5d184a1..56e4a59 100644 ---- a/drivers/hwmon/applesmc.c -+++ b/drivers/hwmon/applesmc.c -@@ -101,7 +101,7 @@ - /* - * Temperature sensors keys (sp78 - 2 bytes). - */ --static const char* temperature_sensors_sets[][13] = { -+static const char* temperature_sensors_sets[][36] = { - /* Set 0: Macbook Pro */ - { "TA0P", "TB0T", "TC0D", "TC0P", "TG0H", "TG0P", "TG0T", "Th0H", - "Th1H", "Tm0P", "Ts0P", "Ts1P", NULL }, -@@ -109,7 +109,13 @@ static const char* temperature_sensors_sets[][13] = { - { "TB0T", "TC0D", "TC0P", "TM0P", "TN0P", "TN1P", "Th0H", "Th0S", - "Th1H", "Ts0P", NULL }, - /* Set 2: Macmini set */ -- { "TC0D", "TC0P", NULL } -+ { "TC0D", "TC0P", NULL }, -+/* Set 3: Mac Pro (2 x Quad-Core) */ -+ { "TA0P", "TCAG", "TCAH", "TCBG", "TCBH", "TC0C", "TC0D", "TC0P", -+ "TC1C", "TC1D", "TC2C", "TC2D", "TC3C", "TC3D", "THTG", "TH0P", -+ "TH1P", "TH2P", "TH3P", "TMAP", "TMAS", "TMBS", "TM0P", "TM0S", -+ "TM1P", "TM1S", "TM2P", "TM2S", "TM3S", "TM8P", "TM8S", "TM9P", -+ "TM9S", "TN0H", "TS0C", NULL }, - }; - - /* List of keys used to read/write fan speeds */ -@@ -1265,14 +1271,18 @@ static struct attribute *fan##offset##_attributes[] = { \ - - /* - * Create the needed functions for each fan using the macro defined above -- * (2 fans are supported) -+ * (4 fans are supported) - */ - sysfs_fan_speeds_offset(1); - sysfs_fan_speeds_offset(2); -+sysfs_fan_speeds_offset(3); -+sysfs_fan_speeds_offset(4); - - static const struct attribute_group fan_attribute_groups[] = { - { .attrs = fan1_attributes }, -- { .attrs = fan2_attributes } -+ { .attrs = fan2_attributes }, -+ { .attrs = fan3_attributes }, -+ { .attrs = fan4_attributes } - }; - - /* -@@ -1302,6 +1312,52 @@ static SENSOR_DEVICE_ATTR(temp11_input, S_IRUGO, - applesmc_show_temperature, NULL, 10); - static SENSOR_DEVICE_ATTR(temp12_input, S_IRUGO, - applesmc_show_temperature, NULL, 11); -+static SENSOR_DEVICE_ATTR(temp13_input, S_IRUGO, -+ applesmc_show_temperature, NULL, 12); -+static SENSOR_DEVICE_ATTR(temp14_input, S_IRUGO, -+ applesmc_show_temperature, NULL, 13); -+static SENSOR_DEVICE_ATTR(temp15_input, S_IRUGO, -+ applesmc_show_temperature, NULL, 14); -+static SENSOR_DEVICE_ATTR(temp16_input, S_IRUGO, -+ applesmc_show_temperature, NULL, 15); -+static SENSOR_DEVICE_ATTR(temp17_input, S_IRUGO, -+ applesmc_show_temperature, NULL, 16); -+static SENSOR_DEVICE_ATTR(temp18_input, S_IRUGO, -+ applesmc_show_temperature, NULL, 17); -+static SENSOR_DEVICE_ATTR(temp19_input, S_IRUGO, -+ applesmc_show_temperature, NULL, 18); -+static SENSOR_DEVICE_ATTR(temp20_input, S_IRUGO, -+ applesmc_show_temperature, NULL, 19); -+static SENSOR_DEVICE_ATTR(temp21_input, S_IRUGO, -+ applesmc_show_temperature, NULL, 20); -+static SENSOR_DEVICE_ATTR(temp22_input, S_IRUGO, -+ applesmc_show_temperature, NULL, 21); -+static SENSOR_DEVICE_ATTR(temp23_input, S_IRUGO, -+ applesmc_show_temperature, NULL, 22); -+static SENSOR_DEVICE_ATTR(temp24_input, S_IRUGO, -+ applesmc_show_temperature, NULL, 23); -+static SENSOR_DEVICE_ATTR(temp25_input, S_IRUGO, -+ applesmc_show_temperature, NULL, 24); -+static SENSOR_DEVICE_ATTR(temp26_input, S_IRUGO, -+ applesmc_show_temperature, NULL, 25); -+static SENSOR_DEVICE_ATTR(temp27_input, S_IRUGO, -+ applesmc_show_temperature, NULL, 26); -+static SENSOR_DEVICE_ATTR(temp28_input, S_IRUGO, -+ applesmc_show_temperature, NULL, 27); -+static SENSOR_DEVICE_ATTR(temp29_input, S_IRUGO, -+ applesmc_show_temperature, NULL, 28); -+static SENSOR_DEVICE_ATTR(temp30_input, S_IRUGO, -+ applesmc_show_temperature, NULL, 29); -+static SENSOR_DEVICE_ATTR(temp31_input, S_IRUGO, -+ applesmc_show_temperature, NULL, 30); -+static SENSOR_DEVICE_ATTR(temp32_input, S_IRUGO, -+ applesmc_show_temperature, NULL, 31); -+static SENSOR_DEVICE_ATTR(temp33_input, S_IRUGO, -+ applesmc_show_temperature, NULL, 32); -+static SENSOR_DEVICE_ATTR(temp34_input, S_IRUGO, -+ applesmc_show_temperature, NULL, 33); -+static SENSOR_DEVICE_ATTR(temp35_input, S_IRUGO, -+ applesmc_show_temperature, NULL, 34); - - static struct attribute *temperature_attributes[] = { - &sensor_dev_attr_temp1_input.dev_attr.attr, -@@ -1316,6 +1372,29 @@ static struct attribute *temperature_attributes[] = { - &sensor_dev_attr_temp10_input.dev_attr.attr, - &sensor_dev_attr_temp11_input.dev_attr.attr, - &sensor_dev_attr_temp12_input.dev_attr.attr, -+ &sensor_dev_attr_temp13_input.dev_attr.attr, -+ &sensor_dev_attr_temp14_input.dev_attr.attr, -+ &sensor_dev_attr_temp15_input.dev_attr.attr, -+ &sensor_dev_attr_temp16_input.dev_attr.attr, -+ &sensor_dev_attr_temp17_input.dev_attr.attr, -+ &sensor_dev_attr_temp18_input.dev_attr.attr, -+ &sensor_dev_attr_temp19_input.dev_attr.attr, -+ &sensor_dev_attr_temp20_input.dev_attr.attr, -+ &sensor_dev_attr_temp21_input.dev_attr.attr, -+ &sensor_dev_attr_temp22_input.dev_attr.attr, -+ &sensor_dev_attr_temp23_input.dev_attr.attr, -+ &sensor_dev_attr_temp24_input.dev_attr.attr, -+ &sensor_dev_attr_temp25_input.dev_attr.attr, -+ &sensor_dev_attr_temp26_input.dev_attr.attr, -+ &sensor_dev_attr_temp27_input.dev_attr.attr, -+ &sensor_dev_attr_temp28_input.dev_attr.attr, -+ &sensor_dev_attr_temp29_input.dev_attr.attr, -+ &sensor_dev_attr_temp30_input.dev_attr.attr, -+ &sensor_dev_attr_temp31_input.dev_attr.attr, -+ &sensor_dev_attr_temp32_input.dev_attr.attr, -+ &sensor_dev_attr_temp33_input.dev_attr.attr, -+ &sensor_dev_attr_temp34_input.dev_attr.attr, -+ &sensor_dev_attr_temp35_input.dev_attr.attr, - NULL - }; - -@@ -1412,6 +1491,8 @@ static __initdata struct dmi_match_data applesmc_dmi_data[] = { - { .accelerometer = 1, .light = 0, .temperature_set = 1 }, - /* MacMini: temperature set 2 */ - { .accelerometer = 0, .light = 0, .temperature_set = 2 }, -+/* MacPro: temperature set 3 */ -+ { .accelerometer = 0, .light = 0, .temperature_set = 3 }, - }; - - /* Note that DMI_MATCH(...,"MacBook") will match "MacBookPro1,1". -@@ -1429,6 +1510,10 @@ static __initdata struct dmi_system_id applesmc_whitelist[] = { - DMI_MATCH(DMI_BOARD_VENDOR,"Apple"), - DMI_MATCH(DMI_PRODUCT_NAME,"Macmini") }, - (void*)&applesmc_dmi_data[2]}, -+ { applesmc_dmi_match, "Apple MacPro2", { -+ DMI_MATCH(DMI_BOARD_VENDOR,"Apple"), -+ DMI_MATCH(DMI_PRODUCT_NAME,"MacPro2") }, -+ (void*)&applesmc_dmi_data[3]}, - { .ident = NULL } - }; - -@@ -1479,9 +1564,19 @@ static int __init applesmc_init(void) - - switch (count) { - default: -- printk(KERN_WARNING "applesmc: More than 2 fans found," -- " but at most 2 fans are supported" -+ printk(KERN_WARNING "applesmc: More than 4 fans found," -+ " but at most 4 fans are supported" - " by the driver.\n"); -+ case 4: -+ ret = sysfs_create_group(&pdev->dev.kobj, -+ &fan_attribute_groups[3]); -+ if (ret) -+ goto out_key_enumeration; -+ case 3: -+ ret = sysfs_create_group(&pdev->dev.kobj, -+ &fan_attribute_groups[2]); -+ if (ret) -+ goto out_key_enumeration; - case 2: - ret = sysfs_create_group(&pdev->dev.kobj, - &fan_attribute_groups[1]); diff --git a/sys-kernel/mactel-linux-sources/files/mactel-patches-r142/applesmc-retry-when-accessing-keys.patch b/sys-kernel/mactel-linux-sources/files/mactel-patches-r142/applesmc-retry-when-accessing-keys.patch deleted file mode 100644 index 735ee79..0000000 --- a/sys-kernel/mactel-linux-sources/files/mactel-patches-r142/applesmc-retry-when-accessing-keys.patch +++ /dev/null @@ -1,115 +0,0 @@ -Retry up to 200 ms when reading or writing keys. - -From: Nicolas Boichat <nicolas@boichat.ch> - - ---- - - drivers/hwmon/applesmc.c | 69 +++++++++++++++++++++++++++++++--------------- - 1 files changed, 47 insertions(+), 22 deletions(-) - -diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c -index 56e4a59..99e64ee 100644 ---- a/drivers/hwmon/applesmc.c -+++ b/drivers/hwmon/applesmc.c -@@ -130,6 +130,9 @@ static const char* fan_speed_keys[] = { - #define INIT_TIMEOUT_MSECS 5000 /* wait up to 5s for device init ... */ - #define INIT_WAIT_MSECS 50 /* ... in 50ms increments */ - -+#define ACCESS_TIMEOUT_MSECS 500 /* wait up to 500ms when accessing a key */ -+#define ACCESS_WAIT_MSECS 5 /* ... in 5ms increments */ -+ - #define APPLESMC_POLL_INTERVAL 50 /* msecs */ - #define APPLESMC_INPUT_FUZZ 4 /* input event threshold */ - #define APPLESMC_INPUT_FLAT 4 -@@ -204,12 +207,13 @@ static int __wait_status(u8 val) - - /* - * applesmc_read_key - reads len bytes from a given key, and put them in buffer. -+ * Tries up to ACCESS_WAIT_MSECS to read the value. - * Returns zero on success or a negative error on failure. Callers must - * hold applesmc_lock. - */ - static int applesmc_read_key(const char* key, u8* buffer, u8 len) - { -- int i; -+ int i, total, ret; - - if (len > APPLESMC_MAX_DATA_LENGTH) { - printk(KERN_ERR "applesmc_read_key: cannot read more than " -@@ -217,33 +221,54 @@ static int applesmc_read_key(const char* key, u8* buffer, u8 len) - return -EINVAL; - } - -- outb(APPLESMC_READ_CMD, APPLESMC_CMD_PORT); -- if (__wait_status(0x0c)) -- return -EIO; -+ for (total = ACCESS_TIMEOUT_MSECS; total > 0; -+ total -= ACCESS_WAIT_MSECS) { -+ ret = 0; -+ outb(APPLESMC_READ_CMD, APPLESMC_CMD_PORT); -+ if (__wait_status(0x0c)) { -+ ret = -EIO; -+ goto wait_fail; -+ } - -- for (i = 0; i < 4; i++) { -- outb(key[i], APPLESMC_DATA_PORT); -- if (__wait_status(0x04)) -- return -EIO; -- } -- if (debug) -- printk(KERN_DEBUG "<%s", key); -+ for (i = 0; i < 4; i++) { -+ outb(key[i], APPLESMC_DATA_PORT); -+ if (__wait_status(0x04)) { -+ ret = -EIO; -+ goto wait_fail; -+ } -+ } -+ if (debug) -+ printk(KERN_DEBUG "<%s", key); - -- outb(len, APPLESMC_DATA_PORT); -- if (debug) -- printk(KERN_DEBUG ">%x", len); -+ outb(len, APPLESMC_DATA_PORT); -+ if (debug) -+ printk(KERN_DEBUG ">%x", len); - -- for (i = 0; i < len; i++) { -- if (__wait_status(0x05)) -- return -EIO; -- buffer[i] = inb(APPLESMC_DATA_PORT); -+ for (i = 0; i < len; i++) { -+ if (__wait_status(0x05)) { -+ ret = -EIO; -+ goto wait_fail; -+ } -+ buffer[i] = inb(APPLESMC_DATA_PORT); -+ if (debug) -+ printk(KERN_DEBUG "<%x", buffer[i]); -+ } - if (debug) -- printk(KERN_DEBUG "<%x", buffer[i]); -+ printk(KERN_DEBUG "\n"); -+ -+ break; -+ -+wait_fail: -+ msleep(ACCESS_WAIT_MSECS); -+ continue; - } -- if (debug) -- printk(KERN_DEBUG "\n"); - -- return 0; -+ if (total != ACCESS_TIMEOUT_MSECS) { -+ printk(KERN_DEBUG "Read: Waited %d ms for the value\n", -+ ACCESS_TIMEOUT_MSECS-total); -+ } -+ -+ return ret; - } - - /* diff --git a/sys-kernel/mactel-linux-sources/files/mactel-patches-r142/applesmc-use-input-polldev.patch b/sys-kernel/mactel-linux-sources/files/mactel-patches-r142/applesmc-use-input-polldev.patch deleted file mode 100644 index 06a9998..0000000 --- a/sys-kernel/mactel-linux-sources/files/mactel-patches-r142/applesmc-use-input-polldev.patch +++ /dev/null @@ -1,221 +0,0 @@ -HWMON: applesmc - convert to use input-polldev. - -From: Nicolas Boichat <nicolas@boichat.ch> - -Switch to using input-polldev skeleton instead of implementing -polling loop by itself. This also fixes problem with trylock -on a mutex in atomic context. - -Signed-off-by: Dmitry Torokhov <dtor@mail.ru> ---- - - drivers/hwmon/Kconfig | 1 + - drivers/hwmon/applesmc.c | 83 +++++++++++++++++----------------------------- - 2 files changed, 31 insertions(+), 53 deletions(-) - -diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig -index 192953b..e74a89d 100644 ---- a/drivers/hwmon/Kconfig -+++ b/drivers/hwmon/Kconfig -@@ -665,6 +665,7 @@ config SENSORS_APPLESMC - depends on INPUT && X86 - select NEW_LEDS - select LEDS_CLASS -+ select INPUT_POLLDEV - default n - help - This driver provides support for the Apple System Management -diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c -index 941729a..cea8d78 100644 ---- a/drivers/hwmon/applesmc.c -+++ b/drivers/hwmon/applesmc.c -@@ -28,7 +28,7 @@ - - #include <linux/delay.h> - #include <linux/platform_device.h> --#include <linux/input.h> -+#include <linux/input-polldev.h> - #include <linux/kernel.h> - #include <linux/module.h> - #include <linux/timer.h> -@@ -59,9 +59,9 @@ - - #define LIGHT_SENSOR_LEFT_KEY "ALV0" /* r-o {alv (6 bytes) */ - #define LIGHT_SENSOR_RIGHT_KEY "ALV1" /* r-o {alv (6 bytes) */ --#define BACKLIGHT_KEY "LKSB" /* w-o {lkb (2 bytes) */ -+#define BACKLIGHT_KEY "LKSB" /* w-o {lkb (2 bytes) */ - --#define CLAMSHELL_KEY "MSLD" /* r-o ui8 (unused) */ -+#define CLAMSHELL_KEY "MSLD" /* r-o ui8 (unused) */ - - #define MOTION_SENSOR_X_KEY "MO_X" /* r-o sp78 (2 bytes) */ - #define MOTION_SENSOR_Y_KEY "MO_Y" /* r-o sp78 (2 bytes) */ -@@ -103,7 +103,7 @@ static const char* fan_speed_keys[] = { - #define INIT_TIMEOUT_MSECS 5000 /* wait up to 5s for device init ... */ - #define INIT_WAIT_MSECS 50 /* ... in 50ms increments */ - --#define APPLESMC_POLL_PERIOD (HZ/20) /* poll for input every 1/20s */ -+#define APPLESMC_POLL_INTERVAL 50 /* msecs */ - #define APPLESMC_INPUT_FUZZ 4 /* input event threshold */ - #define APPLESMC_INPUT_FLAT 4 - -@@ -125,8 +125,7 @@ static const int debug; - static struct platform_device *pdev; - static s16 rest_x; - static s16 rest_y; --static struct timer_list applesmc_timer; --static struct input_dev *applesmc_idev; -+static struct input_polled_dev *applesmc_idev; - static struct class_device *hwmon_class_dev; - - /* Indicates whether this computer has an accelerometer. */ -@@ -138,7 +137,7 @@ static unsigned int applesmc_light; - /* Indicates which temperature sensors set to use. */ - static unsigned int applesmc_temperature_set; - --static struct mutex applesmc_lock; -+static DEFINE_MUTEX(applesmc_lock); - - /* - * Last index written to key_at_index sysfs file, and value to use for all other -@@ -455,27 +454,12 @@ static void applesmc_calibrate(void) - rest_x = -rest_x; - } - --static int applesmc_idev_open(struct input_dev *dev) --{ -- add_timer(&applesmc_timer); -- -- return 0; --} -- --static void applesmc_idev_close(struct input_dev *dev) --{ -- del_timer_sync(&applesmc_timer); --} -- --static void applesmc_idev_poll(unsigned long unused) -+static void applesmc_idev_poll(struct input_polled_dev *dev) - { -+ struct input_dev *idev = dev->input; - s16 x, y; - -- /* Cannot sleep. Try nonblockingly. If we fail, try again later. */ -- if (!mutex_trylock(&applesmc_lock)) { -- mod_timer(&applesmc_timer, jiffies + APPLESMC_POLL_PERIOD); -- return; -- } -+ mutex_lock(&applesmc_lock); - - if (applesmc_read_motion_sensor(SENSOR_X, &x)) - goto out; -@@ -483,13 +467,11 @@ static void applesmc_idev_poll(unsigned long unused) - goto out; - - x = -x; -- input_report_abs(applesmc_idev, ABS_X, x - rest_x); -- input_report_abs(applesmc_idev, ABS_Y, y - rest_y); -- input_sync(applesmc_idev); -+ input_report_abs(idev, ABS_X, x - rest_x); -+ input_report_abs(idev, ABS_Y, y - rest_y); -+ input_sync(idev); - - out: -- mod_timer(&applesmc_timer, jiffies + APPLESMC_POLL_PERIOD); -- - mutex_unlock(&applesmc_lock); - } - -@@ -821,8 +803,7 @@ static ssize_t applesmc_key_at_index_read_show(struct device *dev, - - if (!ret) { - return info[0]; -- } -- else { -+ } else { - return ret; - } - } -@@ -1093,6 +1074,7 @@ static int applesmc_dmi_match(struct dmi_system_id *id) - /* Create accelerometer ressources */ - static int applesmc_create_accelerometer(void) - { -+ struct input_dev *idev; - int ret; - - ret = sysfs_create_group(&pdev->dev.kobj, -@@ -1100,40 +1082,37 @@ static int applesmc_create_accelerometer(void) - if (ret) - goto out; - -- applesmc_idev = input_allocate_device(); -+ applesmc_idev = input_allocate_polled_device(); - if (!applesmc_idev) { - ret = -ENOMEM; - goto out_sysfs; - } - -+ applesmc_idev->poll = applesmc_idev_poll; -+ applesmc_idev->poll_interval = APPLESMC_POLL_INTERVAL; -+ - /* initial calibrate for the input device */ - applesmc_calibrate(); - -- /* initialize the input class */ -- applesmc_idev->name = "applesmc"; -- applesmc_idev->id.bustype = BUS_HOST; -- applesmc_idev->dev.parent = &pdev->dev; -- applesmc_idev->evbit[0] = BIT(EV_ABS); -- applesmc_idev->open = applesmc_idev_open; -- applesmc_idev->close = applesmc_idev_close; -- input_set_abs_params(applesmc_idev, ABS_X, -+ /* initialize the input device */ -+ idev = applesmc_idev->input; -+ idev->name = "applesmc"; -+ idev->id.bustype = BUS_HOST; -+ idev->dev.parent = &pdev->dev; -+ idev->evbit[0] = BIT(EV_ABS); -+ input_set_abs_params(idev, ABS_X, - -256, 256, APPLESMC_INPUT_FUZZ, APPLESMC_INPUT_FLAT); -- input_set_abs_params(applesmc_idev, ABS_Y, -+ input_set_abs_params(idev, ABS_Y, - -256, 256, APPLESMC_INPUT_FUZZ, APPLESMC_INPUT_FLAT); - -- ret = input_register_device(applesmc_idev); -+ ret = input_register_polled_device(applesmc_idev); - if (ret) - goto out_idev; - -- /* start up our timer for the input device */ -- init_timer(&applesmc_timer); -- applesmc_timer.function = applesmc_idev_poll; -- applesmc_timer.expires = jiffies + APPLESMC_POLL_PERIOD; -- - return 0; - - out_idev: -- input_free_device(applesmc_idev); -+ input_free_polled_device(applesmc_idev); - - out_sysfs: - sysfs_remove_group(&pdev->dev.kobj, &accelerometer_attributes_group); -@@ -1146,8 +1125,8 @@ out: - /* Release all ressources used by the accelerometer */ - static void applesmc_release_accelerometer(void) - { -- del_timer_sync(&applesmc_timer); -- input_unregister_device(applesmc_idev); -+ input_unregister_polled_device(applesmc_idev); -+ input_free_polled_device(applesmc_idev); - sysfs_remove_group(&pdev->dev.kobj, &accelerometer_attributes_group); - } - -@@ -1184,8 +1163,6 @@ static int __init applesmc_init(void) - int count; - int i; - -- mutex_init(&applesmc_lock); -- - if (!dmi_check_system(applesmc_whitelist)) { - printk(KERN_WARNING "applesmc: supported laptop not found!\n"); - ret = -ENODEV; diff --git a/sys-kernel/mactel-linux-sources/files/mactel-patches-r142/applesmc_int.patch b/sys-kernel/mactel-linux-sources/files/mactel-patches-r142/applesmc_int.patch deleted file mode 100644 index 7cab258..0000000 --- a/sys-kernel/mactel-linux-sources/files/mactel-patches-r142/applesmc_int.patch +++ /dev/null @@ -1,415 +0,0 @@ -Add interrupt support for the accelerometer. A message is printed in dmesg when an interrupt occurs, but no further handling is done. - -From: Nicolas Boichat <nicolas@boichat.ch> - - ---- - - drivers/hwmon/applesmc.c | 321 +++++++++++++++++++++++++++++++++++++++++++--- - 1 files changed, 298 insertions(+), 23 deletions(-) - -diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c -index cea8d78..5d184a1 100644 ---- a/drivers/hwmon/applesmc.c -+++ b/drivers/hwmon/applesmc.c -@@ -39,14 +39,20 @@ - #include <linux/leds.h> - #include <linux/hwmon.h> - #include <linux/workqueue.h> -+#include <linux/interrupt.h> - - /* data port used by Apple SMC */ - #define APPLESMC_DATA_PORT 0x300 - /* command/status port used by Apple SMC */ - #define APPLESMC_CMD_PORT 0x304 -+/* status port used by Apple SMC to get which interrupt type just happened */ -+#define APPLESMC_INT_PORT 0x31f - - #define APPLESMC_NR_PORTS 32 /* 0x300-0x31f */ - -+/* Defined in ACPI DSDT table, should we read it from there? */ -+#define APPLESMC_IRQ 6 -+ - #define APPLESMC_MAX_DATA_LENGTH 32 - - #define APPLESMC_STATUS_MASK 0x0f -@@ -57,6 +63,8 @@ - - #define KEY_COUNT_KEY "#KEY" /* r-o ui32 */ - -+#define INTERRUPT_OK_KEY "NTOK" /* w-o ui8 */ -+ - #define LIGHT_SENSOR_LEFT_KEY "ALV0" /* r-o {alv (6 bytes) */ - #define LIGHT_SENSOR_RIGHT_KEY "ALV1" /* r-o {alv (6 bytes) */ - #define BACKLIGHT_KEY "LKSB" /* w-o {lkb (2 bytes) */ -@@ -68,6 +76,19 @@ - #define MOTION_SENSOR_Z_KEY "MO_Z" /* r-o sp78 (2 bytes) */ - #define MOTION_SENSOR_KEY "MOCN" /* r/w ui16 */ - -+/* -+ * Interrupt controls. -+ * If the norm of the position (sqrt(MO_X^2+MO_Y^2+MO_Z^2)) is smaller than -+ * MOLT (free fall), or bigger than MOHT (high acceleration) for longer than the -+ * value of MOLD (or MOHD), SMC will trigger an interrupt. -+ */ -+#define MOTION_LOW_NORM "MOLT" /* r/w sp78 (2 bytes) */ -+#define MOTION_HIGH_NORM "MOHT" /* r/w sp78 (2 bytes) */ -+#define MOTION_LOW_NORM_INTERVAL "MOLD" /* r/w ui8 */ -+#define MOTION_HIGH_NORM_INTERVAL "MOHD" /* r/w ui8 */ -+ -+#define MSDW_KEY "MSDW" /* r/w flag (1 byte) */ -+ - #define FANS_COUNT "FNum" /* r-o ui8 */ - #define FANS_MANUAL "FS! " /* r-w ui16 */ - #define FAN_ACTUAL_SPEED "F0Ac" /* r-o fpe2 (2 bytes) */ -@@ -351,12 +372,83 @@ static int applesmc_read_motion_sensor(int index, s16* value) - } - - /* -+ * applesmc_init_check_key_value - checks if a given key contains the bytes in -+ * buffer, if not, writes these bytes. -+ * In case of failure retry every INIT_WAIT_MSECS msec, and timeout if it -+ * waited more than INIT_TIMEOUT_MSECS in total. -+ * Returns zero on success or a negative error on failure. Callers must -+ * hold applesmc_lock. -+ */ -+static int applesmc_init_check_key_value(const char *key, u8 *buffer, u8 len) -+{ -+ int total, ret, i, compare; -+ u8 rdbuffer[APPLESMC_MAX_DATA_LENGTH]; -+ -+ if (len > APPLESMC_MAX_DATA_LENGTH) { -+ printk(KERN_ERR "applesmc_init_check_key_value: cannot " -+ "read/write more than %d bytes", -+ APPLESMC_MAX_DATA_LENGTH); -+ return -EINVAL; -+ } -+ -+ for (total = INIT_TIMEOUT_MSECS; total > 0; total -= INIT_WAIT_MSECS) { -+ ret = applesmc_read_key(key, rdbuffer, len); -+ if (!ret) { -+ compare = 1; -+ for (i = 0; i < len; i++) { -+ if (rdbuffer[i] != buffer[i]) { -+ compare = 0; -+ break; -+ } -+ } -+ -+ if (compare) { -+ return 0; -+ } -+ } -+ ret = applesmc_write_key(key, buffer, len); -+ msleep(INIT_WAIT_MSECS); -+ } -+ -+ if (ret) -+ return ret; -+ else -+ return -EIO; -+} -+ -+irqreturn_t applesmc_irq_handler(int irq, void *dev_id) -+{ -+ u8 int_type = inb(APPLESMC_INT_PORT); -+ -+ switch (int_type) { -+ case 0x60: -+ printk(KERN_INFO "applesmc: received a free fall interrupt\n"); -+ break; -+ case 0x6f: -+ printk(KERN_INFO -+ "applesmc: received a high acceleration interrupt\n"); -+ break; -+ case 0x80: -+ printk(KERN_INFO "applesmc: received a shock interrupt\n"); -+ break; -+ default: -+ printk(KERN_INFO -+ "applesmc: received an unknown interrupt %x\n", -+ int_type); -+ } -+ -+ return IRQ_HANDLED; -+} -+ -+/* - * applesmc_device_init - initialize the accelerometer. Returns zero on success - * and negative error code on failure. Can sleep. - */ - static int applesmc_device_init(void) - { -- int total, ret = -ENXIO; -+ int total; -+ int ret = -ENXIO; -+ int ret1, ret2; - u8 buffer[2]; - - if (!applesmc_accelerometer) -@@ -364,32 +456,79 @@ static int applesmc_device_init(void) - - mutex_lock(&applesmc_lock); - -+ /* Accept interrupts */ -+ buffer[0] = 0x01; - for (total = INIT_TIMEOUT_MSECS; total > 0; total -= INIT_WAIT_MSECS) { -- if (debug) -- printk(KERN_DEBUG "applesmc try %d\n", total); -- if (!applesmc_read_key(MOTION_SENSOR_KEY, buffer, 2) && -- (buffer[0] != 0x00 || buffer[1] != 0x00)) { -- if (total == INIT_TIMEOUT_MSECS) { -- printk(KERN_DEBUG "applesmc: device has" -- " already been initialized" -- " (0x%02x, 0x%02x).\n", -- buffer[0], buffer[1]); -- } else { -- printk(KERN_DEBUG "applesmc: device" -- " successfully initialized" -- " (0x%02x, 0x%02x).\n", -- buffer[0], buffer[1]); -- } -- ret = 0; -- goto out; -- } -- buffer[0] = 0xe0; -- buffer[1] = 0x00; -- applesmc_write_key(MOTION_SENSOR_KEY, buffer, 2); -+ ret1 = applesmc_write_key(INTERRUPT_OK_KEY, buffer, 1); - msleep(INIT_WAIT_MSECS); -+ -+ if (!ret1) -+ break; -+ } -+ if (ret1) -+ printk(KERN_WARNING "applesmc: Cannot set NTOK key, " -+ "will not receive interrupts.\n"); -+ -+ /* Setup interrupt controls. */ -+ buffer[0] = 20; /* 20 msecs */ -+ ret1 = applesmc_init_check_key_value(MOTION_LOW_NORM_INTERVAL, -+ buffer, 1); -+ -+ buffer[0] = 20; /* 20 msecs */ -+ ret2 = applesmc_init_check_key_value(MOTION_HIGH_NORM_INTERVAL, -+ buffer, 1); -+ -+ if (ret1 || ret2) { -+ printk(KERN_WARNING "applesmc: Cannot set motion sensor " -+ "interrupt interval, might not receive " -+ "some interrupts."); - } - -- printk(KERN_WARNING "applesmc: failed to init the device\n"); -+ buffer[0] = 0x00; -+ buffer[1] = 0x60; -+ ret1 = applesmc_init_check_key_value(MOTION_LOW_NORM, buffer, 2); -+ -+ buffer[0] = 0x01; -+ buffer[1] = 0xc0; -+ ret2 = applesmc_init_check_key_value(MOTION_HIGH_NORM, buffer, 2); -+ -+ if (ret1 || ret2) { -+ printk(KERN_WARNING "applesmc: Cannot set motion sensor " -+ "min/max norm parameters, " -+ "might not receive some interrupts."); -+ } -+ -+ /* Mysterious key. */ -+ buffer[0] = 0x01; -+ for (total = INIT_TIMEOUT_MSECS; total > 0; total -= INIT_WAIT_MSECS) { -+ ret1 = applesmc_write_key(MSDW_KEY, buffer, 1); -+ msleep(INIT_WAIT_MSECS); -+ -+ if (!ret1) -+ break; -+ } -+ if (ret1) -+ printk(KERN_WARNING "applesmc: Cannot set MSDW key\n"); -+ -+ /* Initialize the device. */ -+ buffer[0] = 0xe0; -+ buffer[1] = 0xf8; -+ if (applesmc_init_check_key_value(MOTION_SENSOR_KEY, buffer, 2)) { -+ printk(KERN_WARNING "applesmc: failed to init " -+ "the accelerometer\n"); -+ goto out; -+ } -+ -+ ret1 = request_irq(APPLESMC_IRQ, applesmc_irq_handler, IRQF_DISABLED, -+ "applesmc_irq_handler", NULL); -+ -+ if (ret1) { -+ printk(KERN_WARNING "applesmc: cannot setup irq handler\n"); -+ } -+ -+ printk(KERN_DEBUG "applesmc: accelerometer " -+ "successfully initialized.\n"); -+ ret = 0; - - out: - mutex_unlock(&applesmc_lock); -@@ -434,9 +573,16 @@ static int applesmc_resume(struct platform_device *dev) - return applesmc_device_init(); - } - -+static int applesmc_remove(struct platform_device *dev) -+{ -+ free_irq(APPLESMC_IRQ, NULL); -+ return 0; -+} -+ - static struct platform_driver applesmc_driver = { - .probe = applesmc_probe, - .resume = applesmc_resume, -+ .remove = applesmc_remove, - .driver = { - .name = "applesmc", - .owner = THIS_MODULE, -@@ -898,6 +1044,123 @@ static ssize_t applesmc_key_at_index_store(struct device *dev, - return count; - } - -+static ssize_t applesmc_accelerometer_show(struct device *dev, -+ struct device_attribute *attr, char *sysfsbuf) -+{ -+ int ret; -+ unsigned int value = 0; -+ u8 buffer[2]; -+ char *key; -+ int length; -+ struct sensor_device_attribute_2 *sensor_attr = -+ to_sensor_dev_attr_2(attr); -+ -+ switch (sensor_attr->index) { -+ case 0: -+ key = MOTION_LOW_NORM_INTERVAL; -+ length = 1; -+ break; -+ case 1: -+ key = MOTION_HIGH_NORM_INTERVAL; -+ length = 1; -+ break; -+ case 2: -+ key = MOTION_LOW_NORM; -+ length = 2; -+ break; -+ case 3: -+ key = MOTION_HIGH_NORM; -+ length = 2; -+ break; -+ default: -+ printk(KERN_ERR -+ "Invalid index for applesmc_accelerometer_show"); -+ return -EINVAL; -+ } -+ -+ mutex_lock(&applesmc_lock); -+ -+ ret = applesmc_read_key(key, buffer, length); -+ if (length == 2) -+ value = ((unsigned int)buffer[0] << 8) | buffer[1]; -+ else if (length == 1) -+ value = buffer[0]; -+ else { -+ printk("Invalid length for applesmc_param_show"); -+ ret = -EINVAL; -+ } -+ -+ mutex_unlock(&applesmc_lock); -+ if (ret) -+ return ret; -+ else -+ return snprintf(sysfsbuf, PAGE_SIZE, "%u\n", value); -+} -+ -+static ssize_t applesmc_accelerometer_store(struct device *dev, -+ struct device_attribute *attr, -+ const char *sysfsbuf, size_t count) -+{ -+ int ret; -+ u32 value; -+ u8 buffer[2]; -+ char *key; -+ int length; -+ struct sensor_device_attribute_2 *sensor_attr = -+ to_sensor_dev_attr_2(attr); -+ -+ switch (sensor_attr->index) { -+ case 0: -+ key = MOTION_LOW_NORM_INTERVAL; -+ length = 1; -+ break; -+ case 1: -+ key = MOTION_HIGH_NORM_INTERVAL; -+ length = 1; -+ break; -+ case 2: -+ key = MOTION_LOW_NORM; -+ length = 2; -+ break; -+ case 3: -+ key = MOTION_HIGH_NORM; -+ length = 2; -+ break; -+ default: -+ printk("Invalid index for applesmc_accelerometer_show"); -+ return -EINVAL; -+ } -+ -+ value = simple_strtoul(sysfsbuf, NULL, 10); -+ -+ if (length == 2) { -+ if (value > 0xffff) -+ return -EINVAL; -+ -+ buffer[0] = (value >> 8) & 0xff; -+ buffer[1] = value & 0xff; -+ } else if (length == 1) { -+ if (value > 0xff) -+ return -EINVAL; -+ -+ buffer[0] = value & 0xff; -+ } else { -+ printk("Invalid length for applesmc_param_store"); -+ return -EINVAL; -+ } -+ -+ mutex_lock(&applesmc_lock); -+ -+ ret = applesmc_write_key(key, buffer, length); -+ -+ mutex_unlock(&applesmc_lock); -+ -+ if (ret) -+ return ret; -+ else -+ return count; -+} -+ - static struct led_classdev applesmc_backlight = { - .name = "smc:kbd_backlight", - .default_trigger = "nand-disk", -@@ -909,10 +1172,22 @@ static DEVICE_ATTR(name, 0444, applesmc_name_show, NULL); - static DEVICE_ATTR(position, 0444, applesmc_position_show, NULL); - static DEVICE_ATTR(calibrate, 0644, - applesmc_calibrate_show, applesmc_calibrate_store); -+static SENSOR_DEVICE_ATTR(low_norm_trigger_interval, 0644, -+ applesmc_accelerometer_show, applesmc_accelerometer_store, 0); -+static SENSOR_DEVICE_ATTR(high_norm_trigger_interval, 0644, -+ applesmc_accelerometer_show, applesmc_accelerometer_store, 1); -+static SENSOR_DEVICE_ATTR(low_norm_trigger, 0644, -+ applesmc_accelerometer_show, applesmc_accelerometer_store, 2); -+static SENSOR_DEVICE_ATTR(high_norm_trigger, 0644, -+ applesmc_accelerometer_show, applesmc_accelerometer_store, 3); - - static struct attribute *accelerometer_attributes[] = { - &dev_attr_position.attr, - &dev_attr_calibrate.attr, -+ &sensor_dev_attr_low_norm_trigger.dev_attr.attr, -+ &sensor_dev_attr_high_norm_trigger.dev_attr.attr, -+ &sensor_dev_attr_low_norm_trigger_interval.dev_attr.attr, -+ &sensor_dev_attr_high_norm_trigger_interval.dev_attr.attr, - NULL - }; - diff --git a/sys-kernel/mactel-linux-sources/files/mactel-patches-r142/appletouch-new.patch b/sys-kernel/mactel-linux-sources/files/mactel-patches-r142/appletouch-new.patch deleted file mode 100644 index a81fe75..0000000 --- a/sys-kernel/mactel-linux-sources/files/mactel-patches-r142/appletouch-new.patch +++ /dev/null @@ -1,385 +0,0 @@ -A few month ago I implemented palm-detection to the appletouch driver and - -From: Sven Anders <anders@anduras.de> - -released a development version. Currently I'm trying to reimplement these -in a clean way and I'm planning to release it in parts, so I would be accepted -by the kernel developers. - -Late in the develoment progress I found out, that the new Geyser 3/4 touchpad -have special status flags. This patch implements the usage of them and corrects -the calculation of the pressure (for later usage by the palm detection). - -It was tested by some debian people (Johannes Berg, Michel Dänzer, Gaudenz -Steinlin) on the PowerBook and works there too. ---- - - drivers/input/mouse/appletouch.c | 187 ++++++++++++++++++++++++++------------ - 1 files changed, 126 insertions(+), 61 deletions(-) - -diff --git a/drivers/input/mouse/appletouch.c b/drivers/input/mouse/appletouch.c -index 51cc7c3..4c838d1 100644 ---- a/drivers/input/mouse/appletouch.c -+++ b/drivers/input/mouse/appletouch.c -@@ -8,8 +8,12 @@ - * Copyright (C) 2005 Peter Osterlund (petero2@telia.com) - * Copyright (C) 2005 Michael Hanselmann (linux-kernel@hansmi.ch) - * Copyright (C) 2006 Nicolas Boichat (nicolas@boichat.ch) -+ * Copyright (C) 2007 Sven Anders (anders@anduras.de) - * - * Thanks to Alex Harper <basilisk@foobox.net> for his inputs. -+ * Jason Parekh <jasonparekh@gmail.com> for better finger detection. -+ * Matthew Garrett <mjg59@srcf.ucam.org> for power saving additions. -+ * Soeren Sonnenburg <mactel-ml@nn7.de> for corrections and ideas. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by -@@ -38,16 +42,17 @@ - #define APPLE_VENDOR_ID 0x05AC - - /* These names come from Info.plist in AppleUSBTrackpad.kext */ -+ -+/* PowerBooks Feb 2005 / iBooks */ - #define FOUNTAIN_ANSI_PRODUCT_ID 0x020E - #define FOUNTAIN_ISO_PRODUCT_ID 0x020F -- - #define FOUNTAIN_TP_ONLY_PRODUCT_ID 0x030A -- - #define GEYSER1_TP_ONLY_PRODUCT_ID 0x030B - --#define GEYSER_ANSI_PRODUCT_ID 0x0214 --#define GEYSER_ISO_PRODUCT_ID 0x0215 --#define GEYSER_JIS_PRODUCT_ID 0x0216 -+/* PowerBooks Oct 2005 */ -+#define GEYSER2_ANSI_PRODUCT_ID 0x0214 -+#define GEYSER2_ISO_PRODUCT_ID 0x0215 -+#define GEYSER2_JIS_PRODUCT_ID 0x0216 - - /* MacBook devices */ - #define GEYSER3_ANSI_PRODUCT_ID 0x0217 -@@ -58,9 +63,9 @@ - * Geyser IV: same as Geyser III according to Info.plist in AppleUSBTrackpad.kext - * -> same IOClass (AppleUSBGrIIITrackpad), same acceleration tables - */ --#define GEYSER4_ANSI_PRODUCT_ID 0x021A --#define GEYSER4_ISO_PRODUCT_ID 0x021B --#define GEYSER4_JIS_PRODUCT_ID 0x021C -+#define GEYSER4_ANSI_PRODUCT_ID 0x021A -+#define GEYSER4_ISO_PRODUCT_ID 0x021B -+#define GEYSER4_JIS_PRODUCT_ID 0x021C - - #define ATP_DEVICE(prod) \ - .match_flags = USB_DEVICE_ID_MATCH_DEVICE | \ -@@ -73,15 +78,17 @@ - - /* table of devices that work with this driver */ - static struct usb_device_id atp_table [] = { -+ -+ /* PowerBooks Feb 2005, iBooks G4 */ - { ATP_DEVICE(FOUNTAIN_ANSI_PRODUCT_ID) }, - { ATP_DEVICE(FOUNTAIN_ISO_PRODUCT_ID) }, - { ATP_DEVICE(FOUNTAIN_TP_ONLY_PRODUCT_ID) }, - { ATP_DEVICE(GEYSER1_TP_ONLY_PRODUCT_ID) }, - - /* PowerBooks Oct 2005 */ -- { ATP_DEVICE(GEYSER_ANSI_PRODUCT_ID) }, -- { ATP_DEVICE(GEYSER_ISO_PRODUCT_ID) }, -- { ATP_DEVICE(GEYSER_JIS_PRODUCT_ID) }, -+ { ATP_DEVICE(GEYSER2_ANSI_PRODUCT_ID) }, -+ { ATP_DEVICE(GEYSER2_ISO_PRODUCT_ID) }, -+ { ATP_DEVICE(GEYSER2_JIS_PRODUCT_ID) }, - - /* Core Duo MacBook & MacBook Pro */ - { ATP_DEVICE(GEYSER3_ANSI_PRODUCT_ID) }, -@@ -136,27 +143,36 @@ MODULE_DEVICE_TABLE (usb, atp_table); - #define ATP_GEYSER3_MODE_REQUEST_INDEX 0 - #define ATP_GEYSER3_MODE_VENDOR_VALUE 0x04 - -+/* -+ * Meaning of the status bits (only Geyser 3/4?) -+ */ -+#define ATP_STATUS_BIT_BUTTON 0x01 /* The button was pressed */ -+#define ATP_STATUS_BIT_UNKNOWN1 0x02 /* Unknown or unused */ -+#define ATP_STATUS_BIT_BASE_UPDATE 0x04 /* Update of the base values (untouched pad) */ -+#define ATP_STATUS_BIT_UNKNOWN2 0x08 /* Unknown or unused */ -+#define ATP_STATUS_BIT_FROM_RESET 0x10 /* Reset previously performed */ -+ - /* Structure to hold all of our device specific stuff */ - struct atp { - char phys[64]; - struct usb_device * udev; /* usb device */ - struct urb * urb; /* usb request block */ -- signed char * data; /* transferred data */ -+ u8 * data; /* transferred data */ - int open; /* non-zero if opened */ - struct input_dev *input; /* input dev */ - int valid; /* are the sensors valid ? */ - int x_old; /* last reported x/y, */ - int y_old; /* used for smoothing */ - /* current value of the sensors */ -- signed char xy_cur[ATP_XSENSORS + ATP_YSENSORS]; -+ u16 xy_cur[ATP_XSENSORS + ATP_YSENSORS]; - /* last value of the sensors */ -- signed char xy_old[ATP_XSENSORS + ATP_YSENSORS]; -+ u16 xy_old[ATP_XSENSORS + ATP_YSENSORS]; - /* accumulated sensors */ - int xy_acc[ATP_XSENSORS + ATP_YSENSORS]; - int overflowwarn; /* overflow warning printed? */ - int datalen; /* size of an USB urb transfer */ -- int idlecount; /* number of empty packets */ -- struct work_struct work; -+ int idle_counter; /* idle counter */ -+ struct work_struct work; /* kernel workqueue entry (for re-init) */ - }; - - #define dbg_dump(msg, tab) \ -@@ -173,8 +189,12 @@ struct atp { - if (debug) printk(format, ##a); \ - } while (0) - --MODULE_AUTHOR("Johannes Berg, Stelian Pop, Frank Arnold, Michael Hanselmann"); --MODULE_DESCRIPTION("Apple PowerBooks USB touchpad driver"); -+MODULE_AUTHOR("Johannes Berg"); -+MODULE_AUTHOR("Stelian Pop"); -+MODULE_AUTHOR("Frank Arnold"); -+MODULE_AUTHOR("Michael Hanselmann"); -+MODULE_AUTHOR("Sven Anders"); -+MODULE_DESCRIPTION("Apple PowerBook and MacBook USB touchpad driver"); - MODULE_LICENSE("GPL"); - - /* -@@ -184,7 +204,7 @@ static int threshold = ATP_THRESHOLD; - module_param(threshold, int, 0644); - MODULE_PARM_DESC(threshold, "Discards any change in data from a sensor (trackpad has hundreds of these sensors) less than this value"); - --static int debug = 1; -+static int debug; - module_param(debug, int, 0644); - MODULE_PARM_DESC(debug, "Activate debugging output"); - -@@ -193,9 +213,9 @@ static inline int atp_is_geyser_2(struct atp *dev) - { - u16 productId = le16_to_cpu(dev->udev->descriptor.idProduct); - -- return (productId == GEYSER_ANSI_PRODUCT_ID) || -- (productId == GEYSER_ISO_PRODUCT_ID) || -- (productId == GEYSER_JIS_PRODUCT_ID); -+ return (productId == GEYSER2_ANSI_PRODUCT_ID) || -+ (productId == GEYSER2_ISO_PRODUCT_ID) || -+ (productId == GEYSER2_JIS_PRODUCT_ID); - } - - static inline int atp_is_geyser_3(struct atp *dev) -@@ -211,24 +231,29 @@ static inline int atp_is_geyser_3(struct atp *dev) - } - - /* -- * By default Geyser 3 device sends standard USB HID mouse -- * packets (Report ID 2). This code changes device mode, so it -- * sends raw sensor reports (Report ID 5). -+ * By default Geyser 3 and Geyser 4 devices sends standard -+ * USB HID mouse packets (Report ID 2). This code changes device -+ * mode, so it sends raw sensor reports (Report ID 5). - */ --static int atp_geyser3_init(struct usb_device *udev) -+static int atp_geyser3_4_init(struct usb_device *udev) - { - char data[8]; - int size; -+ int i; - - size = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), -- ATP_GEYSER3_MODE_READ_REQUEST_ID, -- USB_DIR_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE, -- ATP_GEYSER3_MODE_REQUEST_VALUE, -- ATP_GEYSER3_MODE_REQUEST_INDEX, &data, 8, 5000); -+ ATP_GEYSER3_MODE_READ_REQUEST_ID, -+ USB_DIR_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE, -+ ATP_GEYSER3_MODE_REQUEST_VALUE, -+ ATP_GEYSER3_MODE_REQUEST_INDEX, &data, 8, 5000); - - if (size != 8) { -+ printk("appletouch atp_geyser3_4_init READ error\n"); -+ for (i=0; i<8; i++) -+ printk("appletouch[%d]: %d\n", i, (int) data[i]); -+ - err("Could not do mode read request from device" -- " (Geyser 3 mode)"); -+ " (Geyser 3/4 mode)"); - return -EIO; - } - -@@ -236,27 +261,31 @@ static int atp_geyser3_init(struct usb_device *udev) - data[0] = ATP_GEYSER3_MODE_VENDOR_VALUE; - - size = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), -- ATP_GEYSER3_MODE_WRITE_REQUEST_ID, -- USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, -- ATP_GEYSER3_MODE_REQUEST_VALUE, -- ATP_GEYSER3_MODE_REQUEST_INDEX, &data, 8, 5000); -+ ATP_GEYSER3_MODE_WRITE_REQUEST_ID, -+ USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, -+ ATP_GEYSER3_MODE_REQUEST_VALUE, -+ ATP_GEYSER3_MODE_REQUEST_INDEX, &data, 8, 5000); - - if (size != 8) { -+ printk("appletouch atp_geyser3_4_init WRITE error\n"); -+ for (i=0; i<8; i++) -+ printk("appletouch[%d]: %d\n", i, (int) data[i]); -+ - err("Could not do mode write request to device" -- " (Geyser 3 mode)"); -+ " (Geyser 3/4 mode)"); - return -EIO; - } - return 0; - } - --/* Reinitialise the device if it's a geyser 3 */ -+/* Reinitialise the device if it's a geyser 3/4 */ - static void atp_reinit(struct work_struct *work) - { - struct atp *dev = container_of(work, struct atp, work); - struct usb_device *udev = dev->udev; - -- dev->idlecount = 0; -- atp_geyser3_init(udev); -+ dprintk("appletouch: putting appletouch to sleep (reinit)\n"); -+ atp_geyser3_4_init(udev); - } - - static int atp_calculate_abs(int *xy_sensors, int nb_sensors, int fact, -@@ -421,10 +450,15 @@ static void atp_complete(struct urb* urb) - dbg_dump("sample", dev->xy_cur); - - if (!dev->valid) { -- /* first sample */ -+ /* first sample after init or resume */ - dev->valid = 1; - dev->x_old = dev->y_old = -1; -- memcpy(dev->xy_old, dev->xy_cur, sizeof(dev->xy_old)); -+ dev->idle_counter = 0; -+ -+ /* store first sample on older Geyser */ -+ if ((dev->data[dev->datalen-1] & ATP_STATUS_BIT_BASE_UPDATE) || -+ !atp_is_geyser_3(dev)) -+ memcpy(dev->xy_old, dev->xy_cur, sizeof(dev->xy_old)); - - if (atp_is_geyser_3(dev)) /* No 17" Macbooks (yet) */ - goto exit; -@@ -451,18 +485,39 @@ static void atp_complete(struct urb* urb) - goto exit; - } - -+ /* Just update the base values (i.e. touchpad in untouched state) */ -+ if (dev->data[dev->datalen-1] & ATP_STATUS_BIT_BASE_UPDATE) -+ { -+ if (debug > 0) printk("appletouch: updated base values\n"); -+ -+ memcpy(dev->xy_old, dev->xy_cur, sizeof(dev->xy_old)); -+ goto exit; -+ } -+ - for (i = 0; i < ATP_XSENSORS + ATP_YSENSORS; i++) { -- /* accumulate the change */ -- signed char change = dev->xy_old[i] - dev->xy_cur[i]; -- dev->xy_acc[i] -= change; -+ /* calculate the change */ -+ dev->xy_acc[i] = dev->xy_cur[i] - dev->xy_old[i]; -+ -+ /* this is a round-robin value, so couple with that */ -+ if (dev->xy_acc[i] > 127) -+ dev->xy_acc[i] -= 256; -+ -+ if (dev->xy_acc[i] < -127) -+ dev->xy_acc[i] += 256; -+ -+ /* Needed for the older Geyser */ -+ if (!atp_is_geyser_3(dev)) -+ { -+ /* store new 'untouched' value, if any new */ -+ if (dev->xy_acc[i] < -1) -+ dev->xy_old[i] = dev->xy_cur[i]; -+ } - -- /* prevent down drifting */ -- if (dev->xy_acc[i] < 0) -+ /* prevent down-drifting */ -+ if (dev->xy_acc[i] < 0) - dev->xy_acc[i] = 0; - } - -- memcpy(dev->xy_old, dev->xy_cur, sizeof(dev->xy_old)); -- - dbg_dump("accumulator", dev->xy_acc); - - x = atp_calculate_abs(dev->xy_acc, ATP_XSENSORS, -@@ -478,7 +533,7 @@ static void atp_complete(struct urb* urb) - dev->x_old = x; - dev->y_old = y; - -- if (debug > 1) -+ if (debug > 0) - printk("appletouch: X: %3d Y: %3d " - "Xz: %3d Yz: %3d\n", - x, y, x_z, y_z); -@@ -503,20 +558,30 @@ static void atp_complete(struct urb* urb) - /* reset the accumulator on release */ - memset(dev->xy_acc, 0, sizeof(dev->xy_acc)); - -- /* Geyser 3 will continue to send packets continually after -- the first touch unless reinitialised. Do so if it's been -- idle for a while in order to avoid waking the kernel up -- several hundred times a second */ -- if (!key && atp_is_geyser_3(dev)) { -- dev->idlecount++; -- if (dev->idlecount == 10) { -- dev->valid = 0; -+ /* Idle counter */ -+ dev->idle_counter++; -+ -+ /* Wait for 10 more packages before suspending */ -+ if (dev->idle_counter > 10) { -+ -+ /* Get every 10th sample, reset counter */ -+ dev->idle_counter = 0; -+ -+ /* Geyser 3/4 will continue to send packets continually -+ after the first touch. The function is called every -+ 8 milliseconds from interrups context, unless -+ reinitialised. Do so if it's been idle for a while -+ in order to avoid waking the kernel up several -+ hundred times a second */ -+ -+ if (!key && atp_is_geyser_3(dev)) - schedule_work(&dev->work); -- } - } - } - -- input_report_key(dev->input, BTN_LEFT, key); -+ input_report_key(dev->input, BTN_LEFT, -+ dev->data[dev->datalen - 1] & ATP_STATUS_BIT_BUTTON); -+ - input_sync(dev->input); - - exit: -@@ -593,9 +658,8 @@ static int atp_probe(struct usb_interface *iface, const struct usb_device_id *id - - if (atp_is_geyser_3(dev)) { - /* switch to raw sensor mode */ -- if (atp_geyser3_init(udev)) -+ if (atp_geyser3_4_init(udev)) - goto err_free_devs; -- - printk("appletouch Geyser 3 inited.\n"); - } - -@@ -670,6 +734,7 @@ static int atp_probe(struct usb_interface *iface, const struct usb_device_id *id - /* save our data pointer in this interface device */ - usb_set_intfdata(iface, dev); - -+ /* initialize kernel work queue for re-init out of interrupt context */ - INIT_WORK(&dev->work, atp_reinit); - - return 0; diff --git a/sys-kernel/mactel-linux-sources/files/mactel-patches-r142/appletouch.patch b/sys-kernel/mactel-linux-sources/files/mactel-patches-r142/appletouch.patch deleted file mode 100644 index 0ec50e0..0000000 --- a/sys-kernel/mactel-linux-sources/files/mactel-patches-r142/appletouch.patch +++ /dev/null @@ -1,23 +0,0 @@ -Appletouch driver ATP_THRESHOLD fix. - -From: Ortwin Glück <odi@odi.ch> - - ---- - - drivers/input/mouse/appletouch.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/drivers/input/mouse/appletouch.c b/drivers/input/mouse/appletouch.c -index a1804bf..51cc7c3 100644 ---- a/drivers/input/mouse/appletouch.c -+++ b/drivers/input/mouse/appletouch.c -@@ -127,7 +127,7 @@ MODULE_DEVICE_TABLE (usb, atp_table); - * Threshold for the touchpad sensors. Any change less than ATP_THRESHOLD is - * ignored. - */ --#define ATP_THRESHOLD 5 -+#define ATP_THRESHOLD 3 - - /* MacBook Pro (Geyser 3 & 4) initialization constants */ - #define ATP_GEYSER3_MODE_READ_REQUEST_ID 1 diff --git a/sys-kernel/mactel-linux-sources/files/mactel-patches-r142/sigmatel_audio_display_all_controls_when_subsystem_id_is_wrong.patch b/sys-kernel/mactel-linux-sources/files/mactel-patches-r142/sigmatel_audio_display_all_controls_when_subsystem_id_is_wrong.patch deleted file mode 100644 index 128c941..0000000 --- a/sys-kernel/mactel-linux-sources/files/mactel-patches-r142/sigmatel_audio_display_all_controls_when_subsystem_id_is_wrong.patch +++ /dev/null @@ -1,28 +0,0 @@ -Display Macbook Pro 1st gen controls when the subsystem id is wrong (0x100). - -From: Nicolas Boichat <nicolas@boichat.ch> - - ---- - - sound/pci/hda/patch_sigmatel.c | 4 +++- - 1 files changed, 3 insertions(+), 1 deletions(-) - -diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c -index 3f25de7..f210051 100644 ---- a/sound/pci/hda/patch_sigmatel.c -+++ b/sound/pci/hda/patch_sigmatel.c -@@ -2125,10 +2125,12 @@ static int patch_stac922x(struct hda_codec *codec) - case 0x106b1700: - case 0x106b0200: - case 0x106b1e00: -+ case 0x100: /* Invalid subsystem ID, happens randomly on -+ * MacBook Pro 1st generation -+ */ - spec->board_config = STAC_INTEL_MAC_V3; - break; - case 0x106b1a00: -- case 0x00000100: - spec->board_config = STAC_INTEL_MAC_V4; - break; - case 0x106b0a00: diff --git a/sys-kernel/mactel-linux-sources/files/mactel-patches-r142/sigmatel_audio_fix_macbook_v2.patch b/sys-kernel/mactel-linux-sources/files/mactel-patches-r142/sigmatel_audio_fix_macbook_v2.patch deleted file mode 100644 index 1492327..0000000 --- a/sys-kernel/mactel-linux-sources/files/mactel-patches-r142/sigmatel_audio_fix_macbook_v2.patch +++ /dev/null @@ -1,30 +0,0 @@ -Fixes audio on Macbook v2. - -From: Marek Sterzik <marek@milimetr.org> - - ---- - - sound/pci/hda/patch_sigmatel.c | 2 ++ - 1 files changed, 2 insertions(+), 0 deletions(-) - -diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c -index f210051..271cb77 100644 ---- a/sound/pci/hda/patch_sigmatel.c -+++ b/sound/pci/hda/patch_sigmatel.c -@@ -69,6 +69,7 @@ enum { - /* for backward compitability */ - STAC_MACMINI, - STAC_MACBOOK, -+ STAC_MACBOOK_V2, - STAC_MACBOOK_PRO_V1, - STAC_MACBOOK_PRO_V2, - STAC_IMAC_INTEL, -@@ -623,6 +624,7 @@ static const char *stac922x_models[STAC_922X_MODELS] = { - /* for backward compitability */ - [STAC_MACMINI] = "macmini", - [STAC_MACBOOK] = "macbook", -+ [STAC_MACBOOK_V2] = "macbook-v2", - [STAC_MACBOOK_PRO_V1] = "macbook-pro-v1", - [STAC_MACBOOK_PRO_V2] = "macbook-pro", - [STAC_IMAC_INTEL] = "imac-intel", diff --git a/sys-kernel/mactel-linux-sources/mactel-linux-sources-2.6.23.ebuild b/sys-kernel/mactel-linux-sources/mactel-linux-sources-2.6.23.ebuild deleted file mode 100644 index b49d6c9..0000000 --- a/sys-kernel/mactel-linux-sources/mactel-linux-sources-2.6.23.ebuild +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 1999-2007 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: $ - -ETYPE="sources" -K_WANT_GENPATCHES="base extras" -K_GENPATCHES_VER="1" -K_SECURITY_UNSUPPORTED="1" -inherit kernel-2 -detect_version -detect_arch - -DESCRIPTION="Sources for the Linux kernel with mactel-linux and gentoo patches." -HOMEPAGE="http://www.kernel.org - http://dev.gentoo.org/~dsd/genpatches - http://mactel-linux.org" - -SRC_URI="${KERNEL_URI} ${GENPATCHES_URI} ${ARCH_URI}" -KEYWORDS="~amd64 ~x86" - -PATCHDIR="${FILESDIR}/mactel-patches-r142/" - -UNIPATCH_LIST="${PATCHDIR}/applesmc-use-input-polldev.patch \ -${PATCHDIR}/applesmc_int.patch \ -${PATCHDIR}/applesmc-for-mac-pro-2-x-quad-core.patch \ -${PATCHDIR}/applesmc-retry-when-accessing-keys.patch \ -${PATCHDIR}/appletouch.patch \ -${PATCHDIR}/appletouch-new.patch \ -${PATCHDIR}/sigmatel_audio_display_all_controls_when_subsystem_id_is_wrong.patch \ -${PATCHDIR}/sigmatel_audio_fix_macbook_v2.patch" - -UNIPATCH_STRICTORDER="1" - -pkg_postinst() { - kernel-2_pkg_postinst - einfo "For more info on this patchset, see:" - einfo "${HOMEPAGE}" - einfo "Report any problems to je_fro@gentoo.org" -} - |