sys-kernel/geos_one-sources: integrate alsa-driver-1.0.18a with xa3530 patch and other patches to optimize running on XA3530

git-svn-id: https://svn.disconnected-by-peer.at/svn/linamh/trunk/linamh@737 6952d904-891a-0410-993b-d76249ca496b
This commit is contained in:
geos_one 2009-01-29 13:03:38 +00:00
parent c42cfd59e5
commit e93d3f7b74
16 changed files with 88741 additions and 3 deletions

View File

@ -2,6 +2,20 @@
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
# $Header: $
29 Jan 2009; Mario Fetka <mario.fetka@gmail.com>
+files/linux-sabayon-2.6.28-ignore-mouse-interface-on-macbooks.patch,
+files/linux-2.6-defaults-fat-utf8.patch, +files/linux-2.6.27-lirc.patch,
+files/linux-2.6-x86-tune-generic.patch,
+files/enable-4k-stacks-default-2.6.24.patch,
+files/hz-432-kconfig-option.patch, +files/hz-864-kconfig-option.patch,
+files/1-bcm5974-headers.patch,
+files/2-bcm5974-quad-finger-tapping.patch,
+files/3-bcm5974-macbook5-support.patch,
+files/drm-modesetting-radeon.patch, +files/drm-next.patch,
+files/drm-nouveau.patch, geos_one-sources-2.6.28-r1.ebuild:
integrate alsa-driver-1.0.18a with xa3530 patch and other patches to
optimize running on XA3530
28 Jan 2009; Mario Fetka <mario.fetka@gmail.com>
+files/alsa-driver-1.0.18a-xa3530.patch,
+files/alsa-driver-1.0.19-input.patch, geos_one-sources-2.6.28-r1.ebuild:

View File

@ -1,12 +1,22 @@
AUX 1-bcm5974-headers.patch 4839 RMD160 83f5ca0a53ebe19aeaaa7d952da5c79187e563af SHA1 157ecb6994b5903cd5a4eccc8552cc2c62b7463d SHA256 33ffab37c533a3a75ac628209bf8ab70e89c3ad81fd4491f2c4051cb66ba1043
AUX 2-bcm5974-quad-finger-tapping.patch 2014 RMD160 8ae24293dd608db76316ea0ebb90ce7e215df14a SHA1 a02b87b190916b193fe3b183e0fed86d34d863d6 SHA256 9ca9ddc1ffe2c9e23b74597479834c11fb98679aa258b61e1b025d3541f43c28
AUX 3-bcm5974-macbook5-support.patch 4515 RMD160 e69c5aa44b925c76995b5a040327b2ed4b7acc79 SHA1 62a729437a289cd7474d202dbe3fac0607152a83 SHA256 c1f5027fa74591123ff38968aceb9df715a40922efc865ec2ae2b58b728c49cd
AUX alsa-driver-1.0.18a-xa3530.patch 14509 RMD160 7b64bd5303d4e646957c1e49a53adfb012b3de8e SHA1 148a444560bb9473325147d44a6f813b084d4819 SHA256 6236e6e64d09284c13f16aaefb20e54e891d5b7f1d93cdb64cf5d6901f94761c
AUX alsa-driver-1.0.19-input.patch 608 RMD160 be8e1f14e5a7ec33102a87dc2fd443a8b49ba329 SHA1 0d4f66a40ccebc034c859b3fd4ff34e436cf4d41 SHA256 414dc3663be345c42e34c3c44087e1b316e67eea6b7979c447effd39e05a8652
AUX colored-printk-2.6.26.patch 11265 RMD160 1e520168b8813754906513317f5c683dbec2b31b SHA1 d321509ccc286b29b8c0fac9ae18205705fea332 SHA256 e8afce0c43cd534a6f707dc9f8769d0ba03322efccd55e3dc3edc3375e44c4ba
AUX drm-modesetting-radeon.patch 1348501 RMD160 d89e04413554815f4a94f684a7f1e0f5a9e62b2b SHA1 39fb1193f0643798705786c85f3c90cdf28fd27a SHA256 a126a762c7df6e9bde0a65b500fefd2e8188b10cd1d15454668d91cbe1a38f7b
AUX drm-next.patch 643528 RMD160 3ec76231e1268821db9c18c11677b0661b1af7fc SHA1 848f637d414433f86b35983827e6465d24674499 SHA256 8f36e6418aa33c51af8b3567ca09a65024fcef5bcec73040a1bc87e5f71a5bf4
AUX drm-nouveau.patch 546241 RMD160 a79f37c94fdb13b16ae939206477b781b1a235af SHA1 28f6a2e7ebd98b4c491c4cdb036a043b6c13bf0f SHA256 8977a121eb90b6f543b4408bcafd424fab5c55357ebefa192f5b1daed7b725f0
AUX enable-4k-stacks-default-2.6.24.patch 350 RMD160 b6ea063adaa4ce4f97da967ce84a96d24bd8614c SHA1 799ac8293e84fb723630dcb28be986065dba131d SHA256 fd2f9a3f42ae0512e84ea5979ab8359872b9a0520de0e485ca3846dc84ea0da2
AUX fix-reiser4-for-2.6.28.1.patch 396 RMD160 fc8874e25e2e66d58a49dd6775e483feab8b36e4 SHA1 97f49e0d228bdb590493cb4f07650ab0525133af SHA256 3b2c79070f580003b4fc5229999aff2f871a31997ca6fd65c9688bcb1cb05d0c
AUX fix-unionfs-for-2.6.28.1.patch 407 RMD160 62a5c00e357faea5dd802dae40ceff46d2a3b7b2 SHA1 1b4d1c1eb151ea2d4b4d77de37ba05eb1291bad5 SHA256 0c7220bec0afdebf735fa8cd61ab39d72cebdfeb3e17ac3ee9cae5a03350d73e
AUX hz-432-kconfig-option.patch 835 RMD160 932004d8a7a6a1c5b7bbb20750d5a0e3afc9bc3d SHA1 9b7e85abcdac10f899e6b69123dd818e73e3a115 SHA256 3d416e1fccf16d5fa8b27959a9273858c6bcc9edfb5e064fcc1c4492d9b6990a
AUX hz-864-kconfig-option.patch 793 RMD160 bbb6e93838c95dd62b4597b5cec2e3107502c225 SHA1 1182dcd468a5c07e73e611db2ec07f15b81505b4 SHA256 3669964da54cab30579264d129364c04cdf842442f3a190c1f4bcc6d2dea8d74
AUX intel-hda-a3530 13174 RMD160 e9fd8a6ffa3689e68edce74733e76378c467ba72 SHA1 5656993837d657271b0001d8bd4d5047d854713e SHA256 b4543cae20203bbd8d144d92f4ef48348c29bf28b44a9de9eece15e05959979f
AUX linux-2.6-defaults-fat-utf8.patch 538 RMD160 4bd6376084e1c2946ab4efe62ee0acddfde9320f SHA1 ddacdab00dc7e2b3f911152bbbd78d80e3dc3305 SHA256 a27450c6b8ee032fe5442c3637272856552ec28bd83fac299d3250ab9e95576f
AUX linux-2.6-x86-tune-generic.patch 661 RMD160 86b4ee5a704717cd1a6a47e19cd7941e3d4edd64 SHA1 310ef3fc420d33a72aefb440294e96c63e5042d3 SHA256 0d0b58175241cb519930158766a9b8b92f87155fbce8e7f513b198a848a78916
AUX linux-2.6.27-lirc.patch 392002 RMD160 1fbfb00708859a2cb9b1b58a6db438b9d2f2d2a4 SHA1 5915ab107a468bed6b4b9a7206ec8a8e87f4c073 SHA256 bc13af0a28f10233e4461fa118c511c161740cc303f59a5cb9c53fabb93b6fd1
AUX linux-sabayon-2.6.28-ignore-mouse-interface-on-macbooks.patch 1446 RMD160 2673b06b8f88a88f8da3e8153e630e52accc149e SHA1 0741eb958644769f4388ec9200b7d25196af94b4 SHA256 9c88c82cd1cda89752fc603362f52f3deea794f88aff8af1c6d082ca63d6b247
AUX squashfs-2.6.28 219 RMD160 c1a3ae8e02643051f171500928005ca85d9d83cf SHA1 cf541d09ec2a8fe77525ebb91dd8e73060a4741a SHA256 a3b608a493ad09c983a5a697e05156697d6875a146690b8cda142854c298a9b1
DIST 2.6.27-AA2.3.tgz 96714 RMD160 ad5ed3f35f15fc10ee45020dd7a80926ef9201c8 SHA1 faf2a096b58a704d33a9a633e8e7ced0859cce26 SHA256 c94064437e6655beb9fd399fdbc443fd8a8db4acd3328ae04f23faf834d82e2e
DIST 2.6.27.4-ext4.tar.gz 167096 RMD160 943c56a52034f0423a3517c97a2ab0faac18b6b8 SHA1 3b83be52ef9c11915e3a07a79f7cc06c2722e90b SHA256 ec041900086ca6e3a2e2b3f4ae1ae2fcfbdca6dbe9b3484e5fb16ba7e0252f62
@ -44,7 +54,7 @@ EBUILD geos_one-sources-2.6.27-r4.ebuild 3191 RMD160 310291b7ef6d9015128e5cc04e2
EBUILD geos_one-sources-2.6.27-r5.ebuild 3268 RMD160 fe08f99491a001054194a78df6aa3f89d23e41f0 SHA1 4c14a4f4765a82eebaa29433bcdf189ee342b1dd SHA256 48dbf7e70fd3caa2b99272173afc94119298278f14a7c3bac7bb93c29437e233
EBUILD geos_one-sources-2.6.27-r7.ebuild 2924 RMD160 425863b77e2fc04cca9051061dcdc9c34588ce4f SHA1 f62de54668415fd45d880a1fccd9702c4d0db9f2 SHA256 03a34dd1bae6de85243ca1c3e2bbb494a59ee11042f6d443c87513c42d8eb58b
EBUILD geos_one-sources-2.6.27.ebuild 2821 RMD160 8cddc77851562dcdd261fdda1a98b416a8539cdb SHA1 87f501974802d83ef142114c01c1b7c9dea27a59 SHA256 20cb29a2fcc71d86f85232d092a1339f02f13ac042c570af632d026bad024d54
EBUILD geos_one-sources-2.6.28-r1.ebuild 3668 RMD160 b3fe95397a120ad4ea81ca97d6cb25b20349325b SHA1 0d37613ec214e09f326805d20f2806edcc61f099 SHA256 0f225349c5032bd3d9b1bbbf3a639be0a0e82968099ea916178f1416d6b0b428
EBUILD geos_one-sources-2.6.28-r1.ebuild 4178 RMD160 9a0334be5c2e2c9453ae8f2c9a585f0178e238c6 SHA1 cdedcf7bcbfceed568afe1af2f8f8ba01ff02061 SHA256 649853331ba5cfc28917e0ec4c572fc9d19b74f44ca88e271ac378085596f092
EBUILD geos_one-sources-2.6.28.ebuild 2724 RMD160 59ef67d038f90f54f7ad0224263fe3b8309db45d SHA1 f1e32cf7640706c4843679339d1774bbf89bed45 SHA256 dcb53c7bdbe81d51d74cc5f82e6efbade931fd33e962fd37cf71e7800d5d257c
MISC ChangeLog 4281 RMD160 6b2c8c60d345741322297c1409367aa7b751bf4a SHA1 f5a5e28393e1f7d64f53f408ceac7135105eed31 SHA256 74a78b8d4e5dc817602c00b65ffe3845cd5cb77747fdba72cfd69a4a4a04952c
MISC ChangeLog 4994 RMD160 168c1c4cc24293788754c7195f490dbceae18dcd SHA1 2c0372e7b51541f5c470267294f374fedc0823fc SHA256 a0f75a4463611d30f0e661c8356d4da3e610c7d20f57ee3a2eaa2c4819d4eb56
MISC metadata.xml 413 RMD160 7e4e48d47e48804072f4ce93e1948fda82433a90 SHA1 cd61cf36ba79f6635ab7b7957f31609ecf52cc90 SHA256 74fe6520890eaf800a1759f3e4f772fd0e433e5de9cf775a50c7af95b199518b

