ucom0: could not set data multiplex mode

Nikolay Pavlov quetzal at zone3000.net
Wed Jun 6 14:28:12 UTC 2007


On Wednesday,  6 June 2007 at 13:48:43 +0400, Махматханов Руслан Казбекович wrote:
> Nikolay Pavlov пишет:
> 
> >Hi Warner and Ruslan. Warner i have found that Ruslan is the originator of the patches for
> >umodem.c: http://www.freebsd.org/cgi/query-pr.cgi?pr=109838
> >So there is already a few CMOTECH devices there. In any case guys here is my "usbdevs -v" output:
> >Controller /dev/usb0:
> >addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), Intel(0x0000), rev 1.00
> > port 1 addr 2: full speed, power 100 mA, config 1, CMOTECH CDMA Technologies(0x5533), CMOTECH CO., LTD.(0x16d8), rev 0.00
> > port 2 powered
> >I am open to any test ;)
> 
> Please, try attached patch:
> 
> # cd /usr/src/sys/dev/usb
> # patch < /path/to/ccu550.diff
> 
> Then rebuild and reinstall kernel, reboot and try to use CCU550 with that new kernel.
> 
> Patch is applying cleanly against in -CURRENT:
> 
>  - usb_quirks.c  1.41.2.8
>  - usbdevs       1.296
> 
> so update your sources if you have earlier versions of this files or adapt this patch for your files versions.

Yes. This patch works for me. Thank you Ruslan. I can attach and detach
the device for now:

Jun  6 17:00:00 orion kernel: ucom0: <CMOTECH CO., LTD. CMOTECH CDMA Technologies, class 2/0, rev 2.00/0.00, addr 2> on uhub1
Jun  6 17:00:00 orion kernel: ucom0: CMOTECH CO., LTD. CMOTECH CDMA Technologies, rev 2.00/0.00, addr 2, iclass 2/2
Jun  6 17:00:00 orion kernel: ucom0: data interface 1, has CM over data, has break
Jun  6 17:00:00 orion kernel: ucom0: status change notification available

Jun  6 17:02:08 orion kernel: ucom0: at uhub1 port 1 (addr 2) disconnected
Jun  6 17:02:08 orion kernel: ucom0: detached

Jun  6 17:02:44 orion root: Unknown USB device: vendor 0x16d8 product 0x5533 bus uhub1
Jun  6 17:02:44 orion kernel: ucom0: <CMOTECH CO., LTD. CMOTECH CDMA Technologies, class 2/0, rev 2.00/0.00, addr 2> on uhub1
Jun  6 17:02:44 orion kernel: ucom0: CMOTECH CO., LTD. CMOTECH CDMA Technologies, rev 2.00/0.00, addr 2, iclass 2/2
Jun  6 17:02:44 orion kernel: ucom0: data interface 1, has CM over data, has break
Jun  6 17:02:44 orion kernel: ucom0: status change notification available

And it works. :) Is this possible to commit this Warner?

However i have found one issue. If i am trying to detach it while mpd
session is running i see this message from kernel:

