2007-12-31 21:34:47

by Mikko Vinni

[permalink] [raw]
Subject: IDE/ACPI related hibernation regression: Second attempt fails

Hi,

I noticed my ancient laptop (HP nx9005) fails to hibernate (suspend to disk) more than once while running recent 2.6.24-rc kernels. First hibernation succeeds happily, but when I try to do it again after resuming, the machine hangs immediately after the familiar two pops from the speakers."Hanging" in this case means that none of the usual keys work (e.g. Caps Lock led doesn't toggle), but alt-sysrq-b does reboot the laptop.

I tried my skills at bisecting and found that reverting the following patch allows my laptop to hibernate two (and probably more) times in a row successfully, both in X and from console:

commit 5e32132befa5d2cefadf3141fee0bbb40cd11f0e
Author: Shaohua Li <[email protected]>
Date: Thu Oct 11 23:53:58 2007 +0200

ide: hook ACPI _PSx method to IDE power on/off

ACPI spec defines the sequence of IDE power on/off:
Powering down:
Call _GTM.
Power down drive (calls _PS3 method and turns off power planes).
Powering up:
Power up drive (calls _PS0 method if present and turns on power planes).
Call _STM passing info from _GTM (possibly modified), with ID data from
each drive.
Initialize the channel.
May modify the results of _GTF.
For each drive:
Call _GTF.
Execute task file (possibly modified).
This patch adds the missed _PS0/_PS3 methods call.

Signed-off-by: Shaohua Li <[email protected]>
Acked-by: Len Brown <[email protected]>
Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>


Here is the dmesg of the failing kernel after the first hibernation. I have no output from the second hibernation attempt with that kernel. After reverting the above-mentioned commit, these two lines won't appear in the output anymore:

ACPI: Cannot set device to a higher-powered state than parent
ACPI: Cannot set device to a higher-powered state than parent

Dmesg of the failing kernel after first hibernation (version is untouched e697789d64f8748cb219d7f5c413c512953802cc, i.e. current 2.6.24-rc6):

[ 0.000000] Linux version 2.6.24-rcx-qaz (mikko@ubuntu) (gcc version 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)) #1 Mon Dec 31 19:26:59 EET 2007
[ 0.000000] BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
[ 0.000000] BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
[ 0.000000] BIOS-e820: 00000000000d0000 - 0000000000100000 (reserved)
[ 0.000000] BIOS-e820: 0000000000100000 - 000000001def0000 (usable)
[ 0.000000] BIOS-e820: 000000001def0000 - 000000001deff000 (ACPI data)
[ 0.000000] BIOS-e820: 000000001deff000 - 000000001df00000 (ACPI NVS)
[ 0.000000] BIOS-e820: 000000001df00000 - 000000001e000000 (reserved)
[ 0.000000] BIOS-e820: 00000000fffc0000 - 0000000100000000 (reserved)
[ 0.000000] 0MB HIGHMEM available.
[ 0.000000] 478MB LOWMEM available.
[ 0.000000] Entering add_active_range(0, 0, 122608) 0 entries of 256 used
[ 0.000000] Zone PFN ranges:
[ 0.000000] DMA 0 -> 4096
[ 0.000000] Normal 4096 -> 122608
[ 0.000000] HighMem 122608 -> 122608
[ 0.000000] Movable zone start PFN for each node
[ 0.000000] early_node_map[1] active PFN ranges
[ 0.000000] 0: 0 -> 122608
[ 0.000000] On node 0 totalpages: 122608
[ 0.000000] DMA zone: 32 pages used for memmap
[ 0.000000] DMA zone: 0 pages reserved
[ 0.000000] DMA zone: 4064 pages, LIFO batch:0
[ 0.000000] Normal zone: 925 pages used for memmap
[ 0.000000] Normal zone: 117587 pages, LIFO batch:31
[ 0.000000] HighMem zone: 0 pages used for memmap
[ 0.000000] Movable zone: 0 pages used for memmap
[ 0.000000] DMI 2.3 present.
[ 0.000000] ACPI: RSDP 000F7290, 0014 (r0 PTLTD )
[ 0.000000] ACPI: RSDT 1DEF8B70, 0030 (r1 PTLTD RSDT 6040000 LTP 0)
[ 0.000000] ACPI: FACP 1DEFEE2B, 0074 (r1 ATI Raptor 6040000 ATI F4240)
[ 0.000000] ACPI: DSDT 1DEF8BA0, 628B (r1 ATI U1_M1535 6040000 MSFT 100000D)
[ 0.000000] ACPI: FACS 1DEFFFC0, 0040
[ 0.000000] ACPI: BOOT 1DEFEE9F, 0028 (r1 PTLTD $SBFTBL$ 6040000 LTP 1)
[ 0.000000] ACPI: SSDT 1DEFEEC7, 0139 (r1 PTLTD POWERNOW 6040000 LTP 1)
[ 0.000000] ATI board detected. Disabling timer routing over 8254.
[ 0.000000] ACPI: PM-Timer IO Port: 0x8008
[ 0.000000] Allocating PCI resources starting at 20000000 (gap: 1e000000:e1fc0000)
[ 0.000000] swsusp: Registered nosave memory region: 000000000009f000 - 00000000000a0000
[ 0.000000] swsusp: Registered nosave memory region: 00000000000a0000 - 00000000000d0000
[ 0.000000] swsusp: Registered nosave memory region: 00000000000d0000 - 0000000000100000
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 121651
[ 0.000000] Kernel command line: root=UUID=ce8db9f7-6377-48a5-b22e-0a86e05348d6 ro single noresume2
[ 0.000000] Local APIC disabled by BIOS -- you can enable it with "lapic"
[ 0.000000] mapped APIC to ffffb000 (013c3000)
[ 0.000000] Enabling fast FPU save and restore... done.
[ 0.000000] Enabling unmasked SIMD FPU exception support... done.
[ 0.000000] Initializing CPU#0
[ 0.000000] CPU 0 irqstacks, hard=c03c0000 soft=c03bf000
[ 0.000000] PID hash table entries: 2048 (order: 11, 8192 bytes)
[ 0.000000] Detected 1656.374 MHz processor.
[ 12.790717] Console: colour VGA+ 80x25
[ 12.790723] console [tty0] enabled
[ 12.793297] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 12.793765] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 12.814936] Memory: 476272k/490432k available (1813k kernel code, 13516k reserved, 665k data, 316k init, 0k highmem)
[ 12.815009] virtual kernel memory layout:
[ 12.815010] fixmap : 0xfffa8000 - 0xfffff000 ( 348 kB)
[ 12.815012] pkmap : 0xff800000 - 0xffc00000 (4096 kB)
[ 12.815013] vmalloc : 0xde800000 - 0xff7fe000 ( 527 MB)
[ 12.815015] lowmem : 0xc0000000 - 0xddef0000 ( 478 MB)
[ 12.815016] .init : 0xc036d000 - 0xc03bc000 ( 316 kB)
[ 12.815018] .data : 0xc02c5770 - 0xc036bce4 ( 665 kB)
[ 12.815019] .text : 0xc0100000 - 0xc02c5770 (1813 kB)
[ 12.815383] Checking if this processor honours the WP bit even in supervisor mode... Ok.
[ 12.898920] Calibrating delay using timer specific routine.. 3315.82 BogoMIPS (lpj=5522913)
[ 12.899060] Security Framework initialized
[ 12.899119] Capability LSM initialized
[ 12.899178] Mount-cache hash table entries: 512
[ 12.899420] CPU: After generic identify, caps: 0383f9ff c1cbf9ff 00000000 00000000 00000000 00000000 00000000 00000000
[ 12.899432] CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
[ 12.899483] CPU: L2 Cache: 256K (64 bytes/line)
[ 12.899530] CPU: After all inits, caps: 0383f9ff c1cbf9ff 00000000 00000420 00000000 00000000 00000000 00000000
[ 12.899537] Intel machine check architecture supported.
[ 12.899585] Intel machine check reporting enabled on CPU#0.
[ 12.899637] Compat vDSO mapped to ffffe000.
[ 12.899695] CPU: AMD mobile AMD Athlon(tm) XP2000+ stepping 01
[ 12.899840] Checking 'hlt' instruction... OK.
[ 12.912613] Freeing SMP alternatives: 0k freed
[ 12.912660] ACPI: Core revision 20070126
[ 12.915264] ACPI: setting ELCR to 0200 (from 0e28)
[ 12.917607] net_namespace: 64 bytes
[ 12.918235] Time: 20:32:02 Date: 12/31/07
[ 12.918340] NET: Registered protocol family 16
[ 12.918665] EISA bus registered
[ 12.918725] ACPI: bus type pci registered
[ 12.931113] PCI: PCI BIOS revision 2.10 entry at 0xfd87b, last bus=3
[ 12.931164] PCI: Using configuration type 1
[ 12.931209] Setting up standard PCI resources
[ 12.933490] ACPI: EC: Look up EC in DSDT
[ 12.960844] ACPI: Interpreter enabled
[ 12.960899] ACPI: (supports S0 S3 S4 S5)
[ 12.961082] ACPI: Using PIC for interrupt routing
[ 12.967151] ACPI: EC: GPE = 0x18, I/O: command/status = 0x66, data = 0x62
[ 12.967213] ACPI: EC: driver started in poll mode
[ 12.967518] ACPI: EC: non-query interrupt received, switching to interrupt mode
[ 12.967844] ACPI: PCI Root Bridge [PCI0] (0000:00)
[ 12.968323] PCI quirk: region 8000-803f claimed by ali7101 ACPI
[ 12.968374] PCI quirk: region 8040-805f claimed by ali7101 SMB
[ 12.968672] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
[ 12.968754] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGPB._PRT]
[ 12.971015] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 6 *10)
[ 12.971400] ACPI: PCI Interrupt Link [LNKB] (IRQs 7 *11)
[ 12.971713] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 6 10) *9
[ 12.972117] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 6 10) *0, disabled.
[ 12.972566] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 6 10) *0, disabled.
[ 12.973002] ACPI: PCI Interrupt Link [LNKF] (IRQs 7 11) *10
[ 12.973344] ACPI: PCI Interrupt Link [LNKG] (IRQs *3 4 6 10)
[ 12.973716] ACPI: PCI Interrupt Link [LNKH] (IRQs *5 7)
[ 12.974027] ACPI: PCI Interrupt Link [LNKU] (IRQs 3 4 6 10) *9
[ 12.974444] Linux Plug and Play Support v0.97 (c) Adam Belay
[ 12.974537] pnp: PnP ACPI init
[ 12.974596] ACPI: bus type pnp registered
[ 12.979367] pnp: PnP ACPI: found 11 devices
[ 12.979419] ACPI: ACPI bus type pnp unregistered
[ 12.979469] PnPBIOS: Disabled by ACPI PNP
[ 12.979792] PCI: Using ACPI for IRQ routing
[ 12.979842] PCI: If a device doesn't work, try "pci=routeirq". If it helps, post a report
[ 12.992232] NET: Registered protocol family 8
[ 12.992280] NET: Registered protocol family 20
[ 12.995550] Time: tsc clocksource has been installed.
[ 13.002265] system 00:07: ioport range 0x40b-0x40b has been reserved
[ 13.002316] system 00:07: ioport range 0x480-0x48f has been reserved
[ 13.002367] system 00:07: ioport range 0x4d0-0x4d1 has been reserved
[ 13.002416] system 00:07: ioport range 0x4d6-0x4d6 has been reserved
[ 13.002467] system 00:07: ioport range 0x8000-0x807f could not be reserved
[ 13.002518] system 00:07: ioport range 0xff00-0xff01 has been reserved
[ 13.002570] system 00:07: ioport range 0x8004-0x8005 has been reserved
[ 13.002620] system 00:07: ioport range 0xfe00-0xfefe has been reserved
[ 13.002671] system 00:07: iomem range 0xd0400000-0xd0400fff has been reserved
[ 13.033224] PCI: Bridge: 0000:00:01.0
[ 13.033271] IO window: 9000-9fff
[ 13.033317] MEM window: e0100000-e01fffff
[ 13.033364] PREFETCH window: e8000000-efffffff
[ 13.033413] PCI: Bus 2, cardbus bridge: 0000:00:0a.0
[ 13.033459] IO window: 00001000-000010ff
[ 13.033507] IO window: 00001400-000014ff
[ 13.033553] PREFETCH window: 20000000-23ffffff
[ 13.033600] MEM window: 24000000-27ffffff
[ 13.033646] PCI: Bus 6, cardbus bridge: 0000:00:0a.1
[ 13.033692] IO window: 00001800-000018ff
[ 13.033738] IO window: 00001c00-00001cff
[ 13.033784] PREFETCH window: 28000000-2bffffff
[ 13.033831] MEM window: 2c000000-2fffffff
[ 13.034171] ACPI: PCI Interrupt Link [LNKF] enabled at IRQ 11
[ 13.034222] PCI: setting IRQ 11 as level-triggered
[ 13.034226] ACPI: PCI Interrupt 0000:00:0a.0[A] -> Link [LNKF] -> GSI 11 (level, low) -> IRQ 11
[ 13.034357] ACPI: PCI Interrupt 0000:00:0a.1[B] -> Link [LNKF] -> GSI 11 (level, low) -> IRQ 11
[ 13.034504] NET: Registered protocol family 2
[ 13.065623] IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 13.065988] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
[ 13.066384] TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
[ 13.066602] TCP: Hash tables configured (established 16384 bind 16384)
[ 13.066652] TCP reno registered
[ 13.075740] checking if image is initramfs... it is
[ 13.535380] Switched to high resolution mode on CPU 0
[ 13.729911] Freeing initrd memory: 6045k freed
[ 13.730218] Simple Boot Flag at 0x36 set to 0x1
[ 13.730869] audit: initializing netlink socket (disabled)
[ 13.730940] audit(1199133122.896:1): initialized
[ 13.731217] VFS: Disk quotas dquot_6.5.1
[ 13.731297] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 13.731459] io scheduler noop registered
[ 13.731505] io scheduler anticipatory registered
[ 13.731551] io scheduler deadline registered
[ 13.731605] io scheduler cfq registered (default)
[ 13.731665] ATI Northbridge, reserving I/O ports 0x3b0 to 0x3bb.
[ 13.945282] Activating ISA DMA hang workarounds.
[ 13.945345] Boot video device is 0000:01:05.0
[ 13.945615] isapnp: Scanning for PnP cards...
[ 14.214704] isapnp: No Plug & Play device found
[ 14.246069] Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled
[ 14.246308] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 14.247393] 00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 14.248002] ACPI: PCI Interrupt Link [LNKG] enabled at IRQ 3
[ 14.248055] PCI: setting IRQ 3 as level-triggered
[ 14.248059] ACPI: PCI Interrupt 0000:00:08.0[A] -> Link [LNKG] -> GSI 3 (level, low) -> IRQ 3
[ 14.248186] ACPI: PCI interrupt for device 0000:00:08.0 disabled
[ 14.249078] RAMDISK driver initialized: 16 RAM disks of 65536K size 1024 blocksize
[ 14.249254] PNP: PS/2 Controller [PNP0303:KBC0,PNP0f13:MSE0] at 0x60,0x64 irq 1,12
[ 14.252877] serio: i8042 KBD port at 0x60,0x64 irq 1
[ 14.252933] serio: i8042 AUX port at 0x60,0x64 irq 12
[ 14.253168] mice: PS/2 mouse device common for all mice
[ 14.253394] EISA: Probing bus 0 at eisa.0
[ 14.253450] Cannot allocate resource for EISA slot 1
[ 14.253523] Cannot allocate resource for EISA slot 8
[ 14.253569] EISA: Detected 0 cards.
[ 14.254479] cpuidle: using governor ladder
[ 14.254525] cpuidle: using governor menu
[ 14.254688] TCP cubic registered
[ 14.254738] NET: Registered protocol family 1
[ 14.254831] Using IPI Shortcut mode
[ 14.255027] Magic number: 3:966:549
[ 14.255515] hash matches device PNP0C0F:00
[ 14.256221] Freeing unused kernel memory: 316k freed
[ 14.295229] input: AT Translated Set 2 keyboard as /class/input/input0
[ 14.607022] fuse init (API version 7.9)
[ 14.622151] ACPI: CPU0 (power states: C1[C1] C2[C2])
[ 14.625915] Marking TSC unstable due to: TSC halts in idle.
[ 14.626851] ACPI: Thermal Zone [THRM] (54 C)
[ 14.628417] Time: acpi_pm clocksource has been installed.
[ 15.960396] usbcore: registered new interface driver usbfs
[ 15.960499] usbcore: registered new interface driver hub
[ 15.971352] usbcore: registered new device driver usb
[ 15.972831] ohci_hcd: 2006 August 04 USB 1.1 'Open' Host Controller (OHCI) Driver
[ 15.973238] ACPI: PCI Interrupt Link [LNKU] enabled at IRQ 10
[ 15.973297] PCI: setting IRQ 10 as level-triggered
[ 15.973301] ACPI: PCI Interrupt 0000:00:02.0[A] -> Link [LNKU] -> GSI 10 (level, low) -> IRQ 10
[ 15.973440] ohci_hcd 0000:00:02.0: OHCI Host Controller
[ 15.973841] ohci_hcd 0000:00:02.0: new USB bus registered, assigned bus number 1
[ 15.973924] ohci_hcd 0000:00:02.0: irq 10, io mem 0xe0004000
[ 16.026968] usb usb1: configuration #1 chosen from 1 choice
[ 16.027064] hub 1-0:1.0: USB hub found
[ 16.027130] hub 1-0:1.0: 4 ports detected
[ 16.038956] Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
[ 16.039026] ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
[ 16.049775] natsemi dp8381x driver, version 2.1, Sept 11, 2006
[ 16.049780] originally by Donald Becker <[email protected]>
[ 16.049782] 2.4.x kernel port by Jeff Garzik, Tjeerd Mulder
[ 16.128366] alim15x3: ATI Radeon IGP Northbridge is not yet fully tested.
[ 16.128434] ALI15X3: IDE controller (0x10b9:0x5229 rev 0xc4) at PCI slot 0000:00:10.0
[ 16.128527] ACPI: Unable to derive IRQ for device 0000:00:10.0
[ 16.128576] ACPI: PCI Interrupt 0000:00:10.0[A]: no GSI
[ 16.128665] ALI15X3: not 100% native mode: will probe irqs later
[ 16.128733] ide0: BM-DMA at 0x8080-0x8087, BIOS settings: hda:DMA, hdb:pio
[ 16.128873] ide1: BM-DMA at 0x8088-0x808f, BIOS settings: hdc:DMA, hdd:pio
[ 16.129003] Probing IDE interface ide0...
[ 16.214901] Floppy drive(s): fd0 is 1.44M
[ 16.231524] FDC 0 is a post-1991 82077
[ 16.407936] usb 1-1: new low speed USB device using ohci_hcd and address 2
[ 16.628610] usb 1-1: configuration #1 chosen from 1 choice
[ 16.645156] usbcore: registered new interface driver hiddev
[ 16.662871] input: Logitech USB Receiver as /class/input/input1
[ 16.671226] input: USB HID v1.10 Mouse [Logitech USB Receiver] on usb-0000:00:02.0-1
[ 16.671373] usbcore: registered new interface driver usbhid
[ 16.671425] drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver
[ 17.044607] hda: ST94813A, ATA DISK drive
[ 17.044752] hda: host max PIO5 wanted PIO255(auto-tune) selected PIO4
[ 17.044940] hda: UDMA/100 mode selected
[ 17.045282] ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
[ 17.047288] Probing IDE interface ide1...
[ 18.067659] hdc: QSI CD-RW/DVD-ROM SBW-241, ATAPI CD/DVD-ROM drive
[ 18.067871] hdc: host max PIO5 wanted PIO255(auto-tune) selected PIO4
[ 18.067942] hdc: UDMA/33 mode selected
[ 18.068096] ide1 at 0x170-0x177,0x376 on irq 15
[ 18.079994] ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 11
[ 18.080059] ACPI: PCI Interrupt 0000:00:12.0[A] -> Link [LNKB] -> GSI 11 (level, low) -> IRQ 11
[ 18.082165] natsemi eth0: NatSemi DP8381[56] at 0xe0008000 (0000:00:12.0), 00:0d:9d:5b:58:5f, IRQ 11, port TP.
[ 18.082484] ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 10
[ 18.082534] ACPI: PCI Interrupt 0000:00:0c.0[A] -> Link [LNKC] -> GSI 10 (level, low) -> IRQ 10
[ 18.134030] SCSI subsystem initialized
[ 18.145045] libata version 3.00 loaded.
[ 18.150115] ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[10] MMIO=[e0007000-e00077ff] Max Packet=[2048] IR/IT contexts=[4/8]
[ 18.165577] hda: max request size: 128KiB
[ 18.170967] hda: 78140160 sectors (40007 MB) w/8192KiB Cache, CHS=16383/255/63
[ 18.171704] hda: cache flushes supported
[ 18.171824] hda: hda1 hda2 hda3 < hda5 hda6 > hda4
[ 18.227469] hdc: ATAPI 24X DVD-ROM CD-R/RW drive, 2048kB Cache
[ 18.227695] Uniform CD-ROM driver Revision: 3.20
[ 18.567218] Attempting manual resume
[ 18.567270] swsusp: Resume From Partition 3:5
[ 18.567273] PM: Checking swsusp image.
[ 18.567676] PM: Resume from disk failed.
[ 18.605851] kjournald starting. Commit interval 5 seconds
[ 18.605938] EXT3-fs: mounted filesystem with ordered data mode.
[ 19.417040] ieee1394: Host added: ID:BUS[0-00:1023] GUID[000d9d719e5a29c3]
[ 31.534698] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 31.605742] nf_conntrack version 0.5.0 (8192 buckets, 32768 max)
[ 32.440214] eth0: DSPCFG accepted after 0 usec.
[ 32.440288] eth0: link up.
[ 34.197014] NET: Registered protocol family 17
[ 34.947635] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[ 34.989067] Linux agpgart interface v0.102
[ 35.064009] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
[ 35.081289] input: Power Button (FF) as /class/input/input2
[ 35.098841] ACPI: Power Button (FF) [PWRF]
[ 35.099065] input: Power Button (CM) as /class/input/input3
[ 35.107222] agpgart: Detected Ati IGP320/M chipset
[ 35.117161] agpgart: AGP aperture is 64M @ 0xe4000000
[ 35.128772] ACPI: Power Button (CM) [PWRB]
[ 35.128926] input: Lid Switch as /class/input/input4
[ 35.140674] ACPI: Lid Switch [LID]
[ 35.153860] ACPI: AC Adapter [ACAD] (on-line)
[ 35.157323] ACPI: Battery Slot [BAT1] (battery present)
[ 35.317781] input: Video Bus as /class/input/input5
[ 35.345513] ACPI: Video Device [VGA] (multi-head: yes rom: no post: no)
[ 36.067032] Yenta: CardBus bridge found at 0000:00:0a.0 [6933:0002]
[ 36.067111] Yenta O2: res at 0x94/0xD4: ea/00
[ 36.067158] Yenta O2: enabling read prefetch/write burst
[ 36.192276] Yenta: ISA IRQ mask 0x00b8, PCI irq 11
[ 36.192340] Socket status: 30000006
[ 36.202384] Yenta: CardBus bridge found at 0000:00:0a.1 [6933:0002]
[ 36.328954] Yenta: ISA IRQ mask 0x00b8, PCI irq 11
[ 36.329015] Socket status: 30000006
[ 36.362355] ACPI: PCI Interrupt Link [LNKH] enabled at IRQ 5
[ 36.362419] PCI: setting IRQ 5 as level-triggered
[ 36.362423] ACPI: PCI Interrupt 0000:00:06.0[A] -> Link [LNKH] -> GSI 5 (level, low) -> IRQ 5
[ 36.419684] input: PC Speaker as /class/input/input6
[ 36.512837] Real Time Clock Driver v1.12ac
[ 37.234319] Synaptics Touchpad, model: 1, fw: 5.9, id: 0x236eb3, caps: 0x904713/0x10008
[ 37.269679] input: SynPS/2 Synaptics TouchPad as /class/input/input7
[ 37.294372] parport_pc 00:09: reported by Plug and Play ACPI
[ 37.294505] parport0: PC-style at 0x378 (0x778), irq 7, dma 0 [PCSPP,TRISTATE,COMPAT,ECP,DMA]
[ 37.720771] cs: IO port probe 0x100-0x4ff: excluding 0x200-0x207 0x220-0x22f 0x330-0x337 0x388-0x38f
[ 37.724018] cs: IO port probe 0xc00-0xcf7: clean.
[ 37.725092] cs: IO port probe 0xa00-0xaff: clean.
[ 37.728617] cs: IO port probe 0x100-0x4ff: excluding 0x200-0x207 0x220-0x22f 0x330-0x337 0x388-0x38f
[ 37.731882] cs: IO port probe 0xc00-0xcf7: clean.
[ 37.732934] cs: IO port probe 0xa00-0xaff: clean.
[ 38.794385] AC'97 1 does not respond - RESET
[ 38.807709] AC'97 1 access is not valid [0xffffffff], removing mixer.
[ 38.807763] ali mixer 1 creating error.
[ 38.810948] ali15x3_smbus 0000:00:11.0: ALI15X3_smb region uninitialized - upgrade BIOS or use force_addr=0xaddr
[ 38.811063] ali15x3_smbus 0000:00:11.0: ALI15X3 not detected, module not inserted.
[ 39.309807] lp0: using parport0 (interrupt-driven).
[ 39.566441] Adding 979924k swap on /dev/hda5. Priority:-1 extents:1 across:979924k
[ 39.939091] EXT3 FS on hda2, internal journal
[ 41.235791] kjournald starting. Commit interval 5 seconds
[ 41.236209] EXT3 FS on hda4, internal journal
[ 41.236216] EXT3-fs: mounted filesystem with ordered data mode.
[ 41.335552] SGI XFS with ACLs, security attributes, realtime, large block numbers, no debug enabled
[ 41.345498] SGI XFS Quota Management subsystem
[ 41.422488] XFS mounting filesystem hda6
[ 41.572821] Ending clean XFS mount for filesystem: hda6
[ 42.805014] NET: Registered protocol family 10
[ 42.805364] lo: Disabled Privacy Extensions
[ 53.579691] eth0: no IPv6 routers present
[ 90.958358] swsusp: Marking nosave pages: 000000000009f000 - 0000000000100000
[ 90.958369] swsusp: Basic memory bitmaps created
[ 90.958372] Syncing filesystems ... done.
[ 90.990172] Freezing user space processes ... (elapsed 0.00 seconds) done.
[ 90.990256] Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
[ 90.990305] Shrinking memory... -done (0 pages freed)
[ 91.012095] Freed 0 kbytes in 0.02 seconds (0.00 MB/s)
[ 91.012099] Suspending console(s)
[ 91.012358] ACPI: Cannot set device to a higher-powered state than parent
[ 91.232564] ACPI: Cannot set device to a higher-powered state than parent
[ 91.233219] serial 00:0a: disabled
[ 91.233582] parport_pc 00:09: disabled
[ 91.233840] eth0: remaining active for wake-on-lan
[ 91.273011] ACPI: PCI interrupt for device 0000:00:06.0 disabled
[ 91.286237] ACPI: PCI interrupt for device 0000:00:02.0 disabled
[ 91.304106] swsusp: critical section:
[ 91.325801] swsusp: Need to copy 24476 pages
[ 91.325808] swsusp: Normal pages needed: 24476 + 1024 + 14, available pages: 98033
[ 20.971916] Intel machine check architecture supported.
[ 20.971929] Intel machine check reporting enabled on CPU#0.
[ 20.981930] PM: Writing back config space on device 0000:00:00.0 at offset 1 (was 22300006, writing 2300006)
[ 20.994383] ACPI: PCI Interrupt 0000:00:02.0[A] -> Link [LNKU] -> GSI 10 (level, low) -> IRQ 10
[ 21.007714] PM: Writing back config space on device 0000:00:06.0 at offset 1 (was c2900007, writing c2900003)
[ 21.007728] ACPI: PCI Interrupt 0000:00:06.0[A] -> Link [LNKH] -> GSI 5 (level, low) -> IRQ 5
[ 21.287670] PM: Writing back config space on device 0000:00:0a.0 at offset f (was 180010a, writing 580010a)
[ 21.287684] PM: Writing back config space on device 0000:00:0a.0 at offset 3 (was 824000, writing 82a800)
[ 21.287690] PM: Writing back config space on device 0000:00:0a.0 at offset 1 (was 4100007, writing 4100087)
[ 21.287704] Yenta O2: res at 0x94/0xD4: ea/00
[ 21.287707] Yenta O2: enabling read prefetch/write burst
[ 21.424264] PM: Writing back config space on device 0000:00:0a.1 at offset f (was 180020a, writing 580020a)
[ 21.424278] PM: Writing back config space on device 0000:00:0a.1 at offset 3 (was 824000, writing 82a800)
[ 21.424284] PM: Writing back config space on device 0000:00:0a.1 at offset 1 (was 4100007, writing 4100087)
[ 21.574223] PM: Writing back config space on device 0000:00:0c.0 at offset f (was 4020100, writing 4020109)
[ 21.574236] PM: Writing back config space on device 0000:00:0c.0 at offset 5 (was 0, writing e0000000)
[ 21.574241] PM: Writing back config space on device 0000:00:0c.0 at offset 4 (was 0, writing e0007000)
[ 21.574245] PM: Writing back config space on device 0000:00:0c.0 at offset 3 (was 0, writing 4010)
[ 21.574251] PM: Writing back config space on device 0000:00:0c.0 at offset 1 (was 2100000, writing 2100016)
[ 21.624275] ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[10] MMIO=[e0007000-e00077ff] Max Packet=[2048] IR/IT contexts=[4/8]
[ 21.624410] ACPI: Unable to derive IRQ for device 0000:00:10.0
[ 21.624413] ACPI: PCI Interrupt 0000:00:10.0[A]: no GSI
[ 21.624498] eth0: DSPCFG accepted after 0 usec.
[ 21.626171] parport_pc 00:09: activated
[ 21.627184] serial 00:0a: activated
[ 22.342708] usb usb1: root hub lost power or was reset
[ 22.460074] hda: host max PIO5 wanted PIO255(auto-tune) selected PIO4
[ 22.460431] hda: UDMA/100 mode selected
[ 22.463457] hdc: host max PIO5 wanted PIO255(auto-tune) selected PIO4
[ 22.474519] hdc: UDMA/33 mode selected
[ 22.474625] PM: Image restored successfully.
[ 22.484664] Restarting tasks ... <6>usb 1-1: USB disconnect, address 2
[ 22.487883] done.
[ 22.487920] swsusp: Basic memory bitmaps freed
[ 22.787241] usb 1-1: new low speed USB device using ohci_hcd and address 3
[ 23.011521] usb 1-1: configuration #1 chosen from 1 choice
[ 23.034839] input: Logitech USB Receiver as /class/input/input8
[ 23.060634] input: USB HID v1.10 Mouse [Logitech USB Receiver] on usb-0000:00:02.0-1


