Date: Thu, 16 Jul 2009 20:14:53 GMT From: Hans Petter Selasky <hselasky@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 166176 for review Message-ID: <200907162014.n6GKErpn024774@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=166176 Change 166176 by hselasky@hselasky_laptop001 on 2009/07/16 20:14:28 ULPT: - revert defrag patch - add conditional printer status checking Affected files ... .. //depot/projects/usb/src/sys/dev/usb/serial/ulpt.c#17 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/serial/ulpt.c#17 (text+ko) ==== @@ -110,7 +110,6 @@ struct ulpt_softc { struct usb_fifo_sc sc_fifo; struct usb_fifo_sc sc_fifo_noreset; - struct usb_fifo_sc sc_fifo_raw; struct mtx sc_mtx; struct usb_callout sc_watchdog; @@ -148,7 +147,6 @@ static usb_fifo_ioctl_t ulpt_ioctl; static usb_fifo_open_t ulpt_open; static usb_fifo_open_t unlpt_open; -static usb_fifo_open_t urlpt_open; static struct usb_fifo_methods ulpt_fifo_methods = { .f_close = &ulpt_close, @@ -172,17 +170,6 @@ .basename[0] = "unlpt", }; -static struct usb_fifo_methods urlpt_fifo_methods = { - .f_close = &ulpt_close, - .f_ioctl = &ulpt_ioctl, - .f_open = &urlpt_open, - .f_start_read = &ulpt_start_read, - .f_start_write = &ulpt_start_write, - .f_stop_read = &ulpt_stop_read, - .f_stop_write = &ulpt_stop_write, - .basename[0] = "urlpt", -}; - static void ulpt_reset(struct ulpt_softc *sc) { @@ -432,27 +419,6 @@ } static int -urlpt_open(struct usb_fifo *fifo, int fflags) -{ - struct ulpt_softc *sc = usb_fifo_softc(fifo); - - /* we assume that open is a serial process */ - - if (sc->sc_fflags == 0) { - - /* reset USB paralell port */ - - ulpt_reset(sc); - } - /* set raw write mode */ - - if (fflags & FWRITE) { - usb_fifo_set_write_defrag(fifo, 0); - } - return (unlpt_open(fifo, fflags)); -} - -static int ulpt_open(struct usb_fifo *fifo, int fflags) { struct ulpt_softc *sc = usb_fifo_softc(fifo); @@ -465,11 +431,6 @@ ulpt_reset(sc); } - /* set defrag write mode */ - - if (fflags & FWRITE) { - usb_fifo_set_write_defrag(fifo, 1); - } return (unlpt_open(fifo, fflags)); } @@ -675,13 +636,6 @@ if (error) { goto detach; } - error = usb_fifo_attach(uaa->device, sc, &sc->sc_mtx, - &urlpt_fifo_methods, &sc->sc_fifo_raw, - unit, 0 - 1, uaa->info.bIfaceIndex, - UID_ROOT, GID_OPERATOR, 0644); - if (error) { - goto detach; - } /* start reading of status */ mtx_lock(&sc->sc_mtx); @@ -703,7 +657,6 @@ usb_fifo_detach(&sc->sc_fifo); usb_fifo_detach(&sc->sc_fifo_noreset); - usb_fifo_detach(&sc->sc_fifo_raw); mtx_lock(&sc->sc_mtx); usb_callout_stop(&sc->sc_watchdog); @@ -770,7 +723,12 @@ mtx_assert(&sc->sc_mtx, MA_OWNED); - usbd_transfer_start(sc->sc_xfer[ULPT_INTR_DT_RD]); + /* + * Only read status while the device is not opened, due to + * possible hardware or firmware bug in some printers. + */ + if (sc->sc_fflags == 0) + usbd_transfer_start(sc->sc_xfer[ULPT_INTR_DT_RD]); usb_callout_reset(&sc->sc_watchdog, hz, &ulpt_watchdog, sc);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200907162014.n6GKErpn024774>