Jun  6 17:03:04 orion kernel: WARNING: attempt to net_add_domain(netgraph) after domainfinalize()
Jun  6 17:03:09 orion kernel: Sleeping on "usbdly" with the following non-sleepable locks held:
Jun  6 17:03:09 orion kernel: exclusive sleep mutex ng_tty node+queue r = 0 (0xc712b6a0) locked @ /usr/src/sys/modules/netgraph/tty/../../../netgraph/ng_tt
y.c:207
Jun  6 17:03:09 orion kernel: KDB: stack backtrace:
Jun  6 17:03:09 orion kernel: db_trace_self_wrapper(c0a2f828,e69179d8,c07798cd,c0a2fbeb,e69179ec,...) at db_trace_self_wrapper+0x26
Jun  6 17:03:09 orion kernel: kdb_backtrace(c0a2fbeb,e69179ec,4,1,0,...) at kdb_backtrace+0x29
Jun  6 17:03:09 orion kernel: witness_warn(5,0,c0a2d773,c0a21ac6,0,...) at witness_warn+0x1cd
Jun  6 17:03:09 orion kernel: _sleep(c0b36e14,0,0,c0a21ac6,3,...) at _sleep+0x5f
Jun  6 17:03:09 orion kernel: pause(c0a21ac6,3,e6917a7c,c06b7ae3,c4002000,...) at pause+0x47
Jun  6 17:03:09 orion kernel: usb_delay_ms(c4002000,2,c4e23e98,c0adc224,c7109c62,...) at usb_delay_ms+0x5e
Jun  6 17:03:09 orion kernel: uhci_abort_xfer(e6917a98,c06c831e,c68efc00,c4a08700,c4008800,...) at uhci_abort_xfer+0x163
Jun  6 17:03:09 orion kernel: uhci_device_bulk_abort(c68efc00,c4a08700,c4008800,e6917aa4,c0d0adc3,...) at uhci_device_bulk_abort+0x10
Jun  6 17:03:09 orion kernel: usbd_abort_pipe(c694dc80,e6917ab8,c0d0b56f,c4008800,3,...) at usbd_abort_pipe+0x1e
Jun  6 17:03:09 orion kernel: ucomstopread(c4008800,3,2,e6917ad4,c0788436,...) at ucomstopread+0x23
Jun  6 17:03:09 orion kernel: ucomstop(c4008800,3,c712b680,0,c712b6a0,...) at ucomstop+0x5f
Jun  6 17:03:09 orion kernel: ttyflush(c4008800,3,c7142095,c71420bd,1,...) at ttyflush+0x46
Jun  6 17:03:09 orion kernel: ngt_open(c5a36100,c4008800,368,367,c0b3d494,...) at ngt_open+0x16b
Jun  6 17:03:09 orion kernel: ttioctl(c4008800,8004741b,c6732000,7,c4e23e00,...) at ttioctl+0xdf8
Jun  6 17:03:09 orion kernel: ttyioctl(c5a36100,8004741b,c6732000,7,c4e23e00,...) at ttyioctl+0x11a
Jun  6 17:03:09 orion kernel: giant_ioctl(c5a36100,8004741b,c6732000,7,c4e23e00,...) at giant_ioctl+0x56
Jun  6 17:03:09 orion kernel: devfs_ioctl_f(c560e870,8004741b,c6732000,c6512c00,c4e23e00,...) at devfs_ioctl_f+0xc9
Jun  6 17:03:09 orion kernel: kern_ioctl(c4e23e00,9,8004741b,c6732000,917d38,...) at kern_ioctl+0x243
Jun  6 17:03:09 orion kernel: ioctl(c4e23e00,e6917cfc,c,c4e23e00,c0ad6430,...) at ioctl+0x134
Jun  6 17:03:09 orion kernel: syscall(e6917d38) at syscall+0x293
Jun  6 17:03:09 orion kernel: Xint0x80_syscall() at Xint0x80_syscall+0x20
Jun  6 17:03:09 orion kernel: --- syscall (54, FreeBSD ELF32, ioctl), eip = 0x283f974f, esp = 0xbf8fd94c, ebp = 0xbf8fdc78 ---
Jun  6 17:03:09 orion kernel: lock order reversal: (Giant after non-sleepable)
Jun  6 17:03:09 orion kernel: 1st 0xc712b6a0 ng_tty node+queue (ng_tty node+queue) @ /usr/src/sys/modules/netgraph/tty/../../../netgraph/ng_tty.c:207
Jun  6 17:03:09 orion kernel: 2nd 0xc0b368c8 Giant (Giant) @ /usr/src/sys/kern/kern_synch.c:235
Jun  6 17:03:09 orion kernel: KDB: stack backtrace:
Jun  6 17:03:09 orion kernel: db_trace_self_wrapper(c0a2f828,e69179b0,c077a74e,c0a31cce,c0b368c8,...) at db_trace_self_wrapper+0x26
Jun  6 17:03:09 orion kernel: kdb_backtrace(c0a31cce,c0b368c8,c0a44c78,c0a44c78,c0a2d728,...) at kdb_backtrace+0x29
Jun  6 17:03:09 orion kernel: witness_checkorder(c0b368c8,9,c0a2d728,eb,c0a30425,...) at witness_checkorder+0x6de
Jun  6 17:03:09 orion kernel: _mtx_lock_flags(c0b368c8,0,c0a2d728,eb,0,...) at _mtx_lock_flags+0xbc
Jun  6 17:03:09 orion kernel: _sleep(c0b36e14,0,0,c0a21ac6,3,...) at _sleep+0x3e9
Jun  6 17:03:09 orion kernel: pause(c0a21ac6,3,e6917a7c,c06b7ae3,c4002000,...) at pause+0x47
Jun  6 17:03:09 orion kernel: usb_delay_ms(c4002000,2,c4e23e98,c0adc224,c7109c62,...) at usb_delay_ms+0x5e
Jun  6 17:03:09 orion kernel: uhci_abort_xfer(e6917a98,c06c831e,c68efc00,c4a08700,c4008800,...) at uhci_abort_xfer+0x163
Jun  6 17:03:09 orion kernel: uhci_device_bulk_abort(c68efc00,c4a08700,c4008800,e6917aa4,c0d0adc3,...) at uhci_device_bulk_abort+0x10
Jun  6 17:03:09 orion kernel: usbd_abort_pipe(c694dc80,e6917ab8,c0d0b56f,c4008800,3,...) at usbd_abort_pipe+0x1e
Jun  6 17:03:09 orion kernel: ucomstopread(c4008800,3,2,e6917ad4,c0788436,...) at ucomstopread+0x23
Jun  6 17:03:09 orion kernel: ucomstop(c4008800,3,c712b680,0,c712b6a0,...) at ucomstop+0x5f
Jun  6 17:03:09 orion kernel: ttyflush(c4008800,3,c7142095,c71420bd,1,...) at ttyflush+0x46
Jun  6 17:03:09 orion kernel: ngt_open(c5a36100,c4008800,368,367,c0b3d494,...) at ngt_open+0x16b
Jun  6 17:03:09 orion kernel: ttioctl(c4008800,8004741b,c6732000,7,c4e23e00,...) at ttioctl+0xdf8
Jun  6 17:03:09 orion kernel: ttyioctl(c5a36100,8004741b,c6732000,7,c4e23e00,...) at ttyioctl+0x11a
Jun  6 17:03:09 orion kernel: giant_ioctl(c5a36100,8004741b,c6732000,7,c4e23e00,...) at giant_ioctl+0x56
Jun  6 17:03:09 orion kernel: devfs_ioctl_f(c560e870,8004741b,c6732000,c6512c00,c4e23e00,...) at devfs_ioctl_f+0xc9
Jun  6 17:03:09 orion kernel: kern_ioctl(c4e23e00,9,8004741b,c6732000,917d38,...) at kern_ioctl+0x243
Jun  6 17:03:09 orion kernel: ioctl(c4e23e00,e6917cfc,c,c4e23e00,c0ad6430,...) at ioctl+0x134
Jun  6 17:03:09 orion kernel: syscall(e6917d38) at syscall+0x293
Jun  6 17:03:09 orion kernel: Xint0x80_syscall() at Xint0x80_syscall+0x20
Jun  6 17:03:09 orion kernel: --- syscall (54, FreeBSD ELF32, ioctl), eip = 0x283f974f, esp = 0xbf8fd94c, ebp = 0xbf8fdc78 ---
Jun  6 17:03:41 orion kernel: bfe0: link state changed to DOWN
Jun  6 17:04:02 orion kernel: ucom0: ucomreadcb: IOERROR
Jun  6 17:04:02 orion kernel: ucom0: at uhub1 port 1 (addr 2) disconnected
Jun  6 17:04:03 orion kernel: ucom0: detached
 
