Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 Dec 1999 21:18:59 -0800 (PST)
From:      Bill Paul <wpaul@FreeBSD.org>
To:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/dev/usb uhci.c
Message-ID:  <199912230519.VAA78073@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
wpaul       1999/12/22 21:18:59 PST

  Modified files:
    sys/dev/usb          uhci.c 
  Log:
  Fix one bug and make one minor enhancement:
  
  - In uhci_intr() check to see if sc->sc_bus.bdev is NULL, and if it is,
    ack any pending interrupts and disable them, then return. It is possible
    for interrupts to be delivered the moment a handler is set up at attach
    time in uhci_pci.c, particularly when attempting to kldload the usb.ko
    module after the system is already up. However the driver isn't ready
    to field interrupts at that time and certain pointers in the softc
    struct aren't initialized yet, and we invariably end up falling off
    the end of one of them. The effect is that kldloading the usb module
    will panic the system in uhci_intr(). This added sanity check stops
    this from happening: I can now kldload the usb.ko module without any
    problems and load/attach other USB drivers after it.
  
    Of course the uhci driver has no detach method, but that's another
    problem.
  
  - In uhci_run(), set the UHCI_CMD_MAXP bit in the command register to
    allow 64-byte packets to be used for full speed bandwidth reclamation.
    Certain high speed devices (in this case the ADMtek USB ethernet
    adapter) require this bit to be set, otherwise babble errors occur
    at the end of large (between 1100 and 1500 byte) transfers. This
    should not affect other devices, although supposedly it is less efficient
    than the 32-byte setting. Unfortunately, this is a per-bus setting,
    not a per-device setting, so we can't just enable it for certain
    devices on the USB bus.
  
  Revision  Changes    Path
  1.36      +24 -2     src/sys/dev/usb/uhci.c



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199912230519.VAA78073>