Re: PCI driver

Manu Abraham
2005-09-14T12:04:49Z

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