Yep, a major step in the right direction -- thanks!!

After I applied this patch, I no longer got the UE when I first
plugged a device in on my NEC controller.  And I can use my
camera (download and take pictures, etc).

I'm going to try this against more OHCI controllers (ALI, OPTi) as
a sanity check.  If it behaves, I'll want to see this go to Linus.

- Dave



Bob Cutler wrote:
> 
> Aki,
> 
> Great job!  This fixes the problem on the Lucent USS-312.
> The TI 7 port hub now enumerates fine.  I have not yet
> tried the USS-302 or tried large data transfers but this
> is a big step in the right direction.
> 
> Bob
> 
> Aki M Laukkanen wrote:
> >
> > On Wed, 22 Mar 2000, Gregory P. Smith wrote:
> > > Would it make sense to hypothesize [without looking at the code] that
> > > Roman's driver may be forgetting a virt_to_bus call somewhere when filling
> > > in an address for an ED or TD?  Some controllers may magically not barf
> >
> > [DISCLAIMER] I'd call myself beginner with regards to USB and
> > OHCI. Ok, I glanced through the OHCI documents just now. :)
> >
> > I tried to search for all the accesses to (td|ed)->hw[a-zA-Z]+ and
> > couldn't find a missing virt_to_bus or bus_to_virt for that matter.
> >
> > However even if this is a non-issue I'd like to get an explanation to
> > this. sohci_submit_urb calls td_submit_urb:
> >
> >         td_submit_urb (urb);
> >
> > which if I understood signals that HC is free to do its stuff by writing
> > appropriate bits in the cmdStatus register. Then however there is this
> > code
> >
> >         if (ed->state != ED_OPER)
> >                 ep_link (ohci, ed);
> >
> > seems to mess with the eds and tds which I thought was a big no-no when HC
> > is working?
> >
> > I am at work so can't test this but how about if we switch these two
> > statements:
> >
> > --- usb-ohci.c.bak      Thu Mar 23 11:33:15 2000
> > +++ usb-ohci.c  Thu Mar 23 11:33:31 2000
> > @@ -329,11 +329,11 @@
> >                 urb->start_frame = ((ed->state == ED_OPER)? (ed->last_iso + 1):
> >                                                                 (le16_to_cpu 
>(ohci->hcca.frame_no) + 10)) & 0xffff;
> >         }
> > -
> > -       td_submit_urb (urb); /* fill the TDs and link it to the ed */
> >
> >         if (ed->state != ED_OPER)  /* link the ed into a chain if is not already */
> >                 ep_link (ohci, ed);
> > +
> > +       td_submit_urb (urb); /* fill the TDs and link it to the ed */
> >         spin_unlock_irqrestore (&usb_ed_lock, flags);
> >
> >         urb->status = USB_ST_URB_PENDING;

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to