More Canon scanners (usbdevs, uscanner.c)

View: New views
17 Messages — Rating Filter:   Alert me  

More Canon scanners (usbdevs, uscanner.c)

by Mattieu Baptiste-2 :: Rate this Message:

| View Threaded | Show Only this Message

Hi,

This diff add support for more Canon scanners in -current (from
NetBSD). Tested on i386 with a CanoScan Lide 30:

mattieu@vosgien: ~ $ usbdevs
addr 1: UHCI root hub, Intel
addr 1: UHCI root hub, Intel
 addr 2: CanoScan, Canon
addr 1: UHCI root hub, Intel
 addr 2: Biometric Coprocessor, STMicroelectronics
addr 1: UHCI root hub, Intel
addr 1: EHCI root hub, Intel
 addr 2: OneTouch, Maxtor
mattieu@vosgien: ~ $ dmesg | grep uscanner
uscanner0 at uhub1 port 2ugen0 at uhub2 port 2
uscanner0: Canon CanoScan, rev 1.10/1.00, addr 2


--- usbdevs     Sat Jul  1 11:15:23 2006
+++ usbdevs.test        Sat Jul  1 11:14:55 2006
@@ -754,7 +754,9 @@

 /* Canon, Inc. products */
 product CANON N656U            0x2206  CANOSCAN N656U
+product CANON N1220U           0x2207  CANOSCAN N1220U
 product CANON N670U            0x220d  CANOSCAN N670U
+product CANON N1240U           0x220e  CANOSCAN N1240U
 product CANON S10              0x3041  PowerShot S10
 product CANON S20              0x3043  PowerShot S20
 product CANON S100_US          0x3045  PowerShot S100

--- uscanner.c  Sat Jul  1 11:10:13 2006
+++ uscanner.c.test     Sat Jul  1 11:19:35 2006
@@ -107,6 +107,9 @@

   /* Canon */
  {{ USB_VENDOR_CANON, USB_PRODUCT_CANON_N656U }, 0 },
+ {{ USB_VENDOR_CANON, USB_PRODUCT_CANON_N670U }, 0 },
+ {{ USB_VENDOR_CANON, USB_PRODUCT_CANON_N1220U }, 0 },
+ {{ USB_VENDOR_CANON, USB_PRODUCT_CANON_N1240U }, 0 },

   /* Kye */
  {{ USB_VENDOR_KYE, USB_PRODUCT_KYE_VIVIDPRO }, 0 },




--
Mattieu Baptiste
"/earth is 102% full ... please delete anyone you can."


Re: More Canon scanners (usbdevs, uscanner.c)

by miod :: Rate this Message:

| View Threaded | Show Only this Message

> This diff add support for more Canon scanners in -current (from
> NetBSD). Tested on i386 with a CanoScan Lide 30:

Applied. Thanks!

Miod


Re: More Canon scanners (usbdevs, uscanner.c)

by Mattieu Baptiste-2 :: Rate this Message:

| View Threaded | Show Only this Message

On Sat, Jul 1, 2006 at 12:38 PM, Miod Vallat <miod@...> wrote:
>> This diff add support for more Canon scanners in -current (from
>> NetBSD). Tested on i386 with a CanoScan Lide 30:
>
> Applied. Thanks!
>
> Miod
>

Hi all,

Don't know what I drank at this time but it wasn't good at all for my brain.

I'd like to know if people are able to use their Canon scanner with
xsane via uscanner, because I can't with my Canon Lide 30.

So... if people have the same problems that I'm facing with Canon
scanners, I propose to completely revert the uscanner.c commit (rev
1.21).
Or if it's just with my device, I propose this patch which let me scan
content with xsane:


Index: uscanner.c
===================================================================
RCS file: /cvs/src/sys/dev/usb/uscanner.c,v
retrieving revision 1.43
diff -u -p -r1.43 uscanner.c
--- uscanner.c  24 Sep 2010 08:33:59 -0000      1.43
+++ uscanner.c  23 Nov 2010 20:36:35 -0000
@@ -94,7 +94,6 @@ static const struct uscan_info uscanner_
  {{ USB_VENDOR_CANON, USB_PRODUCT_CANON_N656U }, 0 },
  {{ USB_VENDOR_CANON, USB_PRODUCT_CANON_N670U }, 0 },
  {{ USB_VENDOR_CANON, USB_PRODUCT_CANON_N1220U }, 0 },
- {{ USB_VENDOR_CANON, USB_PRODUCT_CANON_N1240U }, 0 },

   /* Kye */
  {{ USB_VENDOR_KYE, USB_PRODUCT_KYE_VIVIDPRO }, 0 },



--
Mattieu Baptiste
"/earth is 102% full ... please delete anyone you can."


Re: More Canon scanners (usbdevs, uscanner.c)

by miod :: Rate this Message:

| View Threaded | Show Only this Message

> I'd like to know if people are able to use their Canon scanner with
> xsane via uscanner, because I can't with my Canon Lide 30.
>
> So... if people have the same problems that I'm facing with Canon
> scanners, I propose to completely revert the uscanner.c commit (rev
> 1.21).

Could this be caused by changes in the kernel and/or in xsane? Did you
try e.g. an older xsane against a kernel which attaches your hardware as
uscanner, and against a kernel with the uscanner.c chunk reverted?

Miod


Re: More Canon scanners (usbdevs, uscanner.c)

by Mattieu Baptiste-2 :: Rate this Message:

| View Threaded | Show Only this Message

On Tue, Nov 23, 2010 at 10:51 PM, Miod Vallat <miod@...> wrote:

> Could this be caused by changes in the kernel and/or in xsane? Did you
> try e.g. an older xsane against a kernel which attaches your hardware as
> uscanner, and against a kernel with the uscanner.c chunk reverted?

In fact, if my memory serves me right, I've never been able to use my
scanner with uscanner (I have this device since years).

I always had to "disable uscanner" at boot time, let the device attach
as ugen, and run xsane. Then xsane works like a charm.

When this devices attaches as uscanner, xsane is not able to detect the scanner.

--
Mattieu Baptiste
"/earth is 102% full ... please delete anyone you can."


Re: More Canon scanners (usbdevs, uscanner.c)

by Antoine Jacoutot-7 :: Rate this Message:

| View Threaded | Show Only this Message

On Tue, 23 Nov 2010, Mattieu Baptiste wrote:

> On Tue, Nov 23, 2010 at 10:51 PM, Miod Vallat <miod@...> wrote:
>
> > Could this be caused by changes in the kernel and/or in xsane? Did you
> > try e.g. an older xsane against a kernel which attaches your hardware as
> > uscanner, and against a kernel with the uscanner.c chunk reverted?
>
> In fact, if my memory serves me right, I've never been able to use my
> scanner with uscanner (I have this device since years).
>
> I always had to "disable uscanner" at boot time, let the device attach
> as ugen, and run xsane. Then xsane works like a charm.
<...>

Yes, this is the prefered way to do it. And xsane had nothing to do with
it, libsane from sane-backends is what is accessing your device.

At one point, the best would be to remove uscanner entirely as it's
impossible to keep track of all devices anyway. IIRC at least Linux and
FreeBSD now use libusb with sane for scanning (which is what you are
doing when you "disable uscanner").

Cheers!

--
Antoine


Re: More Canon scanners (usbdevs, uscanner.c)

by Mattieu Baptiste-2 :: Rate this Message:

| View Threaded | Show Only this Message

On Wed, Nov 24, 2010 at 1:20 AM, Antoine Jacoutot <ajacoutot@...> wrote:

> Yes, this is the prefered way to do it. And xsane had nothing to do with
> it, libsane from sane-backends is what is accessing your device.
>
> At one point, the best would be to remove uscanner entirely as it's
> impossible to keep track of all devices anyway. IIRC at least Linux and
> FreeBSD now use libusb with sane for scanning (which is what you are
> doing when you "disable uscanner").

But is there any reason to keep these devices in uscanner? To my
knowledge, sane is the only tool to access such devices. Is there
other software that need uscanner?

And more generally, is there any reason to keep uscanner?

--
Mattieu Baptiste
"/earth is 102% full ... please delete anyone you can."


Re: More Canon scanners (usbdevs, uscanner.c)

by miod :: Rate this Message:

| View Threaded | Show Only this Message

> But is there any reason to keep these devices in uscanner? To my
> knowledge, sane is the only tool to access such devices. Is there
> other software that need uscanner?
>
> And more generally, is there any reason to keep uscanner?

According to the manpage, it was written to provide a linux-compatible
scanner device. If nowadays' scanning applications are perfectly happy
with ugen(4), then I see no point in keeping uscanner(4). Unless I
misunderstood things...

Miod


Re: More Canon scanners (usbdevs, uscanner.c)

by Antoine Jacoutot-7 :: Rate this Message:

| View Threaded | Show Only this Message

On Wed, 24 Nov 2010, Miod Vallat wrote:

> > But is there any reason to keep these devices in uscanner? To my
> > knowledge, sane is the only tool to access such devices. Is there
> > other software that need uscanner?
> >
> > And more generally, is there any reason to keep uscanner?
>
> According to the manpage, it was written to provide a linux-compatible
> scanner device. If nowadays' scanning applications are perfectly happy
> with ugen(4), then I see no point in keeping uscanner(4). Unless I
> misunderstood things...

Well, I don't own many scanners. All I can say is that uscanner is
deprecated in linux, they now use libusb. I also do so without issue
but I cannot guess it'll be the same for all scanners around.
The expected scenario is that all usb scanners *should* work with libusb
where only some will also work also uscanner.

This calls for testing from people who own such hardware. Personally I'd
be happy to see uscanner move away, I wouldn't have to config(8) my
kernel all the time.

--
Antoine


Re: More Canon scanners (usbdevs, uscanner.c)

by Stuart Henderson :: Rate this Message:

| View Threaded | Show Only this Message

On 2010/11/24 19:06, Antoine Jacoutot wrote:

> On Wed, 24 Nov 2010, Miod Vallat wrote:
>
> > > But is there any reason to keep these devices in uscanner? To my
> > > knowledge, sane is the only tool to access such devices. Is there
> > > other software that need uscanner?
> > >
> > > And more generally, is there any reason to keep uscanner?
> >
> > According to the manpage, it was written to provide a linux-compatible
> > scanner device. If nowadays' scanning applications are perfectly happy
> > with ugen(4), then I see no point in keeping uscanner(4). Unless I
> > misunderstood things...
>
> Well, I don't own many scanners. All I can say is that uscanner is
> deprecated in linux, they now use libusb. I also do so without issue
> but I cannot guess it'll be the same for all scanners around.
> The expected scenario is that all usb scanners *should* work with libusb
> where only some will also work also uscanner.
>
> This calls for testing from people who own such hardware. Personally I'd
> be happy to see uscanner move away, I wouldn't have to config(8) my
> kernel all the time.

How about removing uscanner from GENERIC for now, then if nobody
has a problem with it, remove the code at a later date? (I would
suggest picking that date in advance so it doesn't sit around for
ages).


Re: More Canon scanners (usbdevs, uscanner.c)

by David Coppa :: Rate this Message:

| View Threaded | Show Only this Message

On Wed, Nov 24, 2010 at 8:30 PM, Stuart Henderson <stu@...> wrote:

> How about removing uscanner from GENERIC for now, then if nobody
> has a problem with it, remove the code at a later date? (I would
> suggest picking that date in advance so it doesn't sit around for
> ages).

seconded.

cheers,
david


Re: More Canon scanners (usbdevs, uscanner.c)

by Antoine Jacoutot-7 :: Rate this Message:

| View Threaded | Show Only this Message

On Wed, 24 Nov 2010, Stuart Henderson wrote:

> How about removing uscanner from GENERIC for now, then if nobody
> has a problem with it, remove the code at a later date? (I would
> suggest picking that date in advance so it doesn't sit around for
> ages).

I'm all for it.
However, people using sane with uscanner will have to change their
sane.d/<backend>.conf accordingly. That is no problem, just expect some
whiners...

--
Antoine


Re: More Canon scanners (usbdevs, uscanner.c)

by Kenneth R Westerback :: Rate this Message:

| View Threaded | Show Only this Message

On Wed, Nov 24, 2010 at 07:30:22PM +0000, Stuart Henderson wrote:

> On 2010/11/24 19:06, Antoine Jacoutot wrote:
> > On Wed, 24 Nov 2010, Miod Vallat wrote:
> >
> > > > But is there any reason to keep these devices in uscanner? To my
> > > > knowledge, sane is the only tool to access such devices. Is there
> > > > other software that need uscanner?
> > > >
> > > > And more generally, is there any reason to keep uscanner?
> > >
> > > According to the manpage, it was written to provide a linux-compatible
> > > scanner device. If nowadays' scanning applications are perfectly happy
> > > with ugen(4), then I see no point in keeping uscanner(4). Unless I
> > > misunderstood things...
> >
> > Well, I don't own many scanners. All I can say is that uscanner is
> > deprecated in linux, they now use libusb. I also do so without issue
> > but I cannot guess it'll be the same for all scanners around.
> > The expected scenario is that all usb scanners *should* work with libusb
> > where only some will also work also uscanner.
> >
> > This calls for testing from people who own such hardware. Personally I'd
> > be happy to see uscanner move away, I wouldn't have to config(8) my
> > kernel all the time.
>
> How about removing uscanner from GENERIC for now, then if nobody
> has a problem with it, remove the code at a later date? (I would
> suggest picking that date in advance so it doesn't sit around for
> ages).
>

I'd rather nuke it completely. Putting it back is not much more difficult
than tweaking GENERIC and is more likely to flush out people actually
using it. Who will change GENERIC, not say anything, and then get upset
when the driver is removed. Just my 2 cents.

.... Ken


Re: More Canon scanners (usbdevs, uscanner.c)

by Mark Kettenis :: Rate this Message:

| View Threaded | Show Only this Message

> Date: Wed, 24 Nov 2010 19:30:22 +0000
> From: Stuart Henderson <stu@...>
>
> On 2010/11/24 19:06, Antoine Jacoutot wrote:
> > On Wed, 24 Nov 2010, Miod Vallat wrote:
> >
> > > > But is there any reason to keep these devices in uscanner? To my
> > > > knowledge, sane is the only tool to access such devices. Is there
> > > > other software that need uscanner?
> > > >
> > > > And more generally, is there any reason to keep uscanner?
> > >
> > > According to the manpage, it was written to provide a linux-compatible
> > > scanner device. If nowadays' scanning applications are perfectly happy
> > > with ugen(4), then I see no point in keeping uscanner(4). Unless I
> > > misunderstood things...
> >
> > Well, I don't own many scanners. All I can say is that uscanner is
> > deprecated in linux, they now use libusb. I also do so without issue
> > but I cannot guess it'll be the same for all scanners around.
> > The expected scenario is that all usb scanners *should* work with libusb
> > where only some will also work also uscanner.
> >
> > This calls for testing from people who own such hardware. Personally I'd
> > be happy to see uscanner move away, I wouldn't have to config(8) my
> > kernel all the time.
>
> How about removing uscanner from GENERIC for now, then if nobody
> has a problem with it, remove the code at a later date? (I would
> suggest picking that date in advance so it doesn't sit around for
> ages).

Just nuke it.  It'll be sitting in the attick if anybody wants it back.


Re: More Canon scanners (usbdevs, uscanner.c)

by Mattieu Baptiste-2 :: Rate this Message:

| View Threaded | Show Only this Message

On Thu, Nov 25, 2010 at 2:28 PM, Mark Kettenis <mark.kettenis@...>
wrote:

>
> Just nuke it.  It'll be sitting in the attick if anybody wants it back.
>

Ok, here is a proposed diff that can also be found at:
http://www.brimbelle.org/mattieu/stuff/uscanner.diff

Compile tested on amd64.


