On Mon, Jan 2, 2012 at 3:13 AM, Mike Rolland <none...@gmail.com> wrote: > Ok, let's dance for all your demands. > Nevertheless, there's no pen click or move events on screen in normal mode. > > ### kernel diff : > > Index: drivers/input/tablet/wacom.h > =================================================================== > --- drivers/input/tablet/wacom.h > +++ drivers/input/tablet/wacom.h 2011-12-31 19:19:08.452177869 +0400 > > @@ -104,6 +104,7 @@ > > #define USB_VENDOR_ID_WACOM 0x056a > #define USB_VENDOR_ID_LENOVO 0x17ef > +#define USB_VENDOR_ID_ASUSTEK 0x0b05 > > > > struct wacom { > Index: drivers/input/tablet/wacom_wac.c > =================================================================== > --- drivers/input/tablet/wacom_wac.c > +++ drivers/input/tablet/wacom_wac.c 2011-12-31 12:31:10.224185924 +0400 > @@ -1503,6 +1503,9 @@ > static const struct wacom_features wacom_features_0x6004 = > { "ISD-V4", WACOM_PKGLEN_GRAPHIRE, 12800, 8000, 255, > 0, TABLETPC, WACOM_INTUOS_RES, WACOM_INTUOS_RES }; > +static const struct wacom_features wacom_features_0x179F = > + { "ISD-V4", WACOM_PKGLEN_GRAPHIRE, 12800, 8000, 255, > > + 0, TABLETPC, WACOM_INTUOS_RES, WACOM_INTUOS_RES }; > > #define USB_DEVICE_WACOM(prod) \ > USB_DEVICE(USB_VENDOR_ID_WACOM, prod), \ > @@ -1517,6 +1520,10 @@ > USB_DEVICE(USB_VENDOR_ID_LENOVO, prod), \ > .driver_info = (kernel_ulong_t)&wacom_features_##prod > > +#define USB_DEVICE_ASUSTEK(prod) \ > + USB_DEVICE(USB_VENDOR_ID_ASUSTEK, prod), \ > > + .driver_info = (kernel_ulong_t)&wacom_features_##prod > + > const struct usb_device_id wacom_ids[] = { > { USB_DEVICE_WACOM(0x00) }, > { USB_DEVICE_WACOM(0x10) }, > @@ -1607,6 +1614,7 @@ > { USB_DEVICE_WACOM(0xE6) }, > { USB_DEVICE_WACOM(0x47) }, > { USB_DEVICE_LENOVO(0x6004) }, > + { USB_DEVICE_ASUSTEK(0x179F) }, > { } > }; > MODULE_DEVICE_TABLE(usb, wacom_ids); > > ### xf86 diff : (I place back in wcwUSB to 2450, 2540 )
All of your X changes are not needed and could cause harm; especially if you mismark it as a Protocol 5 device. I would remove them to be safe. More info in case your interested on "protocol": http://sourceforge.net/apps/mediawiki/linuxwacom/index.php?title=Wacom_Protocol_Overview > > Index: wcmUSB.c > =================================================================== > --- wcmUSB.c > +++ wcmUSB.c 2012-01-02 01:03:03.050073315 +0400 > @@ -284,7 +284,10 @@ > { WALTOP_VENDOR_ID, 0x27, 80000, 80000, &usbGraphire3 }, > { WALTOP_VENDOR_ID, 0x28, 80000, 80000, &usbGraphire3 }, > { WALTOP_VENDOR_ID, 0x30, 80000, 80000, &usbGraphire4 }, > - { WALTOP_VENDOR_ID, 0x31, 80000, 80000, &usbGraphire4 }, > + /* WALTOP original strings */ > + /*{ WALTOP_VENDOR_ID, 0x31, 80000, 80000, &usbGraphire4 }, */ > + /* WALTOP exprimental strings (medio 85837) */ > + { WALTOP_VENDOR_ID, 0x31, 200000, 200000, &usbIntuos4 }, > { WALTOP_VENDOR_ID, 0x32, 100000, 100000, &usbBambooFun }, > { WALTOP_VENDOR_ID, 0x33, 100000, 100000, &usbBambooFun }, > { WALTOP_VENDOR_ID, 0x34, 80000, 80000, &usbBamboo1 }, > @@ -308,10 +311,12 @@ > { WALTOP_VENDOR_ID, 0x503, 200000, 200000, &usbIntuos4 }, > > /* N-Trig devices */ > - { NTRIG_VENDOR_ID, 0x01, 44173, 36772, &usbTabletPC }, > + { NTRIG_VENDOR_ID, 0x01, 44173, 36772, &usbTabletPC }, > > /* Add in Lenovo W700 Palmrest digitizer */ > - { LENOVO_VENDOR_ID, 0x6004, 2540, 2540, &usbTabletPC } /* Pen-only */ > + { LENOVO_VENDOR_ID, 0x6004, 2540, 2540, &usbTabletPC }, /* Pen-only */ > + /* ASUSTek EeeNote digitizer (experimental) */ > + { ASUSTEK_VENDOR_ID, 0x179f, 2540, 2540, &usbTabletPC } > }; > > static Bool usbWcmInit(InputInfoPtr pInfo, char* id, float *version) > Index: xf86Wacom.c > =================================================================== > --- xf86Wacom.c > +++ xf86Wacom.c 2011-12-30 12:31:02.932275049 +0400 > @@ -494,6 +494,7 @@ > case WALTOP_VENDOR_ID: > case HANWANG_VENDOR_ID: > case LENOVO_VENDOR_ID: > + case ASUSTEK_VENDOR_ID: > return TRUE; > default: > break; > Index: xf86WacomDefs.h > =================================================================== > --- xf86WacomDefs.h > +++ xf86WacomDefs.h 2011-12-30 12:43:22.773258878 +0400 > @@ -34,6 +34,7 @@ > #define NTRIG_VENDOR_ID 0x1b96 > #define HANWANG_VENDOR_ID 0x0b57 > #define LENOVO_VENDOR_ID 0x17ef > +#define ASUSTEK_VENDOR_ID 0x0b05 > > #define DEFAULT_SUPPRESS 2 /* default suppress */ > #define MAX_SUPPRESS 100 /* max value of suppress */ > > ### evtest log : > > [root@hpm mike]# evtest /dev/input/event14 > Input driver version is 1.0.1 > Input device ID: bus 0x3 vendor 0xb05 product 0x179f version 0x129 > Input device name: "ISD-V4 Pen" > Supported events: > Event type 0 (Sync) > Event type 1 (Key) > Event code 320 (ToolPen) > Event code 321 (ToolRubber) > Event code 330 (Touch) > Event code 331 (Stylus) > Event code 332 (Stylus2) > Event type 3 (Absolute) > Event code 0 (X) > Value 0 > Min 0 > Max 12800 > Fuzz 4 > Event code 1 (Y) > Value 0 > Min 0 > Max 8000 > Fuzz 4 > Event code 24 (Pressure) > Value 0 > Min 0 > Max 255 > Testing ... (interrupt to exit) > > Effectively, evtest doesn't report nothing when moving pen on tablet, but it > does on console only mode. Can you send the output from console mode? Do the X/Y values seem to make sense? For example, drawing from top of screen to bottom of screen do you see mostly only Y axis change values linearly? > > > ### lsusb with module unload : > > [root@hpm mike]# lsusb -vvv -d 0b05:179f > OK. Good info in this lsusb. I'm not positive yet if this is a Wacom. Pros: It does use a Report ID of 2 for pen packets and has a Feature Report #2 as well that wacom driver likes to control on "tablet PC's". Cons: My math comes up with only 5 bytes declared for pen packet while wacom driver expects it to be size 8. Additional Pros: Sometimes thats what the Feature Report #2 is. It turns on a more advanced Pen Packet mode which I guess could cause it to become bigger than size reported by HID report... but I'm not sure of this for Tablet PC's. Chris > > Bus 002 Device 008: ID 0b05:179f ASUSTek Computer, Inc. > Device Descriptor: > bLength 18 > bDescriptorType 1 > bcdUSB 1.10 > bDeviceClass 0 (Defined at Interface level) > bDeviceSubClass 0 > bDeviceProtocol 0 > bMaxPacketSize0 16 > idVendor 0x0b05 ASUSTek Computer, Inc. > idProduct 0x179f > bcdDevice 1.29 > iManufacturer 1 ASUSTek Computer, Inc. > iProduct 2 Eee Note Digitizer > iSerial 3 1 > bNumConfigurations 1 > Configuration Descriptor: > bLength 9 > bDescriptorType 2 > wTotalLength 34 > bNumInterfaces 1 > bConfigurationValue 1 > iConfiguration 4 pen report data > bmAttributes 0xc0 > Self Powered > MaxPower 2mA > Interface Descriptor: > bLength 9 > bDescriptorType 4 > bInterfaceNumber 0 > bAlternateSetting 0 > bNumEndpoints 1 > bInterfaceClass 3 Human Interface Device > bInterfaceSubClass 0 No Subclass > bInterfaceProtocol 2 Mouse > iInterface 4 pen report data > HID Device Descriptor: > bLength 9 > bDescriptorType 33 > bcdHID 1.10 > bCountryCode 33 US > bNumDescriptors 1 > bDescriptorType 34 Report > wDescriptorLength 201 > Report Descriptor: (length is 201) > Item(Global): Usage Page, data= [ 0x01 ] 1 > Generic Desktop Controls > Item(Local ): Usage, data= [ 0x02 ] 2 > Mouse > Item(Main ): Collection, data= [ 0x01 ] 1 > Application > Item(Global): Report ID, data= [ 0x01 ] 1 > Item(Local ): Usage, data= [ 0x01 ] 1 > Pointer > Item(Main ): Collection, data= [ 0x00 ] 0 > Physical > Item(Global): Usage Page, data= [ 0x09 ] 9 > Buttons > Item(Local ): Usage Minimum, data= [ 0x01 ] 1 > Button 1 (Primary) > Item(Local ): Usage Maximum, data= [ 0x03 ] 3 > Button 3 (Tertiary) > Item(Global): Logical Minimum, data= [ 0x00 ] 0 > Item(Global): Logical Maximum, data= [ 0x01 ] 1 > Item(Global): Report Count, data= [ 0x03 ] 3 > Item(Global): Report Size, data= [ 0x01 ] 1 > Item(Main ): Input, data= [ 0x02 ] 2 > Data Variable Absolute No_Wrap Linear > Preferred_State No_Null_Position Non_Volatile > Bitfield > Item(Global): Report Count, data= [ 0x01 ] 1 > Item(Global): Report Size, data= [ 0x05 ] 5 > Item(Main ): Input, data= [ 0x01 ] 1 > Constant Array Absolute No_Wrap Linear > Preferred_State No_Null_Position Non_Volatile > Bitfield > Item(Global): Usage Page, data= [ 0x01 ] 1 > Generic Desktop Controls > Item(Local ): Usage, data= [ 0x30 ] 48 > Direction-X > Item(Local ): Usage, data= [ 0x31 ] 49 > Direction-Y > Item(Local ): Usage, data= [ 0x38 ] 56 > Wheel > Item(Global): Logical Minimum, data= [ 0x81 ] 129 > Item(Global): Logical Maximum, data= [ 0x7f ] 127 > Item(Global): Report Size, data= [ 0x08 ] 8 > Item(Global): Report Count, data= [ 0x03 ] 3 > Item(Main ): Input, data= [ 0x06 ] 6 > Data Variable Relative No_Wrap Linear > Preferred_State No_Null_Position Non_Volatile > Bitfield > Item(Main ): End Collection, data=none > Item(Main ): End Collection, data=none > Item(Global): Usage Page, data= [ 0x0d ] 13 > Digitizer > Item(Local ): Usage, data= [ 0x01 ] 1 > Digitizer > Item(Main ): Collection, data= [ 0x01 ] 1 > Application > Item(Global): Report ID, data= [ 0x02 ] 2 > Item(Main ): Collection, data= [ 0x00 ] 0 > Physical > Item(Global): Usage Page, data= [ 0x00 0xff ] 65280 > (null) > Item(Local ): Usage, data= [ 0x01 ] 1 > (null) > Item(Global): Logical Minimum, data= [ 0x00 ] 0 > Item(Global): Logical Maximum, data= [ 0xff ] 255 > Item(Global): Report Size, data= [ 0x08 ] 8 > Item(Global): Report Count, data= [ 0x01 ] 1 > Item(Main ): Input, data= [ 0x02 ] 2 > Data Variable Absolute No_Wrap Linear > Preferred_State No_Null_Position Non_Volatile > Bitfield > Item(Global): Usage Page, data= [ 0x01 ] 1 > Generic Desktop Controls > Item(Local ): Usage, data= [ 0x30 ] 48 > Direction-X > Item(Global): Report Size, data= [ 0x10 ] 16 > Item(Global): Report Count, data= [ 0x01 ] 1 > Item(Global): Push, data=none > Item(Global): Unit Exponent, data= [ 0x0d ] 13 > Unit Exponent: 13 > Item(Global): Unit, data= [ 0x33 ] 51 > System: English Linear, Unit: Inch^3 > Item(Global): Physical Minimum, data= [ 0x00 ] 0 > Item(Global): Physical Maximum, data= [ 0x58 0x19 ] 6488 > Item(Global): Logical Maximum, data= [ 0x60 0x40 ] 16480 > Item(Main ): Input, data= [ 0x02 ] 2 > Data Variable Absolute No_Wrap Linear > Preferred_State No_Null_Position Non_Volatile > Bitfield > Item(Local ): Usage, data= [ 0x31 ] 49 > Direction-Y > Item(Global): Physical Maximum, data= [ 0x15 0x13 ] 4885 > Item(Global): Logical Maximum, data= [ 0x7a 0x30 ] 12410 > Item(Main ): Input, data= [ 0x02 ] 2 > Data Variable Absolute No_Wrap Linear > Preferred_State No_Null_Position Non_Volatile > Bitfield > Item(Global): Pop, data=none > Item(Global): Usage Page, data= [ 0x0d ] 13 > Digitizer > Item(Local ): Usage, data= [ 0x30 ] 48 > Tip Pressure > Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255 > Item(Main ): Input, data= [ 0x02 ] 2 > Data Variable Absolute No_Wrap Linear > Preferred_State No_Null_Position Non_Volatile > Bitfield > Item(Global): Usage Page, data= [ 0x00 0xff ] 65280 > (null) > Item(Local ): Usage, data= [ 0x01 ] 1 > (null) > Item(Global): Logical Maximum, data= [ 0xff ] 255 > Item(Global): Report Size, data= [ 0x08 ] 8 > Item(Global): Report Count, data= [ 0x01 ] 1 > Item(Main ): Input, data= [ 0x02 ] 2 > Data Variable Absolute No_Wrap Linear > Preferred_State No_Null_Position Non_Volatile > Bitfield > Item(Main ): End Collection, data=none > Item(Local ): Usage, data= [ 0x01 ] 1 > (null) > Item(Global): Report ID, data= [ 0x02 ] 2 > Item(Global): Report Count, data= [ 0x01 ] 1 > Item(Main ): Feature, data= [ 0x02 ] 2 > Data Variable Absolute No_Wrap Linear > Preferred_State No_Null_Position Non_Volatile > Bitfield > Item(Local ): Usage, data= [ 0x01 ] 1 > (null) > Item(Global): Report ID, data= [ 0x03 ] 3 > Item(Global): Report Count, data= [ 0x01 ] 1 > Item(Main ): Feature, data= [ 0x02 ] 2 > Data Variable Absolute No_Wrap Linear > Preferred_State No_Null_Position Non_Volatile > Bitfield > Item(Local ): Usage, data= [ 0x01 ] 1 > (null) > Item(Global): Report ID, data= [ 0x04 ] 4 > Item(Global): Report Count, data= [ 0x01 ] 1 > Item(Main ): Feature, data= [ 0x02 ] 2 > Data Variable Absolute No_Wrap Linear > Preferred_State No_Null_Position Non_Volatile > Bitfield > Item(Local ): Usage, data= [ 0x01 ] 1 > (null) > Item(Global): Report ID, data= [ 0x10 ] 16 > Item(Global): Report Count, data= [ 0x02 ] 2 > Item(Main ): Feature, data= [ 0x02 ] 2 > Data Variable Absolute No_Wrap Linear > Preferred_State No_Null_Position Non_Volatile > Bitfield > Item(Local ): Usage, data= [ 0x01 ] 1 > (null) > Item(Global): Report ID, data= [ 0x11 ] 17 > Item(Global): Report Count, data= [ 0x10 ] 16 > Item(Main ): Feature, data= [ 0x02 ] 2 > Data Variable Absolute No_Wrap Linear > Preferred_State No_Null_Position Non_Volatile > Bitfield > Item(Local ): Usage, data= [ 0x01 ] 1 > (null) > Item(Global): Report ID, data= [ 0x13 ] 19 > Item(Global): Report Count, data= [ 0x01 ] 1 > Item(Main ): Feature, data= [ 0x02 ] 2 > Data Variable Absolute No_Wrap Linear > Preferred_State No_Null_Position Non_Volatile > Bitfield > Item(Local ): Usage, data= [ 0x01 ] 1 > (null) > Item(Global): Report ID, data= [ 0x20 ] 32 > Item(Global): Report Count, data= [ 0x01 ] 1 > Item(Main ): Feature, data= [ 0x02 ] 2 > Data Variable Absolute No_Wrap Linear > Preferred_State No_Null_Position Non_Volatile > Bitfield > Item(Local ): Usage, data= [ 0x01 ] 1 > (null) > Item(Global): Report ID, data= [ 0x21 ] 33 > Item(Global): Report Count, data= [ 0x01 ] 1 > Item(Main ): Feature, data= [ 0x02 ] 2 > Data Variable Absolute No_Wrap Linear > Preferred_State No_Null_Position Non_Volatile > Bitfield > Item(Main ): End Collection, data=none > > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x81 EP 1 IN > bmAttributes 3 > Transfer Type Interrupt > Synch Type None > Usage Type Data > wMaxPacketSize 0x0009 1x 9 bytes > bInterval 4 > Device Status: 0x0001 > Self Powered > ------------------------------------------------------------------------------ Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex infrastructure or vast IT resources to deliver seamless, secure access to virtual desktops. With this all-in-one solution, easily deploy virtual desktops for less than the cost of PCs and save 60% on VDI infrastructure costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox _______________________________________________ Linuxwacom-devel mailing list Linuxwacom-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel