Re: [PATCH 2/2] Input: cyttsp - add missing handshake

2013-05-10 Thread Javier Martinez Canillas
On Fri, May 10, 2013 at 3:32 PM, Ferruh Yigit  wrote:
> For the devices that has blocking with timeout communication, these
> extra handshakes will prevent one timeout delay in startup sequence
>
> Tested-by: Ferruh Yigit  on TMA300-DVK
> Signed-off-by: Ferruh Yigit 
> ---
>  drivers/input/touchscreen/cyttsp_core.c |   24 ++--
>  1 file changed, 18 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/input/touchscreen/cyttsp_core.c 
> b/drivers/input/touchscreen/cyttsp_core.c
> index 97ba891..7007f58 100644
> --- a/drivers/input/touchscreen/cyttsp_core.c
> +++ b/drivers/input/touchscreen/cyttsp_core.c
> @@ -116,6 +116,13 @@ static int ttsp_send_command(struct cyttsp *ts, u8 cmd)
> return ttsp_write_block_data(ts, CY_REG_BASE, sizeof(cmd), );
>  }
>
> +static int _cyttsp_hndshk(struct cyttsp *ts, u8 hst_mode)
> +{
> +   if (ts->pdata->use_hndshk)
> +   return ttsp_send_command(ts, hst_mode ^ CY_HNDSHK_BIT);
> +   return 0;
> +}
> +
>  static int cyttsp_load_bl_regs(struct cyttsp *ts)
>  {
> memset(>bl_data, 0, sizeof(ts->bl_data));
> @@ -167,6 +174,10 @@ static int cyttsp_set_operational_mode(struct cyttsp *ts)
> if (error)
> return error;
>
> +   error = _cyttsp_hndshk(ts, ts->xy_data.hst_mode);
> +   if (error)
> +   return error;
> +
> return ts->xy_data.act_dist == CY_ACT_DIST_DFLT ? -EIO : 0;
>  }
>
> @@ -188,6 +199,10 @@ static int cyttsp_set_sysinfo_mode(struct cyttsp *ts)
> if (error)
> return error;
>
> +   error = _cyttsp_hndshk(ts, ts->sysinfo_data.hst_mode);
> +   if (error)
> +   return error;
> +
> if (!ts->sysinfo_data.tts_verh && !ts->sysinfo_data.tts_verl)
> return -EIO;
>
> @@ -344,12 +359,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_hndshk(ts, ts->xy_data.hst_mode);
> +   if (error)
> +   goto out;
>
> if (unlikely(ts->state == CY_IDLE_STATE))
> goto out;
> --
> 1.7.9.5
>
> This message and any attachments may contain Cypress (or its subsidiaries) 
> confidential information. If it has been received in error, please advise the 
> sender and immediately delete this message.

Acked-by: Javier Martinez Canillas 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 2/2] Input: cyttsp - add missing handshake

2013-05-10 Thread Ferruh Yigit
For the devices that has blocking with timeout communication, these
extra handshakes will prevent one timeout delay in startup sequence

Tested-by: Ferruh Yigit  on TMA300-DVK
Signed-off-by: Ferruh Yigit 
---
 drivers/input/touchscreen/cyttsp_core.c |   24 ++--
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/drivers/input/touchscreen/cyttsp_core.c 
b/drivers/input/touchscreen/cyttsp_core.c
index 97ba891..7007f58 100644
--- a/drivers/input/touchscreen/cyttsp_core.c
+++ b/drivers/input/touchscreen/cyttsp_core.c
@@ -116,6 +116,13 @@ static int ttsp_send_command(struct cyttsp *ts, u8 cmd)
return ttsp_write_block_data(ts, CY_REG_BASE, sizeof(cmd), );
 }

+static int _cyttsp_hndshk(struct cyttsp *ts, u8 hst_mode)
+{
+   if (ts->pdata->use_hndshk)
+   return ttsp_send_command(ts, hst_mode ^ CY_HNDSHK_BIT);
+   return 0;
+}
+
 static int cyttsp_load_bl_regs(struct cyttsp *ts)
 {
memset(>bl_data, 0, sizeof(ts->bl_data));
@@ -167,6 +174,10 @@ static int cyttsp_set_operational_mode(struct cyttsp *ts)
if (error)
return error;

+   error = _cyttsp_hndshk(ts, ts->xy_data.hst_mode);
+   if (error)
+   return error;
+
return ts->xy_data.act_dist == CY_ACT_DIST_DFLT ? -EIO : 0;
 }

@@ -188,6 +199,10 @@ static int cyttsp_set_sysinfo_mode(struct cyttsp *ts)
if (error)
return error;

+   error = _cyttsp_hndshk(ts, ts->sysinfo_data.hst_mode);
+   if (error)
+   return error;
+
if (!ts->sysinfo_data.tts_verh && !ts->sysinfo_data.tts_verl)
return -EIO;

