summaryrefslogtreecommitdiff
path: root/packages/linux/linux-ezx-2.6.21/wyrm-ts.diff
diff options
context:
space:
mode:
Diffstat (limited to 'packages/linux/linux-ezx-2.6.21/wyrm-ts.diff')
-rw-r--r--packages/linux/linux-ezx-2.6.21/wyrm-ts.diff124
1 files changed, 0 insertions, 124 deletions
diff --git a/packages/linux/linux-ezx-2.6.21/wyrm-ts.diff b/packages/linux/linux-ezx-2.6.21/wyrm-ts.diff
deleted file mode 100644
index 6e424c626c..0000000000
--- a/packages/linux/linux-ezx-2.6.21/wyrm-ts.diff
+++ /dev/null
@@ -1,124 +0,0 @@
-Ignores read interrupts after penUP events until a penDOWN interrupt arrives.
-Some other changes i dont remember exactly. :)
-Signed-off-by: Daniel Ribeiro <drwyrm@gmail.com>
-Index: linux-2.6.16/drivers/input/touchscreen/pcap_ts.c
-===================================================================
---- linux-2.6.16.orig/drivers/input/touchscreen/pcap_ts.c 2007-03-09 21:26:25.000000000 -0300
-+++ linux-2.6.16/drivers/input/touchscreen/pcap_ts.c 2007-03-09 21:26:42.000000000 -0300
-@@ -31,7 +31,7 @@
-
- #include "../../misc/ezx/ssp_pcap.h"
-
--#if 1
-+#if 0
- #define DEBUGP(x, args ...) printk(KERN_DEBUG "%s: " x, __FUNCTION__, ## args)
- #else
- #define DEBUGP(x, args ...)
-@@ -39,6 +39,7 @@
-
- #define PRESSURE 1
- #define COORDINATE 2
-+#define STANDBY 3
-
- struct pcap_ts {
- int irq_xy;
-@@ -97,7 +98,7 @@
- int ret;
- u_int32_t tmp;
- DEBUGP("start xy read in mode %s\n",
-- pcap_ts->read_state == COORDINATE ? "COORD" : "PRESS");
-+ pcap_ts->read_state == COORDINATE ? "COORD" : (pcap_ts->read_state == PRESSURE ? "PRESS" : "STANDBY"));
-
- ret = ezx_pcap_read(SSP_PCAP_ADJ_ADC1_REGISTER, &tmp);
- if (ret < 0)
-@@ -122,7 +123,7 @@
- u_int32_t tmp;
-
- DEBUGP("get xy value in mode %s\n",
-- pcap_ts->read_state == COORDINATE ? "COORD" : "PRESS");
-+ pcap_ts->read_state == COORDINATE ? "COORD" : (pcap_ts->read_state == PRESSURE ? "PRESS" : "STANDBY"));
-
- ret = ezx_pcap_read(SSP_PCAP_ADJ_ADC2_REGISTER, &tmp);
- if (ret < 0)
-@@ -145,7 +146,16 @@
- static irqreturn_t pcap_ts_irq_xy(int irq, void *dev_id, struct pt_regs *regs)
- {
- struct pcap_ts *pcap_ts = dev_id;
-+// DEBUGP("read_state: %d\n", pcap_ts->read_state);
-
-+ /*
-+ * Ignore further read interrupts after we set STANDBY - WM
-+ */
-+ if (pcap_ts->read_state == STANDBY)
-+ {
-+ DEBUGP("ignored\n");
-+ return IRQ_HANDLED;
-+ }
- if (pcap_ts_get_xy_value(pcap_ts) < 0) {
- printk("pcap_ts: error reading XY value\n");
- return IRQ_HANDLED;
-@@ -160,33 +170,32 @@
- pcap_ts->pressure <= PRESSURE_MIN ) &&
- pcap_ts->pressure == pcap_ts->pressure_last) {
- /* pen has been released */
-+ DEBUGP("UP\n");
- input_report_key(pcap_ts->input, BTN_TOUCH, 0);
-- input_sync(pcap_ts->input);
--
- input_report_abs(pcap_ts->input, ABS_PRESSURE, 0);
-+ input_sync(pcap_ts->input);
-
- pcap_ts->x = pcap_ts->y = 0;
-
-+ /* no need for timer, we'll get interrupted with
-+ * next touch down event */
-+ del_timer(&pcap_ts->timer);
-+
- /* ask PCAP2 to interrupt us if touch event happens
- * again */
-- pcap_ts->read_state = PRESSURE;
-+ pcap_ts->read_state = STANDBY;
- pcap_ts_mode(PCAP_TS_STANDBY_MODE);
- ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_MSR_TSM, 0);
--
-- /* no need for timer, we'll get interrupted with
-- * next touch down event */
-- del_timer(&pcap_ts->timer);
- } else {
- /* pen has been touched down */
-+ DEBUGP("DOWN\n");
-+
- input_report_key(pcap_ts->input, BTN_TOUCH, 1);
- /* don't input_sync(), we don't know position yet */
-
- if (pcap_ts->pressure == 0)
- pcap_ts->pressure = pcap_ts->pressure_last;
-
-- input_report_abs(pcap_ts->input, ABS_PRESSURE,
-- pcap_ts->pressure);
--
- /* switch state machine into coordinate read mode */
- pcap_ts->read_state = COORDINATE;
- pcap_ts_mode(PCAP_TS_POSITION_XY_MEASUREMENT);
-@@ -196,18 +205,14 @@
- /* we are in coordinate mode */
- if (pcap_ts->x <= X_AXIS_MIN || pcap_ts->x >= X_AXIS_MAX ||
- pcap_ts->y <= Y_AXIS_MIN || pcap_ts->y >= Y_AXIS_MAX) {
-- DEBUGP("invalid x/y coordinate position: PEN_UP?\n");
--
-+ DEBUGP("PEN_UP?\n");
- pcap_ts->pressure = 0;
--#if 0
-- input_report_key(pcap_ts->input, BTN_TOUCH, 0);
-- pcap_ts->x = pcap_ts->y = 0;
--#endif
- } else {
-+ input_report_abs(pcap_ts->input, ABS_PRESSURE, pcap_ts->pressure);
- input_report_abs(pcap_ts->input, ABS_X, pcap_ts->x);
- input_report_abs(pcap_ts->input, ABS_Y, pcap_ts->y);
-+ input_sync(pcap_ts->input);
- }
-- input_sync(pcap_ts->input);
-
- /* switch back to pressure read mode */
- pcap_ts->read_state = PRESSURE;