1 |
Author: mpagano |
2 |
Date: 2010-07-28 22:23:02 +0000 (Wed, 28 Jul 2010) |
3 |
New Revision: 1726 |
4 |
|
5 |
Added: |
6 |
genpatches-2.6/trunk/2.6.34/2600_synaptic-cap-ID-check-fix.patch |
7 |
Modified: |
8 |
genpatches-2.6/trunk/2.6.34/0000_README |
9 |
Log: |
10 |
Synaptic fix to relax capability ID check |
11 |
|
12 |
Modified: genpatches-2.6/trunk/2.6.34/0000_README |
13 |
=================================================================== |
14 |
--- genpatches-2.6/trunk/2.6.34/0000_README 2010-07-13 17:23:42 UTC (rev 1725) |
15 |
+++ genpatches-2.6/trunk/2.6.34/0000_README 2010-07-28 22:23:02 UTC (rev 1726) |
16 |
@@ -43,10 +43,14 @@ |
17 |
From: http://www.kernel.org |
18 |
Desc: Linux 2.6.34.1 |
19 |
|
20 |
+Patch: 2600_synaptic-cap-ID-check-fix.patch |
21 |
+From: http://bugs.gentoo.org/show_bug.cgi?id=328527 |
22 |
+Desc: Synaptics capability ID check fix |
23 |
+ |
24 |
Patch: 2700_nouveau-acpi-lid-open-undefined-fix.patch |
25 |
From: http://bugs.gentoo.org/show_bug.cgi?id=322001 |
26 |
Desc: nouveau: fix acpi_lid_open undefined |
27 |
- |
28 |
+8 |
29 |
Patch: 2720_vbfb-section-cleanup.patch |
30 |
From: http://lkml.org/lkml/2010/6/25/271 |
31 |
Desc: add missing define to prevent re-define errors in vgaarb.h |
32 |
|
33 |
Added: genpatches-2.6/trunk/2.6.34/2600_synaptic-cap-ID-check-fix.patch |
34 |
=================================================================== |
35 |
--- genpatches-2.6/trunk/2.6.34/2600_synaptic-cap-ID-check-fix.patch (rev 0) |
36 |
+++ genpatches-2.6/trunk/2.6.34/2600_synaptic-cap-ID-check-fix.patch 2010-07-28 22:23:02 UTC (rev 1726) |
37 |
@@ -0,0 +1,36 @@ |
38 |
+--- a/drivers/input/mouse/synaptics.c 2010-07-27 21:27:34.509890035 -0400 |
39 |
++++ b/drivers/input/mouse/synaptics.c 2010-07-27 21:23:43.779995139 -0400 |
40 |
+@@ -139,8 +139,13 @@ static int synaptics_capability(struct p |
41 |
+ priv->capabilities = (cap[0] << 16) | (cap[1] << 8) | cap[2]; |
42 |
+ priv->ext_cap = priv->ext_cap_0c = 0; |
43 |
+ |
44 |
+- if (!SYN_CAP_VALID(priv->capabilities)) |
45 |
++ /* |
46 |
++ * Older firmwares had submodel ID fixed to 0x47 |
47 |
++ */ |
48 |
++ if (SYN_ID_FULL(priv->identity) < 0x705 && |
49 |
++ SYN_CAP_SUBMODEL_ID(priv->capabilities) != 0x47) { |
50 |
+ return -1; |
51 |
++ } |
52 |
+ |
53 |
+ /* |
54 |
+ * Unless capExtended is set the rest of the flags should be ignored |
55 |
+--- a/drivers/input/mouse/synaptics.h 2010-07-27 21:27:38.599875008 -0400 |
56 |
++++ b/drivers/input/mouse/synaptics.h 2010-07-27 21:27:16.919875732 -0400 |
57 |
+@@ -46,7 +46,7 @@ |
58 |
+ #define SYN_CAP_FOUR_BUTTON(c) ((c) & (1 << 3)) |
59 |
+ #define SYN_CAP_MULTIFINGER(c) ((c) & (1 << 1)) |
60 |
+ #define SYN_CAP_PALMDETECT(c) ((c) & (1 << 0)) |
61 |
+-#define SYN_CAP_VALID(c) ((((c) & 0x00ff00) >> 8) == 0x47) |
62 |
++#define SYN_CAP_SUBMODEL_ID(c) (((c) & 0x00ff00) >> 8) |
63 |
+ #define SYN_EXT_CAP_REQUESTS(c) (((c) & 0x700000) >> 20) |
64 |
+ #define SYN_CAP_MULTI_BUTTON_NO(ec) (((ec) & 0x00f000) >> 12) |
65 |
+ #define SYN_CAP_PRODUCT_ID(ec) (((ec) & 0xff0000) >> 16) |
66 |
+@@ -64,6 +64,7 @@ |
67 |
+ #define SYN_ID_MODEL(i) (((i) >> 4) & 0x0f) |
68 |
+ #define SYN_ID_MAJOR(i) ((i) & 0x0f) |
69 |
+ #define SYN_ID_MINOR(i) (((i) >> 16) & 0xff) |
70 |
++#define SYN_ID_FULL(i) ((SYN_ID_MAJOR(i) << 8) | SYN_ID_MINOR(i)) |
71 |
+ #define SYN_ID_IS_SYNAPTICS(i) ((((i) >> 8) & 0xff) == 0x47) |
72 |
+ |
73 |
+ /* synaptics special commands */ |