On Thu, 2005-05-05 at 18:51 +0100, Maciej W. Rozycki wrote:
> On Thu, 5 May 2005, Thiemo Seufer wrote:
>
> > > > I'm just using USB host support on a AU1100 developing board (DB1100
> > > > configuration) and i notice that CPU locks in function
> > > > au1xxx_start_hc():
> > > >
> > > > /* wait for reset complete (read register twice; see au1500
> > > > errata) */
> > > > while (au_readl(USB_HOST_CONFIG),
> > > > !(au_readl(USB_HOST_CONFIG) & USBH_ENABLE_RD))
> > > > udelay(1000);
> > > >
> > > > while waiting for USB controller to reset. I checked it out and I
> > > > discovered that register USB_HOST_CONFIG is fixed at value 0xe! So the
> > > > controller never reset...
> > > >
> > > > Linux is 2.6.12-rc3 from CVS.
> > > >
> > > > Someone knows whats wrong?
> > >
> > > It sounds like this is a custom Au1100 based board? What
> oot code are
> > > you running? I'm guessing the SOC isn't setup correctly or you have a
> > > HW problem.
> >
> > I wonder if the code works reliable. At least, a comma operator isn't a
> > sequence point, which means the compiler is free to change the execution
> > order.
>
> Good point -- even though the code is valid C, it's complete rubbish.
> I'd suggest rewriting it to get something readable first.
Interesting. I hadn't looked at this chunk of code before.
Pete
|