diff --git a/src/add-ons/kernel/bus_managers/ata/dma.c b/src/add-ons/kernel/bus_managers/ata/dma.c index 3ca6ef4d36..b249655a29 100644 --- a/src/add-ons/kernel/bus_managers/ata/dma.c +++ b/src/add-ons/kernel/bus_managers/ata/dma.c @@ -18,7 +18,7 @@ } -static int +int get_device_dma_mode(ide_device_info *device) { ide_device_infoblock *infoblock = &device->infoblock; diff --git a/src/add-ons/kernel/bus_managers/ata/ide_internal.h b/src/add-ons/kernel/bus_managers/ata/ide_internal.h index 6cf6b429ca..0601da510e 100644 --- a/src/add-ons/kernel/bus_managers/ata/ide_internal.h +++ b/src/add-ons/kernel/bus_managers/ata/ide_internal.h @@ -244,6 +244,7 @@ bool finish_dma(ide_device_info *device); void abort_dma(ide_device_info *device, ata_request *request); bool configure_dma(ide_device_info *device); +int get_device_dma_mode(ide_device_info *device); // emulation.c diff --git a/src/add-ons/kernel/bus_managers/ata/ide_sim.c b/src/add-ons/kernel/bus_managers/ata/ide_sim.c index a2b88c1e1c..afbc5943e3 100644 --- a/src/add-ons/kernel/bus_managers/ata/ide_sim.c +++ b/src/add-ons/kernel/bus_managers/ata/ide_sim.c @@ -449,7 +449,7 @@ ide_sim_ioctl(ide_bus_info *bus, uint8 targetID, uint32 op, void *buffer, size_t status.dma_status = 2; status.pio_mode = 0; - status.dma_mode = 0; + status.dma_mode = get_device_dma_mode(device); memcpy(buffer, &status, min(sizeof(status), length)); return B_OK;