for (i = slice << 5; i < (slice + 1) << 5; i += I2C_SMBUS_I2C_BLOCK_MAX) if (i2c_smbus_read_i2c_block_data(client, i, data->data + i) != I2C_SMBUS_I2C_BLOCK_MAX) 
for (i = slice << 5; i < (slice + 1) << 5; i += I2C_SMBUS_BLOCK_MAX) if (i2c_smbus_read_i2c_block_data(client, i, data->data + i) != I2C_SMBUS_BLOCK_MAX) 
static void eeprom_update_client(struct i2c_client *client, u8 slice){	struct eeprom_data *data = i2c_get_clientdata(client);	int i, j;	down(&data->update_lock);	if (!(data->valid & (1 << slice)) ||	    time_after(jiffies, data->last_updated[slice] + 300 * HZ)) {		dev_dbg(&client->dev, "Starting eeprom update, slice %u\n", slice);		if (i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_READ_I2C_BLOCK)) {			for (i = slice << 5; i < (slice + 1) << 5; i += I2C_SMBUS_I2C_BLOCK_MAX)				if (i2c_smbus_read_i2c_block_data(client, i, data->data + i) != I2C_SMBUS_I2C_BLOCK_MAX)					goto exit;		} else {			if (i2c_smbus_write_byte(client, slice << 5)) {				dev_dbg(&client->dev, "eeprom read start has failed!\n");				goto exit;			}			for (i = slice << 5; i < (slice + 1) << 5; i++) {				j = i2c_smbus_read_byte(client);				if (j < 0)					goto exit;				data->data[i] = (u8) j;			}		}		data->last_updated[slice] = jiffies;		data->valid |= (1 << slice);	}exit:	up(&data->update_lock);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/30dac7469741906436b50f9413dccd446366d371/eeprom.c/clean/drivers/i2c/chips/eeprom.c