Lines Matching refs:tdata
108 struct temp_data *tdata = pdata->core_data[attr->index];
110 if (tdata->is_pkg_data)
113 return sprintf(buf, "Core %u\n", tdata->cpu_core_id);
122 struct temp_data *tdata = pdata->core_data[attr->index];
124 mutex_lock(&tdata->update_lock);
125 rdmsr_on_cpu(tdata->cpu, tdata->status_reg, &eax, &edx);
126 mutex_unlock(&tdata->update_lock);
155 struct temp_data *tdata = pdata->core_data[attr->index];
157 mutex_lock(&tdata->update_lock);
160 if (!tdata->valid || time_after(jiffies, tdata->last_updated + HZ)) {
161 rdmsr_on_cpu(tdata->cpu, tdata->status_reg, &eax, &edx);
168 tdata->temp = tdata->tjmax - ((eax >> 16) & 0x7f) * 1000;
169 tdata->valid = 1;
170 tdata->last_updated = jiffies;
173 mutex_unlock(&tdata->update_lock);
174 return sprintf(buf, "%d\n", tdata->temp);
382 static int create_core_attrs(struct temp_data *tdata, struct device *dev,
394 for (i = 0; i < tdata->attr_size; i++) {
400 int attr_no = tdata->is_pkg_data ? 1 : tdata->cpu_core_id + 2;
402 snprintf(tdata->attr_name[i], CORETEMP_NAME_LENGTH,
404 sysfs_attr_init(&tdata->sd_attrs[i].dev_attr.attr);
405 tdata->sd_attrs[i].dev_attr.attr.name = tdata->attr_name[i];
406 tdata->sd_attrs[i].dev_attr.attr.mode = 0444;
407 tdata->sd_attrs[i].dev_attr.show = rd_ptr[i];
408 tdata->sd_attrs[i].index = index;
409 tdata->attrs[i] = &tdata->sd_attrs[i].dev_attr.attr;
411 tdata->attr_group.attrs = tdata->attrs;
412 return sysfs_create_group(&dev->kobj, &tdata->attr_group);
443 struct temp_data *tdata;
445 tdata = kzalloc(sizeof(struct temp_data), GFP_KERNEL);
446 if (!tdata)
449 tdata->status_reg = pkg_flag ? MSR_IA32_PACKAGE_THERM_STATUS :
451 tdata->is_pkg_data = pkg_flag;
452 tdata->cpu = cpu;
453 tdata->cpu_core_id = topology_core_id(cpu);
454 tdata->attr_size = MAX_CORE_ATTRS;
455 mutex_init(&tdata->update_lock);
456 return tdata;
462 struct temp_data *tdata;
469 * Get the index of tdata in pdata->core_data[]
470 * tdata for package: pdata->core_data[1]
471 * tdata for core: pdata->core_data[2] .. pdata->core_data[NUM_REAL_CORES + 1]
484 tdata = init_temp_data(cpu, pkg_flag);
485 if (!tdata) {
491 err = rdmsr_safe_on_cpu(cpu, tdata->status_reg, &eax, &edx);
496 tdata->tjmax = get_tjmax(c, cpu, &pdev->dev);
507 tdata->ttarget
508 = tdata->tjmax - ((eax >> 8) & 0xff) * 1000;
509 tdata->attr_size++;
513 pdata->core_data[index] = tdata;
516 err = create_core_attrs(tdata, pdata->hwmon_dev, index);
523 kfree(tdata);
539 struct temp_data *tdata = pdata->core_data[indx];
542 if (!tdata)
546 sysfs_remove_group(&pdata->hwmon_dev->kobj, &tdata->attr_group);
664 struct temp_data *tdata;
687 tdata = pd->core_data[indx];
699 } else if (tdata && tdata->cpu == cpu) {
700 mutex_lock(&tdata->update_lock);
701 tdata->cpu = target;
702 mutex_unlock(&tdata->update_lock);
708 tdata = pd->core_data[PKG_SYSFS_ATTR_NO];
710 if (tdata)
721 if (tdata && tdata->cpu == cpu) {
723 mutex_lock(&tdata->update_lock);
724 tdata->cpu = target;
725 mutex_unlock(&tdata->update_lock);