Date: Sun, 07 Apr 2002 09:55:15 +0000 From: "Chad Kline" <i18rabbit@hotmail.com> To: freebsd-scsi@freebsd.org Subject: usb mass storage driver - umass Message-ID: <F214IW4jGSBLay9QirO00019bd6@hotmail.com>
next in thread | raw e-mail | index | archive | help
since usb mass storage driver (umass.c)
is tied to scsi stuff, i am posting to
see if anyone may be able to direct
me to bring about a solution to this problem.
from the following, i assume i the link/controller/camera
are operational to some extent - as the camera ID is
detected just fine by the driver as well as
userland programs.
$ dmesg (kernel/driver detection,
QUIRK=command status signature fix, 0x5343->0x5542)
for OLYMPUS C-1's)
FreeBSD 4.5-RELEASE #3: Sat Apr 6 22:12:40 AKST 2002
ohci0: <OPTi 82C861 (FireLink) USB controller> mem 0xe1000000-0xe1000fff irq
10 at device 19.0 on pci0
usb0: OHCI version 1.0, legacy support
usb0: <OPTi 82C861 (FireLink) USB controller> on ohci0
usb0: USB revision 1.0
uhub0: OPTi OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
OLYMPUS - APPLYING CSS QUIRK!
OLYMPUS - APPLYING CSS QUIRK!
OLYMPUS - APPLYING CSS QUIRK!
umass0: OLYMPUS C-1Z,D-150Z, rev 1.10/10.15, addr 2
OLYMPUS - case TSTATE_BBB_RESET1:
umass0: BBB reset failed, TIMEOUT
OLYMPUS - case TSTATE_BBB_RESET2:
umass0: BBB bulk-in clear stall failed, TIMEOUT
OLYMPUS - case TSTATE_BBB_RESET3:
umass0: BBB bulk-out clear stall failed, TIMEOUT
$ usbdevs (userland program)
Controller /dev/usb0:
addr 1: self powered, config 1, OHCI root hub(0x0000),
OPTi(0x0000), rev 0x0100 port 1
addr 2: self powered, config 1, C-1 Digital Camera(0x0102),
Olympus(0x07b4), rev 0x1015 port 2 powered
without umass0 (USB mass storage driver) being able to
complete it's task, i cannot mount the camera's smartmedia
disk. supposedly this camera supposedly has "the convenient
Auto Connect USB feature lets your computer automatically recognize
your Brio Zoom D-150 so you don't have to install any additional
software". so i think i should be able to mount this camera.
i don't have windows, and don't know of bsd/unix USB snoop software.
the failure is in this function - a status state machine.
i can't find a calling function, so i assume it's installed
as an interrupt handler (i don't know too much about how
unix installs handlers/remaps interrupt signals).
umass.c:
Static void
umass_bbb_state(usbd_xfer_handle xfer, usbd_private_handle priv,
usbd_status err)
{
/***** Bulk Reset *****/
case TSTATE_BBB_RESET1:
if (err) {
printf("OLYMPUS - TSTATE_BBB_RESET1\n");
printf("%s: BBB reset failed, %s\n",
USBDEVNAME(sc->sc_dev), usbd_errstr(err));
}
umass_clear_endpoint_stall(sc,
sc->bulkin, sc->bulkin_pipe, TSTATE_BBB_RESET2,
sc->transfer_xfer[XFER_BBB_RESET2]);
return;
case TSTATE_BBB_RESET2:
if (err) { /* should not occur */
printf("OLYMPUS - TSTATE_BBB_RESET2!\n");
printf("%s: BBB bulk-in clear stall failed, %s\n",
USBDEVNAME(sc->sc_dev), usbd_errstr(err));
/* no error recovery, otherwise we end up in a loop */
}
umass_clear_endpoint_stall(sc,
sc->bulkout, sc->bulkout_pipe, TSTATE_BBB_RESET3,
sc->transfer_xfer[XFER_BBB_RESET3]);
return;
case TSTATE_BBB_RESET3:
if (err) { /* should not occur */
printf("OLYMPUS - TSTATE_BBB_RESET3!\n");
printf("%s: BBB bulk-out clear stall failed, %s\n",
USBDEVNAME(sc->sc_dev), usbd_errstr(err));
/* no error recovery, otherwise we end up in a loop */
}
sc->transfer_state = TSTATE_IDLE;
if (sc->transfer_priv) {
sc->transfer_cb(sc, sc->transfer_priv,
sc->transfer_datalen,
sc->transfer_status);
}
return;
/***** Default *****/
default:
panic("%s: Unknown state %d\n",
USBDEVNAME(sc->sc_dev), sc->transfer_state);
}
_________________________________________________________________
MSN Photos is the easiest way to share and print your photos:
http://photos.msn.com/support/worldwide.aspx
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-scsi" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?F214IW4jGSBLay9QirO00019bd6>
