Input: synaptics - use in-kernel tracking for reporting mt data
[cascardo/linux.git] / drivers / input / mouse / synaptics.h
index fb2e076..6faf9bb 100644 (file)
  *                                     for noise.
  * 2   0x08    image sensor            image sensor tracks 5 fingers, but only
  *                                     reports 2.
+ * 2   0x01    uniform clickpad        whole clickpad moves instead of being
+ *                                     hinged at the top.
  * 2   0x20    report min              query 0x0f gives min coord reported
- * 2   0x80    forcepad                forcepad is a variant of clickpad that
- *                                     does not have physical buttons but rather
- *                                     uses pressure above certain threshold to
- *                                     report primary clicks. Forcepads also have
- *                                     clickpad bit set.
  */
 #define SYN_CAP_CLICKPAD(ex0c)         ((ex0c) & 0x100000) /* 1-button ClickPad */
 #define SYN_CAP_CLICKPAD2BTN(ex0c)     ((ex0c) & 0x000100) /* 2-button ClickPad */
@@ -91,7 +88,6 @@
 #define SYN_CAP_ADV_GESTURE(ex0c)      ((ex0c) & 0x080000)
 #define SYN_CAP_REDUCED_FILTERING(ex0c)        ((ex0c) & 0x000400)
 #define SYN_CAP_IMAGE_SENSOR(ex0c)     ((ex0c) & 0x000800)
-#define SYN_CAP_FORCEPAD(ex0c)         ((ex0c) & 0x008000)
 
 /* synaptics modes query bits */
 #define SYN_MODE_ABSOLUTE(m)           ((m) & (1 << 7))
 /* amount to fuzz position data when touchpad reports reduced filtering */
 #define SYN_REDUCED_FILTER_FUZZ                8
 
-/*
- * A structure to describe which internal touchpad finger slots are being
- * reported in raw packets.
- */
-struct synaptics_mt_state {
-       int count;                      /* num fingers being tracked */
-       int sgm;                        /* which slot is reported by sgm pkt */
-       int agm;                        /* which slot is reported by agm pkt*/
-};
-
 /*
  * A structure to describe the state of the touchpad hardware (buttons and pad)
  */
@@ -147,9 +133,6 @@ struct synaptics_hw_state {
        unsigned int down:1;
        unsigned char ext_buttons;
        signed char scroll;
-
-       /* As reported in last AGM-CONTACT packets */
-       struct synaptics_mt_state mt_state;
 };
 
 struct synaptics_data {
@@ -174,15 +157,12 @@ struct synaptics_data {
 
        struct serio *pt_port;                  /* Pass-through serio port */
 
-       struct synaptics_mt_state mt_state;     /* Current mt finger state */
-       bool mt_state_lost;                     /* mt_state may be incorrect */
-
        /*
         * Last received Advanced Gesture Mode (AGM) packet. An AGM packet
         * contains position data for a second contact, at half resolution.
         */
        struct synaptics_hw_state agm;
-       bool agm_pending;                       /* new AGM packet received */
+       unsigned int agm_count;                 /* finger count reported by agm */
 
        /* ForcePad handling */
        unsigned long                           press_start;