diff --git a/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp b/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp index 2a7cb7447b..316805272d 100644 --- a/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp +++ b/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp @@ -769,7 +769,8 @@ usb_disk_device_added(usb_device newDevice, void **cookie) // initialize this lun result = usb_disk_inquiry(lun); - for (uint32 tries = 0; tries < 3; tries++) { + for (uint8 tries = 0; tries < 8; tries++) { + TRACE("usb lun %d inquiry attempt %d begin\n", i, tries); status_t ready = usb_disk_test_unit_ready(lun); if (ready == B_OK || ready == B_DEV_NO_MEDIA) { if (ready == B_OK) { @@ -779,12 +780,19 @@ usb_disk_device_added(usb_device newDevice, void **cookie) // some devices lock up when getting the mode sense else if (/*usb_disk_mode_sense(lun) != B_OK*/true) lun->write_protected = false; + + TRACE("usb lun %d ready. write protected = %c\n", i, + lun->write_protected ? 'y' : 'n'); + + break; } - - break; + TRACE("usb lun %d not ready, attempt %d\n", i, tries); } + TRACE("usb lun %d inquiry attempt %d failed\n", i, tries); - snooze(10000); + uint32_t snoozeTime = 1000000 * tries; + TRACE("snoozing %u microseconds for usb lun\n", snoozeTime); + snooze(snoozeTime); } if (result != B_OK)