From owner-freebsd-usb@FreeBSD.ORG Mon Jan 9 00:50:05 2006 Return-Path: X-Original-To: freebsd-usb@hub.freebsd.org Delivered-To: freebsd-usb@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 597DE16A41F for ; Mon, 9 Jan 2006 00:50:05 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 92FE643D46 for ; Mon, 9 Jan 2006 00:50:04 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k090o4Tb026937 for ; Mon, 9 Jan 2006 00:50:04 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k090o4qh026930; Mon, 9 Jan 2006 00:50:04 GMT (envelope-from gnats) Resent-Date: Mon, 9 Jan 2006 00:50:04 GMT Resent-Message-Id: <200601090050.k090o4qh026930@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-usb@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Peter Jeremy Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id DA12916A41F for ; Mon, 9 Jan 2006 00:41:49 +0000 (GMT) (envelope-from peterjeremy@optushome.com.au) Received: from mail28.syd.optusnet.com.au (mail28.syd.optusnet.com.au [211.29.133.169]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2956A43D45 for ; Mon, 9 Jan 2006 00:41:48 +0000 (GMT) (envelope-from peterjeremy@optushome.com.au) Received: from server.vk2pj.dyndns.org (c220-239-19-236.belrs4.nsw.optusnet.com.au [220.239.19.236]) by mail28.syd.optusnet.com.au (8.12.11/8.12.11) with ESMTP id k090flvR006530 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Mon, 9 Jan 2006 11:41:47 +1100 Received: from server.vk2pj.dyndns.org (localhost.vk2pj.dyndns.org [127.0.0.1]) by server.vk2pj.dyndns.org (8.13.4/8.13.4) with ESMTP id k090fkFa082863; Mon, 9 Jan 2006 11:41:46 +1100 (EST) (envelope-from peter@server.vk2pj.dyndns.org) Received: (from peter@localhost) by server.vk2pj.dyndns.org (8.13.4/8.13.1/Submit) id k090fk8o082824; Mon, 9 Jan 2006 11:41:46 +1100 (EST) (envelope-from peter) Message-Id: <200601090041.k090fk8o082824@server.vk2pj.dyndns.org> Date: Mon, 9 Jan 2006 11:41:46 +1100 (EST) From: Peter Jeremy To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: usb/91538: Unable to print to EPSON CX3500 X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Peter Jeremy List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2006 00:50:05 -0000 >Number: 91538 >Category: usb >Synopsis: Unable to print to EPSON CX3500 >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-usb >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Jan 09 00:50:03 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Peter Jeremy >Release: FreeBSD 7.0-CURRENT i386 >Organization: n/a >Environment: System: FreeBSD server.vk2pj.dyndns.org 7.0-CURRENT FreeBSD 7.0-CURRENT #23: Mon Jan 9 08:37:53 EST 2006 root@server.vk2pj.dyndns.org:/var/obj/k7/usr/src/sys/server i386 7.0-CURRENT from about Jan 7 1200 UTC. pips-scx3500_3600s-2.6.2 Relevant bits of dmesg are: uhci0: port 0xe400-0xe41f irq 10 at device 17.2 on pci0 uhci0: [GIANT-LOCKED] usb0: on uhci0 usb0: USB revision 1.0 usbd_get_string: getting lang failed, using 0 uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub0: 2 ports with 2 removable, self powered uhci1: port 0xe000-0xe01f irq 10 at device 17.3 on pci0 uhci1: [GIANT-LOCKED] usb1: on uhci1 usb1: USB revision 1.0 usbd_get_string: getting lang failed, using 0 uhub1: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub1: 2 ports with 2 removable, self powered uhci2: port 0xdc00-0xdc1f irq 5 at device 20.0 on pci0 uhci2: [GIANT-LOCKED] usb2: on uhci2 usb2: USB revision 1.0 usbd_get_string: getting lang failed, using 0 uhub2: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub2: 2 ports with 2 removable, self powered uhci3: port 0xd800-0xd81f irq 5 at device 20.1 on pci0 uhci3: [GIANT-LOCKED] usb3: on uhci3 usb3: USB revision 1.0 usbd_get_string: getting lang failed, using 0 uhub3: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub3: 2 ports with 2 removable, self powered ehci0: mem 0xdffffb00-0xdffffbff irq 11 at device 20.2 on pci0 ehci0: [GIANT-LOCKED] usb4: EHCI version 0.95 usb4: companion controllers, 2 ports each: usb2 usb3 usb4: on ehci0 usb4: USB revision 2.0 uhub4: VIA EHCI root hub, class 9/0, rev 2.00/1.00, addr 1 uhub4: 4 ports with 4 removable, self powered >Description: Attempting to access an EPSON Stylus CX3500 printer fails and locks up the uhub until the system is rebooted. I believe this is a problem with the USB subsystem rather than the port because of the lockup. I have posted this problem in freebsd-usb and tried contacting the people mentioned in the PIPS port with no response. >How-To-Repeat: Enable USB_DEBUG and set the sysctl variables as follows: hw.usb.debug: 1 hw.usb.ehci.debug: 1 hw.usb.uhci.debug: 1 hw.usb.ulpt.debug: 3 Plug in the printer. The following shows the behaviour on a USB1 port but the behaviour is the same on a USB2 port. The following console output is generated: usbd_new_device bus=0xc3447000 port=1 depth=1 speed=2 usbd_new_device: adding unit addr=2, rev=110, class=0, subclass=0, protocol=0, maxpacket=8, len=18, speed=2 usbd_new_device: new dev (addr 2), dev=0xc560b280, parent=0xc3439880 usbd_probe_and_attach: trying device specific drivers usbd_probe_and_attach: no device specific driver found usbd_probe_and_attach: looping over 1 configurations usbd_set_config_index: status=0x0001, error=NORMAL_COMPLETION usbd_set_config_index: (addr 1) cno=2 attr=0xc0, selfpowered=1, power=2 usbd_set_config_index: set config 1 ulpt0: EPSON USB MFP, rev 1.10/1.00, addr 2, iclass 255/255 ulpt0: using bi-directional mode Run /usr/local/libexec/pips/printer/ekpd as root. Start /usr/local/bin/ekpstm from an xterm. This generates the following console output: ulptopen: flags=0x40 ulpt_open: open input pipe ulptopen: done, error=0 ulptread ulptread: transfer 1024 bytes ulptread ulptread: transfer 1024 bytes ulptwrite ulpt_status: status=0x18 err=0 ulptwrite: transfer 27 bytes ulptread ulptread: transfer 8 bytes ulptwrite ulpt_status: status=0x18 err=0 ulptwrite: transfer 8 bytes ulptread ulptread: transfer 9 bytes ulptwrite ulpt_status: status=0x18 err=0 ulptwrite: transfer 17 bytes ulptread ulptread: transfer 16 bytes ulptwrite ulpt_status: status=0x18 err=0 ulptwrite: transfer 13 bytes ulptread ulptread: transfer 12 bytes ulptwrite ulpt_status: status=0x18 err=0 ulptwrite: transfer 11 bytes ulptwrite ulpt_status: status=0x18 err=0 ulptwrite: transfer 11 bytes ulptread ulptread: transfer 10 bytes ulptread ulptread: transfer 6 bytes uhci_idone: error, addr=2, endpt=0x83, status 0x500000 usbd_bulk_transfer: error=13 uhci_timeout: uxfer=0xc5b56300 uhci_timeout_task: xfer=0xc5b56300 uhci_check_intr: aborted xfer=0xc5b56300 ulptread: error=13 ulptread ulptread: transfer 6 bytes usbd_bulk_transfer: tsleep=-1 uhci_device_bulk_abort: uhci_check_intr: aborted xfer=0xc5bc2e00 ulptread: error=18 ulptread ulptread: transfer 6 bytes usbd_bulk_transfer: tsleep=-1 uhci_device_bulk_abort: uhci_check_intr: aborted xfer=0xc5bc2e00 ulptread: error=18 Note that error 13 is USBD_IOERROR (reported because BABBLE is set), error 18 is USBD_INTERRUPTED. At this point, the last 6 lines will repeat indefinitely until ekpd is killed. Killing ekpd will give: ulptclose: closed Disconnecting the printer gives: ulpt0: at uhub1 port 1 (addr 2) disconnected ulpt_detach: sc=0xc560ed00 uhci_timeout: uxfer=0xc5bc2e00 uhci_timeout_task: xfer=0xc5bc2e00 uhci_check_intr: aborted xfer=0xc5bc2e00 uhci_timeout: uxfer=0xc5bc2e00 uhci_timeout_task: xfer=0xc5bc2e00 uhci_check_intr: aborted xfer=0xc5bc2e00 ulpt0: detached Re-connecting the printer, or any other USB device, to the same hub then gives: usbd_new_device bus=0xc3447000 port=1 depth=1 speed=2 uhci_timeout: uxfer=0xc5bc2e00 uhci_timeout_task: xfer=0xc5bc2e00 uhci_check_intr: aborted xfer=0xc5bc2e00 uhci_timeout: uxfer=0xc5bc2e00 uhci_timeout_task: xfer=0xc5bc2e00 uhci_check_intr: aborted xfer=0xc5bc2e00 uhci_timeout: uxfer=0xc5bc2e00 uhci_timeout_task: xfer=0xc5bc2e00 uhci_check_intr: aborted xfer=0xc5bc2e00 uhci_timeout: uxfer=0xc5bc2e00 uhci_timeout_task: xfer=0xc5bc2e00 uhci_check_intr: aborted xfer=0xc5bc2e00 usb_new_device: set address 2 failed - trying a port reset [above 13 lines repeat twice] uhci_timeout: uxfer=0xc5bc2e00 uhci_timeout_task: xfer=0xc5bc2e00 uhci_check_intr: aborted xfer=0xc5bc2e00 uhci_timeout: uxfer=0xc5bc2e00 uhci_timeout_task: xfer=0xc5bc2e00 uhci_check_intr: aborted xfer=0xc5bc2e00 uhci_timeout: uxfer=0xc5bc2e00 uhci_timeout_task: xfer=0xc5bc2e00 uhci_check_intr: aborted xfer=0xc5bc2e00 usb_new_device: set address 2 failed usbd_remove_device: 0xc5954d80 uhub_explore: usb_new_device failed, error=SET_ADDR_FAILED uhub1: device problem (SET_ADDR_FAILED), disabling port 1 >Fix: unknown. >Release-Note: >Audit-Trail: >Unformatted: