diff mbox

Input: Change msleep to usleep_range for small msecs

Message ID 1480003383-1716-1-git-send-email-a.mathur@samsung.com (mailing list archive)
State Accepted
Headers show

Commit Message

Aniroop Mathur Nov. 24, 2016, 4:03 p.m. UTC
msleep(1~20) may not do what the caller intends, and will often sleep longer.
(~20 ms actual sleep for any value given in the 1~20ms range)
This is not the desired behaviour for many cases like device resume time,
device suspend time, device enable time, etc.
Thus, change msleep to usleep_range for precise wakeups.

Signed-off-by: Aniroop Mathur <a.mathur@samsung.com>
---
 drivers/input/misc/bma150.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Aniroop Mathur Nov. 28, 2016, 4:35 p.m. UTC | #1
Hello Mr. Albert Zhang,

I am Aniroop Mathur from Samsung R&D Institute, India.

I have submitted one patch as below for review to Linux Open Source.
The problem is that we do not have the hardware available with us to
test it and we would like to test it before actually applying it.
As you are the author of this driver, so I would like to request
you if you could help to test this patch or provide us the contact points
of individuals who could support to get this patch tested?

Thank you!

BR,
Aniroop Mathur


On Thu, Nov 24, 2016 at 9:33 PM, Aniroop Mathur <a.mathur@samsung.com> wrote:
> msleep(1~20) may not do what the caller intends, and will often sleep longer.
> (~20 ms actual sleep for any value given in the 1~20ms range)
> This is not the desired behaviour for many cases like device resume time,
> device suspend time, device enable time, etc.
> Thus, change msleep to usleep_range for precise wakeups.
>
> Signed-off-by: Aniroop Mathur <a.mathur@samsung.com>
> ---
>  drivers/input/misc/bma150.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/input/misc/bma150.c b/drivers/input/misc/bma150.c
> index 2124390..1fa8537 100644
> --- a/drivers/input/misc/bma150.c
> +++ b/drivers/input/misc/bma150.c
> @@ -207,7 +207,7 @@ static int bma150_set_mode(struct bma150_data *bma150, u8 mode)
>                 return error;
>
>         if (mode == BMA150_MODE_NORMAL)
> -               msleep(2);
> +               usleep_range(2000, 2100);
>
>         bma150->mode = mode;
>         return 0;
> @@ -222,7 +222,7 @@ static int bma150_soft_reset(struct bma150_data *bma150)
>         if (error)
>                 return error;
>
> -       msleep(2);
> +       usleep_range(2000, 2100);
>         return 0;
>  }
>
> --
> 2.6.2
>
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Aniroop Mathur Dec. 1, 2016, 10:34 a.m. UTC | #2
Dear Mr. Albert Zhang,

Thank you for your confirmation!

Yes, I think usleep_range(2000, 2100) is better than usleep_range(2000, 2000)
because delta time will allow the kernel to batch the processes who need to
wake up around same time and generate single interrupt to wake up all of them.
So this would be beneficial from power saving point of view.


--
Best Regards,
Aniroop Mathur

 
 
--------- Original Message ---------
Sender : ZHANG Xu (BST/ESA3.1) <Xu.Zhang@cn.bosch.com>
Date   : 2016-12-01 11:19 (GMT+5:30)
Title  : RE: [PATCH] Input: Change msleep to usleep_range for small msecs
 
Hello Aniroop Mathur
 
Thank you for your mail.
 
We have used the  usleep_range() function in our new product's driver and the verification result  is working.
Your patch for bma150 is definitely working for sure. 
 
Just one question need your answer.
To replace the msleep(2),   is  usleep_range(2000, 2100)  better  than usleep_range(2000, 2000)  ?
 
Best regards
 
Albert (Xu) ZHANG
BST/ESA3.1  
 
 
 
 
-----Original Message-----
From: mathur.aniroop@gmail.com [mailto:mathur.aniroop@gmail.com] On Behalf Of Aniroop Mathur
Sent: Tuesday, November 29, 2016 12:36 AM
To: ZHANG Xu (BST/ESA3.1) <Xu.Zhang@cn.bosch.com>; Dmitry Torokhov <dmitry.torokhov@gmail.com>; linux-input@vger.kernel.org; linux-kernel@vger.kernel.org
Cc: Aniroop Mathur <aniroop.mathur@gmail.com>; s.samuel@samsung.com; r.mahale@samsung.com; Aniroop Mathur <a.mathur@samsung.com>
Subject: Re: [PATCH] Input: Change msleep to usleep_range for small msecs
 
