diff options
-rw-r--r-- | drivers/input/mouse/hgpk.c | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/drivers/input/mouse/hgpk.c b/drivers/input/mouse/hgpk.c index 88f04bf2ad6c..81e6ebf323e9 100644 --- a/drivers/input/mouse/hgpk.c +++ b/drivers/input/mouse/hgpk.c | |||
@@ -48,6 +48,30 @@ module_param(recalib_delta, int, 0644); | |||
48 | MODULE_PARM_DESC(recalib_delta, | 48 | MODULE_PARM_DESC(recalib_delta, |
49 | "packets containing a delta this large will cause a recalibration."); | 49 | "packets containing a delta this large will cause a recalibration."); |
50 | 50 | ||
51 | static int jumpy_delay = 1000; | ||
52 | module_param(jumpy_delay, int, 0644); | ||
53 | MODULE_PARM_DESC(jumpy_delay, | ||
54 | "delay (ms) before recal after jumpiness detected"); | ||
55 | |||
56 | static int spew_delay = 1000; | ||
57 | module_param(spew_delay, int, 0644); | ||
58 | MODULE_PARM_DESC(spew_delay, | ||
59 | "delay (ms) before recal after packet spew detected"); | ||
60 | |||
61 | static int recal_guard_time = 2000; | ||
62 | module_param(recal_guard_time, int, 0644); | ||
63 | MODULE_PARM_DESC(recal_guard_time, | ||
64 | "interval (ms) during which recal will be restarted if packet received"); | ||
65 | |||
66 | static int post_interrupt_delay = 1000; | ||
67 | module_param(post_interrupt_delay, int, 0644); | ||
68 | MODULE_PARM_DESC(post_interrupt_delay, | ||
69 | "delay (ms) before recal after recal interrupt detected"); | ||
70 | |||
71 | static int autorecal = 1; | ||
72 | module_param(autorecal, int, 0644); | ||
73 | MODULE_PARM_DESC(autorecal, "enable recalibration in the driver"); | ||
74 | |||
51 | /* | 75 | /* |
52 | * When the touchpad gets ultra-sensitive, one can keep their finger 1/2" | 76 | * When the touchpad gets ultra-sensitive, one can keep their finger 1/2" |
53 | * above the pad and still have it send packets. This causes a jump cursor | 77 | * above the pad and still have it send packets. This causes a jump cursor |
@@ -66,7 +90,7 @@ static void hgpk_jumpy_hack(struct psmouse *psmouse, int x, int y) | |||
66 | /* My car gets forty rods to the hogshead and that's the | 90 | /* My car gets forty rods to the hogshead and that's the |
67 | * way I likes it! */ | 91 | * way I likes it! */ |
68 | psmouse_queue_work(psmouse, &priv->recalib_wq, | 92 | psmouse_queue_work(psmouse, &priv->recalib_wq, |
69 | msecs_to_jiffies(1000)); | 93 | msecs_to_jiffies(jumpy_delay)); |
70 | } | 94 | } |
71 | } | 95 | } |
72 | 96 | ||
@@ -103,7 +127,7 @@ static void hgpk_spewing_hack(struct psmouse *psmouse, | |||
103 | hgpk_dbg(psmouse, "packet spew detected (%d,%d)\n", | 127 | hgpk_dbg(psmouse, "packet spew detected (%d,%d)\n", |
104 | priv->x_tally, priv->y_tally); | 128 | priv->x_tally, priv->y_tally); |
105 | psmouse_queue_work(psmouse, &priv->recalib_wq, | 129 | psmouse_queue_work(psmouse, &priv->recalib_wq, |
106 | msecs_to_jiffies(1000)); | 130 | msecs_to_jiffies(spew_delay)); |
107 | } | 131 | } |
108 | /* reset every 100 packets */ | 132 | /* reset every 100 packets */ |
109 | priv->count = 0; | 133 | priv->count = 0; |
@@ -181,7 +205,7 @@ static psmouse_ret_t hgpk_process_byte(struct psmouse *psmouse) | |||
181 | "packet inside calibration window, " | 205 | "packet inside calibration window, " |
182 | "queueing another recalibration\n"); | 206 | "queueing another recalibration\n"); |
183 | psmouse_queue_work(psmouse, &priv->recalib_wq, | 207 | psmouse_queue_work(psmouse, &priv->recalib_wq, |
184 | msecs_to_jiffies(1000)); | 208 | msecs_to_jiffies(post_interrupt_delay)); |
185 | } | 209 | } |
186 | priv->recalib_window = 0; | 210 | priv->recalib_window = 0; |
187 | } | 211 | } |
@@ -231,7 +255,7 @@ static int hgpk_force_recalibrate(struct psmouse *psmouse) | |||
231 | * If someone's finger *was* on the touchpad, it's probably | 255 | * If someone's finger *was* on the touchpad, it's probably |
232 | * miscalibrated. So, we should schedule another recalibration | 256 | * miscalibrated. So, we should schedule another recalibration |
233 | */ | 257 | */ |
234 | priv->recalib_window = jiffies + msecs_to_jiffies(2000); | 258 | priv->recalib_window = jiffies + msecs_to_jiffies(recal_guard_time); |
235 | 259 | ||
236 | return 0; | 260 | return 0; |
237 | } | 261 | } |