"maximum\n", nr + 1, val, fan_from_reg(1, 0)); 
"maximum\n", nr + 1, val, fan_from_reg(1, 1)); 
store_fan_min(struct device *dev, const char *buf, size_t count, int nr){	struct i2c_client *client = to_i2c_client(dev);	struct w83627ehf_data *data = i2c_get_clientdata(client);	unsigned int val = simple_strtoul(buf, NULL, 10);	unsigned int reg;	u8 new_div;	down(&data->update_lock);	if (!val) {		/* No min limit, alarm disabled */		data->fan_min[nr] = 255;		new_div = data->fan_div[nr]; /* No change */		dev_info(dev, "fan%u low limit and alarm disabled\n", nr + 1);	} else if ((reg = 1350000U / val) >= 128 * 255) {		/* Speed below this value cannot possibly be represented,		   even with the highest divider (128) */		data->fan_min[nr] = 254;		new_div = 7; /* 128 == (1 << 7) */		dev_warn(dev, "fan%u low limit %u below minimum %u, set to "			 "minimum\n", nr + 1, val, fan_from_reg(254, 128));	} else if (!reg) {		/* Speed above this value cannot possibly be represented,		   even with the lowest divider (1) */		data->fan_min[nr] = 1;		new_div = 0; /* 1 == (1 << 0) */		dev_warn(dev, "fan%u low limit %u above maximum %u, set to "			 "maximum\n", nr + 1, val, fan_from_reg(1, 0));	} else {		/* Automatically pick the best divider, i.e. the one such		   that the min limit will correspond to a register value		   in the 96..192 range */		new_div = 0;		while (reg > 192 && new_div < 7) {			reg >>= 1;			new_div++;		}		data->fan_min[nr] = reg;	}	/* Write both the fan clock divider (if it changed) and the new	   fan min (unconditionally) */	if (new_div != data->fan_div[nr]) {		if (new_div > data->fan_div[nr])			data->fan[nr] >>= (data->fan_div[nr] - new_div);		else			data->fan[nr] <<= (new_div - data->fan_div[nr]);		dev_dbg(dev, "fan%u clock divider changed from %u to %u\n",			nr + 1, div_from_reg(data->fan_div[nr]),			div_from_reg(new_div));		data->fan_div[nr] = new_div;		w83627ehf_write_fan_div(client, nr);	}	w83627ehf_write_value(client, W83627EHF_REG_FAN_MIN[nr],			      data->fan_min[nr]);	up(&data->update_lock);	return count;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/b9110b1c893f45ec66ae39e359decdfad84525be/w83627ehf.c/buggy/drivers/i2c/chips/w83627ehf.c