This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / drivers / i2c / busses / i2c-mpc.c
index ca9e203..f77245e 100644 (file)
@@ -23,7 +23,6 @@
 #include <asm/ocp.h>
 #include <linux/i2c.h>
 #include <linux/interrupt.h>
-#include <linux/delay.h>
 
 #define MPC_I2C_ADDR  0x00
 #define MPC_I2C_FDR    0x04
@@ -92,9 +91,9 @@ static int i2c_wait(struct mpc_i2c *i2c, unsigned timeout, int writing)
                x = readb(i2c->base + MPC_I2C_SR);
                writeb(0, i2c->base + MPC_I2C_SR);
        } else {
-               set_current_state(TASK_INTERRUPTIBLE);
                add_wait_queue(&i2c->queue, &wait);
                while (!(i2c->interrupt & CSR_MIF)) {
+                       set_current_state(TASK_INTERRUPTIBLE);
                        if (signal_pending(current)) {
                                pr_debug("I2C: Interrupted\n");
                                result = -EINTR;
@@ -105,9 +104,9 @@ static int i2c_wait(struct mpc_i2c *i2c, unsigned timeout, int writing)
                                result = -EIO;
                                break;
                        }
-                       msleep_interruptible(jiffies_to_msecs(timeout));
+                       schedule_timeout(timeout);
                }
-               set_current_state(TASK_RUNNING);
+               current->state = TASK_RUNNING;
                remove_wait_queue(&i2c->queue, &wait);
                x = i2c->interrupt;
                i2c->interrupt = 0;