Lines Matching defs:tzp

80 static void tzmon_discard_buffers(thermal_zone_t *tzp);
81 static void tzmon_enumerate_zone(ACPI_HANDLE obj, thermal_zone_t *tzp,
89 static void tzmon_eval_zone(thermal_zone_t *tzp);
247 thermal_zone_t *tzp = zone_list;
253 while (tzp != NULL) {
254 AcpiOsFree(tzp->zone_name);
255 tzp = tzp->next;
278 thermal_zone_t *tzp = (thermal_zone_t *)ctx;
282 tzmon_eval_zone(tzp);
285 tzmon_enumerate_zone(obj, tzp, TZMON_ENUM_TRIP_POINTS);
288 tzmon_enumerate_zone(obj, tzp, TZMON_ENUM_DEV_LISTS);
292 DTRACE_PROBE1(trt__change, char *, (char *)tzp->zone_name);
320 thermal_zone_t *tzp;
322 tzp = kmem_zalloc(sizeof (thermal_zone_t), KM_SLEEP);
323 mutex_init(&tzp->lock, NULL, MUTEX_DRIVER, NULL);
325 return (tzp);
336 thermal_zone_t *tzp = zone_list;
338 while (tzp != NULL) {
341 mutex_enter(&tzp->lock);
348 (void) AcpiRemoveNotifyHandler(tzp->obj, ACPI_DEVICE_NOTIFY,
352 if (tzp->taskq != NULL) {
353 tzp->polling_period = 0;
357 mutex_exit(&tzp->lock);
358 ddi_taskq_destroy(tzp->taskq);
359 mutex_enter(&tzp->lock);
362 tzmon_discard_buffers(tzp);
363 mutex_exit(&tzp->lock);
364 mutex_destroy(&tzp->lock);
366 next = tzp->next;
367 kmem_free(tzp, sizeof (thermal_zone_t));
368 tzp = next;
374 tzmon_discard_buffers(thermal_zone_t *tzp)
379 if (tzp->al[level].Pointer != NULL)
380 AcpiOsFree(tzp->al[level].Pointer);
383 if (tzp->psl.Pointer != NULL)
384 AcpiOsFree(tzp->psl.Pointer);
391 * thermal_zone or creates a new one if tzp is NULL. Newly-created
395 tzmon_enumerate_zone(ACPI_HANDLE obj, thermal_zone_t *tzp, int enum_flag)
407 if (tzp == NULL) {
409 tzp = tzmon_alloc_zone();
411 tzp->next = zone_list;
412 zone_list = tzp;
422 mutex_enter(&tzp->lock);
423 tzp->obj = obj;
430 tzp->current_level = 0;
439 tzp->zone_name = zone_name.Pointer;
442 tzmon_notify_zone, (void *)tzp);
446 mutex_enter(&tzp->lock);
447 ASSERT(tzp->obj == obj);
450 tzmon_discard_buffers(tzp);
456 tzmon_eval_int(obj, abuf, &tzp->ac[level]);
460 tzmon_eval_int(obj, "_CRT", &tzp->crt);
461 tzmon_eval_int(obj, "_HOT", &tzp->hot);
462 tzmon_eval_int(obj, "_PSV", &tzp->psv);
467 if (tzp->ac[level] == -1) {
468 tzp->al[level].Length = 0;
469 tzp->al[level].Pointer = NULL;
472 tzp->al[level].Length = ACPI_ALLOCATE_BUFFER;
473 tzp->al[level].Pointer = NULL;
475 &tzp->al[level], ACPI_TYPE_PACKAGE) !=
478 char *, (char *)tzp->zone_name);
480 tzp->al[level].Length = 0;
481 tzp->al[level].Pointer = NULL;
486 tzp->psl.Length = ACPI_ALLOCATE_BUFFER;
487 tzp->psl.Pointer = NULL;
488 (void) AcpiEvaluateObjectTyped(obj, "_PSL", NULL, &tzp->psl,
492 tzmon_eval_int(obj, "_TC1", &tzp->tc1);
493 tzmon_eval_int(obj, "_TC2", &tzp->tc2);
494 tzmon_eval_int(obj, "_TSP", &tzp->tsp);
495 tzmon_eval_int(obj, "_TZP", &tzp->tzp);
497 if (tzp->tzp == 0) {
498 tzp->polling_period = 0;
500 if (tzp->tzp < 0)
501 tzp->polling_period = TZ_DEFAULT_PERIOD;
503 tzp->polling_period = tzp->tzp/10;
506 if (tzp->taskq == NULL) {
511 tzp->taskq = ddi_taskq_create(tzmon_dip,
513 if (tzp->taskq == NULL) {
514 tzp->polling_period = 0;
518 (char *)tzp->zone_name);
520 (void) ddi_taskq_dispatch(tzp->taskq,
521 tzmon_monitor, tzp, DDI_SLEEP);
526 mutex_exit(&tzp->lock);
582 thermal_zone_t *tzp = (thermal_zone_t *)ctx;
587 tzmon_eval_zone(tzp);
590 mutex_enter(&tzp->lock);
591 ticks = drv_usectohz(tzp->polling_period * 1000000);
594 &tzp->lock, ticks, TR_CLOCK_TICK);
595 mutex_exit(&tzp->lock);
662 tzmon_eval_zone(thermal_zone_t *tzp)
666 mutex_enter(&tzp->lock);
669 tzmon_eval_int(tzp->obj, "_TMP", &tmp);
670 DTRACE_PROBE4(tz__temp, int, tmp, int, tzp->crt, int, tzp->hot,
671 char *, (char *)tzp->zone_name);
674 if (tzp->hot > 0 && tmp >= tzp->hot) {
678 (char *)tzp->zone_name, K_TO_C(tmp));
684 if (tzp->crt > 0 && tmp >= tzp->crt) {
688 (char *)tzp->zone_name, K_TO_C(tmp));
699 if (tzp->ac[level] >= 0 && (tmp >= tzp->ac[level])) {
709 if (tzp->current_level != new_level) {
710 if ((tzp->current_level >= 0) &&
711 (tzp->al[tzp->current_level].Length != 0))
712 tzmon_set_power(tzp->al[tzp->current_level], 0,
713 (char *)tzp->zone_name);
716 (tzp->al[new_level].Length != 0))
717 tzmon_set_power(tzp->al[new_level], 1,
718 (char *)tzp->zone_name);
720 tzp->current_level = new_level;
723 mutex_exit(&tzp->lock);