Re: PCI driver

From: Manu Abraham
Date: Wed Sep 14 2005 - 07:05:43 EST


Jiri Slaby wrote:

Manu Abraham napsal(a):

Jiri Slaby wrote:

Manu Abraham napsal(a):

Now that i have been trying to implement the driver using the new PCI API, i feel a bit lost at the different changes gone into the PCI API. So if someone could give me a brief idea how a minimal PCI probe routine should consist of, that would be quite helpful.




Maybe, you want to read http://lwn.net/Kernel/LDD3/, chapter 12, pages 311+.


I have been updating myself from LDD2 to LDD3. What i was wondering was in what order should i be calling the functions.


You won't call anything, kernel does. You only register driver.
struct pcitbl {venids, devids}

struct driver ... = {probe=a, remove=b, tbl=pcitbl};
a() { if device from pcitbl is in the system (or has been added before some little time) this function is called}
b() {if the device was removed from system: modules and hotplug: never called; modules: so if modules unload; if both: if the device was removed on the fly, or module unload}

module_init() { register_driver(driver)}
module_exit() { unregister_driver(driver); }


I was wondering whether pci_enable_device() should come first or pci_dev_put() in the probe routine.


Thanks,
Manu




-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/