]> rtime.felk.cvut.cz Git - mx1ts.git/commitdiff
upravena funkce mx1ts_evt_add, pridano nekolik statickych promenych, nez se vyresi...
authorRadek Pupák <pupakr1@fel.cvut.cz>
Tue, 8 Jul 2008 16:25:15 +0000 (18:25 +0200)
committerRadek Pupák <pupakr1@fel.cvut.cz>
Tue, 8 Jul 2008 16:25:15 +0000 (18:25 +0200)
mx1_ts-driver.c

index 923d46264cbc36c0aded957f6d1a1a6d205e1741..7f6f11da788d4cf98fa1150eade508ca67dce4e9 100644 (file)
@@ -183,6 +183,10 @@ struct mx1ts {
 
 }; 
 
+static int MX1TS_presed = 0;
+static int MX1TS_lastx = 0;
+static int MX1TS_lasty = 0;
+
 static inline void mx1ts_reg_set_mask(struct mx1ts *mts , unsigned int reg, u32 mask)
 {      
        u32 val;
@@ -282,18 +286,9 @@ static void mx1ts_enable_pen_touch_interrupt(struct mx1ts *mts)
 {
        unsigned int value;
 
-       /*while (1) {
-       value = mx1ts_reg_read(mts, ASP_ACNTLCR);
-       value = 0X00000000;
-       value |= ASP_SW3 | ASP_SW6 | ASP_SW5 | ASP_BGE | ASP_PADE ;
-       mx1ts_reg_write(mts, ASP_ACNTLCR, value);
-       
-       pen_x = mx1ts_reg_read(mts, ASP_PADFIFO);
-       mx1ts_evt_add(mts->ts_idev, 20 , pen_x, 00);*/
-
        /* Enable pen touch interrupt. */
        value = mx1ts_reg_read(mts, ASP_ICNTLR);
-       value |= /*ASP_EDGE | ASP_POL |*/ ASP_PIRQE;
+       value |= ASP_EDGE | /*ASP_POL |*/ ASP_PIRQE;
        mx1ts_reg_write(mts, ASP_ICNTLR, value);
        
        printk(KERN_ERR "mx1_touchscreen pen_touch: aktivuji pen down interrupt \n");
@@ -424,11 +419,18 @@ static void mx1ts_evt_add_up(struct input_dev *idev, u16 x, u16 y)
 static void mx1ts_evt_add(struct input_dev *idev, u8 p , u16 x, u16 y)
 {
        if((x < 7900 || x > 8900) && (y < 7751 || y > 10900)) {
+               MX1TS_presed = 1;
+               MX1TS_lastx = x;
+               MX1TS_lasty = y;
                mx1ts_evt_add_touch(idev,p, x, y); /* TODO opravit pen_up pen_down zrejme chyba HW  ??? TODO */
-               mx1ts_evt_add_up(idev, x, y);                   
+               
+               
+       } else {
+               if(MX1TS_presed == 1) {
+                       MX1TS_presed = 0;       
+                       mx1ts_evt_add_up(idev, MX1TS_lastx, MX1TS_lasty);
+               }
        }
-       
-
 }
 
 /*