From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38055) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VJxXq-0005aT-DW for qemu-devel@nongnu.org; Wed, 11 Sep 2013 23:26:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VJxXf-0003CA-MD for qemu-devel@nongnu.org; Wed, 11 Sep 2013 23:26:14 -0400 Received: from mail-pd0-x22c.google.com ([2607:f8b0:400e:c02::22c]:44242) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VJxXf-0003Bx-F0 for qemu-devel@nongnu.org; Wed, 11 Sep 2013 23:26:03 -0400 Received: by mail-pd0-f172.google.com with SMTP id z10so10115766pdj.17 for ; Wed, 11 Sep 2013 20:26:02 -0700 (PDT) From: Liu Ping Fan Date: Thu, 12 Sep 2013 11:25:16 +0800 Message-Id: <1378956318-23395-4-git-send-email-pingfank@linux.vnet.ibm.com> In-Reply-To: <1378956318-23395-1-git-send-email-pingfank@linux.vnet.ibm.com> References: <1378956318-23395-1-git-send-email-pingfank@linux.vnet.ibm.com> Subject: [Qemu-devel] [PATCH v5 3/5] PC: use qdev_xx to create hpet instead of sysbus_create_xx List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Peter Maydell , Anthony Liguori , Jan Kiszka , Stefan Hajnoczi , Paolo Bonzini , =?UTF-8?q?Andreas=20F=C3=A4rber?= sysbus_create_xx func does not allow us to set a device's extra properties. While hpet need to set its compat property before initialization, so we abandon the wrapper function, and spread its logic "inline" Signed-off-by: Liu Ping Fan --- hw/i386/pc.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 0c313fe..f2b7b6c 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1246,9 +1246,16 @@ void pc_basic_device_init(ISABus *isa_bus, qemu_irq *gsi, * when the HPET wants to take over. Thus we have to disable the latter. */ if (!no_hpet && (!kvm_irqchip_in_kernel() || kvm_has_pit_state2())) { - hpet = sysbus_try_create_simple("hpet", HPET_BASE, NULL); - + /* In order to set property, here not using sysbus_try_create_simple */ + hpet = qdev_try_create(NULL, "hpet"); if (hpet) { + /* tmp fix. For compat, hard code to IRQ2 until we have correct + * compat property and differentiate pc-piix with pc-q35 + */ + qdev_prop_set_uint32(hpet, "intcap", 0x4); + qdev_init_nofail(hpet); + sysbus_mmio_map(SYS_BUS_DEVICE(hpet), 0, HPET_BASE); + for (i = 0; i < GSI_NUM_PINS; i++) { sysbus_connect_irq(SYS_BUS_DEVICE(hpet), i, gsi[i]); } -- 1.8.1.4