diff options
| author | Daniel Ritz <daniel.ritz@gmx.ch> | 2004-11-29 00:10:39 -0800 |
|---|---|---|
| committer | Greg Kroah-Hartman <greg@kroah.com> | 2004-11-29 00:10:39 -0800 |
| commit | 2f32797603ef6cbbb83a9ad855b67397fec1709e (patch) | |
| tree | ccde1619853d8f5aa10239138abb1ed6153b1240 | |
| parent | abd3447f4dc91318bf3c023bd8bbe346ca0de1dc (diff) | |
[PATCH] USB touchkitusb: module_param to swap axes
add a module parameter to swap the axes. many displays need this...
Signed-off-by: Daniel Ritz <daniel.ritz@gmx.ch>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
| -rw-r--r-- | drivers/usb/input/touchkitusb.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/drivers/usb/input/touchkitusb.c b/drivers/usb/input/touchkitusb.c index 14443f926ab0..65dd5be4eb99 100644 --- a/drivers/usb/input/touchkitusb.c +++ b/drivers/usb/input/touchkitusb.c @@ -59,6 +59,10 @@ #define DRIVER_AUTHOR "Daniel Ritz <daniel.ritz@gmx.ch>" #define DRIVER_DESC "eGalax TouchKit USB HID Touchscreen Driver" +static int swap_xy; +module_param(swap_xy, bool, 0644); +MODULE_PARM_DESC(swap_xy, "If set X and Y axes are swapped."); + struct touchkit_usb { unsigned char *data; dma_addr_t data_dma; @@ -80,6 +84,7 @@ static void touchkit_irq(struct urb *urb, struct pt_regs *regs) { struct touchkit_usb *touchkit = urb->context; int retval; + int x, y; switch (urb->status) { case 0: @@ -103,13 +108,19 @@ static void touchkit_irq(struct urb *urb, struct pt_regs *regs) goto exit; } + if (swap_xy) { + y = TOUCHKIT_GET_X(touchkit->data); + x = TOUCHKIT_GET_Y(touchkit->data); + } else { + x = TOUCHKIT_GET_X(touchkit->data); + y = TOUCHKIT_GET_Y(touchkit->data); + } + input_regs(&touchkit->input, regs); input_report_key(&touchkit->input, BTN_TOUCH, TOUCHKIT_GET_TOUCHED(touchkit->data)); - input_report_abs(&touchkit->input, ABS_X, - TOUCHKIT_GET_X(touchkit->data)); - input_report_abs(&touchkit->input, ABS_Y, - TOUCHKIT_GET_Y(touchkit->data)); + input_report_abs(&touchkit->input, ABS_X, x); + input_report_abs(&touchkit->input, ABS_Y, y); input_sync(&touchkit->input); exit: |
