Diff for /src/sys/dev/usbmisc/ufm/ufm.c between versions 1.4 and 1.5

version 1.4, 2003/08/07 21:17:14 version 1.5, 2003/12/30 01:01:46
Line 28 Line 28
  * its contributors.   * its contributors.
  */   */
   
/* $FreeBSD: src/sys/dev/usb/ufm.c,v 1.1.2.3 2002/11/06 14:41:01 joe Exp $ *//*
/* $DragonFly$ */ * $FreeBSD: src/sys/dev/usb/ufm.c,v 1.16 2003/10/04 21:41:01 joe Exp $
  * $DragonFly$
  */
   
 #include <sys/param.h>  #include <sys/param.h>
 #include <sys/systm.h>  #include <sys/systm.h>
Line 158  USB_ATTACH(ufm) Line 160  USB_ATTACH(ufm)
         usbd_status r;          usbd_status r;
         char * ermsg = "<none>";          char * ermsg = "<none>";
   
        DPRINTFN(10,("ufm_attach: sc=%p\n", sc));               DPRINTFN(10,("ufm_attach: sc=%p\n", sc));
         usbd_devinfo(uaa->device, 0, devinfo);          usbd_devinfo(uaa->device, 0, devinfo);
         USB_ATTACH_SETUP;          USB_ATTACH_SETUP;
         printf("%s: %s\n", USBDEVNAME(sc->sc_dev), devinfo);          printf("%s: %s\n", USBDEVNAME(sc->sc_dev), devinfo);
Line 179  USB_ATTACH(ufm) Line 181  USB_ATTACH(ufm)
         r = usbd_interface_count(udev, &niface);          r = usbd_interface_count(udev, &niface);
         if (r) {          if (r) {
                 ermsg = "iface";                  ermsg = "iface";
                goto nobulk;                  goto nobulk;
         }          }
         r = usbd_device2interface_handle(udev, 0, &iface);          r = usbd_device2interface_handle(udev, 0, &iface);
         if (r) {          if (r) {
                 ermsg = "iface";                  ermsg = "iface";
                goto nobulk;                  goto nobulk;
         }          }
         sc->sc_iface = iface;          sc->sc_iface = iface;
 #endif  #endif
Line 192  USB_ATTACH(ufm) Line 194  USB_ATTACH(ufm)
         sc->sc_refcnt = 0;          sc->sc_refcnt = 0;
   
         r = usbd_endpoint_count(iface, &epcount);          r = usbd_endpoint_count(iface, &epcount);
        if (r != USBD_NORMAL_COMPLETION) {         if (r != USBD_NORMAL_COMPLETION) {
                 ermsg = "endpoints";                  ermsg = "endpoints";
                 goto nobulk;                  goto nobulk;
         }          }
