From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gleb Natapov Subject: Re: system_powerdown not working for qemu-kvm 0.12.4? Date: Fri, 15 Oct 2010 09:01:24 +0200 Message-ID: <20101015070124.GB27087@redhat.com> References: <4BF41051.2010608@redhat.com> <4C67C8D2.5000400@redhat.com> <4CB341E4.3060400@redhat.com> <4CB40515.2030809@redhat.com> <20101012071124.GA10190@morn.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: "Kevin O'Connor" , Avi Kivity , Teck Choon Giam , kvm@vger.kernel.org, seabios@seabios.org To: Ruben Kerkhof Return-path: Received: from mx1.redhat.com ([209.132.183.28]:7668 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756238Ab0JOHBn (ORCPT ); Fri, 15 Oct 2010 03:01:43 -0400 Content-Disposition: inline In-Reply-To: Sender: kvm-owner@vger.kernel.org List-ID: On Fri, Oct 15, 2010 at 03:45:06AM +0200, Ruben Kerkhof wrote: > Is there anything I can do to help resolve this? > Would rolling back this commit have any impact on other operating systems? > Patch below should fix the problem. diff --git a/src/acpi-dsdt.dsl b/src/acpi-dsdt.dsl index bb0a176..dafcf45 100644 --- a/src/acpi-dsdt.dsl +++ b/src/acpi-dsdt.dsl @@ -73,7 +73,7 @@ DefinitionBlock ( #define prt_slot3(nr) prt_slot(nr, LNKC, LNKD, LNKA, LNKB) prt_slot0(0x0000), /* Device 1 is power mgmt device, and can only use irq 9 */ - Package() { 0x0001ffff, 0, 0, 9 }, + Package() { 0x0001ffff, 0, LNKS, 0 }, Package() { 0x0001ffff, 1, LNKB, 0 }, Package() { 0x0001ffff, 2, LNKC, 0 }, Package() { 0x0001ffff, 3, LNKD, 0 }, @@ -634,6 +634,46 @@ DefinitionBlock ( Store (TMP, PRQ3) } } + Device(LNKS){ + Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link + Name(_UID, 5) + Name(_PRS, ResourceTemplate(){ + Interrupt (, Level, ActiveHigh, Shared) + { 9 } + }) + Method (_STA, 0, NotSerialized) + { + Store (0x0B, Local0) + If (And (0x80, PRQ0, Local1)) + { + Store (0x09, Local0) + } + Return (Local0) + } + Method (_DIS, 0, NotSerialized) + { + Or (PRQ0, 0x80, PRQ0) + } + Method (_CRS, 0, NotSerialized) + { + Name (PRR0, ResourceTemplate () + { + Interrupt (, Level, ActiveHigh, Shared) + {9} + }) + CreateDWordField (PRR0, 0x05, TMP) + Store (PRQ0, Local0) + If (LLess (Local0, 0x80)) + { + Store (Local0, TMP) + } + Else + { + Store (Zero, TMP) + } + Return (PRR0) + } + } } /* -- Gleb.