[U-Boot] [PATCH] powerpc/usb: fix bug of CPU hang when missing USB PHY clock

Marek Vasut marex at denx.de
Thu Oct 18 11:04:01 CEST 2012


Dear Liu Shengzhou-B36685,

> > -----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:)

Good point, I was just testing you of course ;-)

Best regards,
Marek Vasut


More information about the U-Boot mailing list