Hi!

Based on the experience with Genius Genitizer digitizer I thought the Y
axis code should be 0 on the top. The HID spec says otherwise and the
Wacom PenPartner does as HID spec says. So this patch fixes it to the
spec, and a patch for the Genitizer to work its quirk around will follow
shortly.

-- 
Vojtech Pavlik
SuSE Labs
diff -urN linux-2.4.0-2-old/drivers/usb/mousedev.c linux/drivers/usb/mousedev.c
--- linux-2.4.0-2-old/drivers/usb/mousedev.c    Fri Mar 10 22:18:42 2000
+++ linux/drivers/usb/mousedev.c        Sun Mar 19 16:46:48 2000
@@ -95,8 +95,8 @@
                                                break;
                                        case ABS_Y:
                                                size = handle->dev->absmax[ABS_Y] - 
handle->dev->absmin[ABS_Y];
-                                               list->dy += (value * 
CONFIG_MOUSEDEV_SCREEN_Y - list->oldy) / size;
-                                               list->oldy += list->dy * size;
+                                               list->dy -= (value * 
+CONFIG_MOUSEDEV_SCREEN_Y - list->oldy) / size;
+                                               list->oldy -= list->dy * size;
                                                break;
                                }
                                break;
diff -urN linux-2.4.0-2-old/drivers/usb/wacom.c linux/drivers/usb/wacom.c
--- linux-2.4.0-2-old/drivers/usb/wacom.c       Sun Mar 19 12:10:49 2000
+++ linux/drivers/usb/wacom.c   Sun Mar 19 18:13:46 2000
@@ -131,7 +131,7 @@
 
        if ( data[1] & 0x80 ) {
                input_report_abs(dev, ABS_X, data[2] | ((__u32)data[3] << 8));
-               input_report_abs(dev, ABS_Y, wacom->features->y_max - (data[4] | 
((__u32)data[5] << 8)));
+               input_report_abs(dev, ABS_Y, data[4] | ((__u32)data[5] << 8));
        }
 
        switch ((data[1] >> 5) & 3) {
@@ -196,7 +196,7 @@
        }
 
        input_report_abs(dev, ABS_X, ((__u32)data[2] << 8) | data[3]);
-       input_report_abs(dev, ABS_Y, wacom->features->y_max - (((__u32)data[4] << 8) | 
data[5]));
+       input_report_abs(dev, ABS_Y, ((__u32)data[4] << 8) | data[5]);
        input_report_abs(dev, ABS_PRESSURE, t = ((__u32)data[6] << 2) | ((data[7] >> 
6) & 3));
        input_report_abs(dev, ABS_DISTANCE, data[9] >> 4);
        input_report_abs(dev, ABS_TILT_X, ((data[7] << 1) & 0x7e) | (data[8] >> 7));

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to