[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>
This commit is contained in:
committed by
Linus Torvalds
parent
347e4843fa
commit
74b74890bc
@@ -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
|
|||||||
{
|
{
|
||||||
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 (wait_time && doSend) {
|
||||||
|
|
||||||
if (dosleep && 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
|
|||||||
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
|
|||||||
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)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#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);
|
||||||
|
Reference in New Issue
Block a user