lspci -vvv:
00:00.0 Host bridge: ATI Technologies Inc AGP Bridge [IGP 320M] (rev 13)
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 32
Region 0: Memory at e4000000 (32-bit, prefetchable) [size=64M]
Region 1: Memory at e0400000 (32-bit, prefetchable) [size=4K]
Region 2: I/O ports at 8090 [disabled] [size=4]
Capabilities: [a0] AGP version 2.0
Status: RQ=16 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 64bit- FW+ AGP3- Rate=x1,x2,x4
Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP+ GART64- 64bit- FW- Rate=x4

00:01.0 PCI bridge: ATI Technologies Inc PCI Bridge [IGP 320M] (rev 01) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 99
Bus: primary=00, secondary=01, subordinate=01, sec-latency=68
I/O behind bridge: 00009000-00009fff
Memory behind bridge: e0100000-e01fffff
Prefetchable memory behind bridge: e8000000-efffffff
Secondary status: 66MHz+ FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
BridgeCtl: Parity- SERR- NoISA+ VGA+ MAbort- >Reset- FastB2B-

00:02.0 USB Controller: ALi Corporation USB 1.1 Controller (rev 03) (prog-if 10 [OHCI])
Subsystem: Hewlett-Packard Company Pavilion ze4400 builtin USB
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 64 (20000ns max)
Interrupt: pin A routed to IRQ 10
Region 0: Memory at e0004000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [60] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:06.0 Multimedia audio controller: ALi Corporation M5451 PCI AC-Link Controller Audio Device (rev 02)
Subsystem: Hewlett-Packard Company Pavilion ze4400 builtin Audio
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR+ <PERR+
Latency: 64 (500ns min, 6000ns max)
Interrupt: pin A routed to IRQ 5
Region 0: I/O ports at 8400 [size=256]
Region 1: Memory at e0005000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [dc] Power Management version 2
Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:07.0 ISA bridge: ALi Corporation M1533/M1535 PCI to ISA Bridge [Aladdin IV/V/V+]
Subsystem: ALi Corporation ALi M1533 Aladdin IV/V ISA Bridge
Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Capabilities: [a0] Power Management version 1
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:08.0 Modem: ALi Corporation M5457 AC'97 Modem Controller (prog-if 00 [Generic])
Subsystem: Hewlett-Packard Company Pavilion ze4400 builtin Modem Device
Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Interrupt: pin A routed to IRQ 3
Region 0: Memory at e0006000 (32-bit, non-prefetchable) [size=4K]
Region 1: I/O ports at 8800 [size=256]
Capabilities: [40] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:0a.0 CardBus bridge: O2 Micro, Inc. OZ6933/711E1 CardBus/SmartCardBus Controller (rev 01)
Subsystem: Unknown device 6933:0002
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping+ SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 168
Interrupt: pin A routed to IRQ 11
Region 0: Memory at 30010000 (32-bit, non-prefetchable) [size=4K]
Bus: primary=00, secondary=02, subordinate=05, sec-latency=176
Memory window 0: 20000000-23fff000 (prefetchable)
Memory window 1: 24000000-27fff000
I/O window 0: 00001000-000010ff
I/O window 1: 00001400-000014ff
BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset- 16bInt+ PostWrite+
16-bit legacy interface ports at 0001

00:0a.1 CardBus bridge: O2 Micro, Inc. OZ6933/711E1 CardBus/SmartCardBus Controller (rev 01)
Subsystem: Unknown device 6933:0002
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping+ SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 168
Interrupt: pin B routed to IRQ 11
Region 0: Memory at 30011000 (32-bit, non-prefetchable) [size=4K]
Bus: primary=00, secondary=06, subordinate=09, sec-latency=176
Memory window 0: 28000000-2bfff000 (prefetchable)
Memory window 1: 2c000000-2ffff000
I/O window 0: 00001800-000018ff
I/O window 1: 00001c00-00001cff
BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset- 16bInt+ PostWrite+
16-bit legacy interface ports at 0001

00:0c.0 FireWire (IEEE 1394): Texas Instruments TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) (prog-if 10 [OHCI])
Subsystem: Hewlett-Packard Company Unknown device 0024
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 64 (500ns min, 1000ns max), Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 10
Region 0: Memory at e0007000 (32-bit, non-prefetchable) [size=2K]
Region 1: Memory at e0000000 (32-bit, non-prefetchable) [size=16K]
Capabilities: [44] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME+

00:10.0 IDE interface: ALi Corporation M5229 IDE (rev c4) (prog-if b0)
Subsystem: Hewlett-Packard Company Pavilion ze4400 builtin IDE
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 32 (500ns min, 1000ns max)
Interrupt: pin A routed to IRQ 0
Region 0: [virtual] Memory at 000001f0 (32-bit, non-prefetchable) [disabled] [size=8]
Region 1: [virtual] Memory at 000003f0 (type 3, non-prefetchable) [disabled] [size=1]
Region 2: [virtual] Memory at 00000170 (32-bit, non-prefetchable) [disabled] [size=8]
Region 3: [virtual] Memory at 00000370 (type 3, non-prefetchable) [disabled] [size=1]
Region 4: I/O ports at 8080 [size=16]
Capabilities: [60] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:11.0 Bridge: ALi Corporation M7101 Power Management Controller [PMU]
Subsystem: Hewlett-Packard Company Pavilion ze4400
Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-

00:12.0 Ethernet controller: National Semiconductor Corporation DP83815 (MacPhyter) Ethernet Controller
Subsystem: Hewlett-Packard Company Pavilion ze4400 builtin Network
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 90 (2750ns min, 13000ns max)
Interrupt: pin A routed to IRQ 11
Region 0: I/O ports at 8c00 [size=256]
Region 1: Memory at e0008000 (32-bit, non-prefetchable) [size=4K]
[virtual] Expansion ROM at 30000000 [disabled] [size=64K]
Capabilities: [40] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=320mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME+

01:05.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility U1 (prog-if 00 [VGA])
Subsystem: Hewlett-Packard Company Pavilion ze4400 builtin Video
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping+ SERR- FastB2B+
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 66 (2000ns min), Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 10
Region 0: Memory at e8000000 (32-bit, prefetchable) [size=128M]
Region 1: I/O ports at 9000 [size=256]
Region 2: Memory at e0100000 (32-bit, non-prefetchable) [size=64K]
[virtual] Expansion ROM at e0120000 [disabled] [size=128K]
Capabilities: [58] AGP version 2.0
Status: RQ=48 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3- Rate=x1,x2,x4
Command: RQ=16 ArqSz=0 Cal=0 SBA+ AGP+ GART64- 64bit- FW- Rate=x4
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-



What else?


Thanks!

Mikko
--





____________________________________________________________________________________
Never miss a thing. Make Yahoo your home page.
http://www.yahoo.com/r/hs


2008-01-01 10:47:20

by Andreas Mohr

[permalink] [raw]
Subject: Re: IDE/ACPI related hibernation regression: Second attempt fails

[added Tejun and Rafael CCs]

Hi,

