[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: new powerbook touchpad



On Wed, 2005-03-30 at 17:10 +0200, Antonio-M. Corbi Bellot wrote:
> 
> T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  4 Spd=12  MxCh= 0
> D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
> P:  Vendor=05ac ProdID=030a Rev= 0.06
> S:  Manufacturer=Apple Computer
> S:  Product=Apple Internal Trackpad
> C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr= 40mA
> I:  If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=02 Driver=(none)
> E:  Ad=81(I) Atr=03(Int.) MxPS=  32 Ivl=1ms

Is that all? Mine reads:
T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  4 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=05ac ProdID=020e Rev= 0.28
S:  Manufacturer=Apple Computer
S:  Product=Apple Internal Keyboard/Trackpad
C:* #Ifs= 3 Cfg#= 1 Atr=a0 MxPwr= 40mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=01 Driver=usbhid
E:  Ad=83(I) Atr=03(Int.) MxPS=   8 Ivl=10ms
I:  If#= 1 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=02 Driver=AppleTrackpad
E:  Ad=81(I) Atr=03(Int.) MxPS=  32 Ivl=1ms
I:  If#= 2 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid
E:  Ad=84(I) Atr=03(Int.) MxPS=   1 Ivl=10ms

I take it then your keyboard is not connected via USB. Well, try the
attached patch and test program (to compile just run 'make ,,test').

Then insmod the changed driver, and run the test program as follows:
./,,test > /tmp/dump
wait a few seconds, maybe press touchpad button a bit and move the
finger over the touchpad, kill the program with ctrl-c, bzip2 the file
and send it to me (privately please, not on list).

johannes
--- orig/appletrackpad.c
+++ mod/appletrackpad.c
@@ -29,6 +29,7 @@
 #define APPLE_VENDOR_ID		0x05AC
 #define TP_PRODUCT_ID1		0x020E
 #define TP_PRODUCT_ID2		0x020F
+#define TP_12INCH_ID		0x030A
 
 #define TP_DRIVER_VERSION	0x0001 /* 00.01 */
 
@@ -42,6 +43,7 @@
 static struct usb_device_id apple_tp_table [] = {
 	{ TP_DEVICE(TP_PRODUCT_ID1) },
 	{ TP_DEVICE(TP_PRODUCT_ID2) },
+	{ USB_DEVICE(APPLE_VENDOR_ID, TP_12INCH_ID) },
 	{ }					/* Terminating entry */
 };
 MODULE_DEVICE_TABLE (usb, apple_tp_table);
/*
 * Apple TrackPad test program
 *
 * Copyright (C) 2005      Johannes Berg (johannes@sipsolutions.net)
 *
 *	This program is free software; you can redistribute it and/or
 *	modify it under the terms of the GNU General Public License as
 *	published by the Free Software Foundation, version 2.
 *
 * arch-tag: 2586e5ef-0be6-4240-a50e-49bcb0f188ac
 */

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <math.h>
#include <string.h>

#define DEVICE "/dev/apple_trackpad0"

int main() {
	int fd = open(DEVICE, O_RDWR);
	char buffer[1024];

	if (fd == -1) {
		perror ("open failed");
		return -1;
	}
	while (1) {
		int len = read(fd, buffer, sizeof(buffer));
		printf("%d:", len);
		if (len >= 0)
			for (int i=0; i<len;i++) printf(" %.2x", buffer[i]);
		printf("\n");
	}
}

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: