diff mbox

Input: elan_i2c - Extend Flash-Write delay for Elan touch pad

Message ID 1506059436-3631-1-git-send-email-kt.liao@emc.com.tw (mailing list archive)
State Accepted
Headers show

Commit Message

廖崇榮 Sept. 22, 2017, 5:50 a.m. UTC
Original 20ms delay is a margin timing after a block writing
in FW update flow.

Sometimes it will cause fail during FW-updating if I2C timing delay.
We offten see this issue in rockchip's I2C host.

Extend the delay timing is the safest way to improve it.

Signed-off-by: KT Liao <kt.liao@emc.com.tw>
---
 drivers/input/mouse/elan_i2c_i2c.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Dmitry Torokhov Sept. 22, 2017, 5:06 p.m. UTC | #1
On Fri, Sep 22, 2017 at 01:50:36PM +0800, KT Liao wrote:
> Original 20ms delay is a margin timing after a block writing
> in FW update flow.
> 
> Sometimes it will cause fail during FW-updating if I2C timing delay.
> We offten see this issue in rockchip's I2C host.
> 
> Extend the delay timing is the safest way to improve it.
> 
> Signed-off-by: KT Liao <kt.liao@emc.com.tw>

Applied, thank you.

> ---
>  drivers/input/mouse/elan_i2c_i2c.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/input/mouse/elan_i2c_i2c.c b/drivers/input/mouse/elan_i2c_i2c.c
> index 80172f2..4db376c 100644
> --- a/drivers/input/mouse/elan_i2c_i2c.c
> +++ b/drivers/input/mouse/elan_i2c_i2c.c
> @@ -587,7 +587,7 @@ static int elan_i2c_write_fw_block(struct i2c_client *client,
>  	}
>  
>  	/* Wait for F/W to update one page ROM data. */
> -	msleep(20);
> +	msleep(35);
>  
>  	error = elan_i2c_read_cmd(client, ETP_I2C_IAP_CTRL_CMD, val);
>  	if (error) {
> -- 
> 2.7.4
>
diff mbox

Patch

diff --git a/drivers/input/mouse/elan_i2c_i2c.c b/drivers/input/mouse/elan_i2c_i2c.c
index 80172f2..4db376c 100644
--- a/drivers/input/mouse/elan_i2c_i2c.c
+++ b/drivers/input/mouse/elan_i2c_i2c.c
@@ -587,7 +587,7 @@  static int elan_i2c_write_fw_block(struct i2c_client *client,
 	}
 
 	/* Wait for F/W to update one page ROM data. */
-	msleep(20);
+	msleep(35);
 
 	error = elan_i2c_read_cmd(client, ETP_I2C_IAP_CTRL_CMD, val);
 	if (error) {