On Mon, Dec 31, 2007 at 01:27:50PM -0800, Mikko Vinni wrote:
> Hi,
>
> I noticed my ancient laptop (HP nx9005) fails to hibernate (suspend to disk) more than once while running recent 2.6.24-rc kernels. First hibernation succeeds happily, but when I try to do it again after resuming, the machine hangs immediately after the familiar two pops from the speakers."Hanging" in this case means that none of the usual keys work (e.g. Caps Lock led doesn't toggle), but alt-sysrq-b does reboot the laptop.

I'm sorry, but "recent 2.6.24-rc kernels" unfortunately is a statement almost
as broad as "there's a violent fire in India, please come and rescue us!",
given that this very issue has been handled with lots of activity by Tejun Heo
recently (see bug #9530 and http://lkml.org/lkml/2007/12/9/184 for details).

2.6.24-rc6 is the version that has all ACPI IDE fixes in a state that made
my system fully work, so there should be a sizeable chance that it works
for you, too, hopefully.

What's interesting is that you're ALi-based, whereas I'm VIA-based, so
your problem might still be unsupported by -rc6 after all.

> Dmesg of the failing kernel after first hibernation (version is untouched e697789d64f8748cb219d7f5c413c512953802cc, i.e. current 2.6.24-rc6):
^^^^^^^^^

Argh, just saw this at the very last moment, IOW if this is _really_
-rc6+ already then we certainly do have a problem.

Disassembled ACPI BIOS AML code (DSDT) of your machine would be very useful
in this case, I'm afraid (done via acpidump and iasl, search the internet for
pointers).
lspci -x or better -xxx of the IDE device would be very useful, too.

Thanks for your verbose report,

Andreas Mohr

2008-01-01 16:11:52

by Mikko Vinni

[permalink] [raw]
Subject: Re: IDE/ACPI related hibernation regression: Second attempt fails

Hi,

From: Andreas Mohr <[email protected]>
> given that this very issue has been handled with lots of activity
> by Tejun Heo recently (see bug #9530 and http://lkml.org/lkml/2007/12/9/184
> for details).

this doesn't look like the same problem, although I'm in no way an expert.
At least the suspend doesn't fail "completely", because it succeeds always once.

>
> 2.6.24-rc6 is the version that has all ACPI IDE fixes in a state
> that made
> my system fully work, so there should be a sizeable chance that
> it works for you, too, hopefully.
>
> What's interesting is that you're ALi-based, whereas I'm VIA-based, so
> your problem might still be unsupported by -rc6 after all.
>
> > Dmesg of the failing kernel after first hibernation (version is
>
untouched e697789d64f8748cb219d7f5c413c512953802cc, i.e. current 2.6.24-rc6):
> ^^^^^^^^^
>
> Argh, just saw this at the very last moment, IOW if this is _really_
> -rc6+ already then we certainly do have a problem.


It is -rc6 (I had to change -rc6 to -rcx in Makefile to support the fallacy of not
having to compile everything from scratch, but had to make mrproper to get
rid of the stale include/asm symlink, so it didn't really help).


>
> Disassembled ACPI BIOS AML code (DSDT) of your machine would be
> very useful in this case, I'm afraid (done via acpidump and iasl, search
> the internet for pointers).
> lspci -x or better -xxx of the IDE device would be very useful, too.


This one?
00:10.0 IDE interface: ALi Corporation M5229 IDE (rev c4)
00: b9 10 29 52 05 00 90 02 c4 b0 01 01 00 20 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 81 80 00 00 00 00 00 00 00 00 00 00 3c 10 24 00
30: 00 00 00 00 60 00 00 00 00 00 00 00 00 01 02 04
40: 00 00 00 0f 00 00 00 00 30 00 20 c9 00 00 ba 3a
50: 02 00 00 89 55 50 0f 0a 01 31 31 00 01 31 31 00
60: 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


Hopefully this AML code isn't too large to post here. Maybe I should try post
the bug to bugzilla, although that idea is a bit scary...

---
/*
* Intel ACPI Component Architecture
* AML Disassembler version 20061109
*
* Disassembly of DSDT.aml, Tue Jan 1 17:20:43 2008
*
*
* Original Table Header:
* Signature "DSDT"
* Length 0x0000628B (25227)
* Revision 0x01
* OEM ID "ATI"
* OEM Table ID "U1_M1535"
* OEM Revision 0x06040000 (100925440)
* Creator ID "MSFT"
* Creator Revision 0x0100000D (16777229)
*/
DefinitionBlock ("DSDT.aml", "DSDT", 1, "ATI", "U1_M1535", 0x06040000)
{
OperationRegion (DBG, SystemIO, 0x80, 0x01)
Field (DBG, ByteAcc, NoLock, Preserve)
{
P80H, 8
}

OperationRegion (PMIO, SystemIO, 0x8000, 0x30)
Field (PMIO, ByteAcc, NoLock, Preserve)
{
PMS1, 16,
PME1, 16,
PMC1, 16,
Offset (0x08),
ATMR, 32,
Offset (0x10),
, 1,
TRDC, 3,
TREN, 1
}

Scope (_PR)
{
Processor (CPU0, 0x00, 0x00008010, 0x06) {}
}

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 (VTOB, 1, NotSerialized)
{
Store (0x01, Local0)
ShiftLeft (Local0, Arg0, Local0)
Return (Local0)
}

Method (BTOV, 1, NotSerialized)
{
ShiftRight (Arg0, 0x01, Local0)
Store (0x00, Local1)
While (Local0)
{
Increment (Local1)
ShiftRight (Local0, 0x01, Local0)
}

Return (Local1)
}

Method (MKWD, 2, NotSerialized)
{
If (And (Arg1, 0x80))
{
Store (0xFFFF0000, Local0)
}
Else
{
Store (Zero, Local0)
}

Or (Local0, Arg0, Local0)
Or (Local0, ShiftLeft (Arg1, 0x08), Local0)
Return (Local0)
}

Method (GBFE, 3, NotSerialized)
{
CreateByteField (Arg0, Arg1, TIDX)
Store (TIDX, Arg2)
}

Method (PBFE, 3, NotSerialized)
{
CreateByteField (Arg0, Arg1, TIDX)
Store (Arg2, TIDX)
}

Method (ITOS, 1, NotSerialized)
{
Store (Buffer (0x09)
{
/* 0000 */ 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0008 */ 0x00
}, Local0)
Store (Buffer (0x11)
{
"0123456789ABCDEF"
}, Local7)
Store (0x08, Local1)
Store (0x00, Local2)
Store (0x00, Local3)
While (Local1)
{
Decrement (Local1)
And (ShiftRight (Arg0, ShiftLeft (Local1, 0x02)), 0x0F, Local4)
If (Local4)
{
Store (Ones, Local3)
}

If (Local3)
{
GBFE (Local7, Local4, RefOf (Local5))
PBFE (Local0, Local2, Local5)
Increment (Local2)
}
}

Return (Local0)
}

Scope (\_SB)
{
Name (ECEN, 0x00)
Name (ACCG, 0x00)
Name (PRCT, 0x00)
Name (S4WF, 0x00)
Method (ECOK, 0, NotSerialized)
{
If (LAnd (ECEN, 0x01))
{
Return (0x01)
}
Else
{
Return (0x00)
}
}

Device (PCI0)
{
Name (_PRW, Package (0x02)
{
0x09,
0x05
})
Name (_PRT, Package (0x0B)
{
Package (0x04)
{
0x0001FFFF,
0x00,
\_SB.PCI0.ISA.LNKA,
0x00
},

Package (0x04)
{
0x0002FFFF,
0x00,
\_SB.PCI0.ISA.LNKU,
0x00
},

Package (0x04)
{
0x000FFFFF,
0x00,
\_SB.PCI0.ISA.LNKE,
0x00
},

Package (0x04)
{
0x0008FFFF,
0x00,
\_SB.PCI0.ISA.LNKG,
0x00
},

Package (0x04)
{
0x0006FFFF,
0x00,
\_SB.PCI0.ISA.LNKH,
0x00
},

Package (0x04)
{
0x0012FFFF,
0x00,
\_SB.PCI0.ISA.LNKB,
0x00
},

Package (0x04)
{
0x0009FFFF,
0x00,
\_SB.PCI0.ISA.LNKD,
0x00
},

Package (0x04)
{
0x0009FFFF,
0x01,
\_SB.PCI0.ISA.LNKC,
0x00
},

Package (0x04)
{
0x000CFFFF,
0x00,
\_SB.PCI0.ISA.LNKC,
0x00
},

Package (0x04)
{
0x000AFFFF,
0x00,
\_SB.PCI0.ISA.LNKF,
0x00
},

Package (0x04)
{
0x000AFFFF,
0x01,
\_SB.PCI0.ISA.LNKF,
0x00
}
})
Name (_HID, EisaId ("PNP0A03"))
Name (_ADR, 0x00)
Name (_BBN, 0x00)
OperationRegion (MREG, PCI_Config, 0xB8, 0x14)
Field (MREG, ByteAcc, NoLock, Preserve)
{
CS0, 8,
CS1, 8,
CS2, 8,
CS3, 8,
Offset (0x10),
FBSL, 8,
FBSM, 8
}

Method (TOM, 0, NotSerialized)
{
Multiply (FBSL, 0x00010000, Local0)
Multiply (FBSM, 0x01000000, Local1)
Add (Local0, Local1, Local0)
Return (Local0)
}

OperationRegion (VGAM, SystemMemory, 0x000C0002, 0x01)
Field (VGAM, ByteAcc, Lock, Preserve)
{
VSIZ, 8
}

OperationRegion (REGS, PCI_Config, 0x90, 0x70)
Field (REGS, ByteAcc, NoLock, Preserve)
{
SR90, 8,
SR91, 8,
SR92, 8,
SR93, 8,
Offset (0x6E),
SRFE, 8,
SRFF, 8
}

Name (RSRC, ResourceTemplate ()
{
WordBusNumber (ResourceProducer, MinFixed, MaxFixed, SubDecode,
0x0000, // Granularity
0x0000, // Range Minimum
0x00FF, // Range Maximum
0x0000, // Translation Offset
0x0100, // Length
0x00,, )
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x00000000, // Granularity
0x000A0000, // Range Minimum
0x000BFFFF, // Range Maximum
0x00000000, // Translation Offset
0x00020000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x00000000, // Granularity
0x000C0000, // Range Minimum
0x000C3FFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x00000000, // Granularity
0x000C4000, // Range Minimum
0x000C7FFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x00000000, // Granularity
0x000C8000, // Range Minimum
0x000CBFFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x00000000, // Granularity
0x000CC000, // Range Minimum
0x000CFFFF, // Range Maximum
0x00000000, // Translation Offset
0x00004000, // Length
0x00,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x000D0000, // Range Minimum
0x000D7FFF, // Range Maximum
0x00000000, // Translation Offset
0x00008000, // Length
,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x00000000, // Granularity
0x000A0000, // Range Minimum
0x000BFFFF, // Range Maximum
0x00000000, // Translation Offset
0x00020000, // Length
0x00,, _Y00, AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, SubDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x00000000, // Granularity
0x00100000, // Range Minimum
0xFFFDFFFF, // Range Maximum
0x00000000, // Translation Offset
0xFFEE0000, // Length
0x00,, _Y01, AddressRangeMemory, TypeStatic)
IO (Decode16,
0x0CF8, // Range Minimum
0x0CF8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x0000, // Granularity
0x0000, // Range Minimum
0x0CF7, // Range Maximum
0x0000, // Translation Offset
0x0CF8, // Length
0x00,, , TypeStatic)
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x0000, // Granularity
0x0D00, // Range Minimum
0xFFFF, // Range Maximum
0x0000, // Translation Offset
0xF300, // Length
0x00,, , TypeStatic)
})
Method (_CRS, 0, Serialized)
{
CreateDWordField (RSRC, \_SB.PCI0._Y00._MAX, VMAX)
CreateDWordField (RSRC, \_SB.PCI0._Y00._LEN, VLEN)
ShiftLeft (VSIZ, 0x09, Local0)
Add (Local0, 0x000BFFFF, VMAX)
Add (Local0, 0x00020000, VLEN)
CreateDWordField (RSRC, \_SB.PCI0._Y01._MIN, BTMN)
CreateDWordField (RSRC, \_SB.PCI0._Y01._MAX, BTMX)
CreateDWordField (RSRC, \_SB.PCI0._Y01._LEN, BTLN)
Store (\_SB.PCI0.TOM (), BTMN)
Subtract (0xFFF80000, BTMN, BTLN)
Subtract (Add (BTMN, BTLN), 0x01, BTMX)
Return (RSRC)
}

Device (AGPB)
{
Name (_ADR, 0x00010000)
Device (VGA)
{
Name (_ADR, 0x00050000)
Method (_STA, 0, NotSerialized)
{
Return (0x0F)
}

Name (_PSC, 0x00)
Method (_PS0, 0, NotSerialized)
{
Store (0x00, _PSC)
}

Method (_PS1, 0, NotSerialized)
{
Store (0x01, _PSC)
}

Method (_PS2, 0, NotSerialized)
{
Store (0x02, _PSC)
}

Method (_PS3, 0, NotSerialized)
{
Store (0x03, _PSC)
}

Name (DISW, 0x01)
Name (NDSP, 0x00)
Name (VRSM, 0x00)
Name (TGLT, Package (0x04)
{
Package (0x08)
{
0x01,
0x01,
0x01,
0x01,
0x01,
0x01,
0x01,
0x01
},

Package (0x08)
{
0x01,
0x02,
0x03,
0x01,
0x01,
0x01,
0x01,
0x01
},

Package (0x08)
{
0x01,
0x04,
0x04,
0x04,
0x05,
0x01,
0x01,
0x01
},

Package (0x08)
{
0x01,
0x02,
0x03,
0x05,
0x01,
0x01,
0x01,
0x01
}
})
Name (TGLP, 0x00)
Method (NDGS, 0, NotSerialized)
{
ShiftRight (And (^LCD._DCS, 0x02), 0x01, Local0)
Or (Local0, And (^CRT._DCS, 0x02), Local0)
Or (Local0, ShiftLeft (And (^TV._DCS, 0x02), 0x01), Local0)
Store (DerefOf (Index (DerefOf (Index (TGLT, TGLP)), Local0)),
Local1)
And (Local1, 0x01, ^LCD._DGS)
ShiftRight (And (Local1, 0x02), 0x01, ^CRT._DGS)
ShiftRight (And (Local1, 0x04), 0x02, ^TV._DGS)
}

Method (USTS, 1, NotSerialized)
{
Store (\_SB.PCI0.ISA.HPSS (0x0F, 0x00), Local0)
And (Local0, 0x0F, Local1)
If (LEqual (Local1, 0x03))
{
Store (0x01, TGLP)
}
Else
{
If (LEqual (Local1, 0x05))
{
Store (0x02, TGLP)
}
Else
{
If (LEqual (Local1, 0x07))
{
Store (0x03, TGLP)
}
Else
{
Store (0x00, TGLP)
}
}
}

Or (ShiftRight (And (Local0, 0x10), 0x03), And (^LCD._DCS,
0xFD), ^LCD._DCS)
Or (Or (ShiftLeft (And (Local0, 0x02), 0x03), ShiftRight (
And (Local0, 0x20), 0x04)), And (^CRT._DCS, 0xED),
^CRT._DCS)
Or (Or (ShiftLeft (And (Local0, 0x04), 0x02), ShiftRight (
And (Local0, 0x40), 0x05)), And (^TV._DCS, 0xED),
^TV._DCS)
Return (Local0)
}

Method (_INI, 0, NotSerialized)
{
Store (USTS (0x00), Local1)
Or (ShiftRight (And (Local1, 0x10), 0x03), 0x1D, ^LCD._DCS)
Or (Or (ShiftLeft (And (Local1, 0x02), 0x03), ShiftRight (
And (Local1, 0x20), 0x04)), 0x0D, ^CRT._DCS)
Or (Or (ShiftLeft (And (Local1, 0x04), 0x02), ShiftRight (
And (Local1, 0x40), 0x05)), 0x0D, ^TV._DCS)
ShiftRight (Local1, 0x04, NDSP)
Store (ShiftRight (And (^LCD._DCS, 0x02), 0x01), ^LCD._DGS)
Store (ShiftRight (And (^CRT._DCS, 0x02), 0x01), ^CRT._DGS)
Store (ShiftRight (And (^TV._DCS, 0x02), 0x01), ^TV._DGS)
NDGS ()
}

Method (_DOS, 1, NotSerialized)
{
If (LAnd (LEqual (And (Arg0, 0x03), 0x00), LEqual (And (
DISW, 0x03), 0x02)))
{
Notify (\_SB.PCI0.ISA.HPCI, 0x89)
}

Store (Arg0, DISW)
}

Method (_DOD, 0, NotSerialized)
{
Return (Package (0x03)
{
0x00010100,
0x00010110,
0x00010200
})
}

Method (DRUL, 1, NotSerialized)
{
Store (^CRT._DCS, Local1)
If (LEqual (Arg0, 0x01))
{
Store (USTS (0x01), Local2)
}
Else
{
Store (USTS (0x00), Local2)
}

If (LEqual (Arg0, 0x01))
{
NDGS ()
If (LOr (LAnd (^CRT._DGS, LNot (And (^CRT._DCS, 0x10))), LAnd (
^TV._DGS, LNot (And (^TV._DCS, 0x10)))))
{
NDGS ()
Return (0x00)
}
Else
{
Notify (VGA, 0x80)
Return (0x00)
}
}

If (LEqual (Arg0, 0x02))
{
If (And (Local2, 0x02))
{
Store (0x01, ^CRT._DGS)
If (\_SB.PCI0.ISA.DISB)
{
Store (0x01, ^LCD._DGS)
}
Else
{
Store (0x00, ^LCD._DGS)
}

Store ("CRT Connected VGA.DRUL(2) called", Debug)
}
Else
{
Store (0x00, ^CRT._DGS)
Store (0x01, ^LCD._DGS)
Store ("CRT DisConnected VGA.DRUL(2) called", Debug)
}

Notify (VGA, 0x80)
}

If (LEqual (Arg0, 0x04))
{
Store (0x00, ^CRT._DGS)
Store (0x01, ^LCD._DGS)
Notify (VGA, 0x80)
}

If (LEqual (Arg0, 0x03))
{
If (LNotEqual (ShiftRight (And (Local1, 0x10), 0x03),
And (Local2, 0x02)))
{
If (And (Local2, 0x02))
{
Store (0x01, ^CRT._DGS)
If (\_SB.PCI0.ISA.DISB)
{
Store (0x01, ^LCD._DGS)
}
Else
{
Store (0x00, ^LCD._DGS)
}
}
Else
{
Store (0x00, ^CRT._DGS)
Store (0x01, ^LCD._DGS)
}

Store ("Resume VGA.DRUL(3) called", Debug)
Notify (VGA, 0x80)
}
}

If (LEqual (Arg0, 0x05))
{
Notify (VGA, 0x80)
Return (0x00)
}
}

Device (LCD)
{
Name (_ADR, 0x0110)
Name (_PSC, 0x00)
Name (_S3D, 0x03)
Method (_PS0, 0, NotSerialized)
{
If (LAnd (LAnd (VRSM, LNot (^^CRT._PSC)), LNot (^^TV._PSC)))
{
If (_PSC)
{
DRUL (0x03)
}

Store (0x00, VRSM)
}

Store (0x00, _PSC)
}

Method (_PS1, 0, NotSerialized)
{
Store (0x01, _PSC)
}

Method (_PS3, 0, NotSerialized)
{
Store (0x03, _PSC)
}

Name (_DCS, 0x1B)
Method (_DSS, 1, NotSerialized)
{
Store (Arg0, Local0)
If (And (Local0, 0x01))
{
Store ("LCD._DSS(1) called", Debug)
Or (NDSP, 0x01, NDSP)
}
Else
{
Store ("LCD._DSS(0) called", Debug)
And (NDSP, 0xFE, NDSP)
}

And (Local0, 0xC0000000, Local0)
If (LEqual (Local0, 0x80000000))
{
Store ("LCD._DSS(8000000x) called", Debug)
\_SB.PCI0.ISA.HPSS (0x01, NDSP)
}

And (Local0, 0x80000000, Local0)
If (LNotEqual (Local0, 0x00))
{
Store ("LCD._DSS, update next _DGS", Debug)
Or (And (^^LCD._DCS, 0xFD), ShiftLeft (And (NDSP, 0x01),
0x01), ^^LCD._DCS)
Or (And (^^CRT._DCS, 0xFD), And (NDSP, 0x02), ^^CRT._DCS)
Or (And (^^TV._DCS, 0xFD), ShiftRight (And (NDSP, 0x04),
0x01), ^^TV._DCS)
}
}

Name (_DGS, 0x00)
}

Device (CRT)
{
Name (_ADR, 0x0100)
Name (_PSC, 0x00)
Method (_PS0, 0, NotSerialized)
{
If (LAnd (LAnd (VRSM, LNot (^^LCD._PSC)), LNot (^^TV._PSC)))
{
If (_PSC)
{
DRUL (0x03)
}

Store (0x00, VRSM)
}

Store (0x00, _PSC)
}

Method (_PS1, 0, NotSerialized)
{
Store (0x01, _PSC)
}

Method (_PS3, 0, NotSerialized)
{
Store (0x03, _PSC)
}

Name (_DCS, 0x1B)
Method (_DSS, 1, NotSerialized)
{
Store (Arg0, Local0)
If (And (Local0, 0x01))
{
Store ("CRT._DSS(1) called", Debug)
Or (NDSP, 0x02, NDSP)
}
Else
{
Store ("CRT._DSS(0) called", Debug)
And (NDSP, 0xFD, NDSP)
}

And (Local0, 0xC0000000, Local0)
If (LEqual (Local0, 0x80000000))
{
Store ("CRT._DSS(8000000x) called", Debug)
\_SB.PCI0.ISA.HPSS (0x01, NDSP)
}

And (Local0, 0x80000000, Local0)
If (LNotEqual (Local0, 0x00))
{
Store ("CRT._DSS, update next _DGS", Debug)
Or (And (^^LCD._DCS, 0xFD), ShiftLeft (And (NDSP, 0x01),
0x01), ^^LCD._DCS)
Or (And (^^CRT._DCS, 0xFD), And (NDSP, 0x02), ^^CRT._DCS)
Or (And (^^TV._DCS, 0xFD), ShiftRight (And (NDSP, 0x04),
0x01), ^^TV._DCS)
}
}

Name (_DGS, 0x00)
}

Device (TV)
{
Name (_ADR, 0x0200)
Name (_PSC, 0x00)
Method (_PS0, 0, NotSerialized)
{
If (LAnd (LAnd (VRSM, LNot (^^CRT._PSC)), LNot (^^LCD._PSC)))
{
If (_PSC)
{
DRUL (0x03)
}

Store (0x00, VRSM)
}

Store (0x00, _PSC)
}

Method (_PS1, 0, NotSerialized)
{
Store (0x01, _PSC)
}

Method (_PS3, 0, NotSerialized)
{
Store (0x03, _PSC)
}

Name (_DCS, 0x1B)
Method (_DSS, 1, NotSerialized)
{
Store (Arg0, Local0)
If (And (Local0, 0x01))
{
Store ("TV_._DSS(1) called", Debug)
Or (NDSP, 0x04, NDSP)
}
Else
{
Store ("TV_._DSS(0) called", Debug)
And (NDSP, 0xFB, NDSP)
}

And (Local0, 0xC0000000, Local0)
If (LEqual (Local0, 0x80000000))
{
Store ("TV_._DSS(8000000x) called", Debug)
\_SB.PCI0.ISA.HPSS (0x01, NDSP)
}

And (Local0, 0x80000000, Local0)
If (LNotEqual (Local0, 0x00))
{
Store ("TV_._DSS, update next _DGS", Debug)
Or (And (^^LCD._DCS, 0xFD), ShiftLeft (And (NDSP, 0x01),
0x01), ^^LCD._DCS)
Or (And (^^CRT._DCS, 0xFD), And (NDSP, 0x02), ^^CRT._DCS)
Or (And (^^TV._DCS, 0xFD), ShiftRight (And (NDSP, 0x04),
0x01), ^^TV._DCS)
}
}

Name (_DGS, 0x00)
}
}

Name (_PRT, Package (0x01)
{
Package (0x04)
{
0x0005FFFF,
0x00,
\_SB.PCI0.ISA.LNKC,
0x00
}
})
}

Device (IDE)
{
Name (_ADR, 0x00100000)
Name (UDMT, Package (0x08)
{
0x1E,
0x2D,
0x3C,
0x5A,
0x78,
0x78,
0x78,
0x14
})
Name (PIOT, Package (0x05)
{
0x78,
0xB4,
0xF0,
0x017F,
0x0258
})
Name (PIOC, Package (0x05)
{
0x04,
0x06,
0x08,
0x0D,
0x10
})
Name (CBCT, Package (0x05)
{
0x31,
0x33,
0x01,
0x03,
0x0A
})
Name (DACT, Package (0x05)
{
0x03,
0x03,
0x04,
0x05,
0x08
})
Name (DRCT, Package (0x05)
{
0x01,
0x03,
0x04,
0x08,
0x08
})
Name (PXLM, Package (0x05)
{
0x02,
0x01,
0x00,
0x00,
0x00
})
OperationRegion (PCI, PCI_Config, 0x00, 0x60)
Field (PCI, ByteAcc, NoLock, Preserve)
{
Offset (0x09),
, 4,
SCHE, 1,
PCHE, 1,
Offset (0x0A),
Offset (0x0D),
Offset (0x4B),
U66E, 1,
Offset (0x4C),
Offset (0x53),
CDFI, 1,
CDUD, 1,
Offset (0x54),
PFTH, 8,
SFTH, 8,
PUDC, 8,
SUDC, 8,
PAST, 8,
PCBT, 8,
PTM0, 8,
PTM1, 8,
SAST, 8,
SCBT, 8,
STM0, 8,
STM1, 8
}

Method (STM, 3, NotSerialized)
{
Name (A100, 0x00)
Store (Buffer (0x06)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}, Local7)
CreateByteField (Local7, 0x00, TM0)
CreateByteField (Local7, 0x01, TM1)
CreateByteField (Local7, 0x02, UDC)
CreateByteField (Local7, 0x03, AST)
CreateByteField (Local7, 0x04, CBT)
CreateByteField (Local7, 0x05, U66)
CreateDWordField (Arg0, 0x00, PIO0)
CreateDWordField (Arg0, 0x04, DMA0)
CreateDWordField (Arg0, 0x08, PIO1)
CreateDWordField (Arg0, 0x0C, DMA1)
CreateDWordField (Arg0, 0x10, FLAG)
Store (FLAG, Local6)
Name (W49M, 0x00)
Name (W53M, 0x00)
Name (W62M, 0x00)
Name (W64M, 0x00)
Name (W88M, 0x00)
If (LEqual (SizeOf (Arg1), 0x0200))
{
CreateDWordField (Arg1, 0x62, W49A)
CreateDWordField (Arg1, 0x6A, W53A)
CreateDWordField (Arg1, 0x7C, W62A)
CreateDWordField (Arg1, 0x80, W64A)
CreateDWordField (Arg1, 0xB0, W88A)
Store (W49A, W49M)
Store (W53A, W53M)
Store (W62A, W62M)
Store (W64A, W64M)
Store (W88A, W88M)
}
Else
{
Store (0x00, W49M)
Store (0x00, W53M)
Store (0x00, W62M)
Store (0x00, W64M)
Store (0x00, W88M)
}

If (LAnd (And (0x38, W88M), Ones))
{
Or (0x01, Local6, Local6)
If (And (0x20, W88M))
{
Store (0x08, DMA0)
Or (A100, 0x00100010, A100)
}
Else
{
If (And (0x10, W88M))
{
Store (0x1E, DMA0)
Or (A100, 0x10, A100)
}
Else
{
Store (0x2D, DMA0)
}
}
}
Else
{
If (And (0x07, W88M))
{
Or (0x0100, A100, A100)
If (And (0x04, W88M))
{
Store (0x3C, DMA0)
}
Else
{
If (And (0x02, W88M))
{
Store (0x5A, DMA0)
}
Else
{
Store (0x78, DMA0)
}
}
}
}

Store (Ones, Local4)
If (LOr (DMA0, PIO0))
{
If (LAnd (DMA0, LNot (PIO0)))
{
If (And (Local6, 0x01))
{
If (LLess (DMA0, 0x1E))
{
Store (0x07, Local0)
}
Else
{
Store (Match (^UDMT, MGE, DMA0, MTR, 0x00, 0x00), Local0)
}

Or (Local0, 0x08, UDC)
If (LLess (DMA0, 0x3C))
{
Store (One, U66)
}
}

Store (Match (^PIOT, MGE, DMA0, MTR, 0x00, 0x00), Local0)
Store (DerefOf (Index (^DACT, Local0)), Local2)
Store (DerefOf (Index (^DRCT, Local0)), Local3)
Add (Local3, ShiftLeft (Local2, 0x04), TM0)
Store (Local0, Local4)
}

If (LAnd (LNot (DMA0), PIO0))
{
Store (Match (^PIOT, MGE, PIO0, MTR, 0x00, 0x00), Local0)
Store (DerefOf (Index (^DACT, Local0)), Local2)
Store (DerefOf (Index (^DRCT, Local0)), Local3)
Add (Local3, ShiftLeft (Local2, 0x04), TM0)
Store (Local0, Local4)
}

If (LAnd (DMA0, PIO0))
{
If (And (Local6, 0x01))
{
If (LLess (DMA0, 0x1E))
{
Store (0x07, Local0)
}
Else
{
Store (Match (^UDMT, MGE, DMA0, MTR, 0x00, 0x00), Local0)
}

Or (Local0, 0x08, UDC)
If (LLess (DMA0, 0x3C))
{
Store (One, U66)
}
}

If (LGreaterEqual (PIO0, DMA0))
{
Store (Match (^PIOT, MGE, PIO0, MTR, 0x00, 0x00), Local0)
Store (Local0, Local4)
}
Else
{
Store (Match (^PIOT, MGE, DMA0, MTR, 0x00, 0x00), Local0)
Store (Local0, Local4)
}

Store (DerefOf (Index (^DACT, Local0)), Local2)
Store (DerefOf (Index (^DRCT, Local0)), Local3)
Add (Local3, ShiftLeft (Local2, 0x04), TM0)
}
}

Store (Ones, Local5)
If (LEqual (Local4, Ones))
{
If (LEqual (Local5, Ones))
{
Store (Zero, CBT)
}
Else
{
Store (DerefOf (Index (^CBCT, Local5)), CBT)
}
}
Else
{
If (LEqual (Local5, Ones))
{
Store (DerefOf (Index (^CBCT, Local4)), CBT)
}
Else
{
If (LGreaterEqual (Local4, Local5))
{
Store (DerefOf (Index (^CBCT, Local4)), CBT)
}
Else
{
Store (DerefOf (Index (^CBCT, Local5)), CBT)
}
}
}

Store (0x02, AST)
Return (Local7)
}

Method (GTF0, 3, NotSerialized)
{
Store (Buffer (0x07)
{
0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
}, Local7)
CreateByteField (Local7, 0x01, MODE)
If (And (Arg1, 0x08))
{
And (Arg1, 0x07, Local0)
If (LEqual (Local0, 0x07))
{
Store (0x05, MODE)
}
Else
{
Subtract (0x04, Local0, MODE)
}

Or (MODE, 0x40, MODE)
}
Else
{
And (Arg2, 0x0F, Local0)
Store (Match (^DRCT, MEQ, Local0, MTR, 0x00, 0x00), Local1)
Store (DerefOf (Index (^PXLM, Local1)), MODE)
Or (MODE, 0x20, MODE)
}

Concatenate (Local7, Local7, Local6)
And (Arg2, 0x0F, Local0)
Store (Match (^DRCT, MEQ, Local0, MTR, 0x00, 0x00), Local1)
Subtract (0x04, Local1, MODE)
Or (MODE, 0x08, MODE)
Concatenate (Local6, Local7, Local5)
Return (Local5)
}

Device (PRIM)
{
Name (_ADR, 0x00)
Name (_PSC, 0x00)
OperationRegion (HDIO, SystemIO, 0x01F0, 0x08)
Field (HDIO, ByteAcc, NoLock, Preserve)
{
Offset (0x01),
Offset (0x02),
Offset (0x03),
Offset (0x04),
Offset (0x05),
Offset (0x06),
HDSL, 8,
HDCM, 8
}

Method (_PS0, 0, NotSerialized)
{
Store (0x00, _PSC)
}

Method (_PS3, 0, NotSerialized)
{
Store (0x03, _PSC)
}

Method (_GTM, 0, NotSerialized)
{
Store ("GTM - Primary Controller", Debug)
Return (Buffer (0x14)
{
/* 0000 */ 0x78, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
/* 0008 */ 0x78, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
/* 0010 */ 0x1F, 0x00, 0x00, 0x00
})
}

Method (_STM, 3, NotSerialized)
{
Store ("STM - Primary Controller", Debug)
Store (^^STM (Arg0, Arg1, Arg2), Local0)
CreateByteField (Local0, 0x00, TM0)
CreateByteField (Local0, 0x01, TM1)
CreateByteField (Local0, 0x02, UDC)
CreateByteField (Local0, 0x03, AST)
CreateByteField (Local0, 0x04, CBT)
CreateByteField (Local0, 0x05, U66)
Store (TM0, ^^PTM0)
Store (TM1, ^^PTM1)
Store (UDC, ^^PUDC)
Store (AST, ^^PAST)
Store (CBT, ^^PCBT)
If (U66)
{
Store (U66, ^^U66E)
}

Store (0x55, ^^PFTH)
}

Device (MAST)
{
Name (_ADR, 0x00)
Method (_GTF, 0, NotSerialized)
{
Store ("GTF - Primary Master", Debug)
Store (^^^GTF0 (^^^PCHE, ^^^PUDC, ^^^PTM0), Local0)
Return (Local0)
}

Name (_PSC, 0x00)
Method (_PS0, 0, NotSerialized)
{
Store (0x00, _PSC)
}

Method (_PS3, 0, NotSerialized)
{
\_SB.PCI0.ISA.HPSS (0x02, 0x00)
Sleep (0x03E8)
Store (0x03, _PSC)
}
}
}

Device (SECN)
{
Name (_ADR, 0x01)
Name (_PSC, 0x00)
Method (_PS0, 0, NotSerialized)
{
Store (0x00, _PSC)
}

Method (_PS3, 0, NotSerialized)
{
Store (0x03, _PSC)
}

Method (_GTM, 0, NotSerialized)
{
Store ("GTM - Secondary Controller", Debug)
Return (Buffer (0x14)
{
/* 0000 */ 0x78, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
/* 0008 */ 0x78, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
/* 0010 */ 0x1F, 0x00, 0x00, 0x00
})
}

Method (_STM, 3, NotSerialized)
{
Store ("STM - Secondary Controller", Debug)
Store (^^STM (Arg0, Arg1, Arg2), Local0)
CreateByteField (Local0, 0x00, TM0)
CreateByteField (Local0, 0x01, TM1)
CreateByteField (Local0, 0x02, UDC)
CreateByteField (Local0, 0x03, AST)
CreateByteField (Local0, 0x04, CBT)
CreateByteField (Local0, 0x05, U66)
Store (TM0, ^^STM0)
Store (TM1, ^^STM1)
Store (UDC, ^^SUDC)
Store (AST, ^^SAST)
Store (CBT, ^^SCBT)
If (U66)
{
Store (U66, ^^U66E)
}

Store (0x55, ^^SFTH)
}

Device (MAST)
{
Name (_ADR, 0x00)
Method (_GTF, 0, NotSerialized)
{
Store ("GTF - Secondary Master", Debug)
Store (^^^GTF0 (^^^SCHE, ^^^SUDC, ^^^STM0), Local0)
Return (Local0)
}

Method (_PS0, 0, NotSerialized)
{
Store (0x00, _PSC)
}

Method (_PS3, 0, NotSerialized)
{
Store (0x03, _PSC)
}

Name (_PSC, 0x00)
}
}
}

Device (USB1)
{
Name (_ADR, 0x00020000)
Name (_S3D, 0x02)
}

Device (USB2)
{
Name (_ADR, 0x000F0000)
Name (_S3D, 0x02)
Method (_STA, 0, NotSerialized)
{
If (\_SB.PCI0.ISA.USB2)
{
Return (0x0F)
}
Else
{
Return (0x00)
}
}
}

Device (MDEM)
{
Name (_ADR, 0x00080000)
Name (_PRW, Package (0x02)
{
0x09,
0x04
})
}

Device (AUDI)
{
Name (_ADR, 0x00060000)
}

Device (LAN)
{
Name (_ADR, 0x00120000)
Name (_PRW, Package (0x02)
{
0x09,
0x05
})
Method (_PSW, 1, NotSerialized)
{
If (\_SB.ECOK ())
{
Acquire (\_SB.PCI0.ISA.EC0.MUT1, 0xFFFF)
If (Arg0)
{
Store (0x01, \_SB.PCI0.ISA.EC0.WOLE)
}
Else
{
Store (0x00, \_SB.PCI0.ISA.EC0.WOLE)
}

Release (\_SB.PCI0.ISA.EC0.MUT1)
}
}
}

Device (IEEE)
{
Name (_ADR, 0x000C0000)
}

Device (CBUS)
{
Name (_ADR, 0x000A0000)
}

Device (MINI)
{
Name (_ADR, 0x00090000)
}

Device (ISA)
{
Name (_ADR, 0x00070000)
OperationRegion (ISAR, PCI_Config, 0x00, 0x9F)
Field (ISAR, ByteAcc, NoLock, Preserve)
{
Offset (0x77),
, 6,
MDNE, 1,
Offset (0x7E),
, 7,
USB2, 1
}

Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x8004, // Range Minimum
0x8004, // Range Maximum
0x01, // Alignment
0x02, // Length
)
})
OperationRegion (MNVS, SystemMemory, 0x1DEFFE1D, 0x10)
Field (MNVS, AnyAcc, Lock, Preserve)
{
TOOS, 8,
LIDS, 8,
ACST, 8,
TV, 1,
FIR, 1,
COMM, 1,
LPT, 1
}

OperationRegion (SMI0, SystemIO, 0x0000FE00, 0x00000002)
Field (SMI0, AnyAcc, NoLock, Preserve)
{
SMIC, 8
}

OperationRegion (SMI1, SystemMemory, 0x1DEFFE2D, 0x00000120)
Field (SMI1, AnyAcc, NoLock, Preserve)
{
BCMD, 8,
DID, 32,
INFO, 2048
}

Field (SMI1, AnyAcc, NoLock, Preserve)
{
AccessAs (ByteAcc, 0x00),
Offset (0x05),
INF, 8
}

Field (SMI1, AnyAcc, NoLock, Preserve)
{
AccessAs (ByteAcc, 0x00),
Offset (0x05),
STSB, 8
}

Field (SMI1, AnyAcc, NoLock, Preserve)
{
Offset (0x05),
PNLR, 32
}

Field (SMI1, AnyAcc, NoLock, Preserve)
{
Offset (0x105),
BDST, 8
}

Field (SMI1, AnyAcc, NoLock, Preserve)
{
Offset (0x106),
DKSN, 32
}

Field (SMI1, AnyAcc, NoLock, Preserve)
{
Offset (0x10A),
DKTP, 8
}

Field (SMI1, AnyAcc, NoLock, Preserve)
{
Offset (0x10B),
VGAB, 32
}

Field (SMI1, AnyAcc, NoLock, Preserve)
{
Offset (0x10F),
WOLE, 1,
DISB, 1,
CPTY, 1,
FDDS, 1
}

Mutex (PSMX, 0x00)
Method (HPSS, 2, NotSerialized)
{
Acquire (\_SB.PCI0.ISA.PSMX, 0xFFFF)
Store (Arg1, STSB)
Store (0x80, BCMD)
Store (Arg0, DID)
Store (Zero, SMIC)
Store (STSB, Local0)
Release (\_SB.PCI0.ISA.PSMX)
Return (Local0)
}

Method (QCSS, 1, NotSerialized)
{
Acquire (\_SB.PCI0.ISA.PSMX, 0xFFFF)
Store (0x90, BCMD)
Store (Arg0, DID)
Store (Zero, SMIC)
Release (\_SB.PCI0.ISA.PSMX)
}

OperationRegion (PUSB, PCI_Config, 0x74, 0x01)
Field (PUSB, ByteAcc, NoLock, Preserve)
{
PIRU, 4,
Offset (0x01)
}

OperationRegion (PIRX, PCI_Config, 0x48, 0x04)
Field (PIRX, ByteAcc, NoLock, Preserve)
{
PIRA, 4,
PIRB, 4,
PIRC, 4,
PIRD, 4,
PIRE, 4,
PIRF, 4,
PIRG, 4,
PIRH, 4
}

Name (IPRS, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,6,10}
})
Name (Z000, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{5,7}
})
Name (Z001, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{7,11}
})
Name (IXLT, Package (0x10)
{
0x00,
0x0200,
0x08,
0x0400,
0x10,
0x20,
0x80,
0x40,
0x02,
0x0800,
0x00,
0x1000,
0x00,
0x4000,
0x00,
0x8000
})
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, IRA0)
Store (PIRA, Local1)
Store (DerefOf (Index (IXLT, Local1)), IRA0)
Return (Local0)
}

Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, IRA0)
Store (Match (IXLT, MEQ, IRA0, MGT, 0x00, 0x00), 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 (Z001)
}

Method (_DIS, 0, NotSerialized)
{
Store (0x00, PIRB)
}

Method (_CRS, 0, NotSerialized)
{
Store (Z001, Local0)
CreateWordField (Local0, 0x01, IRA0)
Store (PIRB, Local1)
Store (DerefOf (Index (IXLT, Local1)), IRA0)
Return (Local0)
}

Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, IRA0)
Store (Match (IXLT, MEQ, IRA0, MGT, 0x00, 0x00), 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, IRA0)
Store (PIRC, Local1)
Store (DerefOf (Index (IXLT, Local1)), IRA0)
Return (Local0)
}

Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, IRA0)
Store (Match (IXLT, MEQ, IRA0, MGT, 0x00, 0x00), 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, IRA0)
Store (PIRD, Local1)
Store (DerefOf (Index (IXLT, Local1)), IRA0)
Return (Local0)
}

Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, IRA0)
Store (Match (IXLT, MEQ, IRA0, MGT, 0x00, 0x00), PIRD)
}
}

Device (LNKE)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x05)
Method (_STA, 0, NotSerialized)
{
If (PIRE)
{
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, IRA0)
Store (PIRE, Local1)
Store (DerefOf (Index (IXLT, Local1)), IRA0)
Return (Local0)
}

Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, IRA0)
Store (Match (IXLT, MEQ, IRA0, MGT, 0x00, 0x00), 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 (Z001)
}

