summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@rpsys.net>2005-09-06 22:19:02 (GMT)
committerLinus Torvalds <torvalds@g5.osdl.org>2005-09-07 23:57:53 (GMT)
commit74b74890bc23b8c6f5b0c0d99f6e1b3d39cb3dae (patch)
tree6899286d38b985b7499948e029d5a18939d82f5b /drivers
parent347e4843fa1fc21bf542c6f086fcf5ef1ab5f58e (diff)
downloadlinux-74b74890bc23b8c6f5b0c0d99f6e1b3d39cb3dae.tar.xz
[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')
-rw-r--r--drivers/input/touchscreen/corgi_ts.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/drivers/input/touchscreen/corgi_ts.c b/drivers/input/touchscreen/corgi_ts.c
index 9fcc7ca..768ab4a 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);