On 09/03/18 20:51, Artyom Tarasenko wrote:

On Fri, Mar 9, 2018 at 1:19 PM, Mark Cave-Ayland
<mark.cave-ayl...@ilande.co.uk> wrote:
On 09/03/18 10:43, Philippe Mathieu-Daudé wrote:


Hi Mark,

On 03/09/2018 11:32 AM, Mark Cave-Ayland wrote:

On 08/03/18 22:39, Philippe Mathieu-Daudé wrote:

- Move the header from hw/isa/ to hw/dma/
- Remove the old i386/pc dependency
- use a bool type for the high_page_enable argument

Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org>
---
    include/hw/{isa => dma}/i8257.h | 6 ++++++
    include/hw/isa/isa.h            | 2 --
    hw/dma/i82374.c                 | 3 ++-
    hw/dma/i8257.c                  | 4 ++--
    hw/i386/pc.c                    | 3 ++-
    hw/mips/mips_fulong2e.c         | 3 ++-
    hw/mips/mips_jazz.c             | 3 ++-
    hw/mips/mips_malta.c            | 3 ++-
    hw/sparc/sun4m.c                | 4 ----
    hw/sparc64/sun4u.c              | 4 ----
    MAINTAINERS                     | 2 +-
    11 files changed, 19 insertions(+), 18 deletions(-)
    rename include/hw/{isa => dma}/i8257.h (86%)

diff --git a/include/hw/isa/i8257.h b/include/hw/dma/i8257.h
similarity index 86%
rename from include/hw/isa/i8257.h
rename to include/hw/dma/i8257.h
index 88a2766a3f..2cab50bb6c 100644
--- a/include/hw/isa/i8257.h
+++ b/include/hw/dma/i8257.h
@@ -1,6 +1,10 @@
    #ifndef HW_I8257_H
    #define HW_I8257_H
    +#include "hw/hw.h"
+#include "hw/isa/isa.h"
+#include "exec/ioport.h"
+
    #define TYPE_I8257 "i8257"
      typedef struct I8257Regs {
@@ -40,4 +44,6 @@ typedef struct I8257State {
        PortioList portio_pageh;
    } I8257State;
    +void i8257_dma_init(ISABus *bus, bool high_page_enable);
+
    #endif
diff --git a/include/hw/isa/isa.h b/include/hw/isa/isa.h
index 95593408ef..b9dbab24b4 100644
--- a/include/hw/isa/isa.h
+++ b/include/hw/isa/isa.h
@@ -151,6 +151,4 @@ static inline ISABus
*isa_bus_from_device(ISADevice *d)
        return ISA_BUS(qdev_get_parent_bus(DEVICE(d)));
    }
    -/* i8257.c */
-void DMA_init(ISABus *bus, int high_page_enable);
    #endif
diff --git a/hw/dma/i82374.c b/hw/dma/i82374.c
index 6c0f975df0..83c87d92e0 100644
--- a/hw/dma/i82374.c
+++ b/hw/dma/i82374.c
@@ -24,6 +24,7 @@
      #include "qemu/osdep.h"
    #include "hw/isa/isa.h"
+#include "hw/dma/i8257.h"
      #define TYPE_I82374 "i82374"
    #define I82374(obj) OBJECT_CHECK(I82374State, (obj), TYPE_I82374)
@@ -123,7 +124,7 @@ static void i82374_realize(DeviceState *dev, Error
**errp)
        portio_list_add(&s->port_list,
isa_address_space_io(&s->parent_obj),
                        s->iobase);
    -    DMA_init(isa_bus_from_device(ISA_DEVICE(dev)), 1);
+    i8257_dma_init(isa_bus_from_device(ISA_DEVICE(dev)), true);
        memset(s->commands, 0, sizeof(s->commands));
    }
    diff --git a/hw/dma/i8257.c b/hw/dma/i8257.c
index bd23e893bf..52675e97c9 100644
--- a/hw/dma/i8257.c
+++ b/hw/dma/i8257.c
@@ -24,7 +24,7 @@
    #include "qemu/osdep.h"
    #include "hw/hw.h"
    #include "hw/isa/isa.h"
-#include "hw/isa/i8257.h"
+#include "hw/dma/i8257.h"
    #include "qemu/main-loop.h"
    #include "trace.h"
    @@ -622,7 +622,7 @@ static void i8257_register_types(void)
      type_init(i8257_register_types)
    -void DMA_init(ISABus *bus, int high_page_enable)