Method (_DIS, 0, NotSerialized)
{
Store (0x00, PIRF)
}

Method (_CRS, 0, NotSerialized)
{
Store (Z001, Local0)
CreateWordField (Local0, 0x01, IRA0)
Store (PIRF, Local1)
Store (DerefOf (Index (IXLT, Local1)), IRA0)
Return (Local0)
}

Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, IRA0)
Store (Match (IXLT, MEQ, IRA0, MGT, 0x00, 0x00), 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, IRA0)
Store (PIRG, Local1)
Store (DerefOf (Index (IXLT, Local1)), IRA0)
Return (Local0)
}

Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, IRA0)
Store (Match (IXLT, MEQ, IRA0, MGT, 0x00, 0x00), 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 (Z000)
}

Method (_DIS, 0, NotSerialized)
{
Store (0x00, PIRH)
}

Method (_CRS, 0, NotSerialized)
{
Store (Z000, Local0)
CreateWordField (Local0, 0x01, IRA0)
Store (PIRH, Local1)
Store (DerefOf (Index (IXLT, Local1)), IRA0)
Return (Local0)
}

Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, IRA0)
Store (Match (IXLT, MEQ, IRA0, MGT, 0x00, 0x00), PIRH)
}
}

Device (LNKU)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x09)
Method (_STA, 0, NotSerialized)
{
If (PIRU)
{
Return (0x0B)
}
Else
{
Return (0x09)
}
}

Method (_PRS, 0, NotSerialized)
{
Return (IPRS)
}

Method (_DIS, 0, NotSerialized)
{
Store (0x00, PIRU)
}

Method (_CRS, 0, NotSerialized)
{
Store (IPRS, Local0)
CreateWordField (Local0, 0x01, IRA0)
Store (PIRU, Local1)
Store (DerefOf (Index (IXLT, Local1)), IRA0)
Return (Local0)
}

Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, IRA0)
Store (Match (IXLT, MEQ, IRA0, MGT, 0x00, 0x00), PIRU)
}
}

Device (DMAC)
{
Name (_HID, EisaId ("PNP0200"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x01, // Alignment
0x10, // Length
)
IO (Decode16,
0x0081, // Range Minimum
0x0081, // Range Maximum
0x01, // Alignment
0x0F, // Length
)
IO (Decode16,
0x00C0, // Range Minimum
0x00C0, // Range Maximum
0x01, // Alignment
0x20, // Length
)
DMA (Compatibility, NotBusMaster, Transfer8_16, )
{4}
})
}

Device (PIC)
{
Name (_HID, EisaId ("PNP0000"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0020, // Range Minimum
0x0020, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x00A0, // Range Minimum
0x00A0, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IRQ (Edge, ActiveHigh, Exclusive, )
{2}
})
}

Device (TIME)
{
Name (_HID, EisaId ("PNP0100"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0040, // Range Minimum
0x0040, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IRQ (Edge, ActiveHigh, Exclusive, )
{0}
})
}

Device (RTC)
{
Name (_HID, EisaId ("PNP0B00"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IRQ (Edge, ActiveHigh, Exclusive, )
{8}
})
}

Device (MATH)
{
Name (_HID, EisaId ("PNP0C04"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x00F0, // Range Minimum
0x00F0, // Range Maximum
0x01, // Alignment
0x0F, // Length
)
IRQ (Edge, ActiveHigh, Exclusive, )
{13}
})
}

Device (SPKR)
{
Name (_HID, EisaId ("PNP0800"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0061, // Range Minimum
0x0061, // Range Maximum
0x01, // Alignment
0x01, // Length
)
})
}

Device (KBC0)
{
Name (_HID, EisaId ("PNP0303"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0060, // Range Minimum
0x0060, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0064, // Range Minimum
0x0064, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IRQ (Edge, ActiveHigh, Exclusive, )
{1}
})
Name (KBS3, 0x00)
Name (_PSC, 0x00)
Name (PS2D, 0x044C)
}

Device (MSE0)
{
Name (_HID, "*SYN0104")
Name (_CID, Package (0x03)
{
0x00012E4F,
0x02002E4F,
0x130FD041
})
Name (_CRS, ResourceTemplate ()
{
IRQ (Edge, ActiveHigh, Exclusive, )
{12}
})
}

Device (SYSR)
{
Name (_HID, EisaId ("PNP0C02"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0080, // Range Minimum
0x0080, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x00B0, // Range Minimum
0x00B0, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IO (Decode16,
0x0092, // Range Minimum
0x0092, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x040B, // Range Minimum
0x040B, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0480, // Range Minimum
0x0480, // Range Maximum
0x01, // Alignment
0x10, // Length
)
IO (Decode16,
0x04D0, // Range Minimum
0x04D0, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x04D6, // Range Minimum
0x04D6, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x8000, // Range Minimum
0x8000, // Range Maximum
0x01, // Alignment
0x80, // Length
)
IO (Decode16,
0xFF00, // Range Minimum
0xFF00, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x8004, // Range Minimum
0x8004, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0xFE00, // Range Minimum
0xFE00, // Range Maximum
0x01, // Alignment
0xFF, // Length
)
Memory32Fixed (ReadWrite,
0xD0400000, // Address Base
0x00001000, // Address Length
)
})
}

Device (MEM)
{
Name (_HID, EisaId ("PNP0C01"))
Name (MSRC, ResourceTemplate ()
{
Memory32Fixed (ReadOnly,
0x000DC000, // Address Base
0x00004000, // Address Length
)
Memory32Fixed (ReadOnly,
0x000EC000, // Address Base
0x00014000, // Address Length
)
Memory32Fixed (ReadOnly,
0xFFF80000, // Address Base
0x00080000, // Address Length
)
})
Method (_STA, 0, NotSerialized)
{
Return (0x0F)
}
}