Hello Mr. Albert Zhang,
 
I am Aniroop Mathur from Samsung R&D Institute, India.
 
I have submitted one patch as below for review to Linux Open Source.
The problem is that we do not have the hardware available with us to
test it and we would like to test it before actually applying it.
As you are the author of this driver, so I would like to request
you if you could help to test this patch or provide us the contact points
of individuals who could support to get this patch tested?
 
Thank you!
 
BR,
Aniroop Mathur
 
 
On Thu, Nov 24, 2016 at 9:33 PM, Aniroop Mathur <a.mathur@samsung.com> wrote:
> msleep(1~20) may not do what the caller intends, and will often sleep longer.

> (~20 ms actual sleep for any value given in the 1~20ms range)

> This is not the desired behaviour for many cases like device resume time,

> device suspend time, device enable time, etc.

> Thus, change msleep to usleep_range for precise wakeups.

>

> Signed-off-by: Aniroop Mathur <a.mathur@samsung.com>

> ---

>  drivers/input/misc/bma150.c | 4 ++--

>  1 file changed, 2 insertions(+), 2 deletions(-)

>

> diff --git a/drivers/input/misc/bma150.c b/drivers/input/misc/bma150.c

> index 2124390..1fa8537 100644

> --- a/drivers/input/misc/bma150.c

> +++ b/drivers/input/misc/bma150.c

> @@ -207,7 +207,7 @@ static int bma150_set_mode(struct bma150_data *bma150, u8 mode)

>                 return error;

>

>         if (mode == BMA150_MODE_NORMAL)

> -               msleep(2);

> +               usleep_range(2000, 2100);

>

>         bma150->mode = mode;

>         return 0;

> @@ -222,7 +222,7 @@ static int bma150_soft_reset(struct bma150_data *bma150)

>         if (error)

>                 return error;

>

> -       msleep(2);

> +       usleep_range(2000, 2100);

>         return 0;

>  }

>

> --

> 2.6.2

>
ZHANG Xu (BST/ESA3.1) Dec. 1, 2016, 11:44 a.m. UTC | #3
Dear Aniroop Mathur

Got your point. 
Thank you for your explanation!

Best regards

Albert (Xu) ZHANG
BST/ESA3.1  



-----Original Message-----
From: Aniroop Mathur [mailto:a.mathur@samsung.com] 

Sent: Thursday, December 01, 2016 6:34 PM
To: ZHANG Xu (BST/ESA3.1) <Xu.Zhang@cn.bosch.com>; Dmitry Torokhov <dmitry.torokhov@gmail.com>; linux-input@vger.kernel.org; linux-kernel@vger.kernel.org
Cc: Aniroop Mathur <aniroop.mathur@gmail.com>; SAMUEL SEQUEIRA <s.samuel@samsung.com>; Rahul Mahale <r.mahale@samsung.com>
Subject: RE: RE: [PATCH] Input: Change msleep to usleep_range for small msecs

Dear Mr. Albert Zhang,

Thank you for your confirmation!

Yes, I think usleep_range(2000, 2100) is better than usleep_range(2000, 2000)
because delta time will allow the kernel to batch the processes who need to
wake up around same time and generate single interrupt to wake up all of them.
So this would be beneficial from power saving point of view.


--
Best Regards,
Aniroop Mathur

 
 
--------- Original Message ---------
Sender : ZHANG Xu (BST/ESA3.1) <Xu.Zhang@cn.bosch.com>
Date   : 2016-12-01 11:19 (GMT+5:30)
Title  : RE: [PATCH] Input: Change msleep to usleep_range for small msecs
 
Hello Aniroop Mathur
 
Thank you for your mail.
 
We have used the  usleep_range() function in our new product's driver and the verification result  is working.
Your patch for bma150 is definitely working for sure. 
 
Just one question need your answer.
To replace the msleep(2),   is  usleep_range(2000, 2100)  better  than usleep_range(2000, 2000)  ?
 
Best regards
 
Albert (Xu) ZHANG
BST/ESA3.1  
 
 
 
 
-----Original Message-----
From: mathur.aniroop@gmail.com [mailto:mathur.aniroop@gmail.com] On Behalf Of Aniroop Mathur
Sent: Tuesday, November 29, 2016 12:36 AM
To: ZHANG Xu (BST/ESA3.1) <Xu.Zhang@cn.bosch.com>; Dmitry Torokhov <dmitry.torokhov@gmail.com>; linux-input@vger.kernel.org; linux-kernel@vger.kernel.org
Cc: Aniroop Mathur <aniroop.mathur@gmail.com>; s.samuel@samsung.com; r.mahale@samsung.com; Aniroop Mathur <a.mathur@samsung.com>
Subject: Re: [PATCH] Input: Change msleep to usleep_range for small msecs
 