Index: sys/dev/usb/uscanner.c
===================================================================
RCS file: sys/dev/usb/uscanner.c
diff -N sys/dev/usb/uscanner.c
--- sys/dev/usb/uscanner.c 24 Sep 2010 08:33:59 -0000 1.43
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,687 +0,0 @@
-/* $OpenBSD: uscanner.c,v 1.43 2010/09/24 08:33:59 yuo Exp $ */
-/* $NetBSD: uscanner.c,v 1.40 2003/01/27 00:32:44 wiz Exp $ */
-
-/*
- * Copyright (c) 2000 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Lennart Augustsson (lennart@...) at
- * Carlstedt Research & Technology
- * and Nick Hibma (n_hibma@...).
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/kernel.h>
-#include <sys/malloc.h>
-#include <sys/device.h>
-#include <sys/tty.h>
-#include <sys/file.h>
-#include <sys/selinfo.h>
-#include <sys/proc.h>
-#include <sys/vnode.h>
-#include <sys/poll.h>
-#include <sys/conf.h>
-
-#include <dev/usb/usb.h>
-#include <dev/usb/usbdi.h>
-#include <dev/usb/usbdi_util.h>
-
-#include <dev/usb/usbdevs.h>
-
-#ifdef USCANNER_DEBUG
-#define DPRINTF(x) do { if (uscannerdebug) printf x; } while (0)
-#define DPRINTFN(n,x) do { if (uscannerdebug>(n)) printf x; } while (0)
-int uscannerdebug = 0;
-#else
-#define DPRINTF(x)
-#define DPRINTFN(n,x)
-#endif
-
-struct uscan_info {
- struct usb_devno devno;
- u_int flags;
-#define USC_KEEP_OPEN 1
-};
-
-/* Table of scanners that may work with this driver. */
-static const struct uscan_info uscanner_devs[] = {
-  /* Acer Peripherals */
- {{ USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_320U }, 0 },
- {{ USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_640U }, 0 },
- {{ USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_620U }, 0 },
- {{ USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_C310U }, 0 },
-
-  /* AGFA */
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCAN1236U }, 0 },
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCAN1212U }, 0 },
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCAN1212U2 }, 0 },
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANTOUCH }, 0 },
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE40 }, 0 },
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE50 }, 0 },
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE20 }, 0 },
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE25 }, 0 },
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE26 }, 0 },
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE52 }, 0 },
-
-  /* Avision */
- {{ USB_VENDOR_AVISION, USB_PRODUCT_AVISION_1200U }, 0 },
-
-  /* Canon */
- {{ USB_VENDOR_CANON, USB_PRODUCT_CANON_N656U }, 0 },
- {{ USB_VENDOR_CANON, USB_PRODUCT_CANON_N670U }, 0 },
- {{ USB_VENDOR_CANON, USB_PRODUCT_CANON_N1220U }, 0 },
- {{ USB_VENDOR_CANON, USB_PRODUCT_CANON_N1240U }, 0 },
-
-  /* Kye */
- {{ USB_VENDOR_KYE, USB_PRODUCT_KYE_VIVIDPRO }, 0 },
-
-  /* HP */
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_2200C }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_3300C }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_3400CSE }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_4100C }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_4200C }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_4300C }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_S20 }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_5200C }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_6200C }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_6300C }, 0 },
-
-  /* Mustek */
- {{ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200CU }, 0 },
- {{ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_BEARPAW1200F }, 0 },
- {{ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_600USB }, 0 },
- {{ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_600CU }, 0 },
- {{ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200USB }, 0 },
- {{ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200UB }, 0 },
- {{ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200USBPLUS }, 0 },
- {{ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200CUPLUS }, 0 },
-
-  /* National */
- {{ USB_VENDOR_NATIONAL, USB_PRODUCT_NATIONAL_BEARPAW1200 }, 0 },
- {{ USB_VENDOR_NATIONAL, USB_PRODUCT_NATIONAL_BEARPAW2400 }, 0 },
-
-  /* Primax */
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2X300 }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2E300 }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2300 }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2E3002 }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_9600 }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_600U }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_6200 }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_19200 }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_1200U }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G600 }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_636I }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2600 }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2E600 }, 0 },
-
-  /* Epson */
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_636 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_610 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1200 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1240 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1260 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1600 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1640 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1660 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_640U }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1650 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_2400 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_DX3800 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_DX4000 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_DX5000 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_DX6000 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_CX5400 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_GT9700F }, USC_KEEP_OPEN },
-
-  /* UMAX */
- {{ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA1220U }, 0 },
- {{ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA1236U }, 0 },
- {{ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA2000U }, 0 },
- {{ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA2200U }, 0 },
- {{ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA3400 }, 0 },
-
-  /* Visioneer */
- {{ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_3000 }, 0 },
- {{ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_5300 }, 0 },
- {{ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_7600 }, 0 },
- {{ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_6100 }, 0 },
- {{ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_6200 }, 0 },
- {{ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_8100 }, 0 },
- {{ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_8600 }, 0 },
-
-  /* Ultima */
- {{ USB_VENDOR_ULTIMA, USB_PRODUCT_ULTIMA_1200UBPLUS }, 0 },
-
-};
-#define uscanner_lookup(v, p) ((const struct uscan_info
*)usb_lookup(uscanner_devs, v, p))
-
-#define USCANNER_BUFFERSIZE 1024
-
-struct uscanner_softc {
- struct device sc_dev; /* base device */
- usbd_device_handle sc_udev;
- usbd_interface_handle sc_iface;
-
- u_int sc_dev_flags;
-
- usbd_pipe_handle sc_bulkin_pipe;
- int sc_bulkin;
- usbd_xfer_handle sc_bulkin_xfer;
- void *sc_bulkin_buffer;
- int sc_bulkin_bufferlen;
- int sc_bulkin_datalen;
-
- usbd_pipe_handle sc_bulkout_pipe;
- int sc_bulkout;
- usbd_xfer_handle sc_bulkout_xfer;
- void *sc_bulkout_buffer;
- int sc_bulkout_bufferlen;
- int sc_bulkout_datalen;
-
- struct selinfo sc_selq;
-
- u_char sc_state;
-#define USCANNER_OPEN 0x01 /* opened */
-
- int sc_refcnt;
- u_char sc_dying;
-};
-
-int uscanner_do_read(struct uscanner_softc *, struct uio *, int);
-int uscanner_do_write(struct uscanner_softc *, struct uio *, int);
-void uscanner_do_close(struct uscanner_softc *);
-
-#define USCANNERUNIT(n) (minor(n))
-
-int uscanner_match(struct device *, void *, void *);
-void uscanner_attach(struct device *, struct device *, void *);
-int uscanner_detach(struct device *, int);
-int uscanner_activate(struct device *, int);
-
-struct cfdriver uscanner_cd = {
- NULL, "uscanner", DV_DULL
-};
-
-const struct cfattach uscanner_ca = {
- sizeof(struct uscanner_softc),
- uscanner_match,
- uscanner_attach,
- uscanner_detach,
- uscanner_activate,
-};
-
-int
-uscanner_match(struct device *parent, void *match, void *aux)
-{
- struct usb_attach_arg *uaa = aux;
- usb_interface_descriptor_t *id;
-
- if (uaa->iface == NULL)
- return UMATCH_NONE; /* do not grab the entire device */
-
- if (uscanner_lookup(uaa->vendor, uaa->product) == NULL)
- return UMATCH_NONE; /* not in the list of known devices */
- id = usbd_get_interface_descriptor(uaa->iface);
- if (id == NULL)
- return UMATCH_NONE;
-
- /*
- * There isn't a specific UICLASS for scanners, many vendors use
- * UICLASS_VENDOR, so detecting the right interface is not so easy.
- * But certainly we can exclude PRINTER and MASS - which some
- * multifunction devices implement.
- */
- if (id->bInterfaceClass == UICLASS_PRINTER ||
-    id->bInterfaceClass == UICLASS_MASS)
- return UMATCH_NONE;
-
- return UMATCH_VENDOR_PRODUCT;
-}
-
-void
-uscanner_attach(struct device *parent, struct device *self, void *aux)
-{
- struct uscanner_softc *sc = (struct uscanner_softc *)self;
- struct usb_attach_arg *uaa = aux;
- usb_interface_descriptor_t *id = 0;
- usb_endpoint_descriptor_t *ed, *ed_bulkin = NULL, *ed_bulkout = NULL;
- int i;
- usbd_status err;
- int ifnum;
-
- sc->sc_dev_flags = uscanner_lookup(uaa->vendor, uaa->product)->flags;
-
- sc->sc_udev = uaa->device;
-
- id = usbd_get_interface_descriptor(uaa->iface);
- ifnum = id->bInterfaceNumber;
-
- err = usbd_device2interface_handle(sc->sc_udev, ifnum, &sc->sc_iface);
- if (!err && sc->sc_iface)
-    id = usbd_get_interface_descriptor(sc->sc_iface);
- if (err || id == 0) {
- printf("%s: could not get interface descriptor, err=%d,id=%p\n",
-       sc->sc_dev.dv_xname, err, id);
- return;
- }
-
- /* Find the two first bulk endpoints */
- for (i = 0 ; i < id->bNumEndpoints; i++) {
- ed = usbd_interface2endpoint_descriptor(sc->sc_iface, i);
- if (ed == 0) {
- printf("%s: could not read endpoint descriptor\n",
-       sc->sc_dev.dv_xname);
- return;
- }
-
- if (UE_GET_DIR(ed->bEndpointAddress) == UE_DIR_IN
-    && (ed->bmAttributes & UE_XFERTYPE) == UE_BULK) {
- ed_bulkin = ed;
- } else if (UE_GET_DIR(ed->bEndpointAddress) == UE_DIR_OUT
-    && (ed->bmAttributes & UE_XFERTYPE) == UE_BULK) {
-        ed_bulkout = ed;
- }
-
- if (ed_bulkin && ed_bulkout) /* found all we need */
- break;
- }
-
- /* Verify that we goething sensible */
- if (ed_bulkin == NULL || ed_bulkout == NULL) {
- printf("%s: bulk-in and/or bulk-out endpoint not found\n",
- sc->sc_dev.dv_xname);
- return;
- }
-
- sc->sc_bulkin = ed_bulkin->bEndpointAddress;
- sc->sc_bulkout = ed_bulkout->bEndpointAddress;
-
- usbd_add_drv_event(USB_EVENT_DRIVER_ATTACH, sc->sc_udev,
-   &sc->sc_dev);
-}
-
-int
-uscanneropen(dev_t dev, int flag, int mode, struct proc *p)
-{
- struct uscanner_softc *sc;
- int unit = USCANNERUNIT(dev);
- usbd_status err;
-
- if (unit >= uscanner_cd.cd_ndevs)
- return (ENXIO);
- sc = uscanner_cd.cd_devs[unit];
- if (sc == NULL)
- return (ENXIO);
-
- DPRINTFN(5, ("uscanneropen: flag=%d, mode=%d, unit=%d\n",
-     flag, mode, unit));
-
- if (sc->sc_dying)
- return (ENXIO);
-
- if (sc->sc_state & USCANNER_OPEN)
- return (EBUSY);
-
- sc->sc_state |= USCANNER_OPEN;
-
- sc->sc_bulkin_buffer = malloc(USCANNER_BUFFERSIZE, M_USBDEV, M_WAITOK);
- sc->sc_bulkout_buffer = malloc(USCANNER_BUFFERSIZE, M_USBDEV, M_WAITOK);
- /* No need to check buffers for NULL since we have WAITOK */
-
- sc->sc_bulkin_bufferlen = USCANNER_BUFFERSIZE;
- sc->sc_bulkout_bufferlen = USCANNER_BUFFERSIZE;
-
- /* We have decided on which endpoints to use, now open the pipes */
- if (sc->sc_bulkin_pipe == NULL) {
- err = usbd_open_pipe(sc->sc_iface, sc->sc_bulkin,
-     USBD_EXCLUSIVE_USE, &sc->sc_bulkin_pipe);
- if (err) {
- printf("%s: cannot open bulk-in pipe (addr %d)\n",
-       sc->sc_dev.dv_xname, sc->sc_bulkin);
- uscanner_do_close(sc);
- return (EIO);
- }
- }
- if (sc->sc_bulkout_pipe == NULL) {
- err = usbd_open_pipe(sc->sc_iface, sc->sc_bulkout,
-     USBD_EXCLUSIVE_USE, &sc->sc_bulkout_pipe);
- if (err) {
- printf("%s: cannot open bulk-out pipe (addr %d)\n",
-       sc->sc_dev.dv_xname, sc->sc_bulkout);
- uscanner_do_close(sc);
- return (EIO);
- }
- }
-
- sc->sc_bulkin_xfer = usbd_alloc_xfer(sc->sc_udev);
- if (sc->sc_bulkin_xfer == NULL) {
- uscanner_do_close(sc);
- return (ENOMEM);
- }
- sc->sc_bulkout_xfer = usbd_alloc_xfer(sc->sc_udev);
- if (sc->sc_bulkout_xfer == NULL) {
- uscanner_do_close(sc);
- return (ENOMEM);
- }
-
- return (0); /* success */
-}
-
-int
-uscannerclose(dev_t dev, int flag, int mode, struct proc *p)
-{
- struct uscanner_softc *sc;
-
- sc = uscanner_cd.cd_devs[USCANNERUNIT(dev)];
-
- DPRINTFN(5, ("uscannerclose: flag=%d, mode=%d, unit=%d\n",
-     flag, mode, USCANNERUNIT(dev)));
-
-#ifdef DIAGNOSTIC
- if (!(sc->sc_state & USCANNER_OPEN)) {
- printf("uscannerclose: not open\n");
- return (EINVAL);
- }
-#endif
-
- uscanner_do_close(sc);
-
- return (0);
-}
-
-void
-uscanner_do_close(struct uscanner_softc *sc)
-{
- if (sc->sc_bulkin_xfer) {
- usbd_free_xfer(sc->sc_bulkin_xfer);
- sc->sc_bulkin_xfer = NULL;
- }
- if (sc->sc_bulkout_xfer) {
- usbd_free_xfer(sc->sc_bulkout_xfer);
- sc->sc_bulkout_xfer = NULL;
- }
-
- if (!(sc->sc_dev_flags & USC_KEEP_OPEN)) {
- if (sc->sc_bulkin_pipe != NULL) {
- usbd_abort_pipe(sc->sc_bulkin_pipe);
- usbd_close_pipe(sc->sc_bulkin_pipe);
- sc->sc_bulkin_pipe = NULL;
- }
- if (sc->sc_bulkout_pipe != NULL) {
- usbd_abort_pipe(sc->sc_bulkout_pipe);
- usbd_close_pipe(sc->sc_bulkout_pipe);
- sc->sc_bulkout_pipe = NULL;
- }
- }
-
- if (sc->sc_bulkin_buffer) {
- free(sc->sc_bulkin_buffer, M_USBDEV);
- sc->sc_bulkin_buffer = NULL;
- }
- if (sc->sc_bulkout_buffer) {
- free(sc->sc_bulkout_buffer, M_USBDEV);
- sc->sc_bulkout_buffer = NULL;
- }
-
- sc->sc_state &= ~USCANNER_OPEN;
-}
-
-int
-uscanner_do_read(struct uscanner_softc *sc, struct uio *uio, int flag)
-{
- u_int32_t n, tn;
- usbd_status err;
- int error = 0;
-
- DPRINTFN(5, ("%s: uscannerread\n", sc->sc_dev.dv_xname));
-
- if (sc->sc_dying)
- return (EIO);
-
- while ((n = min(sc->sc_bulkin_bufferlen, uio->uio_resid)) != 0) {
- DPRINTFN(1, ("uscannerread: start transfer %d bytes\n",n));
- tn = n;
-
- err = usbd_bulk_transfer(
- sc->sc_bulkin_xfer, sc->sc_bulkin_pipe,
- USBD_SHORT_XFER_OK, USBD_NO_TIMEOUT,
- sc->sc_bulkin_buffer, &tn,
- "uscnrb");
- if (err) {
- if (err == USBD_INTERRUPTED)
- error = EINTR;
- else if (err == USBD_TIMEOUT)
- error = ETIMEDOUT;
- else
- error = EIO;
- break;
- }
- DPRINTFN(1, ("uscannerread: got %d bytes\n", tn));
- error = uiomove(sc->sc_bulkin_buffer, tn, uio);
- if (error || tn < n)
- break;
- }
-
- return (error);
-}
-
-int
-uscannerread(dev_t dev, struct uio *uio, int flag)
-{
- struct uscanner_softc *sc;
- int error;
-
- sc = uscanner_cd.cd_devs[USCANNERUNIT(dev)];
-
- sc->sc_refcnt++;
- error = uscanner_do_read(sc, uio, flag);
- if (--sc->sc_refcnt < 0)
- usb_detach_wakeup(&sc->sc_dev);
-
- return (error);
-}
-
-int
-uscanner_do_write(struct uscanner_softc *sc, struct uio *uio, int flag)
-{
- u_int32_t n;
- int error = 0;
- usbd_status err;
-
- DPRINTFN(5, ("%s: uscanner_do_write\n", sc->sc_dev.dv_xname));
-
- if (sc->sc_dying)
- return (EIO);
-
- while ((n = min(sc->sc_bulkout_bufferlen, uio->uio_resid)) != 0) {
- error = uiomove(sc->sc_bulkout_buffer, n, uio);
- if (error)
- break;
- DPRINTFN(1, ("uscanner_do_write: transfer %d bytes\n", n));
- err = usbd_bulk_transfer(
- sc->sc_bulkout_xfer, sc->sc_bulkout_pipe,
- 0, USBD_NO_TIMEOUT,
- sc->sc_bulkout_buffer, &n,
- "uscnwb");
- if (err) {
- if (err == USBD_INTERRUPTED)
- error = EINTR;
- else
- error = EIO;
- break;
- }
- }
-
- return (error);
-}
-
-int
-uscannerwrite(dev_t dev, struct uio *uio, int flag)
-{
- struct uscanner_softc *sc;
- int error;
-
- sc = uscanner_cd.cd_devs[USCANNERUNIT(dev)];
-
- sc->sc_refcnt++;
- error = uscanner_do_write(sc, uio, flag);
- if (--sc->sc_refcnt < 0)
- usb_detach_wakeup(&sc->sc_dev);
- return (error);
-}
-
-int
-uscanner_activate(struct device *self, int act)
-{
- struct uscanner_softc *sc = (struct uscanner_softc *)self;
-
- switch (act) {
- case DVACT_ACTIVATE:
- break;
-
- case DVACT_DEACTIVATE:
- sc->sc_dying = 1;
- break;
- }
- return (0);
-}
-
-int
-uscanner_detach(struct device *self, int flags)
-{
- struct uscanner_softc *sc = (struct uscanner_softc *)self;
- int s;
- int maj, mn;
-
- DPRINTF(("uscanner_detach: sc=%p flags=%d\n", sc, flags));
-
- sc->sc_dev_flags = 0; /* make close really close device */
-
- /* Abort all pipes.  Causes processes waiting for transfer to wake. */
- if (sc->sc_bulkin_pipe != NULL)
- usbd_abort_pipe(sc->sc_bulkin_pipe);
- if (sc->sc_bulkout_pipe != NULL)
- usbd_abort_pipe(sc->sc_bulkout_pipe);
-
- s = splusb();
- if (--sc->sc_refcnt >= 0) {
- /* Wait for processes to go away. */
- usb_detach_wait(&sc->sc_dev);
- }
- splx(s);
-
- /* locate the major number */
- for (maj = 0; maj < nchrdev; maj++)
- if (cdevsw[maj].d_open == uscanneropen)
- break;
-
- /* Nuke the vnodes for any open instances (calls close). */
- mn = self->dv_unit * USB_MAX_ENDPOINTS;
- vdevgone(maj, mn, mn + USB_MAX_ENDPOINTS - 1, VCHR);
- usbd_add_drv_event(USB_EVENT_DRIVER_DETACH, sc->sc_udev,
-   &sc->sc_dev);
-
- return (0);
-}
-
-int
-uscannerpoll(dev_t dev, int events, struct proc *p)
-{
- struct uscanner_softc *sc;
- int revents = 0;
-
- sc = uscanner_cd.cd_devs[USCANNERUNIT(dev)];
-
- if (sc->sc_dying)
- return (POLLERR);
-
- /*
- * We have no easy way of determining if a read will
- * yield any data or a write will happen.
- * Pretend they will.
- */
- revents |= events &
-   (POLLIN | POLLRDNORM | POLLOUT | POLLWRNORM);
-
- return (revents);
-}
-
-int
-uscannerioctl(dev_t dev, u_long cmd, caddr_t addr, int flag, struct proc *p)
-{
- return (EINVAL);
-}
-
-void filt_uscannerdetach(struct knote *);
-int uscannerkqfilter(dev_t, struct knote *);
-
-void
-filt_uscannerdetach(struct knote *kn)
-{
- struct uscanner_softc *sc = (void *)kn->kn_hook;
-
- SLIST_REMOVE(&sc->sc_selq.si_note, kn, knote, kn_selnext);
-}
-
-struct filterops uscanner_seltrue_filtops =
- { 1, NULL, filt_uscannerdetach, filt_seltrue };
-
-int
-uscannerkqfilter(dev_t dev, struct knote *kn)
-{
- struct uscanner_softc *sc;
- struct klist *klist;
-
- sc = uscanner_cd.cd_devs[USCANNERUNIT(dev)];
-
- if (sc->sc_dying)
- return (1);
-
- switch (kn->kn_filter) {
- case EVFILT_READ:
- case EVFILT_WRITE:
- /*
- * We have no easy way of determining if a read will
- * yield any data or a write will happen.
- * Pretend they will.
- */
- klist = &sc->sc_selq.si_note;
- kn->kn_fop = &uscanner_seltrue_filtops;
- break;
-
- default:
- return (1);
- }
-
- kn->kn_hook = (void *)sc;
-
- SLIST_INSERT_HEAD(klist, kn, kn_selnext);
-
- return (0);
-}
Index: sys/dev/usb/files.usb
===================================================================
RCS file: /cvs/src/sys/dev/usb/files.usb,v
retrieving revision 1.94
diff -u -p -r1.94 files.usb
--- sys/dev/usb/files.usb 5 Nov 2010 16:58:12 -0000 1.94
+++ sys/dev/usb/files.usb 25 Nov 2010 15:22:23 -0000
@@ -288,12 +288,6 @@ device uticom: ucombus
 attach uticom at uhub
 file dev/usb/uticom.c uticom

-# Scanners
-# Generic scanner support
-device uscanner
-attach uscanner at uhub
-file dev/usb/uscanner.c uscanner needs-flag
-
 # Prism3 WI @ USB
 attach wi at uhub with wi_usb
 file dev/usb/if_wi_usb.c wi_usb
Index: sys/arch/alpha/alpha/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/alpha/alpha/conf.c,v
retrieving revision 1.65
diff -u -p -r1.65 conf.c
--- sys/arch/alpha/alpha/conf.c 19 Nov 2010 20:55:48 -0000 1.65
+++ sys/arch/alpha/alpha/conf.c 25 Nov 2010 15:22:23 -0000
@@ -126,7 +126,6 @@ cdev_decl(nnpfs_dev);
 #include "ulpt.h"
 #include "urio.h"
 #include "ucom.h"
-#include "uscanner.h"
 #include "pf.h"
 #ifdef USER_PCICONF
 #include "pci.h"
@@ -215,7 +214,7 @@ struct cdevsw cdevsw[] =
  cdev_disk_init(1,diskmap), /* 63: disk mapper */
  cdev_pppx_init(NPPPX,pppx), /* 64: pppx */
  cdev_urio_init(NURIO,urio), /* 65: USB Diamond Rio 500 */
- cdev_usbdev_init(NUSCANNER,uscanner), /* 66: USB scanners */
+ cdev_notdef(), /* 66: */
 };
 int nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]);

Index: sys/arch/alpha/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/alpha/conf/GENERIC,v
retrieving revision 1.217
diff -u -p -r1.217 GENERIC
--- sys/arch/alpha/conf/GENERIC 26 Sep 2010 20:39:08 -0000 1.217
+++ sys/arch/alpha/conf/GENERIC 25 Nov 2010 15:22:23 -0000
@@ -113,7 +113,6 @@ upl* at uhub? # Prolific PL2301/PL2302
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 udsbr* at uhub? # D-Link DSB-R100 radio
 radio* at udsbr? # USB radio
Index: sys/arch/amd64/amd64/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/amd64/amd64/conf.c,v
retrieving revision 1.31
diff -u -p -r1.31 conf.c
--- sys/arch/amd64/amd64/conf.c 22 Nov 2010 21:10:42 -0000 1.31
+++ sys/arch/amd64/amd64/conf.c 25 Nov 2010 15:22:23 -0000
@@ -165,7 +165,6 @@ cdev_decl(nnpfs_dev);
 #include "ulpt.h"
 #include "urio.h"
 #include "ucom.h"
-#include "uscanner.h"
 #include "cz.h"
 cdev_decl(cztty);
 #include "radio.h"
@@ -291,7 +290,7 @@ struct cdevsw cdevsw[] =
  cdev_notdef(), /* 74: ALTQ (deprecated) */
  cdev_iop_init(NIOP,iop), /* 75: I2O IOP control interface */
  cdev_radio_init(NRADIO, radio), /* 76: generic radio I/O */
- cdev_usbdev_init(NUSCANNER,uscanner), /* 77: USB scanners */
+ cdev_notdef(), /* 77: */
  cdev_systrace_init(NSYSTRACE,systrace), /* 78: system call tracing */
  cdev_bio_init(NBIO,bio), /* 79: ioctl tunnel */
  cdev_notdef(), /* 80: gpr? XXX */
Index: sys/arch/amd64/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/amd64/conf/GENERIC,v
retrieving revision 1.307
diff -u -p -r1.307 GENERIC
--- sys/arch/amd64/conf/GENERIC 5 Nov 2010 16:58:12 -0000 1.307
+++ sys/arch/amd64/conf/GENERIC 25 Nov 2010 15:22:23 -0000
@@ -224,7 +224,6 @@ mos* at uhub? # MOSCHIP MCS7730/7830 10
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 udsbr* at uhub? # D-Link DSB-R100 radio
 radio* at udsbr? # USB radio
Index: sys/arch/amd64/conf/RAMDISK
===================================================================
RCS file: /cvs/src/sys/arch/amd64/conf/RAMDISK,v
retrieving revision 1.50
diff -u -p -r1.50 RAMDISK
--- sys/arch/amd64/conf/RAMDISK 3 Jul 2010 03:59:16 -0000 1.50
+++ sys/arch/amd64/conf/RAMDISK 25 Nov 2010 15:22:23 -0000
@@ -106,7 +106,6 @@ wskbd* at ukbd? mux 1
 #kue* at uhub? # Kawasaki KL5KUSB101B based Ethernet
 #upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network'
 #urio* at uhub? # Diamond Multimedia Rio 500
-#uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 #ugen* at uhub? # USB Generic driver

Index: sys/arch/amd64/conf/RAMDISK_CD
===================================================================
RCS file: /cvs/src/sys/arch/amd64/conf/RAMDISK_CD,v
retrieving revision 1.115
diff -u -p -r1.115 RAMDISK_CD
--- sys/arch/amd64/conf/RAMDISK_CD 4 Aug 2010 21:44:41 -0000 1.115
+++ sys/arch/amd64/conf/RAMDISK_CD 25 Nov 2010 15:22:24 -0000
@@ -117,7 +117,6 @@ url* at uhub? # Realtek RTL8150L based
 wi* at uhub? # WaveLAN IEEE 802.11DS
 upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network'
 #urio* at uhub? # Diamond Multimedia Rio 500
-#uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 #ugen* at uhub? # USB Generic driver
 ural* at uhub? # Ralink RT2500
Index: sys/arch/arm/arm/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/arm/arm/conf.c,v
retrieving revision 1.27
diff -u -p -r1.27 conf.c
--- sys/arch/arm/arm/conf.c 23 Sep 2010 05:02:14 -0000 1.27
+++ sys/arch/arm/arm/conf.c 25 Nov 2010 15:22:24 -0000
@@ -137,7 +137,6 @@ cdev_decl(pci);
 #include "uhid.h"
 #include "ulpt.h"
 #include "urio.h"
-#include "uscanner.h"

 /*
  * Bluetooth devices
@@ -373,7 +372,7 @@ struct cdevsw cdevsw[] = {
  cdev_lpt_init(NULPT,ulpt), /* 66: USB printer */
  cdev_urio_init(NURIO,urio), /* 67: Diamond Rio 500 */
  cdev_tty_init(NUCOM,ucom), /* 68: USB tty */
- cdev_usbdev_init(NUSCANNER,uscanner), /* 69: USB scanner */
+ cdev_notdef(), /* 69: */
  cdev_usbdev_init(NUGEN,ugen), /* 70: USB generic driver */
  cdev_disk_init(NRAID,raid),     /* 71: RAIDframe disk driver */
  cdev_lkm_dummy(), /* 72: reserved */
Index: sys/arch/armish/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/armish/conf/GENERIC,v
retrieving revision 1.35
diff -u -p -r1.35 GENERIC
--- sys/arch/armish/conf/GENERIC 15 Nov 2010 19:07:34 -0000 1.35
+++ sys/arch/armish/conf/GENERIC 25 Nov 2010 15:22:24 -0000
@@ -144,7 +144,6 @@ udav* at uhub? # Davicom DM9601 based E
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 udsbr* at uhub? # D-Link DSB-R100 radio
 radio* at udsbr? # USB radio
Index: sys/arch/armish/conf/RAMDISK
===================================================================
RCS file: /cvs/src/sys/arch/armish/conf/RAMDISK,v
retrieving revision 1.16
diff -u -p -r1.16 RAMDISK
--- sys/arch/armish/conf/RAMDISK 3 Jul 2010 03:59:16 -0000 1.16
+++ sys/arch/armish/conf/RAMDISK 25 Nov 2010 15:22:24 -0000
@@ -135,7 +135,6 @@ udav* at uhub? # Davicom DM9601 based E
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 #urio* at uhub? # Diamond Multimedia Rio 500
-#uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 #udsbr* at uhub? # D-Link DSB-R100 radio
 #radio* at udsbr? # USB radio
Index: sys/arch/beagle/conf/RAMDISK
===================================================================
RCS file: /cvs/src/sys/arch/beagle/conf/RAMDISK,v
retrieving revision 1.8
diff -u -p -r1.8 RAMDISK
--- sys/arch/beagle/conf/RAMDISK 3 Jul 2010 03:59:16 -0000 1.8
+++ sys/arch/beagle/conf/RAMDISK 25 Nov 2010 15:22:24 -0000
@@ -145,7 +145,6 @@ ommmc0 at ahb? addr 0x4809c000 intr 83
 # url* at uhub? # Realtek RTL8150L based adapters
 # wi* at uhub? # WaveLAN IEEE 802.11DS
 # urio* at uhub? # Diamond Multimedia Rio 500
-# uscanner* at uhub? # USB Scanners
 # #uyap* at uhub? # Y@P firmware loader
 # udsbr* at uhub? # D-Link DSB-R100 radio
 # radio* at udsbr? # USB radio
Index: sys/arch/beagle/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/beagle/conf/GENERIC,v
retrieving revision 1.3
diff -u -p -r1.3 GENERIC
--- sys/arch/beagle/conf/GENERIC 3 Jul 2010 03:59:16 -0000 1.3
+++ sys/arch/beagle/conf/GENERIC 25 Nov 2010 15:22:24 -0000
@@ -140,7 +140,6 @@ udav* at uhub? # Davicom DM9601 based
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 udsbr* at uhub? # D-Link DSB-R100 radio
 radio* at udsbr? # USB radio
Index: sys/arch/gumstix/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/gumstix/conf/GENERIC,v
retrieving revision 1.9
diff -u -p -r1.9 GENERIC
--- sys/arch/gumstix/conf/GENERIC 23 Sep 2010 16:21:46 -0000 1.9
+++ sys/arch/gumstix/conf/GENERIC 25 Nov 2010 15:22:24 -0000
@@ -126,7 +126,6 @@ run* at uhub? # Ralink RT2700U/RT2800U
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 udsbr* at uhub? # D-Link DSB-R100 radio
 radio* at udsbr? # USB radio
Index: sys/arch/gumstix/conf/RAMDISK
===================================================================
RCS file: /cvs/src/sys/arch/gumstix/conf/RAMDISK,v
retrieving revision 1.3
diff -u -p -r1.3 RAMDISK
--- sys/arch/gumstix/conf/RAMDISK 3 Jul 2010 03:59:16 -0000 1.3
+++ sys/arch/gumstix/conf/RAMDISK 25 Nov 2010 15:22:24 -0000
@@ -88,7 +88,6 @@ pxaost0 at pxaip? addr 0x40a00000 size
 #url* at uhub? # Realtek RTL8150L based adapters
 #wi* at uhub? # WaveLAN IEEE 802.11DS
 #upl* at uhub? # Prolific PL2301/PL2302 host-to-host
-#uscanner* at uhub? # USB Scanner driver
 #uyap* at uhub? # Y@P firmware loader
 #ugen* at uhub? # USB Generic driver
 #umass* at uhub? # USB Mass Storage devices
Index: sys/arch/hppa/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/hppa/conf/GENERIC,v
retrieving revision 1.139
diff -u -p -r1.139 GENERIC
--- sys/arch/hppa/conf/GENERIC 23 Sep 2010 16:21:46 -0000 1.139
+++ sys/arch/hppa/conf/GENERIC 25 Nov 2010 15:22:24 -0000
@@ -153,7 +153,6 @@ udav* at uhub? # Davicom DM9601 based E
 upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network'
 wi* at uhub? # WaveLAN IEEE 802.11DS
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 uyap* at uhub? # Y@P firmware loader
 udsbr* at uhub? # D-Link DSB-R100 radio
 radio* at udsbr? # USB radio
Index: sys/arch/hppa/conf/RAMDISK
===================================================================
RCS file: /cvs/src/sys/arch/hppa/conf/RAMDISK,v
retrieving revision 1.90
diff -u -p -r1.90 RAMDISK
--- sys/arch/hppa/conf/RAMDISK 3 Jul 2010 03:59:16 -0000 1.90
+++ sys/arch/hppa/conf/RAMDISK 25 Nov 2010 15:22:24 -0000
@@ -153,7 +153,6 @@ udav* at uhub? # Davicom DM9601 based E
 upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network'
 wi* at uhub? # WaveLAN IEEE 802.11DS
 #urio* at uhub? # Diamond Multimedia Rio 500
-#uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 #udsbr* at uhub? # D-Link DSB-R100 radio
 #radio* at udsbr? # USB radio
Index: sys/arch/hppa/hppa/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/hppa/hppa/conf.c,v
retrieving revision 1.52
diff -u -p -r1.52 conf.c
--- sys/arch/hppa/hppa/conf.c 23 Sep 2010 05:02:14 -0000 1.52
+++ sys/arch/hppa/hppa/conf.c 25 Nov 2010 15:22:24 -0000
@@ -122,7 +122,6 @@ cdev_decl(pci);
 #include "ulpt.h"
 #include "urio.h"
 #include "ucom.h"
-#include "uscanner.h"

 #include "bthub.h"

@@ -183,7 +182,7 @@ struct cdevsw   cdevsw[] =
  cdev_ulpt_init(NULPT,ulpt), /* 43: USB printers */
  cdev_urio_init(NURIO,urio), /* 44: USB Diamond Rio 500 */
  cdev_tty_init(NUCOM,ucom), /* 45: USB tty */
- cdev_usbdev_init(NUSCANNER,uscanner), /* 46: USB scanners */
+ cdev_notdef(), /* 46: */
  cdev_hotplug_init(NHOTPLUG,hotplug), /* 47: devices hot plugging */
  cdev_lkm_dummy(), /* 48: */
  cdev_lkm_dummy(), /* 49: */
Index: sys/arch/hppa64/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/hppa64/conf/GENERIC,v
retrieving revision 1.22
diff -u -p -r1.22 GENERIC
--- sys/arch/hppa64/conf/GENERIC 30 Aug 2010 18:56:18 -0000 1.22
+++ sys/arch/hppa64/conf/GENERIC 25 Nov 2010 15:22:24 -0000
@@ -106,7 +106,6 @@ pci* at ppb?
 #url* at uhub? # Realtek RTL8150L based adapters
 #wi* at uhub? # WaveLAN IEEE 802.11DS
 #urio* at uhub? # Diamond Multimedia Rio 500
-#uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 #udsbr* at uhub? # D-Link DSB-R100 radio
 #radio* at udsbr? # USB radio
Index: sys/arch/hppa64/conf/RAMDISK
===================================================================
RCS file: /cvs/src/sys/arch/hppa64/conf/RAMDISK,v
retrieving revision 1.10
diff -u -p -r1.10 RAMDISK
--- sys/arch/hppa64/conf/RAMDISK 3 Jul 2010 03:59:16 -0000 1.10
+++ sys/arch/hppa64/conf/RAMDISK 25 Nov 2010 15:22:24 -0000
@@ -106,7 +106,6 @@ pcmcia* at cardslot?
 #url* at uhub? # Realtek RTL8150L based adapters
 #wi* at uhub? # WaveLAN IEEE 802.11DS
 #urio* at uhub? # Diamond Multimedia Rio 500
-#uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 #udsbr* at uhub? # D-Link DSB-R100 radio
 #radio* at udsbr? # USB radio
Index: sys/arch/hppa64/hppa64/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/hppa64/hppa64/conf.c,v
retrieving revision 1.17
diff -u -p -r1.17 conf.c
--- sys/arch/hppa64/hppa64/conf.c 19 Nov 2010 20:55:48 -0000 1.17
+++ sys/arch/hppa64/hppa64/conf.c 25 Nov 2010 15:22:24 -0000
@@ -123,7 +123,6 @@ cdev_decl(pci);
 #include "ulpt.h"
 #include "urio.h"
 #include "ucom.h"
-#include "uscanner.h"

 #include "bthub.h"

@@ -185,7 +184,7 @@ struct cdevsw   cdevsw[] =
  cdev_ulpt_init(NULPT,ulpt), /* 43: USB printers */
  cdev_urio_init(NURIO,urio), /* 44: USB Diamond Rio 500 */
  cdev_tty_init(NUCOM,ucom), /* 45: USB tty */
- cdev_usbdev_init(NUSCANNER,uscanner), /* 46: USB scanners */
+ cdev_notdef(), /* 46: */
  cdev_hotplug_init(NHOTPLUG,hotplug), /* 47: devices hot plugging */
  cdev_lkm_dummy(), /* 48: */
  cdev_lkm_dummy(), /* 49: */
Index: sys/arch/i386/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/i386/conf/GENERIC,v
retrieving revision 1.701
diff -u -p -r1.701 GENERIC
--- sys/arch/i386/conf/GENERIC 5 Nov 2010 16:58:12 -0000 1.701
+++ sys/arch/i386/conf/GENERIC 25 Nov 2010 15:22:25 -0000
@@ -282,7 +282,6 @@ mos* at uhub? # MOSCHIP MCS7730/7830 10
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 udsbr* at uhub? # D-Link DSB-R100 radio
 radio* at udsbr? # USB radio
Index: sys/arch/i386/conf/RAMDISK_CD
===================================================================
RCS file: /cvs/src/sys/arch/i386/conf/RAMDISK_CD,v
retrieving revision 1.181
diff -u -p -r1.181 RAMDISK_CD
--- sys/arch/i386/conf/RAMDISK_CD 19 Oct 2010 20:23:53 -0000 1.181
+++ sys/arch/i386/conf/RAMDISK_CD 25 Nov 2010 15:22:25 -0000
@@ -139,7 +139,6 @@ udav* at uhub? # Davicom DM9601 based E
 mos* at uhub? # MOSCHIP MCS7730/7830 10/100 Ethernet
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
-#uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 #ugen* at uhub? # USB Generic driver
 ural* at uhub? # Ralink RT2500
Index: sys/arch/i386/i386/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/i386/i386/conf.c,v
retrieving revision 1.135
diff -u -p -r1.135 conf.c
--- sys/arch/i386/i386/conf.c 22 Sep 2010 13:03:47 -0000 1.135
+++ sys/arch/i386/i386/conf.c 25 Nov 2010 15:22:25 -0000
@@ -166,7 +166,6 @@ cdev_decl(nnpfs_dev);
 #include "ulpt.h"
 #include "urio.h"
 #include "ucom.h"
-#include "uscanner.h"
 #include "cz.h"
 cdev_decl(cztty);
 #include "radio.h"
@@ -294,7 +293,7 @@ struct cdevsw cdevsw[] =
  cdev_notdef(), /* 74: ALTQ (deprecated) */
  cdev_iop_init(NIOP,iop), /* 75: I2O IOP control interface */
  cdev_radio_init(NRADIO, radio), /* 76: generic radio I/O */
- cdev_usbdev_init(NUSCANNER,uscanner), /* 77: USB scanners */
+ cdev_notdef(), /* 77 */
  cdev_systrace_init(NSYSTRACE,systrace), /* 78: system call tracing */
  cdev_bio_init(NBIO,bio), /* 79: ioctl tunnel */
  cdev_ch_init(NGPR,gpr), /* 80: GPR400 SmartCard reader */
Index: sys/arch/landisk/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/landisk/conf/GENERIC,v
retrieving revision 1.29
diff -u -p -r1.29 GENERIC
--- sys/arch/landisk/conf/GENERIC 19 Nov 2010 20:52:41 -0000 1.29
+++ sys/arch/landisk/conf/GENERIC 25 Nov 2010 15:22:25 -0000
@@ -142,7 +142,6 @@ udav* at uhub? # Davicom DM9601 based E
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 urio* at uhub? # Diamond Multimedia Rio 500
-#uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 udsbr* at uhub? # D-Link DSB-R100 radio
 radio* at udsbr? # USB radio
Index: sys/arch/landisk/landisk/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/landisk/landisk/conf.c,v
retrieving revision 1.18
diff -u -p -r1.18 conf.c
--- sys/arch/landisk/landisk/conf.c 19 Nov 2010 20:55:48 -0000 1.18
+++ sys/arch/landisk/landisk/conf.c 25 Nov 2010 15:22:25 -0000
@@ -120,7 +120,6 @@ cdev_decl(pci);
 #include "uhid.h"
 #include "ulpt.h"
 #include "urio.h"
-#include "uscanner.h"

 /*
  * Bluetooth devices
@@ -337,7 +336,7 @@ struct cdevsw cdevsw[] = {
  cdev_lpt_init(NULPT,ulpt), /* 66: USB printer */
  cdev_urio_init(NURIO,urio), /* 67: Diamond Rio 500 */
  cdev_tty_init(NUCOM,ucom), /* 68: USB tty */
- cdev_usbdev_init(NUSCANNER,uscanner), /* 69: USB scanner */
+ cdev_notdef(), /* 69: */
  cdev_usbdev_init(NUGEN,ugen), /* 70: USB generic driver */
  cdev_disk_init(NRAID,raid),     /* 71: RAIDframe disk driver */
  cdev_lkm_dummy(), /* 72: reserved */
Index: sys/arch/loongson/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/loongson/conf/GENERIC,v
retrieving revision 1.28
diff -u -p -r1.28 GENERIC
--- sys/arch/loongson/conf/GENERIC 19 Nov 2010 20:53:44 -0000 1.28
+++ sys/arch/loongson/conf/GENERIC 25 Nov 2010 15:22:25 -0000
@@ -126,7 +126,6 @@ atapiscsi* at umass?
 scsibus* at atapiscsi?
 scsibus* at umass?
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 uhidev* at uhub? # Human Interface Devices
 ums* at uhidev? # USB mouse
 wsmouse* at ums? mux 0
Index: sys/arch/loongson/loongson/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/loongson/loongson/conf.c,v
retrieving revision 1.11
diff -u -p -r1.11 conf.c
--- sys/arch/loongson/loongson/conf.c 22 Nov 2010 21:10:45 -0000 1.11
+++ sys/arch/loongson/loongson/conf.c 25 Nov 2010 15:22:25 -0000
@@ -130,7 +130,6 @@ cdev_decl(pci);
 #include "ulpt.h"
 #include "urio.h"
 #include "ucom.h"
-#include "uscanner.h"

 #include "bthub.h"
 #include "vscsi.h"
@@ -218,7 +217,7 @@ struct cdevsw cdevsw[] =
  cdev_vscsi_init(NVSCSI,vscsi), /* 69: vscsi */
  cdev_disk_init(1,diskmap), /* 70: disk mapper */
  cdev_pppx_init(NPPPX,pppx), /* 71: pppx */
- cdev_usbdev_init(NUSCANNER,uscanner), /* 72: USB scanners */
+ cdev_notdef, /* 72: */
 };

 int nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]);
Index: sys/arch/macppc/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/macppc/conf/GENERIC,v
retrieving revision 1.202
diff -u -p -r1.202 GENERIC
--- sys/arch/macppc/conf/GENERIC 15 Nov 2010 19:07:34 -0000 1.202
+++ sys/arch/macppc/conf/GENERIC 25 Nov 2010 15:22:25 -0000
@@ -283,7 +283,6 @@ mos* at uhub? # MOSCHIP MCS7730/7830 10
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 udsbr* at uhub? # D-Link DSB-R100 radio
 radio* at udsbr? # USB radio
Index: sys/arch/macppc/conf/RAMDISK
===================================================================
RCS file: /cvs/src/sys/arch/macppc/conf/RAMDISK,v
retrieving revision 1.90
diff -u -p -r1.90 RAMDISK
--- sys/arch/macppc/conf/RAMDISK 3 Jul 2010 03:59:16 -0000 1.90
+++ sys/arch/macppc/conf/RAMDISK 25 Nov 2010 15:22:26 -0000
@@ -198,7 +198,6 @@ rum* at uhub? # Ralink RT2501USB/RT260
 zyd* at uhub? # Zydas ZD1211
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
-#uscanner* at uhub? # USB Scanner driver
 #uyap* at uhub? # Y@P firmware loader
 #ugen* at uhub? # USB Generic driver
 umass* at uhub? # USB Mass Storage devices
Index: sys/arch/macppc/macppc/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/macppc/macppc/conf.c,v
retrieving revision 1.43
diff -u -p -r1.43 conf.c
--- sys/arch/macppc/macppc/conf.c 23 Sep 2010 05:02:14 -0000 1.43
+++ sys/arch/macppc/macppc/conf.c 25 Nov 2010 15:22:26 -0000
@@ -115,7 +115,6 @@ cdev_decl(nnpfs_dev);
 #include "ulpt.h"
 #include "urio.h"
 #include "ucom.h"