I don't know who is the right person regarding this question.
May be the maintainer of the mpd port knows?

Alexander?

> --- /usr/src/sys/dev/usb/usbdevs	Wed Jun  6 13:40:36 2007
> +++ usbdevs	Wed Jun  6 13:42:21 2007
> @@ -830,6 +830,7 @@
>  
>  /* CMOTECH products */
>  product CMOTECH CNU510		0x5141	CMOTECH CDMA Technologies USB modem
> +product CMOTECH CCU550          0x5533  CDMA 2000 1xRTT/1xEVDO USB modem
>  product CMOTECH CNU550		0x5543	CDMA 2000 1xRTT/1xEVDO USB modem
>  
>  /* Compaq products */
> --- /usr/src/sys/dev/usb/usb_quirks.c	Wed Jun  6 13:40:36 2007
> +++ usb_quirks.c	Wed Jun  6 13:43:06 2007
> @@ -80,6 +80,8 @@
>   { USB_VENDOR_SILICONPORTALS, USB_PRODUCT_SILICONPORTALS_YAPPHONE,
>     						    0x100, { UQ_AU_INP_ASYNC }},
>   { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_UN53B, ANY, { UQ_NO_STRINGS }},
> + { USB_VENDOR_CMOTECH, USB_PRODUCT_CMOTECH_CCU550,
> +         ANY, { UQ_ASSUME_CM_OVER_DATA }},
>   { USB_VENDOR_CMOTECH, USB_PRODUCT_CMOTECH_CNU510,
>  	 ANY, { UQ_ASSUME_CM_OVER_DATA }},
>   { USB_VENDOR_CMOTECH, USB_PRODUCT_CMOTECH_CNU550,


-- 
======================================================================  
- Best regards, Nikolay Pavlov. <<<-----------------------------------    
======================================================================  



More information about the freebsd-usb mailing list