Hello Mr. Albert Zhang,
 
I am Aniroop Mathur from Samsung R&D Institute, India.
 
I have submitted one patch as below for review to Linux Open Source.
The problem is that we do not have the hardware available with us to
test it and we would like to test it before actually applying it.
As you are the author of this driver, so I would like to request
you if you could help to test this patch or provide us the contact points
of individuals who could support to get this patch tested?
 
Thank you!
 
BR,
Aniroop Mathur
 
 
On Thu, Nov 24, 2016 at 9:33 PM, Aniroop Mathur <a.mathur@samsung.com> wrote:
> msleep(1~20) may not do what the caller intends, and will often sleep longer.

> (~20 ms actual sleep for any value given in the 1~20ms range)

> This is not the desired behaviour for many cases like device resume time,

> device suspend time, device enable time, etc.

> Thus, change msleep to usleep_range for precise wakeups.

>

> Signed-off-by: Aniroop Mathur <a.mathur@samsung.com>

> ---

>  drivers/input/misc/bma150.c | 4 ++--

>  1 file changed, 2 insertions(+), 2 deletions(-)

>

> diff --git a/drivers/input/misc/bma150.c b/drivers/input/misc/bma150.c

> index 2124390..1fa8537 100644

> --- a/drivers/input/misc/bma150.c

> +++ b/drivers/input/misc/bma150.c

> @@ -207,7 +207,7 @@ static int bma150_set_mode(struct bma150_data *bma150, u8 mode)

>                 return error;

>

>         if (mode == BMA150_MODE_NORMAL)

> -               msleep(2);

> +               usleep_range(2000, 2100);

>

>         bma150->mode = mode;

>         return 0;

> @@ -222,7 +222,7 @@ static int bma150_soft_reset(struct bma150_data *bma150)

>         if (error)

>                 return error;

>

> -       msleep(2);

> +       usleep_range(2000, 2100);

>         return 0;

>  }

>

> --

> 2.6.2

>
Aniroop Mathur Dec. 1, 2016, 3:50 p.m. UTC | #4
Dear Mr. Torokhov,

As this patch is now verified, would you please apply it?

Thank you!

--
Best Regards,
Aniroop Mathur
Lead Engineer | System 1 - Sensor R&D
Samsung Research Institute India - Noida
Tel: 0120-6711111    Ext: 4018
Mob: +91 9971865523
Email: a.mathur@samsung.com

 
 
--------- Original Message ---------
Sender : ZHANG Xu (BST/ESA3.1) <Xu.Zhang@cn.bosch.com>
Date   : 2016-12-01 17:14 (GMT+5:30)
Title  : RE: RE: [PATCH] Input: Change msleep to usleep_range for small msecs
 
Dear Aniroop Mathur
 
Got your point. 
Thank you for your explanation!
 
Best regards
 
Albert (Xu) ZHANG
BST/ESA3.1  
 
 
 
-----Original Message-----
From: Aniroop Mathur [mailto:a.mathur@samsung.com] 
Sent: Thursday, December 01, 2016 6:34 PM
To: ZHANG Xu (BST/ESA3.1) <Xu.Zhang@cn.bosch.com>; Dmitry Torokhov <dmitry.torokhov@gmail.com>; linux-input@vger.kernel.org; linux-kernel@vger.kernel.org
Cc: Aniroop Mathur <aniroop.mathur@gmail.com>; SAMUEL SEQUEIRA <s.samuel@samsung.com>; Rahul Mahale <r.mahale@samsung.com>
Subject: RE: RE: [PATCH] Input: Change msleep to usleep_range for small msecs
 
Dear Mr. Albert Zhang,
 
Thank you for your confirmation!
 
Yes, I think usleep_range(2000, 2100) is better than usleep_range(2000, 2000)
because delta time will allow the kernel to batch the processes who need to
wake up around same time and generate single interrupt to wake up all of them.
So this would be beneficial from power saving point of view.
 
 
--
Best Regards,
Aniroop Mathur
 
 
 
--------- Original Message ---------
Sender : ZHANG Xu (BST/ESA3.1) <Xu.Zhang@cn.bosch.com>
Date   : 2016-12-01 11:19 (GMT+5:30)
Title  : RE: [PATCH] Input: Change msleep to usleep_range for small msecs
 