-#include "uscanner.h"

 #include "inet.h"

@@ -231,7 +230,7 @@ struct cdevsw cdevsw[] = {
 #endif
  cdev_notdef(), /* 72: ALTQ (deprecated) */
  cdev_iop_init(NIOP,iop), /* 73: I2O IOP control interface */
- cdev_usbdev_init(NUSCANNER,uscanner), /* 74: usb scanner */
+ cdev_notdef(), /* 74 */
  cdev_bktr_init(NBKTR,bktr), /* 75: Bt848 video capture device */
  cdev_radio_init(NRADIO, radio), /* 76: generic radio I/O */
  cdev_ptm_init(NPTY,ptm), /* 77: pseudo-tty ptm device */
Index: sys/arch/octeon/octeon/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/octeon/octeon/conf.c,v
retrieving revision 1.5
diff -u -p -r1.5 conf.c
--- sys/arch/octeon/octeon/conf.c 22 Nov 2010 21:10:45 -0000 1.5
+++ sys/arch/octeon/octeon/conf.c 25 Nov 2010 15:22:26 -0000
@@ -137,7 +137,6 @@ cdev_decl(pci);
 #include "ulpt.h"
 #include "urio.h"
 #include "ucom.h"
-#include "uscanner.h"

 #include "bthub.h"
 #include "vscsi.h"
@@ -229,7 +228,7 @@ struct cdevsw cdevsw[] =
  cdev_vscsi_init(NVSCSI,vscsi), /* 69: vscsi */
  cdev_disk_init(1,diskmap), /* 70: disk mapper */
  cdev_pppx_init(NPPPX,pppx), /* 71: pppx */
- cdev_usbdev_init(NUSCANNER,uscanner), /* 72: USB scanners */
+ cdev_notdef(), /* 72: */
 };

 int nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]);
Index: sys/arch/palm/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/palm/conf/GENERIC,v
retrieving revision 1.8
diff -u -p -r1.8 GENERIC
--- sys/arch/palm/conf/GENERIC 23 Sep 2010 16:21:46 -0000 1.8
+++ sys/arch/palm/conf/GENERIC 25 Nov 2010 15:22:26 -0000
@@ -114,7 +114,6 @@ zyd* at uhub? # Zydas ZD1211
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 udsbr* at uhub? # D-Link DSB-R100 radio
 radio* at udsbr? # USB radio
Index: sys/arch/palm/conf/RAMDISK
===================================================================
RCS file: /cvs/src/sys/arch/palm/conf/RAMDISK,v
retrieving revision 1.7
diff -u -p -r1.7 RAMDISK
--- sys/arch/palm/conf/RAMDISK 3 Jul 2010 03:59:17 -0000 1.7
+++ sys/arch/palm/conf/RAMDISK 25 Nov 2010 15:22:26 -0000
@@ -79,7 +79,6 @@ ural* at uhub? # Ralink RT2500
 #url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 upl* at uhub? # Prolific PL2301/PL2302 host-to-host
-#uscanner* at uhub? # USB Scanner driver
 #uyap* at uhub? # Y@P firmware loader
 ugen* at uhub? # USB Generic driver
 umass* at uhub? # USB Mass Storage devices
Index: sys/arch/sgi/conf/GENERIC-IP30
===================================================================
RCS file: /cvs/src/sys/arch/sgi/conf/GENERIC-IP30,v
retrieving revision 1.32
diff -u -p -r1.32 GENERIC-IP30
--- sys/arch/sgi/conf/GENERIC-IP30 19 Nov 2010 20:54:12 -0000 1.32
+++ sys/arch/sgi/conf/GENERIC-IP30 25 Nov 2010 15:22:26 -0000
@@ -107,7 +107,6 @@ atapiscsi* at umass?
 scsibus* at atapiscsi?
 scsibus* at umass?
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 uhidev* at uhub? # Human Interface Devices
 ums* at uhidev? # USB mouse
 wsmouse* at ums? mux 0
Index: sys/arch/sgi/conf/GENERIC-IP27
===================================================================
RCS file: /cvs/src/sys/arch/sgi/conf/GENERIC-IP27,v
retrieving revision 1.38
diff -u -p -r1.38 GENERIC-IP27
--- sys/arch/sgi/conf/GENERIC-IP27 19 Nov 2010 20:54:12 -0000 1.38
+++ sys/arch/sgi/conf/GENERIC-IP27 25 Nov 2010 15:22:26 -0000
@@ -115,7 +115,6 @@ atapiscsi* at umass?
 scsibus* at atapiscsi?
 scsibus* at umass?
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 uhidev* at uhub? # Human Interface Devices
 ums* at uhidev? # USB mouse
 wsmouse* at ums? mux 0
Index: sys/arch/sgi/conf/GENERIC-IP32
===================================================================
RCS file: /cvs/src/sys/arch/sgi/conf/GENERIC-IP32,v
retrieving revision 1.23
diff -u -p -r1.23 GENERIC-IP32
--- sys/arch/sgi/conf/GENERIC-IP32 19 Nov 2010 20:54:12 -0000 1.23
+++ sys/arch/sgi/conf/GENERIC-IP32 25 Nov 2010 15:22:26 -0000
@@ -99,7 +99,6 @@ atapiscsi* at umass?
 scsibus* at atapiscsi?
 scsibus* at umass?
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 uhidev* at uhub? # Human Interface Devices
 ums* at uhidev? # USB mouse
 wsmouse* at ums? mux 0
Index: sys/arch/sgi/sgi/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/sgi/sgi/conf.c,v
retrieving revision 1.27
diff -u -p -r1.27 conf.c
--- sys/arch/sgi/sgi/conf.c 22 Nov 2010 21:10:45 -0000 1.27
+++ sys/arch/sgi/sgi/conf.c 25 Nov 2010 15:22:26 -0000
@@ -129,7 +129,6 @@ cdev_decl(pci);
 #include "ulpt.h"
 #include "urio.h"
 #include "ucom.h"
-#include "uscanner.h"

 #include "vscsi.h"
 #include "pppx.h"
@@ -216,7 +215,7 @@ struct cdevsw cdevsw[] =
  cdev_disk_init(1,diskmap), /* 69: disk mapper */
  cdev_pppx_init(NPPPX,pppx), /* 70: pppx */
  cdev_notdef(), /* 71: */
- cdev_usbdev_init(NUSCANNER,uscanner), /* 72: USB scanners */
+ cdev_notdef(), /* 72: */
 };

 int nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]);
Index: sys/arch/socppc/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/socppc/conf/GENERIC,v
retrieving revision 1.17
diff -u -p -r1.17 GENERIC
--- sys/arch/socppc/conf/GENERIC 19 Nov 2010 20:54:52 -0000 1.17
+++ sys/arch/socppc/conf/GENERIC 25 Nov 2010 15:22:26 -0000
@@ -79,7 +79,6 @@ run* at uhub? # Ralink RT2700U/RT2800U/
 urtwn* at uhub? # Realtek RTL8188CU/RTL8192CU
 zyd* at uhub? # Zydas ZD1211
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 ugen* at uhub? # USB Generic driver
 uthum* at uhidev? # TEMPerHUM sensor
 utwitch* at uhidev? # YUREX BBU sensor
Index: sys/arch/socppc/socppc/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/socppc/socppc/conf.c,v
retrieving revision 1.12
diff -u -p -r1.12 conf.c
--- sys/arch/socppc/socppc/conf.c 19 Nov 2010 20:55:48 -0000 1.12
+++ sys/arch/socppc/socppc/conf.c 25 Nov 2010 15:22:26 -0000
@@ -113,7 +113,6 @@ cdev_decl(pci);
 #include "ulpt.h"
 #include "urio.h"
 #include "ucom.h"
-#include "uscanner.h"

 #include "bthub.h"
 #include "vscsi.h"
