Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/acpi Some purely cosmetic editing in the name of rea...



details:   https://anonhg.NetBSD.org/src/rev/4f873c25a81a
branches:  trunk
changeset: 754240:4f873c25a81a
user:      jruoho <jruoho%NetBSD.org@localhost>
date:      Sat Apr 24 19:11:48 2010 +0000

description:
Some purely cosmetic editing in the name of readability: clean up the softc
and remove unused variables therein, remove unused constants, use
ACPI_DEBUG_PRINT, add more detailed comments, et cetera.

diffstat:

 sys/dev/acpi/acpi_tz.c |  536 ++++++++++++++++++++++++------------------------
 1 files changed, 263 insertions(+), 273 deletions(-)

diffs (truncated from 849 to 300 lines):

diff -r 5dbc1dce8be8 -r 4f873c25a81a sys/dev/acpi/acpi_tz.c
--- a/sys/dev/acpi/acpi_tz.c    Sat Apr 24 17:58:40 2010 +0000
+++ b/sys/dev/acpi/acpi_tz.c    Sat Apr 24 19:11:48 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: acpi_tz.c,v 1.68 2010/04/24 06:31:44 jruoho Exp $ */
+/* $NetBSD: acpi_tz.c,v 1.69 2010/04/24 19:11:48 jruoho Exp $ */
 
 /*
  * Copyright (c) 2003 Jared D. McNeill <jmcneill%invisible.ca@localhost>
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: acpi_tz.c,v 1.68 2010/04/24 06:31:44 jruoho Exp $");
+__KERNEL_RCSID(0, "$NetBSD: acpi_tz.c,v 1.69 2010/04/24 19:11:48 jruoho Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -42,110 +42,92 @@
 #include <dev/acpi/acpivar.h>
 #include <dev/acpi/acpi_power.h>
 
-#define _COMPONENT          ACPI_TZ_COMPONENT
-ACPI_MODULE_NAME            ("acpi_tz")
-
-/* flags */
-#define ATZ_F_VERBOSE          0x01    /* show events to console */
-#define ATZ_F_CRITICAL         0x02    /* zone critical */
-#define ATZ_F_HOT              0x04    /* zone hot */
-#define ATZ_F_PASSIVE          0x08    /* zone passive cooling */
-#define ATZ_F_PASSIVEONLY      0x10    /* zone is passive cooling only */
+#define _COMPONENT             ACPI_TZ_COMPONENT
+ACPI_MODULE_NAME               ("acpi_tz")
 
-/* no active cooling level */
-#define ATZ_ACTIVE_NONE -1
+#define ATZ_F_CRITICAL         0x01    /* zone critical */
+#define ATZ_F_HOT              0x02    /* zone hot */
+#define ATZ_F_PASSIVE          0x04    /* zone passive cooling */
+#define ATZ_F_PASSIVEONLY      0x08    /* zone is passive cooling only */
 
-/* constants */
-#define ATZ_TZP_RATE   300     /* default if no _TZP CM present (30 secs) */
-#define ATZ_NLEVELS    10      /* number of cooling levels, from ACPI spec */
-#define ATZ_ZEROC      2732    /* 0C, measured in 0.1 Kelvin */
-#define ATZ_TMP_INVALID        0xffffffff      /* invalid temperature */
-#define ATZ_ZONE_EXPIRE        9000    /* zone info refetch interval (15min) */
-
-/* sensor indexes */
-#define ATZ_SENSOR_TEMP        0       /* thermal zone temperature */
+#define ATZ_ACTIVE_NONE                  -1
 
 /*
- * ACPI Temperature Zone information. Note all temperatures are reported
- * in 0.1 Kelvin, and that the ACPI specification assumes that
- * K = C + 273.2 rather than the nominal 273.15 used by envsys(4).
- * So define an appropriate conversion.
+ * The constants are as follows:
+ *
+ *   ATZ_TZP_RATE      default polling interval (30 seconds) if no _TZP
+ *   ATZ_NLEVELS       number of cooling levels for _ACx and _ALx
+ *   ATZ_ZEROC         0 C, measured in 0.1 Kelvin
+ *   ATZ_TMP_INVALID   temporarily invalid temperature
+ *   ATZ_ZONE_EXPIRE   zone info refetch interval (15 minutes)
  */
+#define ATZ_TZP_RATE           300
+#define ATZ_NLEVELS            10
+#define ATZ_ZEROC              2732
+#define ATZ_TMP_INVALID                0xffffffff
+#define ATZ_ZONE_EXPIRE                9000
 