Hello Aniroop Mathur
 
Thank you for your mail.
 
We have used the  usleep_range() function in our new product's driver and the verification result  is working.
Your patch for bma150 is definitely working for sure. 
 
Just one question need your answer.
To replace the msleep(2),   is  usleep_range(2000, 2100)  better  than usleep_range(2000, 2000)  ?
 
Best regards
 
Albert (Xu) ZHANG
BST/ESA3.1  
 
 
 
 
-----Original Message-----
From: mathur.aniroop@gmail.com [mailto:mathur.aniroop@gmail.com] On Behalf Of Aniroop Mathur
Sent: Tuesday, November 29, 2016 12:36 AM
To: ZHANG Xu (BST/ESA3.1) <Xu.Zhang@cn.bosch.com>; Dmitry Torokhov <dmitry.torokhov@gmail.com>; linux-input@vger.kernel.org; linux-kernel@vger.kernel.org
Cc: Aniroop Mathur <aniroop.mathur@gmail.com>; s.samuel@samsung.com; r.mahale@samsung.com; Aniroop Mathur <a.mathur@samsung.com>
Subject: Re: [PATCH] Input: Change msleep to usleep_range for small msecs
 
Hello Mr. Albert Zhang,
 
I am Aniroop Mathur from Samsung R&D Institute, India.
 
I have submitted one patch as below for review to Linux Open Source.
The problem is that we do not have the hardware available with us to
test it and we would like to test it before actually applying it.
As you are the author of this driver, so I would like to request
you if you could help to test this patch or provide us the contact points
of individuals who could support to get this patch tested?
 
Thank you!
 
BR,
Aniroop Mathur
 
 
On Thu, Nov 24, 2016 at 9:33 PM, Aniroop Mathur <a.mathur@samsung.com> wrote:
> msleep(1~20) may not do what the caller intends, and will often sleep longer.

> (~20 ms actual sleep for any value given in the 1~20ms range)

> This is not the desired behaviour for many cases like device resume time,

> device suspend time, device enable time, etc.

> Thus, change msleep to usleep_range for precise wakeups.

>

> Signed-off-by: Aniroop Mathur <a.mathur@samsung.com>

> ---

>  drivers/input/misc/bma150.c | 4 ++--

>  1 file changed, 2 insertions(+), 2 deletions(-)

>

> diff --git a/drivers/input/misc/bma150.c b/drivers/input/misc/bma150.c

> index 2124390..1fa8537 100644

> --- a/drivers/input/misc/bma150.c

> +++ b/drivers/input/misc/bma150.c

> @@ -207,7 +207,7 @@ static int bma150_set_mode(struct bma150_data *bma150, u8 mode)

>                 return error;

>

>         if (mode == BMA150_MODE_NORMAL)

> -               msleep(2);

> +               usleep_range(2000, 2100);

>

>         bma150->mode = mode;

>         return 0;

> @@ -222,7 +222,7 @@ static int bma150_soft_reset(struct bma150_data *bma150)

>         if (error)

>                 return error;

>

> -       msleep(2);

> +       usleep_range(2000, 2100);

>         return 0;

>  }

>

> --

> 2.6.2

>
ZHANG Xu (BST/ESA3.1) Dec. 23, 2016, 5:07 a.m. UTC | #5
Dear Aniroop Mathur

Please see the acknowledgement below.

Best regards

Albert (Xu) ZHANG
BST/ESA3.1  

Tel. +86(21)2218-1283 



-----Original Message-----
From: Aniroop Mathur [mailto:a.mathur@samsung.com] 

Sent: Thursday, December 01, 2016 6:34 PM
To: ZHANG Xu (BST/ESA3.1) <Xu.Zhang@cn.bosch.com>; Dmitry Torokhov <dmitry.torokhov@gmail.com>; linux-input@vger.kernel.org; linux-kernel@vger.kernel.org
Cc: Aniroop Mathur <aniroop.mathur@gmail.com>; SAMUEL SEQUEIRA <s.samuel@samsung.com>; Rahul Mahale <r.mahale@samsung.com>
Subject: RE: RE: [PATCH] Input: Change msleep to usleep_range for small msecs

Dear Mr. Albert Zhang,

Thank you for your confirmation!

Yes, I think usleep_range(2000, 2100) is better than usleep_range(2000, 2000)
because delta time will allow the kernel to batch the processes who need to
wake up around same time and generate single interrupt to wake up all of them.
So this would be beneficial from power saving point of view.