@@ -201,7 +200,7 @@ struct cdevsw cdevsw[] = {
 #endif
  cdev_notdef(), /* 72 */
  cdev_notdef(), /* 73 */
- cdev_usbdev_init(NUSCANNER,uscanner), /* 74: usb scanner */
+ cdev_notdef(), /* 74 */
  cdev_notdef(), /* 75 */
  cdev_notdef(), /* 76 */
  cdev_ptm_init(NPTY,ptm), /* 77: pseudo-tty ptm device */
Index: sys/arch/sparc64/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/sparc64/conf/GENERIC,v
retrieving revision 1.259
diff -u -p -r1.259 GENERIC
--- sys/arch/sparc64/conf/GENERIC 6 Nov 2010 12:24:28 -0000 1.259
+++ sys/arch/sparc64/conf/GENERIC 25 Nov 2010 15:22:26 -0000
@@ -233,7 +233,6 @@ zyd* at uhub? # Zydas ZD1211
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 udsbr* at uhub? # D-Link DSB-R100 radio
 radio* at udsbr? # USB radio
Index: sys/arch/sparc64/sparc64/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/sparc64/sparc64/conf.c,v
retrieving revision 1.58
diff -u -p -r1.58 conf.c
--- sys/arch/sparc64/sparc64/conf.c 8 Oct 2010 18:21:34 -0000 1.58
+++ sys/arch/sparc64/sparc64/conf.c 25 Nov 2010 15:22:27 -0000
@@ -104,7 +104,6 @@ cdev_decl(pci);
 #include "ulpt.h"
 #include "urio.h"
 #include "ucom.h"
-#include "uscanner.h"

 #include "bthub.h"

@@ -261,7 +260,7 @@ struct cdevsw cdevsw[] =
  cdev_ulpt_init(NULPT,ulpt), /* 93: USB printers */
  cdev_urio_init(NURIO,urio), /* 94: USB Diamond Rio 500 */
  cdev_tty_init(NUCOM,ucom), /* 95: USB tty */
- cdev_usbdev_init(NUSCANNER,uscanner), /* 96: USB scanners */
+ cdev_notdef(), /* 96 */
  cdev_notdef(), /* 97 */
  cdev_notdef(), /* 98 */
  cdev_notdef(), /* 99 */
Index: sys/arch/zaurus/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/zaurus/conf/GENERIC,v
retrieving revision 1.80
diff -u -p -r1.80 GENERIC
--- sys/arch/zaurus/conf/GENERIC 24 Sep 2010 18:26:49 -0000 1.80
+++ sys/arch/zaurus/conf/GENERIC 25 Nov 2010 15:22:27 -0000
@@ -127,7 +127,6 @@ zyd* at uhub? # Zydas ZD1211
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 udsbr* at uhub? # D-Link DSB-R100 radio
 radio* at udsbr? # USB radio
Index: sys/arch/zaurus/conf/RAMDISK
===================================================================
RCS file: /cvs/src/sys/arch/zaurus/conf/RAMDISK,v
retrieving revision 1.41
diff -u -p -r1.41 RAMDISK
--- sys/arch/zaurus/conf/RAMDISK 3 Jul 2010 03:59:17 -0000 1.41
+++ sys/arch/zaurus/conf/RAMDISK 25 Nov 2010 15:22:27 -0000
@@ -89,7 +89,6 @@ ural* at uhub? # Ralink RT2500
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 upl* at uhub? # Prolific PL2301/PL2302 host-to-host
-#uscanner* at uhub? # USB Scanner driver
 #uyap* at uhub? # Y@P firmware loader
 #ugen* at uhub? # USB Generic driver
 umass* at uhub? # USB Mass Storage devices
Index: share/man/man4/uscanner.4
===================================================================
RCS file: share/man/man4/uscanner.4
diff -N share/man/man4/uscanner.4
--- share/man/man4/uscanner.4 26 Jun 2008 05:42:07 -0000 1.12
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,132 +0,0 @@
-.\" $OpenBSD: uscanner.4,v 1.12 2008/06/26 05:42:07 ray Exp $
-.\" $NetBSD: uscanner.4,v 1.4 2000/10/13 21:05:18 augustss Exp $
-.\"
-.\" Copyright (c) 2000 The NetBSD Foundation, Inc.
-.\" All rights reserved.
-.\"
-.\" This code is derived from software contributed to The NetBSD Foundation
-.\" by Lennart Augustsson.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\"    notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\"    notice, this list of conditions and the following disclaimer in the
-.\"    documentation and/or other materials provided with the distribution.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND
CONTRIBUTORS
-.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED
-.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR
-.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR
CONTRIBUTORS
-.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE
-.\" POSSIBILITY OF SUCH DAMAGE.
-.\"
-.Dd $Mdocdate: June 26 2008 $
-.Dt USCANNER 4
-.Os
-.Sh NAME
-.Nm uscanner
-.Nd USB scanner support
-.Sh SYNOPSIS
-.Cd "uscanner* at uhub?"
-.Sh DESCRIPTION
-The
-.Nm
-driver provides minimal support for USB scanners.
-The driver recognizes a number of USB scanners, but to
-actually scan anything there needs to be software that knows
-about the particular scanner.
-The SANE package provides support for some scanners.
-.Pp
-For multifunction USB devices
-such as scanner/printer/card readers,
-this driver only attaches to the USB interface that controls the scanner.
-For the other USB interfaces
-separate drivers are needed,
-such as
-.Xr ulpt 4
-and
-.Xr umass 4 .
-.Sh HARDWARE
-The
-.Nm
-driver works with the following scanners:
-.Pp
-.Bl -bullet -compact -offset indent
-.It
-Acer: Acerscan 320U, 620U, 640U, C310U
-.It
-Agfa: SnapScan 1212U, 1236U, e20, e25, e26, e40, e50, e52, Touch
-.It
-Avision: 1200U
-.It
-Canon: CanoScan N656U, N670U, N1220U, N1240U
-.It
-Epson: GT-7000, GT-9700F
-.It
-Epson: Perfection 610U, 636U, 640U, 12xxU, 12xxU Photo, 16xxU,
-16xxU Photo, 1650, 2400
-.It
-Epson: Stylus DX38xx DX40xx DX50xx DX60xx (multifunction)
-.It
-HP: Photosmart S20
-.It
-HP: ScanJet 2200C, 3300C, 3400cse, 4100C, 4200C, 4300C, 5200C, 5300C,
-6200C, 6300C
-.It
-Kye: ColorPage Vivid-Pro
-.It
-Microtek: ScanMaker X6USB
-.It
-Mustek: 600, 600 CU, 1200, 1200 CU, 1200 UB, 1200 Plus, 1200 CU Plus,
-BearPaw 1200F
-.It
-National: BearPaw 1200, 2400
-.It
-Primax: Colorado 600u, 9600, 19200, 1200u
-.It
-Primax: G2-200, G2-300, G2-600, G2E-300, G2E-600
-.It
-Primax: ReadyScan 636i
-.It
-Primax: Visioneer 6200
-.It
-Ultima: 1200 UB Plus
-.It
-Umax: Astra 1220U, 1236U, 2000U, 2200U, 3400
-.It
-Visioneer: OneTouch 5300, 6100, 6200, 7600, 8100, 8600, 3000
-.El
-.Pp
-Many other scanners are recognized, but there is no software support
-for them yet.
-.Sh SEE ALSO
-.Xr intro 4 ,
-.Xr uhub 4 ,
-.Xr usb 4
-.Pp
-.Pa http://www.buzzard.org.uk/jonathan/scanners-usb.html
-.Sh HISTORY
-The
-.Nm
-driver appeared in
-.Nx 1.6 .
-.Ox
-support was first added in
-.Ox 2.9 .
-.Sh BUGS
-This driver should not really exist.
-The scanners it recognizes can be accessed through the
-.Xr ugen 4
-driver instead.
-A proper scanner driver would provide a uniform interface to scanners
-instead of exposing the innards of the scanner.
-The reason the driver exists is to have something that is compatible
-with the Linux driver.
Index: share/man/man4/usb.4
===================================================================
RCS file: /cvs/src/share/man/man4/usb.4,v
retrieving revision 1.123
diff -u -p -r1.123 usb.4
--- share/man/man4/usb.4 5 Nov 2010 17:01:59 -0000 1.123
+++ share/man/man4/usb.4 25 Nov 2010 15:22:27 -0000
@@ -264,8 +264,6 @@ USB generic device support
 Maxim/Dallas DS2490 USB 1-Wire adapter
 .It Xr upl 4
 Prolific based host-to-host adapters
-.It Xr uscanner 4
-USB scanner support
 .It Xr uts 4
 USB touchscreen support
 .It Xr uyap 4



--
Mattieu Baptiste
"/earth is 102% full ... please delete anyone you can."


Re: More Canon scanners (usbdevs, uscanner.c)

by Mattieu Baptiste-2 :: Rate this Message:

| View Threaded | Show Only this Message

On Thu, Nov 25, 2010 at 4:28 PM, Mattieu Baptiste <mattieu.b@...> wrote:

> Ok, here is a proposed diff that can also be found at:
> http://www.brimbelle.org/mattieu/stuff/uscanner.diff
>
> Compile tested on amd64.

As noted by jasper, I forgot MAKEDEV, so here is another try...

Index: sys/dev/usb/uscanner.c
===================================================================
RCS file: sys/dev/usb/uscanner.c
diff -N sys/dev/usb/uscanner.c
--- sys/dev/usb/uscanner.c 24 Sep 2010 08:33:59 -0000 1.43
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,687 +0,0 @@
-/* $OpenBSD: uscanner.c,v 1.43 2010/09/24 08:33:59 yuo Exp $ */
-/* $NetBSD: uscanner.c,v 1.40 2003/01/27 00:32:44 wiz Exp $ */
-
-/*
- * Copyright (c) 2000 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Lennart Augustsson (lennart@...) at
- * Carlstedt Research & Technology
- * and Nick Hibma (n_hibma@...).
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/kernel.h>
-#include <sys/malloc.h>
-#include <sys/device.h>
-#include <sys/tty.h>
-#include <sys/file.h>
-#include <sys/selinfo.h>
-#include <sys/proc.h>
-#include <sys/vnode.h>
-#include <sys/poll.h>
-#include <sys/conf.h>
-
-#include <dev/usb/usb.h>
-#include <dev/usb/usbdi.h>
-#include <dev/usb/usbdi_util.h>
-
-#include <dev/usb/usbdevs.h>
-
-#ifdef USCANNER_DEBUG
-#define DPRINTF(x) do { if (uscannerdebug) printf x; } while (0)
-#define DPRINTFN(n,x) do { if (uscannerdebug>(n)) printf x; } while (0)
-int uscannerdebug = 0;
-#else
-#define DPRINTF(x)
-#define DPRINTFN(n,x)
-#endif
-
-struct uscan_info {
- struct usb_devno devno;
- u_int flags;
-#define USC_KEEP_OPEN 1
-};
-
-/* Table of scanners that may work with this driver. */
-static const struct uscan_info uscanner_devs[] = {
-  /* Acer Peripherals */
- {{ USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_320U }, 0 },
- {{ USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_640U }, 0 },
- {{ USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_620U }, 0 },
- {{ USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_C310U }, 0 },
-
-  /* AGFA */
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCAN1236U }, 0 },
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCAN1212U }, 0 },
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCAN1212U2 }, 0 },
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANTOUCH }, 0 },
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE40 }, 0 },
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE50 }, 0 },
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE20 }, 0 },
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE25 }, 0 },
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE26 }, 0 },
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE52 }, 0 },
-
-  /* Avision */
- {{ USB_VENDOR_AVISION, USB_PRODUCT_AVISION_1200U }, 0 },
-
-  /* Canon */
- {{ USB_VENDOR_CANON, USB_PRODUCT_CANON_N656U }, 0 },
- {{ USB_VENDOR_CANON, USB_PRODUCT_CANON_N670U }, 0 },
- {{ USB_VENDOR_CANON, USB_PRODUCT_CANON_N1220U }, 0 },
- {{ USB_VENDOR_CANON, USB_PRODUCT_CANON_N1240U }, 0 },
-
-  /* Kye */
- {{ USB_VENDOR_KYE, USB_PRODUCT_KYE_VIVIDPRO }, 0 },
-
-  /* HP */
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_2200C }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_3300C }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_3400CSE }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_4100C }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_4200C }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_4300C }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_S20 }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_5200C }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_6200C }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_6300C }, 0 },
-
-  /* Mustek */
- {{ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200CU }, 0 },
- {{ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_BEARPAW1200F }, 0 },
- {{ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_600USB }, 0 },
- {{ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_600CU }, 0 },
- {{ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200USB }, 0 },
- {{ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200UB }, 0 },
- {{ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200USBPLUS }, 0 },
- {{ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200CUPLUS }, 0 },
-
-  /* National */
- {{ USB_VENDOR_NATIONAL, USB_PRODUCT_NATIONAL_BEARPAW1200 }, 0 },
- {{ USB_VENDOR_NATIONAL, USB_PRODUCT_NATIONAL_BEARPAW2400 }, 0 },
-
-  /* Primax */
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2X300 }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2E300 }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2300 }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2E3002 }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_9600 }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_600U }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_6200 }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_19200 }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_1200U }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G600 }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_636I }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2600 }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2E600 }, 0 },
-
-  /* Epson */
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_636 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_610 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1200 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1240 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1260 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1600 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1640 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1660 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_640U }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1650 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_2400 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_DX3800 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_DX4000 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_DX5000 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_DX6000 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_CX5400 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_GT9700F }, USC_KEEP_OPEN },
-
-  /* UMAX */
- {{ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA1220U }, 0 },
- {{ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA1236U }, 0 },
- {{ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA2000U }, 0 },
- {{ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA2200U }, 0 },
- {{ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA3400 }, 0 },
-
-  /* Visioneer */
- {{ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_3000 }, 0 },
- {{ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_5300 }, 0 },
- {{ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_7600 }, 0 },
- {{ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_6100 }, 0 },
- {{ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_6200 }, 0 },
- {{ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_8100 }, 0 },
- {{ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_8600 }, 0 },
-
-  /* Ultima */
- {{ USB_VENDOR_ULTIMA, USB_PRODUCT_ULTIMA_1200UBPLUS }, 0 },
-
-};
-#define uscanner_lookup(v, p) ((const struct uscan_info
*)usb_lookup(uscanner_devs, v, p))
-
-#define USCANNER_BUFFERSIZE 1024
-
-struct uscanner_softc {
- struct device sc_dev; /* base device */
- usbd_device_handle sc_udev;
- usbd_interface_handle sc_iface;
-
- u_int sc_dev_flags;
-
- usbd_pipe_handle sc_bulkin_pipe;
- int sc_bulkin;
- usbd_xfer_handle sc_bulkin_xfer;
- void *sc_bulkin_buffer;
- int sc_bulkin_bufferlen;
- int sc_bulkin_datalen;
-
- usbd_pipe_handle sc_bulkout_pipe;
- int sc_bulkout;
- usbd_xfer_handle sc_bulkout_xfer;
- void *sc_bulkout_buffer;
- int sc_bulkout_bufferlen;
- int sc_bulkout_datalen;
-
- struct selinfo sc_selq;
-
- u_char sc_state;
-#define USCANNER_OPEN 0x01 /* opened */
-
- int sc_refcnt;
- u_char sc_dying;
-};
-
-int uscanner_do_read(struct uscanner_softc *, struct uio *, int);
-int uscanner_do_write(struct uscanner_softc *, struct uio *, int);
-void uscanner_do_close(struct uscanner_softc *);
-
-#define USCANNERUNIT(n) (minor(n))
-
-int uscanner_match(struct device *, void *, void *);
-void uscanner_attach(struct device *, struct device *, void *);
-int uscanner_detach(struct device *, int);
-int uscanner_activate(struct device *, int);
-
-struct cfdriver uscanner_cd = {
- NULL, "uscanner", DV_DULL
-};
-
-const struct cfattach uscanner_ca = {
- sizeof(struct uscanner_softc),
- uscanner_match,
- uscanner_attach,
- uscanner_detach,
- uscanner_activate,
-};
-
-int
-uscanner_match(struct device *parent, void *match, void *aux)
-{
- struct usb_attach_arg *uaa = aux;
- usb_interface_descriptor_t *id;
-
- if (uaa->iface == NULL)
- return UMATCH_NONE; /* do not grab the entire device */
-
- if (uscanner_lookup(uaa->vendor, uaa->product) == NULL)
- return UMATCH_NONE; /* not in the list of known devices */
- id = usbd_get_interface_descriptor(uaa->iface);
- if (id == NULL)
- return UMATCH_NONE;
-
- /*
- * There isn't a specific UICLASS for scanners, many vendors use
- * UICLASS_VENDOR, so detecting the right interface is not so easy.
- * But certainly we can exclude PRINTER and MASS - which some
- * multifunction devices implement.
- */
- if (id->bInterfaceClass == UICLASS_PRINTER ||
-    id->bInterfaceClass == UICLASS_MASS)
- return UMATCH_NONE;
-
- return UMATCH_VENDOR_PRODUCT;
-}
-
-void
-uscanner_attach(struct device *parent, struct device *self, void *aux)
-{
- struct uscanner_softc *sc = (struct uscanner_softc *)self;
- struct usb_attach_arg *uaa = aux;
- usb_interface_descriptor_t *id = 0;
- usb_endpoint_descriptor_t *ed, *ed_bulkin = NULL, *ed_bulkout = NULL;
- int i;
- usbd_status err;
- int ifnum;
-
- sc->sc_dev_flags = uscanner_lookup(uaa->vendor, uaa->product)->flags;
-
- sc->sc_udev = uaa->device;
-
- id = usbd_get_interface_descriptor(uaa->iface);
- ifnum = id->bInterfaceNumber;
-
- err = usbd_device2interface_handle(sc->sc_udev, ifnum, &sc->sc_iface);
- if (!err && sc->sc_iface)
-    id = usbd_get_interface_descriptor(sc->sc_iface);
- if (err || id == 0) {
- printf("%s: could not get interface descriptor, err=%d,id=%p\n",
-       sc->sc_dev.dv_xname, err, id);
- return;
- }
-
- /* Find the two first bulk endpoints */
- for (i = 0 ; i < id->bNumEndpoints; i++) {
- ed = usbd_interface2endpoint_descriptor(sc->sc_iface, i);
- if (ed == 0) {
- printf("%s: could not read endpoint descriptor\n",
-       sc->sc_dev.dv_xname);
- return;
- }
-
- if (UE_GET_DIR(ed->bEndpointAddress) == UE_DIR_IN
-    && (ed->bmAttributes & UE_XFERTYPE) == UE_BULK) {
- ed_bulkin = ed;
- } else if (UE_GET_DIR(ed->bEndpointAddress) == UE_DIR_OUT
-    && (ed->bmAttributes & UE_XFERTYPE) == UE_BULK) {
-        ed_bulkout = ed;
- }
-
- if (ed_bulkin && ed_bulkout) /* found all we need */
- break;
- }
-
- /* Verify that we goething sensible */
- if (ed_bulkin == NULL || ed_bulkout == NULL) {
- printf("%s: bulk-in and/or bulk-out endpoint not found\n",
- sc->sc_dev.dv_xname);
- return;
- }
-
- sc->sc_bulkin = ed_bulkin->bEndpointAddress;
- sc->sc_bulkout = ed_bulkout->bEndpointAddress;
-
- usbd_add_drv_event(USB_EVENT_DRIVER_ATTACH, sc->sc_udev,
-   &sc->sc_dev);
-}
-
-int
-uscanneropen(dev_t dev, int flag, int mode, struct proc *p)
-{
- struct uscanner_softc *sc;
- int unit = USCANNERUNIT(dev);
- usbd_status err;
-
- if (unit >= uscanner_cd.cd_ndevs)
- return (ENXIO);
- sc = uscanner_cd.cd_devs[unit];
- if (sc == NULL)
- return (ENXIO);
-
- DPRINTFN(5, ("uscanneropen: flag=%d, mode=%d, unit=%d\n",
-     flag, mode, unit));
-
- if (sc->sc_dying)
- return (ENXIO);
-
- if (sc->sc_state & USCANNER_OPEN)
- return (EBUSY);
-
- sc->sc_state |= USCANNER_OPEN;
-
- sc->sc_bulkin_buffer = malloc(USCANNER_BUFFERSIZE, M_USBDEV, M_WAITOK);
- sc->sc_bulkout_buffer = malloc(USCANNER_BUFFERSIZE, M_USBDEV, M_WAITOK);
- /* No need to check buffers for NULL since we have WAITOK */
-
- sc->sc_bulkin_bufferlen = USCANNER_BUFFERSIZE;
- sc->sc_bulkout_bufferlen = USCANNER_BUFFERSIZE;
-
- /* We have decided on which endpoints to use, now open the pipes */
- if (sc->sc_bulkin_pipe == NULL) {
- err = usbd_open_pipe(sc->sc_iface, sc->sc_bulkin,
-     USBD_EXCLUSIVE_USE, &sc->sc_bulkin_pipe);
- if (err) {
- printf("%s: cannot open bulk-in pipe (addr %d)\n",
-       sc->sc_dev.dv_xname, sc->sc_bulkin);
- uscanner_do_close(sc);
- return (EIO);
- }
- }
- if (sc->sc_bulkout_pipe == NULL) {
- err = usbd_open_pipe(sc->sc_iface, sc->sc_bulkout,
-     USBD_EXCLUSIVE_USE, &sc->sc_bulkout_pipe);
- if (err) {
- printf("%s: cannot open bulk-out pipe (addr %d)\n",
-       sc->sc_dev.dv_xname, sc->sc_bulkout);
- uscanner_do_close(sc);
- return (EIO);
- }
- }
-
- sc->sc_bulkin_xfer = usbd_alloc_xfer(sc->sc_udev);
- if (sc->sc_bulkin_xfer == NULL) {
- uscanner_do_close(sc);
- return (ENOMEM);
- }
- sc->sc_bulkout_xfer = usbd_alloc_xfer(sc->sc_udev);
- if (sc->sc_bulkout_xfer == NULL) {
- uscanner_do_close(sc);
- return (ENOMEM);
- }
-
- return (0); /* success */
-}
-
-int
-uscannerclose(dev_t dev, int flag, int mode, struct proc *p)
-{
- struct uscanner_softc *sc;
-
- sc = uscanner_cd.cd_devs[USCANNERUNIT(dev)];
-
- DPRINTFN(5, ("uscannerclose: flag=%d, mode=%d, unit=%d\n",
-     flag, mode, USCANNERUNIT(dev)));
-
-#ifdef DIAGNOSTIC
- if (!(sc->sc_state & USCANNER_OPEN)) {
- printf("uscannerclose: not open\n");
- return (EINVAL);
- }
-#endif
-
- uscanner_do_close(sc);
-
- return (0);
-}
-
-void
-uscanner_do_close(struct uscanner_softc *sc)
-{
- if (sc->sc_bulkin_xfer) {
- usbd_free_xfer(sc->sc_bulkin_xfer);
- sc->sc_bulkin_xfer = NULL;
- }
- if (sc->sc_bulkout_xfer) {
- usbd_free_xfer(sc->sc_bulkout_xfer);
- sc->sc_bulkout_xfer = NULL;
- }
-
- if (!(sc->sc_dev_flags & USC_KEEP_OPEN)) {
- if (sc->sc_bulkin_pipe != NULL) {
- usbd_abort_pipe(sc->sc_bulkin_pipe);
- usbd_close_pipe(sc->sc_bulkin_pipe);
- sc->sc_bulkin_pipe = NULL;
- }
- if (sc->sc_bulkout_pipe != NULL) {
- usbd_abort_pipe(sc->sc_bulkout_pipe);
- usbd_close_pipe(sc->sc_bulkout_pipe);
- sc->sc_bulkout_pipe = NULL;
- }
- }
-
- if (sc->sc_bulkin_buffer) {
- free(sc->sc_bulkin_buffer, M_USBDEV);
- sc->sc_bulkin_buffer = NULL;
- }
- if (sc->sc_bulkout_buffer) {
- free(sc->sc_bulkout_buffer, M_USBDEV);
- sc->sc_bulkout_buffer = NULL;
- }
-
- sc->sc_state &= ~USCANNER_OPEN;
-}
-
-int
-uscanner_do_read(struct uscanner_softc *sc, struct uio *uio, int flag)
-{
- u_int32_t n, tn;
- usbd_status err;
- int error = 0;
-
- DPRINTFN(5, ("%s: uscannerread\n", sc->sc_dev.dv_xname));
-
- if (sc->sc_dying)
- return (EIO);
-
- while ((n = min(sc->sc_bulkin_bufferlen, uio->uio_resid)) != 0) {
- DPRINTFN(1, ("uscannerread: start transfer %d bytes\n",n));
- tn = n;
-
- err = usbd_bulk_transfer(
- sc->sc_bulkin_xfer, sc->sc_bulkin_pipe,
- USBD_SHORT_XFER_OK, USBD_NO_TIMEOUT,
- sc->sc_bulkin_buffer, &tn,
- "uscnrb");
- if (err) {
- if (err == USBD_INTERRUPTED)
- error = EINTR;
- else if (err == USBD_TIMEOUT)
- error = ETIMEDOUT;
- else
- error = EIO;
- break;
- }
- DPRINTFN(1, ("uscannerread: got %d bytes\n", tn));
- error = uiomove(sc->sc_bulkin_buffer, tn, uio);
- if (error || tn < n)
- break;
- }
-
- return (error);
-}
-
-int
-uscannerread(dev_t dev, struct uio *uio, int flag)
-{
- struct uscanner_softc *sc;
- int error;
-
- sc = uscanner_cd.cd_devs[USCANNERUNIT(dev)];
-
- sc->sc_refcnt++;
- error = uscanner_do_read(sc, uio, flag);
- if (--sc->sc_refcnt < 0)
- usb_detach_wakeup(&sc->sc_dev);
-
- return (error);
-}
-
-int
-uscanner_do_write(struct uscanner_softc *sc, struct uio *uio, int flag)
-{
- u_int32_t n;
- int error = 0;
- usbd_status err;
-
- DPRINTFN(5, ("%s: uscanner_do_write\n", sc->sc_dev.dv_xname));
-
- if (sc->sc_dying)
- return (EIO);
-
- while ((n = min(sc->sc_bulkout_bufferlen, uio->uio_resid)) != 0) {
- error = uiomove(sc->sc_bulkout_buffer, n, uio);
- if (error)
- break;
- DPRINTFN(1, ("uscanner_do_write: transfer %d bytes\n", n));
- err = usbd_bulk_transfer(
- sc->sc_bulkout_xfer, sc->sc_bulkout_pipe,
- 0, USBD_NO_TIMEOUT,
- sc->sc_bulkout_buffer, &n,
- "uscnwb");
- if (err) {
- if (err == USBD_INTERRUPTED)
- error = EINTR;
- else
- error = EIO;
- break;
- }
- }
-
- return (error);
-}
-
-int
-uscannerwrite(dev_t dev, struct uio *uio, int flag)
-{
- struct uscanner_softc *sc;
- int error;
-
- sc = uscanner_cd.cd_devs[USCANNERUNIT(dev)];
-
- sc->sc_refcnt++;
- error = uscanner_do_write(sc, uio, flag);
- if (--sc->sc_refcnt < 0)
- usb_detach_wakeup(&sc->sc_dev);
- return (error);
-}
-
-int
-uscanner_activate(struct device *self, int act)
-{
- struct uscanner_softc *sc = (struct uscanner_softc *)self;
-
- switch (act) {
- case DVACT_ACTIVATE:
- break;
-
- case DVACT_DEACTIVATE:
- sc->sc_dying = 1;
- break;
- }
- return (0);
-}
-
-int
-uscanner_detach(struct device *self, int flags)
-{
- struct uscanner_softc *sc = (struct uscanner_softc *)self;
- int s;
- int maj, mn;
-
- DPRINTF(("uscanner_detach: sc=%p flags=%d\n", sc, flags));
-
- sc->sc_dev_flags = 0; /* make close really close device */
-
- /* Abort all pipes.  Causes processes waiting for transfer to wake. */
- if (sc->sc_bulkin_pipe != NULL)
- usbd_abort_pipe(sc->sc_bulkin_pipe);
- if (sc->sc_bulkout_pipe != NULL)
- usbd_abort_pipe(sc->sc_bulkout_pipe);
-
- s = splusb();
- if (--sc->sc_refcnt >= 0) {
- /* Wait for processes to go away. */
- usb_detach_wait(&sc->sc_dev);
- }
- splx(s);
-
- /* locate the major number */
- for (maj = 0; maj < nchrdev; maj++)
- if (cdevsw[maj].d_open == uscanneropen)
- break;
-
- /* Nuke the vnodes for any open instances (calls close). */
- mn = self->dv_unit * USB_MAX_ENDPOINTS;
- vdevgone(maj, mn, mn + USB_MAX_ENDPOINTS - 1, VCHR);
- usbd_add_drv_event(USB_EVENT_DRIVER_DETACH, sc->sc_udev,
-   &sc->sc_dev);
-
- return (0);
-}
-
-int
-uscannerpoll(dev_t dev, int events, struct proc *p)
-{
- struct uscanner_softc *sc;
- int revents = 0;
-
- sc = uscanner_cd.cd_devs[USCANNERUNIT(dev)];
-
- if (sc->sc_dying)
- return (POLLERR);
-
- /*
- * We have no easy way of determining if a read will
- * yield any data or a write will happen.
- * Pretend they will.
- */
- revents |= events &
-   (POLLIN | POLLRDNORM | POLLOUT | POLLWRNORM);
-
- return (revents);
-}
-
-int
-uscannerioctl(dev_t dev, u_long cmd, caddr_t addr, int flag, struct proc *p)
-{
- return (EINVAL);
-}
-
-void filt_uscannerdetach(struct knote *);
-int uscannerkqfilter(dev_t, struct knote *);
-
-void
-filt_uscannerdetach(struct knote *kn)
-{
- struct uscanner_softc *sc = (void *)kn->kn_hook;
-
- SLIST_REMOVE(&sc->sc_selq.si_note, kn, knote, kn_selnext);
-}
-
-struct filterops uscanner_seltrue_filtops =
- { 1, NULL, filt_uscannerdetach, filt_seltrue };
-
-int
-uscannerkqfilter(dev_t dev, struct knote *kn)
-{
- struct uscanner_softc *sc;
- struct klist *klist;
-
- sc = uscanner_cd.cd_devs[USCANNERUNIT(dev)];
-
- if (sc->sc_dying)
- return (1);
-
- switch (kn->kn_filter) {
- case EVFILT_READ:
- case EVFILT_WRITE:
- /*
- * We have no easy way of determining if a read will
- * yield any data or a write will happen.
- * Pretend they will.
- */
- klist = &sc->sc_selq.si_note;
- kn->kn_fop = &uscanner_seltrue_filtops;
- break;
-
- default:
- return (1);
- }
-
- kn->kn_hook = (void *)sc;
-
- SLIST_INSERT_HEAD(klist, kn, kn_selnext);
-
- return (0);
-}
Index: sys/dev/usb/files.usb
===================================================================
RCS file: /cvs/src/sys/dev/usb/files.usb,v
retrieving revision 1.94
diff -u -p -r1.94 files.usb
--- sys/dev/usb/files.usb 5 Nov 2010 16:58:12 -0000 1.94
+++ sys/dev/usb/files.usb 25 Nov 2010 16:03:43 -0000
@@ -288,12 +288,6 @@ device uticom: ucombus
 attach uticom at uhub
 file dev/usb/uticom.c uticom

-# Scanners
-# Generic scanner support
-device uscanner
-attach uscanner at uhub
-file dev/usb/uscanner.c uscanner needs-flag
-
 # Prism3 WI @ USB
 attach wi at uhub with wi_usb
 file dev/usb/if_wi_usb.c wi_usb
Index: sys/arch/alpha/alpha/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/alpha/alpha/conf.c,v
retrieving revision 1.65
diff -u -p -r1.65 conf.c
--- sys/arch/alpha/alpha/conf.c 19 Nov 2010 20:55:48 -0000 1.65
+++ sys/arch/alpha/alpha/conf.c 25 Nov 2010 16:03:43 -0000
@@ -126,7 +126,6 @@ cdev_decl(nnpfs_dev);
 #include "ulpt.h"
 #include "urio.h"
 #include "ucom.h"
-#include "uscanner.h"
 #include "pf.h"
 #ifdef USER_PCICONF
 #include "pci.h"
@@ -215,7 +214,7 @@ struct cdevsw cdevsw[] =
  cdev_disk_init(1,diskmap), /* 63: disk mapper */
  cdev_pppx_init(NPPPX,pppx), /* 64: pppx */
  cdev_urio_init(NURIO,urio), /* 65: USB Diamond Rio 500 */
- cdev_usbdev_init(NUSCANNER,uscanner), /* 66: USB scanners */
+ cdev_notdef(), /* 66: */
 };
 int nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]);

Index: sys/arch/alpha/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/alpha/conf/GENERIC,v
retrieving revision 1.217
diff -u -p -r1.217 GENERIC
--- sys/arch/alpha/conf/GENERIC 26 Sep 2010 20:39:08 -0000 1.217
+++ sys/arch/alpha/conf/GENERIC 25 Nov 2010 16:03:43 -0000
@@ -113,7 +113,6 @@ upl* at uhub? # Prolific PL2301/PL2302
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 udsbr* at uhub? # D-Link DSB-R100 radio
 radio* at udsbr? # USB radio
