Message ID | 20180308223946.26784-3-f4bug@amsat.org |
---|---|
State | New |
Headers | show |
Series | remove i386/pc dependency: generic SuperIO | expand |
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é <f4bug@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. ATB, Mark.
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é <f4bug@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. > > > ATB, > > Mark. >
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é <f4bug@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-ayland@ilande.co.uk> ATB, Mark.
On Fri, Mar 9, 2018 at 1:19 PM, Mark Cave-Ayland <mark.cave-ayland@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é <f4bug@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-ayland@ilande.co.uk> Out of curiosity, isn't ISA-DMA used by FDthree on Ultra-5/Ultra-10 machines?
On 09/03/18 20:51, Artyom Tarasenko wrote: > On Fri, Mar 9, 2018 at 1:19 PM, Mark Cave-Ayland > <mark.cave-ayland@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é <f4bug@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-ayland@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.
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*
- 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é <f4bug@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%)