Print out correct USB connection speed for USB 3.0 mass storage devices.

Approved by:    thompsa (mentor)
This commit is contained in:
Hans Petter Selasky 2010-10-04 23:30:44 +00:00
parent ad05f0993c
commit c791ca5046

View file

@ -231,6 +231,7 @@ TUNABLE_INT("hw.usb.umass.debug", &umass_debug);
/* Approximate maximum transfer speeds (assumes 33% overhead). */
#define UMASS_FULL_TRANSFER_SPEED 1000
#define UMASS_HIGH_TRANSFER_SPEED 40000
#define UMASS_SUPER_TRANSFER_SPEED 400000
#define UMASS_FLOPPY_TRANSFER_SPEED 20
#define UMASS_TIMEOUT 5000 /* ms */
@ -2412,13 +2413,21 @@ umass_cam_action(struct cam_sim *sim, union ccb *ccb)
if (sc->sc_quirks & FLOPPY_SPEED) {
cpi->base_transfer_speed =
UMASS_FLOPPY_TRANSFER_SPEED;
} else if (usbd_get_speed(sc->sc_udev) ==
USB_SPEED_HIGH) {
cpi->base_transfer_speed =
UMASS_HIGH_TRANSFER_SPEED;
} else {
cpi->base_transfer_speed =
UMASS_FULL_TRANSFER_SPEED;
switch (usbd_get_speed(sc->sc_udev)) {
case USB_SPEED_SUPER:
cpi->base_transfer_speed =
UMASS_SUPER_TRANSFER_SPEED;
break;
case USB_SPEED_HIGH:
cpi->base_transfer_speed =
UMASS_HIGH_TRANSFER_SPEED;
break;
default:
cpi->base_transfer_speed =
UMASS_FULL_TRANSFER_SPEED;
break;
}
}
cpi->max_lun = sc->sc_maxlun;
}