I have done some change. Con you tell me where is the problem?
Te source code:
static void fx2000_write_bulk_callback (struct urb *urb)
{
struct usb_id75 *dev = (struct usb_id75 *)urb->context;
dbg(__FUNCTION__ " - minor %d", dev->minor);
printk("<1>Fx2000: writecallback\n");
if ((urb->status != -ENOENT) &&
(urb->status != -ECONNRESET)) {
dbg(__FUNCTION__ " - nonzero write bulk status received: %d",
urb->status);
printk("<1>Fx2000: writecallback err=%i\n",urb->status);
return;
}
printk("<1>Fx2000: writecallback no err\n");
return;
}
static void *fx2000_probe(struct usb_device *udev, unsigned int ifnum,
const struct usb_device_id *id)
{
/*
* The probe procedure is pretty standard. Device matching has already
* been performed based on the id_table structure (defined later)
*/
struct fx2000_device *scanner;
int err;
int pipe,maxp;
dbg("Fx2000: probe: vendor id 0x%x, device id 0x%x ifnum:%d",
udev->descriptor.idVendor, udev->descriptor.idProduct, ifnum);
/* We don't handle multiple configurations */
if (udev->descriptor.bNumConfigurations != 1)
return NULL;
printk("<1>fx2000: probe: vendor id 0x%x, device id 0x%x ifnum:%d\n",
udev->descriptor.idVendor, udev->descriptor.idProduct, ifnum);
/* allocate and zero a new data structure for the new device */
scanner = kmalloc(sizeof(struct fx2000_device), GFP_KERNEL);
if (!scanner) return NULL; /* failure */
memset(scanner, 0, sizeof(*scanner));
printk("<1>Fx2000: memoryOK\n");
scanner->udev=udev;
/* fill the URB data structure using the FILL_INT_URB macro */
pipe = usb_sndbulkpipe(udev,6);
maxp = usb_maxpacket(udev, pipe, usb_pipeout(pipe));
if (maxp > 64) maxp = 64;
FILL_BULK_URB(&scanner->sendUrb, udev, pipe, scanner->pipeOut, maxp,
fx2000_write_bulk_callback, scanner);
pipe = usb_rcvbulkpipe(udev,5);
FILL_BULK_URB(&scanner->receiveUrb, udev, pipe, scanner->pipeIn, maxp,
NULL, scanner);
// provo a trasferire
scanner->pipeOut[0]=0x00;
scanner->pipeOut[1]=0x00;
.....//command
scanner->pipeOut[16]=0x00;
scanner->pipeOut[17]=0x00;
err=usb_submit_urb (&scanner->sendUrb);
if (err) printk("<1>Fx2000: send pipe=%i\n",err);
/*err=usb_submit_urb (&scanner->receiveUrb);
printk(KERN_INFO "Fx2000: recv pipe=%i\n",err);*/
/* register the URB within the USB subsystem */
if (usb_submit_urb(&scanner->sendUrb))
{
kfree(scanner);
return NULL;
}
/* announce yourself */
printk("<1>Fx2000: probe successful\n");
/*
* here you might MOD_INC_USE_COUNT; if you do, you'll need to unplug
* the device or the devices before being able to unload the module
*/
/* and return the new structure */
return scanner;
}
And the /var/log/messages file:
Jan 11 12:21:03 Linux kernel: usb.c: registered new driver fx2000
Jan 11 12:21:03 Linux kernel: fx2000: probe: vendor id 0xc43, device id
0x200 ifnum:0
Jan 11 12:21:03 Linux kernel: Fx2000: memoryOK
Jan 11 12:21:03 Linux kernel: usb-uhci.c: ENXIO c0030300, flags 0, urb
c4220008, burb c4220008
Jan 11 12:21:03 Linux kernel: usb-uhci.c: interrupt, status 3, frame# 2007
Jan 11 12:21:03 Linux kernel: Fx2000: writecallback
Jan 11 12:21:03 Linux kernel: Fx2000: writecallback err=-110
Jan 11 12:21:07 Linux kernel: usb.c: deregistering driver fx2000
T.I.A.
Giorgio Alboni
----- Original Message -----
From: "Greg KH" <[EMAIL PROTECTED]>
To: "Ing. Giorgio Alboni" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Thursday, January 10, 2002 10:18 PM
Subject: Re: [linux-usb-devel] Fx2000 scanner driver
> On Thu, Jan 10, 2002 at 05:21:40PM +0100, Ing. Giorgio Alboni wrote:
> > Dear usb developers,
> >
> > i'm new in USB driver develop. I'm trying to write a driver for our
fingerprint scanner.
> > I start from dabusb driver and Linux device driver 2nd Ed demo usb
driver.
> > The system is able to find the scanner and call the fx2000_probe
function (see code below).
> > I wrote a inline command for test purpos. Whit this I receive the error:
> >
> > ENXIO c0030300, flags 0, urb c1580000, burb c1580000
> >
> > Where is the problem?
> > T.I.A.
>
> I don't see any code in the attached function that would print out that
> error message. When does the error happen, when your probe() is called?
>
> greg k-h
>
> _______________________________________________
> [EMAIL PROTECTED]
> To unsubscribe, use the last form field at:
> https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
>
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel