[U-Boot] [PATCH] powerpc/usb: fix bug of CPU hang when missing USB PHY clock
Liu Shengzhou-B36685
B36685 at freescale.com
Thu Oct 18 10:54:25 CEST 2012
> -----Original Message-----
> From: Marek Vasut [mailto:marex at denx.de]
> Sent: Thursday, October 18, 2012 3:16 PM
> To: Liu Shengzhou-B36685
> Cc: u-boot at lists.denx.de; Stefan Roese; agust at denx.de
> Subject: Re: [PATCH] powerpc/usb: fix bug of CPU hang when missing USB
> PHY clock
>
> Dear Liu Shengzhou-B36685,
>
> > > -----Original Message-----
> > >
> > > > +/* Check USB PHY clock valid */
> > > > +static int usb_phy_clk_valid(struct usb_ehci *ehci) {
> > > > + if ((!(in_be32(&ehci->control) & PHY_CLK_VALID)) &&
> > > > + (!in_be32(&ehci->prictrl))) {
> > >
> > > (!A && !B) condition can certainly be done without the double negation ;-)
> >
> > [Shengzhou] Yes, using !(A||B) is also okay:)
>
> Good, you did your logic homework well. Now go one step further:
>
> if (a || b)
> return 1;
>
[Shengzhou] No, this doesn't work, b is 0 at initial time, but b is 1 at the second time, a is depend on the register PHY_CLK_VALID bit,
We just want to check it at the first time and then think it is always valid after that, it's using a trick:)
> printf()
> return 0;
>
> How will that work?
More information about the U-Boot
mailing list