I am trying to write a PCIE driver, and am having trouble understanding where the probe function of struct pci_driver is called. In my init method for the module I do the following things:
- register the character device
- allocate memory for the device
- setup the device's cdev
- call pci_register_driver() passing in the pci_driver.
The value returned from the pci_register_driver() is 0, indicating a success. I am using printk to tell me when methods are called, and I noticed that probe is never called. When I install the module and then do a test write, the system's /var/log/messages show that the Init occurred, followed by an open, followed by a write, followed by a release. (These are all just stub code). But no where in there is the probe being called. I've seen mention that the PCI Core calls the probe, but I can't find when , where, and under what circumstances. This is my first time writing a device driver for Linux, I even read the O'Reilly book "Linux Device Drivers" but it didn't help out in this situation. Any help would be most appreciated. Thanks for taking your time to read this question.