Lines Matching refs:data
48 /* offsets in data string */
67 /* offsets in fan data */
130 static int pem_read_block(struct i2c_client *client, u8 command, u8 *data,
143 memcpy(data, block_buffer, data_len);
151 struct pem_data *data = dev_get_drvdata(dev);
152 struct i2c_client *client = data->client;
153 struct pem_data *ret = data;
155 mutex_lock(&data->update_lock);
157 if (time_after(jiffies, data->last_updated + HZ) || !data->valid) {
160 /* Read data string */
162 data->data_string,
163 sizeof(data->data_string));
170 if (data->input_length) {
172 data->input_string,
173 data->input_length);
181 if (data->fans_supported) {
183 data->fan_speed,
184 sizeof(data->fan_speed));
193 data->last_updated = jiffies;
194 data->valid = true;
197 mutex_unlock(&data->update_lock);
201 static long pem_get_data(u8 *data, int len, int index)
207 val = (data[index] + (data[index+1] << 8)) * 5 / 2;
210 val = data[index] * 200;
213 val = data[index] * 1000;
228 static long pem_get_input(u8 *data, int len, int index)
235 val = (data[index] + (data[index+1] << 8) - 75) * 1000;
237 val = (data[index] - 75) * 1000;
242 val = (data[index] + (data[index+1] << 8)) * 1000000L;
251 static long pem_get_fan(u8 *data, int len, int index)
259 val = data[index] * 100;
276 struct pem_data *data = pem_update_device(dev);
279 if (IS_ERR(data))
280 return PTR_ERR(data);
282 status = data->data_string[attr->nr] & attr->index;
290 struct pem_data *data = pem_update_device(dev);
293 if (IS_ERR(data))
294 return PTR_ERR(data);
296 value = pem_get_data(data->data_string, sizeof(data->data_string),
306 struct pem_data *data = pem_update_device(dev);
309 if (IS_ERR(data))
310 return PTR_ERR(data);
312 value = pem_get_input(data->input_string, sizeof(data->input_string),
322 struct pem_data *data = pem_update_device(dev);
325 if (IS_ERR(data))
326 return PTR_ERR(data);
328 value = pem_get_fan(data->fan_speed, sizeof(data->fan_speed),
425 struct pem_data *data;
432 data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
433 if (!data)
436 data->client = client;
437 mutex_init(&data->update_lock);
444 data->firmware_rev, sizeof(data->firmware_rev));
453 data->firmware_rev[0], data->firmware_rev[1],
454 data->firmware_rev[2]);
457 data->groups[idx++] = &pem_group;
461 * This is the case if we can read input data,
462 * and if the returned data is not all zeros.
466 data->input_string,
467 sizeof(data->input_string) - 1);
468 if (!ret && (data->input_string[0] || data->input_string[1] ||
469 data->input_string[2]))
470 data->input_length = sizeof(data->input_string) - 1;
474 data->input_string,
475 sizeof(data->input_string));
476 if (!ret && (data->input_string[0] || data->input_string[1] ||
477 data->input_string[2] || data->input_string[3]))
478 data->input_length = sizeof(data->input_string);
481 if (data->input_length)
482 data->groups[idx++] = &pem_input_group;
486 * This is the case if we can read fan speed data,
487 * and if the returned data is not all zeros.
491 data->fan_speed,
492 sizeof(data->fan_speed));
493 if (!ret && (data->fan_speed[0] || data->fan_speed[1] ||
494 data->fan_speed[2] || data->fan_speed[3])) {
495 data->fans_supported = true;
496 data->groups[idx++] = &pem_fan_group;
500 data, data->groups);