From: Guenter Roeck <linux@roeck-us.net>
To: Nishanth Menon <nm@ti.com>, Jean Delvare <jdelvare@suse.com>
Cc: linux-kernel@vger.kernel.org, lm-sensors@lm-sensors.org,
linux-omap@vger.kernel.org, beagleboard-x15@googlegroups.com,
Eduardo Valentin <edubezval@gmail.com>
Subject: Re: [PATCH] hwmon: (tmp102) Force wait for conversion time for the first valid data
Date: Tue, 1 Dec 2015 07:09:57 -0800 [thread overview]
Message-ID: <565DB845.4050709@roeck-us.net> (raw)
In-Reply-To: <20151201142152.GA10891@ogun.home>
On 12/01/2015 06:21 AM, Nishanth Menon wrote:
[ ... ]
>
> Hint about how the patch will look like:
Looks ok (and better).
Guenter
> diff --git a/drivers/hwmon/tmp102.c b/drivers/hwmon/tmp102.c
> index 65482624ea2c..5289aa0980a8 100644
> --- a/drivers/hwmon/tmp102.c
> +++ b/drivers/hwmon/tmp102.c
> @@ -58,6 +58,7 @@ struct tmp102 {
> u16 config_orig;
> unsigned long last_update;
> int temp[3];
> + bool first_time;
> };
>
> /* convert left adjusted 13-bit TMP102 register value to milliCelsius */
> @@ -93,6 +94,7 @@ static struct tmp102 *tmp102_update_device(struct device *dev)
> tmp102->temp[i] = tmp102_reg_to_mC(status);
> }
> tmp102->last_update = jiffies;
> + tmp102->first_time = false;
> }
> mutex_unlock(&tmp102->lock);
> return tmp102;
> @@ -102,6 +104,12 @@ static int tmp102_read_temp(void *dev, int *temp)
> {
> struct tmp102 *tmp102 = tmp102_update_device(dev);
>
> + /* Is it too early even to return a conversion? */
> + if (tmp102->first_time) {
> + dev_dbg(dev, "%s: Conversion not ready yet..\n", __func__);
> + return -EAGAIN;
> + }
> +
> *temp = tmp102->temp[0];
>
> return 0;
> @@ -114,6 +122,10 @@ static ssize_t tmp102_show_temp(struct device *dev,
> struct sensor_device_attribute *sda = to_sensor_dev_attr(attr);
> struct tmp102 *tmp102 = tmp102_update_device(dev);
>
> + /* Is it too early even to return a read? */
> + if (tmp102->first_time)
> + return -EAGAIN;
> +
> return sprintf(buf, "%d\n", tmp102->temp[sda->index]);
> }
>
> @@ -207,7 +219,9 @@ static int tmp102_probe(struct i2c_client *client,
> status = -ENODEV;
> goto fail_restore_config;
> }
> - tmp102->last_update = jiffies - HZ;
> + tmp102->last_update = jiffies;
> + /* Mark that we are not ready with data until conversion is complete */
> + tmp102->first_time = true;
> mutex_init(&tmp102->lock);
>
> hwmon_dev = hwmon_device_register_with_groups(dev, client->name,
>
WARNING: multiple messages have this Message-ID (diff)
From: Guenter Roeck <linux@roeck-us.net>
To: Nishanth Menon <nm@ti.com>, Jean Delvare <jdelvare@suse.com>
Cc: linux-kernel@vger.kernel.org, lm-sensors@lm-sensors.org,
linux-omap@vger.kernel.org, beagleboard-x15@googlegroups.com,
Eduardo Valentin <edubezval@gmail.com>
Subject: Re: [lm-sensors] [PATCH] hwmon: (tmp102) Force wait for conversion time for the first valid data
Date: Tue, 01 Dec 2015 15:09:57 +0000 [thread overview]
Message-ID: <565DB845.4050709@roeck-us.net> (raw)
In-Reply-To: <20151201142152.GA10891@ogun.home>
On 12/01/2015 06:21 AM, Nishanth Menon wrote:
[ ... ]
>
> Hint about how the patch will look like:
Looks ok (and better).
Guenter
> diff --git a/drivers/hwmon/tmp102.c b/drivers/hwmon/tmp102.c
> index 65482624ea2c..5289aa0980a8 100644
> --- a/drivers/hwmon/tmp102.c
> +++ b/drivers/hwmon/tmp102.c
> @@ -58,6 +58,7 @@ struct tmp102 {
> u16 config_orig;
> unsigned long last_update;
> int temp[3];
> + bool first_time;
> };
>
> /* convert left adjusted 13-bit TMP102 register value to milliCelsius */
> @@ -93,6 +94,7 @@ static struct tmp102 *tmp102_update_device(struct device *dev)
> tmp102->temp[i] = tmp102_reg_to_mC(status);
> }
> tmp102->last_update = jiffies;
> + tmp102->first_time = false;
> }
> mutex_unlock(&tmp102->lock);
> return tmp102;
> @@ -102,6 +104,12 @@ static int tmp102_read_temp(void *dev, int *temp)
> {
> struct tmp102 *tmp102 = tmp102_update_device(dev);
>
> + /* Is it too early even to return a conversion? */
> + if (tmp102->first_time) {
> + dev_dbg(dev, "%s: Conversion not ready yet..\n", __func__);
> + return -EAGAIN;
> + }
> +
> *temp = tmp102->temp[0];
>
> return 0;
> @@ -114,6 +122,10 @@ static ssize_t tmp102_show_temp(struct device *dev,
> struct sensor_device_attribute *sda = to_sensor_dev_attr(attr);
> struct tmp102 *tmp102 = tmp102_update_device(dev);
>
> + /* Is it too early even to return a read? */
> + if (tmp102->first_time)
> + return -EAGAIN;
> +
> return sprintf(buf, "%d\n", tmp102->temp[sda->index]);
> }
>
> @@ -207,7 +219,9 @@ static int tmp102_probe(struct i2c_client *client,
> status = -ENODEV;
> goto fail_restore_config;
> }
> - tmp102->last_update = jiffies - HZ;
> + tmp102->last_update = jiffies;
> + /* Mark that we are not ready with data until conversion is complete */
> + tmp102->first_time = true;
> mutex_init(&tmp102->lock);
>
> hwmon_dev = hwmon_device_register_with_groups(dev, client->name,
>
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
next prev parent reply other threads:[~2015-12-01 15:09 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-01 4:25 [PATCH] hwmon: (tmp102) Force wait for conversion time for the first valid data Nishanth Menon
2015-12-01 4:25 ` Nishanth Menon
2015-12-01 4:25 ` [lm-sensors] " Nishanth Menon
2015-12-01 5:50 ` Guenter Roeck
2015-12-01 5:50 ` [lm-sensors] " Guenter Roeck
2015-12-01 13:47 ` Nishanth Menon
2015-12-01 13:47 ` Nishanth Menon
2015-12-01 13:47 ` [lm-sensors] " Nishanth Menon
2015-12-01 14:21 ` Nishanth Menon
2015-12-01 14:21 ` Nishanth Menon
2015-12-01 14:21 ` [lm-sensors] " Nishanth Menon
2015-12-01 15:09 ` Guenter Roeck [this message]
2015-12-01 15:09 ` Guenter Roeck
2015-12-01 15:14 ` Nishanth Menon
2015-12-01 15:14 ` Nishanth Menon
2015-12-01 15:14 ` [lm-sensors] " Nishanth Menon
2015-12-01 16:10 ` [PATCH V2] " Nishanth Menon
2015-12-01 16:10 ` Nishanth Menon
2015-12-01 16:10 ` [lm-sensors] " Nishanth Menon
2015-12-01 21:06 ` Guenter Roeck
2015-12-01 21:06 ` [lm-sensors] " Guenter Roeck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=565DB845.4050709@roeck-us.net \
--to=linux@roeck-us.net \
--cc=beagleboard-x15@googlegroups.com \
--cc=edubezval@gmail.com \
--cc=jdelvare@suse.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=lm-sensors@lm-sensors.org \
--cc=nm@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.