bitops: rename for_each_bit() to for_each_set_bit()
[safe/jmp/linux-2.6] / drivers / i2c / busses / i2c-designware.c
index 887aed6..3e72b69 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Synopsys Designware I2C adapter driver (master only).
+ * Synopsys DesignWare I2C adapter driver (master only).
  *
  * Based on the TI DAVINCI I2C adapter driver.
  *
                                         DW_IC_TX_ABRT_GCALL_NOACK)
 
 static char *abort_sources[] = {
-       [ABRT_7B_ADDR_NOACK]    =
+       [ABRT_7B_ADDR_NOACK] =
                "slave address not acknowledged (7bit mode)",
-       [ABRT_10ADDR1_NOACK]    =
+       [ABRT_10ADDR1_NOACK] =
                "first address byte not acknowledged (10bit mode)",
-       [ABRT_10ADDR2_NOACK]    =
+       [ABRT_10ADDR2_NOACK] =
                "second address byte not acknowledged (10bit mode)",
-       [ABRT_TXDATA_NOACK]             =
+       [ABRT_TXDATA_NOACK] =
                "data not acknowledged",
-       [ABRT_GCALL_NOACK]              =
+       [ABRT_GCALL_NOACK] =
                "no acknowledgement for a general call",
-       [ABRT_GCALL_READ]               =
+       [ABRT_GCALL_READ] =
                "read after general call",
-       [ABRT_SBYTE_ACKDET]             =
+       [ABRT_SBYTE_ACKDET] =
                "start byte acknowledged",
-       [ABRT_SBYTE_NORSTRT]    =
+       [ABRT_SBYTE_NORSTRT] =
                "trying to send start byte when restart is disabled",
-       [ABRT_10B_RD_NORSTRT]   =
+       [ABRT_10B_RD_NORSTRT] =
                "trying to read when restart is disabled (10bit mode)",
-       [ARB_MASTER_DIS]                =
+       [ABRT_MASTER_DIS] =
                "trying to use disabled adapter",
-       [ARB_LOST]                      =
+       [ARB_LOST] =
                "lost arbitration",
 };
 
@@ -394,7 +394,8 @@ i2c_dw_xfer_msg(struct dw_i2c_dev *dev)
        intr_mask = DW_IC_INTR_DEFAULT_MASK;
 
        for (; dev->msg_write_idx < dev->msgs_num; dev->msg_write_idx++) {
-               /* if target address has changed, we need to
+               /*
+                * if target address has changed, we need to
                 * reprogram the target address in the i2c
                 * adapter when we are done with this transfer
                 */
@@ -495,13 +496,18 @@ static int i2c_dw_handle_tx_abort(struct dw_i2c_dev *dev)
        unsigned long abort_source = dev->abort_source;
        int i;
 
-       for_each_bit(i, &abort_source, ARRAY_SIZE(abort_sources))
+       if (abort_source & DW_IC_TX_ABRT_NOACK) {
+               for_each_set_bit(i, &abort_source, ARRAY_SIZE(abort_sources))
+                       dev_dbg(dev->dev,
+                               "%s: %s\n", __func__, abort_sources[i]);
+               return -EREMOTEIO;
+       }
+
+       for_each_set_bit(i, &abort_source, ARRAY_SIZE(abort_sources))
                dev_err(dev->dev, "%s: %s\n", __func__, abort_sources[i]);
 
        if (abort_source & DW_IC_TX_ARB_LOST)
                return -EAGAIN;
-       else if (abort_source & DW_IC_TX_ABRT_NOACK)
-               return -EREMOTEIO;
        else if (abort_source & DW_IC_TX_ABRT_GCALL_READ)
                return -EINVAL; /* wrong msgs[] data */
        else