aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input/touchscreen
diff options
context:
space:
mode:
authorDmitry Torokhov <dmitry.torokhov@gmail.com>2009-08-28 01:00:20 -0400
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2009-08-28 01:00:20 -0400
commit4b61bb575b1fb42ab1df228ae7812e5135f656da (patch)
tree03456466e6f678456ea462a7da4b352d1aa03aa3 /drivers/input/touchscreen
parent805423e84e900e56c834aadee61a020b0d5092c3 (diff)
parent326ba5010a5429a5a528b268b36a5900d4ab0eba (diff)
Merge commit 'v2.6.31-rc8' into next
Diffstat (limited to 'drivers/input/touchscreen')
-rw-r--r--drivers/input/touchscreen/ucb1400_ts.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/drivers/input/touchscreen/ucb1400_ts.c b/drivers/input/touchscreen/ucb1400_ts.c
index e85483578bd4..095f84b1f56e 100644
--- a/drivers/input/touchscreen/ucb1400_ts.c
+++ b/drivers/input/touchscreen/ucb1400_ts.c
@@ -171,11 +171,11 @@ static void ucb1400_handle_pending_irq(struct ucb1400_ts *ucb)
171 ucb1400_reg_write(ucb->ac97, UCB_IE_CLEAR, isr); 171 ucb1400_reg_write(ucb->ac97, UCB_IE_CLEAR, isr);
172 ucb1400_reg_write(ucb->ac97, UCB_IE_CLEAR, 0); 172 ucb1400_reg_write(ucb->ac97, UCB_IE_CLEAR, 0);
173 173
174 if (isr & UCB_IE_TSPX) { 174 if (isr & UCB_IE_TSPX)
175 ucb1400_ts_irq_disable(ucb->ac97); 175 ucb1400_ts_irq_disable(ucb->ac97);
176 enable_irq(ucb->irq); 176 else
177 } else 177 dev_dbg(&ucb->ts_idev->dev, "ucb1400: unexpected IE_STATUS = %#x\n", isr);
178 printk(KERN_ERR "ucb1400: unexpected IE_STATUS = %#x\n", isr); 178 enable_irq(ucb->irq);
179} 179}
180 180
181static int ucb1400_ts_thread(void *_ucb) 181static int ucb1400_ts_thread(void *_ucb)
@@ -346,6 +346,7 @@ static int ucb1400_ts_detect_irq(struct ucb1400_ts *ucb)
346static int ucb1400_ts_probe(struct platform_device *dev) 346static int ucb1400_ts_probe(struct platform_device *dev)
347{ 347{
348 int error, x_res, y_res; 348 int error, x_res, y_res;
349 u16 fcsr;
349 struct ucb1400_ts *ucb = dev->dev.platform_data; 350 struct ucb1400_ts *ucb = dev->dev.platform_data;
350 351
351 ucb->ts_idev = input_allocate_device(); 352 ucb->ts_idev = input_allocate_device();
@@ -383,6 +384,14 @@ static int ucb1400_ts_probe(struct platform_device *dev)
383 ucb->ts_idev->evbit[0] = BIT_MASK(EV_ABS) | BIT_MASK(EV_KEY); 384 ucb->ts_idev->evbit[0] = BIT_MASK(EV_ABS) | BIT_MASK(EV_KEY);
384 ucb->ts_idev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); 385 ucb->ts_idev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH);
385 386
387 /*
388 * Enable ADC filter to prevent horrible jitter on Colibri.
389 * This also further reduces jitter on boards where ADCSYNC
390 * pin is connected.
391 */
392 fcsr = ucb1400_reg_read(ucb->ac97, UCB_FCSR);
393 ucb1400_reg_write(ucb->ac97, UCB_FCSR, fcsr | UCB_FCSR_AVE);
394
386 ucb1400_adc_enable(ucb->ac97); 395 ucb1400_adc_enable(ucb->ac97);
387 x_res = ucb1400_ts_read_xres(ucb); 396 x_res = ucb1400_ts_read_xres(ucb);
388 y_res = ucb1400_ts_read_yres(ucb); 397 y_res = ucb1400_ts_read_yres(ucb);