Re: Questions about updating hisax drivers that use pci_find_device()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On Wed, Aug 5, 2009 at 9:39 PM, kevin granade <kevin.granade@xxxxxxxxx> wrote:
I noticed a comment calling for converting drivers from pci_find_device() to pci_get_device() as a beginner kernel project on lkml and started looking into it.  What I have been able to discern about the issue is the following:
Gleaned from code/documentation/previous posts on the subject:
The only remaining user of pci_find_device() seems to be parts of the HiSax isdn driver.
pci_find_device() is the same as pci_get_device(), but actively avoids holding a lock/reference count on the pci_dev that it returns.
   as a result pci_get_device() requires pci_dev_put() to be called on a successful get in order to maintain correct lock/reference count semantics.

After Re-reading the PCI chapter of LDD3:
pci_get_device() is also deprecated, recommended init is creating a pci_device struct and mapping probe function etc. into it.

Finally noticed when I was setting up my config to build the driver:
The entire isdn4linux framework the hisax driver is based on is also deprecated, recommended interface is CAPI.

Additional information:
I don't have the associated hardware, just interested in doing some hacking.

There seem to be three paths forward for updating:
find_pci_device()->get_pci_device() for initializing drivers
find_pci_device()->struct pci_device for initializing drivers
port driver from isdn4linux to CAPI

Which of these (if any) are both worth doing and a reasonable "kernel newbie" project?
 
To somewhat answer my own question, it seems that a migration of some kind is underway and being discussed on the isdn4linux list, so I think the correct answer is to subscribe to that list and lurk a bit, and read some more archives.



Thanks,
Kevin


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux