Set a better value for gap3 on read/write requests. Modified: trunk/reactos/drivers/storage/floppy/readwrite.c _____
Modified: trunk/reactos/drivers/storage/floppy/readwrite.c --- trunk/reactos/drivers/storage/floppy/readwrite.c 2005-04-10 16:41:32 UTC (rev 14577) +++ trunk/reactos/drivers/storage/floppy/readwrite.c 2005-04-10 16:44:00 UTC (rev 14578) @@ -430,6 +430,7 @@
NTSTATUS Status; BOOLEAN DiskChanged; ULONG_PTR TransferByteOffset; + UCHAR Gap;
PAGED_CODE();
@@ -523,6 +524,15 @@ }
/* + * FIXME: + * FloppyDeviceData.ReadWriteGapLength specify the value for the physical drive. + * We should set this value depend on the format of the inserted disk and possible + * depend on the request (read or write). A value of 0 results in one rotation + * between the sectors (7.2sec for reading a track). + */ + Gap = DriveInfo->FloppyDeviceData.ReadWriteGapLength; + + /* * Set up DMA transfer * * This is as good of a place as any to document something that used to confuse me @@ -703,7 +713,7 @@
/* Issue the read/write command to the controller. Note that it expects the opposite of WriteToDevice. */ if(HwReadWriteData(DriveInfo->ControllerInfo, !WriteToDevice, DriveInfo->UnitNumber, Cylinder, Head, StartSector, - DriveInfo->BytesPerSectorCode, DriveInfo->DiskGeometry.SectorsPerTrack, 0, 0xff) != STATUS_SUCCESS) + DriveInfo->BytesPerSectorCode, DriveInfo->DiskGeometry.SectorsPerTrack, Gap, 0xff) != STATUS_SUCCESS) { KdPrint(("floppy: ReadWritePassive(): HwReadWriteData returned failure; unable to read; completing with STATUS_UNSUCCESSFUL\n"));
RWFreeAdapterChannel(DriveInfo->ControllerInfo->AdapterObject);