From owner-freebsd-acpi@FreeBSD.ORG Sun Jan 29 00:26:28 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1E03B16A445 for ; Sun, 29 Jan 2006 00:26:28 +0000 (GMT) (envelope-from magicsmoke@gmail.com) Received: from wproxy.gmail.com (wproxy.gmail.com [64.233.184.194]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5B9AE43D46 for ; Sun, 29 Jan 2006 00:26:24 +0000 (GMT) (envelope-from magicsmoke@gmail.com) Received: by wproxy.gmail.com with SMTP id 57so840040wri for ; Sat, 28 Jan 2006 16:26:23 -0800 (PST) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:mime-version:content-type; b=cH2uxNCGXZFq1Z1efniQa1QoNCMIDVdl3YLtsWzpJC5z1sErpPKgayoTCJgFI3Zl7Jz23Im8L3nUgSfN3tzwJuulk1MGkeG2T2EJoKqf6LIfPDK/01/9iJbhLJGaSuABMWoZgXv+UrkOrhJgmhiNIeZXjmJtVRNm/jCWvT9Fd4U= Received: by 10.64.213.20 with SMTP id l20mr1228905qbg; Sat, 28 Jan 2006 16:26:22 -0800 (PST) Received: by 10.64.184.18 with HTTP; Sat, 28 Jan 2006 16:26:21 -0800 (PST) Message-ID: <97bedf530601281626x74ce3078h82d9fef2a9dc80a8@mail.gmail.com> Date: Sat, 28 Jan 2006 16:26:21 -0800 From: Brandon Mitchell To: freebsd-acpi@freebsd.org MIME-Version: 1.0 X-Mailman-Approved-At: Sat, 28 Jan 2006 16:32:28 -0800 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: Fujitsu S2110 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jan 2006 00:26:28 -0000 ACPI listers, I have recently acquired an S2110 with the AMD Turion CPU, and am tracking 6-STABLE on it. Here is the issue: When I simply have acpi.ko loaded, dmesg reports all kinds of nifty ACPI devices. Great. For the life of me, though, I don't seem to see them _doing= _ anything. I have powerd loaded in rc.conf, but the CPU never changes speed, shutting the lid does _not_ suspend the laptop, and the power button simply executes a 'shutdown -h now' via ACPI (the documented response is a suspend). Backlight and volume functionality seems to be working fine. So, then I 'kldload acpi_fujitsu' thinking, 'hey, that just might work!'. Well, it doesn't do anything. Through grepping around a bit, I see that the code supports my map table, but it seems to catch on the GVOL step, ala thi= s poor chap: http://docs.freebsd.org/cgi/mid.cgi?42FD1079.3020607 Bottom line is: I would really love to have ACPI fully functional, and whil= e my C skills are rather rusty at this point, I am more than willing to experiment on this laptop with any patches that might be available out ther= e (though I couldn't find any). Lastly, I'm not a subscriber to the list, so please CC:/BCC: me on any responses or comments. Thanks guys, Brandon Mitchell More information below: dmesg: Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD 6.0-STABLE #2: Sat Jan 28 09:09:42 PST 2006 bmitchell@ankh.local:/usr/obj/usr/src/sys/ANKH ACPI APIC Table: Timecounter "i8254" frequency 1193182 Hz quality 0 CPU: AMD Turion(tm) 64 Mobile Technology MT-30 (795.93-MHz 686-class CPU) Origin =3D "AuthenticAMD" Id =3D 0x20f42 Stepping =3D 2 Features=3D0x78bfbff Features2=3D0x1 AMD Features=3D0xe2500800,LM,3DNow+,3DNow> real memory =3D 501809152 (478 MB) avail memory =3D 481681408 (459 MB) ioapic0 irqs 0-23 on motherboard ath_hal: 0.9.14.9 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413) acpi0: on motherboard acpi0: Overriding SCI Interrupt from IRQ 9 to IRQ 21 acpi0: Power Button (fixed) Timecounter "ACPI-safe" frequency 3579545 Hz quality 1000 acpi_timer0: <32-bit timer at 3.579545MHz> port 0xfc20-0xfc23 on acpi0 cpu0: on acpi0 powernow0: on cpu0 pcib0: port 0xcf8-0xcff on acpi0 pci0: on pcib0 pcib1: at device 1.0 on pci0 pci1: on pcib1 acpi_video0: port 0x2000-0x20ff mem 0xd8000000-0xdbffffff,0xd4100000-0xd410ffff irq 17 at device 5.0 on pci1 ohci0: mem 0xd4000000-0xd4000fff irq 19 at device 19.0 on pci0 ohci0: [GIANT-LOCKED] usb0: OHCI version 1.0, legacy support usb0: SMM does not respond, resetting usb0: on ohci0 usb0: USB revision 1.0 uhub0: (0x1002) OHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub0: 4 ports with 4 removable, self powered ohci1: mem 0xd4001000-0xd4001fff irq 19 at device 19.1 on pci0 ohci1: [GIANT-LOCKED] usb1: OHCI version 1.0, legacy support usb1: SMM does not respond, resetting usb1: on ohci1 usb1: USB revision 1.0 uhub1: (0x1002) OHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub1: 4 ports with 4 removable, self powered ehci0: mem 0xd4002000-0xd4002fff irq 19 at device 19.2 on pci0 ehci0: [GIANT-LOCKED] usb2: EHCI version 1.0 usb2: companion controllers, 4 ports each: usb0 usb1 usb2: on ehci0 usb2: USB revision 2.0 uhub2: ATI EHCI root hub, class 9/0, rev 2.00/1.00, addr 1 uhub2: 8 ports with 8 removable, self powered pci0: at device 20.0 (no driver attached) atapci0: port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0x1810-0x181f at device 20.1 on pci0 ata0: on atapci0 ata1: on atapci0 isab0: at device 20.3 on pci0 isa0: on isab0 pcib2: at device 20.4 on pci0 pci8: on pcib2 cbb0: irq 20 at device 8.0 on pci8 cardbus0: on cbb0 pccard0: <16-bit PCCard bus> on cbb0 pci8: at device 8.2 (no driver attached) pci8: at device 8.3 (no driver attached) bfe0: mem 0xd4214000-0xd4215fff irq 20 at device 9.0 on pci8 miibus0: on bfe0 bmtphy0: on miibus0 bmtphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto bfe0: Ethernet address: 00:0b:5d:cd:44:15 pci8: at device 10.0 (no driver attached) fwohci0: mem 0xd4216800-0xd4216fff,0xd4210000-0xd4213fff irq 22 at device 11.0 on pci8 fwohci0: OHCI version 1.10 (ROM=3D0) fwohci0: No. of Isochronous channels is 4. fwohci0: EUI64 00:00:0e:10:03:81:17:d6 fwohci0: Phy 1394a available S400, 1 ports. fwohci0: Link S400, max_rec 2048 bytes. firewire0: on fwohci0 fwe0: on firewire0 if_fwe0: Fake Ethernet address: 02:00:0e:81:17:d6 fwe0: Ethernet address: 02:00:0e:81:17:d6 fwe0: if_start running deferred for Giant sbp0: on firewire0 fwohci0: Initiate bus reset fwohci0: node_id=3D0xc800ffc0, gen=3D1, CYCLEMASTER mode firewire0: 1 nodes, maxhop <=3D 0, cable IRM =3D 0 (me) firewire0: bus manager 0 (me) pcm0: mem 0xd4003400-0xd40034ff irq 17 at device 20.5 on pci0 pci0: at device 20.6 (no driver attached) acpi_lid0: on acpi0 acpi_acad0: on acpi0 battery0: on acpi0 battery1: on acpi0 acpi_button0: on acpi0 atkbdc0: port 0x60,0x64 irq 1 on acpi0 atkbd0: irq 1 on atkbdc0 kbd0 at atkbd0 atkbd0: [GIANT-LOCKED] psm0: irq 12 on atkbdc0 psm0: [GIANT-LOCKED] psm0: model GlidePoint, device ID 0 sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0 sio0: type 16550A sio1 port 0x2e8-0x2ef,0x480-0x4bf irq 3 drq 3 on acpi0 sio1: type 16550A ppc0: port 0x378-0x37f,0x778-0x77b irq 7 o= n acpi0 ppc0: Generic chipset (EPP/NIBBLE) in COMPATIBLE mode ppbus0: on ppc0 ppi0: on ppbus0 plip0: on ppbus0 lpt0: on ppbus0 lpt0: Interrupt-driven port npx0: [FAST] npx0: on motherboard npx0: INT 16 interface pmtimer0 on isa0 orm0: at iomem 0xc0000-0xcefff,0xcf000-0xcffff,0xd0000-0xd17ff,0xdc000-0xdffff on isa0 sc0: at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=3D0x300> vga0: at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 Timecounter "TSC" frequency 795927353 Hz quality 800 Timecounters tick every 1.000 msec ad0: 38154MB at ata0-master UDMA100 acd0: CDRW at ata1-master UDMA33 pcm0: Trying to mount root from ufs:/dev/ad0s1a bfe0: link state changed to DOWN bfe0: link state changed to UP pciconf: hostb0@pci0:0:0: class=3D0x060000 card=3D0x130110cf chip=3D0x59501002 re= v=3D0x01 hdr=3D0x00 vendor =3D 'ATI Technologies Inc' class =3D bridge subclass =3D HOST-PCI pcib1@pci0:1:0: class=3D0x060400 card=3D0x00000044 chip=3D0x5a3f1002 rev= =3D0x00 hdr=3D0x01 vendor =3D 'ATI Technologies Inc' class =3D bridge subclass =3D PCI-PCI ohci0@pci0:19:0: class=3D0x0c0310 card=3D0x12c810cf chip=3D0x43741002 re= v=3D0x00 hdr=3D0x00 vendor =3D 'ATI Technologies Inc' class =3D serial bus subclass =3D USB ohci1@pci0:19:1: class=3D0x0c0310 card=3D0x12c910cf chip=3D0x43751002 re= v=3D0x00 hdr=3D0x00 vendor =3D 'ATI Technologies Inc' class =3D serial bus subclass =3D USB ehci0@pci0:19:2: class=3D0x0c0320 card=3D0x12ca10cf chip=3D0x43731002 re= v=3D0x00 hdr=3D0x00 vendor =3D 'ATI Technologies Inc' class =3D serial bus subclass =3D USB none0@pci0:20:0: class=3D0x0c0500 card=3D0x12c510cf chip=3D0x43721002 re= v=3D0x10 hdr=3D0x00 vendor =3D 'ATI Technologies Inc' device =3D 'SMBus' class =3D serial bus subclass =3D SMBus atapci0@pci0:20:1: class=3D0x01018a card=3D0x12c610cf chip=3D0x43761002 rev=3D0x00 hdr=3D0x00 vendor =3D 'ATI Technologies Inc' device =3D 'IDE Controller' class =3D mass storage subclass =3D ATA isab0@pci0:20:3: class=3D0x060100 card=3D0x12c710cf chip=3D0x43771002 re= v=3D0x00 hdr=3D0x00 vendor =3D 'ATI Technologies Inc' class =3D bridge subclass =3D PCI-ISA pcib2@pci0:20:4: class=3D0x060401 card=3D0x00000000 chip=3D0x43711002 re= v=3D0x00 hdr=3D0x01 vendor =3D 'ATI Technologies Inc' class =3D bridge subclass =3D PCI-PCI pcm0@pci0:20:5: class=3D0x040100 card=3D0x12ec10cf chip=3D0x43701002 rev= =3D0x01 hdr=3D0x00 vendor =3D 'ATI Technologies Inc' class =3D multimedia subclass =3D audio none1@pci0:20:6: class=3D0x070300 card=3D0x132110cf chip=3D0x43781002 re= v=3D0x01 hdr=3D0x00 vendor =3D 'ATI Technologies Inc' class =3D simple comms subclass =3D generic modem hostb1@pci0:24:0: class=3D0x060000 card=3D0x00000000 chip=3D0x11001022 r= ev=3D0x00 hdr=3D0x00 vendor =3D 'Advanced Micro Devices (AMD)' device =3D 'Athlon 64 / Opteron HyperTransport Technology Configurati= on' class =3D bridge subclass =3D HOST-PCI hostb2@pci0:24:1: class=3D0x060000 card=3D0x00000000 chip=3D0x11011022 r= ev=3D0x00 hdr=3D0x00 vendor =3D 'Advanced Micro Devices (AMD)' device =3D 'Athlon 64 / Opteron Address Map' class =3D bridge subclass =3D HOST-PCI hostb3@pci0:24:2: class=3D0x060000 card=3D0x00000000 chip=3D0x11021022 r= ev=3D0x00 hdr=3D0x00 vendor =3D 'Advanced Micro Devices (AMD)' device =3D 'Athlon 64 / Opteron DRAM Controller' class =3D bridge subclass =3D HOST-PCI hostb4@pci0:24:3: class=3D0x060000 card=3D0x00000000 chip=3D0x11031022 r= ev=3D0x00 hdr=3D0x00 vendor =3D 'Advanced Micro Devices (AMD)' device =3D 'Athlon 64 / Opteron Miscellaneous Control' class =3D bridge subclass =3D HOST-PCI acpi_video0@pci1:5:0: class=3D0x030000 card=3D0x130210cf chip=3D0x595510= 02 rev=3D0x00 hdr=3D0x00 vendor =3D 'ATI Technologies Inc' device =3D 'Mobility Radeon XPRESS 200' class =3D display subclass =3D VGA cbb0@pci8:8:0: class=3D0x060700 card=3D0x131e10cf chip=3D0x71341217 rev= =3D0x20 hdr=3D0x02 vendor =3D 'O2 Micro Inc' class =3D bridge subclass =3D PCI-CardBus none2@pci8:8:2: class=3D0x080500 card=3D0x131e10cf chip=3D0x71201217 rev= =3D0x00 hdr=3D0x00 vendor =3D 'O2 Micro Inc' class =3D base peripheral none3@pci8:8:3: class=3D0x068000 card=3D0x131e10cf chip=3D0x71301217 rev= =3D0x00 hdr=3D0x00 vendor =3D 'O2 Micro Inc' class =3D bridge bfe0@pci8:9:0: class=3D0x020000 card=3D0x123b10cf chip=3D0x170c14e4 rev= =3D0x02 hdr=3D0x00 vendor =3D 'Broadcom Corporation' device =3D 'BCM440x 100Base-TX Fast Ethernet' class =3D network subclass =3D ethernet none4@pci8:10:0: class=3D0x020000 card=3D0x132910cf chip=3D0x001b168c re= v=3D0x01 hdr=3D0x00 vendor =3D 'Atheros Communications Inc.' class =3D network subclass =3D ethernet fwohci0@pci8:11:0: class=3D0x0c0010 card=3D0x116210cf chip=3D0x8026104c rev=3D0x00 hdr=3D0x00 vendor =3D 'Texas Instruments (TI)' device =3D 'TSB43AB21 1394a-2000 OHCI PHY/link-layer Controller' class =3D serial bus subclass =3D FireWire acpidebug: /* RSD PTR: OEM=3DFUJ, ACPI_Rev=3D1.0x (0) RSDT=3D0x1de9ac36, cksum=3D180 */ /* RSDT: Length=3D56, Revision=3D1, Checksum=3D79, OEMID=3DFUJ, OEM Table ID=3DFJNB19A, OEM Revision=3D0x1060000, Creator ID=3DFUJ, Creator Revision=3D0x100 Entries=3D{ 0x1dea0f8c, 0x1dea0e15, 0x1dea0e65, 0x1dea0f28, 0x1dea0f64 = } */ /* FACP: Length=3D116, Revision=3D1, Checksum=3D34, OEMID=3DFUJ, OEM Table ID=3DFJNB19A, OEM Revision=3D0x1060000, Creator ID=3DFUJ, Creator Revision=3D0x100 FACS=3D0x1dea1fc0, DSDT=3D0x1de9ac6e INT_MODEL=3DAPIC Preferred_PM_Profile=3DUnspecified (0) SCI_INT=3D9 SMI_CMD=3D0xb0, ACPI_ENABLE=3D0xf0, ACPI_DISABLE=3D0xf1, S4BIOS_REQ=3D0= x0 PSTATE_CNT=3D0x0 PM1a_EVT_BLK=3D0xfc00-0xfc03 PM1b_EVT_BLK=3D0x1404-0x1407 PM1a_CNT_BLK=3D0xfc10-0xfc11 PM2_CNT_BLK=3D0x1400-0x1400 PM_TMR_BLK=3D0xfc20-0xfc23 GPE0_BLK=3D0xfc40-0xfc47 P_LVL2_LAT=3D1 us, P_LVL3_LAT=3D1001 us FLUSH_SIZE=3D0, FLUSH_STRIDE=3D0 DUTY_OFFSET=3D0, DUTY_WIDTH=3D0 DAY_ALRM=3D13, MON_ALRM=3D0, CENTURY=3D50 IAPC_BOOT_ARCH=3D Flags=3D{WBINVD,PROC_C1,SLP_BUTTON,RTC_S4,TMR_VAL_EXT} */ /* FACS: Length=3D64, HwSig=3D0x00000b98, Firm_Wake_Vec=3D0x00000000 Global_Lock=3D Flags=3D Version=3D0 */ /* DSDT: Length=3D24999, Revision=3D1, Checksum=3D197, OEMID=3DFUJ, OEM Table ID=3DFJNB19A, OEM Revision=3D0x1060000, Creator ID=3DMSFT, Creator Revision=3D0x100000e */ /* APIC: Length=3D80, Revision=3D1, Checksum=3D88, OEMID=3DFUJ, OEM Table ID=3DFJNB19A, OEM Revision=3D0x1060000, Creator ID=3DFUJ, Creator Revision=3D0x100 Local APIC ADDR=3D0xfee00000 Flags=3D{PC-AT} Type=3DLocal APIC ACPI CPU=3D0 Flags=3D{ENABLED} APIC ID=3D0 Type=3DIO APIC APIC ID=3D1 INT BASE=3D0 ADDR=3D0x00000000fec00000 Type=3DINT Override BUS=3D0 IRQ=3D9 INTR=3D21 Flags=3D{Polarity=3Dactive-lo, Trigger=3Dlevel} Type=3DLocal NMI ACPI CPU=3D0 LINT Pin=3D1 Flags=3D{Polarity=3Dactive-hi, Trigger=3Dedge} */ /* SSDT: Length=3D195, Revision=3D1, Checksum=3D204, OEMID=3DFUJ, OEM Table ID=3DFJNB19A, OEM Revision=3D0x1060000, Creator ID=3DFUJ, Creator Revision=3D0x1000 */ /* MCFG: Length=3D60, Revision=3D1, Checksum=3D129, OEMID=3DFUJ, OEM Table ID=3DFJNB19A, OEM Revision=3D0x1060000, Creator ID=3DFUJ, Creator Revision=3D0x100 Base Address=3D 0x00000000e0000000 Segment Group=3D 0x0000 Start Bus=3D 0 End Bus=3D 8 */ /* BOOT: Length=3D40, Revision=3D1, Checksum=3D231, OEMID=3DFUJ, OEM Table ID=3DFJNB19A, OEM Revision=3D0x1060000, Creator ID=3DFUJ, Creator Revision=3D0x100 */ /* * Intel ACPI Component Architecture * AML Disassembler version 20041119 * * Disassembly of /tmp/acpidump.rJ7UCO, Sat Jan 28 14:59:10 2006 */ DefinitionBlock ("DSDT.aml", "DSDT", 1, "FUJ ", "FJNB19A ", 17170432) { Name (BIDT, Buffer (0x10) { 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x07, 0x08, 0x09, 0x0A }) Name (BMNT, Package (0x0B) { "CP147685 / CP147686", "CP176595 / CP176596 / CP230645 / CP230646", "CP245456", "CP229835 / CP229836 / CP245464 - CP245466", "CP245464", "CP257390 / CP257391 / CP257395 / CP257396", "CP245480", "CP245360", "CP186215 / CP186216", "CP112045 / CP112046", "CP144820 / CP144821" }) Name (BMST, Package (0x0B) { "CP147685", "CP176595", "CP245456", "CP229835", "CP245464", "CP245472", "CP245480", "CP245360", "CP245376", "CP112045", "CP245408" }) Scope (_PR) { Processor (CPU0, 0x00, 0x0000FC30, 0x06) {} } Scope (\_SB) { Name (OSTB, Ones) OperationRegion (OSTY, SystemMemory, 0x1DEA1ECA, 0x00000001) Field (OSTY, AnyAcc, NoLock, Preserve) { TPOS, 8 } Method (OSTP, 0, NotSerialized) { If (LEqual (^OSTB, Ones)) { If (CondRefOf (\_OSI, Local0)) { If (\_OSI ("Windows 2001.1")) { Store (0x20, ^OSTB) Store (0x20, ^TPOS) } Else { If (\_OSI ("Windows 2001 SP1")) { Store (0x10, ^OSTB) Store (0x10, ^TPOS) } Else { If (\_OSI ("Windows 2001")) { Store (0x08, ^OSTB) Store (0x08, ^TPOS) } Else { Store (0x00, ^OSTB) Store (0x00, ^TPOS) } } } } Else { If (CondRefOf (\_OS, Local0)) { If (^SEQL (\_OS, "Microsoft Windows")) { Store (0x01, ^OSTB) Store (0x01, ^TPOS) } Else { If (^SEQL (\_OS, "Microsoft WindowsME: Millennium Edition")) { Store (0x02, ^OSTB) Store (0x02, ^TPOS) } Else { If (^SEQL (\_OS, "Microsoft Windows NT")) { Store (0x04, ^OSTB) Store (0x04, ^TPOS) } Else { Store (0x00, ^OSTB) Store (0x00, ^TPOS) } } } } Else { Store (0x00, ^OSTB) Store (0x00, ^TPOS) } } } Return (^OSTB) } Method (OSHT, 0, NotSerialized) { \_SB.OSTP () Store (0x48, CMD) Store (Zero, SSMI) } Method (SEQL, 2, Serialized) { Store (SizeOf (Arg0), Local0) Store (SizeOf (Arg1), Local1) If (LNot (LEqual (Local0, Local1))) { Return (Zero) } Name (BUF0, Buffer (Local0) {}) Store (Arg0, BUF0) Name (BUF1, Buffer (Local0) {}) Store (Arg1, BUF1) Store (Zero, Local2) While (LLess (Local2, Local0)) { Store (DerefOf (Index (BUF0, Local2)), Local3) Store (DerefOf (Index (BUF1, Local2)), Local4) If (LNot (LEqual (Local3, Local4))) { Return (Zero) } Increment (Local2) } Return (One) } } Name (BYIS, 0xFF) Name (BYIF, Ones) Name (BYRF, Zero) Name (PLWM, Zero) Name (NTFY, Zero) Name (SM0S, Zero) Name (SM1S, Zero) Name (SM2S, Zero) Name (RPEN, Zero) Name (RPDS, Zero) Name (TMBF, Zero) Name (TCNT, Zero) Name (LEDI, Zero) Name (BTNI, Zero) Name (NGTI, 0x06) Name (GPIC, Zero) Method (\_PIC, 1, NotSerialized) { Store (Arg0, GPIC) If (Arg0) { \_SB.PCI0.LPCB.DSPI () } } Scope (_SB) { OperationRegion (PSIO, SystemIO, 0x00000F40, 0x00000002) OperationRegion (PSBF, SystemMemory, 0x1DEA1DAA, 0x00000120) OperationRegion (OEMT, SystemMemory, 0x1DEA1F54, 0x00000020) OperationRegion (SYSC, SystemMemory, 0x1DEA1F4A, 0x0000000A) OperationRegion (VDEX, SystemMemory, 0x1DEA1D9A, 0x00000010) OperationRegion (BTNC, SystemMemory, 0x1DEA1F3A, 0x00000010) Scope (\) { Field (\_SB.PSIO, ByteAcc, NoLock, Preserve) { SSMI, 8 } Field (\_SB.PSBF, ByteAcc, NoLock, Preserve) { CMD, 8, DVID, 32 } Field (\_SB.PSBF, ByteAcc, NoLock, Preserve) { Offset (0x05), INF, 8 } Field (\_SB.PSBF, ByteAcc, NoLock, Preserve) { Offset (0x05), PIID, 320 } Field (\_SB.OEMT, ByteAcc, NoLock, Preserve) { SPAF, 2, SPBF, 2, PPF, 3, FDCF, 1, SIDF, 2, IMTF, 1, BLEN, 1, WLEN, 1, Offset (0x04), WAPB, 1, WBLT, 1, Offset (0x08), , 4, TTIM, 1, Offset (0x10), FDS0, 4, FDS1, 4, Offset (0x18), UMST, 32, UMSZ, 32 } Field (\_SB.SYSC, ByteAcc, NoLock, Preserve) { BHKF, 1, , 2, MHKF, 1, Offset (0x01), BLLM, 8, BLLT, 64 } Field (\_SB.SYSC, ByteAcc, NoLock, Preserve) { AHKF, 8 } Field (\_SB.VDEX, ByteAcc, NoLock, Preserve) { ADOS, 3, CLCD, 1, ALCD, 1, CCRT, 1, ACRT, 1, CTV, 1, ATV, 1, CDVI, 1, ADVI, 1, DSWF, 2 } Field (\_SB.BTNC, ByteAcc, NoLock, Preserve) { IRBF, 1, VLBF, 3, , 3, NGTF, 1, Offset (0x04), IRBC, 16 } } Method (_INI, 0, NotSerialized) { And (G3P1, 0xC0, Local0) If (LEqual (Local0, 0xC0)) { Store (Zero, LEDI) Store (Zero, BTNI) } Else { If (Local0) { Store (0x0100, LEDI) Store (0x00FF0101, BTNI) } Else { Store (Zero, LEDI) Store (0x000F0001, BTNI) } } } Device (MCFG) { Name (_HID, EisaId ("PNP0C02")) Name (_CRS, ResourceTemplate () { DWordMemory (ResourceConsumer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0xE0000000, 0xEFFFFFFF, 0x00000000, 0x10000000) }) } Device (PCI0) { Name (_HID, EisaId ("PNP0A03")) Name (_ADR, 0x00) Name (_UID, 0x01) Name (_BBN, 0x00) OperationRegion (K8ST, SystemMemory, 0x1DEA1F74, 0x00000048) Field (K8ST, AnyAcc, Lock, Preserve) { C0_0, 16, C2_0, 16, C4_0, 16, C6_0, 16, C8_0, 16, CA_0, 16, CC_0, 16, CE_0, 16, D0_0, 16, D2_0, 16, D4_0, 16, D6_0, 16, D8_0, 16, DA_0, 16, DC_0, 16, DE_0, 16, E0_0, 16, E2_0, 16, E4_0, 16, E6_0, 16, E8_0, 16, EA_0, 16, EC_0, 16, EE_0, 16, F0_0, 16, F2_0, 16, F4_0, 16, F6_0, 16, F8_0, 16, FA_0, 16, FC_0, 16, FE_0, 16, TOML, 32, TOMH, 32 } Name (RSRC, ResourceTemplate () { WordBusNumber (ResourceProducer, MinFixed, MaxFixed, SubDecode, 0x0000, 0x0000, 0x00FF, 0x0000, 0x0100, 0x00) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0x000A0000, 0x000BFFFF, 0x00000000, 0x00020000, 0x00) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0x000C0000, 0x000C1FFF, 0x00000000, 0x00002000, 0x00) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0x000C2000, 0x000C3FFF, 0x00000000, 0x00002000, 0x00) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0x000C4000, 0x000C5FFF, 0x00000000, 0x00002000, 0x00) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0x000C6000, 0x000C7FFF, 0x00000000, 0x00002000, 0x00) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0x000C8000, 0x000C9FFF, 0x00000000, 0x00002000, 0x00) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0x000CA000, 0x000CBFFF, 0x00000000, 0x00002000, 0x00) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0x000CC000, 0x000CDFFF, 0x00000000, 0x00002000, 0x00) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0x000CE000, 0x000CFFFF, 0x00000000, 0x00002000, 0x00) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0x000D0000, 0x000D1FFF, 0x00000000, 0x00002000, 0x00) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0x000D2000, 0x000D3FFF, 0x00000000, 0x00002000, 0x00) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0x000D4000, 0x000D5FFF, 0x00000000, 0x00002000, 0x00) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0x000D6000, 0x000D7FFF, 0x00000000, 0x00002000, 0x00) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0x000D8000, 0x000D9FFF, 0x00000000, 0x00002000, 0x00) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0x000DA000, 0x000DBFFF, 0x00000000, 0x00002000, 0x00) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0x000DC000, 0x000DDFFF, 0x00000000, 0x00002000, 0x00) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0x000DE000, 0x000DFFFF, 0x00000000, 0x00002000, 0x00) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0x000E0000, 0x000E1FFF, 0x00000000, 0x00002000, 0x00) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0x000E2000, 0x000E3FFF, 0x00000000, 0x00002000, 0x00) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0x000E4000, 0x000E5FFF, 0x00000000, 0x00002000, 0x00) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0x000E6000, 0x000E7FFF, 0x00000000, 0x00002000, 0x00) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0x000E8000, 0x000E9FFF, 0x00000000, 0x00002000, 0x00) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0x000EA000, 0x000EBFFF, 0x00000000, 0x00002000, 0x00) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0x000EC000, 0x000EDFFF, 0x00000000, 0x00002000, 0x00) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0x000EE000, 0x000EFFFF, 0x00000000, 0x00002000, 0x00) DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00) IO (Decode16, 0x0CF8, 0x0CF8, 0x01, 0x08) WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x0000, 0x0000, 0x0CF7, 0x0000, 0x0CF8, 0x00) WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x0000, 0x0D00, 0xFFFF, 0x0000, 0xF300, 0x00) }) Method (_CRS, 0, Serialized) { CreateBitField (RSRC, 0x0188, C0RW) CreateDWordField (RSRC, 0x42, C0LN) Store (One, C0RW) Store (0x2000, C0LN) If (And (C0_0, 0x1818)) { Store (0x00, C0LN) } CreateBitField (RSRC, 0x0260, C2RW) CreateDWordField (RSRC, 0x5D, C2LN) Store (One, C2RW) Store (0x2000, C2LN) If (And (C2_0, 0x1818)) { Store (0x00, C2LN) } CreateBitField (RSRC, 0x0338, C4RW) CreateDWordField (RSRC, 0x78, C4LN) Store (One, C4RW) Store (0x2000, C4LN) If (And (C4_0, 0x1818)) { Store (0x00, C4LN) } CreateBitField (RSRC, 0x0410, C6RW) CreateDWordField (RSRC, 0x93, C6LN) Store (One, C6RW) Store (0x2000, C6LN) If (And (C6_0, 0x1818)) { Store (0x00, C6LN) } CreateBitField (RSRC, 0x04E8, C8RW) CreateDWordField (RSRC, 0xAE, C8LN) Store (One, C8RW) Store (0x2000, C8LN) If (And (C8_0, 0x1818)) { Store (0x00, C8LN) } CreateBitField (RSRC, 0x05C0, CARW) CreateDWordField (RSRC, 0xC9, CALN) Store (One, CARW) Store (0x2000, CALN) If (And (CA_0, 0x1818)) { Store (0x00, CALN) } CreateBitField (RSRC, 0x0698, CCRW) CreateDWordField (RSRC, 0xE4, CCLN) Store (One, CCRW) Store (0x2000, CCLN) If (And (CC_0, 0x1818)) { Store (0x00, CCLN) } CreateBitField (RSRC, 0x0770, CERW) CreateDWordField (RSRC, 0xFF, CELN) Store (One, CERW) Store (0x2000, CELN) If (And (CE_0, 0x1818)) { Store (0x00, CELN) } CreateBitField (RSRC, 0x0848, D0RW) CreateDWordField (RSRC, 0x011A, D0LN) Store (One, D0RW) Store (0x2000, D0LN) If (And (D0_0, 0x1818)) { Store (0x00, D0LN) } CreateBitField (RSRC, 0x0920, D2RW) CreateDWordField (RSRC, 0x0135, D2LN) Store (One, D2RW) Store (0x2000, D2LN) If (And (D2_0, 0x1818)) { Store (0x00, D2LN) } CreateBitField (RSRC, 0x09F8, D4RW) CreateDWordField (RSRC, 0x0150, D4LN) Store (One, D4RW) Store (0x2000, D4LN) If (And (D4_0, 0x1818)) { Store (0x00, D4LN) } CreateBitField (RSRC, 0x0AD0, D6RW) CreateDWordField (RSRC, 0x016B, D6LN) Store (One, D6RW) Store (0x2000, D6LN) If (And (D6_0, 0x1818)) { Store (0x00, D6LN) } CreateBitField (RSRC, 0x0BA8, D8RW) CreateDWordField (RSRC, 0x0186, D8LN) Store (One, D8RW) Store (0x2000, D8LN) If (And (D8_0, 0x1818)) { Store (0x00, D8LN) } CreateBitField (RSRC, 0x0C80, DARW) CreateDWordField (RSRC, 0x01A1, DALN) Store (One, DARW) Store (0x2000, DALN) If (And (DA_0, 0x1818)) { Store (0x00, DALN) } CreateBitField (RSRC, 0x0D58, DCRW) CreateDWordField (RSRC, 0x01BC, DCLN) Store (One, DCRW) Store (0x2000, DCLN) If (And (DC_0, 0x1818)) { Store (0x00, DCLN) } CreateBitField (RSRC, 0x0E30, DERW) CreateDWordField (RSRC, 0x01D7, DELN) Store (One, DERW) Store (0x2000, DELN) If (And (DE_0, 0x1818)) { Store (0x00, DELN) } CreateBitField (RSRC, 0x0F08, E0RW) CreateDWordField (RSRC, 0x01F2, E0LN) Store (One, E0RW) Store (0x2000, E0LN) If (And (E0_0, 0x1818)) { Store (0x00, E0LN) } CreateBitField (RSRC, 0x0FE0, E2RW) CreateDWordField (RSRC, 0x020D, E2LN) Store (One, E2RW) Store (0x2000, E2LN) If (And (E2_0, 0x1818)) { Store (0x00, E2LN) } CreateBitField (RSRC, 0x10B8, E4RW) CreateDWordField (RSRC, 0x0228, E4LN) Store (One, E4RW) Store (0x2000, E4LN) If (And (E4_0, 0x1818)) { Store (0x00, E4LN) } CreateBitField (RSRC, 0x1190, E6RW) CreateDWordField (RSRC, 0x0243, E6LN) Store (One, E6RW) Store (0x2000, E6LN) If (And (E6_0, 0x1818)) { Store (0x00, E6LN) } CreateBitField (RSRC, 0x1268, E8RW) CreateDWordField (RSRC, 0x025E, E8LN) Store (One, E8RW) Store (0x2000, E8LN) If (And (E8_0, 0x1818)) { Store (0x00, E8LN) } CreateBitField (RSRC, 0x1340, EARW) CreateDWordField (RSRC, 0x0279, EALN) Store (One, EARW) Store (0x2000, EALN) If (And (EA_0, 0x1818)) { Store (0x00, EALN) } CreateBitField (RSRC, 0x1418, ECRW) CreateDWordField (RSRC, 0x0294, ECLN) Store (One, ECRW) Store (0x2000, ECLN) If (And (EC_0, 0x1818)) { Store (0x00, ECLN) } CreateBitField (RSRC, 0x14F0, EERW) CreateDWordField (RSRC, 0x02AF, EELN) Store (One, EERW) Store (0x2000, EELN) If (And (EE_0, 0x1818)) { Store (0x00, EELN) } CreateDWordField (RSRC, 0x02BE, BTMN) CreateDWordField (RSRC, 0x02C2, BTMX) CreateDWordField (RSRC, 0x02CA, BTLN) Store (TOML, BTMN) Store (0xDFFFFFFF, BTMX) Add (Subtract (BTMX, BTMN), 0x01, BTLN) Return (RSRC) } Method (_PRT, 0, NotSerialized) { If (GPIC) { Return (Package (0x05) { Package (0x04) { 0x0013FFFF, 0x00, 0x00, 0x13 }, Package (0x04) { 0x0014FFFF, 0x00, 0x00, 0x10 }, Package (0x04) { 0x0014FFFF, 0x01, 0x00, 0x11 }, Package (0x04) { 0x0014FFFF, 0x02, 0x00, 0x12 }, Package (0x04) { 0x0014FFFF, 0x03, 0x00, 0x13 } }) } Else { Return (Package (0x05) { Package (0x04) { 0x0013FFFF, 0x00, \_SB.PCI0.LPCB.LNKD, 0x00 }, Package (0x04) { 0x0014FFFF, 0x00, \_SB.PCI0.LPCB.LNKA, 0x00 }, Package (0x04) { 0x0014FFFF, 0x01, \_SB.PCI0.LPCB.LNKB, 0x00 }, Package (0x04) { 0x0014FFFF, 0x02, \_SB.PCI0.LPCB.LNKC, 0x00 }, Package (0x04) { 0x0014FFFF, 0x03, \_SB.PCI0.LPCB.LNKD, 0x00 } }) } } Device (AGP) { Name (_ADR, 0x00010000) Method (_PRT, 0, NotSerialized) { If (GPIC) { Return (Package (0x04) { Package (0x04) { 0x0005FFFF, 0x00, 0x00, 0x11 }, Package (0x04) { 0x0005FFFF, 0x01, 0x00, 0x12 }, Package (0x04) { 0x0005FFFF, 0x02, 0x00, 0x13 }, Package (0x04) { 0x0005FFFF, 0x03, 0x00, 0x10 } }) } Else { Return (Package (0x04) { Package (0x04) { 0x0005FFFF, 0x00, \_SB.PCI0.LPCB.LNKB, 0x00 }, Package (0x04) { 0x0005FFFF, 0x01, \_SB.PCI0.LPCB.LNKC, 0x00 }, Package (0x04) { 0x0005FFFF, 0x02, \_SB.PCI0.LPCB.LNKD, 0x00 }, Package (0x04) { 0x0005FFFF, 0x03, \_SB.PCI0.LPCB.LNKA, 0x00 } }) } } Device (VGA) { Name (_ADR, 0x00050000) Method (XLCD, 0, NotSerialized) { Return (One) } Method (XCRT, 0, NotSerialized) { Return (One) } Method (XTV, 0, NotSerialized) { Return (XOr (SOUT, One)) } Method (XDVI, 0, NotSerialized) { Return (Zero) } Scope (\) { Name (WLCD, Zero) Name (WCRT, Zero) Name (WTV, Zero) Name (WDVI, Zero) } Method (PHTK, 0, NotSerialized) { Store (Zero, DSWF) } Name (F10T, Package (0x0A) { 0x01, 0x02, 0x03, 0x04, 0x05, 0x01, 0x02, 0x03, 0x04, 0x05 }) Method (AHTK, 0, NotSerialized) { If (LAnd (LEqual (And (ADOS, 0x03), Zero), DSWF)) { UPDD () If (LEqual (DSWF, 0x01)) { Or (ShiftLeft (CDVI, 0x02), Or (ShiftLeft (CCRT, 0x01), CLCD), Local0) Or (ShiftLeft (ADVI, 0x02), Or (ShiftLeft (ACRT, 0x01), ALCD), Local1) Store (Zero, Local2) Store (0xFF, Local3) While (LAnd (LLess (Local2, 0x0A), LEqual (Local3, 0xFF))) { If (LEqual (DerefOf (Index (F10T, Local2)), Local0)) { If (LAnd (CTV, ATV)) { Store (Local2, Local3) } Else { Add (Local2, 0x01, Local3) } } Increment (Local2) } Store (0xFF, Local2) If (LNot (LEqual (Local3, 0xFF))) { While (LAnd (LLess (Local3, 0x0A), LEqual (Local2, 0xFF))) { If (LEqual (And (DerefOf (Index (F10T, Local3)), Local1), DerefOf (Index (F10T, Local3)))) { Store (DerefOf (Index (F10T, Local3)), Local2) } Increment (Local3) } } If (LEqual (Local2, 0xFF)) { If (ALCD) { Store (0x01, Local2) } Else { If (ACRT) { Store (0x02, Local2) } Else { If (ADVI) { Store (0x04, Local2) } Else { Store (0x02, Local2) } } } } And (Local2, 0x01, WLCD) ShiftRight (And (Local2, 0x02), 0x01, WCRT) ShiftRight (And (Local2, 0x04), 0x02, WDVI) Store (Zero, WTV) Notify (\_SB.PCI0.AGP.VGA, 0x80) } Else { If (LEqual (DSWF, 0x02)) { And (CLCD, ALCD, WLCD) And (CCRT, ACRT, WCRT) And (CDVI, ADVI, WDVI) And (XOr (CTV, 0x01), ATV, WTV) If (LOr (LOr (WTV, WDVI), LOr (WCRT, WLCD))) { If (LAnd (LAnd (WLCD, WCRT), WTV)) { Store (Zero, WCRT) } If (LAnd (LAnd (WLCD, WDVI), WTV)) { Store (Zero, WDVI) } If (LAnd (LAnd (WCRT, WDVI), WTV)) { Store (Zero, WDVI) } Notify (\_SB.PCI0.AGP.VGA, 0x80) } } } } } Method (UPDD, 0, NotSerialized) { Store (0xFF, DVID) Store (0x8E, CMD) Store (Zero, SSMI) } Method (_DOS, 1, NotSerialized) { And (Arg0, 0x07, ADOS) } Method (_DOD, 0, NotSerialized) { Return (Package (0x04) { 0x00010100, 0x00010110, 0x00010200, 0x00010210 }) } Device (CRT) { Method (_ADR, 0, NotSerialized) { Return (0x0100) } Method (_DCS, 0, NotSerialized) { If (XCRT ()) { UPDD () Return (Or (0x0D, Or (ShiftLeft (ACRT, 0x04), ShiftLeft (CCRT, 0x01)))) } Else { Return (Zero) } } Method (_DGS, 0, NotSerialized) { Return (WCRT) } Method (_DSS, 1, NotSerialized) { Noop } } Device (LCD) { Method (_ADR, 0, NotSerialized) { Return (0x0110) } Method (_DCS, 0, NotSerialized) { If (XLCD ()) { UPDD () Return (Or (0x0D, Or (ShiftLeft (ALCD, 0x04), ShiftLeft (CLCD, 0x01)))) } Else { Return (Zero) } } Method (_DGS, 0, NotSerialized) { Return (WLCD) } Method (_DSS, 1, NotSerialized) { Noop } } Device (TV) { Method (_ADR, 0, NotSerialized) { Return (0x0200) } Method (_DCS, 0, NotSerialized) { If (XTV ()) { UPDD () Return (Or (0x0D, Or (ShiftLeft (ATV, 0x04)= , ShiftLeft (CTV, 0x01)))) } Else { Return (Zero) } } Method (_DGS, 0, NotSerialized) { Return (WTV) } Method (_DSS, 1, NotSerialized) { Noop } } Device (DVI) { Method (_ADR, 0, NotSerialized) { Return (0x0210) } Method (_DCS, 0, NotSerialized) { If (XDVI ()) { UPDD () Return (Or (0x0D, Or (ShiftLeft (ADVI, 0x04), ShiftLeft (CDVI, 0x01)))) } Else { Return (Zero) } } Method (_DGS, 0, NotSerialized) { Return (WDVI) } Method (_DSS, 1, NotSerialized) { Noop } } } } Device (PCIB) { Name (_ADR, 0x00140004) Method (_PRT, 0, NotSerialized) { If (GPIC) { Return (Package (0x05) { Package (0x04) { 0x0008FFFF, 0x00, 0x00, 0x14 }, Package (0x04) { 0x0009FFFF, 0x00, 0x00, 0x14 }, Package (0x04) { 0x000AFFFF, 0x00, 0x00, 0x16 }, Package (0x04) { 0x000AFFFF, 0x01, 0x00, 0x17 }, Package (0x04) { 0x000BFFFF, 0x00, 0x00, 0x16 } }) } Else { Return (Package (0x05) { Package (0x04) { 0x0008FFFF, 0x00, \_SB.PCI0.LPCB.LNKE, 0x00 }, Package (0x04) { 0x0009FFFF, 0x00, \_SB.PCI0.LPCB.LNKE, 0x00 }, Package (0x04) { 0x000AFFFF, 0x00, \_SB.PCI0.LPCB.LNKG, 0x00 }, Package (0x04) { 0x000AFFFF, 0x01, \_SB.PCI0.LPCB.LNKH, 0x00 }, Package (0x04) { 0x000BFFFF, 0x00, \_SB.PCI0.LPCB.LNKG, 0x00 } }) } } Name (_PRW, Package (0x02) { 0x04, 0x04 }) } Device (MBIO) { Name (_HID, EisaId ("PNP0C02")) Method (_STA, 0, NotSerialized) { Return (0x0F) } Name (RSRC, ResourceTemplate () { IO (Decode16, 0x0010, 0x0010, 0x01, 0x10) IO (Decode16, 0x0024, 0x0024, 0x01, 0x02) IO (Decode16, 0x0028, 0x0028, 0x01, 0x02) IO (Decode16, 0x002C, 0x002C, 0x01, 0x02) IO (Decode16, 0x002E, 0x002E, 0x01, 0x02) IO (Decode16, 0x0030, 0x0030, 0x01, 0x02) IO (Decode16, 0x0034, 0x0034, 0x01, 0x02) IO (Decode16, 0x0038, 0x0038, 0x01, 0x02) IO (Decode16, 0x003C, 0x003C, 0x01, 0x02) IO (Decode16, 0x0050, 0x0050, 0x01, 0x04) IO (Decode16, 0x0062, 0x0062, 0x01, 0x01) IO (Decode16, 0x0066, 0x0066, 0x01, 0x01) IO (Decode16, 0x0072, 0x0072, 0x01, 0x06) IO (Decode16, 0x0080, 0x0080, 0x01, 0x01) IO (Decode16, 0x0090, 0x0090, 0x01, 0x10) IO (Decode16, 0x00A4, 0x00A4, 0x01, 0x02) IO (Decode16, 0x00A8, 0x00A8, 0x01, 0x02) IO (Decode16, 0x00AC, 0x00AC, 0x01, 0x02) IO (Decode16, 0x00B0, 0x00B0, 0x01, 0x02) IO (Decode16, 0x00B4, 0x00B4, 0x01, 0x02) IO (Decode16, 0x00B8, 0x00B8, 0x01, 0x02) IO (Decode16, 0x00BC, 0x00BC, 0x01, 0x02) IO (Decode16, 0x0220, 0x0220, 0x01, 0x10) IO (Decode16, 0x0280, 0x0280, 0x01, 0x14) IO (Decode16, 0x040B, 0x040B, 0x01, 0x01) IO (Decode16, 0x04D0, 0x04D0, 0x01, 0x02) IO (Decode16, 0x04D6, 0x04D6, 0x01, 0x01) IO (Decode16, 0x087F, 0x087F, 0x01, 0x01) IO (Decode16, 0x0C00, 0x0C00, 0x01, 0x02) IO (Decode16, 0x0C14, 0x0C14, 0x01, 0x01) IO (Decode16, 0x0C50, 0x0C50, 0x01, 0x03) IO (Decode16, 0x0C6C, 0x0C6C, 0x01, 0x01) IO (Decode16, 0x0C6F, 0x0C6F, 0x01, 0x01) IO (Decode16, 0x0CD4, 0x0CD4, 0x01, 0x02) IO (Decode16, 0x0CD6, 0x0CD6, 0x01, 0x02) IO (Decode16, 0x0CD8, 0x0CD8, 0x01, 0x08) IO (Decode16, 0x0F40, 0x0F40, 0x01, 0x02) IO (Decode16, 0x1000, 0x1000, 0x01, 0x80) IO (Decode16, 0x1080, 0x1080, 0x01, 0x80) IO (Decode16, 0x1400, 0x1400, 0x01, 0x80) IO (Decode16, 0x1480, 0x1480, 0x01, 0x80) IO (Decode16, 0xF800, 0xF800, 0x01, 0x80) IO (Decode16, 0xF880, 0xF880, 0x01, 0x80) IO (Decode16, 0xFC00, 0xFC00, 0x01, 0x80) IO (Decode16, 0xFC80, 0xFC80, 0x01, 0x80) IO (Decode16, 0xFD00, 0xFD00, 0x01, 0x70) Memory32Fixed (ReadWrite, 0xFEC00000, 0x00001000) Memory32Fixed (ReadWrite, 0xFEE00000, 0x00001000) Memory32Fixed (ReadWrite, 0xFEF00000, 0x00100000) Memory32Fixed (ReadWrite, 0x000CF000, 0x00001000) Memory32Fixed (ReadWrite, 0xFFB00000, 0x00100000) }) Method (_CRS, 0, Serialized) { CreateDWordField (RSRC, 0x0198, MBBS) CreateDWordField (RSRC, 0x019C, MBLN) Store (UMST, MBBS) Store (UMSZ, MBLN) Return (RSRC) } } Device (LPCB) { Name (_ADR, 0x00140003) OperationRegion (SIO, SystemIO, 0x2E, 0x02) OperationRegion (FJIO, SystemIO, 0xFD60, 0x0D) Scope (\) { Field (\_SB.PCI0.LPCB.FJIO, ByteAcc, NoLock, Preserve) { AIDC, 8, ADTC, 8, AIDB, 8, ADTB, 8, AIDA, 8, ADTA, 8, AIDD, 8, ADTD, 8, PMID, 8, Offset (0x0C), PMDT, 8 } } OperationRegion (PMIO, SystemIO, 0x0CD6, 0x02) OperationRegion (PCTL, SystemIO, 0xFC30, 0x04) Scope (\) { Field (\_SB.PCI0.LPCB.PMIO, ByteAcc, NoLock, Preserve) { INPM, 8, DAPM, 8 } IndexField (INPM, DAPM, ByteAcc, NoLock, Preserve) { Offset (0x37), , 6, LPOL, 1 } Field (\_SB.PCI0.LPCB.PCTL, ByteAcc, NoLock, Preserve) { , 1, THDC, 3, THRE, 1 } } Method (_INI, 0, NotSerialized) { Store (Zero, NTFY) \_SB.OSTP () If (LEqual (\_SB.PCI0.LPCB.CMBT._STA (), 0x00)) { \_SB.PCI0.LPCB.CMBT.SWCF () } AINI () If (CondRefOf (\DC1S, Local0)) { Store (One, RPEN) Store (B2TC, RPDS) } } Scope (\) { IndexField (AIDA, ADTA, ByteAcc, NoLock, Preserve) { Offset (0x09), RI1M, 1, RI2M, 1, RI3M, 1, RI4M, 1, RI1, 1, RI2, 1, RI3, 1, RI4, 1, , 2, CVCL, 1, , 3, BLCT, 2, Offset (0x20), G5P0, 8, G5C0, 8, G3P0, 8, G3C0, 8, Offset (0x40), SSF0, 8, SSF1, 8, SSM0, 8, SSM1, 8, SSI0, 8, SSTM, 8, SSF2, 8, SSM2, 8, SSI1, 8, Offset (0x52), G3P1, 8, G3C1, 8, G3P2, 8, G3C2, 8, QSWC, 8, Offset (0x60), SSS0, 8, SSS1, 8 } IndexField (AIDB, ADTB, ByteAcc, NoLock, Preserve) { Offset (0x29), BRCL, 8, LCDB, 8, Offset (0x30), LCDC, 8 } IndexField (AIDC, ADTC, ByteAcc, NoLock, Preserve) { TASF, 1, TBSF, 1, B1SU, 1, B1SD, 1, B2SU, 1, B2SD, 1, Offset (0x02), , 4, VSTB, 1, Offset (0x05), , 6, ACPW, 1, Offset (0x20), BCTL, 8, Offset (0x23), TAF, 1, TASM, 1, , 2, TBF, 1, TBSM, 1, Offset (0x24), TIMA, 8, TIMB, 8, Offset (0x28), CDLP, 8, HDLP, 8, FDLP, 8, Offset (0x4E), B1UM, 1, B1DM, 1, , 1, B1TC, 1, B2UM, 1, B2DM, 1, , 1, B2TC, 1, BAPC, 6 } IndexField (AIDC, ADTC, ByteAcc, NoLock, Preserve) { STAE, 8 } IndexField (AIDD, ADTD, ByteAcc, NoLock, Preserve) { Offset (0x80), GIDI, 8, GIDC, 8, GIDO, 8, Offset (0x90), G3SI, 8, G3SC, 8, G3SO, 8, G3SM, 8, Offset (0xA0), WOXF, 8, WOXE, 8, WOXD, 8, WOXS, 8, Offset (0xB0), AMPV, 6 } } Scope (\) { IndexField (PMID, PMDT, ByteAcc, NoLock, Preserve) { Offset (0xA0), UPPR, 1, ERRO, 1, PASS, 1, PSOK, 1, PSNG, 1, TOUT, 1, SIRN, 1, STSC, 1, OVFL, 1, LWMD, 1, TALM, 1, EMGC, 1, OCNT, 4, Offset (0xC0), Offset (0xC1), B1P, 1, B2P, 1, B1C, 1, B2C, 1, B1ER, 1, B2ER, 1, PKSH, 1, CMB, 1, B1CP, 8, B2CP, 8, BAVG, 8, B1VH, 8, B1VL, 8, B2VH, 8, B2VL, 8, B1TM, 8, B2TM, 8, B1CH, 8, B1CL, 8, B2CH, 8, B2CL, 8, BTMH, 8, BTML, 8, B1LH, 8, B1LL, 8, B2LH, 8, B2LL, 8, B1ID, 4, B1NO, 4, B2ID, 4, B2NO, 4, B1DV, 8, B2DV, 8, B1DH, 8, B1DL, 8, B2DH, 8, B2DL, 8, TBSI, 8, TBSH, 8, TBSL, 8 } } Scope (\) { IndexField (AIDA, ADTA, ByteAcc, NoLock, Preserve) { Offset (0x22), , 3, BRST, 1, SOUT, 1, Offset (0x52), , 2, BY1C, 2 } IndexField (AIDC, ADTC, ByteAcc, NoLock, Preserve) { Offset (0x4F), BY1O, 1 } IndexField (AIDD, ADTD, ByteAcc, NoLock, Preserve) { Offset (0x80), , 2, BY1I, 4, Offset (0xB0), MBLB, 8 } } Method (AINI, 0, NotSerialized) { If (TTIM) { Store (Zero, TMBF) Store (0x01, TBSM) Store (0x00, TBSF) Store (0xF0, TIMB) } Else { Store (Zero, TBSM) } Store (LWMD, PLWM) If (PLWM) { Store (0x04, THDC) Store (One, THRE) } Else { Store (Zero, THRE) } } Name (RGSI, 0x19) Device (FJEX) { Name (_HID, "FUJ02B1") Method (_STA, 0, NotSerialized) { Return (0x0F) } Method (RBLL, 0, NotSerialized) { Return (BLLM) } Scope (\) { Name (LBLL, 0x00) Name (LLCD, Ones) } Method (GBLL, 0, NotSerialized) { Store (LBLL, Local2) Store (LCDB, Local1) If (LNot (LEqual (LLCD, Local1))) { Store (Local1, LLCD) Name (BBCT, Buffer (BLLM) {}) Store (BLLT, BBCT) Store (BLLM, Local0) While (Local0) { Decrement (Local0) If (LEqual (GBUF (BBCT, Local0), Local1)) { Store (Local0, Local2) Store (Local0, LBLL) Store (Zero, Local0) } } } If (BHKF) { Store (Zero, BHKF) Or (Local2, 0x80000000, Local2) } Return (Local2) } Method (SBLL, 1, NotSerialized) { If (NGTF) { Store (Arg0, LSBL) Return (Zero) } If (LLess (Arg0, BLLM)) { Name (BBCT, Buffer (BLLM) {}) Store (BLLT, BBCT) CreateByteField (BBCT, Arg0, BLL0) Store (BLL0, LCDB) Store (Arg0, DVID) Store (0x82, CMD) Store (Zero, SSMI) } } Method (GBUF, 2, NotSerialized) { CreateByteField (Arg0, Arg1, BLL0) Return (BLL0) } Method (GMOU, 0, NotSerialized) { Store (0x02, DVID) Store (0x91, CMD) Store (Zero, SSMI) Store (DVID, Local0) If (MHKF) { Store (Zero, MHKF) Or (Local0, 0x80000000, Local0) } Return (Local0) } Method (SMOU, 1, NotSerialized) { If (LNot (LGreater (Arg0, One))) { Store (Arg0, DVID) Store (0x91, CMD) Store (Zero, SSMI) } } Method (GHKS, 0, NotSerialized) { Return (AHKF) } Method (GSIF, 0, NotSerialized) { If (IMTF) { Or (RGSI, 0x08, RGSI) } Else { And (RGSI, 0xFFFFFFF7, RGSI) } Return (RGSI) } } Scope (\) { Name (BTWK, Zero) Name (BTBL, Zero) Name (BTST, Zero) IndexField (AIDA, ADTA, ByteAcc, NoLock, Preserve) { Offset (0x20), , 5, ABEX, 1, Offset (0x44), , 2, WLSW, 1, Offset (0x52), , 1, WLRF, 1, Offset (0x54), , 3, ABAT, 1 } IndexField (AIDC, ADTC, ByteAcc, NoLock, Preserve) { Offset (0x30), ABLC, 1 } IndexField (AIDD, ADTD, ByteAcc, NoLock, Preserve) { Offset (0x92), , 3, ABON, 1, , 1, ABDT, 1 } } Device (CMBT) { Name (_HID, "FUJ02E1") Method (_STA, 0, NotSerialized) { If (ABEX) { Return (0x00) } Else { If (BLEN) { Return (0x0F) } Else { Return (0x0D) } } } Method (_INI, 0, NotSerialized) { Store (Zero, BTWK) Store (Zero, BTBL) SWCF () } Method (INFO, 0, NotSerialized) { If (LEqual (_STA (), 0x0F)) { Store (0x97, Local0) } Else { Store (0x90, Local0) } Or (Local0, 0x08, Local0) Return (Local0) } Method (STAT, 0, NotSerialized) { Store (0x00, Local0) If (ABON) { Or (Local0, 0x02, Local0) } If (BTWK) { Or (Local0, 0x04, Local0) } If (WLRF) { Or (Local0, 0x08, Local0) } If (LNot (ABAT)) { Or (Local0, 0x10, Local0) } If (ABLC) { Or (Local0, 0x20, Local0) } If (BTBL) { Or (Local0, 0x80, Local0) } Return (Local0) } Method (CNTL, 2, NotSerialized) { If (And (Arg0, 0x02)) { If (LEqual (_STA (), 0x0F)) { If (And (Arg1, 0x02)) { Store (One, ABON) } Else { Store (Zero, ABON) } } } If (And (Arg0, 0x04)) { If (LEqual (_STA (), 0x0F)) { ShiftRight (And (Arg1, 0x04), 0x02, BTWK) } } If (LAnd (And (Arg0, 0x08), WLEN)) { ShiftRight (And (Arg1, 0x08), 0x03, WLRF) } If (And (Arg0, 0x10)) { If (And (Arg1, 0x10)) { Store (Zero, ABAT) } Else { Store (One, ABAT) } } If (And (Arg0, 0x20)) { ShiftRight (And (Arg1, 0x20), 0x05, ABLC) } If (And (Arg0, 0x80)) { ShiftRight (And (Arg1, 0x80), 0x07, BTBL) If (BTBL) { If (WLSW) { Notify (CMBT, 0x81) } Else { Notify (CMBT, 0x82) } } } } Method (SWCF, 0, NotSerialized) { If (BTBL) { If (WLSW) { Notify (CMBT, 0x81) } Else { Notify (CMBT, 0x82) } } Else { If (WLSW) { If (LEqual (_STA (), 0x0F)) { Store (One, ABON) Store (Zero, ABDT) Store (One, ABLC) If (WLEN) { Store (One, WLRF) } Else { Store (Zero, WLRF) } Store (Zero, ABAT) } Else { Store (Zero, ABON) Store (Zero, ABDT) If (WLEN) { Store (One, WLRF) Store (One, ABLC) } Else { Store (Zero, WLRF) Store (Zero, ABLC) } Store (One, ABAT) } } Else { Store (Zero, ABON) Store (Zero, ABDT) Store (Zero, WLRF) Store (Zero, ABLC) Store (One, ABAT) } } } Method (BPTS, 1, NotSerialized) { If (LOr (LEqual (Arg0, 0x03), LEqual (Arg0, 0x04))) { Store (WLRF, BTST) Or (ShiftLeft (ABAT, 0x01), BTST, BTST) Or (ShiftLeft (WLSW, 0x02), BTST, BTST) Or (ShiftLeft (ABON, 0x03), BTST, BTST) Or (ShiftLeft (ABDT, 0x04), BTST, BTST) If (LAnd (LEqual (_STA (), 0x0F), LAnd (BTWK, WLSW))) { Store (Zero, WLRF) Store (Zero, ABAT) } Else { Store (Zero, WLRF) Store (One, ABAT) } Store (Zero, ABLC) } Else { If (LEqual (Arg0, 0x05)) { Store (Zero, ABON) Store (Zero, ABDT) Store (Zero, WLRF) Store (Zero, ABLC) Store (One, ABAT) } } } Method (BWAK, 1, NotSerialized) { If (LOr (LEqual (Arg0, 0x03), LEqual (Arg0, 0x04))) { Store (0x94, CMD) Store (Zero, SSMI) If (WBLT) { Notify (\_SB.PWRB, 0x02) } Store (And (BTST, 0x01), WLRF) ShiftRight (And (BTST, 0x02), 0x01, ABAT) ShiftRight (And (BTST, 0x08), 0x03, ABON) ShiftRight (And (BTST, 0x10), 0x04, ABDT) If (LAnd (WLSW, LOr (WLEN, ABON))) { Store (One, ABLC) } If (LNot (LEqual (ShiftRight (And (BTST, 0x04), 0x02), WLSW))) { SWCF () } } } } Device (DMAC) { Name (_HID, EisaId ("PNP0200")) Method (_STA, 0, NotSerialized) { Return (0x0F) } Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0000, 0x0000, 0x01, 0x10) IO (Decode16, 0x0081, 0x0081, 0x01, 0x0F) IO (Decode16, 0x00C0, 0x00C0, 0x01, 0x20) DMA (Compatibility, NotBusMaster, Transfer16) {4} }) } Device (TIME) { Name (_HID, EisaId ("PNP0100")) Method (_STA, 0, NotSerialized) { Return (0x0F) } Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0040, 0x0040, 0x01, 0x04) IRQNoFlags () {0} }) } Device (PIC) { Name (_HID, EisaId ("PNP0000")) Method (_STA, 0, NotSerialized) { Return (0x0F) } Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0020, 0x0020, 0x01, 0x02) IO (Decode16, 0x00A0, 0x00A0, 0x01, 0x02) IRQNoFlags () {2} }) } Device (RTC) { Name (_HID, EisaId ("PNP0B00")) Method (_STA, 0, NotSerialized) { Return (0x0F) } Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0070, 0x0070, 0x01, 0x02) IRQNoFlags () {8} }) } Device (SPKR) { Name (_HID, EisaId ("PNP0800")) Method (_STA, 0, NotSerialized) { Return (0x0F) } Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0061, 0x0061, 0x01, 0x01) }) } Device (MATH) { Name (_HID, EisaId ("PNP0C04")) Method (_STA, 0, NotSerialized) { Return (0x0F) } Name (_CRS, ResourceTemplate () { IO (Decode16, 0x00F0, 0x00F0, 0x01, 0x0F) IRQNoFlags () {13} }) } Device (KBC) { Name (R101, 0x0303D041) Name (R106, 0x2003D041) Method (_HID, 0, NotSerialized) { If (SIDF) { Return (R101) } Else { Return (R106) } } Method (_STA, 0, NotSerialized) { Return (0x0F) } Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0060, 0x0060, 0x01, 0x01) IO (Decode16, 0x0064, 0x0064, 0x01, 0x01) IRQNoFlags () {1} }) } Device (PS2M) { Name (_HID, EisaId ("PNP0F13")) Method (_STA, 0, NotSerialized) { Return (0x0F) } Name (_CRS, ResourceTemplate () { IRQNoFlags () {12} }) } OperationRegion (LPCR, PCI_Config, 0x44, 0x07) Field (LPCR, ByteAcc, NoLock, Preserve) { X378, 2, X278, 2, X3BC, 2, X3F8, 1, X2F8, 1, X220, 1, X228, 1, X238, 1, X2E8, 1, X338, 1, X3E8, 1, X230, 1, X240, 1, X260, 1, X280, 1, X300, 1, X310, 1, X320, 1, X330, 1, X530, 1, X604, 1, XE80, 1, XF40, 1, X3F0, 1, X370, 1, X200, 1, , 1, , 1, X388, 1, X02E, 1, X04E, 1, , 1, , 1, , 1, , 1, X070, 1, Offset (0x06), X400, 1, X480, 1, X500, 1, X580, 1, , 1, , 1, , 1, Offset (0x07) } Method (DENA, 3, Serialized) { If (LEqual (Arg0, 0x00)) { DDIS (Arg0) If (LEqual (Arg1, 0x03F8)) { Store (One, X3F8) } If (LEqual (Arg1, 0x02F8)) { Store (One, X2F8) } If (LEqual (Arg1, 0x03E8)) { Store (One, X3E8) } If (LEqual (Arg1, 0x02E8)) { Store (One, X2E8) } } If (LOr (LOr (LEqual (Arg0, 0x01), LEqual (Arg0, 0x02))= , LEqual (Arg0, 0x03))) { DDIS (Arg0) If (LEqual (Arg1, 0x03F8)) { Store (One, X3F8) } If (LEqual (Arg1, 0x02F8)) { Store (One, X2F8) } If (LEqual (Arg1, 0x03E8)) { Store (One, X3E8) } If (LEqual (Arg1, 0x02E8)) { Store (One, X2E8) } If (LEqual (Arg0, 0x03)) { If (LEqual (Arg2, 0x0400)) { Store (One, X400) } If (LEqual (Arg2, 0x0480)) { Store (One, X480) } If (LEqual (Arg2, 0x0500)) { Store (One, X500) } If (LEqual (Arg2, 0x0580)) { Store (One, X580) } } } If (LOr (LEqual (Arg0, 0x04), LEqual (Arg0, 0x05))) { DDIS (Arg0) If (LEqual (Arg1, 0x0378)) { Store (0x03, X378) } If (LEqual (Arg1, 0x0278)) { Store (0x03, X278) } If (LEqual (Arg1, 0x03BC)) { Store (0x03, X3BC) } } If (LEqual (Arg0, 0x07)) { DDIS (Arg0) If (LEqual (Arg1, 0x03F0)) { Store (One, X3F0) } If (LEqual (Arg1, 0x0370)) { Store (One, X370) } } } Method (DDIS, 1, Serialized) { If (LEqual (Arg0, 0x00)) { GETR (0x01, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3)) If (LNot (LEqual (Local0, 0x03F8))) { Store (Zero, X3F8) } If (LNot (LEqual (Local0, 0x02F8))) { Store (Zero, X2F8) } If (LNot (LEqual (Local0, 0x03E8))) { Store (Zero, X3E8) } If (LNot (LEqual (Local0, 0x02E8))) { Store (Zero, X2E8) } } If (LOr (LOr (LEqual (Arg0, 0x01), LEqual (Arg0, 0x02))= , LEqual (Arg0, 0x03))) { GETR (0x00, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3)) If (LNot (LEqual (Local0, 0x03F8))) { Store (Zero, X3F8) } If (LNot (LEqual (Local0, 0x02F8))) { Store (Zero, X2F8) } If (LNot (LEqual (Local0, 0x03E8))) { Store (Zero, X3E8) } If (LNot (LEqual (Local0, 0x02E8))) { Store (Zero, X2E8) } If (LEqual (Arg0, 0x03)) { Store (Zero, X400) Store (Zero, X480) Store (Zero, X500) Store (Zero, X580) } } If (LOr (LEqual (Arg0, 0x04), LEqual (Arg0, 0x05))) { Store (Zero, X378) Store (Zero, X278) Store (Zero, X3BC) } If (LEqual (Arg0, 0x07)) { Store (Zero, X3F0) Store (Zero, X370) } } Field (SIO, ByteAcc, NoLock, Preserve) { SIID, 8, SIDT, 8 } IndexField (SIID, SIDT, ByteAcc, NoLock, Preserve) { , 3, FDCP, 1, Offset (0x01), , 2, PPP, 1, PPM, 1, Offset (0x02), , 3, U1P, 1, , 3, U2P, 1, Offset (0x04), PPEM, 2, Offset (0x0C), U2MD, 6, Offset (0x20), FDA, 8, , 2, ETOS, 1, Offset (0x23), PPA, 8, U1A, 8, U2A, 8, PPD, 4, FDD, 4, PPI, 4, FDI, 4, U2I, 4, U1I, 4, Offset (0x2B), IRA, 8, IRD, 4 } Mutex (MTXS, 0x00) Method (ENTR, 0, NotSerialized) { Acquire (MTXS, 0xFFFF) Store (0x55, SIID) } Method (EXIT, 0, NotSerialized) { Store (0xAA, SIID) Release (MTXS) } Method (SETR, 5, NotSerialized) { ENTR () If (Arg3) { Subtract (FindSetRightBit (Arg3), One, Local0) } Else { Store (Zero, Local0) } If (Arg4) { Subtract (FindSetRightBit (Arg4), One, Local1) } Else { Store (0x0F, Local1) } If (LEqual (Arg0, 0x00)) { ShiftRight (Arg1, 0x02, U1A) Store (Local0, U1I) } Else { If (LEqual (Arg0, 0x01)) { ShiftRight (Arg1, 0x02, U2A) Store (Local0, U2I) } Else { If (LEqual (Arg0, 0x02)) { ShiftRight (Arg1, 0x02, U2A) Store (Local0, U2I) } Else { If (LEqual (Arg0, 0x03)) { ShiftRight (Arg1, 0x02, U2A) ShiftRight (Arg2, 0x03, IRA) Store (Local0, U2I) Store (Local1, IRD) } Else { If (LEqual (Arg0, 0x04)) { ShiftRight (Arg1, 0x02, PPA) Store (Local0, PPI) } Else { If (LEqual (Arg0, 0x05)) { ShiftRight (Arg1, 0x02, PPA) Store (Local0, PPI) Store (Local1, PPD) } Else { If (LEqual (Arg0, 0x07)) { ShiftRight (Arg1, 0x02, FDA= ) Store (Local0, FDI) Store (Local1, FDD) } } } } } } } EXIT () If (Arg1) { If (CondRefOf (DENA, Local0)) { DENA (Arg0, Arg1, Arg2) } SETM (Arg0) } Else { If (CondRefOf (DDIS, Local0)) { DDIS (Arg0) } } } Method (GETR, 5, NotSerialized) { ENTR () Store (Zero, Local0) Store (0x0F, Local1) If (LEqual (Arg0, 0x00)) { ShiftLeft (U1A, 0x02, Arg1) Store (U1I, Local0) } Else { If (LEqual (Arg0, 0x01)) { ShiftLeft (U2A, 0x02, Arg1) Store (U2I, Local0) } Else { If (LEqual (Arg0, 0x02)) { ShiftLeft (U2A, 0x02, Arg1) Store (U2I, Local0) } Else { If (LEqual (Arg0, 0x03)) { ShiftLeft (U2A, 0x02, Arg1) ShiftLeft (IRA, 0x03, Arg2) Store (U2I, Local0) Store (IRD, Local1) } Else { If (LEqual (Arg0, 0x04)) { ShiftLeft (PPA, 0x02, Arg1) Store (PPI, Local0) } Else { If (LEqual (Arg0, 0x05)) { ShiftLeft (PPA, 0x02, Arg1) Store (PPI, Local0) Store (PPD, Local1) } Else { If (LEqual (Arg0, 0x07)) { ShiftLeft (FDA, 0x02, Arg1) Store (FDI, Local0) Store (FDD, Local1) } } } } } } } If (Local0) { ShiftLeft (One, Local0, Arg3) } Else { Store (Zero, Arg3) } If (LNot (LEqual (Local1, 0x0F))) { ShiftLeft (One, Local1, Arg4) } Else { Store (Zero, Arg4) } EXIT () } Method (SETM, 1, NotSerialized) { ENTR () If (LEqual (Arg0, 0x00)) { Store (One, U1P) } Else { If (LEqual (Arg0, 0x01)) { Store (0x06, U2MD) Store (One, U2P) } Else { If (LEqual (Arg0, 0x02)) { Store (0x0E, U2MD) Store (One, U2P) } Else { If (LEqual (Arg0, 0x03)) { Store (0x0E, U2MD) Store (One, U2P) } Else { If (LEqual (Arg0, 0x04)) { If (LEqual (PPF, One)) { Store (One, PPM) } Else { Store (Zero, PPM) Store (Zero, PPEM) } Store (One, PPP) } Else { If (LEqual (Arg0, 0x05)) { Store (Zero, PPM) Store (0x02, PPEM) Store (One, PPP) } } } } } } EXIT () } Method (SETP, 2, NotSerialized) { ENTR () If (LEqual (Arg0, 0x00)) { Store (Arg1, U1P) } Else { If (LEqual (Arg0, 0x01)) { Store (Arg1, U2P) } Else { If (LEqual (Arg0, 0x02)) { Store (Arg1, U2P) } Else { If (LEqual (Arg0, 0x03)) { Store (Arg1, U2P) } Else { If (LEqual (Arg0, 0x04)) { Store (Arg1, PPP) } Else { If (LEqual (Arg0, 0x05)) { Store (Arg1, PPP) } } } } } } EXIT () } Method (GETP, 1, NotSerialized) { Store (Zero, Local0) ENTR () If (LEqual (Arg0, 0x00)) { Store (U1P, Local0) } Else { If (LEqual (Arg0, 0x01)) { Store (U2P, Local0) } Else { If (LEqual (Arg0, 0x02)) { Store (U2P, Local0) } Else { If (LEqual (Arg0, 0x03)) { Store (U2P, Local0) } Else { If (LEqual (Arg0, 0x04)) { Store (PPP, Local0) } Else { If (LEqual (Arg0, 0x05)) { Store (PPP, Local0) } } } } } } EXIT () Return (Local0) } Method (CHKM, 1, NotSerialized) { If (LEqual (Arg0, 0x00)) { If (SPAF) { Return (One) } } Else { If (LEqual (Arg0, 0x01)) { If (LEqual (SPBF, 0x03)) { Return (One) } } Else { If (LEqual (Arg0, 0x02)) { If (LEqual (SPBF, One)) { Return (One) } } Else { If (LEqual (Arg0, 0x03)) { If (LEqual (SPBF, 0x02)) { Return (One) } } Else { If (LEqual (Arg0, 0x04)) { If (LOr (LEqual (PPF, One), LEqual (PPF, 0x02))) { Return (One) } } Else { If (LEqual (Arg0, 0x05)) { If (LEqual (PPF, 0x03)) { Return (One) } } Else { If (LEqual (Arg0, 0x07)) { If (FDCF) { Return (One) } } } } } } } } Return (Zero) } Device (UAR1) { Name (_HID, EisaId ("PNP0501")) Name (_UID, 0x01) Name (RSRC, ResourceTemplate () { IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08) IRQNoFlags () {4} }) Name (_PRS, ResourceTemplate () { StartDependentFn (0x00, 0x01) { IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08) } StartDependentFnNoPri () { IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08) } StartDependentFnNoPri () { IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08) } StartDependentFnNoPri () { IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08) } EndDependentFn () IRQNoFlags () {3,4,10,11} }) Method (_STA, 0, NotSerialized) { If (CHKM (0x00)) { GETR (0x00, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3)) If (Local0) { Return (0x0F) } Else { Return (0x0D) } } Else { Return (0x00) } } Method (_CRS, 0, NotSerialized) { CreateWordField (RSRC, 0x02, IO11) CreateWordField (RSRC, 0x04, IO12) CreateWordField (RSRC, 0x09, IRQ1) GETR (0x00, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3)) Store (Local0, IO11) Store (Local0, IO12) Store (Local2, IRQ1) Return (RSRC) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x04, IO11) CreateWordField (Arg0, 0x09, IRQ1) SETR (0x00, IO11, Zero, IRQ1, Zero) } Method (_DIS, 0, NotSerialized) { SETR (0x00, Zero, Zero, Zero, Zero) } Method (_INI, 0, NotSerialized) { If (CHKM (0x00)) { SETM (0x00) } } } Device (UAR2) { Name (_HID, EisaId ("PNP0501")) Name (_UID, 0x02) Name (RSRC, ResourceTemplate () { IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08) IRQNoFlags () {4} }) Name (_PRS, ResourceTemplate () { StartDependentFnNoPri () { IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08) } StartDependentFn (0x00, 0x01) { IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08) } StartDependentFnNoPri () { IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08) } StartDependentFnNoPri () { IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08) } EndDependentFn () IRQNoFlags () {3,4,10,11} }) Method (_STA, 0, NotSerialized) { If (CHKM (0x01)) { GETR (0x01, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3)) If (Local0) { Return (0x0F) } Else { Return (0x0D) } } Else { Return (0x00) } } Method (_CRS, 0, NotSerialized) { CreateWordField (RSRC, 0x02, IO11) CreateWordField (RSRC, 0x04, IO12) CreateWordField (RSRC, 0x09, IRQ1) GETR (0x01, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3)) Store (Local0, IO11) Store (Local0, IO12) Store (Local2, IRQ1) Return (RSRC) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x04, IO11) CreateWordField (Arg0, 0x09, IRQ1) SETR (0x01, IO11, Zero, IRQ1, Zero) } Method (_DIS, 0, NotSerialized) { SETR (0x01, Zero, Zero, Zero, Zero) } Method (_INI, 0, NotSerialized) { If (CHKM (0x01)) { SETM (0x01) } } } Device (IRDA) { Name (_HID, EisaId ("PNP0510")) Name (RSRC, ResourceTemplate () { IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08) IRQNoFlags () {3} }) Name (_PRS, ResourceTemplate () { StartDependentFnNoPri () { IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08) } StartDependentFn (0x00, 0x01) { IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08) } StartDependentFnNoPri () { IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08) } StartDependentFnNoPri () { IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08) } EndDependentFn () IRQNoFlags () {3,4,10,11} }) Method (_STA, 0, NotSerialized) { If (CHKM (0x02)) { GETR (0x02, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3)) If (Local0) { Return (0x0F) } Else { Return (0x0D) } } Else { Return (0x00) } } Method (_CRS, 0, NotSerialized) { CreateWordField (RSRC, 0x02, IO11) CreateWordField (RSRC, 0x04, IO12) CreateWordField (RSRC, 0x09, IRQ1) GETR (0x02, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3)) Store (Local0, IO11) Store (Local0, IO12) Store (Local2, IRQ1) Return (RSRC) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x04, IO11) CreateWordField (Arg0, 0x09, IRQ1) SETR (0x02, IO11, Zero, IRQ1, Zero) } Method (_DIS, 0, NotSerialized) { SETR (0x02, Zero, Zero, Zero, Zero) } Method (_INI, 0, NotSerialized) { If (CHKM (0x02)) { SETM (0x02) } } Method (_PSC, 0, NotSerialized) { If (GETP (0x02)) { Return (Zero) } Else { Return (0x03) } } Method (_PS0, 0, NotSerialized) { SETP (0x02, One) } Method (_PS3, 0, NotSerialized) { SETR (0x02, Zero, Zero, Zero, Zero) SETP (0x02, Zero) } } Device (FIR) { Name (_HID, EisaId ("SMCF010")) Name (RSRC, ResourceTemplate () { IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08) IO (Decode16, 0x0400, 0x0400, 0x80, 0x40) IRQNoFlags () {4} DMA (Compatibility, NotBusMaster, Transfer8) {} }) Name (_PRS, ResourceTemplate () { StartDependentFnNoPri () { IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08) } StartDependentFn (0x00, 0x01) { IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08) } StartDependentFnNoPri () { IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08) } StartDependentFnNoPri () { IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08) } EndDependentFn () IO (Decode16, 0x0400, 0x0580, 0x80, 0x40) IRQNoFlags () {3,4,10,11} DMA (Compatibility, NotBusMaster, Transfer8) {1,3} }) Method (_STA, 0, NotSerialized) { If (CHKM (0x03)) { GETR (0x03, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3)) If (Local0) { Return (0x0F) } Else { Return (0x0D) } } Else { Return (0x00) } } Method (_CRS, 0, NotSerialized) { CreateWordField (RSRC, 0x02, IO11) CreateWordField (RSRC, 0x04, IO12) CreateWordField (RSRC, 0x0A, IO21) CreateWordField (RSRC, 0x0C, IO22) CreateWordField (RSRC, 0x11, IRQ1) CreateByteField (RSRC, 0x14, DMA1) GETR (0x03, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3)) Store (Local0, IO11) Store (Local0, IO12) Store (Local1, IO21) Store (Local1, IO22) Store (Local2, IRQ1) Store (Local3, DMA1) Return (RSRC) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x04, IO11) CreateWordField (Arg0, 0x0C, IO21) CreateWordField (Arg0, 0x11, IRQ1) CreateByteField (Arg0, 0x14, DMA1) SETR (0x03, IO11, IO21, IRQ1, DMA1) } Method (_DIS, 0, NotSerialized) { SETR (0x03, Zero, Zero, Zero, Zero) } Method (_INI, 0, NotSerialized) { If (CHKM (0x03)) { SETM (0x03) } } Method (_PSC, 0, NotSerialized) { If (GETP (0x03)) { Return (Zero) } Else { Return (0x03) } } Method (_PS0, 0, NotSerialized) { SETP (0x03, One) } Method (_PS3, 0, NotSerialized) { SETR (0x03, Zero, Zero, Zero, Zero) SETP (0x03, Zero) } } Device (LPT) { Name (_HID, EisaId ("PNP0400")) Name (RSRC, ResourceTemplate () { IO (Decode16, 0x0378, 0x0378, 0x01, 0x08) IO (Decode16, 0x0778, 0x0778, 0x01, 0x04) IRQNoFlags () {7} }) Name (_PRS, ResourceTemplate () { StartDependentFn (0x00, 0x01) { IO (Decode16, 0x0378, 0x0378, 0x01, 0x08) IO (Decode16, 0x0778, 0x0778, 0x01, 0x04) IRQNoFlags () {7} } StartDependentFnNoPri () { IO (Decode16, 0x0278, 0x0278, 0x01, 0x08) IO (Decode16, 0x0678, 0x0678, 0x01, 0x04) IRQNoFlags () {7} } StartDependentFnNoPri () { IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04) IO (Decode16, 0x07BC, 0x07BC, 0x01, 0x04) IRQNoFlags () {7} } StartDependentFn (0x00, 0x01) { IO (Decode16, 0x0378, 0x0378, 0x01, 0x08) IO (Decode16, 0x0778, 0x0778, 0x01, 0x04) IRQNoFlags () {5} } StartDependentFnNoPri () { IO (Decode16, 0x0278, 0x0278, 0x01, 0x08) IO (Decode16, 0x0678, 0x0678, 0x01, 0x04) IRQNoFlags () {5} } StartDependentFnNoPri () { IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04) IO (Decode16, 0x07BC, 0x07BC, 0x01, 0x04) IRQNoFlags () {5} } EndDependentFn () }) Method (_STA, 0, NotSerialized) { If (CHKM (0x04)) { GETR (0x04, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3)) If (Local0) { Return (0x0F) } Else { Return (0x0D) } } Else { Return (0x00) } } Method (_CRS, 0, NotSerialized) { CreateWordField (RSRC, 0x02, IO11) CreateWordField (RSRC, 0x04, IO12) CreateByteField (RSRC, 0x07, IO1L) CreateWordField (RSRC, 0x0A, IO21) CreateWordField (RSRC, 0x0C, IO22) CreateWordField (RSRC, 0x11, IRQ1) GETR (0x04, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3)) Store (Local0, IO11) Store (Local0, IO12) If (LEqual (Local0, 0x03BC)) { Store (0x04, IO1L) } Else { Store (0x08, IO1L) } Add (Local0, 0x0400, IO21) Store (IO21, IO22) Store (Local2, IRQ1) Return (RSRC) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x04, IO11) CreateWordField (Arg0, 0x11, IRQ1) SETR (0x04, IO11, Zero, IRQ1, Zero) } Method (_DIS, 0, NotSerialized) { SETR (0x04, Zero, Zero, Zero, Zero) } Method (_INI, 0, NotSerialized) { If (CHKM (0x04)) { SETM (0x04) } } } Device (ECP) { Name (_HID, EisaId ("PNP0401")) Name (RSRC, ResourceTemplate () { IO (Decode16, 0x0378, 0x0378, 0x01, 0x08) IO (Decode16, 0x0778, 0x0778, 0x01, 0x04) IRQNoFlags () {7} DMA (Compatibility, NotBusMaster, Transfer8) {} }) Name (_PRS, ResourceTemplate () { StartDependentFn (0x00, 0x01) { IO (Decode16, 0x0378, 0x0378, 0x01, 0x08) IO (Decode16, 0x0778, 0x0778, 0x01, 0x04) IRQNoFlags () {7} } StartDependentFnNoPri () { IO (Decode16, 0x0278, 0x0278, 0x01, 0x08) IO (Decode16, 0x0678, 0x0678, 0x01, 0x04) IRQNoFlags () {7} } StartDependentFnNoPri () { IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04) IO (Decode16, 0x07BC, 0x07BC, 0x01, 0x04) IRQNoFlags () {7} } StartDependentFn (0x00, 0x01) { IO (Decode16, 0x0378, 0x0378, 0x01, 0x08) IO (Decode16, 0x0778, 0x0778, 0x01, 0x04) IRQNoFlags () {5} } StartDependentFnNoPri () { IO (Decode16, 0x0278, 0x0278, 0x01, 0x08) IO (Decode16, 0x0678, 0x0678, 0x01, 0x04) IRQNoFlags () {5} } StartDependentFnNoPri () { IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04) IO (Decode16, 0x07BC, 0x07BC, 0x01, 0x04) IRQNoFlags () {5} } EndDependentFn () DMA (Compatibility, NotBusMaster, Transfer8) {1,3} }) Method (_STA, 0, NotSerialized) { If (CHKM (0x05)) { GETR (0x05, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3)) If (Local0) { Return (0x0F) } Else { Return (0x0D) } } Else { Return (0x00) } } Method (_CRS, 0, NotSerialized) { CreateWordField (RSRC, 0x02, IO11) CreateWordField (RSRC, 0x04, IO12) CreateByteField (RSRC, 0x07, IO1L) CreateWordField (RSRC, 0x0A, IO21) CreateWordField (RSRC, 0x0C, IO22) CreateWordField (RSRC, 0x11, IRQ1) CreateByteField (RSRC, 0x14, DMA1) GETR (0x05, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3)) Store (Local0, IO11) Store (Local0, IO12) If (LEqual (Local0, 0x03BC)) { Store (0x04, IO1L) } Else { Store (0x08, IO1L) } Add (Local0, 0x0400, IO21) Store (IO21, IO22) Store (Local2, IRQ1) Store (Local3, DMA1) Return (RSRC) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x04, IO11) CreateWordField (Arg0, 0x11, IRQ1) CreateByteField (Arg0, 0x14, DMA1) SETR (0x05, IO11, Zero, IRQ1, DMA1) } Method (_DIS, 0, NotSerialized) { SETR (0x05, Zero, Zero, Zero, Zero) } Method (_INI, 0, NotSerialized) { If (CHKM (0x05)) { SETM (0x05) } } } Device (FDC) { Name (_HID, EisaId ("PNP0700")) Name (RSRC, ResourceTemplate () { IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06) IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01) IRQNoFlags () {6} DMA (Compatibility, NotBusMaster, Transfer8) {2} }) Name (_PRS, ResourceTemplate () { IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06) IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01) IRQNoFlags () {6} DMA (Compatibility, NotBusMaster, Transfer8) {2} }) Method (_STA, 0, NotSerialized) { If (CHKM (0x07)) { GETR (0x07, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3)) If (Local0) { Return (0x0F) } Else { Return (0x0D) } } Else { Return (0x00) } } Method (_CRS, 0, NotSerialized) { CreateWordField (RSRC, 0x02, IO11) CreateWordField (RSRC, 0x04, IO12) CreateWordField (RSRC, 0x0A, IO21) CreateWordField (RSRC, 0x0C, IO22) CreateWordField (RSRC, 0x11, IRQ1) CreateByteField (RSRC, 0x14, DMA1) GETR (0x07, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3)) Store (Local0, IO11) Store (Local0, IO12) Add (Local0, 0x07, IO21) Store (IO21, IO22) Store (Local2, IRQ1) Store (Local3, DMA1) Return (RSRC) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x04, IO11) CreateWordField (Arg0, 0x11, IRQ1) CreateByteField (Arg0, 0x14, DMA1) SETR (0x07, IO11, Zero, IRQ1, DMA1) } Method (_DIS, 0, NotSerialized) { SETR (0x07, Zero, Zero, Zero, Zero) } Method (_FDE, 0, NotSerialized) { If (FDS0) { Store (0x01, Index (FDEB, 0x00)) } If (FDS1) { Store (0x01, Index (FDEB, 0x04)) } Return (FDEB) } Name (FDEB, Buffer (0x14) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }) Device (DRV0) { Name (_ADR, 0x00) Method (_STA, 0, NotSerialized) { If (FDS0) { Store (0x0F, Local7) } Else { Store (0x00, Local7) } Return (Local7) } Method (_FDI, 0, NotSerialized) { If (LOr (FDS1, LNot (LEqual (FDS0, 0x04)))) { MKFP (FDS0) } Return (FPPK) } } Device (DRV1) { Name (_ADR, 0x01) Method (_STA, 0, NotSerialized) { If (FDS1) { Store (0x0F, Local7) } Else { Store (0x00, Local7) } Return (Local7) } Method (_FDI, 0, NotSerialized) { MKFP (FDS1) Return (FPPK) } } Method (MKFP, 1, NotSerialized) { If (LEqual (Arg0, 0x01)) { Store (FP5D, FPBF) } Else { If (LEqual (Arg0, 0x02)) { Store (FP5H, FPBF) } Else { If (LEqual (Arg0, 0x03)) { Store (FP3D, FPBF) } Else { If (LEqual (Arg0, 0x04)) { Store (FP3H, FPBF) } Else { If (LEqual (Arg0, 0x06)) { Store (FP3E, FPBF) } } } } } If (FDS1) { Store (0x02, Index (FPBF, 0x00)) } Store (0x00, Local0) While (LGreater (0x10, Local0)) { Store (DerefOf (Index (FPBF, Local0)), Index (FPPK, Local0)) Increment (Local0) } } Name (FPPK, Package (0x10) { 0x01, 0x04, 0x4F, 0x12, 0x01, 0xDF, 0x02, 0x25, 0x02, 0x12, 0x1B, 0xFF, 0x6C, 0xF6, 0x0F, 0x05 }) Name (FPBF, Buffer (0x10) {}) Name (FP5D, Buffer (0x10) { 0x01, 0x01, 0x27, 0x09, 0x01, 0xDF, 0x02, 0x25, 0x02, 0x09, 0x2A, 0xFF, 0x50, 0xF6, 0x0F, 0x06 }) Name (FP5H, Buffer (0x10) { 0x01, 0x02, 0x4F, 0x0F, 0x01, 0xDF, 0x04, 0x25, 0x02, 0x0F, 0x1B, 0xFF, 0x54, 0xF6, 0x0F, 0x06 }) Name (FP3D, Buffer (0x10) { 0x01, 0x03, 0x4F, 0x09, 0x01, 0xEF, 0x02, 0x25, 0x02, 0x09, 0x1B, 0xFF, 0x50, 0xF6, 0x0F, 0x05 }) Name (FP3H, Buffer (0x10) { 0x01, 0x04, 0x4F, 0x12, 0x01, 0xDF, 0x02, 0x25, 0x02, 0x12, 0x1B, 0xFF, 0x6C, 0xF6, 0x0F, 0x05 }) Name (FP3E, Buffer (0x10) { 0x01, 0x06, 0x4F, 0x24, 0x01, 0xAA, 0x08, 0x25, 0x02, 0x24, 0x1B, 0xFF, 0x54, 0xF6, 0x0F, 0x05 }) } Scope (\_SB.PCI0.LPCB.UAR1) { Name (_PRW, Package (0x02) { 0x10, 0x03 }) Method (_PSW, 1, NotSerialized) { If (Arg0) { Store (Zero, RI1M) } Else { Store (One, RI1M) } } } OperationRegion (PIRQ, SystemIO, 0x0C00, 0x02) Field (PIRQ, ByteAcc, NoLock, Preserve) { PIID, 8, PIDA, 8 } IndexField (PIID, PIDA, ByteAcc, NoLock, Preserve) { PIRA, 8, PIRB, 8, PIRC, 8, PIRD, 8, PIRS, 8, Offset (0x09), PIRE, 8, PIRF, 8, PIRG, 8, PIRH, 8 } Name (IPRS, ResourceTemplate () { IRQ (Level, ActiveLow, Shared) {10,11} }) Method (DSPI, 0, NotSerialized) { Store (0x00, PIRA) Store (0x00, PIRB) Store (0x00, PIRC) Store (0x00, PIRD) Store (0x00, PIRS) Store (0x00, PIRE) Store (0x00, PIRF) Store (0x00, PIRG) Store (0x00, PIRH) } Device (LNKA) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x01) Method (_STA, 0, NotSerialized) { If (PIRA) { Return (0x0B) } Else { Return (0x09) } } Method (_PRS, 0, NotSerialized) { Return (IPRS) } Method (_DIS, 0, NotSerialized) { Store (0x00, PIRA) } Method (_CRS, 0, NotSerialized) { Store (IPRS, Local0) CreateWordField (Local0, 0x01, IRQ0) ShiftLeft (0x01, PIRA, IRQ0) Return (Local0) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x01, IRQ0) FindSetRightBit (IRQ0, Local0) Decrement (Local0) Store (Local0, PIRA) } } Device (LNKB) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x02) Method (_STA, 0, NotSerialized) { If (PIRB) { Return (0x0B) } Else { Return (0x09) } } Method (_PRS, 0, NotSerialized) { Return (IPRS) } Method (_DIS, 0, NotSerialized) { Store (0x00, PIRB) } Method (_CRS, 0, NotSerialized) { Store (IPRS, Local0) CreateWordField (Local0, 0x01, IRQ0) ShiftLeft (0x01, PIRB, IRQ0) Return (Local0) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x01, IRQ0) FindSetRightBit (IRQ0, Local0) Decrement (Local0) Store (Local0, PIRB) } } Device (LNKC) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x03) Method (_STA, 0, NotSerialized) { If (PIRC) { Return (0x0B) } Else { Return (0x09) } } Method (_PRS, 0, NotSerialized) { Return (IPRS) } Method (_DIS, 0, NotSerialized) { Store (0x00, PIRC) } Method (_CRS, 0, NotSerialized) { Store (IPRS, Local0) CreateWordField (Local0, 0x01, IRQ0) ShiftLeft (0x01, PIRC, IRQ0) Return (Local0) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x01, IRQ0) FindSetRightBit (IRQ0, Local0) Decrement (Local0) Store (Local0, PIRC) } } Device (LNKD) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x04) Method (_STA, 0, NotSerialized) { If (PIRD) { Return (0x0B) } Else { Return (0x09) } } Method (_PRS, 0, NotSerialized) { Return (IPRS) } Method (_DIS, 0, NotSerialized) { Store (0x00, PIRD) } Method (_CRS, 0, NotSerialized) { Store (IPRS, Local0) CreateWordField (Local0, 0x01, IRQ0) ShiftLeft (0x01, PIRD, IRQ0) Return (Local0) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x01, IRQ0) FindSetRightBit (IRQ0, Local0) Decrement (Local0) Store (Local0, PIRD) } } Device (LNKE) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x05) Method (_STA, 0, NotSerialized) { If (PIRD) { Return (0x0B) } Else { Return (0x09) } } Method (_PRS, 0, NotSerialized) { Return (IPRS) } Method (_DIS, 0, NotSerialized) { Store (0x00, PIRE) } Method (_CRS, 0, NotSerialized) { Store (IPRS, Local0) CreateWordField (Local0, 0x01, IRQ0) ShiftLeft (0x01, PIRE, IRQ0) Return (Local0) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x01, IRQ0) FindSetRightBit (IRQ0, Local0) Decrement (Local0) Store (Local0, PIRE) } } Device (LNKF) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x06) Method (_STA, 0, NotSerialized) { If (PIRF) { Return (0x0B) } Else { Return (0x09) } } Method (_PRS, 0, NotSerialized) { Return (IPRS) } Method (_DIS, 0, NotSerialized) { Store (0x00, PIRF) } Method (_CRS, 0, NotSerialized) { Store (IPRS, Local0) CreateWordField (Local0, 0x01, IRQ0) ShiftLeft (0x01, PIRF, IRQ0) Return (Local0) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x01, IRQ0) FindSetRightBit (IRQ0, Local0) Decrement (Local0) Store (Local0, PIRF) } } Device (LNKG) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x07) Method (_STA, 0, NotSerialized) { If (PIRG) { Return (0x0B) } Else { Return (0x09) } } Method (_PRS, 0, NotSerialized) { Return (IPRS) } Method (_DIS, 0, NotSerialized) { Store (0x00, PIRG) } Method (_CRS, 0, NotSerialized) { Store (IPRS, Local0) CreateWordField (Local0, 0x01, IRQ0) ShiftLeft (0x01, PIRG, IRQ0) Return (Local0) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x01, IRQ0) FindSetRightBit (IRQ0, Local0) Decrement (Local0) Store (Local0, PIRG) } } Device (LNKH) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x08) Method (_STA, 0, NotSerialized) { If (PIRH) { Return (0x0B) } Else { Return (0x09) } } Method (_PRS, 0, NotSerialized) { Return (IPRS) } Method (_DIS, 0, NotSerialized) { Store (0x00, PIRH) } Method (_CRS, 0, NotSerialized) { Store (IPRS, Local0) CreateWordField (Local0, 0x01, IRQ0) ShiftLeft (0x01, PIRH, IRQ0) Return (Local0) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x01, IRQ0) FindSetRightBit (IRQ0, Local0) Decrement (Local0) Store (Local0, PIRH) } } } Device (IDE) { Name (_ADR, 0x00140001) Name (UDMT, Package (0x08) { 0x78, 0x5A, 0x3C, 0x2D, 0x1E, 0x14, 0x0F, 0x00 }) Name (PIOT, Package (0x06) { 0x0258, 0x0186, 0x010E, 0xB4, 0x78, 0x00 }) Name (PITR, Package (0x06) { 0x99, 0x47, 0x34, 0x22, 0x20, 0x99 }) Name (MDMT, Package (0x04) { 0x01E0, 0x96, 0x78, 0x00 }) Name (MDTR, Package (0x04) { 0x77, 0x21, 0x20, 0xFF }) OperationRegion (IDE, PCI_Config, 0x40, 0x26) Field (IDE, WordAcc, NoLock, Preserve) { PPIT, 16, SPIT, 16, PMDT, 16, SMDT, 16, PPIC, 8, SPIC, 8, PPIM, 8, SPIM, 8, Offset (0x14), PUDC, 2, SUDC, 2, Offset (0x16), PUDM, 8, SUDM, 8, Offset (0x24), , 3, SCTM, 1 } OperationRegion (ATIO, SystemIO, 0x0177, 0x01) Field (ATIO, ByteAcc, NoLock, Preserve) { STSR, 8 } Name (PMMN, Buffer (0x28) {}) Name (PSMN, Buffer (0x28) {}) Name (SMMN, Buffer (0x28) {}) Name (SSMN, Buffer (0x28) {}) Name (PMSB, 0x00) Name (PSSB, 0x00) Name (SMSB, 0x00) Name (SSSB, 0x00) Method (GETT, 1, NotSerialized) { Store (And (Arg0, 0x0F), Local0) Store (ShiftRight (Arg0, 0x04), Local1) Return (Multiply (0x1E, Add (Add (Local0, 0x01), Add (Local1, 0x01)))) } Method (GTM, 1, NotSerialized) { CreateByteField (Arg0, 0x00, PIT1) CreateByteField (Arg0, 0x01, PIT0) CreateByteField (Arg0, 0x02, MDT1) CreateByteField (Arg0, 0x03, MDT0) CreateByteField (Arg0, 0x04, PICX) CreateByteField (Arg0, 0x05, UDCX) CreateByteField (Arg0, 0x06, UDMX) Name (BUF, Buffer (0x14) { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00 }) CreateDWordField (BUF, 0x00, PIO0) CreateDWordField (BUF, 0x04, DMA0) CreateDWordField (BUF, 0x08, PIO1) CreateDWordField (BUF, 0x0C, DMA1) CreateDWordField (BUF, 0x10, FLAG) If (And (PICX, 0x01)) { Return (BUF) } Store (GETT (PIT0), PIO0) Store (GETT (PIT1), PIO1) If (And (UDCX, 0x01)) { Or (FLAG, 0x01, FLAG) Store (DerefOf (Index (^UDMT, And (UDMX, 0x07))), DMA0) } Else { Store (GETT (MDT0), DMA0) } If (And (UDCX, 0x02)) { Or (FLAG, 0x04, FLAG) Store (DerefOf (Index (^UDMT, ShiftRight (And (UDMX= , 0x70), 0x04))), DMA1) } Else { Store (GETT (MDT1), DMA1) } Or (FLAG, 0x1A, FLAG) Return (BUF) } Method (STM, 3, NotSerialized) { CreateDWordField (Arg0, 0x00, PIO0) CreateDWordField (Arg0, 0x04, DMA0) CreateDWordField (Arg0, 0x08, PIO1) CreateDWordField (Arg0, 0x0C, DMA1) CreateDWordField (Arg0, 0x10, FLAG) Name (BUF, Buffer (0x07) { 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00 }) CreateByteField (BUF, 0x00, PIT1) CreateByteField (BUF, 0x01, PIT0) CreateByteField (BUF, 0x02, MDT1) CreateByteField (BUF, 0x03, MDT0) CreateByteField (BUF, 0x04, PIMX) CreateByteField (BUF, 0x05, UDCX) CreateByteField (BUF, 0x06, UDMX) Store (Match (^PIOT, MLE, PIO0, MTR, 0x00, 0x00), Local0) Divide (Local0, 0x05, Local0) Store (Match (^PIOT, MLE, PIO1, MTR, 0x00, 0x00), Local1) Divide (Local1, 0x05, Local1) Store (Or (ShiftLeft (Local1, 0x04), Local0), PIMX) Store (DerefOf (Index (^PITR, Local0)), PIT0) Store (DerefOf (Index (^PITR, Local1)), PIT1) If (And (FLAG, 0x01)) { Store (Match (^UDMT, MLE, DMA0, MTR, 0x00, 0x00), Local0) Divide (Local0, 0x07, Local0) Or (UDMX, Local0, UDMX) Or (UDCX, 0x01, UDCX) } Else { If (LNot (LEqual (DMA0, 0xFFFFFFFF))) { Store (Match (^MDMT, MLE, DMA0, MTR, 0x00, 0x00), Local0) Store (DerefOf (Index (^MDTR, Local0)), MDT0) } } If (And (FLAG, 0x04)) { Store (Match (^UDMT, MLE, DMA1, MTR, 0x00, 0x00), Local0) Divide (Local0, 0x07, Local0) Or (UDMX, ShiftLeft (Local0, 0x04), UDMX) Or (UDCX, 0x02, UDCX) } Else { If (LNot (LEqual (DMA1, 0xFFFFFFFF))) { Store (Match (^MDMT, MLE, DMA1, MTR, 0x00, 0x00), Local0) Store (DerefOf (Index (^MDTR, Local0)), MDT1) } } Return (BUF) } Method (GTF, 3, NotSerialized) { CreateByteField (Arg1, 0x00, MDT1) CreateByteField (Arg1, 0x01, MDT0) CreateByteField (Arg1, 0x02, PIMX) CreateByteField (Arg1, 0x03, UDCX) CreateByteField (Arg1, 0x04, UDMX) If (LEqual (Arg0, 0xA0)) { And (PIMX, 0x07, Local0) Store (MDT0, Local1) And (UDCX, 0x01, Local2) And (UDMX, 0x07, Local3) } Else { ShiftRight (And (PIMX, 0x70), 0x04, Local0) Store (MDT1, Local1) And (UDCX, 0x02, Local2) ShiftRight (And (UDMX, 0x70), 0x04, Local3) } Name (BUF, Buffer (0x15) { 0x03, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xEF, 0x03, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xF5 }) CreateByteField (BUF, 0x01, PMOD) CreateByteField (BUF, 0x08, DMOD) CreateByteField (BUF, 0x05, CMDA) CreateByteField (BUF, 0x0C, CMDB) CreateByteField (BUF, 0x13, CMDC) CreateByteField (BUF, 0x14, SCMD) Store (Arg0, CMDA) Store (Arg0, CMDB) Store (Arg0, CMDC) If (LNot (Arg2)) { Store (0x00, SCMD) } Or (Local0, 0x08, PMOD) If (Local2) { Or (Local3, 0x40, DMOD) } Else { Store (Match (^MDMT, MLE, GETT (Local1), MTR, 0x00, 0x00), Local4) If (LLess (Local4, 0x03)) { Or (0x20, Local4, DMOD) } } Return (BUF) } Device (PRID) { Name (_ADR, 0x00) Method (_GTM, 0, NotSerialized) { Name (BUF, Buffer (0x07) { 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00 }) CreateWordField (BUF, 0x00, VPIT) CreateWordField (BUF, 0x02, VMDT) CreateByteField (BUF, 0x04, VPIC) CreateByteField (BUF, 0x05, VUDC) CreateByteField (BUF, 0x06, VUDM) Store (^^PPIT, VPIT) Store (^^PMDT, VMDT) Store (^^PPIC, VPIC) Store (^^PUDC, VUDC) Store (^^PUDM, VUDM) Return (GTM (BUF)) } Method (_STM, 3, NotSerialized) { CreateField (Arg1, 0x01B0, 0x0140, MBUF) CreateField (Arg2, 0x01B0, 0x0140, SBUF) CreateField (Arg1, 0x0800, 0x01, MSST) CreateField (Arg2, 0x0800, 0x01, SSST) Store (MBUF, ^^PMMN) Store (SBUF, ^^PSMN) Store (MSST, ^^PMSB) Store (SSST, ^^PSSB) Name (BUF, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }) CreateWordField (BUF, 0x00, VPIT) CreateWordField (BUF, 0x02, VMDT) CreateByteField (BUF, 0x04, VPIM) CreateByteField (BUF, 0x05, VUDC) CreateByteField (BUF, 0x06, VUDM) Store (STM (Arg0, Arg1, Arg2), BUF) Store (VPIT, ^^PPIT) Store (VMDT, ^^PMDT) Store (VPIM, ^^PPIM) Store (VUDC, ^^PUDC) Store (VUDM, ^^PUDM) } Device (P_D0) { Name (_ADR, 0x00) Method (_GTF, 0, NotSerialized) { Name (BUF, Buffer (0x05) { 0x00, 0x00, 0x00, 0x00, 0x00 }) CreateWordField (BUF, 0x00, VMDT) CreateByteField (BUF, 0x02, VPIM) CreateByteField (BUF, 0x03, VUDC) CreateByteField (BUF, 0x04, VUDM) Store (^^^PMDT, VMDT) Store (^^^PPIM, VPIM) Store (^^^PUDC, VUDC) Store (^^^PUDM, VUDM) Return (GTF (0xA0, BUF, ^^^PMSB)) } } Device (P_D1) { Name (_ADR, 0x01) Method (_GTF, 0, NotSerialized) { Name (BUF, Buffer (0x05) { 0x00, 0x00, 0x00, 0x00, 0x00 }) CreateWordField (BUF, 0x00, VMDT) CreateByteField (BUF, 0x02, VPIM) CreateByteField (BUF, 0x03, VUDC) CreateByteField (BUF, 0x04, VUDM) Store (^^^PMDT, VMDT) Store (^^^PPIM, VPIM) Store (^^^PUDC, VUDC) Store (^^^PUDM, VUDM) Return (GTF (0xB0, BUF, ^^^PSSB)) } } Method (_STA, 0, NotSerialized) { And (PPIC, 0x01, Local0) If (LAnd (Local0, 0x01)) { Return (0x0D) } Else { Return (0x0F) } } } Device (SECD) { Name (_ADR, 0x01) Method (_GTM, 0, NotSerialized) { Name (BUF, Buffer (0x07) { 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00 }) CreateWordField (BUF, 0x00, VPIT) CreateWordField (BUF, 0x02, VMDT) CreateByteField (BUF, 0x04, VPIC) CreateByteField (BUF, 0x05, VUDC) CreateByteField (BUF, 0x06, VUDM) Store (^^SPIT, VPIT) Store (^^SMDT, VMDT) Store (^^SPIC, VPIC) Store (^^SUDC, VUDC) Store (^^SUDM, VUDM) Return (GTM (BUF)) } Method (_STM, 3, NotSerialized) { CreateField (Arg1, 0x01B0, 0x0140, MBUF) CreateField (Arg2, 0x01B0, 0x0140, SBUF) CreateField (Arg1, 0x0800, 0x01, MSST) CreateField (Arg2, 0x0800, 0x01, SSST) Store (MBUF, ^^SMMN) Store (SBUF, ^^SSMN) Store (MSST, ^^SMSB) Store (SSST, ^^SSSB) Name (BUF, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }) CreateWordField (BUF, 0x00, VPIT) CreateWordField (BUF, 0x02, VMDT) CreateByteField (BUF, 0x04, VPIM) CreateByteField (BUF, 0x05, VUDC) CreateByteField (BUF, 0x06, VUDM) Store (STM (Arg0, Arg1, Arg2), BUF) Store (VPIT, ^^SPIT) Store (VMDT, ^^SMDT) Store (VPIM, ^^SPIM) Store (VUDC, ^^SUDC) Store (VUDM, ^^SUDM) } Device (S_D0) { Name (_ADR, 0x00) Method (_GTF, 0, NotSerialized) { Name (BUF, Buffer (0x05) { 0x00, 0x00, 0x00, 0x00, 0x00 }) CreateWordField (BUF, 0x00, VMDT) CreateByteField (BUF, 0x02, VPIM) CreateByteField (BUF, 0x03, VUDC) CreateByteField (BUF, 0x04, VUDM) Store (^^^SMDT, VMDT) Store (^^^SPIM, VPIM) Store (^^^SUDC, VUDC) Store (^^^SUDM, VUDM) Return (GTF (0xA0, BUF, ^^^SMSB)) } } Device (S_D1) { Name (_ADR, 0x01) Method (_GTF, 0, NotSerialized) { Name (BUF, Buffer (0x05) { 0x00, 0x00, 0x00, 0x00, 0x00 }) CreateWordField (BUF, 0x00, VMDT) CreateByteField (BUF, 0x02, VPIM) CreateByteField (BUF, 0x03, VUDC) CreateByteField (BUF, 0x04, VUDM) Store (^^^SMDT, VMDT) Store (^^^SPIM, VPIM) Store (^^^SUDC, VUDC) Store (^^^SUDM, VUDM) Return (GTF (0xB0, BUF, ^^^SSSB)) } } Method (_STA, 0, NotSerialized) { And (SPIC, 0x01, Local0) If (LAnd (Local0, 0x01)) { Return (0x0D) } Else { Return (0x0F) } } } } Scope (\_SB.PCI0.IDE.PRID.P_D0) { Method (_STA, 0, NotSerialized) { Return (0x0F) } Name (FWSO, "FWSO") Name (_PSC, 0x00) Method (_PS0, 0, NotSerialized) { Store (_PSC, Local0) Store (0x00, _PSC) If (LEqual (Local0, 0x03)) { Store (0x01, INF) While (INF) { Store (0x20, CMD) Store (Zero, SSMI) If (LAnd (LEqual (INF, 0x01), LNot (LLess (\_SB.OSTP (), 0x04)))) { Sleep (0x01F4) } } } } Method (_PS3, 0, NotSerialized) { Store (0x03, _PSC) } } Scope (\_SB.PCI0.IDE.PRID.P_D1) { Method (_STA, 0, NotSerialized) { Return (0x00) } } Scope (\_SB.PCI0.IDE.SECD.S_D0) { Method (_STA, 0, NotSerialized) { If (LAnd (\_SB.PCI0.IDE.SECD.S_D0.BIDE (), LAnd (BRST, BY1O))) { Store (Zero, BYIF) Return (0x0F) } Else { If (LEqual (BYIF, Ones)) { Store (Zero, BYIF) Store (One, BYRF) } Return (0x00) } } Method (BIDE, 0, NotSerialized) { Store (BY1I, Local0) Store (LEqual (Local0, 0x08), Local1) Or (LEqual (Local0, 0x0A), Local1, Local1) Or (LEqual (Local0, 0x0B), Local1, Local1) Or (LEqual (Local0, 0x0D), Local1, Local1) Return (Local1) } Method (_EJ0, 1, NotSerialized) { BOFF () Return (Zero) } Method (BON, 0, NotSerialized) { Store (Zero, BRST) Store (0x01, SCTM) If (LEqual (BY1C, Zero)) { Sleep (0x64) Store (BY1I, Local0) If (LNot (LEqual (Local0, 0x01))) { Store (One, BY1O) Sleep (0x46) Store (0x00, SCTM) Or (SUDC, 0x01, SUDC) And (SUDM, 0xF8, SUDM) Or (SUDM, 0x06, SUDM) And (CDLP, 0xFE, CDLP) And (HDLP, 0xFE, HDLP) And (FDLP, 0xFE, FDLP) If (LEqual (Local0, 0x08)) { Or (CDLP, One, CDLP) } If (LEqual (Local0, 0x0A)) { Or (HDLP, One, HDLP) } If (LEqual (Local0, 0x0B)) { Or (CDLP, One, CDLP) } If (LEqual (Local0, 0x0D)) { Or (CDLP, One, CDLP) } Sleep (0x1E) Store (One, BRST) Sleep (0x64) Store (Zero, Local1) While (LAnd (LAnd (And (STSR, 0x80), B1TC), LLess (Local1, 0x015E))) { Sleep (0x64) Add (Local1, 0x01, Local1) } } } } Method (BOFF, 0, NotSerialized) { Store (Zero, BRST) And (CDLP, 0xFE, CDLP) And (HDLP, 0xFE, HDLP) And (FDLP, 0xFE, FDLP) Sleep (0x1E) TMCL () Store (0x01, SCTM) Sleep (0x46) Store (Zero, BY1O) Sleep (0x64) } Method (TMCL, 0, NotSerialized) { And (SPIT, 0xFF, SPIT) Or (SPIT, 0x9900, SPIT) And (SMDT, 0xFF, SMDT) Or (SMDT, 0xFF00, SMDT) And (SPIM, 0xF8, SPIM) And (SUDC, 0x02, SUDC) And (SUDM, 0xF8, SUDM) } } Scope (\_SB.PCI0.IDE.SECD.S_D1) { Method (_STA, 0, NotSerialized) { Return (0x00) } } Device (OHC1) { Name (_ADR, 0x00130000) } Device (OHC2) { Name (_ADR, 0x00130001) } Device (EHCI) { Name (_ADR, 0x00130002) } Device (SMB) { Name (_ADR, 0x00140000) } Device (AUDO) { Name (_ADR, 0x00140005) } Device (MODM) { Name (_ADR, 0x00140006) Name (_PRW, Package (0x02) { 0x0C, 0x03 }) } Device (PB4) { Name (_ADR, 0x00040000) Name (_PRW, Package (0x02) { 0x18, 0x04 }) Method (_PRT, 0, NotSerialized) { If (GPIC) { Return (Package (0x04) { Package (0x04) { 0xFFFF, 0x00, 0x00, 0x10 }, Package (0x04) { 0xFFFF, 0x01, 0x00, 0x11 }, Package (0x04) { 0xFFFF, 0x02, 0x00, 0x12 }, Package (0x04) { 0xFFFF, 0x03, 0x00, 0x13 } }) } Else { Return (Package (0x04) { Package (0x04) { 0xFFFF, 0x00, \_SB.PCI0.LPCB.LNKA, 0x00 }, Package (0x04) { 0xFFFF, 0x01, \_SB.PCI0.LPCB.LNKB, 0x00 }, Package (0x04) { 0xFFFF, 0x02, \_SB.PCI0.LPCB.LNKC, 0x00 }, Package (0x04) { 0xFFFF, 0x03, \_SB.PCI0.LPCB.LNKD, 0x00 } }) } } } } Scope (\) { Name (WBTN, Zero) Name (NGTM, Zero) Name (LSBL, Zero) Name (BNBF, Buffer (0x20) {}) Name (BNSP, Zero) Name (BNGP, Zero) Name (BNCT, Zero) } Device (FEXT) { Name (_HID, "FUJ02E3") Method (_STA, 0, NotSerialized) { Return (0x0F) } Method (_INI, 0, NotSerialized) { Store (Zero, BNSP) Store (Zero, BNGP) Store (Zero, BNCT) Store (Zero, IRBC) Store (Zero, IRBF) } Method (FUNC, 4, Serialized) { Store (0x80000000, Local0) If (LEqual (Arg0, 0x1001)) { Store (S001 (Arg1, Arg2, Arg3), Local0) } Else { If (LEqual (Arg0, 0x1002)) { Store (S002 (Arg1, Arg2, Arg3), Local0) } Else { If (LEqual (Arg0, 0x1004)) { Store (S004 (Arg1, Arg2, Arg3), Local0) } } } Return (Local0) } Method (S001, 3, NotSerialized) { Store (0x80000000, Local0) If (LEqual (Arg0, Zero)) { Store (LEDI, Local0) } Else { If (LEqual (Arg0, One)) { And (Arg2, 0x03, Local1) If (LAnd (And (Arg1, LEDI), Local1)) { Store (0x9B, CMD) ShiftRight (And (Arg2, 0x00030000), 0x08, DVID) Store (Zero, SSMI) } Store (Zero, Local0) } Else { If (LEqual (Arg0, 0x02)) { If (And (Arg1, LEDI)) { Store (0x9B, CMD) Store (One, DVID) Store (Zero, SSMI) Or (ShiftLeft (DVID, 0x10), One, Local0) } Else { Store (Zero, Local0) } } } } Return (Local0) } Method (S002, 3, NotSerialized) { Store (0x80000000, Local0) If (LEqual (Arg0, Zero)) { Store (BTNI, Local0) } Else { If (LEqual (Arg0, One)) { Store (GIRB (), Local0) } Else { If (LEqual (Arg0, 0x02)) { Store (0x9B, CMD) Store (0x02, DVID) Store (Zero, SSMI) Store (DVID, Local0) } Else { If (LEqual (Arg0, 0x03)) { If (Arg1) { Not (Arg1, Local1) And (Arg2, Arg1, Local2) Or (And (WBTN, Local1), Local2, WBTN) Store (0x9B, CMD) Or (ShiftLeft (WBTN, 0x08), 0x03, DVID) Store (Zero, SSMI) } Store (WBTN, Local0) } } } } Return (Local0) } Method (SIRB, 1, NotSerialized) { If (LLess (BNCT, 0x10)) { CreateWordField (BNBF, BNSP, BNP1) Store (Arg0, BNP1) Increment (BNCT) Add (BNSP, 0x02, BNSP) If (LNot (LLess (BNSP, 0x20))) { Store (Zero, BNSP) } } } Method (GIRB, 0, NotSerialized) { If (BNCT) { CreateWordField (BNBF, BNGP, BNP2) Store (BNP2, Local0) Or (Local0, 0x40000000, Local0) Decrement (BNCT) Add (BNGP, 0x02, BNGP) If (LNot (LLess (BNGP, 0x20))) { Store (Zero, BNGP) } } Else { Store (Zero, Local0) } Return (Local0) } Method (S004, 3, NotSerialized) { Store (0x80000000, Local0) If (LEqual (Arg0, Zero)) { Store (NGTI, Local0) } Else { If (LEqual (Arg0, One)) { If (LAnd (LEqual (Arg1, 0x04), And (NGTI, 0x04))) { And (Arg2, 0x03, Local1) If (LOr (LEqual (Local1, 0x03), LEqual (Local1, 0x02))) { If (LNot (NGTF)) { SVBL () Store (One, NGTF) } SBLC (Local1) Store (Local1, NGTM) Store (Zero, Local0) } If (LNot (Local1)) { If (NGTF) { Store (Zero, NGTF) RSBL () SBLC (Zero) } Store (Zero, NGTM) Store (Zero, Local0) } } } Else { If (LEqual (Arg0, 0x02)) { If (LAnd (LEqual (Arg1, 0x04), And (NGTI, 0x04))) { Store (NGTM, Local0) } } } } Return (Local0) } } Scope (\_SB.FEXT) { Method (SBLC, 1, NotSerialized) { If (LNot (Arg0)) { Store (Zero, BLCT) If (ACPW) { Store (0x00, MBLB) } } Else { If (LEqual (Arg0, 0x03)) { Store (One, BLCT) Store (0x36, MBLB) } Else { If (LEqual (Arg0, 0x02)) { Name (BBCT, Buffer (BLLM) {}) Store (BLLT, BBCT) CreateByteField (BBCT, Zero, BLL0) Store (BLL0, LCDB) Store (Zero, BLCT) Store (0x36, MBLB) } } } } Method (SVBL, 0, NotSerialized) { And (\_SB.PCI0.LPCB.FJEX.GBLL (), 0x7FFFFFFF, LSBL) } Method (RSBL, 0, NotSerialized) { \_SB.PCI0.LPCB.FJEX.SBLL (LSBL) } } Device (LID) { Name (_HID, EisaId ("PNP0C0D")) Method (_LID, 0, NotSerialized) { If (CVCL) { Return (Zero) } Else { Return (One) } } Name (_PRW, Package (0x02) { 0x16, 0x04 }) Method (_PSW, 1, NotSerialized) { Noop } } Device (AC) { Name (_HID, "ACPI0003") Scope (\) { Name (ACPS, Ones) } Method (_INI, 0, NotSerialized) { Store (ACPW, ACPS) } Method (_STA, 0, NotSerialized) { Return (0x0F) } Method (_PSR, 0, NotSerialized) { _INI () If (LGreater (NTFY, 0x00)) { Notify (\_PR.CPU0, 0x80) Decrement (NTFY) } If (ACPW) { Return (One) } Else { Return (Zero) } } Name (_PCL, Package (0x01) { \_SB }) Method (ACHK, 0, NotSerialized) { Store (ACPW, Local0) If (LNot (LEqual (Local0, ACPS))) { Store (0x04, NTFY) Sleep (0x28) Notify (\_SB.AC, 0x80) Notify (\_PR.CPU0, 0x80) Store (Local0, ACPS) } } } Device (CMB1) { Name (_HID, EisaId ("PNP0C0A")) Name (_UID, One) Name (_PCL, Package (0x01) { \_SB }) Scope (\) { Name (B1PS, Ones) Name (B1RS, Ones) Name (B1CS, Ones) Name (B1LS, Ones) Name (BIF1, Package (0x0D) { 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, "", "1", "LION", "Fujitsu" }) Name (BST1, Package (0x04) {}) } Method (MKWD, 2, NotSerialized) { If (And (Arg1, 0x80)) { Or (0xFFFF0000, Arg0, Local0) Or (Local0, ShiftLeft (Arg1, 0x08), Local0) Subtract (Zero, Local0, Local0) } Else { Store (Arg0, Local0) Or (Local0, ShiftLeft (Arg1, 0x08), Local0) } Return (Local0) } Method (_INI, 0, NotSerialized) { Store (B1P, B1PS) Store (B1CP, B1RS) Store (B1C, B1CS) Store (MKWD (B1LL, B1LH), B1LS) } Method (_BIF, 0, NotSerialized) { Name (BUFF, Buffer (0x0C) {}) Store (B1NO, Local5) CreateByteField (BIDT, B1ID, B1IX) Store (MKWD (B1DL, B1DH), Index (BIF1, 0x01)) Store (MKWD (B1LL, B1LH), Index (BIF1, 0x02)) Store (Multiply (Add (B1DV, 0x02), 0x0E10), Index (BIF1, 0x04)) If (Local5) { Store (DerefOf (Index (BMST, B1IX)), BUFF) Store (0x07, Local0) Store (Local5, Local2) While (LAnd (Local2, LNot (LLess (Local0, 0x02)))) { Store (Subtract (DerefOf (Index (BUFF, Local0)), 0x30), Local1) Divide (Add (Local1, Local2), 0x0A, Local1, Local2) Store (Add (Local1, 0x30), Index (BUFF, Local0)) Decrement (Local0) } Store (BUFF, Index (BIF1, 0x09)) } Else { Store (DerefOf (Index (BMNT, B1IX)), Index (BIF1, 0x09)= ) } Return (BIF1) } Method (_BST, 0, NotSerialized) { _INI () Store (Zero, Local0) If (B1P) { If (B1C) { Or (Local0, 0x02, Local0) } Else { Or (Local0, One, Local0) } If (LNot (LGreater (B1CP, One))) { Or (Local0, 0x04, Local0) } } Store (MKWD (B1CL, B1CH), Local1) Divide (Multiply (B1CP, MKWD (B1LL, B1LH)), 0x03E8, Local4, Local2) If (Local4) { Increment (Local2) } Multiply (Local2, 0x0A, Local2) Store (MKWD (B1VL, B1VH), Local3) Store (Local0, Index (BST1, Zero)) Store (Local1, Index (BST1, One)) Store (Local2, Index (BST1, 0x02)) Store (Local3, Index (BST1, 0x03)) Return (BST1) } Method (_STA, 0, NotSerialized) { If (B1P) { Return (0x1F) } Return (0x0F) } Method (BCHK, 0, NotSerialized) { If (LNot (LEqual (B1P, B1PS))) { Notify (\_SB.CMB1, 0x81) Store (B1P, B1PS) } If (B1PS) { Store (MKWD (B1LL, B1LH), Local0) If (LNot (LEqual (Local0, B1LS))) { Notify (\_SB.CMB1, 0x81) } If (LOr (LNot (LEqual (B1C, B1CS)), LNot (LEqual (B1CP, B1RS)))) { Notify (\_SB.CMB1, 0x80) } Store (Local0, B1LS) Store (B1C, B1CS) Store (B1CP, B1RS) } } } Device (CMB2) { Name (_HID, EisaId ("PNP0C0A")) Name (_UID, 0x02) Name (_PCL, Package (0x01) { \_SB }) Scope (\) { Name (B2PS, Ones) Name (B2RS, Ones) Name (B2CS, Ones) Name (B2LS, Ones) Name (BIF2, Package (0x0D) { 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, "", "2", "LION", "Fujitsu" }) Name (BST2, Package (0x04) {}) } Method (MKWD, 2, NotSerialized) { If (And (Arg1, 0x80)) { Or (0xFFFF0000, Arg0, Local0) Or (Local0, ShiftLeft (Arg1, 0x08), Local0) Subtract (Zero, Local0, Local0) } Else { Store (Arg0, Local0) Or (Local0, ShiftLeft (Arg1, 0x08), Local0) } Return (Local0) } Method (_INI, 0, NotSerialized) { Store (B2P, B2PS) Store (B2CP, B2RS) Store (B2C, B2CS) Store (MKWD (B2LL, B2LH), B2LS) } Method (_BIF, 0, NotSerialized) { Name (BUFF, Buffer (0x0C) {}) Store (B2NO, Local5) CreateByteField (BIDT, B2ID, B2IX) Store (MKWD (B2DL, B2DH), Index (BIF2, 0x01)) Store (MKWD (B2LL, B2LH), Index (BIF2, 0x02)) Store (Multiply (Add (B2DV, 0x02), 0x0E10), Index (BIF2, 0x04)) If (Local5) { Store (DerefOf (Index (BMST, B2IX)), BUFF) Store (0x07, Local0) Store (Local5, Local2) While (LAnd (Local2, LNot (LLess (Local0, 0x02)))) { Store (Subtract (DerefOf (Index (BUFF, Local0)), 0x30), Local1) Divide (Add (Local1, Local2), 0x0A, Local1, Local2) Store (Add (Local1, 0x30), Index (BUFF, Local0)) Decrement (Local0) } Store (BUFF, Index (BIF2, 0x09)) } Else { Store (DerefOf (Index (BMNT, B2IX)), Index (BIF2, 0x09)= ) } Return (BIF2) } Method (_BST, 0, NotSerialized) { _INI () Store (Zero, Local0) If (B2P) { If (B2C) { Or (Local0, 0x02, Local0) } Else { Or (Local0, One, Local0) } If (LNot (LGreater (B2CP, One))) { Or (Local0, 0x04, Local0) } } Store (MKWD (B2CL, B2CH), Local1) Divide (Multiply (B2CP, MKWD (B2LL, B2LH)), 0x03E8, Local4, Local2) If (Local4) { Increment (Local2) } Multiply (Local2, 0x0A, Local2) Store (MKWD (B2VL, B2VH), Local3) Store (Local0, Index (BST2, Zero)) Store (Local1, Index (BST2, One)) Store (Local2, Index (BST2, 0x02)) Store (Local3, Index (BST2, 0x03)) Return (BST2) } Method (_STA, 0, NotSerialized) { If (B2P) { Return (0x1F) } Return (0x0F) } Method (BCHK, 0, NotSerialized) { If (LNot (LEqual (B2P, B2PS))) { Notify (\_SB.CMB2, 0x81) Store (B2P, B2PS) } If (B2PS) { Store (MKWD (B2LL, B2LH), Local0) If (LNot (LEqual (Local0, B2LS))) { Notify (\_SB.CMB2, 0x81) } If (LOr (LNot (LEqual (B2C, B2CS)), LNot (LEqual (B2CP, B2RS)))) { Notify (\_SB.CMB2, 0x80) } Store (Local0, B2LS) Store (B2C, B2CS) Store (B2CP, B2RS) } } } Device (PWRB) { Name (_HID, EisaId ("PNP0C0C")) Method (_STA, 0, NotSerialized) { Return (0x0F) } } } Scope (_GPE) { Method (_L04, 0, NotSerialized) { Notify (\_SB.PCI0.PCIB, 0x02) } Method (_L0C, 0, NotSerialized) { Notify (\_SB.PCI0.MODM, 0x02) } Method (_L10, 0, NotSerialized) { If (LNot (RI1M)) { Notify (\_SB.PCI0.LPCB.UAR1, 0x02) } } Method (_E13, 0, NotSerialized) { Store (SSM0, SM0S) Store (0x3F, SSM0) Store (SSM1, SM1S) Store (0xFF, SSM1) Store (SSM2, SM2S) Store (0xF8, SSM2) Store (SSF0, Local0) Store (Local0, SSF0) And (Local0, Not (SM0S), Local0) Store (SSF1, Local1) Store (Local1, SSF1) And (Local1, Not (SM1S), Local1) Store (SSF2, Local2) Store (Local2, SSF2) And (Local2, Not (SM2S), Local2) If (And (Local2, 0x10)) { \_SB.AC.ACHK () \_SB.CMB1.BCHK () \_SB.CMB2.BCHK () If (LNot (LEqual (LWMD, PLWM))) { Store (LWMD, PLWM) If (PLWM) { Store (0x04, THDC) Store (One, THRE) } Else { Store (Zero, THRE) } } If (ACPW) { If (LNot (NGTF)) { Store (0x00, MBLB) } } Else { Store (0x36, MBLB) } } If (And (Local0, 0x01)) { \_SB.PCI0.AGP.VGA.PHTK () Store (0x80, CMD) Store (Zero, SSMI) \_SB.PCI0.AGP.VGA.AHTK () If (AHKF) { Notify (\_SB.PCI0.LPCB.FJEX, 0x80) } If (IRBF) { \_SB.FEXT.SIRB (IRBC) Notify (\_SB.FEXT, 0x80) Store (Zero, IRBF) } } If (And (Local1, 0x30)) { \_SB.PCI0.LPCB.CMBT.SWCF () } If (And (Local2, 0x08)) { Store (B1SU, Local3) Store (B1SD, Local4) Store (TBSF, Local5) Store (B2SU, Local6) Store (B2SD, Local7) Store (Zero, STAE) If (LAnd (Local3, LNot (B1TC))) { \_SB.PCI0.IDE.SECD.S_D0.BOFF () Notify (\_SB.PCI0.IDE.SECD.S_D0, One) } If (LOr (LAnd (Local4, B1TC), LAnd (Local5, TMBF))) { \_SB.PCI0.IDE.SECD.S_D0.BON () If (LAnd (LAnd (BRST, BY1O), B1TC)) { Notify (\_SB.PCI0.IDE.SECD.S_D0, One) If (BYRF) { Sleep (0x07D0) Notify (\_SB.PCI0.IDE.SECD.S_D0, One) } } Store (Zero, BYRF) } If (Local5) { If (LNot (TMBF)) { Store (0xF0, TIMB) If (LLess (TCNT, 0xFFFFFFFF)) { Increment (TCNT) } } Else { Store (Zero, TMBF) If (TTIM) { Store (0xD2, TIMB) } Else { Store (Zero, TBSM) } } } If (LOr (Local6, Local7)) { Sleep (0x03E8) Store (Zero, B2SU) Store (Zero, B2SD) If (RPEN) { If (LNot (LEqual (B2TC, RPDS))) { Store (B2TC, RPDS) If (RPDS) { Notify (\_SB.REPL, Zero) } Else { Sleep (0x0FA0) Notify (\_SB.REPL, One) } } } } } Store (SM0S, SSM0) Store (SM1S, SSM1) Store (SM2S, SSM2) } Method (_L16, 0, NotSerialized) { XOr (LPOL, One, LPOL) Notify (\_SB.LID, 0x80) } Method (_L18, 0, NotSerialized) { Notify (\_SB.PCI0.PB4, 0x02) } } Name (_S0, Package (0x04) { 0x00, 0x00, 0x00, 0x00 }) Name (_S3, Package (0x04) { 0x03, 0x03, 0x00, 0x00 }) Name (_S4, Package (0x04) { 0x04, 0x04, 0x00, 0x00 }) Name (_S5, Package (0x04) { 0x05, 0x05, 0x00, 0x00 }) Method (_PTS, 1, NotSerialized) { If (LAnd (LNot (LLess (Arg0, One)), LNot (LGreater (Arg0, 0x04)))) { Store (G3P2, Local1) Or (G3P2, 0x10, G3P2) Store (G3P0, Local0) Or (G3P0, 0x20, G3P0) Sleep (0xC8) Store (Local1, G3P2) Store (0x6D, BCTL) While (And (BCTL, One)) { Sleep (One) } Store (Local0, G3P0) If (\_SB.PCI0.IDE.SECD.S_D0._STA ()) { Store (Zero, BYIS) } Else { Store (0xFF, BYIS) } If (RPEN) { Store (RPDS, DC1S) } } \_SB.PCI0.LPCB.CMBT.BPTS (Arg0) Store (Zero, WAPB) If (TTIM) { Store (0x9A, CMD) Store (TCNT, DVID) Store (Zero, TCNT) Store (Zero, SSMI) } } Method (_WAK, 1, NotSerialized) { \_SB.PCI0.LPCB.AINI () \_SB.FEXT._INI () \_SB.PCI0.LPCB.CMBT.BWAK (Arg0) If (LEqual (Arg0, 0x03)) { Store (0x9B, CMD) Store (0x04, DVID) Store (Zero, SSMI) } If (WAPB) { Notify (\_SB.PWRB, 0x02) } If (LEqual (Arg0, 0x04)) { \_SB.FEXT.FUNC (0x1002, 0x03, Ones, WBTN) } If (NGTM) { \_SB.FEXT.FUNC (0x1004, 0x01, 0x04, 0x00) } If (LAnd (LNot (LLess (Arg0, One)), LNot (LGreater (Arg0, 0x04)))) { If (LEqual (BYIS, 0xFF)) { If (\_SB.PCI0.IDE.SECD.S_D0.BIDE ()) { If (BYRF) { If (LNot (\_SB.PCI0.IDE.SECD.S_D0._STA ())) { \_SB.PCI0.IDE.SECD.S_D0.TMCL () } Else { \_SB.PCI0.IDE.SECD.S_D0.BOFF () } Store (0x01, TMBF) Store (0x01, TBSM) Store (0x00, TBSF) Store (0x1E, TIMB) } Else { If (LNot (\_SB.PCI0.IDE.SECD.S_D0._STA ())) { \_SB.PCI0.IDE.SECD.S_D0.BON () } If (LAnd (LAnd (BRST, BY1O), B1TC)) { Notify (\_SB.PCI0.IDE.SECD.S_D0, One) } } } } Else { If (LNot (\_SB.PCI0.IDE.SECD.S_D0._STA ())) { \_SB.PCI0.IDE.SECD.S_D0.TMCL () Notify (\_SB.PCI0.IDE.SECD.S_D0, One) } Else { If (LEqual (Arg0, 0x04)) { Store (0x87, CMD) Store (0x02, DVID) Store (Zero, SSMI) Name (BFMN, Buffer (0x28) {}) Store (PIID, BFMN) Store (Zero, Local0) Store (Zero, Local1) While (LAnd (LNot (Local0), LLess (Local1, 0x28))) { If (LEqual (DerefOf (Index (\_SB.PCI0.IDE.SMMN, Local1)), DerefOf (Index (BFMN, Local1)))) { Increment (Local1) } Else { Store (0x01, Local0) } } If (Local0) { \_SB.PCI0.IDE.SECD.S_D0.BOFF () Notify (\_SB.PCI0.IDE.SECD.S_D0, One) } } } If (LAnd (\_SB.PCI0.IDE.SECD.S_D0.BIDE (), LNot (\_SB.PCI0.IDE.SECD.S_D0._STA ()))) { Store (0x01, TMBF) Store (0x01, TBSM) Store (0x00, TBSF) Store (0x1E, TIMB) } } If (RPEN) { If (LNot (LEqual (B2TC, DC1S))) { Store (B2TC, RPDS) If (RPDS) { Notify (\_SB.REPL, Zero) } Else { Notify (\_SB.REPL, One) } } } } } Scope (\_PR.CPU0) { Name (_PCT, Package (0x02) { ResourceTemplate () { Register (FFixedHW, 0x00, 0x00, 0x0000000000000000) }, ResourceTemplate () { Register (FFixedHW, 0x00, 0x00, 0x0000000000000000) } }) Method (_PPC, 0, NotSerialized) { If (ACPW) { Return (0x00) } Else { Return (0x00) } } Name (_PSS, Package (0x02) { Package (0x06) { 0x00000640, 0x000061A8, 0x00000064, 0x00000007, 0xE0202A88, 0x00000288 }, Package (0x06) { 0x00000320, 0x00002198, 0x00000064, 0x00000007, 0xE0202D80, 0x00000580 } }) } } -- If UNIX doesn't have the solution you have the wrong problem. UNIX is simple, but it takes a genius to understand it's simplicity. From owner-freebsd-acpi@FreeBSD.ORG Sun Jan 29 03:09:58 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B1BD316A420 for ; Sun, 29 Jan 2006 03:09:58 +0000 (GMT) (envelope-from mistry.7@osu.edu) Received: from mail.united-ware.com (am-productions.biz [69.61.164.22]) by mx1.FreeBSD.org (Postfix) with ESMTP id 199FA43D45 for ; Sun, 29 Jan 2006 03:09:57 +0000 (GMT) (envelope-from mistry.7@osu.edu) Received: from [192.168.1.100] (am-productions.biz [69.61.164.22]) (authenticated bits=0) by mail.united-ware.com (8.13.4/8.13.4) with ESMTP id k0T3HmHA070327 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 28 Jan 2006 22:17:54 -0500 (EST) (envelope-from mistry.7@osu.edu) From: Anish Mistry To: freebsd-acpi@freebsd.org Date: Sat, 28 Jan 2006 22:12:45 -0500 User-Agent: KMail/1.9.1 References: <97bedf530601281626x74ce3078h82d9fef2a9dc80a8@mail.gmail.com> In-Reply-To: <97bedf530601281626x74ce3078h82d9fef2a9dc80a8@mail.gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart1986960.OOJu9DpBnJ"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <200601282212.55223.mistry.7@osu.edu> X-Spam-Status: No, score=-5.6 required=5.0 tests=ALL_TRUSTED,BAYES_20, J_CHICKENPOX_42,MYFREEBSD2 autolearn=failed version=3.1.0 X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on mail.united-ware.com X-Virus-Scanned: ClamAV 0.88/1255/Sat Jan 28 04:55:09 2006 on mail.united-ware.com X-Virus-Status: Clean Cc: Brandon Mitchell Subject: Re: Fujitsu S2110 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jan 2006 03:09:58 -0000 --nextPart1986960.OOJu9DpBnJ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On Saturday 28 January 2006 19:26, Brandon Mitchell wrote: > ACPI listers, > > I have recently acquired an S2110 with the AMD Turion CPU, and am > tracking 6-STABLE on it. > > Here is the issue: > > When I simply have acpi.ko loaded, dmesg reports all kinds of nifty > ACPI devices. Great. For the life of me, though, I don't seem to > see them _doing_ anything. I have powerd loaded in rc.conf, but the > CPU never changes speed, shutting the lid does _not_ suspend the > laptop, and the power button simply executes a 'shutdown -h now' > via ACPI (the documented response is a suspend). Backlight and > volume functionality seems to be working fine. > > So, then I 'kldload acpi_fujitsu' thinking, 'hey, that just might > work!'. Well, it doesn't do anything. Through grepping around a > bit, I see that the code supports my map table, but it seems to > catch on the GVOL step, ala this poor chap: > http://docs.freebsd.org/cgi/mid.cgi?42FD1079.3020607 I'm planning on fixing this problem. The problem seems that a lot of=20 the newer Fujitsu laptops don't have all the features of the older=20 ones (ACPI-wise). Currently the logic of acpi_fujitsu expects=20 everything to be available or it will fail to attach. I'll see if I=20 can whip up a small fix that will allow each thing to be conditional. =20 If you want, comment out the GVOL/SVOL stuff from the driver and see=20 if you can get it to attach. > > Bottom line is: I would really love to have ACPI fully functional, > and while my C skills are rather rusty at this point, I am more > than willing to experiment on this laptop with any patches that > might be available out there (though I couldn't find any). Send the output of "sysctl hw.acpi" to the list. > > Lastly, I'm not a subscriber to the list, so please CC:/BCC: me on > any responses or comments. > > Thanks guys, > Brandon Mitchell =2D-=20 Anish Mistry --nextPart1986960.OOJu9DpBnJ Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (FreeBSD) iD8DBQBD3DK3xqA5ziudZT0RArcFAJ4gV8DtI4saB7G5TAN/PAmeiu5RuQCeMWvd Naoehm2AJ4E1VXJzYb4xmTM= =3BbQ -----END PGP SIGNATURE----- --nextPart1986960.OOJu9DpBnJ-- From owner-freebsd-acpi@FreeBSD.ORG Sun Jan 29 03:39:05 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8F2BD16A420 for ; Sun, 29 Jan 2006 03:39:05 +0000 (GMT) (envelope-from mistry.7@osu.edu) Received: from mail.united-ware.com (am-productions.biz [69.61.164.22]) by mx1.FreeBSD.org (Postfix) with ESMTP id F0BC943D70 for ; Sun, 29 Jan 2006 03:38:59 +0000 (GMT) (envelope-from mistry.7@osu.edu) Received: from [192.168.1.100] (am-productions.biz [69.61.164.22]) (authenticated bits=0) by mail.united-ware.com (8.13.4/8.13.4) with ESMTP id k0T3kon5070589 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 28 Jan 2006 22:46:56 -0500 (EST) (envelope-from mistry.7@osu.edu) From: Anish Mistry To: Brandon Mitchell Date: Sat, 28 Jan 2006 22:41:49 -0500 User-Agent: KMail/1.9.1 MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart6452979.8eAT4N0PIF"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <200601282241.57641.mistry.7@osu.edu> X-Spam-Status: No, score=-5.5 required=5.0 tests=ALL_TRUSTED,BAYES_50, MYFREEBSD3 autolearn=failed version=3.1.0 X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on mail.united-ware.com X-Virus-Scanned: ClamAV 0.88/1255/Sat Jan 28 04:55:09 2006 on mail.united-ware.com X-Virus-Status: Clean Cc: freebsd-acpi@freebsd.org Subject: Re: Fujitsu S2110 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jan 2006 03:39:05 -0000 --nextPart6452979.8eAT4N0PIF Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Ok, this is the interesting part of your FUJB02B1 device. You=20 wouldn't happen to know what the following method does? eg. GVOL =3D=20 get volume, GBLL =3D get back light level, etc. Also what function keys are available on your laptop? Method (GSIF, 0, NotSerialized) { If (IMTF) { Or (RGSI, 0x08, RGSI) } Else { And (RGSI, 0xFFFFFFF7, RGSI) } Return (RGSI) } =2D-=20 Anish Mistry --nextPart6452979.8eAT4N0PIF Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (FreeBSD) iD8DBQBD3DmFxqA5ziudZT0RAqP3AJoCFZVo5T4+CmpLm2pfbtCbocZ7CACgiASa 3Gtrqd8WB6M2WhFVzq34xok= =/CWl -----END PGP SIGNATURE----- --nextPart6452979.8eAT4N0PIF-- From owner-freebsd-acpi@FreeBSD.ORG Sun Jan 29 04:45:29 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 210FB16A422 for ; Sun, 29 Jan 2006 04:45:29 +0000 (GMT) (envelope-from peterjeremy@optushome.com.au) Received: from mail05.syd.optusnet.com.au (mail05.syd.optusnet.com.au [211.29.132.186]) by mx1.FreeBSD.org (Postfix) with ESMTP id 71A8343D48 for ; Sun, 29 Jan 2006 04:45:28 +0000 (GMT) (envelope-from peterjeremy@optushome.com.au) Received: from turion.vk2pj.dyndns.org (c220-239-19-236.belrs4.nsw.optusnet.com.au [220.239.19.236]) by mail05.syd.optusnet.com.au (8.12.11/8.12.11) with ESMTP id k0T4jQJS031324 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Sun, 29 Jan 2006 15:45:27 +1100 Received: from turion.vk2pj.dyndns.org (localhost.vk2pj.dyndns.org [127.0.0.1]) by turion.vk2pj.dyndns.org (8.13.4/8.13.4) with ESMTP id k0T4jQAe005413 for ; Sun, 29 Jan 2006 15:45:26 +1100 (EST) (envelope-from peter@turion.vk2pj.dyndns.org) Received: (from peter@localhost) by turion.vk2pj.dyndns.org (8.13.4/8.13.4/Submit) id k0T4jQGV005412 for freebsd-acpi@freebsd.org; Sun, 29 Jan 2006 15:45:26 +1100 (EST) (envelope-from peter) Date: Sun, 29 Jan 2006 15:45:26 +1100 From: Peter Jeremy To: freebsd-acpi@freebsd.org Message-ID: <20060129044526.GO2341@turion.vk2pj.dyndns.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-PGP-Key: http://members.optusnet.com.au/peterjeremy/pubkey.asc User-Agent: Mutt/1.5.11 Subject: Discharge rate error on HP nx6125 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jan 2006 04:45:29 -0000 When my nx6125 is running from batteries, the discharge rate is reported as about 30,000mA - this is about an order of magnitude high. The capacity warning levels (~5% and 1%) also appear unrealistically low. turion% acpiconf -i 0 Design capacity: 4725 mAh Last full capacity: 4725 mAh Technology: secondary (rechargeable) Design voltage: 11100 mV Capacity (warn): 237 mAh Capacity (low): 48 mAh Low/warn granularity: 100 mAh Warn/full granularity: 100 mAh Model number: Primary Serial number: 14370 2005/09/22 Type: LIon OEM info: Hewlett-Packard State: discharging Remaining capacity: 98% Remaining time: 1:43 Present rate: 29870 mA Voltage: 12090 mV -- Peter Jeremy From owner-freebsd-acpi@FreeBSD.ORG Sun Jan 29 04:54:36 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 23CD816A46E for ; Sun, 29 Jan 2006 04:54:36 +0000 (GMT) (envelope-from nate@root.org) Received: from ylpvm15.prodigy.net (ylpvm15-ext.prodigy.net [207.115.57.46]) by mx1.FreeBSD.org (Postfix) with ESMTP id B379A43D48 for ; Sun, 29 Jan 2006 04:54:35 +0000 (GMT) (envelope-from nate@root.org) Received: from pimout7-ext.prodigy.net (pimout7-int.prodigy.net [207.115.4.147]) by ylpvm15.prodigy.net (8.12.10 outbound/8.12.10) with ESMTP id k0T4skEV011839 for ; Sat, 28 Jan 2006 23:54:46 -0500 X-ORBL: [71.139.114.10] Received: from [10.0.0.115] (ppp-71-139-114-10.dsl.snfc21.pacbell.net [71.139.114.10]) by pimout7-ext.prodigy.net (8.13.4 outbound domainkey aix/8.13.4) with ESMTP id k0T4sXro098618; Sat, 28 Jan 2006 23:54:34 -0500 Message-ID: <43DC4A9A.5040004@root.org> Date: Sat, 28 Jan 2006 20:54:50 -0800 From: Nate Lawson User-Agent: Mozilla Thunderbird 1.0.6 (X11/20050723) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Peter Jeremy References: <20060129044526.GO2341@turion.vk2pj.dyndns.org> In-Reply-To: <20060129044526.GO2341@turion.vk2pj.dyndns.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-acpi@freebsd.org Subject: Re: Discharge rate error on HP nx6125 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jan 2006 04:54:36 -0000 Peter Jeremy wrote: > When my nx6125 is running from batteries, the discharge rate is reported > as about 30,000mA - this is about an order of magnitude high. The > capacity warning levels (~5% and 1%) also appear unrealistically low. > > turion% acpiconf -i 0 > Design capacity: 4725 mAh > Last full capacity: 4725 mAh > Technology: secondary (rechargeable) > Design voltage: 11100 mV > Capacity (warn): 237 mAh > Capacity (low): 48 mAh > Low/warn granularity: 100 mAh > Warn/full granularity: 100 mAh > Model number: Primary > Serial number: 14370 2005/09/22 > Type: LIon > OEM info: Hewlett-Packard > State: discharging > Remaining capacity: 98% > Remaining time: 1:43 > Present rate: 29870 mA > Voltage: 12090 mV > Is it acpi_cmbat or acpi_smbat? dmesg and sysctl hw.acpi -- Nate From owner-freebsd-acpi@FreeBSD.ORG Sun Jan 29 05:13:27 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3571C16A422 for ; Sun, 29 Jan 2006 05:13:27 +0000 (GMT) (envelope-from magicsmoke@gmail.com) Received: from zproxy.gmail.com (zproxy.gmail.com [64.233.162.202]) by mx1.FreeBSD.org (Postfix) with ESMTP id A4C7F43D48 for ; Sun, 29 Jan 2006 05:13:25 +0000 (GMT) (envelope-from magicsmoke@gmail.com) Received: by zproxy.gmail.com with SMTP id x3so911990nzd for ; Sat, 28 Jan 2006 21:13:25 -0800 (PST) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; b=lPjWdzmo1IfGxkenCZ5tWmMV3cv2c9G/LC76pnx09CtISBt26TDUsl65UAFHqZipsbNXeTD69CARswU6oTYdHPS6wFXL626JlaS1N3GGU+nb7av9QMrRWBHRGufWNQMliiVTCV77n/ZBtGZc5LNmA6/suahXNBR1N76Ws3GeOJ4= Received: by 10.64.149.1 with SMTP id w1mr1618877qbd; Sat, 28 Jan 2006 21:13:24 -0800 (PST) Received: by 10.64.184.18 with HTTP; Sat, 28 Jan 2006 21:13:24 -0800 (PST) Message-ID: <97bedf530601282113w68608800w85d699a3cc44941b@mail.gmail.com> Date: Sat, 28 Jan 2006 21:13:24 -0800 From: Brandon Mitchell To: Anish Mistry In-Reply-To: <200601282241.57641.mistry.7@osu.edu> MIME-Version: 1.0 References: <200601282241.57641.mistry.7@osu.edu> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: freebsd-acpi@freebsd.org Subject: Re: Fujitsu S2110 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jan 2006 05:13:27 -0000 Thanks for taking the time to reply. In response to both of your previous posts: My hw.acpi MIB looks something like this: hw.acpi.supported_sleep_state: S3 S4 S5 hw.acpi.power_button_state: S5 hw.acpi.sleep_button_state: S3 hw.acpi.lid_switch_state: NONE hw.acpi.standby_state: S1 hw.acpi.suspend_state: S3 hw.acpi.sleep_delay: 1 hw.acpi.s4bios: 0 hw.acpi.verbose: 0 hw.acpi.reset_video: 1 hw.acpi.cpu.cx_supported: C1/0 C2/1 hw.acpi.cpu.cx_lowest: C1 hw.acpi.cpu.cx_usage: 100.00% 0.00% hw.acpi.video.crt0.active: 0 hw.acpi.video.lcd0.active: 1 hw.acpi.video.tv0.active: 0 hw.acpi.video.out0.active: 0 hw.acpi.acline: 1 hw.acpi.battery.life : 100 hw.acpi.battery.time: -1 hw.acpi.battery.state: 1 hw.acpi.battery.units: 2 hw.acpi.battery.info_expire: 5 I see that the hw.acpi.power_button_state controls what that button does. I attempted to set it to S3, and tapped the power button. I then got a series of ioapic.suspend: feature not yet implemented messages, before it suspended. It would not, however, come back out of the suspend; it got so far as the BIOS, and that was it. I just hardbooted to get it back up again= . I also see the lid_switch_state is not set? Should this not be set to S3, a= s well? Or perhaps neither it nor the power_button_state are set to S3 due to the 'feature not yet implemented' issue? Just conjecture, on my part. I have the following buttons on the laptop (note the absence of a 'suspend' or 'sleep' button - the manual states that tapping the power button is supposed to provide this functionality): Power Mute External Mouse (automagic within the BIOS, for the most part) Brightness Up/Down Volume Up/Down External VGA/S-Video (more automagic, really) 5 'Application' buttons with 10 possible options: Stop/Eject, Play/Pause, Rewind, FF - 'Player' mode A, B, Internet, Email - 'Application' mode The last button switches modes I then have a switch on the back of the laptop that controls the wireless radio, but does not actually shut the _card_ down - simply stops broadcasting a signal. The closest thing I have found thus far on the FUJB02B1 device is 'FUJ02B1' which controls the sound and brightness functions on Lifebook S5582 (Pentiu= m 3). Perhaps this device is a later (B) revision of same? On 1/28/06, Anish Mistry wrote: > > Ok, this is the interesting part of your FUJB02B1 device. You > wouldn't happen to know what the following method does? eg. GVOL =3D > get volume, GBLL =3D get back light level, etc. > Also what function keys are available on your laptop? > > Method (GSIF, 0, NotSerialized) > { > If (IMTF) > { > Or (RGSI, 0x08, RGSI) > } > Else > { > And (RGSI, 0xFFFFFFF7, RGSI) > } > > Return (RGSI) > } > > -- > Anish Mistry > > > -- If UNIX doesn't have the solution you have the wrong problem. UNIX is simple, but it takes a genius to understand it's simplicity. From owner-freebsd-acpi@FreeBSD.ORG Sun Jan 29 05:18:30 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1A64216A420 for ; Sun, 29 Jan 2006 05:18:30 +0000 (GMT) (envelope-from peterjeremy@optushome.com.au) Received: from mail20.syd.optusnet.com.au (mail20.syd.optusnet.com.au [211.29.132.201]) by mx1.FreeBSD.org (Postfix) with ESMTP id 69FA343D46 for ; Sun, 29 Jan 2006 05:18:29 +0000 (GMT) (envelope-from peterjeremy@optushome.com.au) Received: from turion.vk2pj.dyndns.org (c220-239-19-236.belrs4.nsw.optusnet.com.au [220.239.19.236]) by mail20.syd.optusnet.com.au (8.12.11/8.12.11) with ESMTP id k0T5IQ91022275 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO); Sun, 29 Jan 2006 16:18:27 +1100 Received: from turion.vk2pj.dyndns.org (localhost.vk2pj.dyndns.org [127.0.0.1]) by turion.vk2pj.dyndns.org (8.13.4/8.13.4) with ESMTP id k0T5IQeC005508; Sun, 29 Jan 2006 16:18:26 +1100 (EST) (envelope-from peter@turion.vk2pj.dyndns.org) Received: (from peter@localhost) by turion.vk2pj.dyndns.org (8.13.4/8.13.4/Submit) id k0T5IQaH005507; Sun, 29 Jan 2006 16:18:26 +1100 (EST) (envelope-from peter) Date: Sun, 29 Jan 2006 16:18:26 +1100 From: Peter Jeremy To: Nate Lawson Message-ID: <20060129051826.GP2341@turion.vk2pj.dyndns.org> References: <20060129044526.GO2341@turion.vk2pj.dyndns.org> <43DC4A9A.5040004@root.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <43DC4A9A.5040004@root.org> X-PGP-Key: http://members.optusnet.com.au/peterjeremy/pubkey.asc User-Agent: Mutt/1.5.11 Cc: freebsd-acpi@freebsd.org Subject: Re: Discharge rate error on HP nx6125 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jan 2006 05:18:30 -0000 On Sat, 2006-Jan-28 20:54:50 -0800, Nate Lawson wrote: >>When my nx6125 is running from batteries, the discharge rate is reported >>as about 30,000mA - this is about an order of magnitude high. The >>capacity warning levels (~5% and 1%) also appear unrealistically low. >> >>turion% acpiconf -i 0 >>Design capacity: 4725 mAh >>Last full capacity: 4725 mAh >>Technology: secondary (rechargeable) >>Design voltage: 11100 mV >>Capacity (warn): 237 mAh >>Capacity (low): 48 mAh >>Low/warn granularity: 100 mAh >>Warn/full granularity: 100 mAh >>Model number: Primary >>Serial number: 14370 2005/09/22 >>Type: LIon >>OEM info: Hewlett-Packard >>State: discharging >>Remaining capacity: 98% >>Remaining time: 1:43 >>Present rate: 29870 mA >>Voltage: 12090 mV > >Is it acpi_cmbat or acpi_smbat? dmesg and sysctl hw.acpi acpi_cmbat I believe. hw.acpi and pruned dmesg follow: turion# sysctl hw.acpi hw.acpi.supported_sleep_state: S3 S4 S5 hw.acpi.power_button_state: S5 hw.acpi.sleep_button_state: S3 hw.acpi.lid_switch_state: NONE hw.acpi.standby_state: S1 hw.acpi.suspend_state: S3 hw.acpi.sleep_delay: 1 hw.acpi.s4bios: 1 hw.acpi.verbose: 0 hw.acpi.cpu.cx_supported: C1/0 C2/10 hw.acpi.cpu.cx_lowest: C1 hw.acpi.cpu.cx_usage: 100.00% 0.00% hw.acpi.battery.life: 96 hw.acpi.battery.time: -1 hw.acpi.battery.state: 0 hw.acpi.battery.units: 2 hw.acpi.battery.info_expire: 5 hw.acpi.acline: 1 hw.acpi.thermal.min_runtime: 0 hw.acpi.thermal.polling_rate: 10 hw.acpi.thermal.tz0.temperature: 62.0C hw.acpi.thermal.tz0.active: 2 hw.acpi.thermal.tz0.passive_cooling: 1 hw.acpi.thermal.tz0.thermal_flags: 0 hw.acpi.thermal.tz0._PSV: 88.0C hw.acpi.thermal.tz0._HOT: -1 hw.acpi.thermal.tz0._CRT: 94.8C hw.acpi.thermal.tz0._ACx: 80.0C 75.0C 59.0C 50.0C -1 -1 -1 -1 -1 -1 hw.acpi.thermal.tz1.temperature: 54.0C hw.acpi.thermal.tz1.active: -1 hw.acpi.thermal.tz1.passive_cooling: 0 hw.acpi.thermal.tz1.thermal_flags: 0 hw.acpi.thermal.tz1._PSV: 90.0C hw.acpi.thermal.tz1._HOT: -1 hw.acpi.thermal.tz1._CRT: 100.0C hw.acpi.thermal.tz1._ACx: -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 hw.acpi.thermal.tz2.temperature: 32.2C hw.acpi.thermal.tz2.active: -1 hw.acpi.thermal.tz2.passive_cooling: 0 hw.acpi.thermal.tz2.thermal_flags: 0 hw.acpi.thermal.tz2._PSV: 60.0C hw.acpi.thermal.tz2._HOT: -1 hw.acpi.thermal.tz2._CRT: 100.0C hw.acpi.thermal.tz2._ACx: -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 turion# FreeBSD 6.0-STABLE #2: Fri Jan 20 18:37:49 EST 2006 root@turion.vk2pj.dyndns.org:/usr/obj/usr/src/sys/turion ACPI APIC Table: Timecounter "i8254" frequency 1193182 Hz quality 0 CPU: AMD Turion(tm) 64 Mobile ML-40 (2194.52-MHz K8-class CPU) Origin = "AuthenticAMD" Id = 0x20f42 Stepping = 2 Features=0x78bfbff Features2=0x1 AMD Features=0xe2500800,LM,3DNow+,3DNow> real memory = 939327488 (895 MB) avail memory = 898633728 (857 MB) ioapic0: Changing APIC ID to 1 ioapic0 irqs 0-23 on motherboard acpi0: on motherboard acpi0: Overriding SCI Interrupt from IRQ 9 to IRQ 21 acpi0: Power Button (fixed) acpi_ec0: port 0x62,0x66 on acpi0 unknown: I/O range not supported Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000 acpi_timer0: <32-bit timer at 3.579545MHz> port 0x8008-0x800b on acpi0 cpu0: on acpi0 acpi_throttle0: on cpu0 ... battery0: on acpi0 battery1: on acpi0 acpi_acad0: on acpi0 acpi_button0: on acpi0 acpi_lid0: on acpi0 acpi_tz0: on acpi0 acpi_tz1: on acpi0 acpi_tz2: on acpi0 -- Peter Jeremy From owner-freebsd-acpi@FreeBSD.ORG Sun Jan 29 08:06:54 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6F5CA16A420 for ; Sun, 29 Jan 2006 08:06:54 +0000 (GMT) (envelope-from mistry.7@osu.edu) Received: from mail.united-ware.com (am-productions.biz [69.61.164.22]) by mx1.FreeBSD.org (Postfix) with ESMTP id E577A43D45 for ; Sun, 29 Jan 2006 08:06:53 +0000 (GMT) (envelope-from mistry.7@osu.edu) Received: from [192.168.1.100] (am-productions.biz [69.61.164.22]) (authenticated bits=0) by mail.united-ware.com (8.13.4/8.13.4) with ESMTP id k0T8EiWn087239 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sun, 29 Jan 2006 03:14:51 -0500 (EST) (envelope-from mistry.7@osu.edu) From: Anish Mistry To: Brandon Mitchell Date: Sun, 29 Jan 2006 03:09:39 -0500 User-Agent: KMail/1.9.1 References: <200601282241.57641.mistry.7@osu.edu> <97bedf530601282112s57081693wbab8411a3f9dcd57@mail.gmail.com> In-Reply-To: <97bedf530601282112s57081693wbab8411a3f9dcd57@mail.gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart1733131.yoyzDePJCk"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <200601290309.50678.mistry.7@osu.edu> X-Spam-Status: No, score=-6.0 required=5.0 tests=ALL_TRUSTED,BAYES_05, J_CHICKENPOX_24,MYFREEBSD3 autolearn=failed version=3.1.0 X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on mail.united-ware.com X-Virus-Scanned: ClamAV 0.88/1255/Sat Jan 28 04:55:09 2006 on mail.united-ware.com X-Virus-Status: Clean Cc: freebsd-acpi@freebsd.org Subject: Re: Fujitsu S2110 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jan 2006 08:06:54 -0000 --nextPart1733131.yoyzDePJCk Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On Sunday 29 January 2006 00:12, you wrote: > Thanks for taking the time to reply. In response to both of your > previous posts: > > My hw.acpi MIB looks something like this: > hw.acpi.supported_sleep_state: S3 S4 S5 > hw.acpi.power_button_state: S5 > hw.acpi.sleep_button_state: S3 > hw.acpi.lid_switch_state: NONE > hw.acpi.standby_state: S1 > hw.acpi.suspend_state: S3 > hw.acpi.sleep_delay: 1 > hw.acpi.s4bios: 0 > hw.acpi.verbose: 0 > hw.acpi.reset_video: 1 > hw.acpi.cpu.cx_supported: C1/0 C2/1 > hw.acpi.cpu.cx_lowest: C1 > hw.acpi.cpu.cx_usage: 100.00% 0.00% > hw.acpi.video.crt0.active: 0 > hw.acpi.video.lcd0.active: 1 > hw.acpi.video.tv0.active: 0 > hw.acpi.video.out0.active: 0 > hw.acpi.acline: 1 > hw.acpi.battery.life: 100 > hw.acpi.battery.time: -1 > hw.acpi.battery.state: 1 > hw.acpi.battery.units: 2 > hw.acpi.battery.info_expire: 5 > > I see that the hw.acpi.power_button_state controls what that button > does. I attempted to set it to S3, and tapped the power button. I > then got a series of ioapic.suspend: feature not yet implemented > messages, before it suspended. It would not, however, come back out > of the suspend; it got so far as the BIOS, and that was it. I just > hardbooted to get it back up again. > > I also see the lid_switch_state is not set? Should this not be set > to S3, as well? Or perhaps neither it nor the power_button_state > are set to S3 due to the 'feature not yet implemented' issue? Just > conjecture, on my part. > > I have the following buttons on the laptop (note the absence of a > 'suspend' or 'sleep' button - the manual states that tapping the > power button is supposed to provide this functionality): > > Power > Mute > External Mouse (automagic within the BIOS, for the most part) > Brightness Up/Down > Volume Up/Down > External VGA/S-Video (more automagic, really) > 5 'Application' buttons with 10 possible options: > Stop/Eject, Play/Pause, Rewind, FF - 'Player' mode > A, B, Internet, Email - 'Application' mode > The last button switches modes > > I then have a switch on the back of the laptop that controls the > wireless radio, but does not actually shut the _card_ down - simply > stops broadcasting a signal. > > The closest thing I have found thus far on the FUJB02B1 device is > 'FUJ02B1' which controls the sound and brightness functions on > Lifebook S5582 (Pentium 3). Perhaps this device is a later (B) > revision of same? The acpi_fujitsu device only enables the function buttons/hotkeys. Do=20 you also have a S5582? Would you send me the acpidump of that too? I also noticed another interesting device. Device (FEXT) { Name (_HID, "FUJ02E3") There is only 1 pair of get/set methods. And some more complex=20 function call methods that I'm not sure how to invoke. I'll see=20 about adding that to the current driver and let you play around with=20 it to figure out what it pokes. > > On 1/28/06, Anish Mistry wrote: > > Ok, this is the interesting part of your FUJB02B1 device. You > > wouldn't happen to know what the following method does? eg. GVOL > > =3D get volume, GBLL =3D get back light level, etc. > > Also what function keys are available on your laptop? > > > > Method (GSIF, 0, NotSerialized) > > { > > If (IMTF) > > { > > Or (RGSI, 0x08, RGSI) > > } > > Else > > { > > And (RGSI, 0xFFFFFFF7, RGSI) > > } > > > > Return (RGSI) > > } > > > > -- > > Anish Mistry > > -- > If UNIX doesn't have the solution you have the wrong problem. > UNIX is simple, but it takes a genius to understand it's > simplicity. =2D-=20 Anish Mistry --nextPart1733131.yoyzDePJCk Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (FreeBSD) iD8DBQBD3HhOxqA5ziudZT0RAt5gAKCKeVOkTmeqVVo2eXT1ftkSL0ZssACfW8mg qALV5jQxn5FmkvHy7fH3mAY= =TMPk -----END PGP SIGNATURE----- --nextPart1733131.yoyzDePJCk-- From owner-freebsd-acpi@FreeBSD.ORG Sun Jan 29 08:21:28 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D638416A420 for ; Sun, 29 Jan 2006 08:21:28 +0000 (GMT) (envelope-from mistry.7@osu.edu) Received: from mail.united-ware.com (am-productions.biz [69.61.164.22]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0CDE843D55 for ; Sun, 29 Jan 2006 08:21:25 +0000 (GMT) (envelope-from mistry.7@osu.edu) Received: from [192.168.1.100] (am-productions.biz [69.61.164.22]) (authenticated bits=0) by mail.united-ware.com (8.13.4/8.13.4) with ESMTP id k0T8TI2i087380 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Sun, 29 Jan 2006 03:29:24 -0500 (EST) (envelope-from mistry.7@osu.edu) From: Anish Mistry To: freebsd-acpi@freebsd.org Date: Sun, 29 Jan 2006 03:24:16 -0500 User-Agent: KMail/1.9.1 MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart8497027.OGEcyzF88x"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <200601290324.24151.mistry.7@osu.edu> X-Spam-Status: No, score=-5.5 required=5.0 tests=ALL_TRUSTED,BAYES_50, MYFREEBSD2 autolearn=failed version=3.1.0 X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on mail.united-ware.com X-Virus-Scanned: ClamAV 0.88/1255/Sat Jan 28 04:55:09 2006 on mail.united-ware.com X-Virus-Status: Clean Subject: ACPI method calling questions X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jan 2006 08:21:28 -0000 --nextPart8497027.OGEcyzF88x Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline If I has a ACPI device method like: Method (FUNC, 4, Serialized) { Store (0x80000000, Local0) If (LEqual (Arg0, 0x1001)) { Store (S001 (Arg1, Arg2, Arg3), Local0) } Else { If (LEqual (Arg0, 0x1002)) { Store (S002 (Arg1, Arg2, Arg3), Local0) } Else { If (LEqual (Arg0, 0x1004)) { Store (S004 (Arg1, Arg2, Arg3), Local0) } } } Return (Local0) } How would I go about calling it from my driver? Like for a single=20 argument set method I'd just do acpi_SetInteger. Thanks, =2D-=20 Anish Mistry --nextPart8497027.OGEcyzF88x Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (FreeBSD) iD8DBQBD3Hu4xqA5ziudZT0RAu7uAJoDpcKW/qE0QBUUgUI30JNDyydvEwCggJd0 EGe6v06miK5bGzWVzl2/P0U= =qQKO -----END PGP SIGNATURE----- --nextPart8497027.OGEcyzF88x-- From owner-freebsd-acpi@FreeBSD.ORG Sun Jan 29 14:19:37 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4520C16A420; Sun, 29 Jan 2006 14:19:37 +0000 (GMT) (envelope-from joao@matik.com.br) Received: from msrv.matik.com.br (msrv.matik.com.br [200.152.83.14]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8E1A243D46; Sun, 29 Jan 2006 14:19:36 +0000 (GMT) (envelope-from joao@matik.com.br) Received: from anb (anb.matik.com.br [200.152.83.34]) by msrv.matik.com.br (8.13.4/8.13.1) with ESMTP id k0TEJYlH060441; Sun, 29 Jan 2006 12:19:35 -0200 (BRST) (envelope-from joao@matik.com.br) From: JoaoBR To: freebsd-stable@freebsd.org Date: Sun, 29 Jan 2006 12:19:28 -0200 User-Agent: KMail/1.9.1 References: <200601201851.26858.joao@matik.com.br> <200601231352.12421.joao@matik.com.br> <20060123180803.GC25245@poupinou.org> In-Reply-To: <20060123180803.GC25245@poupinou.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <200601291219.29765.joao@matik.com.br> X-Filter-Version: 1.11a (msrv.matik.com.br) X-Virus-Scanned: ClamAV version 0.86.2, clamav-milter version 0.86 on msrv.matik.com.br X-Virus-Status: Clean Cc: freebsd-acpi@freebsd.org Subject: Re: need help for DSDT for an Epox Amd64 MB X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jan 2006 14:19:37 -0000 On Monday 23 January 2006 16:08, Bruno Ducrot wrote: > > > > > > Can't tell for sure if you don't test without ACPI loaded. > > > It may be possible after all the apci_thermal subsystem trigger as > > > (false) overheat situation which may explain a sudden shutdown. > > hi=20 I think this is good for a follow up actually this Epox MB is very good and there is no problem in the asl at al= l,=20 appearently cpu-freq and acpi_thermal with passive cooling is also working= =20 outstanding good. the real problem was the memory. Even that I used dual-channel (Geil) chips= =20 they caused the problem. I had them changed at the beginning because the=20 memory was my first idea. As last resource I sticked them in different slot= s=20 as single-channel mem and it didn't crash anymore. I bought then some bette= r=20 and more expensive corsair dual channel and now the board is running fine a= nd=20 fast and stable for a week now. The "not-accepted-memory" runs fine as dual-channel on an Asus MB so I gues= s=20 Epox is more sensitive(more correct?) or Asus do not care about this so muc= h. Jo=E3o A mensagem foi scaneada pelo sistema de e-mail e pode ser considerada segura. Service fornecido pelo Datacenter Matik https://datacenter.matik.com.br From owner-freebsd-acpi@FreeBSD.ORG Mon Jan 30 11:02:06 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7150E16A420 for ; Mon, 30 Jan 2006 11:02:06 +0000 (GMT) (envelope-from owner-bugmaster@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 380F743D45 for ; Mon, 30 Jan 2006 11:02:06 +0000 (GMT) (envelope-from owner-bugmaster@freebsd.org) Received: from freefall.freebsd.org (peter@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k0UB26I5019119 for ; Mon, 30 Jan 2006 11:02:06 GMT (envelope-from owner-bugmaster@freebsd.org) Received: (from peter@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k0UB25Yq019113 for freebsd-acpi@freebsd.org; Mon, 30 Jan 2006 11:02:05 GMT (envelope-from owner-bugmaster@freebsd.org) Date: Mon, 30 Jan 2006 11:02:05 GMT Message-Id: <200601301102.k0UB25Yq019113@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: peter set sender to owner-bugmaster@freebsd.org using -f From: FreeBSD bugmaster To: freebsd-acpi@FreeBSD.org Cc: Subject: Current problem reports assigned to you X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jan 2006 11:02:06 -0000 Current FreeBSD problem reports Critical problems Serious problems S Submitted Tracker Resp. Description ------------------------------------------------------------------------------- o [2003/07/22] i386/54756 acpi ACPI suspend/resume problem on CF-W2 lapt o [2003/08/17] i386/55661 acpi ACPI suspend/resume problem on ARMADA M70 o [2003/08/20] kern/55822 acpi No ACPI power off with SMP kernel o [2003/08/27] kern/56024 acpi ACPI suspend drains battery while in S3 o [2003/09/03] i386/56372 acpi acpi don't work on TYAN tiger100 M/B o [2004/03/09] i386/64002 acpi acpi problem o [2004/05/27] i386/67273 acpi [hang] system hangs with acpi and Xfree o [2004/10/12] i386/72566 acpi ACPI, FreeBSD disables fan on Compaq Arma o [2005/03/21] i386/79080 acpi acpi thermal changes freezes HP nx6110 o [2005/03/21] i386/79081 acpi ACPI suspend/resume not working on HP nx6 o [2005/04/28] i386/80426 acpi [APIC] [panic] 5.4-RC3 still panic when b o [2005/10/17] i386/87568 acpi [ACPI] [REGRESSION] 6.0-STABLE needs ACPI o [2005/11/11] kern/88859 acpi ACPI broken on Compaq DL360 13 problems total. Non-critical problems S Submitted Tracker Resp. Description ------------------------------------------------------------------------------- o [2004/03/17] kern/64365 acpi ACPI problems o [2004/05/28] kern/67309 acpi zzz reboot computer (ACPI S3) o [2004/07/29] i386/69750 acpi Boot without ACPI failed on ASUS L5 o [2004/11/11] i386/73822 acpi [request] add thermal support to ACPI o [2004/11/11] kern/73823 acpi [feature request] acpi / power-on by time f [2004/11/17] kern/74030 acpi Unplugging AC causes battery % to stay lo o [2005/05/09] kern/80815 acpi ACPI(pci_link) problem in 5.4-STABLE: TIM o [2005/12/03] kern/89879 acpi [acpi] ACPI-0438: *** Error: Looking up [ 8 problems total. From owner-freebsd-acpi@FreeBSD.ORG Tue Jan 31 19:34:26 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D0A3C16A420 for ; Tue, 31 Jan 2006 19:34:26 +0000 (GMT) (envelope-from manfred.lotz@arcor.de) Received: from mail-in-04.arcor-online.net (mail-in-04.arcor-online.net [151.189.21.44]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8307343D45 for ; Tue, 31 Jan 2006 19:34:25 +0000 (GMT) (envelope-from manfred.lotz@arcor.de) Received: from mail-in-06-z2.arcor-online.net (mail-in-06-z2.arcor-online.net [151.189.8.18]) by mail-in-04.arcor-online.net (Postfix) with ESMTP id 321B0DEFF5; Tue, 31 Jan 2006 20:34:24 +0100 (CET) Received: from mail-in-03.arcor-online.net (mail-in-06.arcor-online.net [151.189.21.46]) by mail-in-06-z2.arcor-online.net (Postfix) with ESMTP id 21E511944E6; Tue, 31 Jan 2006 20:34:24 +0100 (CET) Received: from wizard.sanskrit.local.net (dslb-084-058-033-020.pools.arcor-ip.net [84.58.33.20]) by mail-in-03.arcor-online.net (Postfix) with ESMTP id DF85C114FC5; Tue, 31 Jan 2006 20:34:23 +0100 (CET) Received: from wizard.sanskrit.local.net (localhost.sanskrit.local.net [127.0.0.1]) by wizard.sanskrit.local.net (8.13.5/8.13.5) with SMTP id k0VJYZHs034852; Tue, 31 Jan 2006 20:34:35 +0100 (CET) (envelope-from manfred.lotz@arcor.de) Date: Tue, 31 Jan 2006 20:34:30 +0100 From: Manfred Lotz To: "Kevin Oberman" Message-Id: <20060131203430.6c9ebe0c.manfred.lotz@arcor.de> In-Reply-To: <20060126161526.EDF304503E@ptavv.es.net> References: <20060126143040.a6b1f796.manfred.lotz@arcor.de> <20060126161526.EDF304503E@ptavv.es.net> X-Mailer: Sylpheed version 2.2.0beta2 (GTK+ 2.8.9; i386-portbld-freebsd6.0) Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: freebsd-acpi@freebsd.org Subject: Re: suspend/resume event X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Jan 2006 19:34:26 -0000 On Thu, 26 Jan 2006 08:15:26 -0800 "Kevin Oberman" wrote: > > Date: Thu, 26 Jan 2006 14:30:40 +0100 > > From: Manfred Lotz > > Sender: owner-freebsd-acpi@freebsd.org > >=20 > > On Sat, 21 Jan 2006 20:50:23 -0800 > > Nate Lawson wrote: > >=20 > > > Manfred Lotz wrote: > > > > Hi there, > > > > With my Samsung X20 1730 suspend /resume works fine when doing > > > > acpiconf -s 3. I added /etc/rc.d/moused restart > > > > in /etc/rc.resume and the touchpad mouse gets awake after > > > > resuming. That's great. > > > >=20 > > > > However when closing the lid (I set > > > > hw.acpi.lid_switch_state=3DS3) and then pressing the power button > > > > although suspend/resume works fine the mouse won't get > > > > restarted. This means /etc/rc.resume and > > > > presumably /etc/rc.suspend won't get called in this case. > > > >=20 > > > > Same happen when pressing Fn-ESC the key for suspend. > > > >=20 > > > > How can I make sure /etc/rc.suspend as well as /etc/rc.resuem > > > > gets called in the "non-acpiconf" cases? > > >=20 > > > Ok, I committed code to -current to provide a resume event and > > > will mfc in a week or two. You can catch it in devd.conf with: > > >=20 > > > notify 10 { > > > match "system" "kern"; > > > match "subsystem" "power"; > > > match "type" "resume"; > > > action "SOME SCRIPT"; > > > }; > > >=20 > >=20 > > Well, I had problems testing it. I actually have a 6.0 STABLE on my > > Samsung and installed a small 7.0 current system. However, it didn > > =B4't even boot with ACPI. It stumbles over acd0 where it is simply > > hanging with timeout stuff or so. > >=20 > > Could I possible copy some src files to my 6.0 system and rebuild a > > kernel in order to test it? >=20 > This is a known problem with current. The work-around is to disable > DMA for the cd. Add hw.ata.ata_dma=3D0 to /boot/loader.conf. >=20 Thanks for the hint. Actually it was hw.ata.atapi_dma=3D0 which made it. --=20 Manfred From owner-freebsd-acpi@FreeBSD.ORG Tue Jan 31 20:42:07 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6FA4416A420 for ; Tue, 31 Jan 2006 20:42:07 +0000 (GMT) (envelope-from manfred.lotz@arcor.de) Received: from mail-in-08.arcor-online.net (mail-in-08.arcor-online.net [151.189.21.48]) by mx1.FreeBSD.org (Postfix) with ESMTP id E303C43D48 for ; Tue, 31 Jan 2006 20:42:05 +0000 (GMT) (envelope-from manfred.lotz@arcor.de) Received: from mail-in-03-z2.arcor-online.net (mail-in-03-z2.arcor-online.net [151.189.8.15]) by mail-in-08.arcor-online.net (Postfix) with ESMTP id A4E55109740; Tue, 31 Jan 2006 21:42:04 +0100 (CET) Received: from mail-in-03.arcor-online.net (mail-in-03.arcor-online.net [151.189.21.43]) by mail-in-03-z2.arcor-online.net (Postfix) with ESMTP id 8B10A246532; Tue, 31 Jan 2006 21:42:04 +0100 (CET) Received: from wizard.sanskrit.local.net (dslb-084-058-033-020.pools.arcor-ip.net [84.58.33.20]) by mail-in-03.arcor-online.net (Postfix) with ESMTP id 2E78013F734; Tue, 31 Jan 2006 21:42:04 +0100 (CET) Received: from wizard.sanskrit.local.net (localhost.sanskrit.local.net [127.0.0.1]) by wizard.sanskrit.local.net (8.13.5/8.13.5) with SMTP id k0VKgGha035132; Tue, 31 Jan 2006 21:42:16 +0100 (CET) (envelope-from manfred.lotz@arcor.de) Date: Tue, 31 Jan 2006 21:42:10 +0100 From: Manfred Lotz To: Nate Lawson Message-Id: <20060131214210.81c53b6e.manfred.lotz@arcor.de> In-Reply-To: <43D9201B.3010403@root.org> References: <20060120200410.a05870c1.manfred.lotz@arcor.de> <43D30F0F.3090703@root.org> <20060126143040.a6b1f796.manfred.lotz@arcor.de> <43D9201B.3010403@root.org> X-Mailer: Sylpheed version 2.2.0beta2 (GTK+ 2.8.9; i386-portbld-freebsd6.0) Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: freebsd-acpi@freebsd.org Subject: Re: suspend/resume event X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Jan 2006 20:42:07 -0000 On Thu, 26 Jan 2006 11:16:43 -0800 Nate Lawson wrote: > Manfred Lotz wrote: > > On Sat, 21 Jan 2006 20:50:23 -0800 > > Nate Lawson wrote: > >=20 > >=20 > >>Manfred Lotz wrote: > >> > >>>Hi there, > >>>With my Samsung X20 1730 suspend /resume works fine when doing > >>>acpiconf -s 3. I added /etc/rc.d/moused restart in /etc/rc.resume > >>>and the touchpad mouse gets awake after resuming. That's great. > >>> > >>>However when closing the lid (I set hw.acpi.lid_switch_state=3DS3) > >>>and then pressing the power button although suspend/resume works > >>>fine the mouse won't get restarted. This means /etc/rc.resume and > >>>presumably /etc/rc.suspend won't get called in this case. > >>> > >>>Same happen when pressing Fn-ESC the key for suspend. > >>> > >>>How can I make sure /etc/rc.suspend as well as /etc/rc.resuem gets > >>>called in the "non-acpiconf" cases? > >> > >>Ok, I committed code to -current to provide a resume event and will > >>mfc in a week or two. You can catch it in devd.conf with: > >> > >>notify 10 { > >> match "system" "kern"; > >> match "subsystem" "power"; > >> match "type" "resume"; > >> action "SOME SCRIPT"; > >>}; > >> > >=20 > >=20 > > Well, I had problems testing it. I actually have a 6.0 STABLE on my > > Samsung and installed a small 7.0 current system. However, it didn > > =B4't even boot with ACPI. It stumbles over acd0 where it is simply > > hanging with timeout stuff or so. > >=20 > > Could I possible copy some src files to my 6.0 system and rebuild a > > kernel in order to test it? >=20 > You can just download the patch and apply it to 6.0. It's only one > file: >=20 > http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/kern/subr_bus.c.diff?r1=3Dt= ext&tr1=3D1.189&r2=3Dtext&tr2=3D1.190 >=20 Hmmh. I got compile errors then. However with hw.ata.atapi_dma set to 0 I could boot the 7.0 system and test it. First of all: Your code did work, i.e. the kern/power/resume event gets triggered and I could call a script. However, what confuses me is that the power button triggers the /etc/rc.resume in some cases (2. and 3. below) without using your code.=20 Here's what I tested: 1. hw.acpi.sleep_button_state=3DS3 and no Button event in /etc/devd.conf When suspending (Fn-ESC) and resuming (Power button) neither /etc/rc.suspend nor /etc/rc.resume gets called. Jan 31 21:20:57 hermes kernel: fwohci0: fwohci_pci_suspend Jan 31 21:21:04 hermes kernel: fwohci0: Phy 1394a available S400, 2 ports. Jan 31 21:21:04 hermes kernel: fwohci0: Link S400, max_rec 2048 bytes. Jan 31 21:21:04 hermes kernel: fwohci0: Initiate bus reset Jan 31 21:21:04 hermes kernel: wakeup from sleeping state (slept 00:00:09) Jan 31 21:21:04 hermes kernel: fwohci0: BUS reset Jan 31 21:21:04 hermes kernel: fwohci0: node_id=3D0xc800ffc0, gen=3D1, CYCLEMASTER m ode Jan 31 21:21:04 hermes kernel: firewire0: 1 nodes, maxhop <=3D 0, cable IRM =3D 0 (m e) Jan 31 21:21:04 hermes kernel: firewire0: bus manager 0 (me) Jan 31 21:21:04 hermes kernel: fwohci0: unrecoverable error 2. hw.acpi.sleep_button_state=3DS3 and Button event in /etc/devd.conf is activated Here both /etc/rc.suspend and /etc/rc.resume gets called. /et/rc.suspend gets called via devd.conf action. Jan 31 21:23:13 hermes kernel: fwohci0: fwohci_pci_suspend Jan 31 21:23:21 hermes kernel: fwohci0: Phy 1394a available S400, 2 ports. Jan 31 21:23:21 hermes kernel: fwohci0: Link S400, max_rec 2048 bytes. Jan 31 21:23:21 hermes kernel: fwohci0: Initiate bus reset Jan 31 21:23:21 hermes kernel: wakeup from sleeping state (slept 00:00:09) Jan 31 21:23:21 hermes kernel: fwohci0: BUS reset Jan 31 21:23:21 hermes kernel: fwohci0: node_id=3D0xc800ffc0, gen=3D1, CYCLEMASTER m ode Jan 31 21:23:21 hermes kernel: firewire0: 1 nodes, maxhop <=3D 0, cable IRM =3D 0 (m e) Jan 31 21:23:21 hermes kernel: firewire0: bus manager 0 (me) Jan 31 21:23:21 hermes kernel: fwohci0: unrecoverable error Jan 31 21:23:13 hermes devd_event:: Button: 0x01 Jan 31 21:23:21 hermes dhclient[1333]: short write: wanted 20 got 0 bytes Jan 31 21:23:21 hermes dhclient[1333]: exiting. Jan 31 21:23:21 hermes acpi: suspend at 20060131 21:23:21 Jan 31 21:23:21 hermes kernel: acpi: suspend request ignored (not ready yet) Jan 31 21:23:21 hermes acpi: resumed at 20060131 21:23:21 Jan 31 21:23:27 hermes dhclient: New IP Address (iwi0): 192.168.1.142 Jan 31 21:23:27 hermes dhclient: New Subnet Mask (iwi0): 255.255.255.0 Jan 31 21:23:27 hermes dhclient: New Broadcast Address (iwi0): 192.168.1.255 Jan 31 21:23:27 hermes dhclient: New Routers (iwi0): 192.168.1.1 3. hw.acpi.sleep_button_state=3DNONE and Button event in /etc/devd.conf is activated Also both /etc/rc.suspend and /etc/rc.resume gets called. /et/rc.suspend gets called via devd.conf action. Jan 31 21:27:42 hermes devd_event:: Button: 0x01 Jan 31 21:27:44 hermes dhclient[1470]: connection closed Jan 31 21:27:44 hermes dhclient[1470]: exiting. Jan 31 21:27:44 hermes acpi: suspend at 20060131 21:27:44 Jan 31 21:28:18 hermes kernel: fwohci0: fwohci_pci_suspend Jan 31 21:28:18 hermes kernel: fwohci0: Phy 1394a available S400, 2 ports. Jan 31 21:28:18 hermes kernel: fwohci0: Link S400, max_rec 2048 bytes. Jan 31 21:28:18 hermes kernel: fwohci0: Initiate bus reset Jan 31 21:28:18 hermes kernel: wakeup from sleeping state (slept 00:00:32) Jan 31 21:28:18 hermes kernel: fwohci0: BUS reset Jan 31 21:28:18 hermes kernel: fwohci0: node_id=3D0xc800ffc0, gen=3D1, CYCLEMASTER m ode Jan 31 21:28:18 hermes kernel: firewire0: 1 nodes, maxhop <=3D 0, cable IRM =3D 0 (m e) Jan 31 21:28:18 hermes kernel: firewire0: bus manager 0 (me) Jan 31 21:28:18 hermes kernel: fwohci0: unrecoverable error Jan 31 21:28:18 hermes acpi: resumed at 20060131 21:28:18 Jan 31 21:28:28 hermes dhclient: New IP Address (iwi0): 192.168.1.142 Jan 31 21:28:28 hermes dhclient: New Subnet Mask (iwi0): 255.255.255.0 Jan 31 21:28:28 hermes dhclient: New Broadcast Address (iwi0): 192.168.1.255 Jan 31 21:28:28 hermes dhclient: New Routers (iwi0): 192.168.1.1 3. seems to be the best option., --=20 Manfred From owner-freebsd-acpi@FreeBSD.ORG Tue Jan 31 21:01:44 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1986516A420 for ; Tue, 31 Jan 2006 21:01:44 +0000 (GMT) (envelope-from nate@root.org) Received: from www.cryptography.com (li-22.members.linode.com [64.5.53.22]) by mx1.FreeBSD.org (Postfix) with ESMTP id 41D9D43D48 for ; Tue, 31 Jan 2006 21:01:43 +0000 (GMT) (envelope-from nate@root.org) Received: from [10.0.0.53] (adsl-67-119-74-222.dsl.sntc01.pacbell.net [67.119.74.222]) by www.cryptography.com (8.12.8/8.12.8) with ESMTP id k0VL1YEr018913 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Tue, 31 Jan 2006 13:01:35 -0800 Message-ID: <43DFD03D.4020002@root.org> Date: Tue, 31 Jan 2006 13:01:49 -0800 From: Nate Lawson User-Agent: Mozilla Thunderbird 1.0.6 (Windows/20050716) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Manfred Lotz References: <20060120200410.a05870c1.manfred.lotz@arcor.de> <43D30F0F.3090703@root.org> <20060126143040.a6b1f796.manfred.lotz@arcor.de> <43D9201B.3010403@root.org> <20060131214210.81c53b6e.manfred.lotz@arcor.de> In-Reply-To: <20060131214210.81c53b6e.manfred.lotz@arcor.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-acpi@freebsd.org Subject: Re: suspend/resume event X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Jan 2006 21:01:44 -0000 Manfred Lotz wrote: > Hmmh. I got compile errors then. However with hw.ata.atapi_dma set to 0 > I could boot the 7.0 system and test it. > > First of all: Your code did work, i.e. the kern/power/resume event gets > triggered and I could call a script. > > However, what confuses me is that the power button triggers > the /etc/rc.resume in some cases (2. and 3. below) without using your > code. > > 1. hw.acpi.sleep_button_state=S3 and no Button event in /etc/devd.conf > > When suspending (Fn-ESC) and resuming (Power button) > neither /etc/rc.suspend nor /etc/rc.resume gets called. The kern/power/resume devd event should be delivered, no matter what the mechanism used to suspend/resume. It should even work for apm, if you were using that. So I really wonder what your test configuration was here. What's the new contents of your devd.conf (different from 7.x default)? You have to add a kern/power/resume event in devd.conf to run /etc/rc.resume although I plan to commit that also eventually. > 2. hw.acpi.sleep_button_state=S3 and Button event in /etc/devd.conf is > activated > > Here both /etc/rc.suspend and /etc/rc.resume gets > called. /et/rc.suspend gets called via devd.conf action. You can't count on running rc.suspend from devd. The system could suspend BEFORE the process even runs, then you'd resume and rc.suspend would run and immediately after, rc.resume would run. > 3. hw.acpi.sleep_button_state=NONE and Button event in /etc/devd.conf > is activated > > 3. seems to be the best option., I see no need for you to run rc.suspend. To restart moused, you just need rc.resume. -- Nate From owner-freebsd-acpi@FreeBSD.ORG Tue Jan 31 21:02:44 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3111016A422 for ; Tue, 31 Jan 2006 21:02:44 +0000 (GMT) (envelope-from nate@root.org) Received: from www.cryptography.com (li-22.members.linode.com [64.5.53.22]) by mx1.FreeBSD.org (Postfix) with ESMTP id 967C043D72 for ; Tue, 31 Jan 2006 21:02:41 +0000 (GMT) (envelope-from nate@root.org) Received: from [10.0.0.53] (adsl-67-119-74-222.dsl.sntc01.pacbell.net [67.119.74.222]) by www.cryptography.com (8.12.8/8.12.8) with ESMTP id k0VL2eEr018939 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Tue, 31 Jan 2006 13:02:41 -0800 Message-ID: <43DFD07F.9020901@root.org> Date: Tue, 31 Jan 2006 13:02:55 -0800 From: Nate Lawson User-Agent: Mozilla Thunderbird 1.0.6 (Windows/20050716) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Anish Mistry References: <200601290324.24151.mistry.7@osu.edu> In-Reply-To: <200601290324.24151.mistry.7@osu.edu> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-acpi@freebsd.org Subject: Re: ACPI method calling questions X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Jan 2006 21:02:44 -0000 Anish Mistry wrote: > If I has a ACPI device method like: > Method (FUNC, 4, Serialized) > { > Store (0x80000000, Local0) > If (LEqual (Arg0, 0x1001)) > { > Store (S001 (Arg1, Arg2, Arg3), Local0) > } > Else > { > If (LEqual (Arg0, 0x1002)) > { > Store (S002 (Arg1, Arg2, Arg3), Local0) > } > Else > { > If (LEqual (Arg0, 0x1004)) > { > Store (S004 (Arg1, Arg2, Arg3), Local0) > } > } > } > > Return (Local0) > } > How would I go about calling it from my driver? Like for a single > argument set method I'd just do acpi_SetInteger. > > Thanks, > See the implementation of acpi_SetInteger(). You have to create an package of integer objects and then call AcpiEvaluateObject(). -- Nate From owner-freebsd-acpi@FreeBSD.ORG Wed Feb 1 04:22:53 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id ED74D16A420 for ; Wed, 1 Feb 2006 04:22:53 +0000 (GMT) (envelope-from manfred.lotz@arcor.de) Received: from mail-in-02.arcor-online.net (mail-in-02.arcor-online.net [151.189.21.42]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3E45B43D45 for ; Wed, 1 Feb 2006 04:22:53 +0000 (GMT) (envelope-from manfred.lotz@arcor.de) Received: from mail-in-08-z2.arcor-online.net (mail-in-08-z2.arcor-online.net [151.189.8.20]) by mail-in-02.arcor-online.net (Postfix) with ESMTP id 16D8C16C155; Wed, 1 Feb 2006 05:22:52 +0100 (CET) Received: from mail-in-02.arcor-online.net (mail-in-02.arcor-online.net [151.189.21.42]) by mail-in-08-z2.arcor-online.net (Postfix) with ESMTP id 088AC45F5D; Wed, 1 Feb 2006 05:22:52 +0100 (CET) Received: from wizard.sanskrit.local.net (dslb-084-058-033-020.pools.arcor-ip.net [84.58.33.20]) by mail-in-02.arcor-online.net (Postfix) with ESMTP id E008316C155; Wed, 1 Feb 2006 05:22:51 +0100 (CET) Received: from wizard.sanskrit.local.net (localhost.sanskrit.local.net [127.0.0.1]) by wizard.sanskrit.local.net (8.13.5/8.13.5) with SMTP id k114N3ep038326; Wed, 1 Feb 2006 05:23:04 +0100 (CET) (envelope-from manfred.lotz@arcor.de) Date: Wed, 1 Feb 2006 05:22:58 +0100 From: Manfred Lotz To: Nate Lawson Message-Id: <20060201052258.d1026a6f.manfred.lotz@arcor.de> In-Reply-To: <43DFD03D.4020002@root.org> References: <20060120200410.a05870c1.manfred.lotz@arcor.de> <43D30F0F.3090703@root.org> <20060126143040.a6b1f796.manfred.lotz@arcor.de> <43D9201B.3010403@root.org> <20060131214210.81c53b6e.manfred.lotz@arcor.de> <43DFD03D.4020002@root.org> X-Mailer: Sylpheed version 2.2.0beta2 (GTK+ 2.8.9; i386-portbld-freebsd6.0) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: freebsd-acpi@freebsd.org Subject: Re: suspend/resume event X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Feb 2006 04:22:54 -0000 On Tue, 31 Jan 2006 13:01:49 -0800 Nate Lawson wrote: > Manfred Lotz wrote: > > Hmmh. I got compile errors then. However with hw.ata.atapi_dma set > > to 0 I could boot the 7.0 system and test it. > > > > First of all: Your code did work, i.e. the kern/power/resume event > > gets triggered and I could call a script. > > > > However, what confuses me is that the power button triggers > > the /etc/rc.resume in some cases (2. and 3. below) without using > > your code. > > > > 1. hw.acpi.sleep_button_state=S3 and no Button event > > in /etc/devd.conf > > > > When suspending (Fn-ESC) and resuming (Power button) > > neither /etc/rc.suspend nor /etc/rc.resume gets called. > > The kern/power/resume devd event should be delivered, no matter what > the mechanism used to suspend/resume. It should even work for apm, > if you were using that. > Sorry, I wasn't clear here. When I said "no Button event in devd.conf" I meant the event isn't captured in devd.conf. The event itself took place of course as could be seen by starting devd in debug mode. ... > > 3. hw.acpi.sleep_button_state=NONE and Button event > > in /etc/devd.conf is activated > > > > 3. seems to be the best option., > > I see no need for you to run rc.suspend. To restart moused, you just > need rc.resume. > I'm using rc.suspend to shutdown the wireless NIC iwi0. -- Manfred From owner-freebsd-acpi@FreeBSD.ORG Thu Feb 2 09:42:44 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A195416A420 for ; Thu, 2 Feb 2006 09:42:44 +0000 (GMT) (envelope-from peterjeremy@optushome.com.au) Received: from mail24.syd.optusnet.com.au (mail24.syd.optusnet.com.au [211.29.133.165]) by mx1.FreeBSD.org (Postfix) with ESMTP id B30E143D69 for ; Thu, 2 Feb 2006 09:42:40 +0000 (GMT) (envelope-from peterjeremy@optushome.com.au) Received: from turion.vk2pj.dyndns.org (c220-239-19-236.belrs4.nsw.optusnet.com.au [220.239.19.236]) by mail24.syd.optusnet.com.au (8.12.11/8.12.11) with ESMTP id k129gMZq001436 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO); Thu, 2 Feb 2006 20:42:22 +1100 Received: from turion.vk2pj.dyndns.org (localhost.vk2pj.dyndns.org [127.0.0.1]) by turion.vk2pj.dyndns.org (8.13.4/8.13.4) with ESMTP id k129gMba003850; Thu, 2 Feb 2006 20:42:22 +1100 (EST) (envelope-from peter@turion.vk2pj.dyndns.org) Received: (from peter@localhost) by turion.vk2pj.dyndns.org (8.13.4/8.13.4/Submit) id k129gM3P003849; Thu, 2 Feb 2006 20:42:22 +1100 (EST) (envelope-from peter) Date: Thu, 2 Feb 2006 20:42:22 +1100 From: Peter Jeremy To: Sam Leffler Message-ID: <20060202094222.GG921@turion.vk2pj.dyndns.org> References: <43B21BD2.60406@errno.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <43B21BD2.60406@errno.com> X-PGP-Key: http://members.optusnet.com.au/peterjeremy/pubkey.asc User-Agent: Mutt/1.5.11 Cc: freebsd-acpi@freebsd.org Subject: Re: hp nx6125 again X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Feb 2006 09:42:44 -0000 [Reviving some oldish mail] On Tue, 2005-Dec-27 21:00:02 -0800, Sam Leffler wrote: >I posted a while back about getting a thermal trip whenever I take the >machine off ac. Zone 3 jumps from ~30C to 150C in 5-10 seconds. I don't see this with 6-STABLE from late January. I can't recall if I tried this test on -current. >The last issue is that like some other folks the system will lockup if I >let powerd bring the clock down when idle. Lockups are easily >reproducable but don't appear to be related to any particular state I've noticed this as well but I think I've only seen them when powerd is running. My suspicion is that there's a problem (probably a race condition of some sort) with the speed transition rather than any particular speed. I haven't thought through how to debug this. Has anyone managed to get S3 or S4 working? I can get it to loop reporting "fwohci0: device physically ejected?" or panic in the bge code but so far it won't suspend. -- Peter Jeremy From owner-freebsd-acpi@FreeBSD.ORG Fri Feb 3 21:25:20 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EECE216A420 for ; Fri, 3 Feb 2006 21:25:20 +0000 (GMT) (envelope-from anderson@centtech.com) Received: from mh1.centtech.com (moat3.centtech.com [207.200.51.50]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4FBFF43D45 for ; Fri, 3 Feb 2006 21:25:17 +0000 (GMT) (envelope-from anderson@centtech.com) Received: from [10.177.171.220] (neutrino.centtech.com [10.177.171.220]) by mh1.centtech.com (8.13.1/8.13.1) with ESMTP id k13LPGbk049631 for ; Fri, 3 Feb 2006 15:25:16 -0600 (CST) (envelope-from anderson@centtech.com) Message-ID: <43E3CA35.3050506@centtech.com> Date: Fri, 03 Feb 2006 15:25:09 -0600 From: Eric Anderson User-Agent: Thunderbird 1.5 (X11/20060112) MIME-Version: 1.0 To: freebsd-acpi@freebsd.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.87.1/1275/Fri Feb 3 12:00:42 2006 on mh1.centtech.com X-Virus-Status: Clean Subject: Resend: Dell Latitude D810 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Feb 2006 21:25:21 -0000 Quick resend since I received no responses earlier. I've updated to the latest 6-STABLE and still have the same issues. ------- Running FreeBSD-6-STABLE, I'm able to suspend successfully, but resuming makes the machine boot up as if it was powered off. Any hints on what to start looking at? I've including the console output of the various renditions I've tried, in case it helps. Also, more details can be found here: http://www.googlebit.com/freebsd/ Thanks! with apic disabled (but compiled into the kernel), suspend immediately reboots just after suspending: acpi_lid0: wake_prep enabled fostray irq7 r \_SB_.LID_ (S3) acpi_button0: wake_prep enabled for \_SB_.PBTN (S3) uhci0: wake_prep disabled wake for \_SB_.PCI0.USB0 (S3) uhci1: wake_prep disabled wake for \_SB_.PCI0.USB1 (S3) uhci2: wake_prep disabled wake for \_SB_.PCI0.USB2 (S3) uhci3: wake_prep disabled wake for \_SB_.PCI0.USB4 (S3) ehci0: wake_prep disabled wake for \_SB_.PCI0.USB3 (S3) pci1:0:0: Transition from D0 to D3 pci2:0:0: Transition from D0 to D3 vga0: saving 68 bytes of video state pci0:30:2: Transition from D0 to D3 pci0:31:2: Transition from D0 to D3 ======== acpi_printcpu() debug dump ======== gdt[0097:c07b83c0] idt[07ff:c07b87e0] ldt[0050] tr[0048] efl[00000092] eax[00000001] ebx[c4b6d080] ecx[00000004] edx[c4b7c480] esi[00000003] edi[00000000] ebp[e508ac28] esp[e508ac0c] cr0[8005003b] cr2[0804a32c] cr3[3ea4a000] cr4[00000691] cs[0020] ds[0028] es[0028] fs[0008] gs[001b] ss[0028] Reboots here automatically.. ----------------------------------------------------------- with apic not-disabled, and compiled into the kernel, successfully sleeps, but resuming just boots the machine. acpi_lid0: wake_prep enabled for \_SB_.LID_ (S3) acpi_button0: wake_prep enabled for \_SB_.PBTN (S3) uhci0: wake_prep disabled wake for \_SB_.PCI0.USB0 (S3) uhci1: wake_prep disabled wake for \_SB_.PCI0.USB1 (S3) uhci2: wake_prep disabled wake for \_SB_.PCI0.USB2 (S3) uhci3: wake_prep disabled wake for \_SB_.PCI0.USB4 (S3) ehci0: wake_prep disabled wake for \_SB_.PCI0.USB3 (S3) pci1:0:0: Transition from D0 to D3 pci2:0:0: Transition from D0 to D3 vga0: saving 68 bytes of video state pci0:30:2: Transition from D0 to D3 pci0:31:2: Transition from D0 to D3 ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ======== acpi_printcpu() debug dump ======== gdt[0097:c07b83c0] idt[07ff:c07b87e0] ldt[0050] tr[0048] efl[00000092] eax[00000001] ebx[c4af7b80] ecx[00000004] edx[c4dcd600] esi[00000003] edi[00000000] ebp[e51f8c28] esp[e51f8c0c] cr0[8005003b] cr2[0804a32c] cr3[3ea6b000] cr4[00000691] cs[0020] ds[0028] es[0028] fs[0008] gs[001b] ss[0028] ----------------------------------------------------------- With only the kernel loaded, no modules (except for acpi.ko), same as with modules loaded. ----------------------------------------------------------- with: # sysctl hw.acpi.reset_video=0 hw.acpi.reset_video: 1 -> 0 same thing as above (suspends, trying to resume reboots machine) acpi_lid0: wake_prep enabled for \_SB_.LID_ (S3) acpi_button0: wake_prep enabled for \_SB_.PBTN (S3) uhci0: wake_prep disabled wake for \_SB_.PCI0.USB0 (S3) uhci1: wake_prep disabled wake for \_SB_.PCI0.USB1 (S3) uhci2: wake_prep disabled wake for \_SB_.PCI0.USB2 (S3) uhci3: wake_prep disabled wake for \_SB_.PCI0.USB4 (S3) ehci0: wake_prep disabled wake for \_SB_.PCI0.USB3 (S3) pci1:0:0: Transition from D0 to D3 pci2:0:0: Transition from D0 to D3 vga0: saving 68 bytes of video state pci0:30:2: Transition from D0 to D3 pci0:31:2: Transition from D0 to D3 ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ======== acpi_printcpu() debug dump ======== gdt[0097:c07b83c0] idt[07ff:c07b87e0] ldt[0050] tr[0048] efl[00000092] eax[00000001] ebx[c4af7b80] ecx[00000004] edx[c4dcda80] esi[00000003] edi[00000000] ebp[e5201c28] esp[e5201c0c] cr0[8005003b] cr2[0804a32c] cr3[3ea88000] cr4[00000691] cs[0020] ds[0028] es[0028] fs[0008] gs[001b] ss[0028] ----------------------------------------------------------- with: # sysctl hw.syscons.sc_no_suspend_vtswitch=1 hw.syscons.sc_no_suspend_vtswitch: 0 -> 1 and: hw.acpi.reset_video=1 suspends, but reboots on resume. acpi_lid0: wake_prep enabled for \_SB_.LID_ (S3) acpi_button0: wake_prep enabled for \_SB_.PBTN (S3) uhci0: wake_prep disabled wake for \_SB_.PCI0.USB0 (S3) uhci1: wake_prep disabled wake for \_SB_.PCI0.USB1 (S3) uhci2: wake_prep disabled wake for \_SB_.PCI0.USB2 (S3) uhci3: wake_prep disabled wake for \_SB_.PCI0.USB4 (S3) ehci0: wake_prep disabled wake for \_SB_.PCI0.USB3 (S3) pci1:0:0: Transition from D0 to D3 pci2:0:0: Transition from D0 to D3 vga0: saving 68 bytes of video state pci0:30:2: Transition from D0 to D3 pci0:31:2: Transition from D0 to D3 ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ======== acpi_printcpu() debug dump ======== gdt[0097:c07b83c0] idt[07ff:c07b87e0] ldt[0050] tr[0048] efl[00000092] eax[00000001] ebx[c4af7b80] ecx[00000004] edx[c4dcd900] esi[00000003] edi[00000000] ebp[e51fec28] esp[e51fec0c] cr0[8005003b] cr2[0804a32c] cr3[3ea89000] cr4[00000691] cs[0020] ds[0028] es[0028] fs[0008] gs[001b] ss[0028] ----------------------------------------------------------- with: # sysctl hw.syscons.sc_no_suspend_vtswitch=1 hw.syscons.sc_no_suspend_vtswitch: 0 -> 1 # sysctl hw.acpi.reset_video=0 hw.acpi.reset_video: 1 -> 0 suspends, but resume is instant reboot acpi_lid0: wake_prep enabled for \_SB_.LID_ (S3) acpi_button0: wake_prep enabled for \_SB_.PBTN (S3) uhci0: wake_prep disabled wake for \_SB_.PCI0.USB0 (S3) uhci1: wake_prep disabled wake for \_SB_.PCI0.USB1 (S3) uhci2: wake_prep disabled wake for \_SB_.PCI0.USB2 (S3) uhci3: wake_prep disabled wake for \_SB_.PCI0.USB4 (S3) ehci0: wake_prep disabled wake for \_SB_.PCI0.USB3 (S3) pci1:0:0: Transition from D0 to D3 pci2:0:0: Transition from D0 to D3 vga0: saving 68 bytes of video state pci0:30:2: Transition from D0 to D3 pci0:31:2: Transition from D0 to D3 ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ioapic_suspend: not implemented! ======== acpi_printcpu() debug dump ======== gdt[0097:c07b83c0] idt[07ff:c07b87e0] ldt[0050] tr[0048] efl[00000092] eax[00000001] ebx[c4af7b80] ecx[00000004] edx[c4dcd900] esi[00000003] edi[00000000] ebp[e51fec28] esp[e51fec0c] cr0[8005003b] cr2[0804a32c] cr3[3ea89000] cr4[00000691] cs[0020] ds[0028] es[0028] fs[0008] gs[001b] ss[0028] --------------------------------------------------- apic disabled, but the reboot=0 setting in /boot/loader.conf: suspends, but when attempting to resume, reboots. iacpi_lid0: wake_prep enabled for \_SB_.LID_ (S3) acpi_button0: wake_prep enabled for \_SB_.PBTN (S3) uhci0: wake_prep disabled wake for \_SB_.PCI0.USB0 (S3) uhci1: wake_prep disabled wake for \_SB_.PCI0.USB1 (S3) uhci2: wake_prep disabled wake for \_SB_.PCI0.USB2 (S3) uhci3: wake_prep disabled wake for \_SB_.PCI0.USB4 (S3) ehci0: wake_prep disabled wake for \_SB_.PCI0.USB3 (S3) pci1:0:0: Transition from D0 to D3 pci2:0:0: Transition from D0 to D3 vga0: saving 68 bytes of video state pci0:30:2: Transition from D0 to D3 pci0:31:2: Transition from D0 to D3 ======== acpi_printcpu() debug dump ======== gdt[0097:c07b83c0] idt[07ff:c07b87e0] ldt[0050] tr[0048] efl[00000092] eax[00000001] ebx[c4b6d080] ecx[00000004] edx[c4b7c300] esi[00000003] edi[00000000] ebp[e5087c28] esp[e5087c0c] cr0[8005003b] cr2[0804a32c] cr3[3ea6b000] cr4[00000691] cs[0020] ds[0028] es[0028] fs[0008] gs[001b] ss[0028] -- ------------------------------------------------------------------------ Eric Anderson Sr. Systems Administrator Centaur Technology Anything that works is better than anything that doesn't. ------------------------------------------------------------------------