Lines Matching refs:pkgdev

153 	struct pkg_device *pkgdev = tzd->devdata;  in sys_get_curr_temp()  local
156 rdmsr_on_cpu(pkgdev->cpu, MSR_IA32_PACKAGE_THERM_STATUS, &eax, &edx); in sys_get_curr_temp()
158 *temp = pkgdev->tj_max - ((eax >> 16) & 0x7f) * 1000; in sys_get_curr_temp()
168 struct pkg_device *pkgdev = tzd->devdata; in sys_get_trip_temp() local
184 ret = rdmsr_on_cpu(pkgdev->cpu, MSR_IA32_PACKAGE_THERM_INTERRUPT, in sys_get_trip_temp()
191 *temp = pkgdev->tj_max - thres_reg_value * 1000; in sys_get_trip_temp()
202 struct pkg_device *pkgdev = tzd->devdata; in sys_set_trip_temp() local
206 if (trip >= MAX_NUMBER_OF_TRIPS || temp >= pkgdev->tj_max) in sys_set_trip_temp()
209 ret = rdmsr_on_cpu(pkgdev->cpu, MSR_IA32_PACKAGE_THERM_INTERRUPT, in sys_set_trip_temp()
231 l |= (pkgdev->tj_max - temp)/1000 << shift; in sys_set_trip_temp()
235 return wrmsr_on_cpu(pkgdev->cpu, MSR_IA32_PACKAGE_THERM_INTERRUPT, l, h); in sys_set_trip_temp()
290 struct pkg_device *pkgdev; in pkg_temp_thermal_threshold_work_fn() local
297 pkgdev = pkg_temp_thermal_get_dev(cpu); in pkg_temp_thermal_threshold_work_fn()
298 if (!pkgdev) { in pkg_temp_thermal_threshold_work_fn()
303 pkgdev->work_scheduled = false; in pkg_temp_thermal_threshold_work_fn()
309 tzone = pkgdev->tzone; in pkg_temp_thermal_threshold_work_fn()
335 struct pkg_device *pkgdev; in pkg_thermal_notify() local
344 pkgdev = pkg_temp_thermal_get_dev(cpu); in pkg_thermal_notify()
345 if (pkgdev && !pkgdev->work_scheduled) { in pkg_thermal_notify()
346 pkgdev->work_scheduled = true; in pkg_thermal_notify()
347 pkg_thermal_schedule_work(pkgdev->cpu, &pkgdev->work); in pkg_thermal_notify()
358 struct pkg_device *pkgdev; in pkg_temp_thermal_device_add() local
375 pkgdev = kzalloc(sizeof(*pkgdev), GFP_KERNEL); in pkg_temp_thermal_device_add()
376 if (!pkgdev) in pkg_temp_thermal_device_add()
379 INIT_DELAYED_WORK(&pkgdev->work, pkg_temp_thermal_threshold_work_fn); in pkg_temp_thermal_device_add()
380 pkgdev->cpu = cpu; in pkg_temp_thermal_device_add()
381 pkgdev->tj_max = tj_max; in pkg_temp_thermal_device_add()
382 pkgdev->tzone = thermal_zone_device_register("x86_pkg_temp", in pkg_temp_thermal_device_add()
385 pkgdev, &tzone_ops, &pkg_temp_tz_params, 0, 0); in pkg_temp_thermal_device_add()
386 if (IS_ERR(pkgdev->tzone)) { in pkg_temp_thermal_device_add()
387 err = PTR_ERR(pkgdev->tzone); in pkg_temp_thermal_device_add()
388 kfree(pkgdev); in pkg_temp_thermal_device_add()
392 rdmsr(MSR_IA32_PACKAGE_THERM_INTERRUPT, pkgdev->msr_pkg_therm_low, in pkg_temp_thermal_device_add()
393 pkgdev->msr_pkg_therm_high); in pkg_temp_thermal_device_add()
395 cpumask_set_cpu(cpu, &pkgdev->cpumask); in pkg_temp_thermal_device_add()
397 packages[pkgid] = pkgdev; in pkg_temp_thermal_device_add()
404 struct pkg_device *pkgdev = pkg_temp_thermal_get_dev(cpu); in pkg_thermal_cpu_offline() local
408 if (!pkgdev) in pkg_thermal_cpu_offline()
411 target = cpumask_any_but(&pkgdev->cpumask, cpu); in pkg_thermal_cpu_offline()
412 cpumask_clear_cpu(cpu, &pkgdev->cpumask); in pkg_thermal_cpu_offline()
419 struct thermal_zone_device *tzone = pkgdev->tzone; in pkg_thermal_cpu_offline()
428 pkgdev->tzone = NULL; in pkg_thermal_cpu_offline()
442 was_target = pkgdev->cpu == cpu; in pkg_thermal_cpu_offline()
443 pkgdev->cpu = target; in pkg_thermal_cpu_offline()
455 pkgdev->msr_pkg_therm_low, pkgdev->msr_pkg_therm_high); in pkg_thermal_cpu_offline()
462 if (pkgdev->work_scheduled && was_target) { in pkg_thermal_cpu_offline()
468 cancel_delayed_work_sync(&pkgdev->work); in pkg_thermal_cpu_offline()
476 if (!lastcpu && pkgdev->work_scheduled) in pkg_thermal_cpu_offline()
477 pkg_thermal_schedule_work(target, &pkgdev->work); in pkg_thermal_cpu_offline()
484 kfree(pkgdev); in pkg_thermal_cpu_offline()
490 struct pkg_device *pkgdev = pkg_temp_thermal_get_dev(cpu); in pkg_thermal_cpu_online() local
498 if (pkgdev) { in pkg_thermal_cpu_online()
499 cpumask_set_cpu(cpu, &pkgdev->cpumask); in pkg_thermal_cpu_online()