Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 11 Jul 2009 23:26:35 +0200
From:      Patrick Lamaiziere <patfbsd@davenulle.org>
To:        Hans Petter Selasky <hselasky@c2i.net>
Cc:        freebsd-current@freebsd.org
Subject:   Re: ulpt problem (USB_ERR_IOERROR)
Message-ID:  <20090711232635.24b28f1f@baby-jane.lamaiziere.net>
In-Reply-To: <200907072039.27811.hselasky@c2i.net>
References:  <20090703172600.1971111e@baby-jane.lamaiziere.net> <20090706161154.06abb3cd@baby-jane.lamaiziere.net> <200907061750.39084.hselasky@c2i.net> <200907072039.27811.hselasky@c2i.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Le Tue, 7 Jul 2009 20:39:26 +0200,
Hans Petter Selasky <hselasky@c2i.net> a =E9crit :

> There was a small bug in my patch. Could you post-patching edit=20
> /sys/dev/serial/ulpt.c
>=20
> urlpt_open(struct usb_fifo *fifo, int fflags)
> ulpt_open(struct usb_fifo *fifo, int fflags)

Well, as I must use the unlpt device, I think this does not change
anything.=20

If I understand well, with /dev/unlpt0, ulpt.c calls unlpt_open(), not
ulpt_open() nor unlpt_open()?

Just in case, I've tried to change unlpt_open() with
static int
unlpt_open(struct usb_fifo *fifo, int fflags)
{
        struct ulpt_softc *sc =3D usb_fifo_softc(fifo);

        if (sc->sc_fflags & fflags) {
                return (EBUSY);
        }

        /* set defrag write mode */

        if (fflags & FWRITE) {
                printf("unlpt_open: using defrag write mode\n");
                usb_fifo_set_write_defrag(fifo, 1);
        }
...

But the printer hangs after the first job (the data led on the printer
stay on):
unlpt_open: using defrag write mode
ulpt_write_callback:237: state=3D0x0 actlen=3D0
ulpt_write_callback:237: state=3D0x1 actlen=3D32768
ulpt_write_callback:237: state=3D0x1 actlen=3D32768
ulpt_write_callback:237: state=3D0x1 actlen=3D32768

Thanks.



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