View File

@ -0,0 +1,126 @@
The new unibody Macbooks are equipped with an integrated button and
trackpad. The package header of the trackpad interface has changed to
also contain information about the integrated button. This patch
performs the necessary preparations to allow for the new package
header.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
---
drivers/input/mouse/bcm5974.c | 42 ++++++++++++++++++++++------------------
1 files changed, 23 insertions(+), 19 deletions(-)
diff --git a/drivers/input/mouse/bcm5974.c b/drivers/input/mouse/bcm5974.c
index 2998a6a..e97462e 100644
--- a/drivers/input/mouse/bcm5974.c
+++ b/drivers/input/mouse/bcm5974.c
@@ -96,13 +96,14 @@ struct bt_data {
u8 rel_y; /* relative y coordinate */
};
-/* trackpad header structure */
-struct tp_header {
- u8 unknown1[16]; /* constants, timers, etc */
- u8 fingers; /* number of fingers on trackpad */
- u8 unknown2[9]; /* constants, timers, etc */
+/* trackpad header types */
+enum tp_type {
+ TYPE1 /* plain trackpad */
};
+/* trackpad finger data offsets */
+#define FINGER_TYPE1 26
+
/* trackpad finger structure */
struct tp_finger {
__le16 origin; /* zero when switching track finger */
@@ -119,11 +120,9 @@ struct tp_finger {
__le16 multi; /* one finger: varies, more fingers: constant */
};
-/* trackpad data structure, empirically at least ten fingers */
-struct tp_data {
- struct tp_header header;
- struct tp_finger finger[16];
-};
+/* trackpad finger data size, empirically at least ten fingers */
+#define SIZEOF_FINGER sizeof(struct tp_finger)
+#define SIZEOF_ALL_FINGERS (16 * SIZEOF_FINGER)
/* device-specific parameters */
struct bcm5974_param {
@@ -139,6 +138,8 @@ struct bcm5974_config {
int bt_ep; /* the endpoint of the button interface */
int bt_datalen; /* data length of the button interface */
int tp_ep; /* the endpoint of the trackpad interface */
+ enum tp_type tp_type; /* type of trackpad interface */
+ int tp_offset; /* offset to trackpad finger data */
int tp_datalen; /* data length of the trackpad interface */
struct bcm5974_param p; /* finger pressure limits */
struct bcm5974_param w; /* finger width limits */
@@ -158,7 +159,7 @@ struct bcm5974 {
struct urb *bt_urb; /* button usb request block */
struct bt_data *bt_data; /* button transferred data */
struct urb *tp_urb; /* trackpad usb request block */
- struct tp_data *tp_data; /* trackpad transferred data */
+ u8 *tp_data; /* trackpad transferred data */
int fingers; /* number of fingers on trackpad */
};
@@ -184,7 +185,7 @@ static const struct bcm5974_config bcm5974_config_table[] = {
USB_DEVICE_ID_APPLE_WELLSPRING_ISO,
USB_DEVICE_ID_APPLE_WELLSPRING_JIS,
0x84, sizeof(struct bt_data),
- 0x81, sizeof(struct tp_data),
+ 0x81, TYPE1, FINGER_TYPE1, FINGER_TYPE1 + SIZEOF_ALL_FINGERS,
{ DIM_PRESSURE, DIM_PRESSURE / SN_PRESSURE, 0, 256 },
{ DIM_WIDTH, DIM_WIDTH / SN_WIDTH, 0, 2048 },
{ DIM_X, DIM_X / SN_COORD, -4824, 5342 },
@@ -195,7 +196,7 @@ static const struct bcm5974_config bcm5974_config_table[] = {
USB_DEVICE_ID_APPLE_WELLSPRING2_ISO,
USB_DEVICE_ID_APPLE_WELLSPRING2_JIS,
0x84, sizeof(struct bt_data),
- 0x81, sizeof(struct tp_data),
+ 0x81, TYPE1, FINGER_TYPE1, FINGER_TYPE1 + SIZEOF_ALL_FINGERS,
{ DIM_PRESSURE, DIM_PRESSURE / SN_PRESSURE, 0, 256 },
{ DIM_WIDTH, DIM_WIDTH / SN_WIDTH, 0, 2048 },
{ DIM_X, DIM_X / SN_COORD, -4824, 4824 },
@@ -276,18 +277,20 @@ static int report_bt_state(struct bcm5974 *dev, int size)
static int report_tp_state(struct bcm5974 *dev, int size)
{
const struct bcm5974_config *c = &dev->cfg;
- const struct tp_finger *f = dev->tp_data->finger;
+ const struct tp_finger *f;
struct input_dev *input = dev->input;
- const int fingers = (size - 26) / 28;
- int raw_p, raw_w, raw_x, raw_y;
+ int raw_p, raw_w, raw_x, raw_y, raw_n;
int ptest = 0, origin = 0, nmin = 0, nmax = 0;
int abs_p = 0, abs_w = 0, abs_x = 0, abs_y = 0;
- if (size < 26 || (size - 26) % 28 != 0)
+ if (size < c->tp_offset || (size - c->tp_offset) % SIZEOF_FINGER != 0)
return -EIO;
+ f = (const struct tp_finger *)(dev->tp_data + c->tp_offset);
+ raw_n = (size - c->tp_offset) / SIZEOF_FINGER;
+
/* always track the first finger; when detached, start over */
- if (fingers) {
+ if (raw_n) {
raw_p = raw2int(f->force_major);
raw_w = raw2int(f->size_major);
raw_x = raw2int(f->abs_x);
@@ -307,12 +310,13 @@ static int report_tp_state(struct bcm5974 *dev, int size)
abs_w = int2bound(&c->w, raw_w);
abs_x = int2bound(&c->x, raw_x - c->x.devmin);
abs_y = int2bound(&c->y, c->y.devmax - raw_y);
- for (; f != dev->tp_data->finger + fingers; f++) {
+ while (raw_n--) {
ptest = int2bound(&c->p, raw2int(f->force_major));
if (ptest > PRESSURE_LOW)
nmax++;
if (ptest > PRESSURE_HIGH)
nmin++;
+ f++;
}
}

View File

@ -0,0 +1,46 @@
The integrated button on the new unibody Macbooks presents a need to
report explicit four-finger actions. Evidently, the finger pressing
the button is also touching the trackpad, so in order to fully support
three-finger actions, the driver must be able to report four-finger
actions. This patch adds a new button, BTN_TOOL_QUADTAP, which
achieves this.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
---
drivers/input/mouse/bcm5974.c | 4 +++-
include/linux/input.h | 1 +
2 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/drivers/input/mouse/bcm5974.c b/drivers/input/mouse/bcm5974.c
index e97462e..a170574 100644
--- a/drivers/input/mouse/bcm5974.c
+++ b/drivers/input/mouse/bcm5974.c
@@ -258,6 +258,7 @@ static void setup_events_to_report(struct input_dev *input_dev,
__set_bit(BTN_TOOL_FINGER, input_dev->keybit);
__set_bit(BTN_TOOL_DOUBLETAP, input_dev->keybit);
__set_bit(BTN_TOOL_TRIPLETAP, input_dev->keybit);
+ __set_bit(BTN_TOOL_QUADTAP, input_dev->keybit);
__set_bit(BTN_LEFT, input_dev->keybit);
}
@@ -328,7 +329,8 @@ static int report_tp_state(struct bcm5974 *dev, int size)
input_report_key(input, BTN_TOUCH, dev->fingers > 0);
input_report_key(input, BTN_TOOL_FINGER, dev->fingers == 1);
input_report_key(input, BTN_TOOL_DOUBLETAP, dev->fingers == 2);
- input_report_key(input, BTN_TOOL_TRIPLETAP, dev->fingers > 2);
+ input_report_key(input, BTN_TOOL_TRIPLETAP, dev->fingers == 3);
+ input_report_key(input, BTN_TOOL_QUADTAP, dev->fingers > 3);
input_report_abs(input, ABS_PRESSURE, abs_p);
input_report_abs(input, ABS_TOOL_WIDTH, abs_w);
diff --git a/include/linux/input.h b/include/linux/input.h
index b86fb55..0082b24 100644
--- a/include/linux/input.h
+++ b/include/linux/input.h
@@ -443,6 +443,7 @@ struct input_absinfo {
#define BTN_STYLUS2 0x14c
#define BTN_TOOL_DOUBLETAP 0x14d
#define BTN_TOOL_TRIPLETAP 0x14e
+#define BTN_TOOL_QUADTAP 0x14f /* Four fingers on trackpad */
#define BTN_WHEEL 0x150
#define BTN_GEAR_DOWN 0x150

View File

@ -0,0 +1,129 @@
This patch adds support for the new unibody Macbook, with physically
integrated button and trackpad. A new button, BTN_TOOL_PRESS, is
introduced to allow for non-trivial handling of this device in user
space.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
Tested-by: David M. Lary <dmlary@gmail.com>
---
drivers/input/mouse/bcm5974.c | 42 +++++++++++++++++++++++++++++++++++++++-
include/linux/input.h | 1 +
2 files changed, 41 insertions(+), 2 deletions(-)
diff --git a/drivers/input/mouse/bcm5974.c b/drivers/input/mouse/bcm5974.c
index a170574..f85a296 100644
--- a/drivers/input/mouse/bcm5974.c
+++ b/drivers/input/mouse/bcm5974.c
@@ -51,6 +51,10 @@
#define USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI 0x0230
#define USB_DEVICE_ID_APPLE_WELLSPRING2_ISO 0x0231
#define USB_DEVICE_ID_APPLE_WELLSPRING2_JIS 0x0232
+/* Macbook5,1 (unibody), aka wellspring3 */
+#define USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI 0x0236
+#define USB_DEVICE_ID_APPLE_WELLSPRING3_ISO 0x0237
+#define USB_DEVICE_ID_APPLE_WELLSPRING3_JIS 0x0238
#define BCM5974_DEVICE(prod) { \
.match_flags = (USB_DEVICE_ID_MATCH_DEVICE | \
@@ -72,6 +76,10 @@ static const struct usb_device_id bcm5974_table[] = {
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI),
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING2_ISO),
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING2_JIS),
+ /* Macbook5,1 */
+ BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI),
+ BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING3_ISO),
+ BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING3_JIS),
/* Terminating entry */
{}
};
@@ -98,11 +106,19 @@ struct bt_data {
/* trackpad header types */
enum tp_type {
- TYPE1 /* plain trackpad */
+ TYPE1, /* plain trackpad */
+ TYPE2 /* button integrated in trackpad */
};
/* trackpad finger data offsets */
#define FINGER_TYPE1 26
+#define FINGER_TYPE2 30
+
+/* trackpad button data offsets */
+#define BUTTON_TYPE2 15
+
+/* integrated button capability by configuration */
+#define HAS_INTEGRATED_BUTTON(c) (c->tp_type == TYPE2)
/* trackpad finger structure */
struct tp_finger {
@@ -202,6 +218,17 @@ static const struct bcm5974_config bcm5974_config_table[] = {
{ DIM_X, DIM_X / SN_COORD, -4824, 4824 },
{ DIM_Y, DIM_Y / SN_COORD, -172, 4290 }
},
+ {
+ USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI,
+ USB_DEVICE_ID_APPLE_WELLSPRING3_ISO,
+ USB_DEVICE_ID_APPLE_WELLSPRING3_JIS,
+ 0x84, sizeof(struct bt_data),
+ 0x81, TYPE2, FINGER_TYPE2, FINGER_TYPE2 + SIZEOF_ALL_FINGERS,
+ { DIM_PRESSURE, DIM_PRESSURE / SN_PRESSURE, 0, 300 },
+ { DIM_WIDTH, DIM_WIDTH / SN_WIDTH, 0, 2048 },
+ { DIM_X, DIM_X / SN_COORD, -4460, 5166 },
+ { DIM_Y, DIM_Y / SN_COORD, -75, 6700 }
+ },
{}
};
@@ -259,6 +286,8 @@ static void setup_events_to_report(struct input_dev *input_dev,
__set_bit(BTN_TOOL_DOUBLETAP, input_dev->keybit);
__set_bit(BTN_TOOL_TRIPLETAP, input_dev->keybit);
__set_bit(BTN_TOOL_QUADTAP, input_dev->keybit);
+ if (HAS_INTEGRATED_BUTTON(cfg))
+ __set_bit(BTN_TOOL_PRESS, input_dev->keybit);
__set_bit(BTN_LEFT, input_dev->keybit);
}
@@ -281,7 +310,7 @@ static int report_tp_state(struct bcm5974 *dev, int size)
const struct tp_finger *f;
struct input_dev *input = dev->input;
int raw_p, raw_w, raw_x, raw_y, raw_n;
- int ptest = 0, origin = 0, nmin = 0, nmax = 0;
+ int ptest = 0, origin = 0, ibt = 0, nmin = 0, nmax = 0;
int abs_p = 0, abs_w = 0, abs_x = 0, abs_y = 0;
if (size < c->tp_offset || (size - c->tp_offset) % SIZEOF_FINGER != 0)
@@ -303,6 +332,10 @@ static int report_tp_state(struct bcm5974 *dev, int size)
ptest = int2bound(&c->p, raw_p);
origin = raw2int(f->origin);
+
+ /* set the integrated button if applicable */
+ if (c->tp_type == TYPE2)
+ ibt = raw2int(dev->tp_data[BUTTON_TYPE2]);
}
/* while tracking finger still valid, count all fingers */
@@ -346,6 +379,11 @@ static int report_tp_state(struct bcm5974 *dev, int size)
}
+ if (HAS_INTEGRATED_BUTTON(c)) {
+ input_report_key(input, BTN_TOOL_PRESS, ibt);
+ input_report_key(input, BTN_LEFT, ibt);
+ }
+
input_sync(input);
return 0;
diff --git a/include/linux/input.h b/include/linux/input.h
index 0082b24..6afa6b3 100644
--- a/include/linux/input.h
+++ b/include/linux/input.h
@@ -438,6 +438,7 @@ struct input_absinfo {
#define BTN_TOOL_FINGER 0x145
#define BTN_TOOL_MOUSE 0x146
#define BTN_TOOL_LENS 0x147
+#define BTN_TOOL_PRESS 0x148 /* The trackpad is a physical button */
#define BTN_TOUCH 0x14a
#define BTN_STYLUS 0x14b
#define BTN_STYLUS2 0x14c

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,10 @@
--- linux-2.6.24.orig/arch/x86/Kconfig.debug
+++ linux-2.6.24/arch/x86/Kconfig.debug
@@ -59,6 +59,7 @@
config 4KSTACKS
bool "Use 4Kb for kernel stacks instead of 8Kb"
depends on DEBUG_KERNEL
+ default y
help
If you say Y here the kernel will use a 4Kb stacksize for the
kernel stack attached to each process/thread. This facilitates

View File

@ -0,0 +1,25 @@
diff -urN oldtree/kernel/Kconfig.hz newtree/kernel/Kconfig.hz
--- oldtree/kernel/Kconfig.hz 2007-03-06 15:00:55.000000000 -0500
+++ newtree/kernel/Kconfig.hz 2007-03-06 17:52:36.000000000 -0500
@@ -39,6 +39,14 @@
on SMP and NUMA systems and exactly dividing by both PAL and
NTSC frame rates for video and multimedia work.
+ config HZ_432
+ bool "432 HZ"
+ help
+ 432 HZ is the best value for desktop systems. Most responsive
+ out of all the options. This is for Dual Core/Processor systems only.
+ as timer frequencies * number of processors = actual frequency.
+ Try this if you have a dual-core/dual processor system.
+
config HZ_1000
bool "1000 HZ"
help
@@ -52,5 +60,6 @@
default 100 if HZ_100
default 250 if HZ_250_NODEFAULT
default 300 if HZ_300
+ default 432 if HZ_432
default 1000 if HZ_1000

View File

@ -0,0 +1,25 @@
diff -urN oldtree/kernel/Kconfig.hz newtree/kernel/Kconfig.hz
--- oldtree/kernel/Kconfig.hz 2007-03-06 15:00:55.000000000 -0500
+++ newtree/kernel/Kconfig.hz 2007-03-06 17:52:36.000000000 -0500
@@ -39,6 +39,14 @@
as timer frequencies * number of processors = actual frequency.
Try this if you have a dual-core/dual processor system.
+ config HZ_864
+ bool "864 HZ"
+ help
+ 864 HZ is the best value for desktop systems. Most responsive
+ out of all the options. The only reason it is not default is
+ because it may break few drivers. Give it a try if you have
+ a desktop :).
+
config HZ_1000
bool "1000 HZ"
help
@@ -52,5 +60,6 @@
default 250 if HZ_250_NODEFAULT
default 300 if HZ_300
default 432 if HZ_432
+ default 864 if HZ_864
default 1000 if HZ_1000

View File

@ -0,0 +1,15 @@
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=181963
--- linux-2.6.15.noarch/fs/fat/inode.c~ 2006-02-20 23:20:12.000000000 -0500
+++ linux-2.6.15.noarch/fs/fat/inode.c 2006-02-20 23:21:42.000000000 -0500
@@ -952,7 +952,8 @@ static int parse_options(char *options,
opts->shortname = 0;
opts->name_check = 'n';
opts->quiet = opts->showexec = opts->sys_immutable = opts->dotsOK = 0;
- opts->utf8 = opts->unicode_xlate = 0;
+ opts->utf8 = 1;
+ opts->unicode_xlate = 0;
opts->numtail = 1;
opts->nocase = 0;
*debug = 0;

View File

@ -0,0 +1,13 @@
* Optimise for today's CPUs.
--- linux-2.6/arch/x86/Makefile_32.cpu 2006-01-09 11:39:04.000000000 -0500
+++ linux-2.6/arch/x86/Makefile_32.cpu 2006-01-09 11:39:36.000000000 -0500
@@ -15,7 +15,7 @@ cflags-$(CONFIG_M486) += -march=i486
cflags-$(CONFIG_M586) += -march=i586
cflags-$(CONFIG_M586TSC) += -march=i586
cflags-$(CONFIG_M586MMX) += -march=pentium-mmx
-cflags-$(CONFIG_M686) += -march=i686
+cflags-$(CONFIG_M686) += -march=i686 $(call tune,generic)
cflags-$(CONFIG_MPENTIUMII) += -march=i686 $(call tune,pentium2)
cflags-$(CONFIG_MPENTIUMIII) += -march=i686 $(call tune,pentium3)
cflags-$(CONFIG_MPENTIUMM) += -march=i686 $(call tune,pentium3)

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,30 @@
From: Jiri Kosina <jkosina@suse.cz>
Date: Thu, 20 Nov 2008 10:27:02 +0000 (+0100)
Subject: HID: ignore mouse interface for unibody macbooks
X-Git-Tag: v2.6.29-rc1~498^2~18
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=ac26fca3e14c8882e382daa7e96ab73e0186cf03
HID: ignore mouse interface for unibody macbooks
The mouse interface on unibody macbooks is going to be handled by
bcm59743 driver in 2.6.29.
Reported-by: Henrik Rydberg <rydberg@euromail.se>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
---
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 40df3e1..839de38 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -1577,6 +1577,9 @@ static const struct hid_device_id hid_mouse_ignore_list[] = {
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_ISO) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_JIS) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_ISO) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_JIS) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) },
{ }

View File

@ -80,7 +80,16 @@ src_unpack() {
epatch ${FILESDIR}/linux-2.6-x86-tune-generic.patch
epatch ${FILESDIR}/linux-2.6-defaults-fat-utf8.patch
epatch ${FILESDIR}/linux-2.6.27-lirc.patch
epatch ${FILESDIR}/hz-432-kconfig-option.patch
epatch ${FILESDIR}/hz-864-kconfig-option.patch
epatch ${FILESDIR}/enable-4k-stacks-default-2.6.24.patch
epatch ${FILESDIR}/drm-next.patch
epatch ${FILESDIR}/drm-modesetting-radeon.patch
epatch ${FILESDIR}/drm-nouveau.patch
epatch ${FILESDIR}/1-bcm5974-headers.patch
epatch ${FILESDIR}/2-bcm5974-quad-finger-tapping.patch
epatch ${FILESDIR}/3-bcm5974-macbook5-support.patch
epatch ${FILESDIR}/linux-sabayon-2.6.28-ignore-mouse-interface-on-macbooks.patch
find ${WORKDIR} -iname "*.orig" -exec rm {} \; 2> /dev/null