By using the time_is_before_jiffies() macro instead of normal
arithmetic, the jiffies overflow is handled correctly.
Signed-off-by: Bernhard Walle <[email protected]>
---
drivers/misc/bmp085.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/drivers/misc/bmp085.c b/drivers/misc/bmp085.c
index b29a2be..7cfc598 100644
--- a/drivers/misc/bmp085.c
+++ b/drivers/misc/bmp085.c
@@ -234,7 +234,8 @@ static s32 bmp085_get_pressure(struct bmp085_data *data, int *pressure)
int status;
/* alt least every second force an update of the ambient temperature */
- if (data->last_temp_measurement + 1*HZ < jiffies) {
+ if (data->last_temp_measurement == 0 ||
+ time_is_before_jiffies(data->last_temp_measurement + 1*HZ)) {
status = bmp085_get_temperature(data, NULL);
if (status != 0)
goto exit;
--
1.7.9.1
On Sunday 19 February 2012, Bernhard Walle wrote:
> By using the time_is_before_jiffies() macro instead of normal
> arithmetic, the jiffies overflow is handled correctly.
>
> Signed-off-by: Bernhard Walle <[email protected]>
Acked-by: Arnd Bergmann <[email protected]>
BTW, what is the future of this driver? Are there
plans to move it over to the the industrial I/O
framework?
Arnd
On Sun, Feb 19, 2012 at 06:28:01PM +0100, Bernhard Walle wrote:
> By using the time_is_before_jiffies() macro instead of normal
> arithmetic, the jiffies overflow is handled correctly.
>
> Signed-off-by: Bernhard Walle <[email protected]>
> Acked-by: Arnd Bergmann <[email protected]>
> ---
> drivers/misc/bmp085.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/misc/bmp085.c b/drivers/misc/bmp085.c
> index b29a2be..7cfc598 100644
> --- a/drivers/misc/bmp085.c
> +++ b/drivers/misc/bmp085.c
> @@ -234,7 +234,8 @@ static s32 bmp085_get_pressure(struct bmp085_data *data, int *pressure)
> int status;
>
> /* alt least every second force an update of the ambient temperature */
> - if (data->last_temp_measurement + 1*HZ < jiffies) {
> + if (data->last_temp_measurement == 0 ||
> + time_is_before_jiffies(data->last_temp_measurement + 1*HZ)) {
This causes a complier warning:
drivers/misc/bmp085.c: In function ‘bmp085_get_pressure’:
drivers/misc/bmp085.c:238:4: warning: comparison of distinct pointer types lacks a cast [enabled by default]
Care to send me a follow-on patch that fixes this?
thanks,
greg k-h
This fixes following compilation warning:
drivers/misc/bmp085.c: In function ‘bmp085_get_pressure’:
drivers/misc/bmp085.c:238:4: warning: comparison of distinct pointer
types lacks a cast [enabled by default]
Signed-off-by: Bernhard Walle <[email protected]>
---
drivers/misc/bmp085.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/misc/bmp085.c b/drivers/misc/bmp085.c
index b088abc..76c3064 100644
--- a/drivers/misc/bmp085.c
+++ b/drivers/misc/bmp085.c
@@ -87,7 +87,7 @@ struct bmp085_data {
u32 raw_temperature;
u32 raw_pressure;
unsigned char oversampling_setting;
- u32 last_temp_measurement;
+ unsigned long last_temp_measurement;
s32 b6; /* calculated temperature correction coefficient */
};
--
1.7.5.4