RE: [2.6.34-rc1] Problem using USB 1.1 device on USB 3.0 xhci host controller

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sander,

Thanks a lot for your test. I'll refine the patchset.
Please inform me if you find any issue with the patches.

Thanks & Best regards,
Andiry
 

> -----Original Message-----
> From: Sander Eikelenboom [mailto:linux@xxxxxxxxxxxxxx]
> Sent: Tuesday, March 16, 2010 5:27 PM
> To: Xu, Andiry
> Cc: Sarah Sharp; Yang, Libin; linux-usb@xxxxxxxxxxxxxxx
> Subject: Re: [2.6.34-rc1] Problem using USB 1.1 device on USB 3.0 xhci
> host controller
> 
> Hello Andiry,
> 
> Your patch didn't apply cleanly, but i have patched by hand, and it
> works ! :-)
> Although there are still warning, i am able to grab images, thx !
> I will tryout some other USB devices i have laying around later.
> 
> Syslog is attached.
> 
> --
> 
> Sander
> 
> 
> Tuesday, March 16, 2010, 8:44:31 AM, you wrote:
> 
> > diff --git a/drivers/usb/host/xhci-ring.c
b/drivers/usb/host/xhci-ring.c
> > index 25f0928..db99567 100644
> > --- a/drivers/usb/host/xhci-ring.c
> > +++ b/drivers/usb/host/xhci-ring.c
> > @@ -1360,6 +1360,7 @@ static int handle_tx_event(struct xhci_hcd
*xhci,
> >                 urb = td->urb;
> >                 urb_priv = urb->hcpriv;
> >                 idx = urb_priv->td_cnt;
> > +               status = 0;
> >
> >                 /* handle completion code */
> >                 switch (trb_comp_code) {
> > @@ -1368,6 +1369,13 @@ static int handle_tx_event(struct xhci_hcd
*xhci,
> >                         xhci_dbg(xhci, "Successful isoc "
> >                                         "transfer!\n");
> >                         break;
> > +               case COMP_SHORT_TX:
> > +                       xhci_dbg(xhci, "short transfer on isoc
ep\n");
> > +                       if (td->urb->transfer_flags &
URB_SHORT_NOT_OK)
> > +                               urb->iso_frame_desc[idx].status = -
> EREMOTEIO;
> > +                       else
> > +                               urb->iso_frame_desc[idx].status = 0;
> > +                       break;
> >                 case COMP_UNDERRUN:
> >                         urb->iso_frame_desc[idx].status =
-EREMOTEIO;
> >                         skip_td = 1;
> > @@ -2381,7 +2389,7 @@ static int xhci_queue_isoc_tx(struct xhci_hcd
> *xhci, gfp_t mem_flags,
> >
> >         if (!in_interrupt())
> >                 dev_dbg(&urb->dev->dev, "ep %#x - urb len = %#x
(%d),"
> > -                               " addr = %#llx, num_trbs = %d\n",
> > +                               " addr = %#llx, num_tds = %d\n",
> >                                 urb->ep->desc.bEndpointAddress,
> >                                 urb->transfer_buffer_length,
> >                                 urb->transfer_buffer_length,
> 
> 
> 
> --
> Best regards,
>  Sander                            mailto:linux@xxxxxxxxxxxxxx

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux