Module Name: src Committed By: nat Date: Sat Sep 14 21:02:46 UTC 2024
Modified Files: src/sys/arch/mac68k/dev: pm_direct.c pm_direct.h src/sys/arch/mac68k/mac68k: machdep.c Log Message: Add support for poweroff on PowerBook 1xx. This excludes the PowerBook 150 and 190, which are more similar to the 500 series. To generate a diff of this commit: cvs rdiff -u -r1.33 -r1.34 src/sys/arch/mac68k/dev/pm_direct.c cvs rdiff -u -r1.2 -r1.3 src/sys/arch/mac68k/dev/pm_direct.h cvs rdiff -u -r1.369 -r1.370 src/sys/arch/mac68k/mac68k/machdep.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/mac68k/dev/pm_direct.c diff -u src/sys/arch/mac68k/dev/pm_direct.c:1.33 src/sys/arch/mac68k/dev/pm_direct.c:1.34 --- src/sys/arch/mac68k/dev/pm_direct.c:1.33 Sat Sep 14 20:59:45 2024 +++ src/sys/arch/mac68k/dev/pm_direct.c Sat Sep 14 21:02:46 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: pm_direct.c,v 1.33 2024/09/14 20:59:45 nat Exp $ */ +/* $NetBSD: pm_direct.c,v 1.34 2024/09/14 21:02:46 nat Exp $ */ /* * Copyright (c) 2024 Nathanial Sloss <nathanialsl...@yahoo.com.au> @@ -35,7 +35,7 @@ /* From: pm_direct.c 1.3 03/18/98 Takashi Hamada */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pm_direct.c,v 1.33 2024/09/14 20:59:45 nat Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pm_direct.c,v 1.34 2024/09/14 21:02:46 nat Exp $"); #include "opt_adb.h" @@ -1151,6 +1151,26 @@ pm_adb_poll_next_device_pm1(PMData *pmda tmp_pmdata.data[2] = 0x00; pmgrop(&tmp_pmdata); } + +void +pm_poweroff(void) +{ + PMData pmdata; + int attempt = 3; + + while (pmHardware == PM_HW_PB1XX && attempt > 0) { + pmdata.command = 0x7e; + pmdata.num_data = 0; + pmdata.data[0] = pmdata.data[1] = 0; + pmdata.s_buf = &pmdata.data[2]; + pmdata.r_buf = &pmdata.data[2]; + (void)pm_pmgrop_pm1(&pmdata); + attempt--; + } + + return; +} + u_int pm_set_brightness(u_int brightness) { Index: src/sys/arch/mac68k/dev/pm_direct.h diff -u src/sys/arch/mac68k/dev/pm_direct.h:1.2 src/sys/arch/mac68k/dev/pm_direct.h:1.3 --- src/sys/arch/mac68k/dev/pm_direct.h:1.2 Sat Sep 14 20:59:45 2024 +++ src/sys/arch/mac68k/dev/pm_direct.h Sat Sep 14 21:02:46 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: pm_direct.h,v 1.2 2024/09/14 20:59:45 nat Exp $ */ +/* $NetBSD: pm_direct.h,v 1.3 2024/09/14 21:02:46 nat Exp $ */ /* * Copyright (c) 2024 Nathanial Sloss <nathanialsl...@yahoo.com.au> @@ -48,4 +48,5 @@ typedef struct { } PMData; int pmgrop(PMData *); +void pm_poweroff(void); u_int pm_set_brightness(u_int); Index: src/sys/arch/mac68k/mac68k/machdep.c diff -u src/sys/arch/mac68k/mac68k/machdep.c:1.369 src/sys/arch/mac68k/mac68k/machdep.c:1.370 --- src/sys/arch/mac68k/mac68k/machdep.c:1.369 Fri Jun 7 02:51:45 2024 +++ src/sys/arch/mac68k/mac68k/machdep.c Sat Sep 14 21:02:46 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.369 2024/06/07 02:51:45 nat Exp $ */ +/* $NetBSD: machdep.c,v 1.370 2024/09/14 21:02:46 nat Exp $ */ /* * Copyright (c) 1988 University of Utah. @@ -74,7 +74,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.369 2024/06/07 02:51:45 nat Exp $"); +__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.370 2024/09/14 21:02:46 nat Exp $"); #include "opt_adb.h" #include "opt_compat_netbsd.h" @@ -156,6 +156,7 @@ __KERNEL_RCSID(0, "$NetBSD: machdep.c,v #if NMACFB > 0 #include <mac68k/dev/macfbvar.h> #endif +#include <mac68k/dev/pm_direct.h> #include <mac68k/dev/zs_cons.h> #include "ksyms.h" @@ -493,6 +494,11 @@ cpu_reboot(int howto, char *bootstr) adb_poweroff(); #endif /* + * Try to shutdown via the power manager (PowerBooks mainly). + */ + pm_poweroff(); + + /* * RB_POWERDOWN implies RB_HALT... fall into it... */ }