[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH for-2.13 3/5] hw/dma/i8257: Split i8257_dma_init() b
From: |
Philippe Mathieu-Daudé |
Subject: |
[Qemu-devel] [PATCH for-2.13 3/5] hw/dma/i8257: Split i8257_dma_init() by master/slave |
Date: |
Mon, 26 Mar 2018 12:34:39 -0300 |
This emphasises than two controller are created (in master/slave configuration).
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
---
hw/dma/i8257.c | 32 +++++++++++++++++++++++++-------
1 file changed, 25 insertions(+), 7 deletions(-)
diff --git a/hw/dma/i8257.c b/hw/dma/i8257.c
index df030f934c..72f8893b9e 100644
--- a/hw/dma/i8257.c
+++ b/hw/dma/i8257.c
@@ -622,26 +622,44 @@ static void i8257_register_types(void)
type_init(i8257_register_types)
-void i8257_dma_init(ISABus *bus, bool high_page_enable)
+static ISADevice *i8257_dma_init_master(ISABus *bus, bool high_page_enable)
{
- ISADevice *isa1, *isa2;
+ ISADevice *isa;
DeviceState *d;
- isa1 = isa_create(bus, TYPE_I8257);
- d = DEVICE(isa1);
+ isa = isa_create(bus, TYPE_I8257);
+ d = DEVICE(isa);
qdev_prop_set_int32(d, "base", 0x00);
qdev_prop_set_int32(d, "page-base", 0x80);
qdev_prop_set_int32(d, "pageh-base", high_page_enable ? 0x480 : -1);
qdev_prop_set_int32(d, "dshift", 0);
qdev_init_nofail(d);
- isa2 = isa_create(bus, TYPE_I8257);
- d = DEVICE(isa2);
+ return isa;
+}
+
+static ISADevice *i8257_dma_init_slave(ISABus *bus, bool high_page_enable)
+{
+ ISADevice *isa;
+ DeviceState *d;
+
+ isa = isa_create(bus, TYPE_I8257);
+ d = DEVICE(isa);
qdev_prop_set_int32(d, "base", 0xc0);
qdev_prop_set_int32(d, "page-base", 0x88);
qdev_prop_set_int32(d, "pageh-base", high_page_enable ? 0x488 : -1);
qdev_prop_set_int32(d, "dshift", 1);
qdev_init_nofail(d);
- isa_bus_dma(bus, ISADMA(isa1), ISADMA(isa2));
+ return isa;
+}
+
+void i8257_dma_init(ISABus *bus, bool high_page_enable)
+{
+ ISADevice *master, *slave;
+
+ master = i8257_dma_init_master(bus, high_page_enable);
+ slave = i8257_dma_init_slave(bus, high_page_enable);
+
+ isa_bus_dma(bus, ISADMA(master), ISADMA(slave));
}
--
2.16.3
- [Qemu-devel] [PATCH 0/5] dma/i82374: avoid double creation of i82374 device, Philippe Mathieu-Daudé, 2018/03/26
- [Qemu-devel] [PATCH for-2.12 1/5] hw/dma/i82374: Avoid double creation of the 82374 controller, Philippe Mathieu-Daudé, 2018/03/26
- [Qemu-devel] [PATCH for-2.13 2/5] hw/dma/i8257: Define I8257_CHANNEL_COUNT, Philippe Mathieu-Daudé, 2018/03/26
- [Qemu-devel] [PATCH for-2.13 /5] hw/dma/i8257: Rename i8257_dma_init() -> i8257_dma_init_cascaded(), Philippe Mathieu-Daudé, 2018/03/26
- [Qemu-devel] [PATCH for-2.13 3/5] hw/dma/i8257: Split i8257_dma_init() by master/slave,
Philippe Mathieu-Daudé <=
- [Qemu-devel] [PATCH for-2.13 5/5] hw/dma/i8257: Rename i8257_dma_init(false) -> i8257_dma_init_pc_at(), Philippe Mathieu-Daudé, 2018/03/26
- [Qemu-devel] [PATCH for-2.13 4/5] hw/dma/i8257: Rename i8257_dma_init() -> i8257_dma_init_cascaded(), Philippe Mathieu-Daudé, 2018/03/26
- Re: [Qemu-devel] [PATCH 0/5] dma/i82374: avoid double creation of i82374 device, Eduardo Otubo, 2018/03/27