[<prev] [next>] [day] [month] [year] [list]
Message-Id: <201502101029.31708@pali>
Date: Tue, 10 Feb 2015 10:29:31 +0100
From: Pali Rohár <pali.rohar@...il.com>
To: Dmitry Torokhov <dmitry.torokhov@...il.com>,
Hans de Goede <hdegoede@...hat.com>,
linux-input@...r.kernel.org, linux-kernel@...r.kernel.org,
Vadim Klishko <vadim@...que.com>
Subject: Dell ALPS patches for Dell Latitude E5250/5250, E5450/5450, E5550/5550
Hello,
I want to let you know that Dell officially provides modified
psmouse/alps.c driver for Ubuntu 14.04 from Dell support webpage:
http://www.dell.com/support/home/ga/en/gadhs1/Drivers/DriversDetails?driverId=CGC6T
I do not own any of E5250/5250, E5450/5450, E5550/5550 machines,
but at least you should know that Dell (or some subcontractor) is
modifying linux kernel drivers to work on Dell machines with
Ubuntu.
I generated diff against upstream linux v3.17-rc1 version. Maybe
it can be useful for other people (who do not use Ubuntu and
therefore cannot install Dell driver package).
Btw, same alps_probe_trackstick_v3() "hack" code is already for
rushmore devices in upstream kernel...
--- linux-3.17-rc1/drivers/input/mouse/alps.c 2015-02-08 12:30:54.668554221 +0100
+++ houston-15_A10.fish.tar.gz/debs/touchpad-alps-trusty-dkms_1.0_all.deb/usr/src/touchpad-alps-trusty-1.0/alps.c 2014-09-15 11:49:10.000000000 +0200
@@ -24,12 +24,15 @@
#include "psmouse.h"
#include "alps.h"
+#define ALPS_DRIVER_RELEASE_DATE "2014/08/25"
+
/*
* Definitions for ALPS version 3 and 4 command mode protocol
*/
#define ALPS_CMD_NIBBLE_10 0x01f2
#define ALPS_REG_BASE_RUSHMORE 0xc2c0
+#define ALPS_REG_BASE_V7 0xc2c0
#define ALPS_REG_BASE_PINNACLE 0x0000
static const struct alps_nibble_commands alps_v3_nibble_commands[] = {
@@ -2208,6 +2211,12 @@ static int alps_identify(struct psmouse
priv->proto_version = ALPS_PROTO_V7;
alps_set_defaults(priv);
+ /* hack to make addr_command, nibble_command available */
+ psmouse->private = priv;
+
+ if (alps_probe_trackstick_v3(psmouse, ALPS_REG_BASE_V7))
+ priv->flags &= ~ALPS_DUALPOINT;
+
return 0;
} else if (ec[0] == 0x88 && ec[1] == 0x08) {
priv->proto_version = ALPS_PROTO_V3;
@@ -2312,6 +2321,8 @@ int alps_init(struct psmouse *psmouse)
if (priv->hw_init(psmouse))
goto init_fail;
+ printk("ALPS driver in use! %s, date:%s \n", __func__, ALPS_DRIVER_RELEASE_DATE);
+
/*
* Undo part of setup done for us by psmouse core since touchpad
* is not a relative device.
--
Pali Rohár
pali.rohar@...il.com
Download attachment "signature.asc " of type "application/pgp-signature" (199 bytes)
Powered by blists - more mailing lists