usb/104704: GNATS report

Eygene rea-fbsd at codelabs.ru
Mon Oct 23 08:31:00 UTC 2006


>Number:         104704
>Category:       usb
>Synopsis:       Add Xerox WorkCentre M15 to the list of unidirectional USB printers
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-usb
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Oct 23 08:30:16 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Eygene Ryabinkin
>Release:        FreeBSD 6.2-PRERELEASE i386
>Organization:
Code Labs
>Environment:
System: FreeBSD XXX 6.2-PRERELEASE FreeBSD 6.2-PRERELEASE #9: Fri Oct 20 18:56:59 MSD 2006 root at XXX:/usr/src/sys/i386/compile/XXX i386


>Description:
USB printer Xerox WorkCentre M15 reports the bidirectional functionality
to the USB subsystem, but all read requests are failing.
>How-To-Repeat:
Compile kernel with the ulpt support, plug in the Xerox WorkCentre M15
printer and try to read something from the device via 'cat < /dev/ulpt0'.
It will hang and when ^C will be pressed it will tell that I/O error
occured.

Xerox support was unable to comment if their printer supports native
USB bidirectionality or the bidirectional interface is supported through
IEEE 1284.4 layer. Or the device just wrongly specifies its
bidirectionality.
>Fix:
Force unidirectional mode via usb_quirks.c. The patch is attached.
The device and vendor IDs are numerical, because there is no Xerox
manufacturer ID in the official list of USB vendors.

--- /sys/dev/usb/usb_quirks.c.orig	Fri Oct 20 18:56:29 2006
+++ /sys/dev/usb/usb_quirks.c	Fri Oct 20 18:56:06 2006
@@ -86,6 +86,8 @@
  { USB_VENDOR_HP, USB_PRODUCT_HP_810C,		    ANY,   { UQ_BROKEN_BIDIR }},
  { USB_VENDOR_HP, USB_PRODUCT_HP_830C,		    ANY,   { UQ_BROKEN_BIDIR }},
  { USB_VENDOR_HP, USB_PRODUCT_HP_1220C,		    ANY,   { UQ_BROKEN_BIDIR }},
+ /* Xerox WorkCentre M15 */
+ { 0x0924,        0xffef,	    		    ANY,   { UQ_BROKEN_BIDIR }},
  /* YAMAHA router's ucdDevice is the version of farmware and often changes. */
  { USB_VENDOR_YAMAHA, USB_PRODUCT_YAMAHA_RTA54I,
 	ANY, { UQ_ASSUME_CM_OVER_DATA }},
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-usb mailing list