acpi_thermal.c (82c28121f770ff4f9c928b3804b9d8b9e25a2d49) acpi_thermal.c (3e68d2c52b4e4b0aafce2c7f6bcb8f063c6a8d55)
1/*-
2 * Copyright (c) 2000, 2001 Michael Smith
3 * Copyright (c) 2000 BSDi
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 249 unchanged lines hidden (view full) ---

258 "allow override of thermal settings");
259 }
260 sysctl_ctx_init(&sc->tz_sysctl_ctx);
261 sprintf(oidname, "tz%d", device_get_unit(dev));
262 sc->tz_sysctl_tree = SYSCTL_ADD_NODE_WITH_LABEL(&sc->tz_sysctl_ctx,
263 SYSCTL_CHILDREN(acpi_tz_sysctl_tree), OID_AUTO, oidname,
264 CTLFLAG_RD | CTLFLAG_MPSAFE, 0, "", "thermal_zone");
265 SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree),
1/*-
2 * Copyright (c) 2000, 2001 Michael Smith
3 * Copyright (c) 2000 BSDi
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 249 unchanged lines hidden (view full) ---

258 "allow override of thermal settings");
259 }
260 sysctl_ctx_init(&sc->tz_sysctl_ctx);
261 sprintf(oidname, "tz%d", device_get_unit(dev));
262 sc->tz_sysctl_tree = SYSCTL_ADD_NODE_WITH_LABEL(&sc->tz_sysctl_ctx,
263 SYSCTL_CHILDREN(acpi_tz_sysctl_tree), OID_AUTO, oidname,
264 CTLFLAG_RD | CTLFLAG_MPSAFE, 0, "", "thermal_zone");
265 SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree),
266 OID_AUTO, "temperature", CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT,
266 OID_AUTO, "temperature", CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_MPSAFE,
267 &sc->tz_temperature, 0, sysctl_handle_int, "IK",
268 "current thermal zone temperature");
269 SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree),
267 &sc->tz_temperature, 0, sysctl_handle_int, "IK",
268 "current thermal zone temperature");
269 SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree),
270 OID_AUTO, "active", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc,
270 OID_AUTO, "active", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, sc,
271 0, acpi_tz_active_sysctl, "I", "cooling is active");
272 SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree),
273 OID_AUTO, "passive_cooling",
271 0, acpi_tz_active_sysctl, "I", "cooling is active");
272 SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree),
273 OID_AUTO, "passive_cooling",
274 CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0,
274 CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, sc, 0,
275 acpi_tz_cooling_sysctl, "I",
276 "enable passive (speed reduction) cooling");
277
278 SYSCTL_ADD_INT(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree),
279 OID_AUTO, "thermal_flags", CTLFLAG_RD,
280 &sc->tz_thflags, 0, "thermal zone flags");
281 SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree),
275 acpi_tz_cooling_sysctl, "I",
276 "enable passive (speed reduction) cooling");
277
278 SYSCTL_ADD_INT(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree),
279 OID_AUTO, "thermal_flags", CTLFLAG_RD,
280 &sc->tz_thflags, 0, "thermal zone flags");
281 SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree),
282 OID_AUTO, "_PSV", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc,
282 OID_AUTO, "_PSV", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, sc,
283 offsetof(struct acpi_tz_softc, tz_zone.psv), acpi_tz_temp_sysctl, "IK",
284 "passive cooling temp setpoint");
285 SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree),
283 offsetof(struct acpi_tz_softc, tz_zone.psv), acpi_tz_temp_sysctl, "IK",
284 "passive cooling temp setpoint");
285 SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree),
286 OID_AUTO, "_HOT", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc,
286 OID_AUTO, "_HOT", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, sc,
287 offsetof(struct acpi_tz_softc, tz_zone.hot), acpi_tz_temp_sysctl, "IK",
288 "too hot temp setpoint (suspend now)");
289 SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree),
287 offsetof(struct acpi_tz_softc, tz_zone.hot), acpi_tz_temp_sysctl, "IK",
288 "too hot temp setpoint (suspend now)");
289 SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree),
290 OID_AUTO, "_CRT", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc,
290 OID_AUTO, "_CRT", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, sc,
291 offsetof(struct acpi_tz_softc, tz_zone.crt), acpi_tz_temp_sysctl, "IK",
292 "critical temp setpoint (shutdown now)");
293 SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree),
291 offsetof(struct acpi_tz_softc, tz_zone.crt), acpi_tz_temp_sysctl, "IK",
292 "critical temp setpoint (shutdown now)");
293 SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree),
294 OID_AUTO, "_ACx", CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT,
294 OID_AUTO, "_ACx", CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_MPSAFE,
295 &sc->tz_zone.ac, sizeof(sc->tz_zone.ac), sysctl_handle_opaque, "IK",
296 "");
297 SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree),
295 &sc->tz_zone.ac, sizeof(sc->tz_zone.ac), sysctl_handle_opaque, "IK",
296 "");
297 SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree),
298 OID_AUTO, "_TC1", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc,
298 OID_AUTO, "_TC1", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, sc,
299 offsetof(struct acpi_tz_softc, tz_zone.tc1), acpi_tz_passive_sysctl,
300 "I", "thermal constant 1 for passive cooling");
301 SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree),
299 offsetof(struct acpi_tz_softc, tz_zone.tc1), acpi_tz_passive_sysctl,
300 "I", "thermal constant 1 for passive cooling");
301 SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree),
302 OID_AUTO, "_TC2", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc,
302 OID_AUTO, "_TC2", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, sc,
303 offsetof(struct acpi_tz_softc, tz_zone.tc2), acpi_tz_passive_sysctl,
304 "I", "thermal constant 2 for passive cooling");
305 SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree),
303 offsetof(struct acpi_tz_softc, tz_zone.tc2), acpi_tz_passive_sysctl,
304 "I", "thermal constant 2 for passive cooling");
305 SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree),
306 OID_AUTO, "_TSP", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc,
306 OID_AUTO, "_TSP", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, sc,
307 offsetof(struct acpi_tz_softc, tz_zone.tsp), acpi_tz_passive_sysctl,
308 "I", "thermal sampling period for passive cooling");
309
310 /*
311 * Register our power profile event handler.
312 */
313 sc->tz_event = EVENTHANDLER_REGISTER(power_profile_change,
314 acpi_tz_power_profile, sc, 0);

--- 906 unchanged lines hidden ---
307 offsetof(struct acpi_tz_softc, tz_zone.tsp), acpi_tz_passive_sysctl,
308 "I", "thermal sampling period for passive cooling");
309
310 /*
311 * Register our power profile event handler.
312 */
313 sc->tz_event = EVENTHANDLER_REGISTER(power_profile_change,
314 acpi_tz_power_profile, sc, 0);

--- 906 unchanged lines hidden ---