Index: sys/arch/amd64/amd64/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/amd64/amd64/conf.c,v
retrieving revision 1.31
diff -u -p -r1.31 conf.c
--- sys/arch/amd64/amd64/conf.c 22 Nov 2010 21:10:42 -0000 1.31
+++ sys/arch/amd64/amd64/conf.c 25 Nov 2010 16:03:44 -0000
@@ -165,7 +165,6 @@ cdev_decl(nnpfs_dev);
 #include "ulpt.h"
 #include "urio.h"
 #include "ucom.h"
-#include "uscanner.h"
 #include "cz.h"
 cdev_decl(cztty);
 #include "radio.h"
@@ -291,7 +290,7 @@ struct cdevsw cdevsw[] =
  cdev_notdef(), /* 74: ALTQ (deprecated) */
  cdev_iop_init(NIOP,iop), /* 75: I2O IOP control interface */
  cdev_radio_init(NRADIO, radio), /* 76: generic radio I/O */
- cdev_usbdev_init(NUSCANNER,uscanner), /* 77: USB scanners */
+ cdev_notdef(), /* 77: */
  cdev_systrace_init(NSYSTRACE,systrace), /* 78: system call tracing */
  cdev_bio_init(NBIO,bio), /* 79: ioctl tunnel */
  cdev_notdef(), /* 80: gpr? XXX */
Index: sys/arch/amd64/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/amd64/conf/GENERIC,v
retrieving revision 1.307
diff -u -p -r1.307 GENERIC
--- sys/arch/amd64/conf/GENERIC 5 Nov 2010 16:58:12 -0000 1.307
+++ sys/arch/amd64/conf/GENERIC 25 Nov 2010 16:03:44 -0000
@@ -224,7 +224,6 @@ mos* at uhub? # MOSCHIP MCS7730/7830 10
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 udsbr* at uhub? # D-Link DSB-R100 radio
 radio* at udsbr? # USB radio
Index: sys/arch/amd64/conf/RAMDISK
===================================================================
RCS file: /cvs/src/sys/arch/amd64/conf/RAMDISK,v
retrieving revision 1.50
diff -u -p -r1.50 RAMDISK
--- sys/arch/amd64/conf/RAMDISK 3 Jul 2010 03:59:16 -0000 1.50
+++ sys/arch/amd64/conf/RAMDISK 25 Nov 2010 16:03:44 -0000
@@ -106,7 +106,6 @@ wskbd* at ukbd? mux 1
 #kue* at uhub? # Kawasaki KL5KUSB101B based Ethernet
 #upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network'
 #urio* at uhub? # Diamond Multimedia Rio 500
-#uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 #ugen* at uhub? # USB Generic driver

Index: sys/arch/amd64/conf/RAMDISK_CD
===================================================================
RCS file: /cvs/src/sys/arch/amd64/conf/RAMDISK_CD,v
retrieving revision 1.115
diff -u -p -r1.115 RAMDISK_CD
--- sys/arch/amd64/conf/RAMDISK_CD 4 Aug 2010 21:44:41 -0000 1.115
+++ sys/arch/amd64/conf/RAMDISK_CD 25 Nov 2010 16:03:44 -0000
@@ -117,7 +117,6 @@ url* at uhub? # Realtek RTL8150L based
 wi* at uhub? # WaveLAN IEEE 802.11DS
 upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network'
 #urio* at uhub? # Diamond Multimedia Rio 500
-#uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 #ugen* at uhub? # USB Generic driver
 ural* at uhub? # Ralink RT2500
Index: sys/arch/arm/arm/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/arm/arm/conf.c,v
retrieving revision 1.27
diff -u -p -r1.27 conf.c
--- sys/arch/arm/arm/conf.c 23 Sep 2010 05:02:14 -0000 1.27
+++ sys/arch/arm/arm/conf.c 25 Nov 2010 16:03:44 -0000
@@ -137,7 +137,6 @@ cdev_decl(pci);
 #include "uhid.h"
 #include "ulpt.h"
 #include "urio.h"
-#include "uscanner.h"

 /*
  * Bluetooth devices
@@ -373,7 +372,7 @@ struct cdevsw cdevsw[] = {
  cdev_lpt_init(NULPT,ulpt), /* 66: USB printer */
  cdev_urio_init(NURIO,urio), /* 67: Diamond Rio 500 */
  cdev_tty_init(NUCOM,ucom), /* 68: USB tty */
- cdev_usbdev_init(NUSCANNER,uscanner), /* 69: USB scanner */
+ cdev_notdef(), /* 69: */
  cdev_usbdev_init(NUGEN,ugen), /* 70: USB generic driver */
  cdev_disk_init(NRAID,raid),     /* 71: RAIDframe disk driver */
  cdev_lkm_dummy(), /* 72: reserved */
Index: sys/arch/armish/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/armish/conf/GENERIC,v
retrieving revision 1.35
diff -u -p -r1.35 GENERIC
--- sys/arch/armish/conf/GENERIC 15 Nov 2010 19:07:34 -0000 1.35
+++ sys/arch/armish/conf/GENERIC 25 Nov 2010 16:03:44 -0000
@@ -144,7 +144,6 @@ udav* at uhub? # Davicom DM9601 based E
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 udsbr* at uhub? # D-Link DSB-R100 radio
 radio* at udsbr? # USB radio
Index: sys/arch/armish/conf/RAMDISK
===================================================================
RCS file: /cvs/src/sys/arch/armish/conf/RAMDISK,v
retrieving revision 1.16
diff -u -p -r1.16 RAMDISK
--- sys/arch/armish/conf/RAMDISK 3 Jul 2010 03:59:16 -0000 1.16
+++ sys/arch/armish/conf/RAMDISK 25 Nov 2010 16:03:44 -0000
@@ -135,7 +135,6 @@ udav* at uhub? # Davicom DM9601 based E
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 #urio* at uhub? # Diamond Multimedia Rio 500
-#uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 #udsbr* at uhub? # D-Link DSB-R100 radio
 #radio* at udsbr? # USB radio
Index: sys/arch/beagle/conf/RAMDISK
===================================================================
RCS file: /cvs/src/sys/arch/beagle/conf/RAMDISK,v
retrieving revision 1.8
diff -u -p -r1.8 RAMDISK
--- sys/arch/beagle/conf/RAMDISK 3 Jul 2010 03:59:16 -0000 1.8
+++ sys/arch/beagle/conf/RAMDISK 25 Nov 2010 16:03:44 -0000
@@ -145,7 +145,6 @@ ommmc0 at ahb? addr 0x4809c000 intr 83
 # url* at uhub? # Realtek RTL8150L based adapters
 # wi* at uhub? # WaveLAN IEEE 802.11DS
 # urio* at uhub? # Diamond Multimedia Rio 500
-# uscanner* at uhub? # USB Scanners
 # #uyap* at uhub? # Y@P firmware loader
 # udsbr* at uhub? # D-Link DSB-R100 radio
 # radio* at udsbr? # USB radio
Index: sys/arch/beagle/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/beagle/conf/GENERIC,v
retrieving revision 1.3
diff -u -p -r1.3 GENERIC
--- sys/arch/beagle/conf/GENERIC 3 Jul 2010 03:59:16 -0000 1.3
+++ sys/arch/beagle/conf/GENERIC 25 Nov 2010 16:03:44 -0000
@@ -140,7 +140,6 @@ udav* at uhub? # Davicom DM9601 based
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 udsbr* at uhub? # D-Link DSB-R100 radio
 radio* at udsbr? # USB radio
Index: sys/arch/gumstix/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/gumstix/conf/GENERIC,v
retrieving revision 1.9
diff -u -p -r1.9 GENERIC
--- sys/arch/gumstix/conf/GENERIC 23 Sep 2010 16:21:46 -0000 1.9
+++ sys/arch/gumstix/conf/GENERIC 25 Nov 2010 16:03:44 -0000
@@ -126,7 +126,6 @@ run* at uhub? # Ralink RT2700U/RT2800U
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 udsbr* at uhub? # D-Link DSB-R100 radio
 radio* at udsbr? # USB radio
Index: sys/arch/gumstix/conf/RAMDISK
===================================================================
RCS file: /cvs/src/sys/arch/gumstix/conf/RAMDISK,v
retrieving revision 1.3
diff -u -p -r1.3 RAMDISK
--- sys/arch/gumstix/conf/RAMDISK 3 Jul 2010 03:59:16 -0000 1.3
+++ sys/arch/gumstix/conf/RAMDISK 25 Nov 2010 16:03:45 -0000
@@ -88,7 +88,6 @@ pxaost0 at pxaip? addr 0x40a00000 size
 #url* at uhub? # Realtek RTL8150L based adapters
 #wi* at uhub? # WaveLAN IEEE 802.11DS
 #upl* at uhub? # Prolific PL2301/PL2302 host-to-host
-#uscanner* at uhub? # USB Scanner driver
 #uyap* at uhub? # Y@P firmware loader
 #ugen* at uhub? # USB Generic driver
 #umass* at uhub? # USB Mass Storage devices
Index: sys/arch/hppa/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/hppa/conf/GENERIC,v
retrieving revision 1.139
diff -u -p -r1.139 GENERIC
--- sys/arch/hppa/conf/GENERIC 23 Sep 2010 16:21:46 -0000 1.139
+++ sys/arch/hppa/conf/GENERIC 25 Nov 2010 16:03:45 -0000
@@ -153,7 +153,6 @@ udav* at uhub? # Davicom DM9601 based E
 upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network'
 wi* at uhub? # WaveLAN IEEE 802.11DS
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 uyap* at uhub? # Y@P firmware loader
 udsbr* at uhub? # D-Link DSB-R100 radio
 radio* at udsbr? # USB radio
Index: sys/arch/hppa/conf/RAMDISK
===================================================================
RCS file: /cvs/src/sys/arch/hppa/conf/RAMDISK,v
retrieving revision 1.90
diff -u -p -r1.90 RAMDISK
--- sys/arch/hppa/conf/RAMDISK 3 Jul 2010 03:59:16 -0000 1.90
+++ sys/arch/hppa/conf/RAMDISK 25 Nov 2010 16:03:45 -0000
@@ -153,7 +153,6 @@ udav* at uhub? # Davicom DM9601 based E
 upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network'
 wi* at uhub? # WaveLAN IEEE 802.11DS
 #urio* at uhub? # Diamond Multimedia Rio 500
-#uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 #udsbr* at uhub? # D-Link DSB-R100 radio
 #radio* at udsbr? # USB radio
Index: sys/arch/hppa/hppa/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/hppa/hppa/conf.c,v
retrieving revision 1.52
diff -u -p -r1.52 conf.c
--- sys/arch/hppa/hppa/conf.c 23 Sep 2010 05:02:14 -0000 1.52
+++ sys/arch/hppa/hppa/conf.c 25 Nov 2010 16:03:45 -0000
@@ -122,7 +122,6 @@ cdev_decl(pci);
 #include "ulpt.h"
 #include "urio.h"
 #include "ucom.h"
-#include "uscanner.h"

 #include "bthub.h"

@@ -183,7 +182,7 @@ struct cdevsw   cdevsw[] =
  cdev_ulpt_init(NULPT,ulpt), /* 43: USB printers */
  cdev_urio_init(NURIO,urio), /* 44: USB Diamond Rio 500 */
  cdev_tty_init(NUCOM,ucom), /* 45: USB tty */
- cdev_usbdev_init(NUSCANNER,uscanner), /* 46: USB scanners */
+ cdev_notdef(), /* 46: */
  cdev_hotplug_init(NHOTPLUG,hotplug), /* 47: devices hot plugging */
  cdev_lkm_dummy(), /* 48: */
  cdev_lkm_dummy(), /* 49: */
Index: sys/arch/hppa64/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/hppa64/conf/GENERIC,v
retrieving revision 1.22
diff -u -p -r1.22 GENERIC
--- sys/arch/hppa64/conf/GENERIC 30 Aug 2010 18:56:18 -0000 1.22
+++ sys/arch/hppa64/conf/GENERIC 25 Nov 2010 16:03:45 -0000
@@ -106,7 +106,6 @@ pci* at ppb?
 #url* at uhub? # Realtek RTL8150L based adapters
 #wi* at uhub? # WaveLAN IEEE 802.11DS
 #urio* at uhub? # Diamond Multimedia Rio 500
-#uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 #udsbr* at uhub? # D-Link DSB-R100 radio
 #radio* at udsbr? # USB radio
Index: sys/arch/hppa64/conf/RAMDISK
===================================================================
RCS file: /cvs/src/sys/arch/hppa64/conf/RAMDISK,v
retrieving revision 1.10
diff -u -p -r1.10 RAMDISK
--- sys/arch/hppa64/conf/RAMDISK 3 Jul 2010 03:59:16 -0000 1.10
+++ sys/arch/hppa64/conf/RAMDISK 25 Nov 2010 16:03:45 -0000
@@ -106,7 +106,6 @@ pcmcia* at cardslot?
 #url* at uhub? # Realtek RTL8150L based adapters
 #wi* at uhub? # WaveLAN IEEE 802.11DS
 #urio* at uhub? # Diamond Multimedia Rio 500
-#uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 #udsbr* at uhub? # D-Link DSB-R100 radio
 #radio* at udsbr? # USB radio
Index: sys/arch/hppa64/hppa64/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/hppa64/hppa64/conf.c,v
retrieving revision 1.17
diff -u -p -r1.17 conf.c
--- sys/arch/hppa64/hppa64/conf.c 19 Nov 2010 20:55:48 -0000 1.17
+++ sys/arch/hppa64/hppa64/conf.c 25 Nov 2010 16:03:45 -0000
@@ -123,7 +123,6 @@ cdev_decl(pci);
 #include "ulpt.h"
 #include "urio.h"
 #include "ucom.h"
-#include "uscanner.h"

 #include "bthub.h"

@@ -185,7 +184,7 @@ struct cdevsw   cdevsw[] =
  cdev_ulpt_init(NULPT,ulpt), /* 43: USB printers */
  cdev_urio_init(NURIO,urio), /* 44: USB Diamond Rio 500 */
  cdev_tty_init(NUCOM,ucom), /* 45: USB tty */
- cdev_usbdev_init(NUSCANNER,uscanner), /* 46: USB scanners */
+ cdev_notdef(), /* 46: */
  cdev_hotplug_init(NHOTPLUG,hotplug), /* 47: devices hot plugging */
  cdev_lkm_dummy(), /* 48: */
  cdev_lkm_dummy(), /* 49: */
Index: sys/arch/i386/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/i386/conf/GENERIC,v
retrieving revision 1.701
diff -u -p -r1.701 GENERIC
--- sys/arch/i386/conf/GENERIC 5 Nov 2010 16:58:12 -0000 1.701
+++ sys/arch/i386/conf/GENERIC 25 Nov 2010 16:03:45 -0000
@@ -282,7 +282,6 @@ mos* at uhub? # MOSCHIP MCS7730/7830 10
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 udsbr* at uhub? # D-Link DSB-R100 radio
 radio* at udsbr? # USB radio
Index: sys/arch/i386/conf/RAMDISK_CD
===================================================================
RCS file: /cvs/src/sys/arch/i386/conf/RAMDISK_CD,v
retrieving revision 1.181
diff -u -p -r1.181 RAMDISK_CD
--- sys/arch/i386/conf/RAMDISK_CD 19 Oct 2010 20:23:53 -0000 1.181
+++ sys/arch/i386/conf/RAMDISK_CD 25 Nov 2010 16:03:45 -0000
@@ -139,7 +139,6 @@ udav* at uhub? # Davicom DM9601 based E
 mos* at uhub? # MOSCHIP MCS7730/7830 10/100 Ethernet
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
-#uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 #ugen* at uhub? # USB Generic driver
 ural* at uhub? # Ralink RT2500
Index: sys/arch/i386/i386/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/i386/i386/conf.c,v
retrieving revision 1.135
diff -u -p -r1.135 conf.c
--- sys/arch/i386/i386/conf.c 22 Sep 2010 13:03:47 -0000 1.135
+++ sys/arch/i386/i386/conf.c 25 Nov 2010 16:03:46 -0000
@@ -166,7 +166,6 @@ cdev_decl(nnpfs_dev);
 #include "ulpt.h"
 #include "urio.h"
 #include "ucom.h"
-#include "uscanner.h"
 #include "cz.h"
 cdev_decl(cztty);
 #include "radio.h"
@@ -294,7 +293,7 @@ struct cdevsw cdevsw[] =
  cdev_notdef(), /* 74: ALTQ (deprecated) */
  cdev_iop_init(NIOP,iop), /* 75: I2O IOP control interface */
  cdev_radio_init(NRADIO, radio), /* 76: generic radio I/O */
- cdev_usbdev_init(NUSCANNER,uscanner), /* 77: USB scanners */
+ cdev_notdef(), /* 77 */
  cdev_systrace_init(NSYSTRACE,systrace), /* 78: system call tracing */
  cdev_bio_init(NBIO,bio), /* 79: ioctl tunnel */
  cdev_ch_init(NGPR,gpr), /* 80: GPR400 SmartCard reader */
Index: sys/arch/landisk/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/landisk/conf/GENERIC,v
retrieving revision 1.29
diff -u -p -r1.29 GENERIC
--- sys/arch/landisk/conf/GENERIC 19 Nov 2010 20:52:41 -0000 1.29
+++ sys/arch/landisk/conf/GENERIC 25 Nov 2010 16:03:46 -0000
@@ -142,7 +142,6 @@ udav* at uhub? # Davicom DM9601 based E
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 urio* at uhub? # Diamond Multimedia Rio 500
-#uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 udsbr* at uhub? # D-Link DSB-R100 radio
 radio* at udsbr? # USB radio
Index: sys/arch/landisk/landisk/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/landisk/landisk/conf.c,v
retrieving revision 1.18
diff -u -p -r1.18 conf.c
--- sys/arch/landisk/landisk/conf.c 19 Nov 2010 20:55:48 -0000 1.18
+++ sys/arch/landisk/landisk/conf.c 25 Nov 2010 16:03:46 -0000
@@ -120,7 +120,6 @@ cdev_decl(pci);
 #include "uhid.h"
 #include "ulpt.h"
 #include "urio.h"
-#include "uscanner.h"

 /*
  * Bluetooth devices
@@ -337,7 +336,7 @@ struct cdevsw cdevsw[] = {
  cdev_lpt_init(NULPT,ulpt), /* 66: USB printer */
  cdev_urio_init(NURIO,urio), /* 67: Diamond Rio 500 */
  cdev_tty_init(NUCOM,ucom), /* 68: USB tty */
- cdev_usbdev_init(NUSCANNER,uscanner), /* 69: USB scanner */
+ cdev_notdef(), /* 69: */
  cdev_usbdev_init(NUGEN,ugen), /* 70: USB generic driver */
  cdev_disk_init(NRAID,raid),     /* 71: RAIDframe disk driver */
  cdev_lkm_dummy(), /* 72: reserved */
Index: sys/arch/loongson/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/loongson/conf/GENERIC,v
retrieving revision 1.28
diff -u -p -r1.28 GENERIC
--- sys/arch/loongson/conf/GENERIC 19 Nov 2010 20:53:44 -0000 1.28
+++ sys/arch/loongson/conf/GENERIC 25 Nov 2010 16:03:46 -0000
@@ -126,7 +126,6 @@ atapiscsi* at umass?
 scsibus* at atapiscsi?
 scsibus* at umass?
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 uhidev* at uhub? # Human Interface Devices
 ums* at uhidev? # USB mouse
 wsmouse* at ums? mux 0
Index: sys/arch/loongson/loongson/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/loongson/loongson/conf.c,v
retrieving revision 1.11
diff -u -p -r1.11 conf.c
--- sys/arch/loongson/loongson/conf.c 22 Nov 2010 21:10:45 -0000 1.11
+++ sys/arch/loongson/loongson/conf.c 25 Nov 2010 16:03:46 -0000
@@ -130,7 +130,6 @@ cdev_decl(pci);
 #include "ulpt.h"
 #include "urio.h"
 #include "ucom.h"
-#include "uscanner.h"

 #include "bthub.h"
 #include "vscsi.h"
@@ -218,7 +217,7 @@ struct cdevsw cdevsw[] =
  cdev_vscsi_init(NVSCSI,vscsi), /* 69: vscsi */
  cdev_disk_init(1,diskmap), /* 70: disk mapper */
  cdev_pppx_init(NPPPX,pppx), /* 71: pppx */
- cdev_usbdev_init(NUSCANNER,uscanner), /* 72: USB scanners */
+ cdev_notdef, /* 72: */
 };

 int nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]);
Index: sys/arch/macppc/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/macppc/conf/GENERIC,v
retrieving revision 1.202
diff -u -p -r1.202 GENERIC
--- sys/arch/macppc/conf/GENERIC 15 Nov 2010 19:07:34 -0000 1.202
+++ sys/arch/macppc/conf/GENERIC 25 Nov 2010 16:03:46 -0000
@@ -283,7 +283,6 @@ mos* at uhub? # MOSCHIP MCS7730/7830 10
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 udsbr* at uhub? # D-Link DSB-R100 radio
 radio* at udsbr? # USB radio
