From: Wei Huang <wei@redhat.com>
To: Shannon Zhao <zhaoshenglong@huawei.com>,
Peter Maydell <peter.maydell@linaro.org>,
Michael Tokarev <mjt@tls.msk.ru>
Cc: QEMU Trivial <qemu-trivial@nongnu.org>,
QEMU Developers <qemu-devel@nongnu.org>,
Shannon Zhao <shannon.zhao@linaro.org>
Subject: Re: [Qemu-devel] [PATCH 1/1] arm: virt: change GPIO trigger interrupt to pulse
Date: Thu, 4 Feb 2016 00:10:06 -0600 [thread overview]
Message-ID: <56B2EB3E.2000908@redhat.com> (raw)
In-Reply-To: <56B2AD13.6030504@huawei.com>
On 02/03/2016 07:44 PM, Shannon Zhao wrote:
>
>
> On 2016/2/4 0:01, Wei Huang wrote:
>>
>> On 2/3/16 04:46, Peter Maydell wrote:
>>>> On 3 February 2016 at 07:15, Michael Tokarev <mjt@tls.msk.ru> wrote:
>>>>>> 28.01.2016 21:22, Wei Huang wrote:
>>>>>>>> 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).
>>>>>>
>>>>>> So, what's the outcome of this? :)
>>>>
>>>> This patch is definitely wrong. The patch to fix up the
>>>> gpio reset stuff is definitely the right idea. Whether it
>>>> fixes the reported failure or some further change is also
>>>> needed is currently unclear.
>> I will NAK this one for now. Please see V2 patch, which is necessary. In
>> the meanwhile, I think there is a problem with pulling-up only in
>> current implementation. Let me debug Shannon's DT problem first.
>>
> Hi Wei,
>
> The reason of DT problem is that when we use qemu_irq_pulse(i.e
> qemu_set_irq(qdev_get_gpio_in(pl061_dev, 3), 1);
> qemu_set_irq(qdev_get_gpio_in(pl061_dev, 3), 0);), it will inject the
> GPIO interrupt until it executes
> qemu_set_irq(qdev_get_gpio_in(pl061_dev, 3), 0) because the qemu main
> thread is serialized and then guest will get the button value as zero,
> so it's failed to report the input event.
>
> See gpio_keys_gpio_report_event
> in drivers/input/keyboard/gpio_keys.c
> int state = gpio_get_value_cansleep(button->gpio);
>
> The state is always zero.
I reversed the order of edge pulling. The state is 1 according to printk
inside gpio_keys driver. However the reboot still failed with two
reboots (1 very early, 1 later).
>
> The solution I think would be making the each
> qemu_set_irq(qdev_get_gpio_in(pl061_dev, 3), 1 or 0) cloud inject an
> interrupt to guest.
>
> Thanks,
>
next prev parent reply other threads:[~2016-02-04 6:10 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-28 18:22 [Qemu-devel] [PATCH 1/1] arm: virt: change GPIO trigger interrupt to pulse Wei Huang
2016-01-29 10:10 ` Shannon Zhao
2016-01-29 14:35 ` Wei Huang
2016-01-29 14:46 ` Shannon Zhao
2016-01-29 14:50 ` Wei Huang
2016-01-29 15:22 ` Shannon Zhao
2016-01-29 14:50 ` Peter Maydell
2016-01-29 15:13 ` Wei Huang
2016-01-29 15:29 ` Peter Maydell
2016-02-01 10:17 ` Igor Mammedov
2016-02-01 17:24 ` Wei Huang
2016-01-30 8:18 ` Shannon Zhao
2016-02-03 7:15 ` Michael Tokarev
2016-02-03 10:46 ` Peter Maydell
2016-02-03 16:01 ` Wei Huang
2016-02-04 1:44 ` Shannon Zhao
2016-02-04 6:10 ` Wei Huang [this message]
2016-02-04 6:51 ` Shannon Zhao
2016-02-09 22:59 ` Wei Huang
2016-02-20 10:53 ` Shannon Zhao
2016-02-24 22:22 ` Wei Huang
2016-02-26 12:31 ` Shannon Zhao
2016-02-26 12:53 ` Peter Maydell
2016-02-26 14:54 ` Shannon Zhao
2016-02-26 15:06 ` Peter Maydell
2016-02-26 15:28 ` Wei Huang
2016-02-26 15:42 ` Peter Maydell
2016-02-27 1:55 ` Shannon Zhao
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56B2EB3E.2000908@redhat.com \
--to=wei@redhat.com \
--cc=mjt@tls.msk.ru \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-trivial@nongnu.org \
--cc=shannon.zhao@linaro.org \
--cc=zhaoshenglong@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).