diff options
| -rw-r--r-- | drivers/i2c/i2c-core.c | 2 | ||||
| -rw-r--r-- | drivers/staging/media/go7007/wis-i2c.h | 5 | ||||
| -rw-r--r-- | include/linux/i2c.h | 3 | 
3 files changed, 4 insertions, 6 deletions
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index a6ad32bc0a9..361978a8485 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c @@ -2122,7 +2122,7 @@ s32 i2c_smbus_xfer(struct i2c_adapter *adapter, u16 addr, unsigned short flags,  	int try;  	s32 res; -	flags &= I2C_M_TEN | I2C_CLIENT_PEC; +	flags &= I2C_M_TEN | I2C_CLIENT_PEC | I2C_CLIENT_SCCB;  	if (adapter->algo->smbus_xfer) {  		i2c_lock_adapter(adapter); diff --git a/drivers/staging/media/go7007/wis-i2c.h b/drivers/staging/media/go7007/wis-i2c.h index 3c2b9be455d..6d09c06c856 100644 --- a/drivers/staging/media/go7007/wis-i2c.h +++ b/drivers/staging/media/go7007/wis-i2c.h @@ -25,11 +25,6 @@  #define	I2C_DRIVERID_WIS_TW2804		0xf0f6  #define	I2C_DRIVERID_S2250		0xf0f7 -/* Flag to indicate that the client needs to be accessed with SCCB semantics */ -/* We re-use the I2C_M_TEN value so the flag passes through the masks in the - * core I2C code.  Major kludge, but the I2C layer ain't exactly flexible. */ -#define	I2C_CLIENT_SCCB			0x10 -  /* Definitions for new video decoder commands */  struct video_decoder_resolution { diff --git a/include/linux/i2c.h b/include/linux/i2c.h index ddfa04108ba..1d0fe4877b1 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -425,6 +425,8 @@ void i2c_unlock_adapter(struct i2c_adapter *);  #define I2C_CLIENT_TEN	0x10		/* we have a ten bit chip address */  					/* Must equal I2C_M_TEN below */  #define I2C_CLIENT_WAKE	0x80		/* for board_info; true iff can wake */ +#define I2C_CLIENT_SCCB	0x9000		/* Use Omnivision SCCB protocol */ +					/* Must match I2C_M_STOP|IGNORE_NAK */  /* i2c adapter classes (bitmask) */  #define I2C_CLASS_HWMON		(1<<0)	/* lm_sensors, ... */ @@ -541,6 +543,7 @@ struct i2c_msg {  	__u16 flags;  #define I2C_M_TEN		0x0010	/* this is a ten bit chip address */  #define I2C_M_RD		0x0001	/* read data, from slave to master */ +#define I2C_M_STOP		0x8000	/* if I2C_FUNC_PROTOCOL_MANGLING */  #define I2C_M_NOSTART		0x4000	/* if I2C_FUNC_NOSTART */  #define I2C_M_REV_DIR_ADDR	0x2000	/* if I2C_FUNC_PROTOCOL_MANGLING */  #define I2C_M_IGNORE_NAK	0x1000	/* if I2C_FUNC_PROTOCOL_MANGLING */  |