* [PATCH] Input: ili210x - Fix reset timing
@ 2022-05-18 16:34 Marek Vasut
2022-05-18 16:49 ` Greg KH
2022-05-18 19:09 ` Dmitry Torokhov
0 siblings, 2 replies; 4+ messages in thread
From: Marek Vasut @ 2022-05-18 16:34 UTC (permalink / raw)
To: linux-input; +Cc: stable, Marek Vasut, Dmitry Torokhov
According to Ilitek "231x & ILI251x Programming Guide" Version: 2.30
"2.1. Power Sequence", "T4 Chip Reset and discharge time" is minimum
10ms and "T2 Chip initial time" is maximum 150ms. Adjust the reset
timings such that T4 is 15ms and T2 is 160ms to fit those figures.
This prevents sporadic touch controller start up failures when some
systems with at least ILI251x controller boot, without this patch
the systems sometimes fail to communicate with the touch controller.
Fixes: 201f3c803544c ("Input: ili210x - add reset GPIO support")
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
---
drivers/input/touchscreen/ili210x.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/input/touchscreen/ili210x.c b/drivers/input/touchscreen/ili210x.c
index 2bd407d86bae5..131cb648a82ae 100644
--- a/drivers/input/touchscreen/ili210x.c
+++ b/drivers/input/touchscreen/ili210x.c
@@ -951,9 +951,9 @@ static int ili210x_i2c_probe(struct i2c_client *client,
if (error)
return error;
- usleep_range(50, 100);
+ msleep(15);
gpiod_set_value_cansleep(reset_gpio, 0);
- msleep(100);
+ msleep(160);
}
priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
--
2.35.1
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH] Input: ili210x - Fix reset timing
2022-05-18 16:34 [PATCH] Input: ili210x - Fix reset timing Marek Vasut
@ 2022-05-18 16:49 ` Greg KH
2022-05-18 19:09 ` Dmitry Torokhov
1 sibling, 0 replies; 4+ messages in thread
From: Greg KH @ 2022-05-18 16:49 UTC (permalink / raw)
To: Marek Vasut; +Cc: linux-input, stable, Dmitry Torokhov
On Wed, May 18, 2022 at 06:34:30PM +0200, Marek Vasut wrote:
> According to Ilitek "231x & ILI251x Programming Guide" Version: 2.30
> "2.1. Power Sequence", "T4 Chip Reset and discharge time" is minimum
> 10ms and "T2 Chip initial time" is maximum 150ms. Adjust the reset
> timings such that T4 is 15ms and T2 is 160ms to fit those figures.
>
> This prevents sporadic touch controller start up failures when some
> systems with at least ILI251x controller boot, without this patch
> the systems sometimes fail to communicate with the touch controller.
>
> Fixes: 201f3c803544c ("Input: ili210x - add reset GPIO support")
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> ---
> drivers/input/touchscreen/ili210x.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/input/touchscreen/ili210x.c b/drivers/input/touchscreen/ili210x.c
> index 2bd407d86bae5..131cb648a82ae 100644
> --- a/drivers/input/touchscreen/ili210x.c
> +++ b/drivers/input/touchscreen/ili210x.c
> @@ -951,9 +951,9 @@ static int ili210x_i2c_probe(struct i2c_client *client,
> if (error)
> return error;
>
> - usleep_range(50, 100);
> + msleep(15);
> gpiod_set_value_cansleep(reset_gpio, 0);
> - msleep(100);
> + msleep(160);
> }
>
> priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
> --
> 2.35.1
>
<formletter>
This is not the correct way to submit patches for inclusion in the
stable kernel tree. Please read:
https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html
for how to do this properly.
</formletter>
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH] Input: ili210x - Fix reset timing
2022-05-18 16:34 [PATCH] Input: ili210x - Fix reset timing Marek Vasut
2022-05-18 16:49 ` Greg KH
@ 2022-05-18 19:09 ` Dmitry Torokhov
2022-05-18 20:52 ` Marek Vasut
1 sibling, 1 reply; 4+ messages in thread
From: Dmitry Torokhov @ 2022-05-18 19:09 UTC (permalink / raw)
To: Marek Vasut; +Cc: linux-input, stable
On Wed, May 18, 2022 at 06:34:30PM +0200, Marek Vasut wrote:
> According to Ilitek "231x & ILI251x Programming Guide" Version: 2.30
> "2.1. Power Sequence", "T4 Chip Reset and discharge time" is minimum
> 10ms and "T2 Chip initial time" is maximum 150ms. Adjust the reset
> timings such that T4 is 15ms and T2 is 160ms to fit those figures.
>
> This prevents sporadic touch controller start up failures when some
> systems with at least ILI251x controller boot, without this patch
> the systems sometimes fail to communicate with the touch controller.
>
> Fixes: 201f3c803544c ("Input: ili210x - add reset GPIO support")
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> ---
> drivers/input/touchscreen/ili210x.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/input/touchscreen/ili210x.c b/drivers/input/touchscreen/ili210x.c
> index 2bd407d86bae5..131cb648a82ae 100644
> --- a/drivers/input/touchscreen/ili210x.c
> +++ b/drivers/input/touchscreen/ili210x.c
> @@ -951,9 +951,9 @@ static int ili210x_i2c_probe(struct i2c_client *client,
> if (error)
> return error;
>
> - usleep_range(50, 100);
> + msleep(15);
WARNING: msleep < 20ms can sleep for up to 20ms; see
Documentation/timers/timers-howto.rst
#38: FILE: drivers/input/touchscreen/ili210x.c:954:
+ msleep(15);
Should this be usleep_range(10000, 15000) like in
ili251x_hardware_reset()? Actually, should we adopt
ili251x_hardware_reset() to be used there?
> gpiod_set_value_cansleep(reset_gpio, 0);
> - msleep(100);
> + msleep(160);
> }
>
> priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
> --
> 2.35.1
>
Thanks.
--
Dmitry
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH] Input: ili210x - Fix reset timing
2022-05-18 19:09 ` Dmitry Torokhov
@ 2022-05-18 20:52 ` Marek Vasut
0 siblings, 0 replies; 4+ messages in thread
From: Marek Vasut @ 2022-05-18 20:52 UTC (permalink / raw)
To: Dmitry Torokhov; +Cc: linux-input, stable
On 5/18/22 21:09, Dmitry Torokhov wrote:
> On Wed, May 18, 2022 at 06:34:30PM +0200, Marek Vasut wrote:
>> According to Ilitek "231x & ILI251x Programming Guide" Version: 2.30
>> "2.1. Power Sequence", "T4 Chip Reset and discharge time" is minimum
>> 10ms and "T2 Chip initial time" is maximum 150ms. Adjust the reset
>> timings such that T4 is 15ms and T2 is 160ms to fit those figures.
>>
>> This prevents sporadic touch controller start up failures when some
>> systems with at least ILI251x controller boot, without this patch
>> the systems sometimes fail to communicate with the touch controller.
>>
>> Fixes: 201f3c803544c ("Input: ili210x - add reset GPIO support")
>> Signed-off-by: Marek Vasut <marex@denx.de>
>> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
>> ---
>> drivers/input/touchscreen/ili210x.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/input/touchscreen/ili210x.c b/drivers/input/touchscreen/ili210x.c
>> index 2bd407d86bae5..131cb648a82ae 100644
>> --- a/drivers/input/touchscreen/ili210x.c
>> +++ b/drivers/input/touchscreen/ili210x.c
>> @@ -951,9 +951,9 @@ static int ili210x_i2c_probe(struct i2c_client *client,
>> if (error)
>> return error;
>>
>> - usleep_range(50, 100);
>> + msleep(15);
>
> WARNING: msleep < 20ms can sleep for up to 20ms; see
> Documentation/timers/timers-howto.rst
> #38: FILE: drivers/input/touchscreen/ili210x.c:954:
> + msleep(15);
Sigh, yes, fixed in V2 to be 12..15ms .
> Should this be usleep_range(10000, 15000) like in
> ili251x_hardware_reset()? Actually, should we adopt
> ili251x_hardware_reset() to be used there?
I'll send a separate patch for that, it is indeed a good idea, but I
think we should keep the fix as simple as possible for backporting ?
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-05-18 20:53 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-05-18 16:34 [PATCH] Input: ili210x - Fix reset timing Marek Vasut
2022-05-18 16:49 ` Greg KH
2022-05-18 19:09 ` Dmitry Torokhov
2022-05-18 20:52 ` Marek Vasut
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox