On 01/29/2016 08:50 AM, Peter Maydell wrote: > On 29 January 2016 at 14:46, Shannon Zhao <shannon.z...@linaro.org> wrote: >> On 2016/1/29 22:35, Wei Huang wrote: >>> On 01/29/2016 04:10 AM, Shannon Zhao wrote: >>>> 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. > > I wonder if we should be asserting the GPIO pin in the powerdown-request > hook and then deasserting it on system reset somewhere...
This is another possibility. We can try to reset the pl061 state by hooking up with dc->reset and see what happens. > > thanks > -- PMM >