提交 74b74890 编写于 作者: R Richard Purdie 提交者: Linus Torvalds

[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: NRichard Purdie <rpurdie@rpsys.net>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 347e4843
...@@ -79,6 +79,9 @@ static unsigned long calc_waittime(void) ...@@ -79,6 +79,9 @@ static unsigned long calc_waittime(void)
int w100fb_xres = w100fb_get_xres(); int w100fb_xres = w100fb_get_xres();
unsigned int waittime = 0; unsigned int waittime = 0;
if (w100fb_get_blanking())
return 0;
if (w100fb_xres == 480 || w100fb_xres == 640) { if (w100fb_xres == 480 || w100fb_xres == 640) {
waittime = WAIT_HS_400_VGA * get_clk_frequency_khz(0) / 398131U; 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 ...@@ -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; unsigned long timer1 = 0, timer2, pmnc = 0;
int pos = 0; int pos = 0;
int dosleep;
dosleep = !w100fb_get_blanking();
if (dosleep && doSend) { if (wait_time && doSend) {
PMNC_GET(pmnc); PMNC_GET(pmnc);
if (!(pmnc & 0x01)) if (!(pmnc & 0x01))
PMNC_SET(pmnc | 0x01); PMNC_SET(pmnc | 0x01);
...@@ -122,11 +122,11 @@ static int sync_receive_data_send_cmd(int doRecive, int doSend, unsigned int add ...@@ -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_put(cmd);
corgi_ssp_ads7846_get(); corgi_ssp_ads7846_get();
if (dosleep) { if (wait_time) {
/* Wait after HSync */ /* Wait after HSync */
CCNT(timer2); CCNT(timer2);
if (timer2-timer1 > wait_time) { if (timer2-timer1 > wait_time) {
/* timeout */ /* too slow - timeout, try again */
SyncHS(); SyncHS();
/* get OSCR */ /* get OSCR */
CCNT(timer1); CCNT(timer1);
...@@ -137,7 +137,7 @@ static int sync_receive_data_send_cmd(int doRecive, int doSend, unsigned int add ...@@ -137,7 +137,7 @@ static int sync_receive_data_send_cmd(int doRecive, int doSend, unsigned int add
CCNT(timer2); CCNT(timer2);
} }
corgi_ssp_ads7846_put(cmd); corgi_ssp_ads7846_put(cmd);
if (dosleep && !(pmnc & 0x01)) if (wait_time && !(pmnc & 0x01))
PMNC_SET(pmnc); PMNC_SET(pmnc);
} }
return pos; return pos;
...@@ -247,7 +247,7 @@ static irqreturn_t ts_interrupt(int irq, void *dev_id, struct pt_regs *regs) ...@@ -247,7 +247,7 @@ static irqreturn_t ts_interrupt(int irq, void *dev_id, struct pt_regs *regs)
} }
#ifdef CONFIG_PM #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) { if (level == SUSPEND_POWER_DOWN) {
struct corgi_ts *corgi_ts = dev_get_drvdata(dev); struct corgi_ts *corgi_ts = dev_get_drvdata(dev);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册