Device (SIOD)
{
Name (_HID, EisaId ("PNP0A05"))
OperationRegion (SIIO, SystemIO, 0x03F0, 0x02)
Field (SIIO, ByteAcc, NoLock, Preserve)
{
INDX, 8,
DATA, 8
}

IndexField (INDX, DATA, ByteAcc, Lock, Preserve)
{
Offset (0x22),
CR22, 8,
Offset (0x30),
CR30, 8,
Offset (0x60),
CR60, 8,
CR61, 8,
Offset (0x70),
CR70, 8,
Offset (0x74),
CR74, 8,
Offset (0xF0),
CRF0, 8,
CRF1, 8,
CRF2, 8,
Offset (0xF4),
CRF4, 8,
CRF5, 8
}

Mutex (MTIO, 0x00)
Method (ENFG, 1, NotSerialized)
{
Acquire (MTIO, 0xFFFF)
Store (0x51, INDX)
Store (0x23, INDX)
Store (0x07, INDX)
Store (Arg0, DATA)
Store (0x22, INDX)
ShiftLeft (0x01, Arg0, Local0)
Return (And (DATA, Local0))
}

Method (EXFG, 0, NotSerialized)
{
Store (0xBB, INDX)
Release (MTIO)
}

Method (STAX, 1, NotSerialized)
{
Store (^ENFG (Arg0), Local0)
^EXFG ()
If (Local0)
{
Return (0x00)
}
Else
{
If (And (CR30, 0x01))
{
Return (0x0F)
}
Else
{
Return (0x0D)
}
}
}

Method (DISX, 1, NotSerialized)
{
^ENFG (Arg0)
And (CR30, 0xFE, CR30)
^EXFG ()
}

Method (PSCX, 1, NotSerialized)
{
Store (LAnd (^ENFG (Arg0), And (CR30, 0x01)), Local0)
^EXFG ()
If (Local0)
{
Return (0x00)
}
Else
{
Return (0x03)
}
}

Method (PS0X, 1, NotSerialized)
{
Store (^ENFG (Arg0), Local0)
And (CR22, Not (Local0), CR22)
Or (CR30, 0x01, CR30)
^EXFG ()
}

Method (PS3X, 1, NotSerialized)
{
Store (^ENFG (Arg0), Local0)
And (CR30, 0xFE, CR30)
Or (CR22, Local0, CR22)
^EXFG ()
}

Name (RSRA, ResourceTemplate ()
{
IO (Decode16,
0x03F8, // Range Minimum
0x03F8, // Range Maximum
0x01, // Alignment
0x08, // Length
_Y02)
IRQNoFlags (_Y03)
{4}
})
Method (CRSA, 1, NotSerialized)
{
CreateWordField (RSRA, \_SB.PCI0.ISA.SIOD._Y02._MIN, IOAL)
CreateWordField (RSRA, \_SB.PCI0.ISA.SIOD._Y02._MAX, IOAH)
CreateByteField (RSRA, \_SB.PCI0.ISA.SIOD._Y02._LEN, LENA)
CreateWordField (RSRA, \_SB.PCI0.ISA.SIOD._Y03._INT, INTX)
^ENFG (Arg0)
Store (Add (ShiftLeft (CR60, 0x08), CR61), Local0)
Store (Local0, IOAL)
Store (Local0, IOAH)
If (And (Local0, 0x04))
{
Store (0x04, Local1)
}
Else
{
Store (0x08, Local1)
}

Store (Local1, LENA)
Store (ShiftLeft (0x01, CR70), INTX)
^EXFG ()
Return (RSRA)
}

Method (SRSA, 2, NotSerialized)
{
Store (Arg0, RSRA)
CreateWordField (RSRA, \_SB.PCI0.ISA.SIOD._Y02._MIN, IOAL)
CreateWordField (RSRA, \_SB.PCI0.ISA.SIOD._Y03._INT, INTX)
^ENFG (Arg1)
And (IOAL, 0xFF, CR61)
ShiftRight (IOAL, 0x08, CR60)
FindSetRightBit (INTX, Local0)
If (Local0)
{
Decrement (Local0)
}

Store (Local0, CR70)
^EXFG ()
}

Name (RSRB, ResourceTemplate ()
{
IO (Decode16,
0x02F8, // Range Minimum
0x02F8, // Range Maximum
0x01, // Alignment
0x08, // Length
_Y04)
IRQNoFlags (_Y05)
{4}
DMA (Compatibility, NotBusMaster, Transfer8, _Y06)
{2}
})
Method (CRSB, 1, NotSerialized)
{
CreateWordField (RSRB, \_SB.PCI0.ISA.SIOD._Y04._MIN, IOBL)
CreateWordField (RSRB, \_SB.PCI0.ISA.SIOD._Y04._MAX, IOBH)
CreateByteField (RSRB, \_SB.PCI0.ISA.SIOD._Y04._LEN, LENB)
CreateWordField (RSRB, \_SB.PCI0.ISA.SIOD._Y05._INT, INTY)
CreateByteField (RSRB, \_SB.PCI0.ISA.SIOD._Y06._DMA, DMAY)
^ENFG (Arg0)
Store (Add (ShiftLeft (CR60, 0x08), CR61), Local0)
Store (Local0, IOBL)
Store (Local0, IOBH)
If (And (Local0, 0x04))
{
Store (0x04, Local1)
}
Else
{
Store (0x08, Local1)
}

Store (Local1, LENB)
Store (ShiftLeft (0x01, CR70), INTY)
Store (ShiftLeft (0x01, CR74), DMAY)
^EXFG ()
Return (RSRB)
}

Method (SRSB, 2, NotSerialized)
{
Store (Arg0, RSRB)
CreateWordField (RSRB, \_SB.PCI0.ISA.SIOD._Y04._MIN, IOBL)
CreateWordField (RSRB, \_SB.PCI0.ISA.SIOD._Y05._INT, INTY)
CreateByteField (RSRB, \_SB.PCI0.ISA.SIOD._Y06._DMA, DMAY)
^ENFG (Arg1)
And (IOBL, 0xFF, CR61)
ShiftRight (IOBL, 0x08, CR60)
FindSetRightBit (INTY, Local0)
If (Local0)
{
Decrement (Local0)
}

Store (Local0, CR70)
FindSetRightBit (DMAY, Local0)
If (Local0)
{
Decrement (Local0)
}

Store (Local0, CR74)
^EXFG ()
}

Name (RSRC, ResourceTemplate ()
{
IO (Decode16,
0x03F0, // Range Minimum
0x03F0, // Range Maximum
0x01, // Alignment
0x06, // Length
_Y07)
IO (Decode16,
0x03F7, // Range Minimum
0x03F7, // Range Maximum
0x01, // Alignment
0x01, // Length
_Y08)
IRQNoFlags (_Y09)
{6}
DMA (Compatibility, NotBusMaster, Transfer8, _Y0A)
{2}
})
Method (CRSC, 1, NotSerialized)
{
CreateWordField (RSRC, \_SB.PCI0.ISA.SIOD._Y07._MIN, IO1L)
CreateWordField (RSRC, \_SB.PCI0.ISA.SIOD._Y07._MAX, IO1H)
CreateByteField (RSRC, \_SB.PCI0.ISA.SIOD._Y07._LEN, LEN1)
CreateWordField (RSRC, \_SB.PCI0.ISA.SIOD._Y08._MIN, IO2L)
CreateWordField (RSRC, \_SB.PCI0.ISA.SIOD._Y08._MAX, IO2H)
CreateByteField (RSRC, \_SB.PCI0.ISA.SIOD._Y08._LEN, LEN2)
CreateWordField (RSRC, \_SB.PCI0.ISA.SIOD._Y09._INT, IRQX)
CreateByteField (RSRC, \_SB.PCI0.ISA.SIOD._Y0A._DMA, DMAX)
^ENFG (Arg0)
Store (Add (ShiftLeft (CR60, 0x08), CR61), Local0)
Store (Local0, IO1L)
Store (Local0, IO1H)
Store (0x0400, Local1)
If (And (Local0, 0x04))
{
Store (0x04, Local2)
}
Else
{
If (And (Local0, 0x08))
{
Store (0x08, Local2)
}
Else
{
Store (0x06, Local2)
Store (0x07, Local1)
}
}

Add (Local0, Local1, Local1)
Store (Local1, IO2L)
Store (Local1, IO2H)
Store (Local2, LEN1)
If (LEqual (Local1, 0x03F7))
{
Store (0x01, LEN2)
}
Else
{
Store (Local2, LEN2)
}

Store (ShiftLeft (0x01, CR70), IRQX)
Store (ShiftLeft (0x01, CR74), DMAX)
^EXFG ()
Return (RSRC)
}

Method (SRSC, 2, NotSerialized)
{
Store (Arg0, RSRC)
CreateWordField (RSRC, \_SB.PCI0.ISA.SIOD._Y07._MIN, IO1L)
CreateWordField (RSRC, \_SB.PCI0.ISA.SIOD._Y09._INT, IRQX)
CreateByteField (RSRC, \_SB.PCI0.ISA.SIOD._Y0A._DMA, DMAX)
^ENFG (Arg1)
And (IO1L, 0xFF, CR61)
ShiftRight (IO1L, 0x08, CR60)
FindSetRightBit (IRQX, Local0)
If (Local0)
{
Decrement (Local0)
}

Store (Local0, CR70)
FindSetRightBit (DMAX, Local0)
If (Local0)
{
Decrement (Local0)
}

Store (Local0, CR74)
^EXFG ()
}

Device (FDC)
{
Name (_HID, EisaId ("PNP0700"))
Method (_STA, 0, NotSerialized)
{
Return (^^STAX (0x00))
}

Method (_DIS, 0, NotSerialized)
{
^^DISX (0x00)
}

Method (_PSC, 0, NotSerialized)
{
Return (^^PSCX (0x00))
}

Method (_PS0, 0, NotSerialized)
{
^^PS0X (0x00)
}

Method (_PS3, 0, NotSerialized)
{
^^PS3X (0x00)
}

Method (_CRS, 0, NotSerialized)
{
Return (^^CRSC (0x00))
}

Method (_SRS, 1, NotSerialized)
{
^^SRSC (Arg0, 0x00)
}

Name (_PRS, ResourceTemplate ()
{
IO (Decode16,
0x03F0, // Range Minimum
0x03F0, // Range Maximum
0x01, // Alignment
0x06, // Length
)
IO (Decode16,
0x03F7, // Range Minimum
0x03F7, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IRQNoFlags ()
{6}
DMA (Compatibility, NotBusMaster, Transfer8, )
{2}
})
}

Device (LPT)
{
Name (TYPE, 0x00)
Method (IECP, 0, NotSerialized)
{
ENFG (0x03)
And (CRF0, 0x07, ^TYPE)
EXFG ()
Return (And (^TYPE, 0x02))
}

Method (_HID, 0, NotSerialized)
{
If (IECP ())
{
Return (0x0104D041)
}
Else
{
Return (0x0004D041)
}
}

Method (_STA, 0, NotSerialized)
{
Return (^^STAX (0x03))
}

Method (_DIS, 0, NotSerialized)
{
^^DISX (0x03)
}

Method (_PSC, 0, NotSerialized)
{
Return (^^PSCX (0x03))
}

Method (_PS0, 0, NotSerialized)
{
^^PS0X (0x03)
}

Method (_PS3, 0, NotSerialized)
{
^^PS3X (0x03)
}

Method (_CRS, 0, NotSerialized)
{
If (IECP ())
{
Return (^^CRSC (0x03))
}
Else
{
Return (^^CRSA (0x03))
}
}

Method (_SRS, 1, NotSerialized)
{
If (IECP ())
{
^^SRSC (Arg0, 0x03)
}
Else
{
^^SRSA (Arg0, 0x03)
}
}

Name (PRSA, ResourceTemplate ()
{
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x0378, // Range Minimum
0x0378, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{7}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x0378, // Range Minimum
0x0378, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{5}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x0278, // Range Minimum
0x0278, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{7}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x0278, // Range Minimum
0x0278, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{5}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x03BC, // Range Minimum
0x03BC, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IRQNoFlags ()
{7}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x03BC, // Range Minimum
0x03BC, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IRQNoFlags ()
{5}
}
EndDependentFn ()
})
Name (PRSB, ResourceTemplate ()
{
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x0378, // Range Minimum
0x0378, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{7}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x0378, // Range Minimum
0x0378, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{5}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x0278, // Range Minimum
0x0278, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{7}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x0278, // Range Minimum
0x0278, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{5}
}
EndDependentFn ()
})
Name (PRSC, ResourceTemplate ()
{
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x0378, // Range Minimum
0x0378, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IO (Decode16,
0x0778, // Range Minimum
0x0778, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{5}
DMA (Compatibility, NotBusMaster, Transfer8, )
{0}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x0278, // Range Minimum
0x0278, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IO (Decode16,
0x0678, // Range Minimum
0x0678, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{5}
DMA (Compatibility, NotBusMaster, Transfer8, )
{0}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x03BC, // Range Minimum
0x03BC, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IO (Decode16,
0x07BC, // Range Minimum
0x07BC, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IRQNoFlags ()
{5}
DMA (Compatibility, NotBusMaster, Transfer8, )
{0}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x0378, // Range Minimum
0x0378, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IO (Decode16,
0x0778, // Range Minimum
0x0778, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{7}
DMA (Compatibility, NotBusMaster, Transfer8, )
{0}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x0278, // Range Minimum
0x0278, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IO (Decode16,
0x0678, // Range Minimum
0x0678, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{7}
DMA (Compatibility, NotBusMaster, Transfer8, )
{0}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x03BC, // Range Minimum
0x03BC, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IO (Decode16,
0x07BC, // Range Minimum
0x07BC, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IRQNoFlags ()
{7}
DMA (Compatibility, NotBusMaster, Transfer8, )
{0}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x0378, // Range Minimum
0x0378, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IO (Decode16,
0x0778, // Range Minimum
0x0778, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{5}
DMA (Compatibility, NotBusMaster, Transfer8, )
{1}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x0278, // Range Minimum
0x0278, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IO (Decode16,
0x0678, // Range Minimum
0x0678, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{5}
DMA (Compatibility, NotBusMaster, Transfer8, )
{1}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x03BC, // Range Minimum
0x03BC, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IO (Decode16,
0x07BC, // Range Minimum
0x07BC, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IRQNoFlags ()
{5}
DMA (Compatibility, NotBusMaster, Transfer8, )
{1}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x0378, // Range Minimum
0x0378, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IO (Decode16,
0x0778, // Range Minimum
0x0778, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{7}
DMA (Compatibility, NotBusMaster, Transfer8, )
{1}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x0278, // Range Minimum
0x0278, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IO (Decode16,
0x0678, // Range Minimum
0x0678, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{7}
DMA (Compatibility, NotBusMaster, Transfer8, )
{1}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x03BC, // Range Minimum
0x03BC, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IO (Decode16,
0x07BC, // Range Minimum
0x07BC, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IRQNoFlags ()
{7}
DMA (Compatibility, NotBusMaster, Transfer8, )
{1}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x0378, // Range Minimum
0x0378, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IO (Decode16,
0x0778, // Range Minimum
0x0778, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{5}
DMA (Compatibility, NotBusMaster, Transfer8, )
{3}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x0278, // Range Minimum
0x0278, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IO (Decode16,
0x0678, // Range Minimum
0x0678, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{5}
DMA (Compatibility, NotBusMaster, Transfer8, )
{3}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x03BC, // Range Minimum
0x03BC, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IO (Decode16,
0x07BC, // Range Minimum
0x07BC, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IRQNoFlags ()
{5}
DMA (Compatibility, NotBusMaster, Transfer8, )
{3}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x0378, // Range Minimum
0x0378, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IO (Decode16,
0x0778, // Range Minimum
0x0778, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{7}
DMA (Compatibility, NotBusMaster, Transfer8, )
{3}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x0278, // Range Minimum
0x0278, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IO (Decode16,
0x0678, // Range Minimum
0x0678, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{7}
DMA (Compatibility, NotBusMaster, Transfer8, )
{3}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x03BC, // Range Minimum
0x03BC, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IO (Decode16,
0x07BC, // Range Minimum
0x07BC, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IRQNoFlags ()
{7}
DMA (Compatibility, NotBusMaster, Transfer8, )
{3}
}
EndDependentFn ()
})
Method (_PRS, 0, NotSerialized)
{
If (IECP ())
{
Return (^PRSC)
}
Else
{
If (LEqual (0x01, ^TYPE))
{
Return (^PRSB)
}
Else
{
Return (^PRSA)
}
}
}
}

Name (CPRS, ResourceTemplate ()
{
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x03F8, // Range Minimum
0x03F8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{4}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x02F8, // Range Minimum
0x02F8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x03E8, // Range Minimum
0x03E8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{4}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x02E8, // Range Minimum
0x02E8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x03F8, // Range Minimum
0x03F8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x02F8, // Range Minimum
0x02F8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{4}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x03E8, // Range Minimum
0x03E8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x02E8, // Range Minimum
0x02E8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{4}
}
EndDependentFn ()
})
Device (COMA)
{
Name (_HID, EisaId ("PNP0501"))
Method (_STA, 0, NotSerialized)
{
Return (^^STAX (0x04))
}

Method (_DIS, 0, NotSerialized)
{
^^DISX (0x04)
}

Method (_PSC, 0, NotSerialized)
{
Return (^^PSCX (0x04))
}

Method (_PS0, 0, NotSerialized)
{
^^PS0X (0x04)
}

Method (_PS3, 0, NotSerialized)
{
^^PS3X (0x04)
}

Method (_CRS, 0, NotSerialized)
{
Return (^^CRSA (0x04))
}

Method (_SRS, 1, NotSerialized)
{
^^SRSA (Arg0, 0x04)
}

Method (_PRS, 0, NotSerialized)
{
Return (CPRS)
}
}

Method (IFIR, 0, NotSerialized)
{
ENFG (0x05)
And (CR30, 0x80, Local0)
EXFG ()
Return (Local0)
}

Device (IRDA)
{
Name (_HID, EisaId ("PNP0510"))
Method (_STA, 0, NotSerialized)
{
If (^^IFIR ())
{
Return (0x00)
}
Else
{
Return (^^STAX (0x05))
}
}

Method (_DIS, 0, NotSerialized)
{
^^DISX (0x05)
}

Method (_PSC, 0, NotSerialized)
{
Return (^^PSCX (0x05))
}

Method (_PS0, 0, NotSerialized)
{
^^PS0X (0x05)
}

Method (_PS3, 0, NotSerialized)
{
^^PS3X (0x05)
}

Method (_CRS, 0, NotSerialized)
{
Return (^^CRSA (0x05))
}

Method (_SRS, 1, NotSerialized)
{
^^SRSA (Arg0, 0x05)
}

Method (_PRS, 0, NotSerialized)
{
Return (CPRS)
}
}

Device (FIR)
{
Name (_HID, EisaId ("ALI5123"))
Name (_CID, 0x1005D041)
Method (_STA, 0, NotSerialized)
{
If (^^IFIR ())
{
Return (^^STAX (0x05))
}
Else
{
Return (0x00)
}
}

Method (_DIS, 0, NotSerialized)
{
^^DISX (0x05)
}

Method (_PSC, 0, NotSerialized)
{
Return (^^PSCX (0x05))
}

Method (_PS0, 0, NotSerialized)
{
^^PS0X (0x05)
}

Method (_PS3, 0, NotSerialized)
{
^^PS3X (0x05)
}

Method (_CRS, 0, NotSerialized)
{
Return (^^CRSB (0x05))
}

Method (_SRS, 1, NotSerialized)
{
^^SRSB (Arg0, 0x05)
}

Name (_PRS, ResourceTemplate ()
{
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x03F8, // Range Minimum
0x03F8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{4}
DMA (Compatibility, NotBusMaster, Transfer8, )
{0}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x02F8, // Range Minimum
0x02F8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3}
DMA (Compatibility, NotBusMaster, Transfer8, )
{0}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x03E8, // Range Minimum
0x03E8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{4}
DMA (Compatibility, NotBusMaster, Transfer8, )
{0}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x02E8, // Range Minimum
0x02E8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3}
DMA (Compatibility, NotBusMaster, Transfer8, )
{0}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x03F8, // Range Minimum
0x03F8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3}
DMA (Compatibility, NotBusMaster, Transfer8, )
{0}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x02F8, // Range Minimum
0x02F8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{4}
DMA (Compatibility, NotBusMaster, Transfer8, )
{0}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x03E8, // Range Minimum
0x03E8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3}
DMA (Compatibility, NotBusMaster, Transfer8, )
{0}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x02E8, // Range Minimum
0x02E8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{4}
DMA (Compatibility, NotBusMaster, Transfer8, )
{0}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x03F8, // Range Minimum
0x03F8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{4}
DMA (Compatibility, NotBusMaster, Transfer8, )
{1}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x02F8, // Range Minimum
0x02F8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3}
DMA (Compatibility, NotBusMaster, Transfer8, )
{1}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x03E8, // Range Minimum
0x03E8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{4}
DMA (Compatibility, NotBusMaster, Transfer8, )
{1}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x02E8, // Range Minimum
0x02E8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3}
DMA (Compatibility, NotBusMaster, Transfer8, )
{1}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x03F8, // Range Minimum
0x03F8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3}
DMA (Compatibility, NotBusMaster, Transfer8, )
{1}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x02F8, // Range Minimum
0x02F8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{4}
DMA (Compatibility, NotBusMaster, Transfer8, )
{1}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x03E8, // Range Minimum
0x03E8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3}
DMA (Compatibility, NotBusMaster, Transfer8, )
{1}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x02E8, // Range Minimum
0x02E8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{4}
DMA (Compatibility, NotBusMaster, Transfer8, )
{1}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x03F8, // Range Minimum
0x03F8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{4}
DMA (Compatibility, NotBusMaster, Transfer8, )
{3}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x02F8, // Range Minimum
0x02F8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3}
DMA (Compatibility, NotBusMaster, Transfer8, )
{3}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x03E8, // Range Minimum
0x03E8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{4}
DMA (Compatibility, NotBusMaster, Transfer8, )
{3}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x02E8, // Range Minimum
0x02E8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3}
DMA (Compatibility, NotBusMaster, Transfer8, )
{3}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x03F8, // Range Minimum
0x03F8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3}
DMA (Compatibility, NotBusMaster, Transfer8, )
{3}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x02F8, // Range Minimum
0x02F8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{4}
DMA (Compatibility, NotBusMaster, Transfer8, )
{3}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x03E8, // Range Minimum
0x03E8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3}
DMA (Compatibility, NotBusMaster, Transfer8, )
{3}
}
StartDependentFn (0x00, 0x01)
{
IO (Decode16,
0x02E8, // Range Minimum
0x02E8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{4}
DMA (Compatibility, NotBusMaster, Transfer8, )
{3}
}
EndDependentFn ()
})
}
}

Device (EC0)
{
Name (TTAC, 0x00)
Name (TTDC, 0x06)
Name (_HID, EisaId ("PNP0C09"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0062, // Range Minimum
0x0062, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0066, // Range Minimum
0x0066, // Range Maximum
0x01, // Alignment
0x01, // Length
)
})
Name (_GPE, 0x18)
Name (SEL0, 0xF0)
Name (BFLG, 0x00)
Method (_REG, 2, NotSerialized)
{
If (LEqual (Arg0, 0x03))
{
Store (Arg1, ECEN)
Acquire (MUT1, 0xFFFF)
Store (ADP, Local0)
Release (MUT1)
If (Local0)
{
Store (0x00, \_SB.PCI0.PMU.CRUN)
If (LNotEqual (\_SB.PCI0.ISA.EC0.TTAC, 0x00))
{
Store (\_SB.PCI0.ISA.EC0.TTAC, TRDC)
Store (0x01, TREN)
}
Else
{
Store (0x00, TRDC)
Store (0x00, TREN)
}
}
Else
{
Store (0x01, \_SB.PCI0.PMU.CRUN)
If (0x01)
{
Store (\_SB.PCI0.ISA.EC0.TTDC, TRDC)
Store (0x01, TREN)
}
}
}
}

OperationRegion (ERAM, EmbeddedControl, 0x00, 0xFF)
Field (ERAM, ByteAcc, Lock, Preserve)
{
Offset (0x04),
CMCM, 8,
CMD1, 8,
CMD2, 8,
CMD3, 8,
Offset (0x18),
SMPR, 8,
SMST, 8,
SMAD, 8,
SMCM, 8,
SMD0, 256,
BCNT, 8,
SMAA, 8,
S1D0, 8,
S1D1, 8,
SM2A, 8,
S2D0, 8,
S2D1, 8,
SM3A, 8,
LIDS, 1,
DV1S, 1,
EXFD, 1,
RFSW, 1,
, 1,
CRTS, 1,
SLPS, 1,
DCKS, 1,
EJBS, 1,
, 1,
, 1,
, 1,
, 1,
, 1,
DV2S, 1,
DV3S, 1,
WK10, 16,
EVTP, 16,
BTM3, 8,
DCID, 8,
DPWR, 1,
UDR0, 1,
UDR5, 1,
EQBF, 1,
LDDS, 1,
CRST, 1,
DCWT, 1,
QVCC, 1,
HP4D, 8,
WAKP, 16,
POLL, 1,
ADP, 1,
ALRT, 1,
B1WE, 1,
B1WS, 1,
B2WE, 1,
B2WS, 1,
BWAK, 1,
PWRE, 1,
ALLB, 1,
AUXB, 1,
S2DR, 1,
F1B4, 1,
F1B5, 1,
F1B6, 1,
RSMA, 1,
S1LD, 1,
S2LD, 1,
ACWR, 1,
PTSV, 3,
PMEE, 1,
ENCB, 1,
F3B0, 1,
F3B1, 1,
RFLD, 1,
F3B3, 1,
SW8B, 1,
WOLE, 1,
WORE, 1,
S4FG, 1,
TMSS, 2,
OSMD, 1,
F4B3, 1,
BANK, 4,
CTMP, 8,
S2DC, 8,
BPD, 8,
BT1I, 16,
BT1C, 16,
BT1V, 16,
BT1S, 8,
BT2I, 16,
BT2C, 16,
BT2V, 16,
BT2S, 8,
Q8CF, 1,
, 3,
KLED, 1,
Offset (0x67),
TTMP, 8,
HPCB, 8,
R69F, 2,
, 1,
Offset (0x6A),
BTEC, 8,
UBDM, 4,
UBPC, 3,
Offset (0x6C),
BTCS, 8,
BMDL, 8,
CBDM, 4,
CBPC, 3,
Offset (0x6F),
HP6F, 8,
HP70, 8,
TRDV, 8,
RSMT, 16,
PWSL, 8,
PWSM, 8,
, 1,
, 1,
PREF, 1,
UPP1, 1,
UPP2, 1,
, 1,
, 1,
BTOF, 1,
SUSB, 1,
SUSC, 1,
CPWR, 1,
CBTN, 1,
FAN, 1,
, 1,
, 1,
S4IN, 1,
FANL, 16,
QU7A, 8,
QU7B, 8,
QU7C, 8,
QU7D, 8,
QU7E, 8,
QU7F, 8
}

Field (ERAM, ByteAcc, NoLock, Preserve)
{
Offset (0x1C),
SMW0, 16
}

Field (ERAM, ByteAcc, NoLock, Preserve)
{
Offset (0x1C),
SMB0, 8
}

Field (ERAM, ByteAcc, NoLock, Preserve)
{
Offset (0x1C),
FLD0, 64
}

Field (ERAM, ByteAcc, NoLock, Preserve)
{
Offset (0x1C),
FLD1, 128
}

Field (ERAM, ByteAcc, NoLock, Preserve)
{
Offset (0x1C),
FLD2, 192
}

Field (ERAM, ByteAcc, NoLock, Preserve)
{
Offset (0x1C),
FLD3, 256
}

Mutex (CMUT, 0x00)
Method (CMC2, 3, NotSerialized)
{
Acquire (CMUT, 0xFFFF)
Store (Arg2, CMD2)
Store (Arg1, CMD1)
Store (Arg0, CMCM)
While (CMCM) {}
Release (CMUT)
}

Mutex (MUT0, 0x00)
Mutex (MUT1, 0x00)
Method (SMRD, 4, NotSerialized)
{
If (LNot (ECOK ()))
{
Return (0xFF)
}

If (LNotEqual (Arg0, 0x07))
{
If (LNotEqual (Arg0, 0x09))
{
If (LNotEqual (Arg0, 0x0B))
{
Return (0x19)
}
}
}

Acquire (MUT0, 0xFFFF)
Store (0x04, Local0)
While (LGreater (Local0, 0x01))
{
And (SMST, 0x40, SMST)
Store (Arg2, SMCM)
Store (Arg1, SMAD)
Store (Arg0, SMPR)
While (LNot (And (SMST, 0xBF, Local1)))
{
Sleep (0x02)
}

If (LEqual (Local1, 0x80))
{
Store (0x00, Local0)
}
Else
{
Decrement (Local0)
}
}

If (Local0)
{
Store (And (Local1, 0x1F), Local0)
}
Else
{
If (LEqual (Arg0, 0x07))
{
Store (SMB0, Arg3)
}

If (LEqual (Arg0, 0x09))
{
Store (SMW0, Arg3)
}

If (LEqual (Arg0, 0x0B))
{
Store (BCNT, Local3)
ShiftRight (0x0100, 0x03, Local2)
If (LGreater (Local3, Local2))
{
Store (Local2, Local3)
}

If (LLess (Local3, 0x09))
{
Store (FLD0, Local2)
}
Else
{
If (LLess (Local3, 0x11))
{
Store (FLD1, Local2)
}
Else
{
If (LLess (Local3, 0x19))
{
Store (FLD2, Local2)
}
Else
{
Store (FLD3, Local2)
}
}
}

Increment (Local3)
Store (Buffer (Local3) {}, Local4)
Decrement (Local3)
Store (Zero, Local5)
While (LGreater (Local3, Local5))
{
GBFE (Local2, Local5, RefOf (Local6))
PBFE (Local4, Local5, Local6)
Increment (Local5)
}

PBFE (Local4, Local5, 0x00)
Store (Local4, Arg3)
}
}

Release (MUT0)
Return (Local0)
}

Method (SMWR, 4, NotSerialized)
{
If (LNot (ECOK ()))
{
Return (0xFF)
}

If (LNotEqual (Arg0, 0x06))
{
If (LNotEqual (Arg0, 0x08))
{
If (LNotEqual (Arg0, 0x0A))
{
Return (0x19)
}
}
}

Acquire (MUT0, 0xFFFF)
Store (0x04, Local0)
While (LGreater (Local0, 0x01))
{
If (LEqual (Arg0, 0x06))
{
Store (Arg3, SMB0)
}

If (LEqual (Arg0, 0x08))
{
Store (Arg3, SMW0)
}

If (LEqual (Arg0, 0x0A))
{
Store (Arg3, SMD0)
}

And (SMST, 0x40, SMST)
Store (Arg2, SMCM)
Store (Arg1, SMAD)
Store (Arg0, SMPR)
While (LNot (And (SMST, 0xBF, Local1)))
{
Sleep (0x02)
}

If (LEqual (Local1, 0x80))
{
Store (0x00, Local0)
}
Else
{
Decrement (Local0)
}
}

If (Local0)
{
Store (And (Local1, 0x1F), Local0)
}

Release (MUT0)
Return (Local0)
}

Name (ACFL, 0x00)
Method (SMSL, 0, NotSerialized)
{
Store ("CMBatt - SMSL", Debug)
If (LNot (ECOK ()))
{
Return (0xFF)
}

Acquire (\_SB.PCI0.ISA.EC0.MUT1, 0xFFFF)
If (LNot (\_SB.PCI0.ISA.EC0.SMRD (0x09, 0x14, 0x01, RefOf (Local0))))
{
Store (Local0, SEL0)
Store (SEL0, Debug)
If (LEqual (ALRT, 0x01))
{
\_SB.BAT1.IVBI ()
\_SB.BAT1.IVBS ()
Store (0x00, ALRT)
}

Store (\_SB.ACAD.CHAC (SEL0), Local1)
Store (\_SB.BAT1.CHBP (SEL0), Local2)
Or (SEL0, 0x0FFF, Local0)
SMWR (0x08, 0x14, 0x01, Local0)
If (LAnd (Local1, \_SB.ACAD.ACP))
{
Store ("CMBatt - Notify(ACAD,0x80): AC_Inserted", Debug)
Store (0x00, \_SB.PCI0.PMU.CRUN)
If (LNotEqual (\_SB.PCI0.ISA.EC0.TTAC, 0x00))
{
Store (\_SB.PCI0.ISA.EC0.TTAC, TRDC)
Store (0x01, TREN)
}
Else
{
Store (0x00, TRDC)
Store (0x00, TREN)
}

Notify (\_SB.ACAD, 0x80)
Store (0x02, ACFL)
}

If (And (0x04, Local2))
{
\_SB.BAT1.B1CK ()
}

If (And (0x02, Local2))
{
\_SB.BAT1.B1ST ()
}

If (And (0x01, Local2))
{
\_SB.BAT1.B1IF ()
}

If (LAnd (Local1, LNot (\_SB.ACAD.ACP)))
{
Store ("CMBatt - Notify(ACAD, 0x80): AC_Removed", Debug)
Store (0x01, \_SB.PCI0.PMU.CRUN)
If (0x01)
{
Store (\_SB.PCI0.ISA.EC0.TTDC, TRDC)
Store ("AC remove! Set Throttle Duty Cycle ---: ", Debug)
Store (TRDC, Debug)
Store (0x01, TREN)
}

Notify (\_SB.ACAD, 0x80)
Store (0x01, ACFL)
}
}

Store (0x3C, Local4)
If (\_SB.BAT1.REPT)
{
Store (0x02, Local4)
}

If (BFLG)
{
Store (0x01, Local5)
While (LNot (And (BFLG, 0x01)))
{
Increment (Local5)
ShiftRight (BFLG, 0x01, BFLG)
}

ShiftRight (BFLG, 0x01, BFLG)
If (LGreater (Local4, Local5))
{
Store (Local5, Local4)
}
}

Store (Local4, BPD)
BPOL ()
Release (\_SB.PCI0.ISA.EC0.MUT1)
If (ACFL)
{
Decrement (ACFL)
Store (\_SB.PCI0.ISA.HPSS (0x12, ACFL), Local0)
CMC2 (0xC4, Local0, 0x82)
Notify (HPCI, 0x8A)
Store (0x00, ACFL)
Store (0x01, \_SB.ACCG)
Notify (\_TZ.THRM, 0x80)
}
}

Name (PSTA, 0x00)
Method (CPOL, 0, NotSerialized)
{
If (LEqual (PSTA, 0x00))
{
If (ECOK ())
{
BPOL ()
Store (0x01, PSTA)
}
}
}

Method (BPOL, 0, NotSerialized)
{
Store (0x01, POLL)
}

Name (PQ8A, 0x00)
Method (_Q09, 0, NotSerialized)
{
Store ("QUERY_09", Debug)
SMSL ()
If (\_SB.S4WF)
{
Store (0x00, \_SB.S4WF)
\_SB.PCI0.ISA.EC0._Q8D ()
}
}

Method (_Q10, 0, NotSerialized)
{
Notify (\_SB.PCI0.ISA.HPCI, 0x90)
}

Method (_Q11, 0, NotSerialized)
{
If (ACWR)
{
Notify (\_SB.PCI0.ISA.HPCI, 0x91)
}
Else
{
Notify (\_SB.PCI0.ISA.HPCI, 0x93)
}
}

Method (_Q12, 0, NotSerialized)
{
Notify (\_SB.PCI0.ISA.HPCI, 0x92)
}

Method (_Q20, 0, NotSerialized)
{
Store ("QUERY_20", Debug)
If (And (SMST, 0x40))
{
Store (SMAA, Local0)
If (LEqual (Local0, 0x14))
{
And (SMST, 0xBF, SMST)
If (PWRE)
{
Store ("CMBatt - PwrEvent", Debug)
Store (0x00, PWRE)
Store (0x12, BFLG)
Store (0x00, BPD)
BPOL ()
}
}
}
}

Method (_Q03, 0, NotSerialized)
{
If (LEqual (\_SB.PCI0.AGPB.VGA.DISW, 0x00))
{
\_SB.PCI0.AGPB.VGA.DRUL (0x01)
}
Else
{
If (LEqual (\_SB.PCI0.AGPB.VGA.DISW, 0x01))
{
\_SB.PCI0.ISA.HPSS (0x01, 0x00)
}
}
}

Method (_Q04, 0, NotSerialized)
{
Store ("Q04 - Fn+F12 Pressed! --- Hibernation ---", Debug)
Notify (\_SB.PCI0.ISA.HPCI, 0x86)
}

Method (_Q0A, 0, NotSerialized)
{
Store ("Brightness Down: _Q0A", Debug)
Store (\_SB.PCI0.ISA.HPSS (0x08, 0x00), Local0)
CMC2 (0xC4, Local0, 0x82)
Notify (HPCI, 0x8A)
}

Method (_Q0B, 0, NotSerialized)
{
Store ("Brightness Up: _Q0B", Debug)
Store (\_SB.PCI0.ISA.HPSS (0x08, 0x01), Local0)
CMC2 (0xC4, Local0, 0x82)
Notify (HPCI, 0x8A)
}

Method (_Q80, 0, NotSerialized)
{
Store ("THERM: _Q80 - Thermal Change", Debug)
Store ("Notify _TZ.THRM , 0x80", Debug)
Notify (\_TZ.THRM, 0x80)
}

Method (_Q8B, 0, NotSerialized)
{
Notify (\_SB.PCI0.ISA.HPCI, 0x8B)
}

Method (_Q8C, 0, NotSerialized)
{
If (ECOK ())
{
Acquire (\_SB.PCI0.ISA.EC0.MUT1, 0xFFFF)
Store (TRDV, Local0)
Store (\_SB.PCI0.ISA.EC0.ADP, Local1)
Store (0x00, Q8CF)
Release (\_SB.PCI0.ISA.EC0.MUT1)
Store ("_Q8C:Throttle Duty Cycle :", Debug)
Store (Local0, Debug)
Store ("Power Consumption Value :", Debug)
DBGS ("_Q8C::Power Consumption Value ")
Store (Local1, Debug)
If (Local1)
{
Store (Local0, TTAC)
}
Else
{
Store (Local0, TTDC)
}

Store (Local0, TRDC)
If (LNot (Local0))
{
Store (0x00, TREN)
}
Else
{
Store (0x01, TREN)
}

Store (0x00, Q8CF)
Store (0x01, ACCG)
Notify (\_TZ.THRM, 0x80)
}
}

Method (_Q8D, 0, NotSerialized)
{
Store ("_Q8D:Port Replicator Event :", Debug)
Acquire (\_SB.PCI0.ISA.EC0.MUT1, 0xFFFF)
Store (PREF, Local0)
Release (\_SB.PCI0.ISA.EC0.MUT1)
If (Not (LEqual (\_SB.PRCT, Local0)))
{
Store (Local0, \_SB.PRCT)
If (LEqual (\_SB.PRCT, 0x01))
{
Store (">>> Docking Plug In ! <<<", Debug)
}
Else
{
Store (">>> Docking Plug Out ! <<<", Debug)
}
}
}

Method (_Q8E, 0, NotSerialized)
{
SMSL ()
Notify (\_SB.BAT1, 0x80)
}

Method (_Q29, 0, NotSerialized)
{
Store ("QUERY_29", Debug)
If (ECOK ())
{
If (And (PQ8A, 0x01))
{
And (PQ8A, Not (0x01), PQ8A)
Notify (\_SB.PCI0.ISA.HPCI, 0x86)
}
}
}
}

Device (HPCI)
{
Name (_HID, EisaId ("HWPC209"))
Name (Z002, 0x00)
Name (Z003, 0x00)
Method (_STA, 0, NotSerialized)
{
Return (0x0F)
}

Method (STAT, 1, NotSerialized)
{
Store (Arg0, Z002)
}

Method (GKBL, 0, NotSerialized)
{
Return (0x1B)
}

Method (GDCP, 0, NotSerialized)
{
Return (0x0033000F)
}

Method (GDBT, 0, NotSerialized)
{
Return (\_SB.PCI0.ISA.HPSS (0x08, 0x10))
}

Method (SDBT, 1, NotSerialized)
{
If (ECOK ())
{
Store (\_SB.PCI0.ISA.HPSS (0x08, Or (0x20, And (Arg0, 0x0F))),
Local0)
\_SB.PCI0.ISA.EC0.CMC2 (0xC4, Local0, 0x82)
}
}

Method (GADP, 0, NotSerialized)
{
Return (\_SB.PCI0.ISA.HPSS (0x0F, 0x00))
}

Method (SADP, 1, NotSerialized)
{
And (Arg0, 0x01, \_SB.PCI0.AGPB.VGA.LCD._DGS)
ShiftRight (And (Arg0, 0x02), 0x01, \_SB.PCI0.AGPB.VGA.CRT._DGS)
ShiftRight (And (Arg0, 0x04), 0x02, \_SB.PCI0.AGPB.VGA.TV._DGS)
If (LEqual (\_SB.PCI0.AGPB.VGA.DISW, 0x00))
{
\_SB.PCI0.AGPB.VGA.DRUL (0x04)
}
Else
{
If (LEqual (\_SB.PCI0.AGPB.VGA.DISW, 0x01))
{
HPSS (0x01, 0x00)
}
}
}

Method (TGAD, 0, NotSerialized)
{
\_SB.PCI0.ISA.EC0._Q03 ()
}

Method (GFPR, 0, NotSerialized)
{
Acquire (\_SB.PCI0.ISA.PSMX, 0xFFFF)
Store (0x80, \_SB.PCI0.ISA.BCMD)
Store (0x14, \_SB.PCI0.ISA.DID)
Store (Zero, \_SB.PCI0.ISA.SMIC)
Store (\_SB.PCI0.ISA.PNLR, Local0)
Release (\_SB.PCI0.ISA.PSMX)
Return (Local0)
}

Method (GTVR, 0, NotSerialized)
{
Store (\_SB.PCI0.ISA.HPSS (0x10, 0x00), Local1)
If (Local1)
{
Store (0x02580320, Local0)
}
Else
{
Store (0x01E00280, Local0)
}

Return (Local0)
}

Method (SRFL, 1, NotSerialized)
{
If (Arg0)
{
Store (One, \_SB.PCI0.ISA.EC0.RFLD)
}
Else
{
Store (Zero, \_SB.PCI0.ISA.EC0.RFLD)
}
}

Method (GRFI, 0, NotSerialized)
{
Store (\_SB.PCI0.ISA.HPSS (0x17, 0x00), Local0)
If (LEqual (Local0, 0x01))
{
Return (0x01)
}

If (LEqual (Local0, 0x02))
{
Return (0x03)
}

Return (0x00)
}

Method (GSBI, 0, NotSerialized)
{
Store ("USB\\VID_0A12&PID_0001", Local0)
Return (Local0)
}

Method (GSBS, 1, NotSerialized)
{
If (LEqual (Arg0, 0x00))
{
Store (\_SB.PCI0.ISA.HPSS (0x17, 0x00), Local1)
Store (\_SB.PCI0.ISA.EC0.SW8B, Local0)
If (LEqual (Local1, 0x02))
{
If (Local0)
{
Return (0x03)
}
Else
{
Return (0x01)
}
}
}

Return (0x00)
}

Method (SRFP, 2, NotSerialized)
{
If (LEqual (Arg0, 0x00))
{
If (LEqual (Arg1, 0x01))
{
Store (One, \_SB.PCI0.ISA.EC0.SW8B)
}
Else
{
Store (Zero, \_SB.PCI0.ISA.EC0.SW8B)
}
}
}

Name (MDLS, 0x04)
Name (DEVS, Package (0x0C)
{
"01KT",
"BQ2060",
"4x2",
"02KT",
"BQ2060",
"4x2",
"03KT",
"BQ2060",
"8x1",
"04KT",
"BQ2060",
"4x2"
})
Method (GBID, 1, NotSerialized)
{
Store (0x00, Local0)
While (LGreater (MDLS, Local0))
{
Add (ShiftLeft (Local0, 0x01), Local0, Local1)
Store (S2BF (DerefOf (Index (DEVS, Local1))), Local2)
If (BCMP (Arg0, Local2))
{
Return (Local0)
}

Increment (Local0)
}

Return (0xFF)
}

Method (BCMP, 2, NotSerialized)
{
Store (0x00, Local1)
Store (0x04, Local0)
While (LGreater (Local0, Local1))
{
Store (DerefOf (Index (Arg0, Local1)), Local2)
Store (DerefOf (Index (Arg1, Local1)), Local3)
If (LNotEqual (Local2, Local3))
{
Return (Zero)
}

Increment (Local1)
}

Return (Ones)
}

Method (SBDN, 1, NotSerialized)
{
If (LNot (ECOK ()))
{
Store (0xFF, \_SB.PCI0.ISA.EC0.BMDL)
Store (0x06, \_SB.PCI0.ISA.EC0.BTEC)
}
Else
{
Store (Arg0, \_SB.PCI0.ISA.EC0.UBDM)
Store (DerefOf (Index (\_SB.BAT1.PBIF, 0x09)), Local0)
Store (\_SB.PCI0.ISA.HPCI.GBID (Local0), Local1)
Store (Local1, \_SB.PCI0.ISA.EC0.BMDL)
If (LEqual (Local1, 0xFF))
{
Store (0x06, \_SB.PCI0.ISA.EC0.BTEC)
}
}
}

Method (GBDN, 0, NotSerialized)
{
If (LNot (ECOK ()))
{
Return (0xFF)
}

Store (\_SB.PCI0.ISA.EC0.CBDM, Local0)
Store (Local0, Debug)
Return (Local0)
}

Method (GBPN, 0, NotSerialized)
{
If (LNot (ECOK ()))
{
Return (0xFF)
}

Store (And (0x0F, \_SB.PCI0.ISA.EC0.SEL0), Local0)
Store (Local0, Debug)
Return (Local0)
}

Method (SBPC, 1, NotSerialized)
{
If (ECOK ())
{
Store (Arg0, \_SB.PCI0.ISA.EC0.UBPC)
}
}

Method (GBPC, 0, NotSerialized)
{
If (LNot (ECOK ()))
{
Return (0xFF)
}

Store (\_SB.PCI0.ISA.EC0.CBPC, Local0)
Store (Local0, Debug)
Return (Local0)
}

Method (GBEC, 0, NotSerialized)
{
If (LNot (ECOK ()))
{
Return (0xFF)
}

Store (\_SB.PCI0.ISA.EC0.BTEC, Local0)
Store (0x00, \_SB.PCI0.ISA.EC0.BTEC)
Store (Local0, Debug)
Return (Local0)
}

Method (GBCS, 0, NotSerialized)
{
If (LNot (ECOK ()))
{
Return (0xFF)
}

Store (\_SB.PCI0.ISA.EC0.BTCS, Debug)
Return (\_SB.PCI0.ISA.EC0.BTCS)
}

Method (GBSD, 0, NotSerialized)
{
Name (PBSD, Package (0x08)
{
"",
"",
"",
"",
"",
0xFFFF,
0xFFFF,
0xFFFF
})
If (LNot (ECOK ()))
{
Return (PBSD)
}

Store (\_SB.PCI0.ISA.EC0.BMDL, Local0)
If (LGreaterEqual (Local0, MDLS))
{
Return (PBSD)
}

Add (ShiftLeft (Local0, 0x01), Local0, Local0)
Store (\_SB.BAT1.PBIF, Local1)
Store (DerefOf (Index (Local1, 0x0C)), Index (PBSD, 0x00))
Store (DerefOf (Index (DEVS, Add (Local0, 0x01))), Local2)
Store (Local2, Index (PBSD, 0x01))
Store (DerefOf (Index (DEVS, Local0)), Local2)
Store (Local2, Index (PBSD, 0x02))
Store (DerefOf (Index (Local1, 0x0B)), Index (PBSD, 0x03))
Store (DerefOf (Index (DEVS, Add (Local0, 0x02))), Local2)
Store (Local2, Index (PBSD, 0x04))
Store (\_SB.BAT1.BATS, Index (PBSD, 0x05))
Store (DerefOf (Index (Local1, 0x04)), Index (PBSD, 0x06))
Store (DerefOf (Index (Local1, 0x01)), Index (PBSD, 0x07))
Store (PBSD, Debug)
Return (PBSD)
}

Method (GBHD, 0, NotSerialized)
{
Name (DBHD, Package (0x03)
{
0xFFFF,
0xFFFF,
0xFFFF
})
If (LNot (ECOK ()))
{
Return (DBHD)
}

Store (\_SB.BAT1.PBHD, Local0)
Store (Local0, Debug)
Return (Local0)
}

Name (DCNT, 0x00)
Method (GBDD, 0, NotSerialized)
{
Name (PBDD, Package (0x03)
{
0xFFFF,
0xFFFF,
0xFFFF
})
If (LNot (ECOK ()))
{
Return (PBDD)
}

Increment (DCNT)
If (LEqual (DCNT, 0x14))
{
Store (0x00, DCNT)
}

Store (\_SB.BAT1.BATI, Index (PBDD, 0x00))
If (LNot (\_SB.PCI0.ISA.EC0.SMRD (0x09, 0x16, 0x0F, RefOf (Local5))))
{
Store (Local5, Index (PBDD, 0x01))
}
Else
{
Store (\_SB.BAT1.BATC, Index (PBDD, 0x01))
}

Store (\_SB.BAT1.BATV, Index (PBDD, 0x02))
If (LEqual (DCNT, 0x00))
{
Store (0x00, \_SB.BAT1.UBHD)
}

Store (PBDD, Debug)
Return (PBDD)
}

Method (S2BF, 1, Serialized)
{
Add (SizeOf (Arg0), One, Local0)
Name (BUFF, Buffer (Local0) {})
Store (Arg0, BUFF)
Return (BUFF)
}

Name (DDA0, Ones)
Name (DDA1, Ones)
Name (DDA2, Ones)
Name (DDA3, Ones)
Name (DDA4, Ones)
Name (DDA5, Ones)
Name (DDA6, Ones)
Name (DDA7, Ones)
Name (DDA8, Ones)
Name (DDA9, Ones)
}
}

Device (PMU)
{
Name (_ADR, 0x00110000)
OperationRegion (PMUR, PCI_Config, 0x00, 0xFF)
Field (PMUR, DWordAcc, NoLock, Preserve)
{
Offset (0x85),
, 4,
, 1,
LLOW, 1,
LHGH, 1,
Offset (0x88),
, 3,
LIDS, 1,
Offset (0x91),
, 1,
CRTF, 1,
CRTR, 1,
Offset (0x97),
, 1,
TVCC, 1,
FIRC, 1,
COMC, 1,
Offset (0x98),
Z004, 1,
LPTC, 1,
, 2,
CRTI, 1,
Offset (0xB1),
, 3,
CRUN, 1,
Offset (0xB5),
PDID, 1
}
}
}