Line 232  ufmopen(dev_t dev, int flag, int mode, u Line 234  ufmopen(dev_t dev, int flag, int mode, u
         int unit = UFMUNIT(dev);          int unit = UFMUNIT(dev);
         USB_GET_SC_OPEN(ufm, unit, sc);          USB_GET_SC_OPEN(ufm, unit, sc);
   
        DPRINTFN(5, ("ufmopen: flag=%d, mode=%d, unit=%d\n",         DPRINTFN(5, ("ufmopen: flag=%d, mode=%d, unit=%d\n",
                      flag, mode, unit));                       flag, mode, unit));
   
         if (sc->sc_opened)          if (sc->sc_opened)
Line 256  ufmclose(dev_t dev, int flag, int mode, Line 258  ufmclose(dev_t dev, int flag, int mode,
         DPRINTFN(5, ("ufmclose: flag=%d, mode=%d, unit=%d\n", flag, mode, unit));          DPRINTFN(5, ("ufmclose: flag=%d, mode=%d, unit=%d\n", flag, mode, unit));
         sc->sc_opened = 0;          sc->sc_opened = 0;
         sc->sc_refcnt = 0;          sc->sc_refcnt = 0;
        return 0;               return 0;
 }  }
   
 static int  static int
Line 273  ufm_do_req(struct ufm_softc *sc, u_int8_ Line 275  ufm_do_req(struct ufm_softc *sc, u_int8_
         USETW(req.wValue, value);          USETW(req.wValue, value);
         USETW(req.wIndex, index);          USETW(req.wIndex, index);
         USETW(req.wLength, len);          USETW(req.wLength, len);
        err = usbd_do_request_flags(sc->sc_udev, &req, retbuf, 0, NULL);        err = usbd_do_request_flags(sc->sc_udev, &req, retbuf, 0, NULL,
             USBD_DEFAULT_TIMEOUT);
         splx(s);          splx(s);
         if (err) {          if (err) {
                 printf("usbd_do_request_flags returned %#x\n", err);                  printf("usbd_do_request_flags returned %#x\n", err);
Line 293  ufm_set_freq(struct ufm_softc *sc, caddr Line 296  ufm_set_freq(struct ufm_softc *sc, caddr
          * that the radio wants.  This frequency is 10.7MHz above           * that the radio wants.  This frequency is 10.7MHz above
          * the actual frequency.  We then need to convert to           * the actual frequency.  We then need to convert to
          * units of 12.5kHz.  We add one to the IFM to make rounding           * units of 12.5kHz.  We add one to the IFM to make rounding
         * easier.          * easier.
          */           */
         sc->sc_freq = freq;          sc->sc_freq = freq;
         freq = (freq + 10700001) / 12500;          freq = (freq + 10700001) / 12500;
Line 302  ufm_set_freq(struct ufm_softc *sc, caddr Line 305  ufm_set_freq(struct ufm_softc *sc, caddr
             freq, 1, &ret) != 0)              freq, 1, &ret) != 0)
                 return (EIO);                  return (EIO);
         /* Not sure what this does */          /* Not sure what this does */
        if (ufm_do_req(sc, UT_READ_VENDOR_DEVICE, FM_CMD0, 0x96, 0xb7, 1,         if (ufm_do_req(sc, UT_READ_VENDOR_DEVICE, FM_CMD0, 0x96, 0xb7, 1,
             &ret) != 0)              &ret) != 0)
                 return (EIO);                  return (EIO);
         return (0);          return (0);
Line 320  static int Line 323  static int
 ufm_start(struct ufm_softc *sc, caddr_t addr)  ufm_start(struct ufm_softc *sc, caddr_t addr)
 {  {
         u_int8_t ret;          u_int8_t ret;
        
        if (ufm_do_req(sc, UT_READ_VENDOR_DEVICE, FM_CMD0, 0x00, 0xc7,         if (ufm_do_req(sc, UT_READ_VENDOR_DEVICE, FM_CMD0, 0x00, 0xc7,
             1, &ret))              1, &ret))
                 return (EIO);                  return (EIO);
         if (ufm_do_req(sc, UT_READ_VENDOR_DEVICE, FM_CMD2, 0x01, 0x00,          if (ufm_do_req(sc, UT_READ_VENDOR_DEVICE, FM_CMD2, 0x01, 0x00,
Line 336  static int Line 339  static int
 ufm_stop(struct ufm_softc *sc, caddr_t addr)  ufm_stop(struct ufm_softc *sc, caddr_t addr)
 {  {
         u_int8_t ret;          u_int8_t ret;
        
         if (ufm_do_req(sc, UT_READ_VENDOR_DEVICE, FM_CMD0, 0x16, 0x1C,          if (ufm_do_req(sc, UT_READ_VENDOR_DEVICE, FM_CMD0, 0x16, 0x1C,
             1, &ret))              1, &ret))
                 return (EIO);                  return (EIO);
Line 350  static int Line 353  static int
 ufm_get_stat(struct ufm_softc *sc, caddr_t addr)  ufm_get_stat(struct ufm_softc *sc, caddr_t addr)
 {  {
         u_int8_t ret;          u_int8_t ret;
        
         /*          /*
          * Note, there's a 240ms settle time before the status           * Note, there's a 240ms settle time before the status
          * will be valid, so tsleep that amount.  hz/4 is a good           * will be valid, so tsleep that amount.  hz/4 is a good
Line 363  ufm_get_stat(struct ufm_softc *sc, caddr Line 366  ufm_get_stat(struct ufm_softc *sc, caddr
             1, &ret))              1, &ret))
                 return (EIO);                  return (EIO);
         *(int *)addr = ret;          *(int *)addr = ret;
        
         return (0);          return (0);
 }  }
   
Line 465  USB_DETACH(ufm) Line 468  USB_DETACH(ufm)
 #if defined(__FreeBSD__)  #if defined(__FreeBSD__)
 Static int  Static int
 ufm_detach(device_t self)  ufm_detach(device_t self)
{       {
         DPRINTF(("%s: disconnected\n", USBDEVNAME(self)));          DPRINTF(("%s: disconnected\n", USBDEVNAME(self)));
         return 0;          return 0;
 }  }

Removed from v.1.4  
changed lines
  Added in v.1.5