diff options
author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2009-08-28 01:00:20 -0400 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2009-08-28 01:00:20 -0400 |
commit | 4b61bb575b1fb42ab1df228ae7812e5135f656da (patch) | |
tree | 03456466e6f678456ea462a7da4b352d1aa03aa3 /drivers/input/touchscreen/ucb1400_ts.c | |
parent | 805423e84e900e56c834aadee61a020b0d5092c3 (diff) | |
parent | 326ba5010a5429a5a528b268b36a5900d4ab0eba (diff) |
Merge commit 'v2.6.31-rc8' into next
Diffstat (limited to 'drivers/input/touchscreen/ucb1400_ts.c')
-rw-r--r-- | drivers/input/touchscreen/ucb1400_ts.c | 17 |
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 | ||
181 | static int ucb1400_ts_thread(void *_ucb) | 181 | static int ucb1400_ts_thread(void *_ucb) |
@@ -346,6 +346,7 @@ static int ucb1400_ts_detect_irq(struct ucb1400_ts *ucb) | |||
346 | static int ucb1400_ts_probe(struct platform_device *dev) | 346 | static 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); |