Device (PWRB)
{
Name (_HID, EisaId ("PNP0C0C"))
}

Device (LID)
{
Name (_HID, EisaId ("PNP0C0D"))
Name (_PRW, Package (0x02)
{
0x03,
0x03
})
Method (_LID, 0, NotSerialized)
{
If (\_SB.ECOK ())
{
If (\_SB.PCI0.PMU.LIDS)
{
Store (0x00, \_SB.PCI0.PMU.LHGH)
Store (0x01, \_SB.PCI0.PMU.LLOW)
Acquire (\_SB.PCI0.ISA.EC0.MUT1, 0xFFFF)
Store (0x00, \_SB.PCI0.ISA.EC0.KLED)
Release (\_SB.PCI0.ISA.EC0.MUT1)
Return (0x01)
}
Else
{
Store (0x00, \_SB.PCI0.PMU.LLOW)
Store (0x01, \_SB.PCI0.PMU.LHGH)
Acquire (\_SB.PCI0.ISA.EC0.MUT1, 0xFFFF)
Store (0x01, \_SB.PCI0.ISA.EC0.KLED)
Release (\_SB.PCI0.ISA.EC0.MUT1)
Return (0x00)
}
}
Else
{
Store (0x00, \_SB.PCI0.PMU.LHGH)
Store (0x01, \_SB.PCI0.PMU.LLOW)
Return (0x01)
}
}
}

Device (ACAD)
{
Name (_HID, "ACPI0003")
Name (_PCL, Package (0x01)
{
\_SB
})
Name (ACP, Ones)
Method (_PSR, 0, NotSerialized)
{
Acquire (\_SB.PCI0.ISA.EC0.MUT1, 0xFFFF)
Store ("CMBatt - _PSR", Debug)
\_SB.PCI0.ISA.EC0.CPOL ()
Store (ACP, Local0)
If (Local0)
{
Store (0x01, Local1)
}
Else
{
Store (0x00, Local1)
}

Release (\_SB.PCI0.ISA.EC0.MUT1)
Store (Local1, \_SB.PCI0.ISA.ACST)
Return (Local1)
}

Method (CHAC, 1, NotSerialized)
{
Store (LGreater (And (Arg0, 0xF0), 0x80), Local0)
If (LNotEqual (Local0, ACP))
{
Store (Local0, ACP)
Return (Ones)
}
Else
{
Return (Zero)
}
}

Method (_STA, 0, NotSerialized)
{
Return (0x0F)
}
}

Scope (\_TZ)
{
Name (TPC, 0x0E94)
Name (TPTM, 0x0CA0)
Name (TBSE, 0x0AAC)
Name (PLCY, 0x00)
Name (TPA0, 0x0DCC)
Name (TPA1, 0x0E08)
Name (TPA2, 0x0E30)
Name (TPA3, 0x0E4E)
Name (TPAC, 0x0E62)
Name (TPAS, 0x0E76)
Name (K3TA, 0x06)
Name (K3TB, 0x03)
Name (TRSG, 0x00)
ThermalZone (THRM)
{
Name (_TSP, 0x28)
Method (_TZP, 0, NotSerialized)
{
If (TREN)
{
Return (0x012C)
}
Else
{
Return (0x00)
}
}

Method (_CRT, 0, NotSerialized)
{
Return (TPC)
}

Name (INBT, 0x00)
Method (_TMP, 0, NotSerialized)
{
If (\_SB.ECOK ())
{
Acquire (\_SB.PCI0.ISA.EC0.MUT1, 0xFFFF)
Store (\_SB.PCI0.ISA.EC0.CTMP, Local0)
Release (\_SB.PCI0.ISA.EC0.MUT1)
Store ("Current Temperature C is ----------- ", Debug)
Store (Local0, Debug)
Store (Local0, Local2)
Multiply (Local0, 0x0A, Local1)
Add (Local1, TBSE, Local0)
CHTL (Local0)
Return (Local0)
}
Else
{
Return (TPTM)
}
}

Method (CHTL, 1, NotSerialized)
{
Store (Arg0, Local0)
If (LLessEqual (Local0, TPA0))
{
If (LGreater (TRSG, 0x00))
{
If (\_SB.ACAD.ACP)
{
If (LNotEqual (\_SB.PCI0.ISA.EC0.TTAC, 0x00))
{
Store (\_SB.PCI0.ISA.EC0.TTAC, TRDC)
Store (0x01, TREN)
}
Else
{
Store (0x00, TRDC)
Store (0x00, TREN)
}
}
Else
{
Store (\_SB.PCI0.ISA.EC0.TTDC, TRDC)
Store (0x01, TREN)
}

Store (0x00, TRSG)
}
}
Else
{
Store (K3TB, Local1)
If (\_SB.ACAD.ACP)
{
Store (K3TA, Local1)
}

If (LGreaterEqual (Local0, TPA1))
{
If (LGreaterEqual (Local0, TPA3))
{
Subtract (Local1, 0x02, Local1)
Store (Local1, TRDC)
Store (0x01, TREN)
Store (0x03, TRSG)
Store ("Throttle Stage is >= Stage3 ", Debug)
Store (TRSG, Debug)
Store (Local1, Debug)
}
Else
{
If (LGreaterEqual (Local0, TPA2))
{
If (LOr (LLessEqual (TRSG, 0x01), \_SB.ACCG))
{
Subtract (Local1, 0x01, Local1)
Store (Local1, TRDC)
Store (0x01, TREN)
Store (0x02, TRSG)
}

Store ("Throttle Stage is >= Stage2 ", Debug)
Store (TRSG, Debug)
Store (Local1, Debug)
}
Else
{
If (LOr (LEqual (TRSG, 0x00), \_SB.ACCG))
{
Store (Local1, TRDC)
Store (0x01, TREN)
Store (0x01, TRSG)
}

Store ("Throttle Stage is >= Stage1 ", Debug)
Store (TRSG, Debug)
Store (Local1, Debug)
}
}
}
}

Store (0x00, \_SB.ACCG)
}

Method (_PSV, 0, NotSerialized)
{
Return (TPAS)
}

Name (_PSL, Package (0x01)
{
\_PR.CPU0
})
Name (_TC1, 0x04)
Name (_TC2, 0x03)
Method (_SCP, 1, NotSerialized)
{
Store (Arg0, PLCY)
}
}
}

Device (BAT1)
{
Name (_HID, EisaId ("PNP0C0A"))
Name (_UID, 0x01)
Name (_PCL, Package (0x01)
{
\_SB
})
Name (UBHD, 0x00)
Name (BATL, 0x00)
Name (BATT, 0x00)
Name (PBHD, Package (0x03)
{
0xFFFF,
0xFFFF,
0xFFFF
})
Name (BATI, 0xFFFF)
Name (BATC, 0xFFFF)
Name (BATV, 0xFFFF)
Name (BATS, 0xFFFF)
Name (PBIF, Package (0x0D)
{
0x01,
0x0B40,
0x0B40,
0x01,
0x39D0,
0x012C,
0xC8,
0x20,
0x20,
"BAT1",
" ",
" ",
" "
})
Name (PBST, Package (0x04)
{
0x00,
0xFFFFFFFF,
0xFFFFFFFF,
0x2710
})
Name (UBIF, 0x01E9)
Name (BP, 0x00)
Name (REPT, 0x00)
Name (ERRC, 0x00)
Method (_STA, 0, NotSerialized)
{
Acquire (\_SB.PCI0.ISA.EC0.MUT1, 0xFFFF)
Store ("CMBatt - _STA.BAT1", Debug)
\_SB.PCI0.ISA.EC0.CPOL ()
If (BP)
{
Store (0x1F, Local1)
}
Else
{
Store (0x0F, Local1)
}

Release (\_SB.PCI0.ISA.EC0.MUT1)
Return (Local1)
}

Method (_BIF, 0, NotSerialized)
{
Acquire (\_SB.PCI0.ISA.EC0.MUT1, 0xFFFF)
Store ("CMBatt - _BIF.BAT1", Debug)
\_SB.PCI0.ISA.EC0.CPOL ()
Release (\_SB.PCI0.ISA.EC0.MUT1)
Return (PBIF)
}

Method (_BST, 0, NotSerialized)
{
Acquire (\_SB.PCI0.ISA.EC0.MUT1, 0xFFFF)
Store ("CMBatt - _BST.BAT1", Debug)
\_SB.PCI0.ISA.EC0.CPOL ()
Release (\_SB.PCI0.ISA.EC0.MUT1)
Return (PBST)
}

Method (B1CK, 0, NotSerialized)
{
Store ("CMBatt - Notify(BAT1,0x81): B1CK", Debug)
Notify (\_SB.BAT1, 0x81)
}

Method (B1ST, 0, NotSerialized)
{
Store ("CMBatt - Notify(BAT1,0x80): B1ST", Debug)
Notify (\_SB.BAT1, 0x80)
}

Method (B1IF, 0, NotSerialized)
{
Store ("CMBatt - Notify(BAT1,0x81): B1IF", Debug)
Notify (\_SB.BAT1, 0x81)
}

Method (UPBI, 0, NotSerialized)
{
Store ("CMBatt - UPBI.BAT1", Debug)
Store (Zero, Local0)
If (LNot (ECOK ()))
{
Return (Local0)
}

Store (0x0C, Local1)
Store (Buffer (0x0D)
{
/* 0000 */ 0x00, 0x18, 0x10, 0x00, 0x19, 0x00, 0x00, 0x00,
/* 0008 */ 0x00, 0x21, 0x00, 0x22, 0x20
}, Local2)
While (LGreater (Local1, 0x08))
{
If (LNot (And (UBIF, VTOB (Local1))))
{
GBFE (Local2, Local1, RefOf (Local3))
If (Local3)
{
If (LNot (\_SB.PCI0.ISA.EC0.SMRD (0x0B, 0x16, Local3, RefOf (Local4))))
{
Store (\_SB.PCI0.ISA.EC0.BCNT, Local5)
Store (Zero, Local3)
Store (Zero, ERRC)
While (LGreater (Local5, Local3))
{
GBFE (Local4, Local3, RefOf (Local6))
Increment (Local3)
If (And (Local6, 0x80))
{
Increment (ERRC)
}
}

If (LEqual (ERRC, 0x00))
{
Store (Local4, Index (PBIF, Local1))
Or (UBIF, VTOB (Local1), UBIF)
Store (Ones, Local0)
}
}
}
}

Decrement (Local1)
}

While (LGreater (Local1, 0x00))
{
If (LNot (And (UBIF, VTOB (Local1))))
{
GBFE (Local2, Local1, RefOf (Local3))
If (Local3)
{
If (LNot (\_SB.PCI0.ISA.EC0.SMRD (0x09, 0x16, Local3, RefOf (Local5))))
{
If (LAnd (Local5, LNot (And (Local5, 0x8000))))
{
If (LEqual (Local1, 0x02))
{
ShiftRight (Local5, 0x05, Local5)
ShiftLeft (Local5, 0x05, Local5)
ShiftRight (Local5, 0x04, BATL)
Add (BATL, 0x14, BATL)
}

Store (Local5, Index (PBIF, Local1))
Or (UBIF, VTOB (Local1), UBIF)
Store (Ones, Local0)
}
}
}
}

Decrement (Local1)
}

Store (0x0A, Local1)
If (LNot (And (UBIF, VTOB (Local1))))
{
If (LNot (\_SB.PCI0.ISA.EC0.SMRD (0x09, 0x16, 0x1C, RefOf (Local5))))
{
Store (Local5, BATS)
Store (ITOS (ToBCD (Local5)), Index (PBIF, Local1))
Or (UBIF, VTOB (Local1), UBIF)
Store (Ones, Local0)
}
}

Store (PBIF, Debug)
Return (Local0)
}

Method (UPBS, 0, NotSerialized)
{
Store ("CMBatt - UPBS.BAT1", Debug)
Store (Zero, Local0)
If (LNot (ECOK ()))
{
Return (Local0)
}

Store (\_SB.PCI0.ISA.EC0.BT1S, Local5)
Store (Local5, Local1)
And (Local5, 0x07, Local5)
If (LNotEqual (Local5, DerefOf (Index (PBST, 0x00))))
{
Store ("CMBatt - BAT1 STATE CHANGE", Debug)
Store (Local1, Debug)
Store (Local5, Index (PBST, 0x00))
Store (Local5, BATT)
Store (Ones, Local0)
}

Store (\_SB.PCI0.ISA.EC0.BT1C, Local5)
If (LNot (And (Local5, 0x8000)))
{
Store (Local5, BATC)
ShiftRight (Local5, 0x05, Local5)
ShiftLeft (Local5, 0x05, Local5)
If (LNotEqual (Local5, DerefOf (Index (PBST, 0x02))))
{
Store (Local5, Index (PBST, 0x02))
Store (Ones, Local0)
}

If (And (BATT, 0x01))
{
If (LLess (Local5, BATL))
{
Or (\_SB.PCI0.ISA.EC0.PQ8A, 0x01, \_SB.PCI0.ISA.EC0.PQ8A)
Store (0x0780, \_SB.PCI0.ISA.EC0.HPCB)
Store (0x01, \_SB.PCI0.ISA.EC0.ENCB)
}
}
}

Store (\_SB.PCI0.ISA.EC0.BT1V, Local5)
If (LNot (And (Local5, 0x8000)))
{
Store (Local5, BATV)
ShiftRight (Local5, 0x05, Local5)
ShiftLeft (Local5, 0x05, Local5)
If (LNotEqual (Local5, DerefOf (Index (PBST, 0x03))))
{
Store (Local5, Index (PBST, 0x03))
Store (Ones, Local0)
}
}

Store (\_SB.PCI0.ISA.EC0.BT1I, Local5)
Store (Local5, BATI)
If (And (BATI, 0x8000))
{
Or (BATI, 0xFFFF0000, BATI)
}

If (And (Local1, 0x01))
{
Store (\_SB.PCI0.ISA.EC0.BT1V, Local2)
If (LEqual (Local2, Zero))
{
Store (0x39D0, Local2)
}

Divide (0x01036640, Local2, , Local3)
If (And (Local5, 0x8000))
{
Or (Local5, 0xFFFF0000, Local5)
Add (Not (Local5), 0x01, Local5)
If (LGreater (Local3, Local5))
{
Store (Local3, Local5)
}
}
Else
{
Store (Local3, Local5)
}
}

If (And (Local1, 0x02))
{
If (And (Local5, 0x8000))
{
Store (0x00, Local5)
}

If (LGreater (0x64, Local5))
{
Store (0x64, Local5)
}
}

If (LEqual (And (Local1, 0x03), 0x00))
{
Store (0x00, Local5)
}

ShiftRight (Local5, 0x05, Local5)
ShiftLeft (Local5, 0x05, Local5)
If (LNotEqual (Local5, DerefOf (Index (PBST, 0x01))))
{
Store (Local5, Index (PBST, 0x01))
Store (Ones, Local0)
}

If (Local0)
{
Store ("CMBATT - PBST Changed", Debug)
}

Store (PBST, Debug)
Return (Local0)
}

Method (UPBH, 0, NotSerialized)
{
Store ("CMBatt - UPBH.BAT1", Debug)
Store (Zero, Local0)
If (LNot (ECOK ()))
{
Return (Local0)
}

Store (0x00, Local1)
Store (Buffer (0x03)
{
0x17, 0x0C, 0x10
}, Local2)
While (LLess (Local1, 0x03))
{
If (LNot (And (UBHD, VTOB (Local1))))
{
GBFE (Local2, Local1, RefOf (Local3))
If (LNot (\_SB.PCI0.ISA.EC0.SMRD (0x09, 0x16, Local3, RefOf (Local5))))
{
Store (Local5, Index (PBHD, Local1))
Or (UBHD, VTOB (Local1), UBHD)
Store (Ones, Local0)
}
}

Increment (Local1)
}

Store (PBHD, Debug)
Return (Local0)
}

Method (IVBI, 0, NotSerialized)
{
Store (0x01E9, UBIF)
Store (0x0B40, Index (PBIF, 0x01))
Store (0x0B40, Index (PBIF, 0x02))
Store (0x39D0, Index (PBIF, 0x04))
Store ("Bad", Index (PBIF, 0x09))
Store ("Bad", Index (PBIF, 0x0A))
Store ("Bad", Index (PBIF, 0x0B))
Store ("Bad", Index (PBIF, 0x0C))
}

Method (IVBS, 0, NotSerialized)
{
Store (0x00, Index (PBST, 0x00))
Store (0xFFFFFFFF, Index (PBST, 0x01))
Store (0xFFFFFFFF, Index (PBST, 0x02))
Store (0x39D0, Index (PBST, 0x03))
}

Method (IVBH, 0, NotSerialized)
{
Store (0x00, UBHD)
Store (0xFFFF, Index (PBHD, 0x00))
Store (0xFFFF, Index (PBHD, 0x01))
Store (0xFFFF, Index (PBHD, 0x02))
}

Method (CHBP, 1, NotSerialized)
{
Store ("CMBatt - CHBP.BAT1", Debug)
Store (Zero, Local0)
If (LNot (ECOK ()))
{
Return (Local0)
}

Store (VTOB (Subtract (_UID, 0x01)), Local1)
Or (ShiftLeft (Local1, 0x0C), 0x0FFF, Local2)
Store (Zero, Local3)
If (And (Arg0, Local1))
{
If (BP)
{
Store ("CMBatt - BAT1 still present", Debug)
\_SB.PCI0.ISA.EC0.SMWR (0x08, 0x14, 0x01, Local2)
\_SB.PCI0.ISA.EC0.SMRD (0x09, 0x14, 0x01, RefOf (Local3))
If (LEqual (Local2, Or (Local3, 0x0FFF)))
{
If (UPBI ())
{
Or (0x01, Local0, Local0)
}

If (UPBS ())
{
Or (0x02, Local0, Local0)
}

UPBH ()
}
}
Else
{
Store ("CMBatt - BAT1 connected", Debug)
\_SB.PCI0.ISA.EC0.SMWR (0x08, 0x14, 0x01, Local2)
\_SB.PCI0.ISA.EC0.SMRD (0x09, 0x14, 0x01, RefOf (Local3))
If (LEqual (Local2, Or (Local3, 0x0FFF)))
{
UPBI ()
UPBS ()
UPBH ()
}

Store (0x01, BP)
Or (0x05, Local0, Local0)
}
}
Else
{
If (BP)
{
Store ("CMBatt - BAT1 disconnected", Debug)
Store (0x00, BP)
IVBI ()
IVBS ()
IVBH ()
Or (0x04, Local0, Local0)
}
}

If (LAnd (And (Arg0, Local1), LNotEqual (UBIF, 0x1FFF)))
{
Store (0x01, REPT)
}
Else
{
Store (0x00, REPT)
}

Return (Local0)
}
}
}

Method (_PTS, 1, NotSerialized)
{
If (LEqual (Arg0, 0x01)) {}
If (LEqual (Arg0, 0x03))
{
Store (0x01, \_SB.PCI0.ISA.EC0.WORE)
Store (0x00, \_SB.PCI0.PMU.LLOW)
Store (0x01, \_SB.PCI0.PMU.LHGH)
}

If (LEqual (Arg0, 0x04))
{
Store (0x01, \_SB.PCI0.ISA.EC0.S4FG)
Store (0x00, \_SB.PCI0.ISA.EC0.WORE)
\_SB.PCI0.ISA.HPSS (0x18, 0x00)
}

If (LEqual (Arg0, 0x05))
{
Store (0x00, \_SB.PCI0.ISA.EC0.WORE)
If (\_SB.PCI0.ISA.WOLE)
{
Store (0x01, \_SB.PCI0.ISA.EC0.WOLE)
}
Else
{
Store (0x00, \_SB.PCI0.ISA.EC0.WOLE)
}

\_SB.PCI0.ISA.HPSS (0x02, 0x00)
Sleep (0x07D0)
}
}

Method (_WAK, 1, NotSerialized)
{
If (\_SB.ECOK ())
{
Store (\_SB.PCI0.ISA.HPSS (0x08, 0x11), Local0)
\_SB.PCI0.ISA.EC0.CMC2 (0xC4, Local0, 0x82)
}

If (LEqual (Arg0, 0x01)) {}
If (LEqual (Arg0, 0x03))
{
Store (0x01, \_SB.PCI0.ISA.KBC0.KBS3)
If (\_SB.ECOK ())
{
Store (0x12, \_SB.PCI0.ISA.EC0.BFLG)
Store (0x08, \_SB.PCI0.ISA.EC0.BPD)
Acquire (\_SB.PCI0.ISA.EC0.MUT1, 0xFFFF)
\_SB.PCI0.ISA.EC0.BPOL ()
Release (\_SB.PCI0.ISA.EC0.MUT1)
}

Store (0x00, \_SB.PCI0.PMU.LHGH)
Store (0x01, \_SB.PCI0.PMU.LLOW)
\_SB.PCI0.ISA.HPSS (0x11, 0x00)
}

If (LEqual (Arg0, 0x04))
{
Notify (\_SB.PWRB, 0x02)
If (\_SB.ECOK ())
{
Acquire (\_SB.PCI0.ISA.EC0.MUT1, 0xFFFF)
Store (\_SB.PCI0.ISA.EC0.ADP, Local0)
Release (\_SB.PCI0.ISA.EC0.MUT1)
If (Local0)
{
Store (0x00, TRDC)
Store (0x00, TREN)
}
Else
{
Store (0x06, TRDC)
Store (0x01, TREN)
}
}
}

If (LEqual (Arg0, 0x05)) {}
}

Scope (_SI)
{
Method (_SST, 1, NotSerialized)
{
If (LEqual (Arg0, 0x01))
{
Store ("===== SST Working =====", Debug)
}

If (LEqual (Arg0, 0x02))
{
Store ("===== SST Waking =====", Debug)
}

If (LEqual (Arg0, 0x03))
{
Store ("===== SST Sleeping =====", Debug)
}

If (LEqual (Arg0, 0x04))
{
Store ("===== SST Sleeping S4 =====", Debug)
}
}
}

Scope (_GPE)
{
Method (_L03, 0, NotSerialized)
{
Notify (\_SB.LID, 0x80)
}

Method (_L08, 0, NotSerialized)
{
Notify (\_SB.PWRB, 0x02)
}

Method (_L09, 0, NotSerialized)
{
Notify (\_SB.PCI0, 0x02)
Sleep (0x01F4)
Notify (\_SB.PCI0.AGPB.VGA, 0x00)
}

Method (_L0A, 0, NotSerialized)
{
Notify (\_SB.PCI0.MDEM, 0x02)
}

Method (_L0B, 0, NotSerialized)
{
Notify (\_SB.PWRB, 0x02)
}

Method (_L0D, 0, NotSerialized)
{
Notify (\_SB.PWRB, 0x02)
}

Method (_L23, 0, NotSerialized)
{
Notify (\_TZ.THRM, 0x80)
}

Method (_L24, 0, NotSerialized)
{
Sleep (0x01F4)
If (\_SB.PCI0.PMU.CRTI)
{
Store (0x00, \_SB.PCI0.PMU.CRTR)
Store (0x01, \_SB.PCI0.PMU.CRTF)
}
Else
{
Store (0x00, \_SB.PCI0.PMU.CRTF)
Store (0x01, \_SB.PCI0.PMU.CRTR)
}

\_SB.PCI0.AGPB.VGA.DRUL (0x02)
}
}

OperationRegion (\P378, SystemIO, 0x0378, 0x02)
Field (\P378, ByteAcc, NoLock, Preserve)
{
O378, 8,
I379, 8
}

Method (DBGS, 1, Serialized)
{
ROMC (Arg0, 0x1009)
}

Method (DBGT, 1, Serialized)
{
ROMC (Arg0, 0x100A)
}

Method (DBGC, 1, Serialized)
{
PHDB (Arg0)
P1CH (0x20)
}

Method (P1CH, 1, Serialized)
{
ROMC (Arg0, 0x100E)
}

Method (PDDB, 1, Serialized)
{
ROMC (Arg0, 0x0300)
}

Method (PHDB, 1, Serialized)
{
ROMC (Arg0, 0x0200)
}

