Hallo,
Ik ben bezig met het schrijven van een linux usb driver en zit met een probleempje waar ik niet uit kom en ook niets over kan vinden.
Ik heb alleen de relevante code hier geplaatst.
Het probleem is dat de urb wel goed gesubmit wordt want ik krijg wel in me dmesg gewoon " urb rx_urb is goed gesubmit!" maar die callback methode die na een goede submit uitgevoerd zou moeten worden door de usb core blijft achterwege. Geen fout melding helemaal niets.
Terwijl hij toch wel degelijk uitgevoerd moet worden omdat de submit wel goed gegaan is.
Hoe kan dit?
Alvast bedankt!
Ik ben bezig met het schrijven van een linux usb driver en zit met een probleempje waar ik niet uit kom en ook niets over kan vinden.
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| usb_fill_bulk_urb(dev->rx_urb, dev->udev, pipe, dev->rx_buff, sizeof(dev->rx_buff), bulk_callback, dev); if ((retval = usb_submit_urb(dev->rx_urb,GFP_KERNEL))) { warn("AES3500.c -> rx_urb submit failed: %d", retval); retval = -EIO; dev->present = 1; // dev->isopen = 1; file->private_data = NULL; return retval; }else { info("AES3500.c -> urb rx_urb is goed gesubmit! : %d",retval); } //kref_get(&dev->kref); return retval; } static void bulk_callback(struct urb *urb, struct pt_regs *regs) { info("AES3500.c -> bulk_callback"); info("AES3500.c -> nonzero read/write bulk status received: %d", urb->status); } |
Ik heb alleen de relevante code hier geplaatst.
Het probleem is dat de urb wel goed gesubmit wordt want ik krijg wel in me dmesg gewoon " urb rx_urb is goed gesubmit!" maar die callback methode die na een goede submit uitgevoerd zou moeten worden door de usb core blijft achterwege. Geen fout melding helemaal niets.
Terwijl hij toch wel degelijk uitgevoerd moet worden omdat de submit wel goed gegaan is.
Hoe kan dit?
Alvast bedankt!