diff options
author | J. Bruce Fields <bfields@citi.umich.edu> | 2009-11-23 12:34:58 -0500 |
---|---|---|
committer | J. Bruce Fields <bfields@citi.umich.edu> | 2009-11-23 12:34:58 -0500 |
commit | 9b8b317d58084b9a44f6f33b355c4278d9f841fb (patch) | |
tree | e0df89800bf4301c4017db3cdf04a2056ec1a852 /drivers/i2c/busses/i2c-mpc.c | |
parent | 78c210efdefe07131f91ed512a3308b15bb14e2f (diff) | |
parent | 648f4e3e50c4793d9dbf9a09afa193631f76fa26 (diff) |
Merge commit 'v2.6.32-rc8' into HEAD
Diffstat (limited to 'drivers/i2c/busses/i2c-mpc.c')
-rw-r--r-- | drivers/i2c/busses/i2c-mpc.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c index d325e86e3103..f627001108b8 100644 --- a/drivers/i2c/busses/i2c-mpc.c +++ b/drivers/i2c/busses/i2c-mpc.c | |||
@@ -365,9 +365,6 @@ static int mpc_write(struct mpc_i2c *i2c, int target, | |||
365 | unsigned timeout = i2c->adap.timeout; | 365 | unsigned timeout = i2c->adap.timeout; |
366 | u32 flags = restart ? CCR_RSTA : 0; | 366 | u32 flags = restart ? CCR_RSTA : 0; |
367 | 367 | ||
368 | /* Start with MEN */ | ||
369 | if (!restart) | ||
370 | writeccr(i2c, CCR_MEN); | ||
371 | /* Start as master */ | 368 | /* Start as master */ |
372 | writeccr(i2c, CCR_MIEN | CCR_MEN | CCR_MSTA | CCR_MTX | flags); | 369 | writeccr(i2c, CCR_MIEN | CCR_MEN | CCR_MSTA | CCR_MTX | flags); |
373 | /* Write target byte */ | 370 | /* Write target byte */ |
@@ -396,9 +393,6 @@ static int mpc_read(struct mpc_i2c *i2c, int target, | |||
396 | int i, result; | 393 | int i, result; |
397 | u32 flags = restart ? CCR_RSTA : 0; | 394 | u32 flags = restart ? CCR_RSTA : 0; |
398 | 395 | ||
399 | /* Start with MEN */ | ||
400 | if (!restart) | ||
401 | writeccr(i2c, CCR_MEN); | ||
402 | /* Switch to read - restart */ | 396 | /* Switch to read - restart */ |
403 | writeccr(i2c, CCR_MIEN | CCR_MEN | CCR_MSTA | CCR_MTX | flags); | 397 | writeccr(i2c, CCR_MIEN | CCR_MEN | CCR_MSTA | CCR_MTX | flags); |
404 | /* Write target address byte - this time with the read flag set */ | 398 | /* Write target address byte - this time with the read flag set */ |
@@ -425,9 +419,9 @@ static int mpc_read(struct mpc_i2c *i2c, int target, | |||
425 | /* Generate txack on next to last byte */ | 419 | /* Generate txack on next to last byte */ |
426 | if (i == length - 2) | 420 | if (i == length - 2) |
427 | writeccr(i2c, CCR_MIEN | CCR_MEN | CCR_MSTA | CCR_TXAK); | 421 | writeccr(i2c, CCR_MIEN | CCR_MEN | CCR_MSTA | CCR_TXAK); |
428 | /* Generate stop on last byte */ | 422 | /* Do not generate stop on last byte */ |
429 | if (i == length - 1) | 423 | if (i == length - 1) |
430 | writeccr(i2c, CCR_MIEN | CCR_MEN | CCR_TXAK); | 424 | writeccr(i2c, CCR_MIEN | CCR_MEN | CCR_MSTA | CCR_MTX); |
431 | data[i] = readb(i2c->base + MPC_I2C_DR); | 425 | data[i] = readb(i2c->base + MPC_I2C_DR); |
432 | } | 426 | } |
433 | 427 | ||