@@ -344,12 +359,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_hndshk(ts, ts->xy_data.hst_mode);
+   if (error)
+   goto out;

if (unlikely(ts->state == CY_IDLE_STATE))
goto out;
--
1.7.9.5

This message and any attachments may contain Cypress (or its subsidiaries) 
confidential information. If it has been received in error, please advise the 
sender and immediately delete this message.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 2/2] Input: cyttsp - add missing handshake

2013-05-10 Thread Ferruh Yigit
For the devices that has blocking with timeout communication, these
extra handshakes will prevent one timeout delay in startup sequence

Tested-by: Ferruh Yigit f...@cypress.com on TMA300-DVK
Signed-off-by: Ferruh Yigit f...@cypress.com
---
 drivers/input/touchscreen/cyttsp_core.c |   24 ++--
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/drivers/input/touchscreen/cyttsp_core.c 
b/drivers/input/touchscreen/cyttsp_core.c
index 97ba891..7007f58 100644
--- a/drivers/input/touchscreen/cyttsp_core.c
+++ b/drivers/input/touchscreen/cyttsp_core.c
@@ -116,6 +116,13 @@ 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_hndshk(struct cyttsp *ts, u8 hst_mode)
+{
+   if (ts-pdata-use_hndshk)
+   return ttsp_send_command(ts, 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 +174,10 @@ static int cyttsp_set_operational_mode(struct cyttsp *ts)
if (error)
return error;

+   error = _cyttsp_hndshk(ts, ts-xy_data.hst_mode);
+   if (error)
+   return error;
+
return ts-xy_data.act_dist == CY_ACT_DIST_DFLT ? -EIO : 0;
 }

@@ -188,6 +199,10 @@ static int cyttsp_set_sysinfo_mode(struct cyttsp *ts)
if (error)
return error;

+   error = _cyttsp_hndshk(ts, ts-sysinfo_data.hst_mode);
+   if (error)
+   return error;
+
if (!ts-sysinfo_data.tts_verh  !ts-sysinfo_data.tts_verl)
return -EIO;

@@ -344,12 +359,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_hndshk(ts, ts-xy_data.hst_mode);
+   if (error)
+   goto out;

if (unlikely(ts-state == CY_IDLE_STATE))
goto out;
--
1.7.9.5

This message and any attachments may contain Cypress (or its subsidiaries) 
confidential information. If it has been received in error, please advise the 
sender and immediately delete this message.
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 2/2] Input: cyttsp - add missing handshake

2013-05-10 Thread Javier Martinez Canillas
On Fri, May 10, 2013 at 3:32 PM, Ferruh Yigit f...@cypress.com wrote:
 For the devices that has blocking with timeout communication, these
 extra handshakes will prevent one timeout delay in startup sequence

 Tested-by: Ferruh Yigit f...@cypress.com on TMA300-DVK
 Signed-off-by: Ferruh Yigit f...@cypress.com
 ---
  drivers/input/touchscreen/cyttsp_core.c |   24 ++--
  1 file changed, 18 insertions(+), 6 deletions(-)

 diff --git a/drivers/input/touchscreen/cyttsp_core.c 
 b/drivers/input/touchscreen/cyttsp_core.c
 index 97ba891..7007f58 100644
 --- a/drivers/input/touchscreen/cyttsp_core.c
 +++ b/drivers/input/touchscreen/cyttsp_core.c
 @@ -116,6 +116,13 @@ 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_hndshk(struct cyttsp *ts, u8 hst_mode)
 +{
 +   if (ts-pdata-use_hndshk)
 +   return ttsp_send_command(ts, 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 +174,10 @@ static int cyttsp_set_operational_mode(struct cyttsp *ts)
 if (error)
 return error;

 +   error = _cyttsp_hndshk(ts, ts-xy_data.hst_mode);
 +   if (error)
 +   return error;
 +
 return ts-xy_data.act_dist == CY_ACT_DIST_DFLT ? -EIO : 0;
  }

 @@ -188,6 +199,10 @@ static int cyttsp_set_sysinfo_mode(struct cyttsp *ts)
 if (error)
 return error;

 +   error = _cyttsp_hndshk(ts, ts-sysinfo_data.hst_mode);
 +   if (error)
 +   return error;
 +
 if (!ts-sysinfo_data.tts_verh  !ts-sysinfo_data.tts_verl)
 return -EIO;

 @@ -344,12 +359,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_hndshk(ts, ts-xy_data.hst_mode);
 +   if (error)
 +   goto out;

 if (unlikely(ts-state == CY_IDLE_STATE))
 goto out;
 --
 1.7.9.5

 This message and any attachments may contain Cypress (or its subsidiaries) 
 confidential information. If it has been received in error, please advise the 
 sender and immediately delete this message.

Acked-by: Javier Martinez Canillas jav...@dowhile0.org
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/