static ssize_t atxp1_storevcore(struct device *dev, const char* buf, size_t count) 
static ssize_t atxp1_storevcore(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) 
static ssize_t atxp1_storevcore(struct device *dev, const char* buf, size_t count){	struct atxp1_data *data;	struct i2c_client *client;	char vid;	char cvid;	unsigned int vcore;	client = to_i2c_client(dev);	data = atxp1_update_device(dev);	vcore = simple_strtoul(buf, NULL, 10);	vcore /= 25;	vcore *= 25;	/* Calculate VID */	vid = vid_to_reg(vcore, data->vrm);	if (vid < 0) {		dev_err(dev, "VID calculation failed.\n");		return -1;	}	/* If output enabled, use control register value. Otherwise original CPU VID */	if (data->reg.vid & ATXP1_VIDENA)		cvid = data->reg.vid & ATXP1_VIDMASK;	else		cvid = data->reg.cpu_vid;	/* Nothing changed, aborting */	if (vid == cvid)		return count;	dev_info(dev, "Setting VCore to %d mV (0x%02x)\n", vcore, vid);	/* Write every 25 mV step to increase stability */	if (cvid > vid) {		for (; cvid >= vid; cvid--) {        		i2c_smbus_write_byte_data(client, ATXP1_VID, cvid | ATXP1_VIDENA);		}	}	else {		for (; cvid <= vid; cvid++) {        		i2c_smbus_write_byte_data(client, ATXP1_VID, cvid | ATXP1_VIDENA);		}	}	data->valid = 0;	return count;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/6f637a6494a1872c613fe68f64ea4831c3e5b037/atxp1.c/clean/drivers/i2c/chips/atxp1.c