Method (PHDW, 1, Serialized)
{
ROMC (Arg0, 0x0201)
}

Method (PHDD, 1, Serialized)
{
ROMC (Arg0, 0x0202)
}

Method (ROMC, 2, Serialized)
{
And (I379, 0xF8, Local0)
If (LEqual (Local0, 0xB0))
{
FODW (0xAA55)
FODW (Arg1)
If (LEqual (Arg1, 0x0200))
{
CHDB (Arg0)
}
Else
{
If (LEqual (Arg1, 0x0201))
{
CHDW (Arg0)
}
Else
{
If (LEqual (Arg1, 0x0202))
{
CHDD (Arg0)
}
Else
{
If (LEqual (Arg1, 0x0300))
{
CHDB (Arg0)
}
Else
{
If (LEqual (Arg1, 0x1009))
{
CSTR (Arg0)
}
Else
{
If (LEqual (Arg1, 0x100A))
{
CSTR (Arg0)
}
Else
{
If (LEqual (Arg1, 0x100E))
{
C1CH (Arg0)
}
Else
{
}
}
}
}
}
}
}

FODB (0x66)
}
}

Method (CSTR, 1, Serialized)
{
Store (SizeOf (Arg0), Local1)
Name (BUFF, Buffer (Local1) {})
Store (Arg0, BUFF)
Store (Zero, Local2)
FODW (0x0D0A)
While (LNotEqual (Local2, Local1))
{
Store (DerefOf (Index (BUFF, Local2)), Local3)
Increment (Local2)
FODB (Local3)
}

FODB (0x00)
}

Method (C1CH, 1, Serialized)
{
FODB (Arg0)
FODB (0x07)
}

Method (CHDB, 1, Serialized)
{
FODB (Arg0)
}

Method (CHDW, 1, Serialized)
{
FODW (Arg0)
}

Method (CHDD, 1, Serialized)
{
FODD (Arg0)
}

Method (\FODD, 1, NotSerialized)
{
Store (Arg0, Local0)
ShiftRight (Local0, 0x10, Local1)
And (Local1, 0xFFFF, Local1)
And (Local0, 0xFFFF, Local0)
FODW (Local0)
FODW (Local1)
}

Method (\FODW, 1, NotSerialized)
{
Store (Arg0, Local0)
ShiftRight (Local0, 0x08, Local1)
And (Local1, 0xFF, Local1)
And (Local0, 0xFF, Local0)
FODB (Local0)
FODB (Local1)
}

Method (\FODB, 1, NotSerialized)
{
Or (Arg0, 0x10, Local0)
Store (Local0, O378)
Store (0x01, Local3)
While (Local3)
{
If (LEqual (And (I379, 0x80, Local3), 0x00))
{
ShiftRight (I379, 0x03, Local0)
And (Local0, 0x0F, Local0)
ShiftRight (Arg0, 0x04, Local1)
Store (Local1, O378)
Store (0x01, Local2)
While (Local2)
{
If (And (I379, 0x80, Local2))
{
Store (I379, Local1)
Store (0x00, Local2)
}
Else
{
Store (0x01, Local2)
}
}

ShiftLeft (Local1, 0x01, Local1)
And (Local1, 0xF0, Local1)
Or (Local1, Local0, Local0)
Store (0x00, Local3)
}
}
}
}

---

I just checked HP's web site, and there is no bios upgrade available for this machine.

Mikko


>
> Thanks for your verbose report,
>
> Andreas Mohr
>




____________________________________________________________________________________
Never miss a thing. Make Yahoo your home page.
http://www.yahoo.com/r/hs

2008-01-01 19:03:23

by Robert Hancock

[permalink] [raw]
Subject: Re: IDE/ACPI related hibernation regression: Second attempt fails

Andreas Mohr wrote:
> [added Tejun and Rafael CCs]
>
> Hi,
>
> On Mon, Dec 31, 2007 at 01:27:50PM -0800, Mikko Vinni wrote:
>> Hi,
>>
>> I noticed my ancient laptop (HP nx9005) fails to hibernate (suspend to disk) more than once while running recent 2.6.24-rc kernels. First hibernation succeeds happily, but when I try to do it again after resuming, the machine hangs immediately after the familiar two pops from the speakers."Hanging" in this case means that none of the usual keys work (e.g. Caps Lock led doesn't toggle), but alt-sysrq-b does reboot the laptop.
>
> I'm sorry, but "recent 2.6.24-rc kernels" unfortunately is a statement almost
> as broad as "there's a violent fire in India, please come and rescue us!",
> given that this very issue has been handled with lots of activity by Tejun Heo
> recently (see bug #9530 and http://lkml.org/lkml/2007/12/9/184 for details).
>
> 2.6.24-rc6 is the version that has all ACPI IDE fixes in a state that made
> my system fully work, so there should be a sizeable chance that it works
> for you, too, hopefully.
>
> What's interesting is that you're ALi-based, whereas I'm VIA-based, so
> your problem might still be unsupported by -rc6 after all.
>
>> Dmesg of the failing kernel after first hibernation (version is untouched e697789d64f8748cb219d7f5c413c512953802cc, i.e. current 2.6.24-rc6):
> ^^^^^^^^^
>
> Argh, just saw this at the very last moment, IOW if this is _really_
> -rc6+ already then we certainly do have a problem.
>
> Disassembled ACPI BIOS AML code (DSDT) of your machine would be very useful
> in this case, I'm afraid (done via acpidump and iasl, search the internet for
> pointers).
> lspci -x or better -xxx of the IDE device would be very useful, too.

They're using drivers/ide not libata. I don't think there have been any
ACPI changes very recently in that code.

These lines seem suspicious that the drivers/ide code is doing something
funny to the ACPI layer:

ACPI: Cannot set device to a higher-powered state than parent

--
Robert Hancock Saskatoon, SK, Canada
To email, remove "nospam" from [email protected]
Home Page: http://www.roberthancock.com/

2008-01-01 19:06:16

by Mikko Vinni

[permalink] [raw]
Subject: Re: IDE/ACPI related hibernation regression: Second attempt fails

Hi again,

I compiled the kernel (unmodified e697789d64..., I promise) again with DEBUGGING set to 1 in drivers/ide/ide-acpi.c.
Here are the relevant (I hope) parts of dmesg output after 1 suspend/resume:

[ 0.000000] Linux version 2.6.24-rc6-debugide (mikko@ubuntu) (gcc version 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)) #1 Tue Jan 1 19:02:07 EET 2008
...
[ 27.472882] alim15x3: ATI Radeon IGP Northbridge is not yet fully tested.
[ 27.472946] ALI15X3: IDE controller (0x10b9:0x5229 rev 0xc4) at PCI slot 0000:00:10.0
[ 27.473039] ACPI: Unable to derive IRQ for device 0000:00:10.0
[ 27.473088] ACPI: PCI Interrupt 0000:00:10.0[A]: no GSI
[ 27.473176] ALI15X3: not 100% native mode: will probe irqs later
[ 27.473244] ide0: BM-DMA at 0x8080-0x8087, BIOS settings: hda:DMA, hdb:pio
[ 27.473381] ide1: BM-DMA at 0x8088-0x808f, BIOS settings: hdc:DMA, hdd:pio
[ 27.473512] Probing IDE interface ide0...
[ 27.547404] Floppy drive(s): fd0 is 1.44M
[ 27.565886] FDC 0 is a post-1991 82077
[ 27.629089] Marking TSC unstable due to: TSC halts in idle.
[ 27.629160] Time: acpi_pm clocksource has been installed.
[ 27.752403] usb 1-1: new low speed USB device using ohci_hcd and address 2
[ 27.976556] usb 1-1: configuration #1 chosen from 1 choice
[ 27.993561] usbcore: registered new interface driver hiddev
[ 28.011803] input: Logitech USB Receiver as /class/input/input1
[ 28.018999] input: USB HID v1.10 Mouse [Logitech USB Receiver] on usb-0000:00:02.0-1
[ 28.019145] usbcore: registered new interface driver usbhid
[ 28.019197] drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver
[ 28.389030] hda: ST94813A, ATA DISK drive
[ 28.389177] hda: host max PIO5 wanted PIO255(auto-tune) selected PIO4
[ 28.389399] hda: UDMA/100 mode selected
[ 28.389745] ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
[ 28.389845] ide_acpi_hwif_get_handle: ENTER: device ide0
[ 28.389849] ide_get_dev_handle: ENTER: pci 00:10.0
[ 28.389884] ide_get_dev_handle: for dev=0x10.0, addr=0x100000, *handle=0xdd416ab8
[ 28.389905] ide_acpi_hwif_get_handle: chan adr=0: handle=0xdd416fb8
[ 28.391658] ide_acpi_init: ACPI methods disabled on boot
[ 28.391714] Probing IDE interface ide1...
[ 29.412106] hdc: QSI CD-RW/DVD-ROM SBW-241, ATAPI CD/DVD-ROM drive
[ 29.412321] hdc: host max PIO5 wanted PIO255(auto-tune) selected PIO4
[ 29.412393] hdc: UDMA/33 mode selected
[ 29.412542] ide1 at 0x170-0x177,0x376 on irq 15
[ 29.412642] ide_acpi_hwif_get_handle: ENTER: device ide1
[ 29.412646] ide_get_dev_handle: ENTER: pci 00:10.0
[ 29.412678] ide_get_dev_handle: for dev=0x10.0, addr=0x100000, *handle=0xdd416ab8
[ 29.412698] ide_acpi_hwif_get_handle: chan adr=1: handle=0xdd416e78
[ 29.412977] ide_acpi_init: ACPI methods disabled on boot
[ 29.424840] ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 10
[ 29.424905] ACPI: PCI Interrupt 0000:00:0c.0[A] -> Link [LNKC] -> GSI 10 (level, low) -> IRQ 10
[ 29.476316] SCSI subsystem initialized
[ 29.486989] libata version 3.00 loaded.
[ 29.493800] ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[10] MMIO=[e0007000-e00077ff] Max Packet=[2048] IR/IT contexts=[4/8]
[ 29.495401] ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 11
[ 29.495468] ACPI: PCI Interrupt 0000:00:12.0[A] -> Link [LNKB] -> GSI 11 (level, low) -> IRQ 11
[ 29.497587] natsemi eth0: NatSemi DP8381[56] at 0xe0008000 (0000:00:12.0), 00:0d:9d:5b:58:5f, IRQ 11, port TP.
[ 29.516915] hda: max request size: 128KiB
[ 29.517623] hda: 78140160 sectors (40007 MB) w/8192KiB Cache, CHS=16383/255/63
[ 29.517947] hda: cache flushes supported
[ 29.518054] hda: hda1 hda2 hda3 < hda5 hda6 > hda4
[ 29.568579] hdc: ATAPI 24X DVD-ROM CD-R/RW drive, 2048kB Cache
[ 29.568803] Uniform CD-ROM driver Revision: 3.20
[ 29.973733] Attempting manual resume
[ 29.973784] swsusp: Resume From Partition 3:5
[ 29.973787] PM: Checking swsusp image.
[ 29.974146] PM: Resume from disk failed.
...
[ 55.200524] NET: Registered protocol family 10
[ 55.200865] lo: Disabled Privacy Extensions
[ 65.920563] eth0: no IPv6 routers present
[ 266.282104] swsusp: Marking nosave pages: 000000000009f000 - 0000000000100000
[ 266.282116] swsusp: Basic memory bitmaps created
[ 266.282118] Syncing filesystems ... done.
[ 266.289229] Freezing user space processes ... (elapsed 0.00 seconds) done.
[ 266.289308] Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
[ 266.289360] Shrinking memory... -done (0 pages freed)
[ 266.310942] Freed 0 kbytes in 0.02 seconds (0.00 MB/s)
[ 266.310946] Suspending console(s)
[ 266.310991] ide_acpi_get_timing: ENTER:
[ 266.311160] ide_acpi_get_timing: _GTM status: 0, outptr: 0xdcf9bae0, outlen: 0x24
[ 266.311164] ide_acpi_get_timing: _GTM info: ptr: 0xdcf9baf0, len: 0x14, exp.len: 0x14
[ 266.311168] ide_acpi_get_timing: _GTM fields: 0x78, 0x8, 0x78, 0x8, 0x1f
[ 266.311188] ide_acpi_set_state: ENTER:
[ 266.311191] ide_acpi_drive_get_handle: ENTER: hdc at channel#: 1 port#: 0
[ 266.311211] ide_acpi_drive_get_handle: drive hdc handle 0xdd416dec
[ 266.311219] ACPI: Cannot set device to a higher-powered state than parent
[ 266.311222] ide_acpi_drive_get_handle: ENTER: hdd at channel#: 1 port#: 1
[ 266.311230] ide_acpi_drive_get_handle: drive hdd handle 0x00000000
[ 266.311277] ide_acpi_get_timing: ENTER:
[ 266.311315] ide_acpi_get_timing: _GTM status: 0, outptr: 0xdcf9bae0, outlen: 0x24
[ 266.311318] ide_acpi_get_timing: _GTM info: ptr: 0xdcf9baf0, len: 0x14, exp.len: 0x14
[ 266.311321] ide_acpi_get_timing: _GTM fields: 0x78, 0x8, 0x78, 0x8, 0x1f
[ 266.377953] ide_acpi_set_state: ENTER:
[ 266.377956] ide_acpi_drive_get_handle: ENTER: hda at channel#: 0 port#: 0
[ 266.377967] ide_acpi_drive_get_handle: drive hda handle 0xdd416ef0
[ 266.377973] ACPI: Cannot set device to a higher-powered state than parent
[ 266.377976] ide_acpi_drive_get_handle: ENTER: hdb at channel#: 0 port#: 1
[ 266.377984] ide_acpi_drive_get_handle: drive hdb handle 0x00000000
[ 266.378674] serial 00:0a: disabled
[ 266.379028] parport_pc 00:09: disabled
[ 266.379308] eth0: remaining active for wake-on-lan
[ 266.416992] ACPI: PCI interrupt for device 0000:00:06.0 disabled
[ 266.430221] ACPI: PCI interrupt for device 0000:00:02.0 disabled
[ 266.447648] swsusp: critical section:
[ 266.469400] swsusp: Need to copy 24489 pages
[ 266.469406] swsusp: Normal pages needed: 24489 + 1024 + 14, available pages: 98020
[ 22.222242] Intel machine check architecture supported.
[ 22.222254] Intel machine check reporting enabled on CPU#0.
[ 22.232030] PM: Writing back config space on device 0000:00:00.0 at offset 1 (was 22300006, writing 2300006)
[ 22.245149] ACPI: PCI Interrupt 0000:00:02.0[A] -> Link [LNKU] -> GSI 10 (level, low) -> IRQ 10
[ 22.258479] PM: Writing back config space on device 0000:00:06.0 at offset 1 (was c2900007, writing c2900003)
[ 22.258491] ACPI: PCI Interrupt 0000:00:06.0[A] -> Link [LNKH] -> GSI 5 (level, low) -> IRQ 5
[ 22.555101] PM: Writing back config space on device 0000:00:0a.0 at offset f (was 180010a, writing 580010a)
[ 22.555115] PM: Writing back config space on device 0000:00:0a.0 at offset 3 (was 824000, writing 82a800)
[ 22.555120] PM: Writing back config space on device 0000:00:0a.0 at offset 1 (was 4100007, writing 4100087)
[ 22.555134] Yenta O2: res at 0x94/0xD4: ea/00
[ 22.555136] Yenta O2: enabling read prefetch/write burst
[ 22.691693] PM: Writing back config space on device 0000:00:0a.1 at offset f (was 180020a, writing 580020a)
[ 22.691707] PM: Writing back config space on device 0000:00:0a.1 at offset 3 (was 824000, writing 82a800)
[ 22.691713] PM: Writing back config space on device 0000:00:0a.1 at offset 1 (was 4100007, writing 4100087)
[ 22.841649] PM: Writing back config space on device 0000:00:0c.0 at offset f (was 4020100, writing 4020109)
[ 22.841661] PM: Writing back config space on device 0000:00:0c.0 at offset 5 (was 0, writing e0000000)
[ 22.841666] PM: Writing back config space on device 0000:00:0c.0 at offset 4 (was 0, writing e0007000)
[ 22.841670] PM: Writing back config space on device 0000:00:0c.0 at offset 3 (was 0, writing 4010)
[ 22.841675] PM: Writing back config space on device 0000:00:0c.0 at offset 1 (was 2100000, writing 2100016)
[ 22.891699] ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[10] MMIO=[e0007000-e00077ff] Max Packet=[2048] IR/IT contexts=[4/8]
[ 22.891834] ACPI: Unable to derive IRQ for device 0000:00:10.0
[ 22.891836] ACPI: PCI Interrupt 0000:00:10.0[A]: no GSI
[ 22.891920] eth0: DSPCFG accepted after 0 usec.
[ 22.893613] parport_pc 00:09: activated
[ 22.894637] serial 00:0a: activated
[ 23.573474] usb usb1: root hub lost power or was reset
[ 23.688118] ide_acpi_set_state: ENTER:
[ 23.688199] ide_acpi_drive_get_handle: ENTER: hdb at channel#: 0 port#: 1
[ 23.688215] ide_acpi_drive_get_handle: drive hdb handle 0x00000000
[ 23.688217] ide_acpi_push_timing: ENTER:
[ 23.688693] ide_acpi_push_timing: _STM status: 0
[ 23.688697] ide_acpi_exec_tfs: call get_GTF, drive=hda port=0
[ 23.688701] do_drive_get_GTF: ENTER: ide0 at 0000:00:10.0, port#: 0, hard_port#: 0
[ 23.688850] do_drive_get_GTF: returning gtf_length=21, gtf_address=0xdcf9baf0, obj_loc=0xdcf9bae0
[ 23.688854] ide_acpi_exec_tfs: call set_taskfiles, drive=hda
[ 23.688856] do_drive_set_taskfiles: ENTER: hda, hard_port#: 0
[ 23.688859] do_drive_set_taskfiles: total GTF bytes=21 (0x15), gtf_count=3, addr=0xdcf9baf0
[ 23.688863] taskfile_load_raw: (0x1f1-1f7): hex: 03 45 00 00 00 a0 ef
[ 23.688865] taskfile_load_raw: _GTF execution disabled
[ 23.688868] taskfile_load_raw: (0x1f1-1f7): hex: 03 45 00 00 00 a0 ef
[ 23.688870] taskfile_load_raw: _GTF execution disabled
[ 23.688872] taskfile_load_raw: (0x1f1-1f7): hex: 03 0c 00 00 00 a0 ef
[ 23.688874] taskfile_load_raw: _GTF execution disabled
[ 23.688877] ide_acpi_exec_tfs: ret=0
[ 23.690904] hda: host max PIO5 wanted PIO255(auto-tune) selected PIO4
[ 23.691250] hda: UDMA/100 mode selected
[ 23.691641] ide_acpi_set_state: ENTER:
[ 23.691686] ide_acpi_drive_get_handle: ENTER: hdd at channel#: 1 port#: 1
[ 23.691695] ide_acpi_drive_get_handle: drive hdd handle 0x00000000
[ 23.691697] ide_acpi_push_timing: ENTER:
[ 23.692120] ide_acpi_push_timing: _STM status: 0
[ 23.692123] ide_acpi_exec_tfs: call get_GTF, drive=hdc port=2
[ 23.692126] do_drive_get_GTF: ENTER: ide1 at 0000:00:10.0, port#: 0, hard_port#: 1
[ 23.692273] do_drive_get_GTF: returning gtf_length=21, gtf_address=0xdcf9baf0, obj_loc=0xdcf9bae0
[ 23.692276] ide_acpi_exec_tfs: call set_taskfiles, drive=hdc
[ 23.692279] do_drive_set_taskfiles: ENTER: hdc, hard_port#: 2
[ 23.692282] do_drive_set_taskfiles: total GTF bytes=21 (0x15), gtf_count=3, addr=0xdcf9baf0
[ 23.692285] taskfile_load_raw: (0x1f1-1f7): hex: 03 42 00 00 00 a0 ef
[ 23.692287] taskfile_load_raw: _GTF execution disabled
[ 23.692290] taskfile_load_raw: (0x1f1-1f7): hex: 03 42 00 00 00 a0 ef
[ 23.692292] taskfile_load_raw: _GTF execution disabled
[ 23.692294] taskfile_load_raw: (0x1f1-1f7): hex: 03 0c 00 00 00 a0 ef
[ 23.692296] taskfile_load_raw: _GTF execution disabled
[ 23.692298] ide_acpi_exec_tfs: ret=0
[ 23.694313] hdc: host max PIO5 wanted PIO255(auto-tune) selected PIO4
[ 23.705376] hdc: UDMA/33 mode selected
[ 23.705529] PM: Image restored successfully.
[ 23.715598] Restarting tasks ... <6>usb 1-1: USB disconnect, address 2
[ 23.718912] done.
[ 23.718940] swsusp: Basic memory bitmaps freed
[ 24.018008] usb 1-1: new low speed USB device using ohci_hcd and address 3
[ 24.242290] usb 1-1: configuration #1 chosen from 1 choice
[ 24.265617] input: Logitech USB Receiver as /class/input/input8
[ 24.291398] input: USB HID v1.10 Mouse [Logitech USB Receiver] on usb-0000:00:02.0-1


I hope this makes sense to somebody.


> > Disassembled ACPI BIOS AML code (DSDT) of your machine would be
> > very useful in this case, I'm afraid (done via acpidump and
> iasl,
>
search
> > the internet for pointers).
> > lspci -x or better -xxx of the IDE device would be very useful, too.
>
>
> This one?
> 00:10.0 IDE interface: ALi Corporation M5229 IDE (rev c4)
> 00: b9 10 29 52 05 00 90 02 c4 b0 01 01 00 20 00 00
> 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 20: 81 80 00 00 00 00 00 00 00 00 00 00 3c 10 24 00
> 30: 00 00 00 00 60 00 00 00 00 00 00 00 00 01 02 04
> 40: 00 00 00 0f 00 00 00 00 30 00 20 c9 00 00 ba 3a
> 50: 02 00 00 89 55 50 0f 0a 01 31 31 00 01 31 31 00
> 60: 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00
> 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>


After booting into this new kernel, I ran lspci -xxx both before and after hibernation, and diffed the outputs. This is the result:
--- lspcixxx_debug 2008-01-01 20:01:21.000000000 +0200
+++ lspcixxx_debug_after1suspend 2008-01-01 20:03:03.000000000 +0200
@@ -1,27 +1,27 @@
00:00.0 Host bridge: ATI Technologies Inc AGP Bridge [IGP 320M] (rev 13)
00: 02 10 b0 ca 06 00 30 02 13 00 00 06 00 20 00 00
10: 08 00 00 e4 08 00 40 e0 91 80 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 a0 00 00 00 00 00 00 00 00 00 00 00
40: 00 00 00 00 0b 03 00 00 00 00 00 00 04 0d 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: bd 0c a2 85 24 36 e2 56 00 00 00 00 30 01 06 c1
70: e0 0d 20 30 84 84 84 84 00 00 00 00 00 00 00 00
80: 00 00 00 00 96 10 83 00 33 00 30 00 03 00 00 00
-90: 00 00 00 00 1f 1e 05 00 00 00 e4 7f 80 00 00 00
+90: 00 00 00 00 1f 1d 05 00 00 00 e4 7f 80 00 00 00
a0: 02 00 20 00 17 02 00 0f 00 00 00 00 03 00 00 00
b0: 00 00 02 00 08 00 00 00 04 04 04 04 00 00 00 00
c0: 00 00 00 ff 5a 15 05 0f 00 1e ff 1f 00 00 84 00
d0: eb 7b 0f 00 eb 7b 4f 00 6a 00 60 10 00 00 00 ff
e0: 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 00 ff
-f0: 1f 00 09 00 00 00 00 ff 00 08 10 18 00 00 00 00
+f0: 03 00 09 00 00 00 00 ff 00 08 10 18 00 00 00 00

00:01.0 PCI bridge: ATI Technologies Inc PCI Bridge [IGP 320M] (rev 01)
00: 02 10 0f 70 07 00 20 02 01 00 04 06 00 63 01 00
10: 00 00 00 00 00 00 00 00 00 01 01 44 91 91 20 02
20: 10 e0 10 e0 00 e8 f0 ef 00 00 00 00 00 00 00 00
30: 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 0c 00
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
@@ -50,40 +50,40 @@
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00:06.0 Multimedia audio controller: ALi Corporation M5451 PCI AC-Link Controller Audio Device (rev 02)
00: b9 10 51 54 07 00 90 c2 02 00 01 04 00 40 00 00
10: 01 84 00 00 00 50 00 e0 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 3c 10 24 00
30: 00 00 00 00 dc 00 00 00 00 00 00 00 05 01 02 18
-40: 00 00 00 00 aa 40 08 e2 00 00 00 00 00 00 00 00
+40: 00 00 00 00 00 40 08 e2 00 00 00 00 00 00 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 22 e6
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00:07.0 ISA bridge: ALi Corporation M1533/M1535 PCI to ISA Bridge [Aladdin IV/V/V+]
00: b9 10 33 15 0f 00 10 02 00 00 01 06 00 00 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 b9 10 33 15
30: 00 00 00 00 a0 00 00 00 00 00 00 00 00 00 00 00
40: 01 d3 0b ea 5d 42 00 03 90 03 90 52 00 00 cd 33
-50: 00 00 00 00 02 00 02 00 4c 80 80 00 00 00 e0 f0
+50: 00 00 00 00 02 00 02 00 4c 00 80 00 00 00 e0 f0
60: 62 21 00 00 00 00 00 00 00 00 00 00 00 64 00 00
70: d2 00 23 00 03 1f 81 01 40 00 00 00 61 00 00 91
80: a5 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
@@ -159,47 +159,47 @@
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 88 00 00 00
f0: 10 00 00 00 82 10 00 00 3c 10 24 00 00 00 00 00

00:10.0 IDE interface: ALi Corporation M5229 IDE (rev c4)
00: b9 10 29 52 05 00 90 02 c4 b0 01 01 00 20 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 81 80 00 00 00 00 00 00 00 00 00 00 3c 10 24 00
30: 00 00 00 00 60 00 00 00 00 00 00 00 00 01 02 04
40: 00 00 00 0f 00 00 00 00 30 00 20 c9 00 00 ba 3a
-50: 02 00 00 89 05 00 0f 0a 01 31 31 00 01 31 31 00
+50: 02 00 00 89 55 50 0f 0a 01 31 31 00 01 31 31 00
60: 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00:11.0 Bridge: ALi Corporation M7101 Power Management Controller [PMU]
00: b9 10 01 71 00 00 00 02 00 00 80 06 00 00 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 3c 10 24 00
30: 00 00 00 00 e4 00 00 00 00 00 00 00 00 00 00 00
-40: 00 40 08 00 00 80 21 00 aa 20 00 30 00 00 00 00
+40: 00 40 00 00 00 80 21 00 aa 20 00 30 00 00 00 00
50: 00 01 00 00 00 00 00 00 00 05 05 00 00 00 00 00
60: 00 00 00 00 a5 00 00 00 00 00 00 22 00 00 00 0e
70: 00 00 00 00 00 00 00 28 f7 77 00 a2 38 1e 13 00
80: 76 89 15 13 00 33 00 00 0e 00 00 9a 99 00 00 99
90: 30 03 00 00 00 00 00 3b db 00 00 21 00 01 00 00
a0: 00 00 00 c0 00 00 00 28 10 fe 00 fe 00 00 00 00
b0: 00 84 00 08 00 0f 01 00 60 04 00 01 00 01 00 a5
c0: 13 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-d0: 00 46 04 00 00 00 00 00 00 00 40 00 0c 80 00 00
+d0: 00 46 04 00 00 00 00 00 00 00 40 00 8b 80 00 00
e0: 00 80 40 80 01 00 01 00 00 00 00 00 00 00 00 00
f0: 01 00 20 1e 00 00 00 00 00 00 00 00 00 00 00 00

