Lines Matching refs:tdata
108 struct temp_data *tdata = pdata->core_data[attr->index]; in show_label() local
110 if (tdata->is_pkg_data) in show_label()
113 return sprintf(buf, "Core %u\n", tdata->cpu_core_id); in show_label()
122 struct temp_data *tdata = pdata->core_data[attr->index]; in show_crit_alarm() local
124 mutex_lock(&tdata->update_lock); in show_crit_alarm()
125 rdmsr_on_cpu(tdata->cpu, tdata->status_reg, &eax, &edx); in show_crit_alarm()
126 mutex_unlock(&tdata->update_lock); in show_crit_alarm()
155 struct temp_data *tdata = pdata->core_data[attr->index]; in show_temp() local
157 mutex_lock(&tdata->update_lock); in show_temp()
160 if (!tdata->valid || time_after(jiffies, tdata->last_updated + HZ)) { in show_temp()
161 rdmsr_on_cpu(tdata->cpu, tdata->status_reg, &eax, &edx); in show_temp()
168 tdata->temp = tdata->tjmax - ((eax >> 16) & 0x7f) * 1000; in show_temp()
169 tdata->valid = 1; in show_temp()
170 tdata->last_updated = jiffies; in show_temp()
173 mutex_unlock(&tdata->update_lock); in show_temp()
174 return sprintf(buf, "%d\n", tdata->temp); in show_temp()
382 static int create_core_attrs(struct temp_data *tdata, struct device *dev, in create_core_attrs() argument
394 for (i = 0; i < tdata->attr_size; i++) { in create_core_attrs()
395 snprintf(tdata->attr_name[i], CORETEMP_NAME_LENGTH, in create_core_attrs()
397 sysfs_attr_init(&tdata->sd_attrs[i].dev_attr.attr); in create_core_attrs()
398 tdata->sd_attrs[i].dev_attr.attr.name = tdata->attr_name[i]; in create_core_attrs()
399 tdata->sd_attrs[i].dev_attr.attr.mode = 0444; in create_core_attrs()
400 tdata->sd_attrs[i].dev_attr.show = rd_ptr[i]; in create_core_attrs()
401 tdata->sd_attrs[i].index = attr_no; in create_core_attrs()
402 tdata->attrs[i] = &tdata->sd_attrs[i].dev_attr.attr; in create_core_attrs()
404 tdata->attr_group.attrs = tdata->attrs; in create_core_attrs()
405 return sysfs_create_group(&dev->kobj, &tdata->attr_group); in create_core_attrs()
436 struct temp_data *tdata; in init_temp_data() local
438 tdata = kzalloc(sizeof(struct temp_data), GFP_KERNEL); in init_temp_data()
439 if (!tdata) in init_temp_data()
442 tdata->status_reg = pkg_flag ? MSR_IA32_PACKAGE_THERM_STATUS : in init_temp_data()
444 tdata->is_pkg_data = pkg_flag; in init_temp_data()
445 tdata->cpu = cpu; in init_temp_data()
446 tdata->cpu_core_id = topology_core_id(cpu); in init_temp_data()
447 tdata->attr_size = MAX_CORE_ATTRS; in init_temp_data()
448 mutex_init(&tdata->update_lock); in init_temp_data()
449 return tdata; in init_temp_data()
455 struct temp_data *tdata; in create_core_data() local
482 tdata = init_temp_data(cpu, pkg_flag); in create_core_data()
483 if (!tdata) { in create_core_data()
489 err = rdmsr_safe_on_cpu(cpu, tdata->status_reg, &eax, &edx); in create_core_data()
494 tdata->tjmax = get_tjmax(c, cpu, &pdev->dev); in create_core_data()
505 tdata->ttarget in create_core_data()
506 = tdata->tjmax - ((eax >> 8) & 0xff) * 1000; in create_core_data()
507 tdata->attr_size++; in create_core_data()
511 pdata->core_data[attr_no] = tdata; in create_core_data()
514 err = create_core_attrs(tdata, pdata->hwmon_dev, attr_no); in create_core_data()
521 kfree(tdata); in create_core_data()
537 struct temp_data *tdata = pdata->core_data[indx]; in coretemp_remove_core() local
540 if (!tdata) in coretemp_remove_core()
544 sysfs_remove_group(&pdata->hwmon_dev->kobj, &tdata->attr_group); in coretemp_remove_core()
675 struct temp_data *tdata; in coretemp_cpu_offline() local
702 tdata = pd->core_data[indx]; in coretemp_cpu_offline()
714 } else if (tdata && tdata->cpu == cpu) { in coretemp_cpu_offline()
715 mutex_lock(&tdata->update_lock); in coretemp_cpu_offline()
716 tdata->cpu = target; in coretemp_cpu_offline()
717 mutex_unlock(&tdata->update_lock); in coretemp_cpu_offline()
735 tdata = pd->core_data[PKG_SYSFS_ATTR_NO]; in coretemp_cpu_offline()
736 if (tdata && tdata->cpu == cpu) { in coretemp_cpu_offline()
738 mutex_lock(&tdata->update_lock); in coretemp_cpu_offline()
739 tdata->cpu = target; in coretemp_cpu_offline()
740 mutex_unlock(&tdata->update_lock); in coretemp_cpu_offline()