int retval = 0; 
static void max6875_update_slice(struct i2c_client *client, int slice){	struct max6875_data *data = i2c_get_clientdata(client);	int i, j, addr;	u8 *buf;	int retval = 0;	if (slice >= USER_EEPROM_SLICES)		return;	down(&data->update_lock);	buf = &data->data[slice << SLICE_BITS];	if (!(data->valid & (1 << slice)) ||	    time_after(jiffies, data->last_updated[slice])) {		dev_dbg(&client->dev, "Starting update of slice %u\n", slice);		data->valid &= ~(1 << slice);		addr = USER_EEPROM_BASE + (slice << SLICE_BITS);		/* select the eeprom address */		if (i2c_smbus_write_byte_data(client, addr >> 8, addr & 0xFF)) {			dev_err(&client->dev, "address set failed\n");			retval = -1;			goto exit_up;		}		if (i2c_check_functionality(client->adapter,					    I2C_FUNC_SMBUS_READ_I2C_BLOCK)) {			if (i2c_smbus_read_i2c_block_data(client,							  MAX6875_CMD_BLK_READ,							  buf) != SLICE_SIZE) {				retval = -1;				goto exit_up;			}		} else {			for (i = 0; i < SLICE_SIZE; i++) {				j = i2c_smbus_read_byte(client);				if (j < 0) {					retval = -1;					goto exit_up;				}				buf[i] = j;			}		}		data->last_updated[slice] = jiffies;		data->valid |= (1 << slice);	}exit_up:	up(&data->update_lock);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/17f990c87a1e5addc49b99a53b3d2a2fac9680e9/max6875.c/clean/drivers/i2c/chips/max6875.c