00:12.0 Ethernet controller: National Semiconductor Corporation DP83815 (MacPhyter) Ethernet Controller
00: 0b 10 20 00 07 00 90 02 00 00 00 02 00 5a 00 00
10: 01 8c 00 00 00 80 00 e0 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 3c 10 24 00
30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 01 0b 34
40: 01 00 82 ff 00 80 00 00 00 00 00 00 00 00 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


What seems to happen when I try to hibernate the machine for the second time, is that the hard disk powers down quite early in the process (I hear it spin down, if I'm not totally mistaken) and it doesn't turn back on.


Mikko




____________________________________________________________________________________
Be a better friend, newshound, and
know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ

2008-01-01 20:08:15

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: IDE/ACPI related hibernation regression: Second attempt fails

On Tuesday, 1 of January 2008, Mikko Vinni wrote:
> Hi again,

Hi,

Please attach the information below to the Bugzilla entry at:
http://bugzilla.kernel.org/show_bug.cgi?id=9673

Thanks,
Rafael


> I compiled the kernel (unmodified e697789d64..., I promise) again with DEBUGGING set to 1 in drivers/ide/ide-acpi.c.
> Here are the relevant (I hope) parts of dmesg output after 1 suspend/resume:
>
> [ 0.000000] Linux version 2.6.24-rc6-debugide (mikko@ubuntu) (gcc version 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)) #1 Tue Jan 1 19:02:07 EET 2008
> ...
> [ 27.472882] alim15x3: ATI Radeon IGP Northbridge is not yet fully tested.
> [ 27.472946] ALI15X3: IDE controller (0x10b9:0x5229 rev 0xc4) at PCI slot 0000:00:10.0
> [ 27.473039] ACPI: Unable to derive IRQ for device 0000:00:10.0
> [ 27.473088] ACPI: PCI Interrupt 0000:00:10.0[A]: no GSI
> [ 27.473176] ALI15X3: not 100% native mode: will probe irqs later
> [ 27.473244] ide0: BM-DMA at 0x8080-0x8087, BIOS settings: hda:DMA, hdb:pio
> [ 27.473381] ide1: BM-DMA at 0x8088-0x808f, BIOS settings: hdc:DMA, hdd:pio
> [ 27.473512] Probing IDE interface ide0...
> [ 27.547404] Floppy drive(s): fd0 is 1.44M
> [ 27.565886] FDC 0 is a post-1991 82077
> [ 27.629089] Marking TSC unstable due to: TSC halts in idle.
> [ 27.629160] Time: acpi_pm clocksource has been installed.
> [ 27.752403] usb 1-1: new low speed USB device using ohci_hcd and address 2
> [ 27.976556] usb 1-1: configuration #1 chosen from 1 choice
> [ 27.993561] usbcore: registered new interface driver hiddev
> [ 28.011803] input: Logitech USB Receiver as /class/input/input1
> [ 28.018999] input: USB HID v1.10 Mouse [Logitech USB Receiver] on usb-0000:00:02.0-1
> [ 28.019145] usbcore: registered new interface driver usbhid
> [ 28.019197] drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver
> [ 28.389030] hda: ST94813A, ATA DISK drive
> [ 28.389177] hda: host max PIO5 wanted PIO255(auto-tune) selected PIO4
> [ 28.389399] hda: UDMA/100 mode selected
> [ 28.389745] ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
> [ 28.389845] ide_acpi_hwif_get_handle: ENTER: device ide0
> [ 28.389849] ide_get_dev_handle: ENTER: pci 00:10.0
> [ 28.389884] ide_get_dev_handle: for dev=0x10.0, addr=0x100000, *handle=0xdd416ab8
> [ 28.389905] ide_acpi_hwif_get_handle: chan adr=0: handle=0xdd416fb8
> [ 28.391658] ide_acpi_init: ACPI methods disabled on boot
> [ 28.391714] Probing IDE interface ide1...
> [ 29.412106] hdc: QSI CD-RW/DVD-ROM SBW-241, ATAPI CD/DVD-ROM drive
> [ 29.412321] hdc: host max PIO5 wanted PIO255(auto-tune) selected PIO4
> [ 29.412393] hdc: UDMA/33 mode selected
> [ 29.412542] ide1 at 0x170-0x177,0x376 on irq 15
> [ 29.412642] ide_acpi_hwif_get_handle: ENTER: device ide1
> [ 29.412646] ide_get_dev_handle: ENTER: pci 00:10.0
> [ 29.412678] ide_get_dev_handle: for dev=0x10.0, addr=0x100000, *handle=0xdd416ab8
> [ 29.412698] ide_acpi_hwif_get_handle: chan adr=1: handle=0xdd416e78
> [ 29.412977] ide_acpi_init: ACPI methods disabled on boot
> [ 29.424840] ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 10
> [ 29.424905] ACPI: PCI Interrupt 0000:00:0c.0[A] -> Link [LNKC] -> GSI 10 (level, low) -> IRQ 10
> [ 29.476316] SCSI subsystem initialized
> [ 29.486989] libata version 3.00 loaded.
> [ 29.493800] ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[10] MMIO=[e0007000-e00077ff] Max Packet=[2048] IR/IT contexts=[4/8]
> [ 29.495401] ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 11
> [ 29.495468] ACPI: PCI Interrupt 0000:00:12.0[A] -> Link [LNKB] -> GSI 11 (level, low) -> IRQ 11
> [ 29.497587] natsemi eth0: NatSemi DP8381[56] at 0xe0008000 (0000:00:12.0), 00:0d:9d:5b:58:5f, IRQ 11, port TP.
> [ 29.516915] hda: max request size: 128KiB
> [ 29.517623] hda: 78140160 sectors (40007 MB) w/8192KiB Cache, CHS=16383/255/63
> [ 29.517947] hda: cache flushes supported
> [ 29.518054] hda: hda1 hda2 hda3 < hda5 hda6 > hda4
> [ 29.568579] hdc: ATAPI 24X DVD-ROM CD-R/RW drive, 2048kB Cache
> [ 29.568803] Uniform CD-ROM driver Revision: 3.20
> [ 29.973733] Attempting manual resume
> [ 29.973784] swsusp: Resume From Partition 3:5
> [ 29.973787] PM: Checking swsusp image.
> [ 29.974146] PM: Resume from disk failed.
> ...
> [ 55.200524] NET: Registered protocol family 10
> [ 55.200865] lo: Disabled Privacy Extensions
> [ 65.920563] eth0: no IPv6 routers present
> [ 266.282104] swsusp: Marking nosave pages: 000000000009f000 - 0000000000100000
> [ 266.282116] swsusp: Basic memory bitmaps created
> [ 266.282118] Syncing filesystems ... done.
> [ 266.289229] Freezing user space processes ... (elapsed 0.00 seconds) done.
> [ 266.289308] Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
> [ 266.289360] Shrinking memory... -done (0 pages freed)
> [ 266.310942] Freed 0 kbytes in 0.02 seconds (0.00 MB/s)
> [ 266.310946] Suspending console(s)
> [ 266.310991] ide_acpi_get_timing: ENTER:
> [ 266.311160] ide_acpi_get_timing: _GTM status: 0, outptr: 0xdcf9bae0, outlen: 0x24
> [ 266.311164] ide_acpi_get_timing: _GTM info: ptr: 0xdcf9baf0, len: 0x14, exp.len: 0x14
> [ 266.311168] ide_acpi_get_timing: _GTM fields: 0x78, 0x8, 0x78, 0x8, 0x1f
> [ 266.311188] ide_acpi_set_state: ENTER:
> [ 266.311191] ide_acpi_drive_get_handle: ENTER: hdc at channel#: 1 port#: 0
> [ 266.311211] ide_acpi_drive_get_handle: drive hdc handle 0xdd416dec
> [ 266.311219] ACPI: Cannot set device to a higher-powered state than parent
> [ 266.311222] ide_acpi_drive_get_handle: ENTER: hdd at channel#: 1 port#: 1
> [ 266.311230] ide_acpi_drive_get_handle: drive hdd handle 0x00000000
> [ 266.311277] ide_acpi_get_timing: ENTER:
> [ 266.311315] ide_acpi_get_timing: _GTM status: 0, outptr: 0xdcf9bae0, outlen: 0x24
> [ 266.311318] ide_acpi_get_timing: _GTM info: ptr: 0xdcf9baf0, len: 0x14, exp.len: 0x14
> [ 266.311321] ide_acpi_get_timing: _GTM fields: 0x78, 0x8, 0x78, 0x8, 0x1f
> [ 266.377953] ide_acpi_set_state: ENTER:
> [ 266.377956] ide_acpi_drive_get_handle: ENTER: hda at channel#: 0 port#: 0
> [ 266.377967] ide_acpi_drive_get_handle: drive hda handle 0xdd416ef0
> [ 266.377973] ACPI: Cannot set device to a higher-powered state than parent
> [ 266.377976] ide_acpi_drive_get_handle: ENTER: hdb at channel#: 0 port#: 1
> [ 266.377984] ide_acpi_drive_get_handle: drive hdb handle 0x00000000
> [ 266.378674] serial 00:0a: disabled
> [ 266.379028] parport_pc 00:09: disabled
> [ 266.379308] eth0: remaining active for wake-on-lan
> [ 266.416992] ACPI: PCI interrupt for device 0000:00:06.0 disabled
> [ 266.430221] ACPI: PCI interrupt for device 0000:00:02.0 disabled
> [ 266.447648] swsusp: critical section:
> [ 266.469400] swsusp: Need to copy 24489 pages
> [ 266.469406] swsusp: Normal pages needed: 24489 + 1024 + 14, available pages: 98020
> [ 22.222242] Intel machine check architecture supported.
> [ 22.222254] Intel machine check reporting enabled on CPU#0.
> [ 22.232030] PM: Writing back config space on device 0000:00:00.0 at offset 1 (was 22300006, writing 2300006)
> [ 22.245149] ACPI: PCI Interrupt 0000:00:02.0[A] -> Link [LNKU] -> GSI 10 (level, low) -> IRQ 10
> [ 22.258479] PM: Writing back config space on device 0000:00:06.0 at offset 1 (was c2900007, writing c2900003)
> [ 22.258491] ACPI: PCI Interrupt 0000:00:06.0[A] -> Link [LNKH] -> GSI 5 (level, low) -> IRQ 5
> [ 22.555101] PM: Writing back config space on device 0000:00:0a.0 at offset f (was 180010a, writing 580010a)
> [ 22.555115] PM: Writing back config space on device 0000:00:0a.0 at offset 3 (was 824000, writing 82a800)
> [ 22.555120] PM: Writing back config space on device 0000:00:0a.0 at offset 1 (was 4100007, writing 4100087)
> [ 22.555134] Yenta O2: res at 0x94/0xD4: ea/00
> [ 22.555136] Yenta O2: enabling read prefetch/write burst
> [ 22.691693] PM: Writing back config space on device 0000:00:0a.1 at offset f (was 180020a, writing 580020a)
> [ 22.691707] PM: Writing back config space on device 0000:00:0a.1 at offset 3 (was 824000, writing 82a800)
> [ 22.691713] PM: Writing back config space on device 0000:00:0a.1 at offset 1 (was 4100007, writing 4100087)
> [ 22.841649] PM: Writing back config space on device 0000:00:0c.0 at offset f (was 4020100, writing 4020109)
> [ 22.841661] PM: Writing back config space on device 0000:00:0c.0 at offset 5 (was 0, writing e0000000)
> [ 22.841666] PM: Writing back config space on device 0000:00:0c.0 at offset 4 (was 0, writing e0007000)
> [ 22.841670] PM: Writing back config space on device 0000:00:0c.0 at offset 3 (was 0, writing 4010)
> [ 22.841675] PM: Writing back config space on device 0000:00:0c.0 at offset 1 (was 2100000, writing 2100016)
> [ 22.891699] ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[10] MMIO=[e0007000-e00077ff] Max Packet=[2048] IR/IT contexts=[4/8]
> [ 22.891834] ACPI: Unable to derive IRQ for device 0000:00:10.0
> [ 22.891836] ACPI: PCI Interrupt 0000:00:10.0[A]: no GSI
> [ 22.891920] eth0: DSPCFG accepted after 0 usec.
> [ 22.893613] parport_pc 00:09: activated
> [ 22.894637] serial 00:0a: activated
> [ 23.573474] usb usb1: root hub lost power or was reset
> [ 23.688118] ide_acpi_set_state: ENTER:
> [ 23.688199] ide_acpi_drive_get_handle: ENTER: hdb at channel#: 0 port#: 1
> [ 23.688215] ide_acpi_drive_get_handle: drive hdb handle 0x00000000
> [ 23.688217] ide_acpi_push_timing: ENTER:
> [ 23.688693] ide_acpi_push_timing: _STM status: 0
> [ 23.688697] ide_acpi_exec_tfs: call get_GTF, drive=hda port=0
> [ 23.688701] do_drive_get_GTF: ENTER: ide0 at 0000:00:10.0, port#: 0, hard_port#: 0
> [ 23.688850] do_drive_get_GTF: returning gtf_length=21, gtf_address=0xdcf9baf0, obj_loc=0xdcf9bae0
> [ 23.688854] ide_acpi_exec_tfs: call set_taskfiles, drive=hda
> [ 23.688856] do_drive_set_taskfiles: ENTER: hda, hard_port#: 0
> [ 23.688859] do_drive_set_taskfiles: total GTF bytes=21 (0x15), gtf_count=3, addr=0xdcf9baf0
> [ 23.688863] taskfile_load_raw: (0x1f1-1f7): hex: 03 45 00 00 00 a0 ef
> [ 23.688865] taskfile_load_raw: _GTF execution disabled
> [ 23.688868] taskfile_load_raw: (0x1f1-1f7): hex: 03 45 00 00 00 a0 ef
> [ 23.688870] taskfile_load_raw: _GTF execution disabled
> [ 23.688872] taskfile_load_raw: (0x1f1-1f7): hex: 03 0c 00 00 00 a0 ef
> [ 23.688874] taskfile_load_raw: _GTF execution disabled
> [ 23.688877] ide_acpi_exec_tfs: ret=0
> [ 23.690904] hda: host max PIO5 wanted PIO255(auto-tune) selected PIO4
> [ 23.691250] hda: UDMA/100 mode selected
> [ 23.691641] ide_acpi_set_state: ENTER:
> [ 23.691686] ide_acpi_drive_get_handle: ENTER: hdd at channel#: 1 port#: 1
> [ 23.691695] ide_acpi_drive_get_handle: drive hdd handle 0x00000000
> [ 23.691697] ide_acpi_push_timing: ENTER:
> [ 23.692120] ide_acpi_push_timing: _STM status: 0
> [ 23.692123] ide_acpi_exec_tfs: call get_GTF, drive=hdc port=2
> [ 23.692126] do_drive_get_GTF: ENTER: ide1 at 0000:00:10.0, port#: 0, hard_port#: 1
> [ 23.692273] do_drive_get_GTF: returning gtf_length=21, gtf_address=0xdcf9baf0, obj_loc=0xdcf9bae0
> [ 23.692276] ide_acpi_exec_tfs: call set_taskfiles, drive=hdc
> [ 23.692279] do_drive_set_taskfiles: ENTER: hdc, hard_port#: 2
> [ 23.692282] do_drive_set_taskfiles: total GTF bytes=21 (0x15), gtf_count=3, addr=0xdcf9baf0
> [ 23.692285] taskfile_load_raw: (0x1f1-1f7): hex: 03 42 00 00 00 a0 ef
> [ 23.692287] taskfile_load_raw: _GTF execution disabled
> [ 23.692290] taskfile_load_raw: (0x1f1-1f7): hex: 03 42 00 00 00 a0 ef
> [ 23.692292] taskfile_load_raw: _GTF execution disabled
> [ 23.692294] taskfile_load_raw: (0x1f1-1f7): hex: 03 0c 00 00 00 a0 ef
> [ 23.692296] taskfile_load_raw: _GTF execution disabled
> [ 23.692298] ide_acpi_exec_tfs: ret=0
> [ 23.694313] hdc: host max PIO5 wanted PIO255(auto-tune) selected PIO4
> [ 23.705376] hdc: UDMA/33 mode selected
> [ 23.705529] PM: Image restored successfully.
> [ 23.715598] Restarting tasks ... <6>usb 1-1: USB disconnect, address 2
> [ 23.718912] done.
> [ 23.718940] swsusp: Basic memory bitmaps freed
> [ 24.018008] usb 1-1: new low speed USB device using ohci_hcd and address 3
> [ 24.242290] usb 1-1: configuration #1 chosen from 1 choice
> [ 24.265617] input: Logitech USB Receiver as /class/input/input8
> [ 24.291398] input: USB HID v1.10 Mouse [Logitech USB Receiver] on usb-0000:00:02.0-1
>
>
> I hope this makes sense to somebody.
>
>
> > > Disassembled ACPI BIOS AML code (DSDT) of your machine would be
> > > very useful in this case, I'm afraid (done via acpidump and
> > iasl,
> >
> search
> > > the internet for pointers).
> > > lspci -x or better -xxx of the IDE device would be very useful, too.
> >
> >
> > This one?
> > 00:10.0 IDE interface: ALi Corporation M5229 IDE (rev c4)
> > 00: b9 10 29 52 05 00 90 02 c4 b0 01 01 00 20 00 00
> > 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > 20: 81 80 00 00 00 00 00 00 00 00 00 00 3c 10 24 00
> > 30: 00 00 00 00 60 00 00 00 00 00 00 00 00 01 02 04
> > 40: 00 00 00 0f 00 00 00 00 30 00 20 c9 00 00 ba 3a
> > 50: 02 00 00 89 55 50 0f 0a 01 31 31 00 01 31 31 00
> > 60: 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00
> > 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> >
>
>
> After booting into this new kernel, I ran lspci -xxx both before and after hibernation, and diffed the outputs. This is the result:
> --- lspcixxx_debug 2008-01-01 20:01:21.000000000 +0200
> +++ lspcixxx_debug_after1suspend 2008-01-01 20:03:03.000000000 +0200
> @@ -1,27 +1,27 @@
> 00:00.0 Host bridge: ATI Technologies Inc AGP Bridge [IGP 320M] (rev 13)
> 00: 02 10 b0 ca 06 00 30 02 13 00 00 06 00 20 00 00
> 10: 08 00 00 e4 08 00 40 e0 91 80 00 00 00 00 00 00
> 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 30: 00 00 00 00 a0 00 00 00 00 00 00 00 00 00 00 00
> 40: 00 00 00 00 0b 03 00 00 00 00 00 00 04 0d 00 00
> 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 60: bd 0c a2 85 24 36 e2 56 00 00 00 00 30 01 06 c1
> 70: e0 0d 20 30 84 84 84 84 00 00 00 00 00 00 00 00
> 80: 00 00 00 00 96 10 83 00 33 00 30 00 03 00 00 00
> -90: 00 00 00 00 1f 1e 05 00 00 00 e4 7f 80 00 00 00
> +90: 00 00 00 00 1f 1d 05 00 00 00 e4 7f 80 00 00 00
> a0: 02 00 20 00 17 02 00 0f 00 00 00 00 03 00 00 00
> b0: 00 00 02 00 08 00 00 00 04 04 04 04 00 00 00 00
> c0: 00 00 00 ff 5a 15 05 0f 00 1e ff 1f 00 00 84 00
> d0: eb 7b 0f 00 eb 7b 4f 00 6a 00 60 10 00 00 00 ff
> e0: 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 00 ff
> -f0: 1f 00 09 00 00 00 00 ff 00 08 10 18 00 00 00 00
> +f0: 03 00 09 00 00 00 00 ff 00 08 10 18 00 00 00 00
>
> 00:01.0 PCI bridge: ATI Technologies Inc PCI Bridge [IGP 320M] (rev 01)
> 00: 02 10 0f 70 07 00 20 02 01 00 04 06 00 63 01 00
> 10: 00 00 00 00 00 00 00 00 00 01 01 44 91 91 20 02
> 20: 10 e0 10 e0 00 e8 f0 ef 00 00 00 00 00 00 00 00
> 30: 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 0c 00
> 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> @@ -50,40 +50,40 @@
> c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>
> 00:06.0 Multimedia audio controller: ALi Corporation M5451 PCI AC-Link Controller Audio Device (rev 02)
> 00: b9 10 51 54 07 00 90 c2 02 00 01 04 00 40 00 00
> 10: 01 84 00 00 00 50 00 e0 00 00 00 00 00 00 00 00
> 20: 00 00 00 00 00 00 00 00 00 00 00 00 3c 10 24 00
> 30: 00 00 00 00 dc 00 00 00 00 00 00 00 05 01 02 18
> -40: 00 00 00 00 aa 40 08 e2 00 00 00 00 00 00 00 00
> +40: 00 00 00 00 00 40 08 e2 00 00 00 00 00 00 00 00
> 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> d0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 22 e6
> e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>
> 00:07.0 ISA bridge: ALi Corporation M1533/M1535 PCI to ISA Bridge [Aladdin IV/V/V+]
> 00: b9 10 33 15 0f 00 10 02 00 00 01 06 00 00 00 00
> 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 20: 00 00 00 00 00 00 00 00 00 00 00 00 b9 10 33 15
> 30: 00 00 00 00 a0 00 00 00 00 00 00 00 00 00 00 00
> 40: 01 d3 0b ea 5d 42 00 03 90 03 90 52 00 00 cd 33
> -50: 00 00 00 00 02 00 02 00 4c 80 80 00 00 00 e0 f0
> +50: 00 00 00 00 02 00 02 00 4c 00 80 00 00 00 e0 f0
> 60: 62 21 00 00 00 00 00 00 00 00 00 00 00 64 00 00
> 70: d2 00 23 00 03 1f 81 01 40 00 00 00 61 00 00 91
> 80: a5 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> a0: 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00
> b0: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> @@ -159,47 +159,47 @@
> d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> e0: 00 00 00 00 00 00 00 00 00 00 00 00 88 00 00 00
> f0: 10 00 00 00 82 10 00 00 3c 10 24 00 00 00 00 00
>
> 00:10.0 IDE interface: ALi Corporation M5229 IDE (rev c4)
> 00: b9 10 29 52 05 00 90 02 c4 b0 01 01 00 20 00 00
> 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 20: 81 80 00 00 00 00 00 00 00 00 00 00 3c 10 24 00
> 30: 00 00 00 00 60 00 00 00 00 00 00 00 00 01 02 04
> 40: 00 00 00 0f 00 00 00 00 30 00 20 c9 00 00 ba 3a
> -50: 02 00 00 89 05 00 0f 0a 01 31 31 00 01 31 31 00
> +50: 02 00 00 89 55 50 0f 0a 01 31 31 00 01 31 31 00
> 60: 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00
> 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>
> 00:11.0 Bridge: ALi Corporation M7101 Power Management Controller [PMU]
> 00: b9 10 01 71 00 00 00 02 00 00 80 06 00 00 00 00
> 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 20: 00 00 00 00 00 00 00 00 00 00 00 00 3c 10 24 00
> 30: 00 00 00 00 e4 00 00 00 00 00 00 00 00 00 00 00
> -40: 00 40 08 00 00 80 21 00 aa 20 00 30 00 00 00 00
> +40: 00 40 00 00 00 80 21 00 aa 20 00 30 00 00 00 00
> 50: 00 01 00 00 00 00 00 00 00 05 05 00 00 00 00 00
> 60: 00 00 00 00 a5 00 00 00 00 00 00 22 00 00 00 0e
> 70: 00 00 00 00 00 00 00 28 f7 77 00 a2 38 1e 13 00
> 80: 76 89 15 13 00 33 00 00 0e 00 00 9a 99 00 00 99
> 90: 30 03 00 00 00 00 00 3b db 00 00 21 00 01 00 00
> a0: 00 00 00 c0 00 00 00 28 10 fe 00 fe 00 00 00 00
> b0: 00 84 00 08 00 0f 01 00 60 04 00 01 00 01 00 a5
> c0: 13 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> -d0: 00 46 04 00 00 00 00 00 00 00 40 00 0c 80 00 00
> +d0: 00 46 04 00 00 00 00 00 00 00 40 00 8b 80 00 00
> e0: 00 80 40 80 01 00 01 00 00 00 00 00 00 00 00 00
> f0: 01 00 20 1e 00 00 00 00 00 00 00 00 00 00 00 00
>
> 00:12.0 Ethernet controller: National Semiconductor Corporation DP83815 (MacPhyter) Ethernet Controller
> 00: 0b 10 20 00 07 00 90 02 00 00 00 02 00 5a 00 00
> 10: 01 8c 00 00 00 80 00 e0 00 00 00 00 00 00 00 00
> 20: 00 00 00 00 00 00 00 00 00 00 00 00 3c 10 24 00
> 30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 01 0b 34
> 40: 01 00 82 ff 00 80 00 00 00 00 00 00 00 00 00 00
> 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>
>
> What seems to happen when I try to hibernate the machine for the second time, is that the hard disk powers down quite early in the process (I hear it spin down, if I'm not totally mistaken) and it doesn't turn back on.
>
>
> Mikko
>
>
>
>
> ____________________________________________________________________________________
> Be a better friend, newshound, and
> know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
>
>
>



--
"Premature optimization is the root of all evil." - Donald Knuth

2008-01-01 22:16:49

by Mikko Vinni

[permalink] [raw]
Subject: Re: IDE/ACPI related hibernation regression: Second attempt fails

----- Original Message ----
> From: Rafael J. Wysocki <[email protected]>
> Please attach the information below to the Bugzilla entry at:
> http://bugzilla.kernel.org/show_bug.cgi?id=9673


... and there the information is. Let me know, if I need to dig some more information
from this old beast.

(Me goes to sleep wondering how to make gmail not wrap lines unnecessarily
or how to make yahoo not break threading. Oh well, I guess this is already
discussed somewhere and I shall just google for it.)


Mikko


--




____________________________________________________________________________________
Looking for last minute shopping deals?
Find them fast with Yahoo! Search. http://tools.search.yahoo.com/newsearch/category.php?category=shopping