Re: PCI Device Driver: Porting to 2.6 kernel

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

 



Let me simplify this.

Does anyone know how to add devices to /proc/bus/pci/devices?

Please do not respond if you do not know.

Greg KH wrote:
On Thu, Jan 26, 2006 at 04:14:44PM -0800, John Klingler wrote:
  
Unfortunately I'm under NDA for the vendor's code, except for our
parts of it, of course. I'm unsure why they have an NDA, they give
the drivers to OEMs who use their hardware. Just SOP I guess.
    

Sorry, but I can't help with non-GPL code like this :(

Actually, I don't think you will be able to write a non-GPL driver to be
able to do this for the 2.6 kernel, due to all of the api changes.  What
it sounds like is you really just want to hook into the pci hotplug
system, as then your driver will work with all of the existing pci
hotplug userspace tools.

  
Anyway, the kernel's core pci bus probe will not be able to "see"
beyond the fabric bridge, just the bridge card itself:
   08:01.0 Bridge: Stargen Inc. SG2010 PCI to Starfabric Gateway

It would have to use the methods the driver supplies to pci_register_driver,
and pci_proc_attach_device and pci_enable_device in the pci_driver struct.

Perhaps it would be easier to show you the modules file for the drivers
in our stack responsible for the kernel interface. I've only included the
relevant dependencies.

   pci_add_new_bus
   pci_bus_assign_resources
   pci_enable_device
   pci_mem_start
   pci_proc_attach_device
   pci_proc_detach_bus
   pci_root_buses
   pci_scan_slot
   pci_set_master

Looking at the above list, I notice a few asymmetries. pci_add_new_bus is
called but not pci_proc_attach_bus. pci_proc_attach_device is called but
not pci_proc_detach_device when the driver is unloaded. Perhaps you can
see a call that should be made.
    

Without the code itself, I do not think so, sorry.

  
A prime suspect is enhanced error checking in 2.6. For example, the buses
added by the drivers have no parent. While this wasn't a problem in 2.4,
the 2.6 kernel may reject that.
    

No, root busses have no parent and work just fine :)

good luck,

greg k-h

  

[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