Index: sys/arch/macppc/conf/RAMDISK
===================================================================
RCS file: /cvs/src/sys/arch/macppc/conf/RAMDISK,v
retrieving revision 1.90
diff -u -p -r1.90 RAMDISK
--- sys/arch/macppc/conf/RAMDISK 3 Jul 2010 03:59:16 -0000 1.90
+++ sys/arch/macppc/conf/RAMDISK 25 Nov 2010 16:03:46 -0000
@@ -198,7 +198,6 @@ rum* at uhub? # Ralink RT2501USB/RT260
 zyd* at uhub? # Zydas ZD1211
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
-#uscanner* at uhub? # USB Scanner driver
 #uyap* at uhub? # Y@P firmware loader
 #ugen* at uhub? # USB Generic driver
 umass* at uhub? # USB Mass Storage devices
Index: sys/arch/macppc/macppc/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/macppc/macppc/conf.c,v
retrieving revision 1.43
diff -u -p -r1.43 conf.c
--- sys/arch/macppc/macppc/conf.c 23 Sep 2010 05:02:14 -0000 1.43
+++ sys/arch/macppc/macppc/conf.c 25 Nov 2010 16:03:46 -0000
@@ -115,7 +115,6 @@ cdev_decl(nnpfs_dev);
 #include "ulpt.h"
 #include "urio.h"
 #include "ucom.h"
-#include "uscanner.h"

 #include "inet.h"

@@ -231,7 +230,7 @@ struct cdevsw cdevsw[] = {
 #endif
  cdev_notdef(), /* 72: ALTQ (deprecated) */
  cdev_iop_init(NIOP,iop), /* 73: I2O IOP control interface */
- cdev_usbdev_init(NUSCANNER,uscanner), /* 74: usb scanner */
+ cdev_notdef(), /* 74 */
  cdev_bktr_init(NBKTR,bktr), /* 75: Bt848 video capture device */
  cdev_radio_init(NRADIO, radio), /* 76: generic radio I/O */
  cdev_ptm_init(NPTY,ptm), /* 77: pseudo-tty ptm device */
Index: sys/arch/octeon/octeon/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/octeon/octeon/conf.c,v
retrieving revision 1.5
diff -u -p -r1.5 conf.c
--- sys/arch/octeon/octeon/conf.c 22 Nov 2010 21:10:45 -0000 1.5
+++ sys/arch/octeon/octeon/conf.c 25 Nov 2010 16:03:46 -0000
@@ -137,7 +137,6 @@ cdev_decl(pci);
 #include "ulpt.h"
 #include "urio.h"
 #include "ucom.h"
-#include "uscanner.h"

 #include "bthub.h"
 #include "vscsi.h"
@@ -229,7 +228,7 @@ struct cdevsw cdevsw[] =
  cdev_vscsi_init(NVSCSI,vscsi), /* 69: vscsi */
  cdev_disk_init(1,diskmap), /* 70: disk mapper */
  cdev_pppx_init(NPPPX,pppx), /* 71: pppx */
- cdev_usbdev_init(NUSCANNER,uscanner), /* 72: USB scanners */
+ cdev_notdef(), /* 72: */
 };

 int nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]);
Index: sys/arch/palm/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/palm/conf/GENERIC,v
retrieving revision 1.8
diff -u -p -r1.8 GENERIC
--- sys/arch/palm/conf/GENERIC 23 Sep 2010 16:21:46 -0000 1.8
+++ sys/arch/palm/conf/GENERIC 25 Nov 2010 16:03:46 -0000
@@ -114,7 +114,6 @@ zyd* at uhub? # Zydas ZD1211
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 udsbr* at uhub? # D-Link DSB-R100 radio
 radio* at udsbr? # USB radio
Index: sys/arch/palm/conf/RAMDISK
===================================================================
RCS file: /cvs/src/sys/arch/palm/conf/RAMDISK,v
retrieving revision 1.7
diff -u -p -r1.7 RAMDISK
--- sys/arch/palm/conf/RAMDISK 3 Jul 2010 03:59:17 -0000 1.7
+++ sys/arch/palm/conf/RAMDISK 25 Nov 2010 16:03:47 -0000
@@ -79,7 +79,6 @@ ural* at uhub? # Ralink RT2500
 #url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 upl* at uhub? # Prolific PL2301/PL2302 host-to-host
-#uscanner* at uhub? # USB Scanner driver
 #uyap* at uhub? # Y@P firmware loader
 ugen* at uhub? # USB Generic driver
 umass* at uhub? # USB Mass Storage devices
Index: sys/arch/sgi/conf/GENERIC-IP30
===================================================================
RCS file: /cvs/src/sys/arch/sgi/conf/GENERIC-IP30,v
retrieving revision 1.32
diff -u -p -r1.32 GENERIC-IP30
--- sys/arch/sgi/conf/GENERIC-IP30 19 Nov 2010 20:54:12 -0000 1.32
+++ sys/arch/sgi/conf/GENERIC-IP30 25 Nov 2010 16:03:47 -0000
@@ -107,7 +107,6 @@ atapiscsi* at umass?
 scsibus* at atapiscsi?
 scsibus* at umass?
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 uhidev* at uhub? # Human Interface Devices
 ums* at uhidev? # USB mouse
 wsmouse* at ums? mux 0
Index: sys/arch/sgi/conf/GENERIC-IP27
===================================================================
RCS file: /cvs/src/sys/arch/sgi/conf/GENERIC-IP27,v
retrieving revision 1.38
diff -u -p -r1.38 GENERIC-IP27
--- sys/arch/sgi/conf/GENERIC-IP27 19 Nov 2010 20:54:12 -0000 1.38
+++ sys/arch/sgi/conf/GENERIC-IP27 25 Nov 2010 16:03:47 -0000
@@ -115,7 +115,6 @@ atapiscsi* at umass?
 scsibus* at atapiscsi?
 scsibus* at umass?
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 uhidev* at uhub? # Human Interface Devices
 ums* at uhidev? # USB mouse
 wsmouse* at ums? mux 0
Index: sys/arch/sgi/conf/GENERIC-IP32
===================================================================
RCS file: /cvs/src/sys/arch/sgi/conf/GENERIC-IP32,v
retrieving revision 1.23
diff -u -p -r1.23 GENERIC-IP32
--- sys/arch/sgi/conf/GENERIC-IP32 19 Nov 2010 20:54:12 -0000 1.23
+++ sys/arch/sgi/conf/GENERIC-IP32 25 Nov 2010 16:03:47 -0000
@@ -99,7 +99,6 @@ atapiscsi* at umass?
 scsibus* at atapiscsi?
 scsibus* at umass?
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 uhidev* at uhub? # Human Interface Devices
 ums* at uhidev? # USB mouse
 wsmouse* at ums? mux 0
Index: sys/arch/sgi/sgi/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/sgi/sgi/conf.c,v
retrieving revision 1.27
diff -u -p -r1.27 conf.c
--- sys/arch/sgi/sgi/conf.c 22 Nov 2010 21:10:45 -0000 1.27
+++ sys/arch/sgi/sgi/conf.c 25 Nov 2010 16:03:47 -0000
@@ -129,7 +129,6 @@ cdev_decl(pci);
 #include "ulpt.h"
 #include "urio.h"
 #include "ucom.h"
-#include "uscanner.h"

 #include "vscsi.h"
 #include "pppx.h"
@@ -216,7 +215,7 @@ struct cdevsw cdevsw[] =
  cdev_disk_init(1,diskmap), /* 69: disk mapper */
  cdev_pppx_init(NPPPX,pppx), /* 70: pppx */
  cdev_notdef(), /* 71: */
- cdev_usbdev_init(NUSCANNER,uscanner), /* 72: USB scanners */
+ cdev_notdef(), /* 72: */
 };

 int nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]);
Index: sys/arch/socppc/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/socppc/conf/GENERIC,v
retrieving revision 1.17
diff -u -p -r1.17 GENERIC
--- sys/arch/socppc/conf/GENERIC 19 Nov 2010 20:54:52 -0000 1.17
+++ sys/arch/socppc/conf/GENERIC 25 Nov 2010 16:03:47 -0000
@@ -79,7 +79,6 @@ run* at uhub? # Ralink RT2700U/RT2800U/
 urtwn* at uhub? # Realtek RTL8188CU/RTL8192CU
 zyd* at uhub? # Zydas ZD1211
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 ugen* at uhub? # USB Generic driver
 uthum* at uhidev? # TEMPerHUM sensor
 utwitch* at uhidev? # YUREX BBU sensor
Index: sys/arch/socppc/socppc/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/socppc/socppc/conf.c,v
retrieving revision 1.12
diff -u -p -r1.12 conf.c
--- sys/arch/socppc/socppc/conf.c 19 Nov 2010 20:55:48 -0000 1.12
+++ sys/arch/socppc/socppc/conf.c 25 Nov 2010 16:03:47 -0000
@@ -113,7 +113,6 @@ cdev_decl(pci);
 #include "ulpt.h"
 #include "urio.h"
 #include "ucom.h"
-#include "uscanner.h"

 #include "bthub.h"
 #include "vscsi.h"
@@ -201,7 +200,7 @@ struct cdevsw cdevsw[] = {
 #endif
  cdev_notdef(), /* 72 */
  cdev_notdef(), /* 73 */
- cdev_usbdev_init(NUSCANNER,uscanner), /* 74: usb scanner */
+ cdev_notdef(), /* 74 */
  cdev_notdef(), /* 75 */
  cdev_notdef(), /* 76 */
  cdev_ptm_init(NPTY,ptm), /* 77: pseudo-tty ptm device */
Index: sys/arch/sparc64/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/sparc64/conf/GENERIC,v
retrieving revision 1.259
diff -u -p -r1.259 GENERIC
--- sys/arch/sparc64/conf/GENERIC 6 Nov 2010 12:24:28 -0000 1.259
+++ sys/arch/sparc64/conf/GENERIC 25 Nov 2010 16:03:47 -0000
@@ -233,7 +233,6 @@ zyd* at uhub? # Zydas ZD1211
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 udsbr* at uhub? # D-Link DSB-R100 radio
 radio* at udsbr? # USB radio
Index: sys/arch/sparc64/sparc64/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/sparc64/sparc64/conf.c,v
retrieving revision 1.58
diff -u -p -r1.58 conf.c
--- sys/arch/sparc64/sparc64/conf.c 8 Oct 2010 18:21:34 -0000 1.58
+++ sys/arch/sparc64/sparc64/conf.c 25 Nov 2010 16:03:47 -0000
@@ -104,7 +104,6 @@ cdev_decl(pci);
 #include "ulpt.h"
 #include "urio.h"
 #include "ucom.h"
-#include "uscanner.h"

 #include "bthub.h"

@@ -261,7 +260,7 @@ struct cdevsw cdevsw[] =
  cdev_ulpt_init(NULPT,ulpt), /* 93: USB printers */
  cdev_urio_init(NURIO,urio), /* 94: USB Diamond Rio 500 */
  cdev_tty_init(NUCOM,ucom), /* 95: USB tty */
- cdev_usbdev_init(NUSCANNER,uscanner), /* 96: USB scanners */
+ cdev_notdef(), /* 96 */
  cdev_notdef(), /* 97 */
  cdev_notdef(), /* 98 */
  cdev_notdef(), /* 99 */
Index: sys/arch/zaurus/conf/GENERIC
===================================================================
RCS file: /cvs/src/sys/arch/zaurus/conf/GENERIC,v
retrieving revision 1.80
diff -u -p -r1.80 GENERIC
--- sys/arch/zaurus/conf/GENERIC 24 Sep 2010 18:26:49 -0000 1.80
+++ sys/arch/zaurus/conf/GENERIC 25 Nov 2010 16:03:47 -0000
@@ -127,7 +127,6 @@ zyd* at uhub? # Zydas ZD1211
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 urio* at uhub? # Diamond Multimedia Rio 500
-uscanner* at uhub? # USB Scanners
 #uyap* at uhub? # Y@P firmware loader
 udsbr* at uhub? # D-Link DSB-R100 radio
 radio* at udsbr? # USB radio
Index: sys/arch/zaurus/conf/RAMDISK
===================================================================
RCS file: /cvs/src/sys/arch/zaurus/conf/RAMDISK,v
retrieving revision 1.41
diff -u -p -r1.41 RAMDISK
--- sys/arch/zaurus/conf/RAMDISK 3 Jul 2010 03:59:17 -0000 1.41
+++ sys/arch/zaurus/conf/RAMDISK 25 Nov 2010 16:03:47 -0000
@@ -89,7 +89,6 @@ ural* at uhub? # Ralink RT2500
 url* at uhub? # Realtek RTL8150L based adapters
 wi* at uhub? # WaveLAN IEEE 802.11DS
 upl* at uhub? # Prolific PL2301/PL2302 host-to-host
-#uscanner* at uhub? # USB Scanner driver
 #uyap* at uhub? # Y@P firmware loader
 #ugen* at uhub? # USB Generic driver
 umass* at uhub? # USB Mass Storage devices
Index: share/man/man4/uscanner.4
===================================================================
RCS file: share/man/man4/uscanner.4
diff -N share/man/man4/uscanner.4
--- share/man/man4/uscanner.4 26 Jun 2008 05:42:07 -0000 1.12
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,132 +0,0 @@
-.\" $OpenBSD: uscanner.4,v 1.12 2008/06/26 05:42:07 ray Exp $
-.\" $NetBSD: uscanner.4,v 1.4 2000/10/13 21:05:18 augustss Exp $
-.\"
-.\" Copyright (c) 2000 The NetBSD Foundation, Inc.
-.\" All rights reserved.
-.\"
-.\" This code is derived from software contributed to The NetBSD Foundation
-.\" by Lennart Augustsson.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\"    notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\"    notice, this list of conditions and the following disclaimer in the
-.\"    documentation and/or other materials provided with the distribution.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
-.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
-.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-.\" POSSIBILITY OF SUCH DAMAGE.
-.\"
-.Dd $Mdocdate: June 26 2008 $
-.Dt USCANNER 4
-.Os
-.Sh NAME
-.Nm uscanner
-.Nd USB scanner support
-.Sh SYNOPSIS
-.Cd "uscanner* at uhub?"
-.Sh DESCRIPTION
-The
-.Nm
-driver provides minimal support for USB scanners.
-The driver recognizes a number of USB scanners, but to
-actually scan anything there needs to be software that knows
-about the particular scanner.
-The SANE package provides support for some scanners.
-.Pp
-For multifunction USB devices
-such as scanner/printer/card readers,
-this driver only attaches to the USB interface that controls the scanner.
-For the other USB interfaces
-separate drivers are needed,
-such as
-.Xr ulpt 4
-and
-.Xr umass 4 .
-.Sh HARDWARE
-The
-.Nm
-driver works with the following scanners:
-.Pp
-.Bl -bullet -compact -offset indent
-.It
-Acer: Acerscan 320U, 620U, 640U, C310U
-.It
-Agfa: SnapScan 1212U, 1236U, e20, e25, e26, e40, e50, e52, Touch
-.It
-Avision: 1200U
-.It
-Canon: CanoScan N656U, N670U, N1220U, N1240U
-.It
-Epson: GT-7000, GT-9700F
-.It
-Epson: Perfection 610U, 636U, 640U, 12xxU, 12xxU Photo, 16xxU,
-16xxU Photo, 1650, 2400
-.It
-Epson: Stylus DX38xx DX40xx DX50xx DX60xx (multifunction)
-.It
-HP: Photosmart S20
-.It
-HP: ScanJet 2200C, 3300C, 3400cse, 4100C, 4200C, 4300C, 5200C, 5300C,
-6200C, 6300C
-.It
-Kye: ColorPage Vivid-Pro
-.It
-Microtek: ScanMaker X6USB
-.It
-Mustek: 600, 600 CU, 1200, 1200 CU, 1200 UB, 1200 Plus, 1200 CU Plus,
-BearPaw 1200F
-.It
-National: BearPaw 1200, 2400
-.It
-Primax: Colorado 600u, 9600, 19200, 1200u
-.It
-Primax: G2-200, G2-300, G2-600, G2E-300, G2E-600
-.It
-Primax: ReadyScan 636i
-.It
-Primax: Visioneer 6200
-.It
-Ultima: 1200 UB Plus
-.It
-Umax: Astra 1220U, 1236U, 2000U, 2200U, 3400
-.It
-Visioneer: OneTouch 5300, 6100, 6200, 7600, 8100, 8600, 3000
-.El
-.Pp
-Many other scanners are recognized, but there is no software support
-for them yet.
-.Sh SEE ALSO
-.Xr intro 4 ,
-.Xr uhub 4 ,
-.Xr usb 4
-.Pp
-.Pa http://www.buzzard.org.uk/jonathan/scanners-usb.html
-.Sh HISTORY
-The
-.Nm
-driver appeared in
-.Nx 1.6 .
-.Ox
-support was first added in
-.Ox 2.9 .
-.Sh BUGS
-This driver should not really exist.
-The scanners it recognizes can be accessed through the
-.Xr ugen 4
-driver instead.
-A proper scanner driver would provide a uniform interface to scanners
-instead of exposing the innards of the scanner.
-The reason the driver exists is to have something that is compatible
-with the Linux driver.
Index: etc/MAKEDEV.common
===================================================================
RCS file: /cvs/src/etc/MAKEDEV.common,v
retrieving revision 1.53
diff -u -p -r1.53 MAKEDEV.common
--- etc/MAKEDEV.common 30 Sep 2010 15:27:54 -0000 1.53
+++ etc/MAKEDEV.common 25 Nov 2010 16:03:47 -0000
@@ -190,7 +190,6 @@ __devitem(ramdisk, ramdisk, Ramdisk kern
 dnl
 target(usb, usb, 0, 1, 2, 3, 4, 5, 6, 7)dnl
 target(usb, urio, 0)dnl
-twrget(usb, uscan, uscanner, 0)dnl
 target(usb, uhid, 0, 1, 2, 3)dnl
 target(usb, ulpt, 0, 1)dnl
 target(usb, ugen, 0, 1)dnl
@@ -408,8 +407,6 @@ _mkdev({-ttyU-}, {-ttyU[0-9a-zA-Z]-}, {-
  M cuaU$U c major_ttyU_c Add($o, 128) 660 dialer uucp-})dnl
 __devitem(urio, urio*, Diamond Multimedia Rio 500)dnl
 _mcdev({-urio-}, urio*, {-urio-}, {-major_urio_c-}, 660)dnl
-__devitem(uscan, uscanner*, Scanners,uscanner)dnl
-_mcdev({-uscan-}, uscanner*, {-uscanner-}, {-major_uscan_c-}, 660)dnl
 __devitem(ugen, ugen*, Generic USB devices)dnl
 _mkdev(ugen, ugen*, {-n=Mult($U, 16)
  for j in 0{0,1,2,3,4,5,6,7,8,9} 1{0,1,2,3,4,5}
Index: etc/etc.alpha/MAKEDEV
===================================================================
RCS file: /cvs/src/etc/etc.alpha/MAKEDEV,v
retrieving revision 1.165
diff -u -p -r1.165 MAKEDEV
--- etc/etc.alpha/MAKEDEV 19 Nov 2010 20:56:06 -0000 1.165
+++ etc/etc.alpha/MAKEDEV 25 Nov 2010 16:03:47 -0000
@@ -67,7 +67,6 @@
 # ulpt* Printer devices
 # urio* Diamond Multimedia Rio 500
 # usb* Bus control devices used by usbd for attach/detach
-# uscanner* Scanners
 # Special purpose devices:
 # audio* Audio devices
 # bio ioctl tunnel pseudo-device
@@ -374,10 +373,6 @@ audio*)
  MKlist[${#MKlist[*]}]=";[ -e audioctl ] || ln -s audioctl$U audioctl"
  ;;

-uscanner*)
- M uscanner$U c 66 $U 660
- ;;
-
 usb*)
  [ "$i" = "usb" ] && u= || u=$U
  M usb$u c 45 $U 660
@@ -405,8 +400,7 @@ ugen*)

 uall)
  R ttyU0 ttyU1 ttyU2 ttyU3 ugen0 ugen1 ulpt0 ulpt1 uhid0 uhid1
- R uhid2 uhid3 uscanner0 urio0 usb0 usb1 usb2 usb3 usb4 usb5
- R usb6 usb7
+ R uhid2 uhid3 urio0 usb0 usb1 usb2 usb3 usb4 usb5 usb6 usb7
  ;;

 ttyU[0-9a-zA-Z])
