Re: Driver for Microsoft USB Fingerprint Reader

Daniel Bonekeeper
2006-07-04T00:04:42Z

Ok, I'll develop this in a cleaner way. But did you get the idea ? Let
me know if you think that this is something worthy to develop so I can
work on it. There are some details that I need to study about the USB
layer to get the whole picture so I can avoid redundant stuff.

I just think that it would be cool to be able to know the capabilities
of each device connected to our system, and who's better to tell us
that than the device drivers? =]
This way we can know, for example, that a webcam can do 30fps at
640x480 and the output type of the video, independently of which
webcam (and driver) we're using...

Daniel

On 7/3/06, Greg KH <greg@kroah.com> wrote:
> On Mon, Jul 03, 2006 at 07:24:30PM -0400, Daniel Bonekeeper wrote:
> > I think that I didn't make myself clear on that... let me try to
> > explain on what I'm thinking to do. Let's take as example Dan's driver
> > at http://prdownload.berlios.de/dpfp/dpfp-driver-0.1.2.tar.bz2.
> >
> > On our usb_device_id, we specify the vendor of the device, etc. We
> > could also (I don't know if this is the best place to do that) specify
> > which kind of device is it (printer, storage, fingerprint reader, HID,
> > etc).
>
> No, why would we want to do that?
>
> > Let's suppose that we have some #define's or a enum that specify
> > the hundreds of different device types (is that possible ? :) Nothing
> > that a USB_GENERIC can't solve lol).
> >
> > enum usb_device_type {
> > USB_DEVICE_SCANNER,
> > USB_DEVICE_KEYBOARD,
> > USB_DEVICE_MOUSE,
> > USB_DEVICE_FINGERPRINT_READER,
> > USB_DEVICE_GENERIC,
> > ...
> > };
>
> No, please see the USB layer for why we don't need this.
>
> > So our usb_device_id array could also include the kind of device and a
> > pointer to our structure describing the device capabilities, something
> > like:
> >
> > static struct usb_devcap_fingerprint_reader
> > usb_devcap_fingerprint_reader_mskeyboard = {
> > .width = 100,
> > .height = 100,
> > .colors = 2,
> > .cap_encrypted_output = 0,
> > .image_type = FINGEPRINT_IMAGE_BMP,
> > }
> >
> > static struct usb_device_id dpfp_table[] = {
> > {
> > /* Microsoft Keyboard with Fingerprint reader */
> > USB_DEVICE(0x045e, 0x00bb),
> > .driver_info = DPFP_TYPE_URU4000B,
> > USB_DEVICE_FINGERPRINT_READER,
> > (usb_devcap_fingerprint_reader *)
> > usb_devcap_fingerprint_reader_mskeyboard,
> > },
> > {} /* terminating null entry */
> > };
>
> Yes, that's fine to do.
>
> I'll await a real patch before critiquing anything else :)
>
> thanks,
>
> greg k-h
>

--
What this world needs is a good five-dollar plasma weapon.