The following reply was made to PR usb/178722; it has been noted by GNATS.

From: dfil...@freebsd.org (dfilter service)
To: bug-follo...@freebsd.org
Cc:  
Subject: Re: usb/178722: commit references a PR
Date: Sat, 18 May 2013 07:03:15 +0000 (UTC)

 Author: hselasky
 Date: Sat May 18 07:03:06 2013
 New Revision: 250763
 URL: http://svnweb.freebsd.org/changeset/base/250763
 
 Log:
   Fix issue with "Logitech Webcam C525":
   
   Set a valid alternate interface setting
   when enumerating USB audio devices else
   the device mentioned will not work like
   expected.
   
   PR:          usb/178722
   MFC after:   1 week
 
 Modified:
   head/sys/dev/sound/usb/uaudio.c
 
 Modified: head/sys/dev/sound/usb/uaudio.c
 ==============================================================================
 --- head/sys/dev/sound/usb/uaudio.c    Sat May 18 05:48:46 2013        
(r250762)
 +++ head/sys/dev/sound/usb/uaudio.c    Sat May 18 07:03:06 2013        
(r250763)
 @@ -868,6 +868,7 @@ uaudio_attach(device_t dev)
        struct usb_attach_arg *uaa = device_get_ivars(dev);
        struct uaudio_softc *sc = device_get_softc(dev);
        struct usb_interface_descriptor *id;
 +      usb_error_t err;
        device_t child;
  
        sc->sc_play_chan.priv_sc = sc;
 @@ -925,6 +926,19 @@ uaudio_attach(device_t dev)
  
        if (sc->sc_play_chan.num_alt > 0) {
                uint8_t x;
 +
 +              /*
 +               * Need to set a default alternate interface, else
 +               * some USB audio devices might go into an infinte
 +               * re-enumeration loop:
 +               */
 +              err = usbd_set_alt_interface_index(sc->sc_udev,
 +                  sc->sc_play_chan.usb_alt[0].iface_index,
 +                  sc->sc_play_chan.usb_alt[0].iface_alt_index);
 +              if (err) {
 +                      DPRINTF("setting of alternate index failed: %s!\n",
 +                          usbd_errstr(err));
 +              }
                for (x = 0; x != sc->sc_play_chan.num_alt; x++) {
                        device_printf(dev, "Play: %d Hz, %d ch, %s format, "
                            "2x8ms buffer.\n",
 @@ -938,6 +952,19 @@ uaudio_attach(device_t dev)
  
        if (sc->sc_rec_chan.num_alt > 0) {
                uint8_t x;
 +
 +              /*
 +               * Need to set a default alternate interface, else
 +               * some USB audio devices might go into an infinte
 +               * re-enumeration loop:
 +               */
 +              err = usbd_set_alt_interface_index(sc->sc_udev,
 +                  sc->sc_rec_chan.usb_alt[0].iface_index,
 +                  sc->sc_rec_chan.usb_alt[0].iface_alt_index);
 +              if (err) {
 +                      DPRINTF("setting of alternate index failed: %s!\n",
 +                          usbd_errstr(err));
 +              }
                for (x = 0; x != sc->sc_rec_chan.num_alt; x++) {
                        device_printf(dev, "Record: %d Hz, %d ch, %s format, "
                            "2x8ms buffer.\n",
 _______________________________________________
 svn-src-...@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
 
_______________________________________________
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"

Reply via email to