[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 00/19] ISA DMA controllers cleanup (i8257, i8
From: |
John Snow |
Subject: |
Re: [Qemu-devel] [PATCH v2 00/19] ISA DMA controllers cleanup (i8257, i82374) |
Date: |
Tue, 26 Jan 2016 15:26:31 -0500 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 |
On 01/10/2016 10:24 AM, Hervé Poussineau wrote:
> Hi,
>
> This patchset is a cleanup of the i8257/i82374 ISA DMA controllers.
> Global DMA_* functions will be obsoleted and then deleted, and ISA devices
> will not
> be tied anymore to i8257 DMA device implementation.
>
> This paves the way to fix support for floppy DMA operations on
> sparc/sparc64/MIPS Magnum
> platforms (which don't use a i8257 DMA controller), and to support multiple
> ISA buses on
> the same machine.
>
> Patch 1 cleans up the i82374 DMA controller, by removing device inheritance.
> Patches 2 to 9 change i8257 to current standards (structures and functions
> renaming, QOM)
> Patches 10 to 18 create and use a IsaDma interface, to separate devices from
> i8257
> device implementation.
> Patch 19 removes now unused DMA_* functions.
>
> Hervé
>
> Changes since v1:
> - added patches 4 and 9
> - simplify patch 12, so that it compiles alone (John Snow)
> - fix warning with clang (John Snow)
>
> Hervé Poussineau (19):
> i82374: device only existed as ISA device, so simplify device
> i8257: pass ISA bus to DMA_init() function
> i8257: rename struct dma_cont to I8257State
> i8257: rename struct dma_regs to I8257Regs
> i8257: rename functions to start with i8257_ prefix
> i8257: make the DMA running method per controller
> i8257: add missing const
> i8257: QOM'ify
> i8257: move state definition to new independent header
> isa: add an ISA DMA interface, and store it within the ISA bus
Build failure happens here:
/home/bos/jhuston/src/qemu/rules.mak:57: recipe for target
'hw/9pfs/9p.o' failed
make: *** [hw/9pfs/9p.o] Error 1
In file included from /home/bos/jhuston/src/qemu/include/hw/i386/pc.h:8:0,
from /home/bos/jhuston/src/qemu/vl.c:67:
/home/bos/jhuston/src/qemu/include/hw/isa/isa.h:48:1: error: useless
storage class specifier in empty declaration [-Werror]
};
^
cc1: all warnings being treated as errors
/home/bos/jhuston/src/qemu/rules.mak:57: recipe for target 'vl.o' failed
make: *** [vl.o] Error 1
> i8257: implement the IsaDma interface
Fixes itself here.
> magnum: disable floppy DMA for now
> sparc: disable floppy DMA
> sparc64: disable floppy DMA
Another build error arises here.
CC sparc64-softmmu/hw/sparc64/sun4u.o
/home/bos/jhuston/src/qemu/hw/sparc64/sun4u.c: In function ‘sun4uv_init’:
/home/bos/jhuston/src/qemu/hw/sparc64/sun4u.c:862:9: error: implicit
declaration of function ‘qdev_prop_set_drive_nofail’
[-Werror=implicit-function-declaration]
qdev_prop_set_drive_nofail(dev, "driveA",
blk_by_legacy_dinfo(fd[0]));
^
/home/bos/jhuston/src/qemu/hw/sparc64/sun4u.c:862:9: error: nested
extern declaration of ‘qdev_prop_set_drive_nofail’ [-Werror=nested-externs]
cc1: all warnings being treated as errors
/home/bos/jhuston/src/qemu/rules.mak:57: recipe for target
'hw/sparc64/sun4u.o' failed
make[1]: *** [hw/sparc64/sun4u.o] Error 1
Makefile:186: recipe for target 'subdir-sparc64-softmmu' failed
make: *** [subdir-sparc64-softmmu] Error 2
make: *** Waiting for unfinished jobs....
> fdc: use IsaDma interface instead of global DMA_* functions
> cs4231a: use IsaDma interface instead of global DMA_* functions
> gus: use IsaDma interface instead of global DMA_* functions
> sb16: use IsaDma interface instead of global DMA_* functions
> dma: remove now useless DMA_* functions
>
> hw/audio/cs4231a.c | 23 ++-
> hw/audio/gus.c | 20 ++-
> hw/audio/sb16.c | 23 ++-
> hw/block/fdc.c | 65 +++++---
> hw/dma/i82374.c | 58 +++----
> hw/dma/i8257.c | 395
> ++++++++++++++++++++++++++----------------------
> hw/i386/pc.c | 2 +-
> hw/isa/isa-bus.c | 21 +++
> hw/mips/mips_fulong2e.c | 2 +-
> hw/mips/mips_jazz.c | 5 +-
> hw/mips/mips_malta.c | 2 +-
> hw/sparc/sun4m.c | 24 +--
> hw/sparc64/sun4u.c | 37 ++---
> include/hw/isa/i8257.h | 42 +++++
> include/hw/isa/isa.h | 51 +++++--
> include/qemu/typedefs.h | 1 +
> 16 files changed, 454 insertions(+), 317 deletions(-)
> create mode 100644 include/hw/isa/i8257.h
>
- [Qemu-devel] [PATCH v2 15/19] fdc: use IsaDma interface instead of global DMA_* functions, (continued)
- [Qemu-devel] [PATCH v2 15/19] fdc: use IsaDma interface instead of global DMA_* functions, Hervé Poussineau, 2016/01/10
- [Qemu-devel] [PATCH v2 05/19] i8257: rename functions to start with i8257_ prefix, Hervé Poussineau, 2016/01/10
- [Qemu-devel] [PATCH v2 19/19] dma: remove now useless DMA_* functions, Hervé Poussineau, 2016/01/10
- [Qemu-devel] [PATCH v2 01/19] i82374: device only existed as ISA device, so simplify device, Hervé Poussineau, 2016/01/10
- [Qemu-devel] [PATCH v2 09/19] i8257: move state definition to new independent header, Hervé Poussineau, 2016/01/10
- [Qemu-devel] [PATCH v2 14/19] sparc64: disable floppy DMA, Hervé Poussineau, 2016/01/10
- [Qemu-devel] [PATCH v2 16/19] cs4231a: use IsaDma interface instead of global DMA_* functions, Hervé Poussineau, 2016/01/10
- Re: [Qemu-devel] [PATCH v2 00/19] ISA DMA controllers cleanup (i8257, i82374), Hervé Poussineau, 2016/01/20
- Re: [Qemu-devel] [PATCH v2 00/19] ISA DMA controllers cleanup (i8257, i82374),
John Snow <=