Maintainer of usb code

Hans Petter Selasky hselasky at c2i.net
Thu Jul 17 17:13:55 UTC 2008


I think your patch is Ok. It should look similar to this:

        /* Determine in what context we are running. */
        ctl = OREAD4(sc, OHCI_CONTROL);
        if (ctl & OHCI_IR) {
                /* SMM active, request change */
                DPRINTF(0, "SMM active, request owner change\n");
                s = OREAD4(sc, OHCI_COMMAND_STATUS);
                OWRITE4(sc, OHCI_COMMAND_STATUS, s | OHCI_OCR);
                for (i = 0; (i < 100) && (ctl & OHCI_IR); i++) {
                        DELAY(1000 * 1);
                        ctl = OREAD4(sc, OHCI_CONTROL);
                }
                if ((ctl & OHCI_IR) == 0) {
                        device_printf(sc->sc_bus.bdev, "SMM does not respond, 
resetting\n");
                        OWRITE4(sc, OHCI_CONTROL, OHCI_HCFS_RESET);
                        goto reset;
                }

--HPS

On Thursday 17 July 2008, Luoqi Chen wrote:
> Hans,
>
> It probably doesn't matter, this part of code hasn't been touched
> for years. I did a quick check on the latest svn version, it looked
> the same.
>
> -lq
>
> > -----Original Message-----
> > From: Hans Petter Selasky [mailto:hselasky at c2i.net]
> > Sent: Thursday, July 17, 2008 5:21 AM
> > To: freebsd-usb at freebsd.org
> > Cc: Luoqi Chen
> > Subject: Re: Maintainer of usb code
> >
> > Hi Luoqi,
> >
> > From what version of FreeBSD did you fetch your ohci.c ?
> >
> > --HPS
> >
> > On Thursday 17 July 2008, Luoqi Chen wrote:
> > > Hello,
> > >
> > > Do we have an official maintainer of the usb code? I came
> >
> > across some quite
> >
> > > trivial errors while debugging another problem (which
> >
> > turned out not to be
> >
> > > usb related), please see the diff below. I'm not terribly
> >
> > familiar with the
> >
> > > usb code, so I'd like to seek someone to review this change,
> > >
> > > Index: ohci.c
> > > ===================================================================
> > > RCS file: /home/ncvs/src/sys/dev/usb/ohci.c,v
> > > retrieving revision 1.170
> > > diff -u -r1.170 ohci.c
> > > --- ohci.c      20 Jun 2007 05:10:52 -0000      1.170
> > > +++ ohci.c      17 Jul 2008 10:07:07 -0000
> > > @@ -815,20 +815,19 @@
> > >  ohci_controller_init(ohci_softc_t *sc)
> > >  {
> > >         int i;
> > > -       u_int32_t s, ctl, ival, hcr, fm, per, desca;
> > > +       u_int32_t ctl, ival, hcr, fm, per, desca;
> > >
> > >         /* Determine in what context we are running. */
> > >         ctl = OREAD4(sc, OHCI_CONTROL);
> > >         if (ctl & OHCI_IR) {
> > >                 /* SMM active, request change */
> > >                 DPRINTF(("ohci_init: SMM active, request
> >
> > owner change\n"));
> >
> > > -               s = OREAD4(sc, OHCI_COMMAND_STATUS);
> > > -               OWRITE4(sc, OHCI_COMMAND_STATUS, s | OHCI_OCR);
> > > +               OWRITE4(sc, OHCI_COMMAND_STATUS, OHCI_OCR);
> > >                 for (i = 0; i < 100 && (ctl & OHCI_IR); i++) {
> > >                         usb_delay_ms(&sc->sc_bus, 1);
> > >                         ctl = OREAD4(sc, OHCI_CONTROL);
> > >                 }
> > > -               if ((ctl & OHCI_IR) == 0) {
> > > +               if (ctl & OHCI_IR) {
> > >                         printf("%s: SMM does not respond,
> >
> > resetting\n",
> >
> > device_get_nameunit(sc->sc_bus.bdev));
> >
> > >                         OWRITE4(sc, OHCI_CONTROL, OHCI_HCFS_RESET);
> > >
> > > Thanks
> > > -lq




More information about the freebsd-usb mailing list