From 715b4dcfe4890b62810c0978df42b7db09af65dc Mon Sep 17 00:00:00 2001 From: Ferruh Yigit Date: Thu, 23 May 2013 10:04:36 -0700 Subject: [PATCH] --- yaml --- r: 377319 b: refs/heads/master c: fbd5e77e65c36d84dbcd71a19c4d1526f4604bdb h: refs/heads/master i: 377317: ac063e30b0603db277df3024df2ccc48a22b09fb 377315: 7968382aa0243dca04d43727d56a5004d5ca1f57 377311: 9411f6b0c31fe48d1316abeb14fec4da0c669e07 v: v3 --- [refs] | 2 +- trunk/drivers/input/touchscreen/cyttsp_core.c | 26 ++++++++++++++----- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index 7f72ba1ae2eb..c5802ccc5913 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d2983cdb480157f637df07723f28aaa657b1080d +refs/heads/master: fbd5e77e65c36d84dbcd71a19c4d1526f4604bdb diff --git a/trunk/drivers/input/touchscreen/cyttsp_core.c b/trunk/drivers/input/touchscreen/cyttsp_core.c index 97ba89128312..ae89d2609ab0 100644 --- a/trunk/drivers/input/touchscreen/cyttsp_core.c +++ b/trunk/drivers/input/touchscreen/cyttsp_core.c @@ -116,6 +116,15 @@ static int ttsp_send_command(struct cyttsp *ts, u8 cmd) return ttsp_write_block_data(ts, CY_REG_BASE, sizeof(cmd), &cmd); } +static int cyttsp_handshake(struct cyttsp *ts) +{ + if (ts->pdata->use_hndshk) + return ttsp_send_command(ts, + ts->xy_data.hst_mode ^ CY_HNDSHK_BIT); + + return 0; +} + static int cyttsp_load_bl_regs(struct cyttsp *ts) { memset(&ts->bl_data, 0, sizeof(ts->bl_data)); @@ -167,6 +176,10 @@ static int cyttsp_set_operational_mode(struct cyttsp *ts) if (error) return error; + error = cyttsp_handshake(ts); + if (error) + return error; + return ts->xy_data.act_dist == CY_ACT_DIST_DFLT ? -EIO : 0; } @@ -188,6 +201,10 @@ static int cyttsp_set_sysinfo_mode(struct cyttsp *ts) if (error) return error; + error = cyttsp_handshake(ts); + if (error) + return error; + if (!ts->sysinfo_data.tts_verh && !ts->sysinfo_data.tts_verl) return -EIO; @@ -344,12 +361,9 @@ static irqreturn_t cyttsp_irq(int irq, void *handle) goto out; /* provide flow control handshake */ - if (ts->pdata->use_hndshk) { - error = ttsp_send_command(ts, - ts->xy_data.hst_mode ^ CY_HNDSHK_BIT); - if (error) - goto out; - } + error = cyttsp_handshake(ts); + if (error) + goto out; if (unlikely(ts->state == CY_IDLE_STATE)) goto out;