From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=48705 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PjvZK-0006Zh-VP for qemu-devel@nongnu.org; Mon, 31 Jan 2011 10:21:33 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PjvZI-0001eg-Ov for qemu-devel@nongnu.org; Mon, 31 Jan 2011 10:21:30 -0500 Received: from mail-ey0-f173.google.com ([209.85.215.173]:60880) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PjvZI-0001b7-Jg for qemu-devel@nongnu.org; Mon, 31 Jan 2011 10:21:28 -0500 Received: by mail-ey0-f173.google.com with SMTP id 7so2682844eyg.4 for ; Mon, 31 Jan 2011 07:21:28 -0800 (PST) From: Dmitry Eremin-Solenikov Date: Mon, 31 Jan 2011 18:20:47 +0300 Message-Id: <1296487250-28254-8-git-send-email-dbaryshkov@gmail.com> In-Reply-To: <1296487250-28254-1-git-send-email-dbaryshkov@gmail.com> References: <1296487250-28254-1-git-send-email-dbaryshkov@gmail.com> Subject: [Qemu-devel] [PATCH 08/11] Add scoop post_load callback that sets IRQs to loaded levels List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Signed-off-by: Dmitry Eremin-Solenikov --- hw/zaurus.c | 19 ++++++++++++++++++- 1 files changed, 18 insertions(+), 1 deletions(-) diff --git a/hw/zaurus.c b/hw/zaurus.c index fca11a5..90fedc9 100644 --- a/hw/zaurus.c +++ b/hw/zaurus.c @@ -181,17 +181,34 @@ static int scoop_init(SysBusDevice *dev) return 0; } +static int scoop_post_load(void *opaque, int version_id) +{ + ScoopInfo *s = (ScoopInfo *) opaque; + int i; + uint32_t level; + + level = s->gpio_level & s->gpio_dir; + + for (i = 1; i < 1 << 16; i <<= 1) { + qemu_set_irq(s->handler[i], level & i); + } + + s->prev_level = level; + + return 0; +} + static bool is_version_0 (void *opaque, int version_id) { return version_id == 0; } - static const VMStateDescription vmstate_scoop_regs = { .name = "scoop", .version_id = 1, .minimum_version_id = 0, .minimum_version_id_old = 0, + .post_load = scoop_post_load, .fields = (VMStateField []) { VMSTATE_UINT16(status, ScoopInfo), VMSTATE_UINT16(power, ScoopInfo), -- 1.7.2.3