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>