On Wed, Aug 22, 2012 at 09:44:54PM -0700, Ping Cheng wrote: > Hi Peter, > > I guess you didn't plan to only support this version of wdaemon on newer > kernels.
what I really care about with wdaemon is that it builds on RHEL6 :) the package is essentially obsolete with 6.2 as we now have the gnome configuration, but we do still get the odd request in. > Also, there are 5 Intuos5 models. Why do we only support 3 here? urgh. because I thought there were only 3, and my quick check on the wacom site confirmed that... (http://www.wacom.com/en/products/intuos.aspx) Now that I see the USB IDs in the driver, I see it there are non-touch enabled small and medium models too. Can you send me the evemu-describe output for those please? > Please see detailed comments inline. > > Thanks, > > Ping > > On Wednesday, August 22, 2012, Peter Hutterer wrote: > > > Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> > > --- > > Some cleanup would be nice to avoid the conditions, but wdaemon is on > > minimal maintainership at this point so I'm too worried about breaking some > > other device. > > > > wacom.c | 89 > > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- > > 1 file changed, 85 insertions(+), 4 deletions(-) > > > > diff --git a/wacom.c b/wacom.c > > index 89f1da6..d71069a 100644 > > --- a/wacom.c > > +++ b/wacom.c > > @@ -90,6 +90,10 @@ enum { > > INTUOS4L, > > WACOM_21UX2, > > DTU, > > + INTUOS5S, > > + INTUOS5M, > > + INTUOS5L, > > + INTUOS5_FG, > > MAX_TYPE > > }; > > > > @@ -164,6 +168,12 @@ static struct wacom_features { > > { "Wacom Cintiq 21UX2", 87200, 65600, 2047, 63, WACOM_21UX2,0xCC > > }, > > { "Wacom DTU1631", 34623, 19553, 511, 0, DTU, 0xF0 > > }, > > { "Wacom DTU2231", 47864, 27011, 511, 0, DTU, 0xCE > > }, > > + { "Wacom Intuos5 touch S Pen", 31496, 19685, 2047, 63, > > INTUOS5S, 0x26}, > > + { "Wacom Intuos5 touch S Finger", 4096, 4096, 0, 0, > > INTUOS5_FG, 0x26}, > > + { "Wacom Intuos5 touch M Pen", 44704, 27940, 2047, 63, > > INTUOS5M, 0x27}, > > + { "Wacom Intuos5 touch M Finger", 4096, 4096, 0, 0, > > INTUOS5_FG, 0x27}, > > + { "Wacom Intuos5 touch L Pen", 65024, 40640, 2047, 63, > > INTUOS5L, 0x28}, > > + { "Wacom Intuos5 touch L Finger", 4096, 4096, 0, 0, > > INTUOS5_FG, 0x28}, > > > The ones (0x29 and 0x2A) left out are pen only ones. I know quite a > few RHEL6 users don't want to buy pen and touch models since touch is not > supported there yet. > > > > }; > > #define WACOM_N_TABLETS (sizeof(wacom_features)/sizeof(wacom_features[0])) > > int wacom_check_type(int x) > > @@ -185,6 +195,25 @@ static int wacom_set_events(struct uinput_info *info, > > struct uinput_user_dev *de > > set_event(info, UI_SET_EVBIT, EV_KEY); > > set_event(info, UI_SET_EVBIT, EV_ABS); > > > > + /* touch devices don't have the common features of others */ > > + switch(features->type) { > > + case INTUOS5_FG: > > + set_event(info, UI_SET_ABSBIT, ABS_X); > > + set_event(info, UI_SET_ABSBIT, ABS_Y); > > + set_event(info, UI_SET_ABSBIT, ABS_MT_SLOT); > > + set_event(info, UI_SET_ABSBIT, ABS_MT_TOUCH_MAJOR); > > + set_event(info, UI_SET_ABSBIT, ABS_MT_POSITION_X); > > + set_event(info, UI_SET_ABSBIT, ABS_MT_POSITION_Y); > > + set_event(info, UI_SET_ABSBIT, ABS_MT_TRACKING_ID); > > + set_event(info, UI_SET_KEYBIT, BTN_TOOL_FINGER); > > + set_event(info, UI_SET_KEYBIT, BTN_TOOL_DOUBLETAP); > > + set_event(info, UI_SET_KEYBIT, BTN_TOOL_TRIPLETAP); > > + set_event(info, UI_SET_KEYBIT, BTN_TOOL_QUADTAP); > > > If we don't plan to only run this version of wdaemon on newer kernels, a > check for kernel version is needed. Otherwise, this code won't compile on > kernels older than 2.6.36 since some of the bits are undefined there, such > as ABS_MT_SLOT, ABS_MT_TRACKING_ID, etc. > I'll add ifdefs for those and re-submit the patch. thanks for the review. Cheers, Peter > + set_event(info, UI_SET_KEYBIT, BTN_TOUCH); > > + return 0; > > + } > > + > > + > > set_event(info, UI_SET_KEYBIT, BTN_TOOL_PEN); > > set_event(info, UI_SET_KEYBIT, BTN_TOUCH); > > set_event(info, UI_SET_KEYBIT, BTN_STYLUS); > > @@ -295,6 +324,20 @@ static int wacom_set_events(struct uinput_info *info, > > struct uinput_user_dev *de > > set_event(info, UI_SET_KEYBIT, BTN_5); > > set_event(info, UI_SET_KEYBIT, BTN_6); > > break; > > + case INTUOS5M: > > + case INTUOS5L: > > + set_event(info, UI_SET_KEYBIT, BTN_7); > > + set_event(info, UI_SET_KEYBIT, BTN_8); > > + case INTUOS5S: > > + set_event(info, UI_SET_ABSBIT, ABS_Z); > > + set_event(info, UI_SET_KEYBIT, BTN_0); > > + set_event(info, UI_SET_KEYBIT, BTN_1); > > + set_event(info, UI_SET_KEYBIT, BTN_2); > > + set_event(info, UI_SET_KEYBIT, BTN_3); > > + set_event(info, UI_SET_KEYBIT, BTN_4); > > + set_event(info, UI_SET_KEYBIT, BTN_5); > > + set_event(info, UI_SET_KEYBIT, BTN_6); > > + break; > > } > > > > set_event(info, UI_SET_EVBIT, EV_KEY); > > @@ -310,7 +353,10 @@ static int wacom_set_events(struct uinput_info *info, > > struct uinput_user_dev *de > > set_event(info, UI_SET_KEYBIT, BTN_TOOL_RUBBER); > > set_event(info, UI_SET_KEYBIT, BTN_TOOL_MOUSE); > > set_event(info, UI_SET_KEYBIT, BTN_TOOL_LENS); > > - set_event(info, UI_SET_KEYBIT, BTN_TOOL_FINGER); > > + if (features->type != INTUOS5S && > > + features->type != INTUOS5M && > > + features->type != INTUOS5L) > > + set_event(info, UI_SET_KEYBIT, BTN_TOOL_FINGER); > > set_event(info, UI_SET_KEYBIT, BTN_TOUCH); > > set_event(info, UI_SET_KEYBIT, BTN_STYLUS); > > set_event(info, UI_SET_KEYBIT, BTN_STYLUS2); > > @@ -326,13 +372,20 @@ static int wacom_set_events(struct uinput_info > > *info, struct uinput_user_dev *de > > set_event(info, UI_SET_KEYBIT, BTN_4); > > set_event(info, UI_SET_KEYBIT, BTN_5); > > set_event(info, UI_SET_KEYBIT, BTN_6); > > - set_event(info, UI_SET_KEYBIT, BTN_7); > > + if (features->type != INTUOS5S && > > + features->type != INTUOS5M && > > + features->type != INTUOS5L) > > + set_event(info, UI_SET_KEYBIT, BTN_7); > > set_event(info, UI_SET_KEYBIT, BTN_MIDDLE); > > > > set_event(info, UI_SET_ABSBIT, ABS_X); > > set_event(info, UI_SET_ABSBIT, ABS_Y); > > - set_event(info, UI_SET_ABSBIT, ABS_RX); > > - set_event(info, UI_SET_ABSBIT, ABS_RY); > > + if (features->type != INTUOS5S && > > + features->type != INTUOS5M && > > + features->type != INTUOS5L) { > > + set_event(info, UI_SET_ABSBIT, ABS_RX); > > + set_event(info, UI_SET_ABSBIT, ABS_RY); > > + } > > set_event(info, UI_SET_ABSBIT, ABS_RZ); > > set_event(info, UI_SET_ABSBIT, ABS_TILT_X); > > set_event(info, UI_SET_ABSBIT, ABS_TILT_Y); > > @@ -417,6 +470,34 @@ static int wacom_set_initial_values(struct > > uinput_info *info, > > case INTUOS4L: > > dev->absmin[ABS_Z] = -900; > > dev->absmax[ABS_Z] = 899; > > + break; > > + case INTUOS5S: > > + case INTUOS5M: > > + case INTUOS5L: > > + dev->absfuzz[ABS_X] = 4; > > + dev->absfuzz[ABS_Y] = 4; > > + dev->absfuzz[ABS_Y] = 4; > > + dev->absmin[ABS_Z] = -900; > > + dev->absmax[ABS_Z] = 899; > > + dev->absmin[ABS_RZ] = -900; > > + dev->absmax[ABS_RZ] = 899; > > + dev->absmax[ABS_WHEEL] = 1023; > > + dev->absmax[ABS_TILT_X] = 127; > > + dev->absmax[ABS_TILT_Y] = 127; > > + dev->absmin[ABS_THROTTLE] = -1023; > > + dev->absmax[ABS_THROTTLE] = 1023; > > + break; > > + case INTUOS5_FG: > > + dev->absfuzz[ABS_X] = 4; > > + dev->absfuzz[ABS_Y] = 4; > > + dev->absmax[ABS_MT_SLOT] = 15; > > + dev->absmax[ABS_MT_TOUCH_MAJOR] = 255; > > + dev->absmax[ABS_MT_POSITION_X] = 4096; > > + dev->absfuzz[ABS_MT_POSITION_X] = 4; > > + dev->absmax[ABS_MT_POSITION_Y] = 4096; > > + dev->absfuzz[ABS_MT_POSITION_Y] = 4; > > + dev->absmax[ABS_MT_TRACKING_ID] = 65535; > > + break; > > } > > > > return uinput_write_dev(info, dev); > > -- > > 1.7.11.2 > > > > > > > > ------------------------------------------------------------------------------ > > Live Security Virtual Conference > > Exclusive live event will cover all the ways today's security and > > threat landscape has changed and how IT managers can respond. Discussions > > will include endpoint security, mobile security and the latest in malware > > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > > _______________________________________________ > > Linuxwacom-devel mailing list > > Linuxwacom-devel@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel > > ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Linuxwacom-devel mailing list Linuxwacom-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel