From owner-freebsd-usb@FreeBSD.ORG Sun May 27 20:32:51 2007 Return-Path: X-Original-To: freebsd-usb@freebsd.org Delivered-To: freebsd-usb@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9F99616A494 for ; Sun, 27 May 2007 20:32:51 +0000 (UTC) (envelope-from hselasky@freebsd.org) Received: from swip.net (mailfe08.swip.net [212.247.154.225]) by mx1.freebsd.org (Postfix) with ESMTP id D52BA13C46C for ; Sun, 27 May 2007 20:32:50 +0000 (UTC) (envelope-from hselasky@freebsd.org) X-Cloudmark-Score: 0.000000 [] Received: from [88.88.46.79] (account mc467741@c2i.net HELO [192.168.0.102]) by mailfe08.swip.net (CommuniGate Pro SMTP 5.1.7) with ESMTPA id 501320151; Sun, 27 May 2007 22:32:47 +0200 From: Hans Petter Selasky To: freebsd-usb@freebsd.org Date: Sun, 27 May 2007 22:32:32 +0200 User-Agent: KMail/1.9.5 References: <200705271533.l4RFXF4e002561@coyote.q.local> In-Reply-To: <200705271533.l4RFXF4e002561@coyote.q.local> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <200705272232.32410.hselasky@freebsd.org> Cc: FreeBSD-gnats-submit@freebsd.org Subject: Re: usb/113060: Samsung printer not working in bidirectional mode X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 May 2007 20:32:51 -0000 On Sunday 27 May 2007 17:33, Ulrich Spoerlein wrote: > >Number: 113060 > >Category: usb > >Synopsis: Samsung printer not working in bidirectional mode > >Confidential: no > >Severity: non-critical > >Priority: low > >Responsible: freebsd-usb > >State: open > >Quarter: > >Keywords: > >Date-Required: > >Class: sw-bug > >Submitter-Id: current-users > >Arrival-Date: Sun May 27 15:40:04 GMT 2007 > >Closed-Date: > >Last-Modified: > >Originator: Ulrich Sp=F6rlein > >Release: FreeBSD 6.2-STABLE i386 > >Organization: > >Environment: > >Description: > > The following printer, when attached via USB fails to work > > port 2 addr 2: full speed, self powered, config 1, SAMSUNG Laser Printer > ML-4600(0x3004), SAMSUNG ELECTRONICS CO., LT(0x04e8), rev 1.00 > > Peter van Heusden identified the problem to be the bi-directional mode. > When adding the quirks as given below *OR* chmod a-w /dev/ulpt0 CUPS will > print just fine. > > Please note that under the new USB stack developed by Hans Petter Selasky > the printer works out of the box. This, and usb/112944 leave me to believe > it is a more general problem with bidirectional support under ulpt(4). > > Perhaps HPS can comment on the architectural differences between the old > and his new ulpt(4)? > > PS: Whitespace and sorting in usb_quirks.c are, well, interessting. > > >How-To-Repeat: > >Fix: > > --- ml4600.diff begins here --- > Index: usb_quirks.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /home/ncvs/src/sys/dev/usb/usb_quirks.c,v > retrieving revision 1.41.2.8 > diff -u -p -r1.41.2.8 usb_quirks.c > --- usb_quirks.c 28 Apr 2007 20:31:30 -0000 1.41.2.8 > +++ usb_quirks.c 27 May 2007 15:31:37 -0000 > @@ -99,6 +99,7 @@ Static const struct usbd_quirk_entry { > { 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 }}, > + { USB_VENDOR_SAMSUNG, USB_PRODUCT_SAMSUNG_ML4600, ANY, { > UQ_BROKEN_BIDIR }}, { USB_VENDOR_XEROX, USB_PRODUCT_XEROX_WCM15, ANY,= =20 > { UQ_BROKEN_BIDIR }}, /* YAMAHA router's ucdDevice is the version of > farmware and often changes. */ { USB_VENDOR_YAMAHA, > USB_PRODUCT_YAMAHA_RTA54I, > Index: usbdevs > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /home/ncvs/src/sys/dev/usb/usbdevs,v > retrieving revision 1.232.2.24 > diff -u -p -r1.232.2.24 usbdevs > --- usbdevs 20 May 2007 12:34:39 -0000 1.232.2.24 > +++ usbdevs 27 May 2007 09:30:30 -0000 > @@ -1491,6 +1491,7 @@ product RATOC REXUSB60 0xb000 REX-USB60 > product SAGEM USBSERIAL 0x0027 USB-Serial Controller > > /* Samsung products */ > +product SAMSUNG ML4600 0x3004 ML-4600 laser printer > product SAMSUNG ML6060 0x3008 ML-6060 laser printer > > /* SanDisk products */ > --- ml4600.diff ends here --- > > >Release-Note: > >Audit-Trail: > >Unformatted: > Hi, The main difference between the old "ulpt" and the new "ulpt" is that the n= ew=20 use asynchronous reading of data, while the old "ulpt" uses synchronous=20 reading. That means that the new "ulpt" transfers data to/from all endpoint= s=20 in the background. Maybe that has something to do with the problem, that the IN enpoint is not= =20 polled. =2D-HPS