summaryrefslogtreecommitdiff
path: root/drivers/input
diff options
context:
space:
mode:
authorNitin Kumbhar <nkumbhar@nvidia.com>2011-01-10 14:50:08 +0530
committerNitin Kumbhar <nkumbhar@nvidia.com>2011-01-10 14:50:08 +0530
commitbf5a56deb588e201d95f21c00257e88ac721f90b (patch)
treed418c01fea425ea8063a6c0fb6f7119b301e135a /drivers/input
parent3cfc0c8843cbc3f2c859d9eea1003834af6119e7 (diff)
parentb99662a653ac3d90bfada1bfc326d3138229860c (diff)
merging android-tegra-2.6.36 into git-master/linux-2.6/android-tegra-2.6.36
Conflicts: arch/arm/mach-tegra/fuse.c drivers/misc/Makefile Change-Id: I300b925d78b31efe00c342190d8dbd50e2e81230
Diffstat (limited to 'drivers/input')
-rw-r--r--drivers/input/keyreset.c13
-rw-r--r--drivers/input/mouse/synaptics.h3
2 files changed, 13 insertions, 3 deletions
diff --git a/drivers/input/keyreset.c b/drivers/input/keyreset.c
index b51350602fc3..a5091ac19bbe 100644
--- a/drivers/input/keyreset.c
+++ b/drivers/input/keyreset.c
@@ -33,6 +33,7 @@ struct keyreset_state {
int key_down;
int key_up;
int restart_disabled;
+ int (*reset_fn)(void);
};
int restart_requested;
@@ -88,8 +89,12 @@ static void keyreset_event(struct input_handle *handle, unsigned int type,
if (restart_requested)
panic("keyboard reset failed, %d", restart_requested);
pr_info("keyboard reset\n");
- schedule_work(&restart_work);
- restart_requested = 1;
+ if (state->reset_fn) {
+ restart_requested = state->reset_fn();
+ } else {
+ schedule_work(&restart_work);
+ restart_requested = 1;
+ }
}
done:
spin_unlock_irqrestore(&state->lock, flags);
@@ -187,6 +192,10 @@ static int keyreset_probe(struct platform_device *pdev)
__set_bit(key, state->upbit);
}
}
+
+ if (pdata->reset_fn)
+ state->reset_fn = pdata->reset_fn;
+
state->input_handler.event = keyreset_event;
state->input_handler.connect = keyreset_connect;
state->input_handler.disconnect = keyreset_disconnect;
diff --git a/drivers/input/mouse/synaptics.h b/drivers/input/mouse/synaptics.h
index b6aa7d20d8a3..298c8e505cc2 100644
--- a/drivers/input/mouse/synaptics.h
+++ b/drivers/input/mouse/synaptics.h
@@ -51,7 +51,8 @@
#define SYN_EXT_CAP_REQUESTS(c) (((c) & 0x700000) >> 20)
#define SYN_CAP_MULTI_BUTTON_NO(ec) (((ec) & 0x00f000) >> 12)
#define SYN_CAP_PRODUCT_ID(ec) (((ec) & 0xff0000) >> 16)
-#define SYN_CAP_CLICKPAD(ex0c) ((ex0c) & 0x100100)
+#define SYN_CAP_CLICKPAD(ex0c) ((ex0c) & 0x100000) /* 1-button ClickPad */
+#define SYN_CAP_CLICKPAD2BTN(ex0c) ((ex0c) & 0x000100) /* 2-button ClickPad */
#define SYN_CAP_MAX_DIMENSIONS(ex0c) ((ex0c) & 0x020000)
/* synaptics modes query bits */