--
Best Regards,
Aniroop Mathur

 
 
--------- Original Message ---------
Sender : ZHANG Xu (BST/ESA3.1) <Xu.Zhang@cn.bosch.com>
Date   : 2016-12-01 11:19 (GMT+5:30)
Title  : RE: [PATCH] Input: Change msleep to usleep_range for small msecs
 
Hello Aniroop Mathur
 
Thank you for your mail.
 
We have used the  usleep_range() function in our new product's driver and the verification result  is working.
Your patch for bma150 is definitely working for sure. 
 
Just one question need your answer.
To replace the msleep(2),   is  usleep_range(2000, 2100)  better  than usleep_range(2000, 2000)  ?
 
Best regards
 
Albert (Xu) ZHANG
BST/ESA3.1  
 
 
 
 
-----Original Message-----
From: mathur.aniroop@gmail.com [mailto:mathur.aniroop@gmail.com] On Behalf Of Aniroop Mathur
Sent: Tuesday, November 29, 2016 12:36 AM
To: ZHANG Xu (BST/ESA3.1) <Xu.Zhang@cn.bosch.com>; Dmitry Torokhov <dmitry.torokhov@gmail.com>; linux-input@vger.kernel.org; linux-kernel@vger.kernel.org
Cc: Aniroop Mathur <aniroop.mathur@gmail.com>; s.samuel@samsung.com; r.mahale@samsung.com; Aniroop Mathur <a.mathur@samsung.com>
Subject: Re: [PATCH] Input: Change msleep to usleep_range for small msecs
 
Hello Mr. Albert Zhang,
 
I am Aniroop Mathur from Samsung R&D Institute, India.
 
I have submitted one patch as below for review to Linux Open Source.
The problem is that we do not have the hardware available with us to
test it and we would like to test it before actually applying it.
As you are the author of this driver, so I would like to request
you if you could help to test this patch or provide us the contact points
of individuals who could support to get this patch tested?
 
Thank you!
 
BR,
Aniroop Mathur
 
 
On Thu, Nov 24, 2016 at 9:33 PM, Aniroop Mathur <a.mathur@samsung.com> wrote:
> msleep(1~20) may not do what the caller intends, and will often sleep longer.

> (~20 ms actual sleep for any value given in the 1~20ms range)

> This is not the desired behaviour for many cases like device resume time,

> device suspend time, device enable time, etc.

> Thus, change msleep to usleep_range for precise wakeups.

>

> Signed-off-by: Aniroop Mathur <a.mathur@samsung.com>

Acked by: Albert Zhang <xu.zhang@bosch-sensortec.com>
> ---

>  drivers/input/misc/bma150.c | 4 ++--

>  1 file changed, 2 insertions(+), 2 deletions(-)

>

> diff --git a/drivers/input/misc/bma150.c b/drivers/input/misc/bma150.c

> index 2124390..1fa8537 100644

> --- a/drivers/input/misc/bma150.c

> +++ b/drivers/input/misc/bma150.c

> @@ -207,7 +207,7 @@ static int bma150_set_mode(struct bma150_data *bma150, u8 mode)

>                 return error;

>

>         if (mode == BMA150_MODE_NORMAL)

> -               msleep(2);

> +               usleep_range(2000, 2100);

>

>         bma150->mode = mode;

>         return 0;

> @@ -222,7 +222,7 @@ static int bma150_soft_reset(struct bma150_data *bma150)

>         if (error)

>                 return error;

>

> -       msleep(2);

> +       usleep_range(2000, 2100);

>         return 0;

>  }

>

> --

> 2.6.2

>
diff mbox

Patch

diff --git a/drivers/input/misc/bma150.c b/drivers/input/misc/bma150.c
index 2124390..1fa8537 100644
--- a/drivers/input/misc/bma150.c
+++ b/drivers/input/misc/bma150.c
@@ -207,7 +207,7 @@  static int bma150_set_mode(struct bma150_data *bma150, u8 mode)
 		return error;
 
 	if (mode == BMA150_MODE_NORMAL)
-		msleep(2);
+		usleep_range(2000, 2100);
 
 	bma150->mode = mode;
 	return 0;
@@ -222,7 +222,7 @@  static int bma150_soft_reset(struct bma150_data *bma150)
 	if (error)
 		return error;
 
-	msleep(2);
+	usleep_range(2000, 2100);
 	return 0;
 }