i2c: Fix stuck transaction on cpm-i2c driver
[pandora-kernel.git] / drivers / i2c / busses / i2c-cpm.c
index b5db8b8..9c2e100 100644 (file)
@@ -140,7 +140,7 @@ static irqreturn_t cpm_i2c_interrupt(int irq, void *dev_id)
 
        dev_dbg(&adap->dev, "Interrupt: %x\n", i);
 
-       wake_up_interruptible(&cpm->i2c_wait);
+       wake_up(&cpm->i2c_wait);
 
        return i ? IRQ_HANDLED : IRQ_NONE;
 }
@@ -364,12 +364,12 @@ static int cpm_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num)
                dev_dbg(&adap->dev, "test ready.\n");
                pmsg = &msgs[tptr];
                if (pmsg->flags & I2C_M_RD)
-                       ret = wait_event_interruptible_timeout(cpm->i2c_wait,
+                       ret = wait_event_timeout(cpm->i2c_wait,
                                (in_be16(&tbdf[tptr].cbd_sc) & BD_SC_NAK) ||
                                !(in_be16(&rbdf[rptr].cbd_sc) & BD_SC_EMPTY),
                                1 * HZ);
                else
-                       ret = wait_event_interruptible_timeout(cpm->i2c_wait,
+                       ret = wait_event_timeout(cpm->i2c_wait,
                                !(in_be16(&tbdf[tptr].cbd_sc) & BD_SC_READY),
                                1 * HZ);
                if (ret == 0) {