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