Index: etc/etc.amd64/MAKEDEV
===================================================================
RCS file: /cvs/src/etc/etc.amd64/MAKEDEV,v
retrieving revision 1.72
diff -u -p -r1.72 MAKEDEV
--- etc/etc.amd64/MAKEDEV 30 Sep 2010 15:29:22 -0000 1.72
+++ etc/etc.amd64/MAKEDEV 25 Nov 2010 16:03:47 -0000
@@ -66,7 +66,6 @@
 # ulpt* Printer devices
 # urio* Diamond Multimedia Rio 500
 # usb* Bus control devices used by usbd for attach/detach
-# uscanner* Scanners
 # Special purpose devices:
 # agp* AGP bridge
 # apm Power Management Interface
@@ -405,10 +404,6 @@ agp*)
  MKlist[${#MKlist[*]}]=";[ -e agpgart ] || ln -s agp$U agpgart"
  ;;

-uscanner*)
- M uscanner$U c 77 $U 660
- ;;
-
 usb*)
  [ "$i" = "usb" ] && u= || u=$U
  M usb$u c 61 $U 660
@@ -436,8 +431,7 @@ ugen*)

 uall)
  R ttyU0 ttyU1 ttyU2 ttyU3 ugen0 ugen1 ulpt0 ulpt1 uhid0 uhid1
- R uhid2 uhid3 uscanner0 urio0 usb0 usb1 usb2 usb3 usb4 usb5
- R usb6 usb7
+ R uhid2 uhid3 urio0 usb0 usb1 usb2 usb3 usb4 usb5 usb6 usb7
  ;;

 ttyU[0-9a-zA-Z])
Index: etc/etc.armish/MAKEDEV
===================================================================
RCS file: /cvs/src/etc/etc.armish/MAKEDEV,v
retrieving revision 1.34
diff -u -p -r1.34 MAKEDEV
--- etc/etc.armish/MAKEDEV 30 Sep 2010 15:29:22 -0000 1.34
+++ etc/etc.armish/MAKEDEV 25 Nov 2010 16:03:48 -0000
@@ -60,7 +60,6 @@
 # ulpt* Printer devices
 # urio* Diamond Multimedia Rio 500
 # usb* Bus control devices used by usbd for attach/detach
-# uscanner* Scanners
 # Special purpose devices:
 # apm Power management device
 # audio* Audio devices
@@ -357,10 +356,6 @@ apm*)
  M apmctl c 34 8 644
  ;;

-uscanner*)
- M uscanner$U c 69 $U 660
- ;;
-
 usb*)
  [ "$i" = "usb" ] && u= || u=$U
  M usb$u c 64 $U 660
@@ -388,8 +383,7 @@ ugen*)

 uall)
  R ttyU0 ttyU1 ttyU2 ttyU3 ugen0 ugen1 ulpt0 ulpt1 uhid0 uhid1
- R uhid2 uhid3 uscanner0 urio0 usb0 usb1 usb2 usb3 usb4 usb5
- R usb6 usb7
+ R uhid2 uhid3 urio0 usb0 usb1 usb2 usb3 usb4 usb5 usb6 usb7
  ;;

 ttyU[0-9a-zA-Z])
Index: etc/etc.hppa/MAKEDEV
===================================================================
RCS file: /cvs/src/etc/etc.hppa/MAKEDEV,v
retrieving revision 1.106
diff -u -p -r1.106 MAKEDEV
--- etc/etc.hppa/MAKEDEV 30 Sep 2010 15:29:22 -0000 1.106
+++ etc/etc.hppa/MAKEDEV 25 Nov 2010 16:03:48 -0000
@@ -63,7 +63,6 @@
 # ulpt* Printer devices
 # urio* Diamond Multimedia Rio 500
 # ttyU* USB serial ports
-# uscanner* Scanners
 # Special purpose devices:
 # audio* Audio devices
 # bio ioctl tunnel pseudo-device
@@ -322,10 +321,6 @@ audio*)
  MKlist[${#MKlist[*]}]=";[ -e audioctl ] || ln -s audioctl$U audioctl"
  ;;

-uscanner*)
- M uscanner$U c 46 $U 660
- ;;
-
 ttyU[0-9a-zA-Z])
  U=${i#ttyU*}
  o=$(alph2d $U)
@@ -360,8 +355,7 @@ usb*)

 uall)
  R ttyU0 ttyU1 ttyU2 ttyU3 ugen0 ugen1 ulpt0 ulpt1 uhid0 uhid1
- R uhid2 uhid3 uscanner0 urio0 usb0 usb1 usb2 usb3 usb4 usb5
- R usb6 usb7
+ R uhid2 uhid3 urio0 usb0 usb1 usb2 usb3 usb4 usb5 usb6 usb7
  ;;

 lpt*|lpa*)
Index: etc/etc.hppa64/MAKEDEV
===================================================================
RCS file: /cvs/src/etc/etc.hppa64/MAKEDEV,v
retrieving revision 1.40
diff -u -p -r1.40 MAKEDEV
--- etc/etc.hppa64/MAKEDEV 19 Nov 2010 20:56:06 -0000 1.40
+++ etc/etc.hppa64/MAKEDEV 25 Nov 2010 16:03:48 -0000
@@ -63,7 +63,6 @@
 # ulpt* Printer devices
 # urio* Diamond Multimedia Rio 500
 # ttyU* USB serial ports
-# uscanner* Scanners
 # Special purpose devices:
 # audio* Audio devices
 # bio ioctl tunnel pseudo-device
@@ -312,10 +311,6 @@ audio*)
  MKlist[${#MKlist[*]}]=";[ -e audioctl ] || ln -s audioctl$U audioctl"
  ;;

-uscanner*)
- M uscanner$U c 46 $U 660
- ;;
-
 ttyU[0-9a-zA-Z])
  U=${i#ttyU*}
  o=$(alph2d $U)
@@ -350,8 +345,7 @@ usb*)

 uall)
  R ttyU0 ttyU1 ttyU2 ttyU3 ugen0 ugen1 ulpt0 ulpt1 uhid0 uhid1
- R uhid2 uhid3 uscanner0 urio0 usb0 usb1 usb2 usb3 usb4 usb5
- R usb6 usb7
+ R uhid2 uhid3 urio0 usb0 usb1 usb2 usb3 usb4 usb5 usb6 usb7
  ;;

 lpt*|lpa*)
Index: etc/etc.i386/MAKEDEV
===================================================================
RCS file: /cvs/src/etc/etc.i386/MAKEDEV,v
retrieving revision 1.213
diff -u -p -r1.213 MAKEDEV
--- etc/etc.i386/MAKEDEV 30 Sep 2010 15:29:22 -0000 1.213
+++ etc/etc.i386/MAKEDEV 25 Nov 2010 16:03:48 -0000
@@ -67,7 +67,6 @@
 # ulpt* Printer devices
 # urio* Diamond Multimedia Rio 500
 # usb* Bus control devices used by usbd for attach/detach
-# uscanner* Scanners
 # Special purpose devices:
 # agp* AGP bridge
 # amdmsr AMD MSR access device
@@ -416,10 +415,6 @@ agp*)
  MKlist[${#MKlist[*]}]=";[ -e agpgart ] || ln -s agp$U agpgart"
  ;;

-uscanner*)
- M uscanner$U c 77 $U 660
- ;;
-
 usb*)
  [ "$i" = "usb" ] && u= || u=$U
  M usb$u c 61 $U 660
@@ -447,8 +442,7 @@ ugen*)

 uall)
  R ttyU0 ttyU1 ttyU2 ttyU3 ugen0 ugen1 ulpt0 ulpt1 uhid0 uhid1
- R uhid2 uhid3 uscanner0 urio0 usb0 usb1 usb2 usb3 usb4 usb5
- R usb6 usb7
+ R uhid2 uhid3 urio0 usb0 usb1 usb2 usb3 usb4 usb5 usb6 usb7
  ;;

 ttyU[0-9a-zA-Z])
Index: etc/etc.landisk/MAKEDEV
===================================================================
RCS file: /cvs/src/etc/etc.landisk/MAKEDEV,v
retrieving revision 1.35
diff -u -p -r1.35 MAKEDEV
--- etc/etc.landisk/MAKEDEV 30 Sep 2010 15:29:22 -0000 1.35
+++ etc/etc.landisk/MAKEDEV 25 Nov 2010 16:03:48 -0000
@@ -60,7 +60,6 @@
 # ulpt* Printer devices
 # urio* Diamond Multimedia Rio 500
 # usb* Bus control devices used by usbd for attach/detach
-# uscanner* Scanners
 # Special purpose devices:
 # audio* Audio devices
 # bio ioctl tunnel pseudo-device
@@ -336,10 +335,6 @@ audio*)
  MKlist[${#MKlist[*]}]=";[ -e audioctl ] || ln -s audioctl$U audioctl"
  ;;

-uscanner*)
- M uscanner$U c 69 $U 660
- ;;
-
 usb*)
  [ "$i" = "usb" ] && u= || u=$U
  M usb$u c 64 $U 660
@@ -367,8 +362,7 @@ ugen*)

 uall)
  R ttyU0 ttyU1 ttyU2 ttyU3 ugen0 ugen1 ulpt0 ulpt1 uhid0 uhid1
- R uhid2 uhid3 uscanner0 urio0 usb0 usb1 usb2 usb3 usb4 usb5
- R usb6 usb7
+ R uhid2 uhid3 urio0 usb0 usb1 usb2 usb3 usb4 usb5 usb6 usb7
  ;;

 ttyU[0-9a-zA-Z])
Index: etc/etc.loongson/MAKEDEV
===================================================================
RCS file: /cvs/src/etc/etc.loongson/MAKEDEV,v
retrieving revision 1.15
diff -u -p -r1.15 MAKEDEV
--- etc/etc.loongson/MAKEDEV 19 Nov 2010 20:56:06 -0000 1.15
+++ etc/etc.loongson/MAKEDEV 25 Nov 2010 16:03:48 -0000
@@ -60,7 +60,6 @@
 # ulpt* Printer devices
 # urio* Diamond Multimedia Rio 500
 # usb* Bus control devices used by usbd for attach/detach
-# uscanner* Scanners
 # Special purpose devices:
 # apm Power management device
 # audio* Audio devices
@@ -313,10 +312,6 @@ apm*)
  M apmctl c 14 8 644
  ;;

-uscanner*)
- M uscanner$U c 72 $U 660
- ;;
-
 usb*)
  [ "$i" = "usb" ] && u= || u=$U
  M usb$u c 61 $U 660
@@ -344,8 +339,7 @@ ugen*)

 uall)
  R ttyU0 ttyU1 ttyU2 ttyU3 ugen0 ugen1 ulpt0 ulpt1 uhid0 uhid1
- R uhid2 uhid3 uscanner0 urio0 usb0 usb1 usb2 usb3 usb4 usb5
- R usb6 usb7
+ R uhid2 uhid3 urio0 usb0 usb1 usb2 usb3 usb4 usb5 usb6 usb7
  ;;

 ttyU[0-9a-zA-Z])
Index: etc/etc.macppc/MAKEDEV
===================================================================
RCS file: /cvs/src/etc/etc.macppc/MAKEDEV,v
retrieving revision 1.107
diff -u -p -r1.107 MAKEDEV
--- etc/etc.macppc/MAKEDEV 30 Sep 2010 15:29:23 -0000 1.107
+++ etc/etc.macppc/MAKEDEV 25 Nov 2010 16:03:48 -0000
@@ -63,7 +63,6 @@
 # ulpt* Printer devices
 # urio* Diamond Multimedia Rio 500
 # usb* Bus control devices used by usbd for attach/detach
-# uscanner* Scanners
 # Special purpose devices:
 # apm Power management device
 # audio* Audio devices
@@ -350,10 +349,6 @@ apm*)
  M apmctl c 25 8 644
  ;;

-uscanner*)
- M uscanner$U c 74 $U 660
- ;;
-
 usb*)
  [ "$i" = "usb" ] && u= || u=$U
  M usb$u c 61 $U 660
@@ -388,8 +383,7 @@ ttyU[0-9a-zA-Z])

 uall)
  R ttyU0 ttyU1 ttyU2 ttyU3 ugen0 ugen1 ulpt0 ulpt1 uhid0 uhid1
- R uhid2 uhid3 uscanner0 urio0 usb0 usb1 usb2 usb3 usb4 usb5
- R usb6 usb7
+ R uhid2 uhid3 urio0 usb0 usb1 usb2 usb3 usb4 usb5 usb6 usb7
  ;;

 wsmouse[0-9]*)
Index: etc/etc.palm/MAKEDEV
===================================================================
RCS file: /cvs/src/etc/etc.palm/MAKEDEV,v
retrieving revision 1.13
diff -u -p -r1.13 MAKEDEV
--- etc/etc.palm/MAKEDEV 30 Sep 2010 15:29:23 -0000 1.13
+++ etc/etc.palm/MAKEDEV 25 Nov 2010 16:03:48 -0000
@@ -60,7 +60,6 @@
 # ulpt* Printer devices
 # urio* Diamond Multimedia Rio 500
 # usb* Bus control devices used by usbd for attach/detach
-# uscanner* Scanners
 # Special purpose devices:
 # apm Power management device
 # audio* Audio devices
@@ -346,10 +345,6 @@ apm*)
  M apmctl c 34 8 644
  ;;

-uscanner*)
- M uscanner$U c 69 $U 660
- ;;
-
 usb*)
  [ "$i" = "usb" ] && u= || u=$U
  M usb$u c 64 $U 660
@@ -377,8 +372,7 @@ ugen*)

 uall)
  R ttyU0 ttyU1 ttyU2 ttyU3 ugen0 ugen1 ulpt0 ulpt1 uhid0 uhid1
- R uhid2 uhid3 uscanner0 urio0 usb0 usb1 usb2 usb3 usb4 usb5
- R usb6 usb7
+ R uhid2 uhid3 urio0 usb0 usb1 usb2 usb3 usb4 usb5 usb6 usb7
  ;;

 ttyU[0-9a-zA-Z])
Index: etc/etc.sgi/MAKEDEV
===================================================================
RCS file: /cvs/src/etc/etc.sgi/MAKEDEV,v
retrieving revision 1.58
diff -u -p -r1.58 MAKEDEV
--- etc/etc.sgi/MAKEDEV 19 Nov 2010 20:56:07 -0000 1.58
+++ etc/etc.sgi/MAKEDEV 25 Nov 2010 16:03:48 -0000
@@ -60,7 +60,6 @@
 # ulpt* Printer devices
 # urio* Diamond Multimedia Rio 500
 # usb* Bus control devices used by usbd for attach/detach
-# uscanner* Scanners
 # Special purpose devices:
 # audio* Audio devices
 # bio ioctl tunnel pseudo-device
@@ -302,10 +301,6 @@ audio*)
  MKlist[${#MKlist[*]}]=";[ -e audioctl ] || ln -s audioctl$U audioctl"
  ;;

-uscanner*)
- M uscanner$U c 72 $U 660
- ;;
-
 usb*)
  [ "$i" = "usb" ] && u= || u=$U
  M usb$u c 61 $U 660
@@ -333,8 +328,7 @@ ugen*)

 uall)
  R ttyU0 ttyU1 ttyU2 ttyU3 ugen0 ugen1 ulpt0 ulpt1 uhid0 uhid1
- R uhid2 uhid3 uscanner0 urio0 usb0 usb1 usb2 usb3 usb4 usb5
- R usb6 usb7
+ R uhid2 uhid3 urio0 usb0 usb1 usb2 usb3 usb4 usb5 usb6 usb7
  ;;

 ttyU[0-9a-zA-Z])
Index: etc/etc.socppc/MAKEDEV
===================================================================
RCS file: /cvs/src/etc/etc.socppc/MAKEDEV,v
retrieving revision 1.23
diff -u -p -r1.23 MAKEDEV
--- etc/etc.socppc/MAKEDEV 19 Nov 2010 20:56:07 -0000 1.23
+++ etc/etc.socppc/MAKEDEV 25 Nov 2010 16:03:49 -0000
@@ -61,7 +61,6 @@
 # ulpt* Printer devices
 # urio* Diamond Multimedia Rio 500
 # usb* Bus control devices used by usbd for attach/detach
-# uscanner* Scanners
 # Special purpose devices:
 # bpf* Berkeley Packet Filter
 # bthub* Bluetooth Hubs
@@ -282,10 +281,6 @@ bpf*)
  M bpf$U c 22 $U 600
  ;;

-uscanner*)
- M uscanner$U c 74 $U 660
- ;;
-
 usb*)
  [ "$i" = "usb" ] && u= || u=$U
  M usb$u c 61 $U 660
@@ -320,8 +315,7 @@ ttyU[0-9a-zA-Z])

 uall)
  R ttyU0 ttyU1 ttyU2 ttyU3 ugen0 ugen1 ulpt0 ulpt1 uhid0 uhid1
- R uhid2 uhid3 uscanner0 urio0 usb0 usb1 usb2 usb3 usb4 usb5
- R usb6 usb7
+ R uhid2 uhid3 urio0 usb0 usb1 usb2 usb3 usb4 usb5 usb6 usb7
  ;;

 wsmouse[0-9]*)
Index: etc/etc.sparc64/MAKEDEV
===================================================================
RCS file: /cvs/src/etc/etc.sparc64/MAKEDEV,v
retrieving revision 1.148
diff -u -p -r1.148 MAKEDEV
--- etc/etc.sparc64/MAKEDEV 8 Oct 2010 18:22:19 -0000 1.148
+++ etc/etc.sparc64/MAKEDEV 25 Nov 2010 16:03:49 -0000
@@ -75,7 +75,6 @@
 # ulpt* Printer devices
 # urio* Diamond Multimedia Rio 500
 # usb* Bus control devices used by usbd for attach/detach
-# uscanner* Scanners
 # Special purpose devices:
 # audio* Audio devices
 # bio ioctl tunnel pseudo-device
@@ -349,10 +348,6 @@ audio*)
  MKlist[${#MKlist[*]}]=";[ -e audioctl ] || ln -s audioctl$U audioctl"
  ;;

-uscanner*)
- M uscanner$U c 96 $U 660
- ;;
-
 usb*)
  [ "$i" = "usb" ] && u= || u=$U
  M usb$u c 90 $U 660
@@ -380,8 +375,7 @@ ugen*)

 uall)
  R ttyU0 ttyU1 ttyU2 ttyU3 ugen0 ugen1 ulpt0 ulpt1 uhid0 uhid1
- R uhid2 uhid3 uscanner0 urio0 usb0 usb1 usb2 usb3 usb4 usb5
- R usb6 usb7
+ R uhid2 uhid3 urio0 usb0 usb1 usb2 usb3 usb4 usb5 usb6 usb7
  ;;

 ttyU[0-9a-zA-Z])
Index: etc/etc.zaurus/MAKEDEV
===================================================================
RCS file: /cvs/src/etc/etc.zaurus/MAKEDEV,v
retrieving revision 1.52
diff -u -p -r1.52 MAKEDEV
--- etc/etc.zaurus/MAKEDEV 30 Sep 2010 15:29:23 -0000 1.52
+++ etc/etc.zaurus/MAKEDEV 25 Nov 2010 16:03:49 -0000
@@ -60,7 +60,6 @@
 # ulpt* Printer devices
 # urio* Diamond Multimedia Rio 500
 # usb* Bus control devices used by usbd for attach/detach
-# uscanner* Scanners
 # Special purpose devices:
 # apm Power management device
 # audio* Audio devices
@@ -346,10 +345,6 @@ apm*)
  M apmctl c 34 8 644
  ;;

-uscanner*)
- M uscanner$U c 69 $U 660
- ;;
-
 usb*)
  [ "$i" = "usb" ] && u= || u=$U
  M usb$u c 64 $U 660
@@ -377,8 +372,7 @@ ugen*)

 uall)
  R ttyU0 ttyU1 ttyU2 ttyU3 ugen0 ugen1 ulpt0 ulpt1 uhid0 uhid1
- R uhid2 uhid3 uscanner0 urio0 usb0 usb1 usb2 usb3 usb4 usb5
- R usb6 usb7
+ R uhid2 uhid3 urio0 usb0 usb1 usb2 usb3 usb4 usb5 usb6 usb7
  ;;

 ttyU[0-9a-zA-Z])


--
Mattieu Baptiste
"/earth is 102% full ... please delete anyone you can."


Re: More Canon scanners (usbdevs, uscanner.c)

by miod :: Rate this Message:

| View Threaded | Show Only this Message

> On Thu, Nov 25, 2010 at 4:28 PM, Mattieu Baptiste <mattieu.b@...> wrote:
>
> > Ok, here is a proposed diff that can also be found at:
> > http://www.brimbelle.org/mattieu/stuff/uscanner.diff
> >
> > Compile tested on amd64.
>
> As noted by jasper, I forgot MAKEDEV, so here is another try...

I have opted to keep uscanner in the kernel, but disabled by default,
for now. Thus ajacoutot won't need to `config -e' his kernels, and
should there be any lossage with uscanner not attaching, users can
report this and reenable the driver without having to recompile their
kernel.

Miod