aboutsummaryrefslogtreecommitdiff
path: root/include/hw/isa
diff options
context:
space:
mode:
authorSven Schnelle <svens@stackframe.org>2019-11-01 17:55:13 +0100
committerJohn Snow <jsnow@redhat.com>2020-03-27 14:30:08 -0400
commit9e58f172700a3fc56fd6c97d033efa8ade51c9ce (patch)
tree66adff16809ae427a6740601ed13ef5cb0733ea7 /include/hw/isa
parentcfe68ae025f704f336d7dd3d1903ce37b445831d (diff)
downloadqemu-9e58f172700a3fc56fd6c97d033efa8ade51c9ce.zip
qemu-9e58f172700a3fc56fd6c97d033efa8ade51c9ce.tar.gz
qemu-9e58f172700a3fc56fd6c97d033efa8ade51c9ce.tar.bz2
fdc/i8257: implement verify transfer mode
While working on the Tulip driver i tried to write some Teledisk images to a floppy image which didn't work. Turned out that Teledisk checks the written data by issuing a READ command to the FDC but running the DMA controller in VERIFY mode. As we ignored the DMA request in that case, the DMA transfer never finished, and Teledisk reported an error. The i8257 spec says about verify transfers: 3) DMA verify, which does not actually involve the transfer of data. When an 8257 channel is in the DMA verify mode, it will respond the same as described for transfer operations, except that no memory or I/O read/write control signals will be generated. Hervé proposed to remove all the dma_mode_ok stuff from fdc to have a more clear boundary between DMA and FDC, so this patch also does that. Suggested-by: Hervé Poussineau <hpoussin@reactos.org> Signed-off-by: Sven Schnelle <svens@stackframe.org> Reviewed-by: Hervé Poussineau <hpoussin@reactos.org>
Diffstat (limited to 'include/hw/isa')
-rw-r--r--include/hw/isa/isa.h1
1 files changed, 0 insertions, 1 deletions
diff --git a/include/hw/isa/isa.h b/include/hw/isa/isa.h
index e9ac1f1..59a4d4b 100644
--- a/include/hw/isa/isa.h
+++ b/include/hw/isa/isa.h
@@ -56,7 +56,6 @@ typedef int (*IsaDmaTransferHandler)(void *opaque, int nchan, int pos,
typedef struct IsaDmaClass {
InterfaceClass parent;
- IsaDmaTransferMode (*get_transfer_mode)(IsaDma *obj, int nchan);
bool (*has_autoinitialization)(IsaDma *obj, int nchan);
int (*read_memory)(IsaDma *obj, int nchan, void *buf, int pos, int len);
int (*write_memory)(IsaDma *obj, int nchan, void *buf, int pos, int len);