Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Jan 2003 18:26:13 -0500 (EST)
From:      Colin Perkins <csp@csperkins.org>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   kern/47274: umodem update to support motorola v66 phone
Message-ID:  <200301202326.h0KNQDaB000879@purple.nge.isi.edu>

next in thread | raw e-mail | index | archive | help

>Number:         47274
>Category:       kern
>Synopsis:       umodem update to support motorola v66 phone
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jan 20 15:30:01 PST 2003
>Closed-Date:
>Last-Modified:
>Originator:     Colin Perkins
>Release:        FreeBSD 4.7-STABLE i386
>Organization:
USC/ISI
>Environment:
System: FreeBSD purple.nge.isi.edu 4.7-STABLE FreeBSD 4.7-STABLE #1: Mon Jan 20 17:22:56 EST 2003 root@purple.nge.isi.edu:/usr/obj/usr/src/sys/PURPLE i386
IBM ThinkPad X22 laptop with Motorola V66e phone

>Description:

The umodem device in 4.7-STABLE does not correctly detect and attach to 
a Motorola V66e phone. Patch enclosed updates the umodem driver, as per 
NetBSD, and allows the phone to work as a USB modem.

>How-To-Repeat:

Attach phone to USB port on a 4.7-STABLE system, with hw.usb.umodem.debug=1 
in /etc/sysctl.conf. Something similar to the following will be logged, and
the device will fail to attach.

  Jan 20 17:10:39 purple /kernel: umodem0: Motorola Inc. Motorola Phone (V.series 66), rev 1.10/0.01, addr 2, iclass 2/2
  Jan 20 17:10:39 purple /kernel: umodem0: data interface 1, has CM over data, has no break
  Jan 20 17:10:39 purple /kernel: umodem0: umodem_set_comm_feat: feature=1 failed, err=13
  Jan 20 17:10:39 purple /kernel: umodem_attach: BAD -> DYING
  Jan 20 17:10:39 purple /kernel: device_probe_and_attach: umodem0 attach returned 6
  Jan 20 17:10:39 purple /kernel: ugen0:  product 0x1005, rev 1.10/0.01, addr 2
  Jan 20 17:10:44 purple /kernel: ugen0: setting configuration index 0 failed
  Jan 20 17:10:44 purple /kernel: device_probe_and_attach: ugen0 attach returned 6

>Fix:

Apply patch below to /usr/src/sys/dev/usb/umodem.c (patch inspired by
NetBSD sources). The device is now correctly detected when attached, 
and appears to function correctly.


*** umodem.c.orig       Mon Jan 20 17:14:33 2003
--- umodem.c    Mon Jan 20 17:18:37 2003
***************
*** 319,326 ****
                sc->sc_cm_over_data = 1;
        } else {
        if (sc->sc_cm_cap & USB_CDC_CM_OVER_DATA) {
!               err = umodem_set_comm_feature(sc, UCDC_ABSTRACT_STATE,
!                                           UCDC_DATA_MULTIPLEXED);
                if (err)
                        goto bad;
                sc->sc_cm_over_data = 1;
--- 319,329 ----
                sc->sc_cm_over_data = 1;
        } else {
        if (sc->sc_cm_cap & USB_CDC_CM_OVER_DATA) {
!               if (sc->sc_acm_cap & USB_CDC_ACM_HAS_FEATURE) {
!                       err = umodem_set_comm_feature(sc, UCDC_ABSTRACT_STATE, UCDC_DATA_MULTIPLEXED);
!               } else {
!                       err = 0;
!               }
                if (err)
                        goto bad;
                sc->sc_cm_over_data = 1;

>Release-Note:
>Audit-Trail:
>Unformatted:

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




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