Skip site navigation (1)Skip section navigation (2)
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>