Subject: Re: Casio Digital Camera and USB
To: Stephen Borrill <netbsd@precedence.co.uk>
From: Lennart Augustsson <lennart@augustsson.net>
List: port-i386
Date: 11/27/2001 17:55:44
The device answers with a STALL to the INQUERY command.
Perhaps it can't handle full length commands.  You could try setting the
FORCE_SHORT_INQUIRY quirk.  To do this, go to sys/dev/umass.c
and search for USB_PRODUCT_SONY_MSC.  There's a conditional
setting of the quirk for that device, you can try and make it unconditional.

    -- Lennart


Stephen Borrill wrote:

> On Mon, 26 Nov 2001, Manuel Bouyer wrote:
>
> > On Mon, Nov 26, 2001 at 10:52:16AM +0000, Stephen Borrill wrote:
> > > I've got a Casio QV-3000EX camera. I plugged it into my laptop running the
> > > 1.5Y snapshot and the following was reported:
> > >
> > > umass0 at uhub1 port 1 configuration 1 interface 0
> > > umass0: CASIO product 0x1001, rev 1.00/90.09, addr 2
> > > umass0: using SFF8070i over CBI-I
> > > atapibus1 at umass0 channel 0: 2 targets
> > > probe(umass0:0:0): invalid return code from adapter: 3
> >
> > 3 is "XS_DRIVER_STUFFUP", it's set in various places in umassbus.c.
> > Maybe try here what code is setting the error to XS_DRIVER_STUFFUP ?
>
> OK, here is the output with umassdebug, usbdebug and uhcidebug all set.
>
> usb_needs_explore
> usb_add_task: sc=0xc15b5d00 task=0xc15b5d4c
> usb_event_thread: woke up task=0xc15b5d4c
> usb_discover
> usb_needs_explore
> usb_add_task: sc=0xc15b5d00 task=0xc15b5d4c
> usbd_reset_port: port 1 reset done, error=NORMAL_COMPLETION
> usbd_new_device bus=0xc15b8000 port=1 depth=1 lowspeed=0
> usbd_setup_pipe: dev=0xc164e100 iface=0x0 ep=0xc164e11c pipe=0xc164e104
> usb_allocmem: large alloc 6144
> usbd_get_desc: type=1, index=0, len=8
> usbd_new_device: adding unit addr=2, rev=100, class=0, subclass=0, protocol=0, maxpacket=8, len=18, ls=0
> usbd_get_device_desc:
> usbd_get_desc: type=1, index=0, len=18
> usbd_new_device: new dev (addr 2), dev=0xc164e100, parent=0xc15b7c80
> usbd_probe_and_attach: trying device specific drivers
> usbd_probe_and_attach: no device specific driver found
> usbd_probe_and_attach: looping over 1 configurations
> usbd_probe_and_attach: trying config idx=0
> usbd_get_config_desc: confidx=0
> usbd_get_desc: type=2, index=0, len=9
> usbd_get_desc: type=2, index=0, len=39
> usbd_set_config_index: (addr 1) cno=2 attr=0x40, selfpowered=1, power=0
> usbd_set_config_index: set config 1
> usbd_fill_iface_data: ifaceidx=0 altidx=0
> usbd_find_idesc: idx=0(-1) altidx=0(0) len=9 type=2
> usbd_find_idesc: idx=0(-1) altidx=0(0) len=9 type=4
> usbd_fill_iface_data: found idesc nendpt=3
> umass0 at uhub0 port 1 configuration 1 interface 0
> umass0: CASIO product 0x1001, rev 1.00/90.09, addr 2
> umass0: using SFF8070i over CBI-I
> usbd_open_pipe: iface=0xc1609600 address=0x2 flags=0x1
> usbd_setup_pipe: dev=0xc164e100 iface=0xc1609600 ep=0xc16095e8 pipe=0xe33605c0
> usbd_open_pipe: iface=0xc1609600 address=0x81 flags=0x1
> usbd_setup_pipe: dev=0xc164e100 iface=0xc1609600 ep=0xc16095e0 pipe=0xe33605c0
> usb_allocmem: large alloc 65536
> umass0: umass_attach_bus: ATAPI
> atapibus1 at umass0 channel 0: 2 targets
> umass_atapi_probe_device: atapi=0xc164c680 target=0
> umass_atapi_probe_device: doing inquiry
> umass0: umass_scsi_cmd: at 1006873406.597778: 0:0 xs=0xc1651000 cmd=0x12 datalen=74 (quirks=0x0, poll=0)
> umass_scsi_cmd: async dir=1, cmdlen=12 datalen=74
> umass0: umass_cbi_transfer cmd=0x12, len=74
> umass0: Handling CBI state 10 (CBI Command), xfer=0xc15b5a00, NORMAL_COMPLETION
> umass0: start xfer buffer=0xe3360428 buflen=74 flags=0x5 timeout=11747
> umass0: Handling CBI state 11 (CBI Data), xfer=0xc164e400, NORMAL_COMPLETION
> umass0: CBI_DATA actlen=36
> umass0: 0x 008000011f0000000000000000000000 buffer=0xe3360428, buflen=36
> umass0: 0x 00000000000000000000000000000000
> umass0: 0x 00000000
> umass_scsipi_cb: at 1006873406.603333, delta=5555: xs=0xc1651000 residue=38 status=1
> umass0: umass_cbi_transfer cmd=0x03, len=32
> umass0: Handling CBI state 10 (CBI Command), xfer=0xc15b5a00, STALLED
> umass0: Command Transport failed
> umass_scsipi_sense_cb: xs=0xc1651000 residue=32 status=2
> umass0: Autosense failed, status 2
> umass_scsipi_sense_cb: return xs->error=3, xs->xs_status=0x1 xs->resid=38
> probe(umass0:0:0): invalid return code from adapter: 3
> umass_atapi_probe_device: scsipi_inquire failed
> umass_atapi_probe_device: atapi=0xc164c680 target=1
> umass0: Attach finished
> usb_event_thread: woke up task=0xc15b5d4c
> usb_discover