aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/i2c/i2c-core.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
index 2421d95130d..a7edf987a33 100644
--- a/drivers/i2c/i2c-core.c
+++ b/drivers/i2c/i2c-core.c
@@ -1989,12 +1989,22 @@ static s32 i2c_smbus_xfer_emulated(struct i2c_adapter *adapter, u16 addr,
1989 unsigned char msgbuf0[I2C_SMBUS_BLOCK_MAX+3]; 1989 unsigned char msgbuf0[I2C_SMBUS_BLOCK_MAX+3];
1990 unsigned char msgbuf1[I2C_SMBUS_BLOCK_MAX+2]; 1990 unsigned char msgbuf1[I2C_SMBUS_BLOCK_MAX+2];
1991 int num = read_write == I2C_SMBUS_READ ? 2 : 1; 1991 int num = read_write == I2C_SMBUS_READ ? 2 : 1;
1992 struct i2c_msg msg[2] = { { addr, flags, 1, msgbuf0 },
1993 { addr, flags | I2C_M_RD, 0, msgbuf1 }
1994 };
1995 int i; 1992 int i;
1996 u8 partial_pec = 0; 1993 u8 partial_pec = 0;
1997 int status; 1994 int status;
1995 struct i2c_msg msg[2] = {
1996 {
1997 .addr = addr,
1998 .flags = flags,
1999 .len = 1,
2000 .buf = msgbuf0,
2001 }, {
2002 .addr = addr,
2003 .flags = flags | I2C_M_RD,
2004 .len = 0,
2005 .buf = msgbuf1,
2006 },
2007 };
1998 2008
1999 msgbuf0[0] = command; 2009 msgbuf0[0] = command;
2000 switch (size) { 2010 switch (size) {