From a046d61f81ea739a441650fcd79f027de11337cb Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Fri, 27 Aug 2010 20:17:12 +0000 Subject: [PATCH] * Write operation data direction is obviously host-to-device * Write operation will always return an error, one needs to send request sense until the write is actually done. This gets floppy writing working. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38406 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../kernel/drivers/disk/usb/usb_floppy/usb_disk.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/add-ons/kernel/drivers/disk/usb/usb_floppy/usb_disk.cpp b/src/add-ons/kernel/drivers/disk/usb/usb_floppy/usb_disk.cpp index b3e741981f..34fbd04da5 100644 --- a/src/add-ons/kernel/drivers/disk/usb/usb_floppy/usb_disk.cpp +++ b/src/add-ons/kernel/drivers/disk/usb/usb_floppy/usb_disk.cpp @@ -880,7 +880,14 @@ usb_disk_block_write(device_lun *lun, uint32 blockPosition, uint16 blockCount, do { snooze(10000); result = usb_disk_operation(lun, commandBlock, buffer, length, - true); + false); + + TRACE("write result : %s\n", strerror(result)); + + do { + snooze(10000); + result = usb_disk_request_sense(lun); + } while (result != B_OK); } while (result != B_OK); if (result == B_OK)