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

Attachment: msg01823/pgp00000.pgp
Description: PGP signature

Reply via email to