diff options
author | Richard Purdie <rpurdie@rpsys.net> | 2005-09-06 15:19:02 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-09-07 16:57:53 -0700 |
commit | 74b74890bc23b8c6f5b0c0d99f6e1b3d39cb3dae (patch) | |
tree | 6899286d38b985b7499948e029d5a18939d82f5b /drivers/input | |
parent | 347e4843fa1fc21bf542c6f086fcf5ef1ab5f58e (diff) | |
download | linux-74b74890bc23b8c6f5b0c0d99f6e1b3d39cb3dae.tar.gz linux-74b74890bc23b8c6f5b0c0d99f6e1b3d39cb3dae.tar.bz2 linux-74b74890bc23b8c6f5b0c0d99f6e1b3d39cb3dae.zip |
[PATCH] Corgi Touchscreen: Code cleanup / fixes
Clean up some Corgi Touchscreen logic and merge the repeat calls to
w100fb_blanking() in anticipation of the w100fb patch.
Fix a pm_message_t reference.
Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/input')
-rw-r--r-- | drivers/input/touchscreen/corgi_ts.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/drivers/input/touchscreen/corgi_ts.c b/drivers/input/touchscreen/corgi_ts.c index 9fcc7ca2c208..768ab4a55630 100644 --- a/drivers/input/touchscreen/corgi_ts.c +++ b/drivers/input/touchscreen/corgi_ts.c @@ -79,6 +79,9 @@ static unsigned long calc_waittime(void) int w100fb_xres = w100fb_get_xres(); unsigned int waittime = 0; + if (w100fb_get_blanking()) + return 0; + if (w100fb_xres == 480 || w100fb_xres == 640) { waittime = WAIT_HS_400_VGA * get_clk_frequency_khz(0) / 398131U; @@ -98,11 +101,8 @@ static int sync_receive_data_send_cmd(int doRecive, int doSend, unsigned int add { unsigned long timer1 = 0, timer2, pmnc = 0; int pos = 0; - int dosleep; - - dosleep = !w100fb_get_blanking(); - if (dosleep && doSend) { + if (wait_time && doSend) { PMNC_GET(pmnc); if (!(pmnc & 0x01)) PMNC_SET(pmnc | 0x01); @@ -122,11 +122,11 @@ static int sync_receive_data_send_cmd(int doRecive, int doSend, unsigned int add corgi_ssp_ads7846_put(cmd); corgi_ssp_ads7846_get(); - if (dosleep) { + if (wait_time) { /* Wait after HSync */ CCNT(timer2); if (timer2-timer1 > wait_time) { - /* timeout */ + /* too slow - timeout, try again */ SyncHS(); /* get OSCR */ CCNT(timer1); @@ -137,7 +137,7 @@ static int sync_receive_data_send_cmd(int doRecive, int doSend, unsigned int add CCNT(timer2); } corgi_ssp_ads7846_put(cmd); - if (dosleep && !(pmnc & 0x01)) + if (wait_time && !(pmnc & 0x01)) PMNC_SET(pmnc); } return pos; @@ -247,7 +247,7 @@ static irqreturn_t ts_interrupt(int irq, void *dev_id, struct pt_regs *regs) } #ifdef CONFIG_PM -static int corgits_suspend(struct device *dev, uint32_t state, uint32_t level) +static int corgits_suspend(struct device *dev, pm_message_t state, uint32_t level) { if (level == SUSPEND_POWER_DOWN) { struct corgi_ts *corgi_ts = dev_get_drvdata(dev); |