+/*
+ * All temperatures are reported in 0.1 Kelvin.
+ * The ACPI specification assumes that K = C + 273.2
+ * rather than the nominal 273.15 used by envsys(4).
+ */
 #define        ATZ2UKELVIN(t) ((t) * 100000 - 50000)
 
 struct acpitz_zone {
-       /* Active cooling temperature threshold */
-       uint32_t ac[ATZ_NLEVELS];
-       /* Package of references to all active cooling devices for a level */
-       ACPI_BUFFER al[ATZ_NLEVELS];
-       /* Critical temperature threshold for system shutdown */
-       uint32_t crt;
-       /* Critical temperature threshold for S4 sleep */
-       uint32_t hot;
-       /* Package of references to processor objects for passive cooling */
-       ACPI_BUFFER psl;
-       /* Conveys if temperatures are absolute or relative values. */
-       uint32_t rtv;
-       /* Passive cooling temperature threshold */
-       uint32_t psv;
-       /* Thermal constants for use in passive cooling formulas */
-       uint32_t tc1, tc2;
-       /* Current temperature of the thermal zone */
-       uint32_t prevtmp, tmp;
-       /* Thermal sampling period for passive cooling, in tenths of seconds */
-       uint32_t tsp;
-       /* Package of references to devices in this TZ (optional) */
-       ACPI_BUFFER tzd;
-       /* Recommended TZ polling frequency, in tenths of seconds */
-       uint32_t tzp;
-       /* Thermal zone name */
-       char *name;
-       /* FAN min, max, current rpms */
-       uint32_t fanmin, fanmax, fancurrent;
+       char                    *name;
+       ACPI_BUFFER              al[ATZ_NLEVELS];
+       uint32_t                 ac[ATZ_NLEVELS];
+       uint32_t                 crt;
+       uint32_t                 hot;
+       uint32_t                 rtv;
+       uint32_t                 psv;
+       uint32_t                 tc1;
+       uint32_t                 tc2;
+       uint32_t                 tmp;
+       uint32_t                 prevtmp;
+       uint32_t                 tzp;
+       uint32_t                 fanmin;
+       uint32_t                 fanmax;
+       uint32_t                 fancurrent;
 };
 
 struct acpitz_softc {
-       struct acpi_devnode *sc_devnode;
-       struct acpitz_zone sc_zone;
-       struct callout sc_callout;
-       struct sysmon_envsys *sc_sme;
-       envsys_data_t sc_temp_sensor;
-       envsys_data_t sc_fan_sensor;
-       int sc_active;          /* active cooling level */
-       int sc_flags;
-       int sc_rate;            /* tz poll rate */
-       int sc_zone_expire;
-
-       int sc_first;
-       int sc_have_fan;        /* FAN sensor is optional */
+       struct acpi_devnode     *sc_node;
+       struct sysmon_envsys    *sc_sme;
+       struct acpitz_zone       sc_zone;
+       struct callout           sc_callout;
+       envsys_data_t            sc_temp_sensor;
+       envsys_data_t            sc_fan_sensor;
+       int                      sc_active;
+       int                      sc_flags;
+       int                      sc_zone_expire;
+       bool                     sc_first;
+       bool                     sc_have_fan;
 };
 
-static int     acpitz_match(device_t, cfdata_t, void *);
-static void    acpitz_attach(device_t, device_t, void *);
-static int     acpitz_detach(device_t, int);
-
-static void    acpitz_get_status(void *);
-static void    acpitz_get_zone(void *, int);
-static void    acpitz_get_zone_quiet(void *);
-static char    *acpitz_celcius_string(int);
-static void    acpitz_print_status(device_t);
-static void    acpitz_power_off(struct acpitz_softc *);
-static void    acpitz_power_zone(struct acpitz_softc *, int, int);
-static void    acpitz_sane_temp(uint32_t *tmp);
-static ACPI_STATUS
-               acpitz_switch_cooler(ACPI_OBJECT *, void *);
-static void    acpitz_notify_handler(ACPI_HANDLE, uint32_t, void *);
-static int     acpitz_get_integer(device_t, const char *, uint32_t *);
-static void    acpitz_tick(void *);
-static void    acpitz_init_envsys(device_t);
-static void    acpitz_get_limits(struct sysmon_envsys *, envsys_data_t *,
-                                 sysmon_envsys_lim_t *, uint32_t *);
-static int     acpitz_get_fanspeed(device_t, uint32_t *,
-                                   uint32_t *, uint32_t *);
+static int             acpitz_match(device_t, cfdata_t, void *);
+static void            acpitz_attach(device_t, device_t, void *);
+static int             acpitz_detach(device_t, int);
+static void            acpitz_get_status(void *);
+static void            acpitz_get_zone(void *, int);
+static void            acpitz_get_zone_quiet(void *);
+static char           *acpitz_celcius_string(int);
+static void            acpitz_power_off(struct acpitz_softc *);
+static void            acpitz_power_zone(struct acpitz_softc *, int, int);
+static void            acpitz_sane_temp(uint32_t *tmp);
+static ACPI_STATUS     acpitz_switch_cooler(ACPI_OBJECT *, void *);
+static void            acpitz_notify_handler(ACPI_HANDLE, uint32_t, void *);
+static int             acpitz_get_integer(device_t, const char *, uint32_t *);
+static void            acpitz_tick(void *);
+static void            acpitz_init_envsys(device_t);
+static void            acpitz_get_limits(struct sysmon_envsys *,
+                                         envsys_data_t *,
+                                         sysmon_envsys_lim_t *, uint32_t *);
+static int             acpitz_get_fanspeed(device_t, uint32_t *,
+                                           uint32_t *, uint32_t *);
 #ifdef notyet
-static ACPI_STATUS
-               acpitz_set_fanspeed(device_t, uint32_t);
+static ACPI_STATUS     acpitz_set_fanspeed(device_t, uint32_t);
 #endif
 
 CFATTACH_DECL_NEW(acpitz, sizeof(struct acpitz_softc),
@@ -173,39 +155,42 @@
 {
        struct acpitz_softc *sc = device_private(self);
        struct acpi_attach_args *aa = aux;
+       ACPI_INTEGER val;
        ACPI_STATUS rv;
-       ACPI_INTEGER v;
-
-#if 0
-       sc->sc_flags = ATZ_F_VERBOSE;
-#endif
-       sc->sc_devnode = aa->aa_node;
 
        aprint_naive("\n");
        aprint_normal(": ACPI Thermal Zone\n");
 
-       rv = acpi_eval_integer(sc->sc_devnode->ad_handle, "_TZP", &v);
-       if (ACPI_FAILURE(rv))
-               sc->sc_zone.tzp = ATZ_TZP_RATE;
-       else
-               sc->sc_zone.tzp = v;
+       sc->sc_first = true;
+       sc->sc_have_fan = false;
+       sc->sc_node = aa->aa_node;
+       sc->sc_zone.tzp = ATZ_TZP_RATE;
+
+       /*
+        * The _TZP (ACPI 4.0, p. 430) defines the recommended
+        * polling interval (in tenths of seconds). A value zero
+        * means that polling "should not be necessary".
+        */
+       rv = acpi_eval_integer(sc->sc_node->ad_handle, "_TZP", &val);
+
+       if (ACPI_SUCCESS(rv) && val != 0)
+               sc->sc_zone.tzp = val;
 
        aprint_debug_dev(self, "sample rate %d.%ds\n",
            sc->sc_zone.tzp / 10, sc->sc_zone.tzp % 10);
 
-       /* XXX a value of 0 means "polling is not necessary" */
-       if (sc->sc_zone.tzp == 0)
-               sc->sc_zone.tzp = ATZ_TZP_RATE;
+       sc->sc_zone_expire = ATZ_ZONE_EXPIRE / sc->sc_zone.tzp;
 
-       sc->sc_zone_expire = ATZ_ZONE_EXPIRE / sc->sc_zone.tzp;
-       sc->sc_first = 1;
-       sc->sc_have_fan = 0;
-       if (acpitz_get_fanspeed(self,
-           &sc->sc_zone.fanmin, &sc->sc_zone.fanmax, &sc->sc_zone.fancurrent)
-           == 0)
-               sc->sc_have_fan = 1;
+       /*
+        * XXX: The fan controls seen here are available on
+        *      some HP laptops. Arguably these should not
+        *      appear in a generic device driver like this.
+        */
+       if (acpitz_get_fanspeed(self, &sc->sc_zone.fanmin,
+               &sc->sc_zone.fanmax, &sc->sc_zone.fancurrent) == 0)
+               sc->sc_have_fan = true;
 
-       rv = acpi_eval_string(sc->sc_devnode->ad_handle,
+       rv = acpi_eval_string(sc->sc_node->ad_handle,
            "REGN", &sc->sc_zone.name);
 
        if (ACPI_FAILURE(rv))
@@ -215,7 +200,7 @@
        acpitz_get_status(self);
 
        (void)pmf_device_register(self, NULL, NULL);
-       (void)acpi_register_notify(sc->sc_devnode, acpitz_notify_handler);
+       (void)acpi_register_notify(sc->sc_node, acpitz_notify_handler);
 
        callout_init(&sc->sc_callout, CALLOUT_MPSAFE);
        callout_setfunc(&sc->sc_callout, acpitz_tick, self);
@@ -238,7 +223,7 @@
        callout_destroy(&sc->sc_callout);
 
        pmf_device_deregister(self);
-       acpi_deregister_notify(sc->sc_devnode);
+       acpi_deregister_notify(sc->sc_node);
 
        /*
         * Although the device itself should not contain any power
@@ -281,13 +266,16 @@
        device_t dv = opaque;
        struct acpitz_softc *sc = device_private(dv);
        uint32_t tmp, active, fmin, fmax, fcurrent;
-       int i, flags;
+       int changed, flags, i;
 
        sc->sc_zone_expire--;
+
        if (sc->sc_zone_expire <= 0) {
                sc->sc_zone_expire = ATZ_ZONE_EXPIRE / sc->sc_zone.tzp;
-               if (sc->sc_flags & ATZ_F_VERBOSE)
-                       printf("%s: force refetch zone\n", device_xname(dv));
+
+               ACPI_DEBUG_PRINT((ACPI_DB_INFO,
+                       "%s: zone refetch forced\n", device_xname(dv)));
+



Home | Main Index | Thread Index | Old Index