From: Jean Delvare Date: Sun, 6 Dec 2009 16:06:17 +0000 (+0100) Subject: i2c-powermac: Reject unsupported I2C transactions X-Git-Tag: v2.6.33-rc1~385^2~17 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6f7e549f873e9ff10a4a27241db568bf7988ee0c;p=platform%2Fupstream%2Fkernel-adaptation-pc.git i2c-powermac: Reject unsupported I2C transactions The i2c-powermac driver doesn't support arbitrary multi-message I2C transactions, only SMBus ones. Make it clear by returning an error if a multi-message I2C transaction is attempted. This is better than only processing the first message, because most callers won't recover from the short transaction. Anyone wishing to issue multi-message transactions should use the SMBus API instead of the raw I2C API. Signed-off-by: Jean Delvare Tested-by: Michel Daenzer Acked-by: Benjamin Herrenschmidt Cc: Paul Mackerras --- diff --git a/drivers/i2c/busses/i2c-powermac.c b/drivers/i2c/busses/i2c-powermac.c index 3c9d71f..a74f3ba 100644 --- a/drivers/i2c/busses/i2c-powermac.c +++ b/drivers/i2c/busses/i2c-powermac.c @@ -146,6 +146,12 @@ static int i2c_powermac_master_xfer( struct i2c_adapter *adap, int read; int addrdir; + if (num != 1) { + dev_err(&adap->dev, + "Multi-message I2C transactions not supported\n"); + return -EOPNOTSUPP; + } + if (msgs->flags & I2C_M_TEN) return -EINVAL; read = (msgs->flags & I2C_M_RD) != 0;