Lines Matching refs:data

115 static u8 amb_read_byte(struct i5k_amb_data *data, unsigned long offset)
117 return ioread8(data->amb_mmio + offset);
120 static void amb_write_byte(struct i5k_amb_data *data, unsigned long offset,
123 iowrite8(val, data->amb_mmio + offset);
131 struct i5k_amb_data *data = dev_get_drvdata(dev);
133 if (!(amb_read_byte(data, amb_reg_temp_status(attr->index)) & 0x20) &&
134 (amb_read_byte(data, amb_reg_temp_status(attr->index)) & 0x8))
146 struct i5k_amb_data *data = dev_get_drvdata(dev);
156 amb_write_byte(data, amb_reg_temp_min(attr->index), temp);
166 struct i5k_amb_data *data = dev_get_drvdata(dev);
176 amb_write_byte(data, amb_reg_temp_mid(attr->index), temp);
186 struct i5k_amb_data *data = dev_get_drvdata(dev);
196 amb_write_byte(data, amb_reg_temp_max(attr->index), temp);
205 struct i5k_amb_data *data = dev_get_drvdata(dev);
207 500 * amb_read_byte(data, amb_reg_temp_min(attr->index)));
215 struct i5k_amb_data *data = dev_get_drvdata(dev);
217 500 * amb_read_byte(data, amb_reg_temp_mid(attr->index)));
225 struct i5k_amb_data *data = dev_get_drvdata(dev);
227 500 * amb_read_byte(data, amb_reg_temp_max(attr->index)));
235 struct i5k_amb_data *data = dev_get_drvdata(dev);
237 500 * amb_read_byte(data, amb_reg_temp(attr->index)));
256 struct i5k_amb_data *data = platform_get_drvdata(pdev);
261 num_ambs += hweight16(data->amb_present[i] & 0x7fff);
264 data->attrs = kzalloc(array3_size(num_ambs, KNOBS_PER_AMB,
265 sizeof(*data->attrs)),
267 if (!data->attrs)
269 data->num_attrs = 0;
272 c = data->amb_present[i];
282 iattr = data->attrs + data->num_attrs;
294 data->num_attrs++;
297 iattr = data->attrs + data->num_attrs;
309 data->num_attrs++;
312 iattr = data->attrs + data->num_attrs;
325 data->num_attrs++;
328 iattr = data->attrs + data->num_attrs;
341 data->num_attrs++;
344 iattr = data->attrs + data->num_attrs;
357 data->num_attrs++;
360 iattr = data->attrs + data->num_attrs;
372 data->num_attrs++;
380 data->hwmon_dev = hwmon_device_register(&pdev->dev);
381 if (IS_ERR(data->hwmon_dev)) {
382 res = PTR_ERR(data->hwmon_dev);
390 for (i = 0; i < data->num_attrs; i++)
391 device_remove_file(&pdev->dev, &data->attrs[i].s_attr.dev_attr);
392 kfree(data->attrs);
416 static int i5k_find_amb_registers(struct i5k_amb_data *data,
433 data->amb_base = val32;
438 data->amb_len = val32;
441 if (data->amb_len < AMB_CONFIG_SIZE * MAX_AMBS) {
500 struct i5k_amb_data *data;
504 data = kzalloc(sizeof(*data), GFP_KERNEL);
505 if (!data)
511 res = i5k_find_amb_registers(data, chipset_ids[i].err);
521 res = i5k_channel_probe(&data->amb_present[0], chipset_ids[i].fbd0);
526 i5k_channel_probe(&data->amb_present[2], chipset_ids[i].fbd0 + 1);
529 reso = request_mem_region(data->amb_base, data->amb_len, DRVNAME);
535 data->amb_mmio = ioremap(data->amb_base, data->amb_len);
536 if (!data->amb_mmio) {
541 platform_set_drvdata(pdev, data);
550 iounmap(data->amb_mmio);
552 release_mem_region(data->amb_base, data->amb_len);
554 kfree(data);
561 struct i5k_amb_data *data = platform_get_drvdata(pdev);
563 hwmon_device_unregister(data->hwmon_dev);
565 for (i = 0; i < data->num_attrs; i++)
566 device_remove_file(&pdev->dev, &data->attrs[i].s_attr.dev_attr);
567 kfree(data->attrs);
568 iounmap(data->amb_mmio);
569 release_mem_region(data->amb_base, data->amb_len);
570 kfree(data);