[BACK]Return to auvitek_video.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / dev / usb

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/dev/usb/auvitek_video.c between version 1.6 and 1.6.32.6

version 1.6, 2011/10/02 19:15:40 version 1.6.32.6, 2017/01/29 15:58:14
Line 93  static int  auvitek_start_xfer(struct au
Line 93  static int  auvitek_start_xfer(struct au
 static int              auvitek_stop_xfer(struct auvitek_softc *);  static int              auvitek_stop_xfer(struct auvitek_softc *);
 static int              auvitek_isoc_start(struct auvitek_softc *);  static int              auvitek_isoc_start(struct auvitek_softc *);
 static int              auvitek_isoc_start1(struct auvitek_isoc *);  static int              auvitek_isoc_start1(struct auvitek_isoc *);
 static void             auvitek_isoc_intr(usbd_xfer_handle,  static void             auvitek_isoc_intr(struct usbd_xfer *, void *,
                                           usbd_private_handle,  
                                           usbd_status);                                            usbd_status);
 static int              auvitek_isoc_process(struct auvitek_softc *,  static int              auvitek_isoc_process(struct auvitek_softc *,
                                              uint8_t *, uint32_t);                                               uint8_t *, uint32_t);
Line 131  int
Line 130  int
 auvitek_video_attach(struct auvitek_softc *sc)  auvitek_video_attach(struct auvitek_softc *sc)
 {  {
         snprintf(sc->sc_businfo, sizeof(sc->sc_businfo), "usb:%08x",          snprintf(sc->sc_businfo, sizeof(sc->sc_businfo), "usb:%08x",
             sc->sc_udev->cookie.cookie);              sc->sc_udev->ud_cookie.cookie);
   
         auvitek_video_rescan(sc, NULL, NULL);          auvitek_video_rescan(sc, NULL, NULL);
   
         return (sc->sc_videodev != NULL);          return sc->sc_videodev != NULL;
 }  }
   
 int  int
Line 585  auvitek_start_xfer(struct auvitek_softc 
Line 584  auvitek_start_xfer(struct auvitek_softc 
         for (i = 0; i < AUVITEK_NISOC_XFERS; i++) {          for (i = 0; i < AUVITEK_NISOC_XFERS; i++) {
                 struct auvitek_isoc *isoc = &ax->ax_i[i];                  struct auvitek_isoc *isoc = &ax->ax_i[i];
   
                 isoc->i_xfer = usbd_alloc_xfer(sc->sc_udev);                  int error = usbd_create_xfer(ax->ax_pipe,
                 if (isoc->i_xfer == NULL) {                      nframes * uframe_len, 0, ax->ax_nframes, &isoc->i_xfer);
                   if (error) {
                         aprint_error_dev(sc->sc_dev,                          aprint_error_dev(sc->sc_dev,
                             "couldn't allocate usb xfer\n");                              "couldn't create usb xfer\n");
                         return ENOMEM;                          return error;
                 }                  }
   
                 isoc->i_buf = usbd_alloc_buffer(isoc->i_xfer,                  isoc->i_buf = usbd_get_buffer(isoc->i_xfer);
                                                 nframes * uframe_len);  
                 if (isoc->i_buf == NULL) {  
                         aprint_error_dev(sc->sc_dev,  
                             "couldn't allocate usb xfer buffer\n");  
                         return ENOMEM;  
                 }  
         }          }
   
         return auvitek_isoc_start(sc);          return auvitek_isoc_start(sc);
Line 613  auvitek_stop_xfer(struct auvitek_softc *
Line 607  auvitek_stop_xfer(struct auvitek_softc *
   
         if (ax->ax_pipe != NULL) {          if (ax->ax_pipe != NULL) {
                 usbd_abort_pipe(ax->ax_pipe);                  usbd_abort_pipe(ax->ax_pipe);
                 usbd_close_pipe(ax->ax_pipe);  
                 ax->ax_pipe = NULL;  
         }          }
   
         for (i = 0; i < AUVITEK_NISOC_XFERS; i++) {          for (i = 0; i < AUVITEK_NISOC_XFERS; i++) {
                 struct auvitek_isoc *isoc = &ax->ax_i[i];                  struct auvitek_isoc *isoc = &ax->ax_i[i];
                 if (isoc->i_xfer != NULL) {                  if (isoc->i_xfer != NULL) {
                         usbd_free_buffer(isoc->i_xfer);                          usbd_destroy_xfer(isoc->i_xfer);
                         usbd_free_xfer(isoc->i_xfer);  
                         isoc->i_xfer = NULL;                          isoc->i_xfer = NULL;
                 }                  }
                 if (isoc->i_frlengths != NULL) {                  if (isoc->i_frlengths != NULL) {
Line 630  auvitek_stop_xfer(struct auvitek_softc *
Line 620  auvitek_stop_xfer(struct auvitek_softc *
                         isoc->i_frlengths = NULL;                          isoc->i_frlengths = NULL;
                 }                  }
         }          }
           if (ax->ax_pipe != NULL) {
                   usbd_close_pipe(ax->ax_pipe);
                   ax->ax_pipe = NULL;
           }
   
         usbd_delay_ms(sc->sc_udev, 1000);          usbd_delay_ms(sc->sc_udev, 1000);
         err = usbd_set_interface(sc->sc_isoc_iface, 0);          err = usbd_set_interface(sc->sc_isoc_iface, 0);
Line 676  auvitek_isoc_start1(struct auvitek_isoc 
Line 670  auvitek_isoc_start1(struct auvitek_isoc 
                 isoc->i_frlengths[i] = ax->ax_uframe_len;                  isoc->i_frlengths[i] = ax->ax_uframe_len;
   
         usbd_setup_isoc_xfer(isoc->i_xfer,          usbd_setup_isoc_xfer(isoc->i_xfer,
                              ax->ax_pipe,  
                              isoc,                               isoc,
                              isoc->i_frlengths,                               isoc->i_frlengths,
                              ax->ax_nframes,                               ax->ax_nframes,
                              USBD_NO_COPY | USBD_SHORT_XFER_OK,                               USBD_SHORT_XFER_OK,
                              auvitek_isoc_intr);                               auvitek_isoc_intr);
   
         err = usbd_transfer(isoc->i_xfer);          err = usbd_transfer(isoc->i_xfer);
Line 694  auvitek_isoc_start1(struct auvitek_isoc 
Line 687  auvitek_isoc_start1(struct auvitek_isoc 
 }  }
   
 static void  static void
 auvitek_isoc_intr(usbd_xfer_handle xfer, usbd_private_handle priv,  auvitek_isoc_intr(struct usbd_xfer *xfer, void * priv,
     usbd_status status)      usbd_status status)
 {  {
         struct auvitek_isoc *isoc = priv;          struct auvitek_isoc *isoc = priv;

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.6.32.6

CVSweb <webmaster@jp.NetBSD.org>