On Tue, Oct 18, 2022 at 3:19 PM Paul de Weerd <we...@weirdnet.nl> wrote: > > On Mon, Oct 17, 2022 at 09:52:05PM +0100, Igor Petruk wrote: > | It did not quite work in acpi_attach. I assume it is either because later > | on all GPEs are enabled and disabled multiple times. > | Or maybe because the struct is passed to another thread almost > | at the end of acpi_attach. > | > | When I added it after this line, it worked: > | > https://github.com/openbsd/src/blob/62d244ed99f17c1263ee095bc7d8fa1f61df02fd/sys/dev/acpi/acpi.c#L2665. > | > | Now the OS works very smoothly, as expected. I don't know if > | it was an optimal place, just added it somewhere where it made > | an approximate sense. > > As I have a similarly affected machine, I reached out to Igor to ask > for his diff. After applying it to my system, I see immediate > improvement: > > --- before ----------------------------------------------------------- > interrupt total rate > irq0/clock 9152280 399 > irq0/ipi 40984 1 > irq144/com0 104 0 > irq96/acpi0 140950051 6159 > irq145/inteldrm0 22 0 > irq97/xhci0 22941 1 > irq100/nvme0 41503 1 > irq114/igc0:0 74073 3 > irq115/igc0:1 15410 0 > irq116/igc0:2 6582 0 > irq117/igc0:3 26653 1 > irq118/igc0 2 0 > Total 150330605 6568 > ---------------------------------------------------------------------- > > --- after ------------------------------------------------------------ > interrupt total rate > irq0/clock 1165904 399 > irq0/ipi 80350 27 > irq144/com0 105 0 > irq96/acpi0 1 0 > irq145/inteldrm0 19 0 > irq97/xhci0 2974 1 > irq100/nvme0 16924 5 > irq114/igc0:0 8054 2 > irq115/igc0:1 5278 1 > irq116/igc0:2 35907 12 > irq117/igc0:3 2354 0 > irq118/igc0 2 0 > Total 1317872 451 > ---------------------------------------------------------------------- > > I'm including Igor's diff at the end of this mail (with his > permission). I've been searching for a BIOS update for this system > (HUNSN RS39, /var/db/acpi files available from [1]), but of course > that's nowhere to be found. > > Thanks to Igor .. I'll continue searching for an updated BIOS (but I'm > not holding my breath) > > Paul > > [1]: http://www.weirdnet.nl/openbsd/issues/2022/hunsn_rs39_acpi.tgz > > --- dmesg ------------------------------------------------------------ > OpenBSD 7.2-current (GENERIC.MP) #25: Tue Oct 18 15:15:22 CEST 2022 > we...@pom.alm.weirdnet.nl:/usr/src/sys/arch/amd64/compile/GENERIC.MP > real mem = 34179575808 (32596MB) > avail mem = 33126281216 (31591MB) > random: good seed from bootblocks > mpath0 at root > scsibus0 at mpath0: 256 targets > mainbus0 at root > bios0 at mainbus0: SMBIOS rev. 3.3 @ 0x78d77000 (117 entries) > bios0: vendor Techvision, LLC. version "5.19" date 04/19/2022 > bios0: CncTion Jasper-4L > efi0 at bios0: UEFI 2.7 > efi0: American Megatrends rev 0x50013 > acpi0 at bios0: ACPI 6.2 > acpi0: sleep states S0 S3 S4 S5 > acpi0: tables DSDT FACP MCFG FIDT SSDT SSDT SSDT HPET APIC PRAM SSDT SSDT > NHLT LPIT SSDT SSDT DBGP DBG2 SSDT DMAR SSDT TPM2 WSMT FPDT > acpi0: wakeup devices PEGP(S4) PEGP(S4) PEGP(S4) PEGP(S4) SIO1(S3) RP01(S4) > PXSX(S4) RP02(S4) PXSX(S4) RP03(S4) PXSX(S4) RP04(S4) PXSX(S4) RP05(S4) > PXSX(S4) RP06(S4) [...] > acpitimer0 at acpi0: 3579545 Hz, 24 bits > acpimcfg0 at acpi0 > acpimcfg0: addr 0xc0000000, bus 0-255 > acpihpet0 at acpi0: 19200000 Hz > acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat > cpu0 at mainbus0: apid 0 (boot processor) > cpu0: Intel(R) Celeron(R) N5105 @ 2.00GHz, 2893.74 MHz, 06-9c-00 > cpu0: > FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,CX16,xTPR,PDCM,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,RDRAND,NXE,RDTSCP,LONG,LAHF,3DNOWP,PERF,ITSC,FSGSBASE,TSC_ADJUST,SMEP,ERMS,RDSEED,SMAP,CLFLUSHOPT,CLWB,PT,SHA,UMIP,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,XSAVEC,XGETBV1,XSAVES > cpu0: 32KB 64b/line 8-way D-cache, 32KB 64b/line 8-way I-cache, 1MB 64b/line > 12-way L2 cache, 4MB 64b/line 16-way L3 cache > cpu0: smt 0, core 0, package 0 > mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges > cpu0: apic clock running at 38MHz > cpu0: mwait min=64, max=64, C-substates=0.2.0.2.2.1.1.1, IBE > cpu1 at mainbus0: apid 2 (application processor) > cpu1: Intel(R) Celeron(R) N5105 @ 2.00GHz, 2893.74 MHz, 06-9c-00 > cpu1: > FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,CX16,xTPR,PDCM,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,RDRAND,NXE,RDTSCP,LONG,LAHF,3DNOWP,PERF,ITSC,FSGSBASE,TSC_ADJUST,SMEP,ERMS,RDSEED,SMAP,CLFLUSHOPT,CLWB,PT,SHA,UMIP,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,XSAVEC,XGETBV1,XSAVES > cpu1: 32KB 64b/line 8-way D-cache, 32KB 64b/line 8-way I-cache, 1MB 64b/line > 12-way L2 cache, 4MB 64b/line 16-way L3 cache > cpu1: smt 0, core 1, package 0 > cpu2 at mainbus0: apid 4 (application processor) > cpu2: Intel(R) Celeron(R) N5105 @ 2.00GHz, 2793.96 MHz, 06-9c-00 > cpu2: > FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,CX16,xTPR,PDCM,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,RDRAND,NXE,RDTSCP,LONG,LAHF,3DNOWP,PERF,ITSC,FSGSBASE,TSC_ADJUST,SMEP,ERMS,RDSEED,SMAP,CLFLUSHOPT,CLWB,PT,SHA,UMIP,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,XSAVEC,XGETBV1,XSAVES > cpu2: 32KB 64b/line 8-way D-cache, 32KB 64b/line 8-way I-cache, 1MB 64b/line > 12-way L2 cache, 4MB 64b/line 16-way L3 cache > cpu2: smt 0, core 2, package 0 > cpu3 at mainbus0: apid 6 (application processor) > cpu3: Intel(R) Celeron(R) N5105 @ 2.00GHz, 2793.96 MHz, 06-9c-00 > cpu3: > FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,CX16,xTPR,PDCM,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,RDRAND,NXE,RDTSCP,LONG,LAHF,3DNOWP,PERF,ITSC,FSGSBASE,TSC_ADJUST,SMEP,ERMS,RDSEED,SMAP,CLFLUSHOPT,CLWB,PT,SHA,UMIP,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,XSAVEC,XGETBV1,XSAVES > cpu3: 32KB 64b/line 8-way D-cache, 32KB 64b/line 8-way I-cache, 1MB 64b/line > 12-way L2 cache, 4MB 64b/line 16-way L3 cache > cpu3: smt 0, core 3, package 0 > ioapic0 at mainbus0: apid 2 pa 0xfec00000, version 20, 120 pins > acpiprt0 at acpi0: bus 0 (PC00) > acpiprt1 at acpi0: bus 1 (RP01) > acpiprt2 at acpi0: bus -1 (RP02) > acpiprt3 at acpi0: bus -1 (RP03) > acpiprt4 at acpi0: bus -1 (RP04) > acpiprt5 at acpi0: bus 2 (RP05) > acpiprt6 at acpi0: bus 3 (RP06) > acpiprt7 at acpi0: bus 4 (RP07) > acpiprt8 at acpi0: bus 5 (RP08) > acpiprt9 at acpi0: bus -1 (RP09) > acpiprt10 at acpi0: bus -1 (RP10) > acpiprt11 at acpi0: bus -1 (RP11) > acpiprt12 at acpi0: bus -1 (RP12) > acpiprt13 at acpi0: bus -1 (RP13) > acpiprt14 at acpi0: bus -1 (RP14) > acpiprt15 at acpi0: bus -1 (RP15) > acpiprt16 at acpi0: bus -1 (RP16) > acpiprt17 at acpi0: bus -1 (RP17) > acpiprt18 at acpi0: bus -1 (RP18) > acpiprt19 at acpi0: bus -1 (RP19) > acpiprt20 at acpi0: bus -1 (RP20) > acpiprt21 at acpi0: bus -1 (RP21) > acpiprt22 at acpi0: bus -1 (RP22) > acpiprt23 at acpi0: bus -1 (RP23) > acpiprt24 at acpi0: bus -1 (RP24) > acpiec0 at acpi0: not present > acpipci0 at acpi0 PC00: 0x00000000 0x00000011 0x00000001 > com0 at acpi0 UAR1 addr 0x3f8/0x8 irq 4: ns16550a, 16 byte fifo > com0: console > "ACPI000E" at acpi0 not configured > acpibtn0 at acpi0: SLPB > "PNP0C14" at acpi0 not configured > "PNP0C14" at acpi0 not configured > "INT33A1" at acpi0 not configured > acpibtn1 at acpi0: PWRB > tpm0 at acpi0 TPM_ 2.0 (CRB) addr 0xfed40000/0x5000, device 0x00000000 rev 0x0 > "PNP0C0B" at acpi0 not configured > "PNP0C0B" at acpi0 not configured > "PNP0C0B" at acpi0 not configured > "PNP0C0B" at acpi0 not configured > "PNP0C0B" at acpi0 not configured > acpipwrres0 at acpi0: WRST > acpicpu0 at acpi0: C3(200@1048 mwait.1@0x60), C2(200@253 mwait.1@0x31), > C1(1000@1 mwait.1), PSS > acpicpu1 at acpi0: C3(200@1048 mwait.1@0x60), C2(200@253 mwait.1@0x31), > C1(1000@1 mwait.1), PSS > acpicpu2 at acpi0: C3(200@1048 mwait.1@0x60), C2(200@253 mwait.1@0x31), > C1(1000@1 mwait.1), PSS > acpicpu3 at acpi0: C3(200@1048 mwait.1@0x60), C2(200@253 mwait.1@0x31), > C1(1000@1 mwait.1), PSS > acpipwrres1 at acpi0: FN00, resource for FAN0 > acpipwrres2 at acpi0: FN01, resource for FAN1 > acpipwrres3 at acpi0: FN02, resource for FAN2 > acpipwrres4 at acpi0: FN03, resource for FAN3 > acpipwrres5 at acpi0: FN04, resource for FAN4 > acpitz0 at acpi0: critical temperature is 119 degC > acpipwrres6 at acpi0: PIN_ > acpivideo0 at acpi0: GFX0 > acpivout0 at acpivideo0: DD1F > acpivout1 at acpivideo0: DD2F > cpu0: Enhanced SpeedStep 2893 MHz: speeds: 2001, 2000, 1900, 1800, 1700, > 1600, 1500, 1400, 1300, 1200, 1100, 1000, 900, 800 MHz > pci0 at mainbus0 bus 0 > 0:31:5: mem address conflict 0xfe010000/0x1000 > pchb0 at pci0 dev 0 function 0 "Intel Jasper Lake Host" rev 0x00 > inteldrm0 at pci0 dev 2 function 0 "Intel UHD Graphics" rev 0x01 > drm0 at inteldrm0 > inteldrm0: msi, JASPERLAKE, gen 11 > "Intel Jasper Lake DPTF" rev 0x00 at pci0 dev 4 function 0 not configured > xhci0 at pci0 dev 20 function 0 "Intel Jasper Lake xHCI" rev 0x01: msi, xHCI > 1.10 > usb0 at xhci0: USB revision 3.0 > uhub0 at usb0 configuration 1 interface 0 "Intel xHCI root hub" rev 3.00/1.00 > addr 1 > "Intel Jasper Lake Shared SRAM" rev 0x01 at pci0 dev 20 function 2 not > configured > "Intel Jasper Lake HECI" rev 0x01 at pci0 dev 22 function 0 not configured > ahci0 at pci0 dev 23 function 0 "Intel Jasper Lake AHCI" rev 0x01: msi, AHCI > 1.3.1 > ahci0: PHY offline on port 0 > scsibus1 at ahci0: 32 targets > ppb0 at pci0 dev 28 function 0 "Intel Jasper Lake PCIE" rev 0x01: msi > pci1 at ppb0 bus 1 > nvme0 at pci1 dev 0 function 0 vendor "Intel", unknown product 0xf1aa rev > 0x03: msix, NVMe 1.4 > nvme0: INTEL SSDPEKNU512GZ, firmware 002C, serial BTKA15001W66512A > scsibus2 at nvme0: 2 targets, initiator 0 > sd0 at scsibus2 targ 1 lun 0: <NVMe, INTEL SSDPEKNU51, 002C> > sd0: 488386MB, 512 bytes/sector, 1000215216 sectors > ppb1 at pci0 dev 28 function 4 "Intel Jasper Lake PCIE" rev 0x01: msi > pci2 at ppb1 bus 2 > igc0 at pci2 dev 0 function 0 "Intel I225-V" rev 0x03, msix, 4 queues, > address 60:be:b4:02:9e:70 > ppb2 at pci0 dev 28 function 5 "Intel Jasper Lake PCIE" rev 0x01: msi > pci3 at ppb2 bus 3 > igc1 at pci3 dev 0 function 0 "Intel I225-V" rev 0x03, msix, 4 queues, > address 60:be:b4:02:9e:71 > ppb3 at pci0 dev 28 function 6 "Intel Jasper Lake PCIE" rev 0x01: msi > pci4 at ppb3 bus 4 > igc2 at pci4 dev 0 function 0 "Intel I225-V" rev 0x03, msix, 4 queues, > address 60:be:b4:02:9e:72 > ppb4 at pci0 dev 28 function 7 "Intel Jasper Lake PCIE" rev 0x01: msi > pci5 at ppb4 bus 5 > igc3 at pci5 dev 0 function 0 "Intel I225-V" rev 0x03, msix, 4 queues, > address 60:be:b4:02:9e:73 > pcib0 at pci0 dev 31 function 0 "Intel Jasper Lake eSPI" rev 0x01 > azalia0 at pci0 dev 31 function 3 "Intel Jasper Lake HD Audio" rev 0x01: msi > azalia0: no supported codecs > ichiic0 at pci0 dev 31 function 4 "Intel Jasper Lake SMBus" rev 0x01: apic 2 > int 16 > iic0 at ichiic0 > "Intel Jasper Lake SPI" rev 0x01 at pci0 dev 31 function 5 not configured > isa0 at pcib0 > isadma0 at isa0 > pcppi0 at isa0 port 0x61 > spkr0 at pcppi0 > vmm0 at mainbus0: VMX/EPT > efifb at mainbus0 not configured > uhidev0 at uhub0 port 1 configuration 1 interface 0 "American Power > Conversion Back-UPS ES 850G2 FW:938.a2 .I USB FW:a2" rev 2.00/0.90 addr 2 > uhidev0: iclass 3/0, 128 report ids > upd0 at uhidev0 > uhid0 at uhidev0 reportid 1: input=0, output=0, feature=1 > uhid1 at uhidev0 reportid 2: input=0, output=0, feature=1 > uhid2 at uhidev0 reportid 3: input=0, output=0, feature=1 > uhid3 at uhidev0 reportid 4: input=0, output=0, feature=1 > uhid4 at uhidev0 reportid 5: input=0, output=0, feature=1 > uhid5 at uhidev0 reportid 6: input=3, output=0, feature=3 > uhid6 at uhidev0 reportid 7: input=0, output=0, feature=2 > uhid7 at uhidev0 reportid 8: input=0, output=0, feature=2 > uhid8 at uhidev0 reportid 9: input=0, output=0, feature=2 > uhid9 at uhidev0 reportid 10: input=0, output=0, feature=1 > uhid10 at uhidev0 reportid 11: input=0, output=0, feature=1 > uhid11 at uhidev0 reportid 12: input=3, output=0, feature=3 > uhid12 at uhidev0 reportid 13: input=0, output=0, feature=1 > uhid13 at uhidev0 reportid 14: input=0, output=0, feature=1 > uhid14 at uhidev0 reportid 15: input=0, output=0, feature=1 > uhid15 at uhidev0 reportid 16: input=0, output=0, feature=1 > uhid16 at uhidev0 reportid 17: input=0, output=0, feature=1 > uhid17 at uhidev0 reportid 18: input=0, output=0, feature=1 > uhid18 at uhidev0 reportid 21: input=0, output=0, feature=2 > uhid19 at uhidev0 reportid 23: input=0, output=0, feature=2 > uhid20 at uhidev0 reportid 24: input=0, output=0, feature=1 > uhid21 at uhidev0 reportid 28: input=0, output=0, feature=3 > uhid22 at uhidev0 reportid 32: input=0, output=0, feature=2 > uhid23 at uhidev0 reportid 33: input=1, output=0, feature=1 > uhid24 at uhidev0 reportid 34: input=0, output=0, feature=1 > uhid25 at uhidev0 reportid 35: input=0, output=0, feature=2 > uhid26 at uhidev0 reportid 36: input=0, output=0, feature=2 > uhid27 at uhidev0 reportid 37: input=0, output=0, feature=2 > uhid28 at uhidev0 reportid 38: input=0, output=0, feature=2 > uhid29 at uhidev0 reportid 39: input=0, output=0, feature=2 > uhid30 at uhidev0 reportid 40: input=0, output=0, feature=4 > uhid31 at uhidev0 reportid 48: input=0, output=0, feature=1 > uhid32 at uhidev0 reportid 49: input=0, output=0, feature=2 > uhid33 at uhidev0 reportid 50: input=0, output=0, feature=2 > uhid34 at uhidev0 reportid 51: input=0, output=0, feature=2 > uhid35 at uhidev0 reportid 52: input=0, output=0, feature=2 > uhid36 at uhidev0 reportid 53: input=0, output=0, feature=1 > uhid37 at uhidev0 reportid 54: input=0, output=0, feature=1 > uhid38 at uhidev0 reportid 64: input=0, output=0, feature=1 > uhid39 at uhidev0 reportid 65: input=0, output=0, feature=2 > uhid40 at uhidev0 reportid 66: input=0, output=0, feature=2 > uhid41 at uhidev0 reportid 80: input=0, output=0, feature=1 > uhid42 at uhidev0 reportid 81: input=0, output=0, feature=1 > uhid43 at uhidev0 reportid 82: input=0, output=0, feature=2 > uhid44 at uhidev0 reportid 96: input=0, output=0, feature=2 > uhid45 at uhidev0 reportid 97: input=0, output=0, feature=1 > uhid46 at uhidev0 reportid 98: input=0, output=0, feature=4 > uhid47 at uhidev0 reportid 116: input=0, output=0, feature=4 > uhid48 at uhidev0 reportid 117: input=0, output=0, feature=2 > uhid49 at uhidev0 reportid 120: input=0, output=0, feature=1 > uhid50 at uhidev0 reportid 121: input=0, output=0, feature=1 > uhid51 at uhidev0 reportid 122: input=0, output=0, feature=4 > uhid52 at uhidev0 reportid 123: input=0, output=0, feature=2 > uhid53 at uhidev0 reportid 124: input=0, output=0, feature=1 > uhid54 at uhidev0 reportid 125: input=0, output=0, feature=1 > uhid55 at uhidev0 reportid 126: input=0, output=0, feature=1 > uhid56 at uhidev0 reportid 127: input=0, output=0, feature=1 > uhid57 at uhidev0 reportid 128: input=0, output=0, feature=1 > uchcom0 at uhub0 port 3 configuration 1 interface 0 "QinHeng Electronics > USB2.0-Ser!" rev 1.10/2.54 addr 3 > uchcom0: CH341 > ucom0 at uchcom0 > vscsi0 at root > scsibus3 at vscsi0: 256 targets > softraid0 at root > scsibus4 at softraid0: 256 targets > root on sd0a (691ebcaf632d0de5.a) swap on sd0b dump on sd0b > inteldrm0: 1024x768, 32bpp > wsdisplay0 at inteldrm0 mux 1 > wsdisplay0: screen 0-5 added (std, vt100 emulation) > ---------------------------------------------------------------------- > > --- acpi_off.diff ---------------------------------------------------- > Index: sys/dev/acpi/acpi.c > =================================================================== > RCS file: /cvs/src/sys/dev/acpi/acpi.c,v > retrieving revision 1.418 > diff -u -p -u -p -r1.418 acpi.c > --- sys/dev/acpi/acpi.c 13 Sep 2022 17:14:54 -0000 1.418 > +++ sys/dev/acpi/acpi.c 18 Oct 2022 10:04:30 -0000 > @@ -97,6 +97,7 @@ void acpi_init_gpes(struct acpi_softc *) > void acpi_disable_allgpes(struct acpi_softc *); > struct gpe_block *acpi_find_gpe(struct acpi_softc *, int); > void acpi_enable_onegpe(struct acpi_softc *, int); > +void acpi_disable_onegpe(struct acpi_softc *, int); > int acpi_gpe(struct acpi_softc *, int, void *); > > void acpi_enable_rungpes(struct acpi_softc *); > @@ -2231,6 +2232,19 @@ acpi_enable_onegpe(struct acpi_softc *sc > acpi_write_pmreg(sc, ACPIREG_GPE_EN, gpe>>3, en | mask); > } > > +void > +acpi_disable_onegpe(struct acpi_softc *sc, int gpe) > +{ > + uint8_t mask, en; > + > + /* Read enabled register */ > + mask = (1L << (gpe & 7)); > + en = acpi_read_pmreg(sc, ACPIREG_GPE_EN, gpe>>3); > + dnprintf(50, "disabling GPE %.2x (current: %sabled) %.2x\n", > + gpe, (en & mask) ? "en" : "dis", en); > + acpi_write_pmreg(sc, ACPIREG_GPE_EN, gpe>>3, en & ~mask); > +} > + > /* Clear all GPEs */ > void > acpi_disable_allgpes(struct acpi_softc *sc) > @@ -2663,6 +2677,8 @@ acpi_thread(void *arg) > > /* Enable handled GPEs here */ > acpi_enable_rungpes(sc); > + acpi_disable_onegpe(sc, 0x6f); > + > splx(s); > } > > ---------------------------------------------------------------------- > > -- > >++++++++[<++++++++++>-]<+++++++.>+++[<------>-]<.>+++[<+ > +++++++++++>-]<.>++[<------------>-]<+.--------------.[-] > http://www.weirdnet.nl/
Glad to hear it worked. Hypothetically... I were to work on building a sysctl like: kern.acpi.mask_gpes=0x6f,0x42 for people to enjoy normal OS operation before they get their firmware fixes, would that be a good idea? Does it have a chance to be accepted? My concern mainly is the interface. I don't know if a more generic solution for all other interrupts need to be built, not just ACPI GPE. Thanks, Igor.