+void i8257_dma_init(ISABus *bus, bool high_page_enable)
    {
        ISADevice *isa1, *isa2;
        DeviceState *d;
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 81364932d3..ec75b09a8f 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -41,6 +41,7 @@
    #include "elf.h"
    #include "multiboot.h"
    #include "hw/timer/mc146818rtc.h"
+#include "hw/dma/i8257.h"
    #include "hw/timer/i8254.h"
    #include "hw/audio/pcspk.h"
    #include "hw/pci/msi.h"
@@ -1609,7 +1610,7 @@ void pc_basic_device_init(ISABus *isa_bus,
qemu_irq *gsi,
        port92_init(port92, a20_line[1]);
        g_free(a20_line);
    -    DMA_init(isa_bus, 0);
+    i8257_dma_init(isa_bus, 0);
          for(i = 0; i < MAX_FD; i++) {
            fd[i] = drive_get(IF_FLOPPY, 0, i);
diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c
index dc77b55755..0545fcd899 100644
--- a/hw/mips/mips_fulong2e.c
+++ b/hw/mips/mips_fulong2e.c
@@ -22,6 +22,7 @@
    #include "qapi/error.h"
    #include "hw/hw.h"
    #include "hw/i386/pc.h"
+#include "hw/dma/i8257.h"
    #include "hw/char/serial.h"
    #include "hw/char/parallel.h"
    #include "hw/block/fdc.h"
@@ -360,7 +361,7 @@ static void mips_fulong2e_init(MachineState
*machine)
          /* init other devices */
        pit = i8254_pit_init(isa_bus, 0x40, 0, NULL);
-    DMA_init(isa_bus, 0);
+    i8257_dma_init(isa_bus, 0);
          /* Super I/O */
        isa_create_simple(isa_bus, "i8042");
diff --git a/hw/mips/mips_jazz.c b/hw/mips/mips_jazz.c
index b24305b7b4..827ffdcd4a 100644
--- a/hw/mips/mips_jazz.c
+++ b/hw/mips/mips_jazz.c
@@ -27,6 +27,7 @@
    #include "hw/mips/mips.h"
    #include "hw/mips/cpudevs.h"
    #include "hw/i386/pc.h"
+#include "hw/dma/i8257.h"
    #include "hw/char/serial.h"
    #include "hw/char/parallel.h"
    #include "hw/isa/isa.h"
@@ -220,7 +221,7 @@ static void mips_jazz_init(MachineState *machine,
        /* ISA devices */
        i8259 = i8259_init(isa_bus, env->irq[4]);
        isa_bus_irqs(isa_bus, i8259);
-    DMA_init(isa_bus, 0);
+    i8257_dma_init(isa_bus, 0);
        pit = i8254_pit_init(isa_bus, 0x40, 0, NULL);
        pcspk_init(isa_bus, pit);
    diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
index c74882c7e9..9cb86c432e 100644
--- a/hw/mips/mips_malta.c
+++ b/hw/mips/mips_malta.c
@@ -27,6 +27,7 @@
    #include "cpu.h"
    #include "hw/hw.h"
    #include "hw/i386/pc.h"
+#include "hw/dma/i8257.h"
    #include "hw/char/serial.h"
    #include "hw/char/parallel.h"
    #include "hw/block/fdc.h"
@@ -1209,7 +1210,7 @@ void mips_malta_init(MachineState *machine)
        smbus_eeprom_init(smbus, 8, smbus_eeprom_buf, smbus_eeprom_size);
        g_free(smbus_eeprom_buf);
        pit = i8254_pit_init(isa_bus, 0x40, 0, NULL);
-    DMA_init(isa_bus, 0);
+    i8257_dma_init(isa_bus, 0);
          /* Super I/O */
        isa_create_simple(isa_bus, "i8042");
diff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c
index 0f5804b3b4..fa1bfd6c92 100644
--- a/hw/sparc/sun4m.c
+++ b/hw/sparc/sun4m.c
@@ -99,10 +99,6 @@ struct sun4m_hwdef {
        uint8_t nvram_machine_id;
    };
    -void DMA_init(ISABus *bus, int high_page_enable)
-{
-}
-
    static void fw_cfg_boot_set(void *opaque, const char *boot_device,
                                Error **errp)
    {
diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
index ceb1ba7eaf..0ca0243821 100644
--- a/hw/sparc64/sun4u.c
+++ b/hw/sparc64/sun4u.c
@@ -90,10 +90,6 @@ typedef struct EbusState {
    #define TYPE_EBUS "ebus"
    #define EBUS(obj) OBJECT_CHECK(EbusState, (obj), TYPE_EBUS)
    -void DMA_init(ISABus *bus, int high_page_enable)
-{
-}
-
    static void fw_cfg_boot_set(void *opaque, const char *boot_device,
                                Error **errp)
    {
diff --git a/MAINTAINERS b/MAINTAINERS
index c0f1620f3a..335c6c9f65 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -929,8 +929,8 @@ F: hw/timer/mc146818rtc*
    F: hw/watchdog/wdt_ib700.c
    F: include/hw/display/vga.h
    F: include/hw/char/parallel.h
+F: include/hw/dma/i8257.h
    F: include/hw/i2c/pm_smbus.h
-F: include/hw/isa/i8257.h
    F: include/hw/timer/hpet.h
    F: include/hw/timer/i8254*
    F: include/hw/timer/mc146818rtc*


Presumably these DMA_init() functions have been unused on sun4u/sun4m
for a while which is why they are being removed? Might be worth a
mention of this in the commit message.


Apparently (from git log) once the Sparc machine was copied from the PC
machine (~ 6f7e9aec5), using an empty stub, and finally got cleaned in
ba0a71022 but this function was missed. So this function has never been
implemented.

I'll add a comment if I need to respin, or gently add the maintainer to
update the commit message if this series is accepted :)

Thanks!

Phil.


Got it. In that case for sun4/sun4u:

Reviewed-by: Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk>


Out of curiosity, isn't ISA-DMA used by FDthree on Ultra-5/Ultra-10 machines?

Possibly - it's something I really test on a regular basis though. I believe Hervé switched the DMA interface over to use the new API on a previous patchset, so the function itself is obsolete regardless.


ATB,

Mark.

Reply via email to