small acpi cleanup. Reference: /n/atom/patch/applied/acpicleanup Date: Tue Mar 11 02:09:09 CET 2014 Signed-off-by: quanstro@quanstro.net --- /sys/src/nix/k10/devacpi.c Tue Mar 11 02:09:03 2014 +++ /sys/src/nix/k10/devacpi.c Tue Mar 11 02:09:04 2014 @@ -13,7 +13,25 @@ #include "acpi.h" #include +enum { + /* ACPI PM1 control */ + Pscien = 1<<0, /* Generate SCI and not SMI */ + Pbmrld = 1<<1, /* busmaster → C0 */ + Pgblrls = 1<<2, /* global release */ + + /* pm1 events */ + Etimer = 1<<0, + Ebme = 1<<4, + Eglobal = 1<<5, + Epowerbtn = 1<<8, /* power button pressed */ + Esleepbtn = 1<<9, + Ertc = 1<<10, + Epciewake = 1<<14, + Ewake = 1<<15, +}; + typedef struct Aconf Aconf; +typedef struct Gpe Gpe; struct Aconf { Lock; @@ -24,14 +42,6 @@ Queue *event; }; -/* internal */ -typedef struct Gpe Gpe; - -enum { - /* ACPI PM1 control */ - Pm1SciEn = 0x1, /* Generate SCI and not SMI */ -}; - struct Gpe { uintptr stsio; /* port used for status */ int stsbit; /* bit number */ @@ -253,15 +263,12 @@ void acpipowercycle(void) { - iprint("a %#.8ux %#.8ux %ux %ux\n", - fadt.pm1acntblk, fadt.pm1bcntblk, fadt.pm1cntlen, 13); - iprint("acpi: power button: power off\n"); + exit(0); } void acpipowernop(void) { - iprint("acpi: power button: power nop\n"); } struct { @@ -273,17 +280,6 @@ "nop", acpipowernop, }; -enum { - Etimer = 1<<0, - Ebme = 1<<4, - Eglobal = 1<<5, - Epowerbtn = 1<<8, /* power button pressed */ - Esleepbtn = 1<<9, - Ertc = 1<<10, - Epciewake = 1<<14, - Ewake = 1<<15, -}; - static void acpiintr(Ureg*, void*) { @@ -381,7 +377,7 @@ */ if(fadt.sciint == 0) return; - if((getpm1ctl() & Pm1SciEn) == 0){ + if((getpm1ctl() & Pscien) == 0){ outb(fadt.smicmd, fadt.acpienable); for(i = 0;; i++){ if(i == 10){ @@ -389,7 +385,7 @@ outb(fadt.smicmd, fadt.acpidisable); return; } - if(getpm1ctl() & Pm1SciEn) + if(getpm1ctl() & Pscien) break; } }