1
commit 43b0a943462c2620569776cc43e5b3fa04a73a3a
2
Author: aurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>
3
Date: Sat Mar 29 12:15:35 2008 +0000
5
IDE: Improve DMA transfers by increasing the buffer size
10
git-svn-id: svn+ssh://svn.savannah.nongnu.org/qemu/trunk@4132 c046a42c-6fe2-441c-8c8c-71466251a162
12
Index: qemu-0.9.1/hw/ide.c
13
===================================================================
14
--- qemu-0.9.1.orig/hw/ide.c 2008-01-06 20:38:42.000000000 +0100
15
+++ qemu-0.9.1/hw/ide.c 2008-04-14 11:26:14.000000000 +0200
17
/* set to 1 set disable mult support */
18
#define MAX_MULT_SECTORS 16
20
+#define IDE_DMA_BUF_SECTORS 256
22
+#if (IDE_DMA_BUF_SECTORS < MAX_MULT_SECTORS)
23
+#error "IDE_DMA_BUF_SECTORS must be bigger or equal to MAX_MULT_SECTORS"
28
#define ATAPI_PACKET_SIZE 12
31
/* launch next transfer */
33
- if (n > MAX_MULT_SECTORS)
34
- n = MAX_MULT_SECTORS;
35
+ if (n > IDE_DMA_BUF_SECTORS)
36
+ n = IDE_DMA_BUF_SECTORS;
37
s->io_buffer_index = 0;
38
s->io_buffer_size = n * 512;
42
/* launch next transfer */
44
- if (n > MAX_MULT_SECTORS)
45
- n = MAX_MULT_SECTORS;
46
+ if (n > IDE_DMA_BUF_SECTORS)
47
+ n = IDE_DMA_BUF_SECTORS;
48
s->io_buffer_index = 0;
49
s->io_buffer_size = n * 512;
54
n = s->packet_transfer_size >> 11;
55
- if (n > (MAX_MULT_SECTORS / 4))
56
- n = (MAX_MULT_SECTORS / 4);
57
+ if (n > (IDE_DMA_BUF_SECTORS / 4))
58
+ n = (IDE_DMA_BUF_SECTORS / 4);
59
s->io_buffer_size = n * 2048;
64
for(i = 0; i < 2; i++) {
66
- s->io_buffer = qemu_memalign(512, MAX_MULT_SECTORS*512 + 4);
67
+ s->io_buffer = qemu_memalign(512, IDE_DMA_BUF_SECTORS*512 + 4);