Okay, now, in place of that commented code, add:
us->irqbuf[0] = 0;
And see if that helps.
Matt
On Tue, Dec 04, 2001 at 03:30:49PM +0800, Stefan van der Eijk wrote:
> OK, I've applied the following patch to the 2.4.13-12mdk mandrake kernel:
>
> --- linux/drivers/usb/storage/transport.c.orig Tue Dec 4 11:35:08 2001
> +++ linux/drivers/usb/storage/transport.c Tue Dec 4 11:37:50 2001
> @@ -817,10 +817,11 @@
> }
>
> /* was this a command-completion interrupt? */
> - if (us->irqbuf[0] && (us->subclass != US_SC_UFI)) {
> - US_DEBUGP("-- not a command-completion IRQ\n");
> - return;
> - }
> +/* if (us->irqbuf[0] && (us->subclass != US_SC_UFI)) {
> + * US_DEBUGP("-- not a command-completion IRQ\n");
> + * return;
> + * }
> + */
>
> /* was this a wanted interrupt? */
> if (!atomic_read(us->ip_wanted)) {
>
> But I'm not having much luck I think:
>
> Dec 4 15:22:24 tweety kernel: hub.c: USB new device connect on bus1/2,
> assigned device number 2
> Dec 4 15:22:24 tweety kernel: usb.c: USB device 2 (vend/prod
> 0x54c/0x58) is not claimed by any active driver.
> Dec 4 15:22:24 tweety kernel: Initializing USB Mass Storage driver...
> Dec 4 15:22:24 tweety kernel: usb.c: registered new driver usb-storage
> Dec 4 15:22:24 tweety kernel: usb-storage: act_altsettting is 0
> Dec 4 15:22:24 tweety kernel: usb-storage: id_index calculated to be: 68
> Dec 4 15:22:24 tweety kernel: usb-storage: Array length appears to be: 77
> Dec 4 15:22:24 tweety kernel: usb-storage: USB Mass Storage device detected
> Dec 4 15:22:24 tweety kernel: usb-storage: Endpoints: In: 0xcb395ac8
> Out: 0xcb395ab4 Int: 0xcb395aa0 (Period 1)
> Dec 4 15:22:24 tweety kernel: usb-storage: New GUID
> 054c00580000000000000000
> Dec 4 15:22:24 tweety kernel: usb-storage: Transport:
> Control/Bulk/Interrupt
> Dec 4 15:22:24 tweety kernel: usb-storage: Protocol: 8070i
> Dec 4 15:22:24 tweety kernel: usb-storage: Allocating IRQ for CBI transport
> Dec 4 15:22:24 tweety kernel: usb-storage: usb_submit_urb() returns 0
> Dec 4 15:22:24 tweety kernel: usb-storage: *** thread sleeping.
> Dec 4 15:22:24 tweety kernel: scsi1 : SCSI emulation for USB Mass
> Storage devices
> Dec 4 15:22:24 tweety kernel: usb-storage: queuecommand() called
> Dec 4 15:22:24 tweety kernel: usb-storage: *** thread awakened.
> Dec 4 15:22:24 tweety kernel: usb-storage: Command INQUIRY (6 bytes)
> Dec 4 15:22:24 tweety kernel: usb-storage: 12 00 00 00 ff 00 52 cb 00
> 00 f7 ca
> Dec 4 15:22:24 tweety kernel: usb-storage: Call to
> usb_stor_control_msg() returned 12
> Dec 4 15:22:24 tweety kernel: usb-storage: usb_stor_transfer_partial():
> xfer 255 bytes
> Dec 4 15:22:24 tweety kernel: usb-storage: USB IRQ recieved for device
> on host 1
> Dec 4 15:22:24 tweety kernel: usb-storage: -- IRQ data length is 2
> Dec 4 15:22:24 tweety kernel: usb-storage: -- IRQ state is 0
> Dec 4 15:22:24 tweety kernel: usb-storage: -- Interrupt Status (0x3a, 0x0)
> Dec 4 15:22:24 tweety kernel: usb-storage: -- Current value of ip_waitq
> is: 0
> Dec 4 15:22:24 tweety kernel: usb-storage: usb_stor_bulk_msg() returned
> 0 xferred 56/255
> Dec 4 15:22:24 tweety kernel: usb-storage: CBI data stage result is 0x1
> Dec 4 15:22:24 tweety kernel: usb-storage: Current value of ip_waitq is: 1
> Dec 4 15:22:24 tweety kernel: usb-storage: Got interrupt data (0x3a, 0x0)
> Dec 4 15:22:24 tweety kernel: usb-storage: CBI IRQ data showed reserved
> bType 58
> Dec 4 15:22:24 tweety kernel: usb-storage: CB_reset() called
> Dec 4 15:22:24 tweety kernel: usb-uhci.c: interrupt, status 3, frame# 364
> Dec 4 15:22:24 tweety kernel: usb-storage: CB[I] soft reset failed -32
> Dec 4 15:22:24 tweety kernel: usb-storage: -- transport indicates
> transport failure
> Dec 4 15:22:24 tweety kernel: usb-storage: Fixing INQUIRY data to show
> SCSI rev 2
> Dec 4 15:22:24 tweety kernel: usb-storage: scsi cmd done, result=0x70000
> Dec 4 15:22:24 tweety kernel: usb-storage: *** thread sleeping.
> Dec 4 15:22:24 tweety kernel: usb-storage: queuecommand() called
> Dec 4 15:22:24 tweety kernel: usb-storage: *** thread awakened.
> Dec 4 15:22:24 tweety kernel: usb-storage: Command INQUIRY (6 bytes)
> Dec 4 15:22:24 tweety kernel: usb-storage: 12 00 00 00 ff 00 52 cb 00
> 00 f7 ca
> Dec 4 15:22:24 tweety kernel: usb-storage: Call to
> usb_stor_control_msg() returned 12
> Dec 4 15:22:24 tweety kernel: usb-storage: usb_stor_transfer_partial():
> xfer 255 bytes
> Dec 4 15:22:24 tweety kernel: usb-storage: USB IRQ recieved for device
> on host 1
> Dec 4 15:22:24 tweety kernel: usb-storage: -- IRQ data length is 2
> Dec 4 15:22:24 tweety kernel: usb-storage: -- IRQ state is 0
> Dec 4 15:22:24 tweety kernel: usb-storage: -- Interrupt Status (0x3a, 0x0)
> Dec 4 15:22:24 tweety kernel: usb-storage: -- Current value of ip_waitq
> is: 0
> Dec 4 15:22:24 tweety kernel: usb-storage: usb_stor_bulk_msg() returned
> 0 xferred 56/255
> Dec 4 15:22:24 tweety kernel: usb-storage: CBI data stage result is 0x1
> Dec 4 15:22:24 tweety kernel: usb-storage: Current value of ip_waitq is: 1
> Dec 4 15:22:24 tweety kernel: usb-storage: Got interrupt data (0x3a, 0x0)
> Dec 4 15:22:24 tweety kernel: usb-storage: CBI IRQ data showed reserved
> bType 58
> Dec 4 15:22:24 tweety kernel: usb-storage: CB_reset() called
> Dec 4 15:22:24 tweety kernel: usb-storage: CB[I] soft reset failed -32
> Dec 4 15:22:24 tweety kernel: usb-storage: -- transport indicates
> transport failure
> Dec 4 15:22:24 tweety kernel: usb-storage: Fixing INQUIRY data to show
> SCSI rev 2
> Dec 4 15:22:24 tweety kernel: usb-storage: scsi cmd done, result=0x70000
> Dec 4 15:22:24 tweety kernel: usb-storage: *** thread sleeping.
> Dec 4 15:22:24 tweety kernel: usb-storage: queuecommand() called
> Dec 4 15:22:24 tweety kernel: usb-storage: *** thread awakened.
> Dec 4 15:22:24 tweety kernel: usb-storage: Command INQUIRY (6 bytes)
> Dec 4 15:22:24 tweety kernel: usb-storage: 12 00 00 00 ff 00 52 cb 00
> 00 f7 ca
> Dec 4 15:22:24 tweety kernel: usb-storage: Call to
> usb_stor_control_msg() returned 12
> Dec 4 15:22:24 tweety kernel: usb-storage: usb_stor_transfer_partial():
> xfer 255 bytes
> Dec 4 15:22:24 tweety kernel: usb-storage: USB IRQ recieved for device
> on host 1
> Dec 4 15:22:24 tweety kernel: usb-storage: -- IRQ data length is 2
> Dec 4 15:22:24 tweety kernel: usb-storage: -- IRQ state is 0
> Dec 4 15:22:24 tweety kernel: usb-storage: -- Interrupt Status (0x3a, 0x0)
> Dec 4 15:22:24 tweety kernel: usb-storage: -- Current value of ip_waitq
> is: 0
> Dec 4 15:22:24 tweety kernel: usb-storage: usb_stor_bulk_msg() returned
> 0 xferred 56/255
> Dec 4 15:22:24 tweety kernel: usb-storage: CBI data stage result is 0x1
> Dec 4 15:22:24 tweety kernel: usb-storage: Current value of ip_waitq is: 1
> Dec 4 15:22:24 tweety kernel: usb-storage: Got interrupt data (0x3a, 0x0)
> Dec 4 15:22:24 tweety kernel: usb-storage: CBI IRQ data showed reserved
> bType 58
> Dec 4 15:22:24 tweety kernel: usb-storage: CB_reset() called
> Dec 4 15:22:24 tweety kernel: usb-storage: CB[I] soft reset failed -32
> Dec 4 15:22:24 tweety kernel: usb-storage: -- transport indicates
> transport failure
> Dec 4 15:22:24 tweety kernel: usb-storage: Fixing INQUIRY data to show
> SCSI rev 2
> Dec 4 15:22:24 tweety kernel: usb-storage: scsi cmd done, result=0x70000
> Dec 4 15:22:24 tweety kernel: usb-storage: *** thread sleeping.
> Dec 4 15:22:24 tweety kernel: usb-storage: queuecommand() called
> Dec 4 15:22:24 tweety kernel: usb-storage: *** thread awakened.
> Dec 4 15:22:24 tweety kernel: usb-storage: Bad target number (1/0)
> Dec 4 15:22:24 tweety kernel: usb-storage: *** thread sleeping.
> Dec 4 15:22:24 tweety kernel: usb-storage: queuecommand() called
> Dec 4 15:22:24 tweety kernel: usb-storage: *** thread awakened.
> Dec 4 15:22:24 tweety kernel: usb-storage: Bad target number (2/0)
> Dec 4 15:22:24 tweety kernel: usb-storage: *** thread sleeping.
> Dec 4 15:22:24 tweety kernel: usb-storage: queuecommand() called
> Dec 4 15:22:24 tweety kernel: usb-storage: *** thread awakened.
> Dec 4 15:22:24 tweety kernel: usb-storage: Bad target number (3/0)
> Dec 4 15:22:24 tweety kernel: usb-storage: *** thread sleeping.
> Dec 4 15:22:24 tweety kernel: usb-storage: queuecommand() called
> Dec 4 15:22:24 tweety kernel: usb-storage: *** thread awakened.
> Dec 4 15:22:24 tweety kernel: usb-storage: Bad target number (4/0)
> Dec 4 15:22:24 tweety kernel: usb-storage: *** thread sleeping.
> Dec 4 15:22:24 tweety kernel: usb-storage: queuecommand() called
> Dec 4 15:22:24 tweety kernel: usb-storage: *** thread awakened.
> Dec 4 15:22:24 tweety kernel: usb-storage: Bad target number (5/0)
> Dec 4 15:22:24 tweety kernel: usb-storage: *** thread sleeping.
> Dec 4 15:22:24 tweety kernel: usb-storage: queuecommand() called
> Dec 4 15:22:24 tweety kernel: usb-storage: *** thread awakened.
> Dec 4 15:22:24 tweety kernel: usb-storage: Bad target number (6/0)
> Dec 4 15:22:24 tweety kernel: usb-storage: *** thread sleeping.
> Dec 4 15:22:24 tweety kernel: usb-storage: queuecommand() called
> Dec 4 15:22:24 tweety kernel: usb-storage: *** thread awakened.
> Dec 4 15:22:24 tweety kernel: usb-storage: Bad target number (7/0)
> Dec 4 15:22:24 tweety kernel: usb-storage: *** thread sleeping.
> Dec 4 15:22:24 tweety kernel: WARNING: USB Mass Storage data integrity
> not assured
> Dec 4 15:22:24 tweety kernel: USB Mass Storage device found at 2
> Dec 4 15:22:24 tweety kernel: USB Mass Storage support registered.
> Dec 4 15:22:48 tweety ntpd[1110]: kernel time discipline status change 41
>
> >That's the right piece of code. Let's see if this works before we worry
> >about how it will affect other devices.
> >
> >Matt
> >
> >On Fri, Nov 30, 2001 at 09:31:54AM -0500, Pete Toscano wrote:
> >
> >>Well, I have a few free cycles today and a Clie that I just got syncing
> >>and would love to get working as a usb_storage device, soooo.....
> >>
> >>I'm compiling this up now, but I think this is the part of transport.c
> >>that you were talking about, is it not?
> >>
> >> /* was this a command-completion interrupt? */
> >> if (us->irqbuf[0] && (us->subclass != US_SC_UFI)) {
> >> US_DEBUGP("-- not a command-completion IRQ\n");
> >> return;
> >> }
> >>
> >>I've commented this out and I'm rebuilding. How will this affect other
> >>USB storage devices? Should things be okay without this check? Is
> >>there any way to make it to only skip this check if the attached device
> >>is a Clie (and maybe some other PDAs)?
> >>
> >>I'll report back how things go once I reboot.
> >>
> >>pete
> >>
--
Matthew Dharm Home: [EMAIL PROTECTED]
Maintainer, Linux USB Mass Storage Driver
It was a new hope.
-- Dust Puppy
User Friendly, 12/25/1998
msg01823/pgp00000.pgp
Description: PGP signature
