From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59011) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aPAKP-0004ft-IX for qemu-devel@nongnu.org; Fri, 29 Jan 2016 09:48:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aPAJN-00083O-3E for qemu-devel@nongnu.org; Fri, 29 Jan 2016 09:47:13 -0500 Received: from mail-pa0-x22f.google.com ([2607:f8b0:400e:c03::22f]:36501) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aPAJM-00083G-R9 for qemu-devel@nongnu.org; Fri, 29 Jan 2016 09:46:08 -0500 Received: by mail-pa0-x22f.google.com with SMTP id yy13so42413783pab.3 for ; Fri, 29 Jan 2016 06:46:08 -0800 (PST) Message-ID: <56AB7B48.9020007@linaro.org> Date: Fri, 29 Jan 2016 22:46:32 +0800 From: Shannon Zhao MIME-Version: 1.0 References: <1454005340-15682-1-git-send-email-wei@redhat.com> <56AB78A6.7070505@redhat.com> In-Reply-To: <56AB78A6.7070505@redhat.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH 1/1] arm: virt: change GPIO trigger interrupt to pulse List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Wei Huang Cc: "qemu-trivial@nongnu.org" , "peter.maydell@linaro.org" , "qemu-devel@nongnu.org" , "zhaoshenglong@huawei.com" On 2016/1/29 22:35, Wei Huang wrote: > > > On 01/29/2016 04:10 AM, Shannon Zhao wrote: >> Hi, >> >> This makes ACPI work well but makes DT not work. The reason is systemd or >> acpid open /dev/input/event0 failed. So the interrupt could be injected and >> could see under /proc/interrupts but guest doesn't have any action. I'll >> investigate why it opens failed later. > > That is interesting. Could you try it with the following? This reverses > the order to down-up and worked on ACPI case. > Yeah, that's very weird. > qemu_set_irq(qdev_get_gpio_in(pl061_dev, 3), 0); > qemu_set_irq(qdev_get_gpio_in(pl061_dev, 3), 1); > I'll try this tomorrow. But even if this works, it's still weird. > Thanks, > -Wei > >> >> 2016年1月29日星期五,Wei Huang 写道: >> >>> When QEMU is hook'ed up with libvirt/virsh, the first ACPI reboot >>> request will succeed; but the following shutdown/reboot requests >>> fail to trigger VMs to react. Notice that in mach-virt machine >>> model GPIO is defined as edge-triggered and active-high in ACPI. >>> This patch changes the behavior of powerdown notifier from PULLUP >>> to PULSE. It solves the problem described above (i.e. reboot >>> continues to work). >>> >>> Signed-off-by: Wei Huang > >>> --- >>> hw/arm/virt.c | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/hw/arm/virt.c b/hw/arm/virt.c >>> index 05f9087..b5468a9 100644 >>> --- a/hw/arm/virt.c >>> +++ b/hw/arm/virt.c >>> @@ -546,7 +546,7 @@ static DeviceState *pl061_dev; >>> static void virt_powerdown_req(Notifier *n, void *opaque) >>> { >>> /* use gpio Pin 3 for power button event */ >>> - qemu_set_irq(qdev_get_gpio_in(pl061_dev, 3), 1); >>> + qemu_irq_pulse(qdev_get_gpio_in(pl061_dev, 3)); >>> } >>> >>> static Notifier virt_system_powerdown_notifier = { >>> -- >>> 1.8.3.1 >>> >>> >> -- Shannon