[Maverick] [PATCH] Revert "UBUNTU: SAUCE: Add support for Intellimouse Mode in ALPS touchpad on Dell E2 series Laptops"
Leann Ogasawara
leann.ogasawara at canonical.com
Fri Sep 17 21:35:01 UTC 2010
Just FYI, I've reverted the following patch from the Maverick kernel:
commit bd79df42218fe1db5e683b567791d4bb97b60685
Author: Manoj Iyer <manoj.iyer at canonical.com>
Date: Wed Sep 8 19:40:57 2010 +0100
UBUNTU: SAUCE: Add support for Intellimouse Mode in ALPS touchpad on Dell E2 series Laptops
It resulted in a regression which broke a number of ALPS touchpads.
Please resend a proper fix for Bug 632884 as an SRU for Maverick.
Thanks,
Leann
>From 326561039f1ee50ba1e854ce5a04f5be0cd881b9 Mon Sep 17 00:00:00 2001
From: Andy Whitcroft <apw at canonical.com>
Date: Fri, 17 Sep 2010 15:34:35 +0100
Subject: [PATCH] Revert "UBUNTU: SAUCE: Add support for Intellimouse Mode in ALPS touchpad on Dell E2 series Laptops"
BugLink: http://bugs.launchpad.net/bugs/641320
This reverts commit bd79df42218fe1db5e683b567791d4bb97b60685. This
commit seems to have an outdated patch in it and seems to break a number
of touchpads. Reverting for now.
Signed-off-by: Andy Whitcroft <apw at canonical.com>
Signed-off-by: Leann Ogasawara <leann.ogasawara at canonical.com>
---
drivers/input/mouse/alps.c | 81 ------------------------------------
drivers/input/mouse/alps.h | 5 --
drivers/input/mouse/psmouse-base.c | 3 +-
3 files changed, 1 insertions(+), 88 deletions(-)
diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
index 0963a0d..99d5876 100644
--- a/drivers/input/mouse/alps.c
+++ b/drivers/input/mouse/alps.c
@@ -63,8 +63,6 @@ static const struct alps_model_info alps_model_data[] = {
/* Dell Latitude E5500, E6400, E6500, Precision M4400 */
{ { 0x62, 0x02, 0x14 }, 0xcf, 0xcf,
ALPS_PASS | ALPS_DUALPOINT | ALPS_PS2_INTERLEAVED },
- /* Dell Precision 4500 */
- { { 0x73, 0x02, 0x64 }, 0x80, 0x80, 0 },
{ { 0x73, 0x02, 0x50 }, 0xcf, 0xcf, ALPS_FOUR_BUTTONS }, /* Dell Vostro 1400 */
{ { 0x52, 0x01, 0x14 }, 0xff, 0xff,
ALPS_PASS | ALPS_DUALPOINT | ALPS_PS2_INTERLEAVED }, /* Toshiba Tecra A11-11L */
@@ -113,77 +111,6 @@ static const struct alps_model_info alps_model_data[] = {
* on a dualpoint, etc.
*/
-
-/* Magic Sequence to enable Intellimouse Mode on Dell E2 Touchpads*/
-
-static int dell_e2_setup_intellimouse_mode(void *data)
-{
- struct psmouse *psmouse = (struct psmouse *)(data);
- struct ps2dev *ps2dev = &psmouse->ps2dev;
- struct input_dev *dev = psmouse->dev;
- unsigned char param[] = {0, 0, 0};
-
- if (ps2_command(ps2dev, param, 0x00f5) ||
- ps2_command(ps2dev, param, 0x00ea) ||
- ps2_command(ps2dev, param, 0x00ec) ||
- ps2_command(ps2dev, param, 0x00ec) ||
- ps2_command(ps2dev, param, 0x00ec) ||
- ps2_command(ps2dev, param, 0x03e9))
- return -1;
-
- dbg("alps:dell_e2_setup: param[0]: %x,"
- "param[1]: %x, param[2]: %x\n", param[0],
- param[1], param[2]);
-/* Check for supported model to continue */
-
- if (!((param[0] == 0x88) && (param[1] == 0x07)
- && ((param[2] == 0x9D) || (param[2] == 0x9B))))
- return -1;
-
- if (ps2_command(ps2dev, NULL, 0x00ec) ||
- ps2_command(ps2dev, NULL, 0x00f0) ||
- ps2_command(ps2dev, NULL, 0x00f0) ||
- ps2_command(ps2dev, NULL, 0x00f0) ||
- ps2_command(ps2dev, NULL, 0x00f3) ||
- ps2_command(ps2dev, NULL, 0x0028) ||
- ps2_command(ps2dev, NULL, 0x00f0) ||
- ps2_command(ps2dev, NULL, 0x00f6) ||
- ps2_command(ps2dev, NULL, 0x00ea) ||
- ps2_command(ps2dev, NULL, 0x00f4))
- return -1;
-
- __set_bit(BTN_MIDDLE, dev->keybit);
- __set_bit(REL_WHEEL, dev->relbit);
-
- psmouse->pktsize = 4;
- psmouse->type = PSMOUSE_IMPS;
-
- return 0;
-}
-
-static const struct alps_model_quirk alps_model_init_quirk_tbl[] = {
-
- { {0x73, 0x02, 0x64}, dell_e2_setup_intellimouse_mode }
-};
-
-static int alps_model_init_quirk(struct psmouse *psmouse,
- const struct alps_model_info *model)
-{
- int rc = 1;
- int i;
-
- for (i = 0; i < ARRAY_SIZE(alps_model_init_quirk_tbl); i++) {
- if (!memcmp(model->signature,
- alps_model_init_quirk_tbl[i].signature,
- sizeof(alps_model_init_quirk_tbl[i].signature))) {
- rc = alps_model_init_quirk_tbl[i].callback(psmouse);
- break;
- }
- }
-
- return rc;
-}
-
static bool alps_is_valid_first_byte(const struct alps_model_info *model,
unsigned char data)
{
@@ -750,14 +677,6 @@ int alps_init(struct psmouse *psmouse)
if (alps_hw_init(psmouse))
goto init_fail;
- if (!alps_model_init_quirk(psmouse, model)) {
- printk(KERN_WARNING "alps.c: Enabled hardware quirk, falling back to psmouse-core\n");
- input_free_device(dev2);
- kfree(priv);
- psmouse->private = NULL;
- return 0;
- }
-
/*
* Undo part of setup done for us by psmouse core since touchpad
* is not a relative device.
diff --git a/drivers/input/mouse/alps.h b/drivers/input/mouse/alps.h
index c54c5ea..904ed8b 100644
--- a/drivers/input/mouse/alps.h
+++ b/drivers/input/mouse/alps.h
@@ -26,11 +26,6 @@ struct alps_data {
struct timer_list timer;
};
-struct alps_model_quirk {
-unsigned char signature[3];
-int (*callback)(void *data);
-};
-
#ifdef CONFIG_MOUSE_PS2_ALPS
int alps_detect(struct psmouse *psmouse, bool set_properties);
int alps_init(struct psmouse *psmouse);
diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c
index 3657de8..979c502 100644
--- a/drivers/input/mouse/psmouse-base.c
+++ b/drivers/input/mouse/psmouse-base.c
@@ -659,8 +659,7 @@ static int psmouse_extensions(struct psmouse *psmouse,
ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_RESET_DIS);
if (alps_detect(psmouse, set_properties) == 0) {
if (!set_properties || alps_init(psmouse) == 0)
-/* If ALPS model quirk was applied, don't change the settings */
- return psmouse->type ? psmouse->type : PSMOUSE_ALPS;
+ return PSMOUSE_ALPS;
/*
* Init failed, try basic relative protocols
*/
--
1.7.1
More information about the kernel-team
mailing list