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.

Reply via email to