qemu-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]