[PATCH] ppc64: AC Power handling broken for desktops
authorOlaf Hering <olh@suse.de>
Sat, 29 Oct 2005 00:46:51 +0000 (17:46 -0700)
committerPaul Mackerras <paulus@samba.org>
Sat, 29 Oct 2005 05:11:48 +0000 (15:11 +1000)
Currently, AC Power is 0 on a desktop G4.  No batteries present should mean
AC Power == 1.

Signed-off-by: Olaf Hering <olh@suse.de>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
drivers/macintosh/apm_emu.c

index 19d3e05d68252a74f5fbc7eacc3e0f61648f94eb..e5a2bbf9939939d15fed6d1f7fd9c109980f8abb 100644 (file)
@@ -430,8 +430,8 @@ static int apm_emu_get_info(char *buf, char **start, off_t fpos, int length)
              -1: Unknown
           8) min = minutes; sec = seconds */
 
-       unsigned short  ac_line_status = 0xff;
-       unsigned short  battery_status = 0xff;
+       unsigned short  ac_line_status;
+       unsigned short  battery_status = 0;
        unsigned short  battery_flag   = 0xff;
        int             percentage     = -1;
        int             time_units     = -1;
@@ -446,6 +446,7 @@ static int apm_emu_get_info(char *buf, char **start, off_t fpos, int length)
        ac_line_status = ((pmu_power_flags & PMU_PWR_AC_PRESENT) != 0);
        for (i=0; i<pmu_battery_count; i++) {
                if (pmu_batteries[i].flags & PMU_BATT_PRESENT) {
+                       battery_status++;
                        if (percentage < 0)
                                percentage = 0;
                        if (charge < 0)
@@ -461,6 +462,9 @@ static int apm_emu_get_info(char *buf, char **start, off_t fpos, int length)
                                charging++;
                }
        }
+       if (0 == battery_status)
+               ac_line_status = 1;
+       battery_status = 0xff;
        if (real_count) {
                if (amperage < 0) {
                        if (btype == PMU_BATT_TYPE_SMART)