summaryrefslogtreecommitdiff
path: root/drivers/misc
diff options
context:
space:
mode:
authorMatt Wagner <mwagner@nvidia.com>2011-12-02 16:41:05 -0800
committerVarun Wadekar <vwadekar@nvidia.com>2011-12-08 18:05:44 +0530
commit555832c62b01485a0d5221cfc11c71da3513d070 (patch)
treebe06aac5b911aa04012aa0d3634e4ef7cb4f9a63 /drivers/misc
parentfdca632da6249827e54fa18bba4528d693e1fabb (diff)
misc: nct1008: remove busy check
Reverts 664afa7de06d4c1df98f6cec50c2c850cd48fee6. Busy check was causing reads of the temperature to block until conversion was completed. This caused issues with higher level code perf. Bug 909918 Change-Id: I57dd9d2ac1df8e3272aba03cd7f0c1e55bfd4eb8 Reviewed-on: http://git-master/r/68043 Tested-by: Matt Wagner <mwagner@nvidia.com> Reviewed-by: Dan Willemsen <dwillemsen@nvidia.com>
Diffstat (limited to 'drivers/misc')
-rw-r--r--drivers/misc/nct1008.c53
1 files changed, 0 insertions, 53 deletions
diff --git a/drivers/misc/nct1008.c b/drivers/misc/nct1008.c
index 86f4030b6317..9a4015e28c60 100644
--- a/drivers/misc/nct1008.c
+++ b/drivers/misc/nct1008.c
@@ -64,12 +64,6 @@
#define STANDBY_BIT BIT(6)
#define ALERT_BIT BIT(7)
-/* Status register bits */
-#define STATUS_BUSY BIT(7)
-
-/* Worst-case wait when nct1008 is busy */
-#define BUSY_TIMEOUT_MSEC 1000
-
/* Max Temperature Measurements */
#define EXTENDED_RANGE_OFFSET 64U
#define STANDARD_RANGE_MAX 127U
@@ -94,41 +88,6 @@ static inline u8 temperature_to_value(bool extended, s8 temp)
return extended ? (u8)(temp + EXTENDED_RANGE_OFFSET) : (u8)temp;
}
-/* Wait with timeout if busy */
-static int nct1008_wait_till_busy(struct i2c_client *client)
-{
- int intr_status;
- int msec_left = BUSY_TIMEOUT_MSEC;
- bool is_busy;
-
- do {
- intr_status = i2c_smbus_read_byte_data(client, STATUS_RD);
-
- if (intr_status < 0) {
- dev_err(&client->dev, "%s, line=%d, i2c read error=%d\n"
- , __func__, __LINE__, intr_status);
- return intr_status;
- }
-
- /* check for busy bit */
- is_busy = (intr_status & STATUS_BUSY) ? true : false;
- if (is_busy) {
- /* fastest nct1008 conversion rate ~15msec */
- /* using 20msec since msleep below 20 is not
- * guaranteed to complete in specified duration */
- msleep(MIN_SLEEP_MSEC);
- msec_left -= MIN_SLEEP_MSEC;
- }
- } while ((is_busy) && (msec_left > 0));
-
- if (msec_left <= 0) {
- dev_err(&client->dev, "error: nct1008 busy timed out\n");
- return -ETIMEDOUT;
- }
-
- return 0;
-}
-
static int nct1008_get_temp(struct device *dev, long *pTemp)
{
struct i2c_client *client = to_i2c_client(dev);
@@ -140,10 +99,6 @@ static int nct1008_get_temp(struct device *dev, long *pTemp)
long temp_local_milli;
u8 value;
- value = nct1008_wait_till_busy(client);
- if (value < 0)
- goto error;
-
/* Read Local Temp */
value = i2c_smbus_read_byte_data(client, LOCAL_TEMP_RD);
if (value < 0)
@@ -189,10 +144,6 @@ static ssize_t nct1008_show_temp(struct device *dev,
if (!dev || !buf || !attr)
return -EINVAL;
- value = nct1008_wait_till_busy(client);
- if (value < 0)
- goto error;
-
value = i2c_smbus_read_byte_data(client, LOCAL_TEMP_RD);
if (value < 0)
goto error;
@@ -380,10 +331,6 @@ static ssize_t nct1008_show_ext_temp(struct device *dev,
if (!dev || !buf || !attr)
return -EINVAL;
- data = nct1008_wait_till_busy(client);
- if (data < 0)
- goto error;
-
/* When reading the full external temperature value, read the
* LSB first. This causes the MSB to be locked (that is, the
* ADC does not write to it) until it is read */