aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/i2c
diff options
context:
space:
mode:
authorTroy Kisky <troy.kisky@boundarydevices.com>2008-07-14 16:38:21 -0400
committerJean Delvare <khali@mahadeva.delvare>2008-07-14 16:38:21 -0400
commit2e7437879897a4185bd84478a0451e5367dee7ed (patch)
tree345d40055737b3067e598fe483a17c65ca8bb831 /drivers/i2c
parent5a0d5f5ffa5d294d895ef54fc220c6182db63998 (diff)
i2c-davinci: Initialize cmd_complete sooner
If an interrupt happens before an I2c master read/write, complete is called on uninitialized structure. Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Signed-off-by: Kevin Hilman <khilman@mvista.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
Diffstat (limited to 'drivers/i2c')
-rw-r--r--drivers/i2c/busses/i2c-davinci.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/i2c/busses/i2c-davinci.c b/drivers/i2c/busses/i2c-davinci.c
index 160857296952..af3846eda985 100644
--- a/drivers/i2c/busses/i2c-davinci.c
+++ b/drivers/i2c/busses/i2c-davinci.c
@@ -262,7 +262,7 @@ i2c_davinci_xfer_msg(struct i2c_adapter *adap, struct i2c_msg *msg, int stop)
262 262
263 davinci_i2c_write_reg(dev, DAVINCI_I2C_CNT_REG, dev->buf_len); 263 davinci_i2c_write_reg(dev, DAVINCI_I2C_CNT_REG, dev->buf_len);
264 264
265 init_completion(&dev->cmd_complete); 265 INIT_COMPLETION(dev->cmd_complete);
266 dev->cmd_err = 0; 266 dev->cmd_err = 0;
267 267
268 /* Take I2C out of reset, configure it as master and set the 268 /* Take I2C out of reset, configure it as master and set the
@@ -519,6 +519,7 @@ static int davinci_i2c_probe(struct platform_device *pdev)
519 goto err_release_region; 519 goto err_release_region;
520 } 520 }
521 521
522 init_completion(&dev->cmd_complete);
522 dev->dev = get_device(&pdev->dev); 523 dev->dev = get_device(&pdev->dev);
523 dev->irq = irq->start; 524 dev->irq = irq->start;
524 platform_set_drvdata(pdev, dev); 525 platform_set_drvdata(pdev, dev);