Title: [9399] trunk/drivers/staging/iio/accel: staging: iio: adis16201 address review feedback from Jonathan Cameron
Revision
9399
Author
hennerich
Date
2010-10-25 08:32:39 -0400 (Mon, 25 Oct 2010)

Log Message

staging: iio: adis16201 address review feedback from Jonathan Cameron

Fix return value handling of adis16201_check_status()
Fix ADIS16201_MAX_RX and ADIS16201_MAX_TX defines.

Modified Paths

Diff

Modified: trunk/drivers/staging/iio/accel/adis16201.h (9398 => 9399)


--- trunk/drivers/staging/iio/accel/adis16201.h	2010-10-25 09:03:59 UTC (rev 9398)
+++ trunk/drivers/staging/iio/accel/adis16201.h	2010-10-25 12:32:39 UTC (rev 9399)
@@ -56,8 +56,8 @@
 #define ADIS16201_GLOB_CMD_SW_RESET	(1<<7)
 #define ADIS16201_GLOB_CMD_FACTORY_CAL	(1<<1)
 
-#define ADIS16201_MAX_TX 24
-#define ADIS16201_MAX_RX 24
+#define ADIS16201_MAX_TX 14
+#define ADIS16201_MAX_RX 14
 
 #define ADIS16201_ERROR_ACTIVE          (1<<14)
 

Modified: trunk/drivers/staging/iio/accel/adis16201_core.c (9398 => 9399)


--- trunk/drivers/staging/iio/accel/adis16201_core.c	2010-10-25 09:03:59 UTC (rev 9398)
+++ trunk/drivers/staging/iio/accel/adis16201_core.c	2010-10-25 12:32:39 UTC (rev 9399)
@@ -162,8 +162,11 @@
 	if (ret)
 		return ret;
 
-	if (val & ADIS16201_ERROR_ACTIVE)
-		adis16201_check_status(dev);
+	if (val & ADIS16201_ERROR_ACTIVE) {
+		ret = adis16201_check_status(dev);
+		if (ret)
+			return ret;
+	}
 
 	return sprintf(buf, "%u\n", val & 0x0FFF);
 }
@@ -183,8 +186,11 @@
 	if (ret)
 		goto error_ret;
 
-	if (val & ADIS16201_ERROR_ACTIVE)
-		adis16201_check_status(dev);
+	if (val & ADIS16201_ERROR_ACTIVE) {
+		ret = adis16201_check_status(dev);
+		if (ret)
+			goto error_ret;
+	}
 
 	val &= 0xFFF;
 	ret = sprintf(buf, "%d\n", val);
@@ -207,13 +213,16 @@
 
 	ret = adis16201_spi_read_reg_16(dev, this_attr->address, (u16 *)&val);
 	if (!ret) {
-		if (val & ADIS16201_ERROR_ACTIVE)
-			adis16201_check_status(dev);
-
+		if (val & ADIS16201_ERROR_ACTIVE) {
+			ret = adis16201_check_status(dev);
+			if (ret)
+				goto error_ret;
+		}
 		val = ((s16)(val << 7) >> 7);
 		ret = sprintf(buf, "%d\n", val);
 	}
 
+error_ret:
 	mutex_unlock(&indio_dev->mlock);
 
 	return ret;
@@ -232,13 +241,17 @@
 
 	ret = adis16201_spi_read_reg_16(dev, this_attr->address, (u16 *)&val);
 	if (!ret) {
-		if (val & ADIS16201_ERROR_ACTIVE)
-			adis16201_check_status(dev);
+		if (val & ADIS16201_ERROR_ACTIVE) {
+			ret = adis16201_check_status(dev);
+			if (ret)
+				goto error_ret;
+		}
 
 		val = ((s16)(val << 4) >> 4);
 		ret = sprintf(buf, "%d\n", val);
 	}
 
+error_ret:
 	mutex_unlock(&indio_dev->mlock);
 
 	return ret;
@@ -257,13 +270,17 @@
 
 	ret = adis16201_spi_read_reg_16(dev, this_attr->address, (u16 *)&val);
 	if (!ret) {
-		if (val & ADIS16201_ERROR_ACTIVE)
-			adis16201_check_status(dev);
+		if (val & ADIS16201_ERROR_ACTIVE) {
+			ret = adis16201_check_status(dev);
+			if (ret)
+				goto error_ret;
+		}
 
 		val = ((s16)(val << 2) >> 2);
 		ret = sprintf(buf, "%d\n", val);
 	}
 
+error_ret:
 	mutex_unlock(&indio_dev->mlock);
 
 	return ret;
@@ -347,6 +364,8 @@
 		goto error_ret;
 	}
 	ret = status & 0xF;
+	if (ret)
+		ret = -EFAULT;
 
 	if (status & ADIS16201_DIAG_STAT_SPI_FAIL)
 		dev_err(dev, "SPI failure\n");
@@ -372,7 +391,7 @@
 		goto err_ret;
 	}
 
-	adis16201_check_status(dev);
+	ret = adis16201_check_status(dev);
 
 err_ret:
 	return ret;
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to