最近为PCI板卡做LINUX环境下的驱动程序,在系统启动以后可以检测到板卡,并为板卡分配好硬件资源cat /proc/pci可以知道这些信息,自己编写驱动程序,可以用pci_register_driver(&my_pci_driver)注册设备(成功),说明static struct pci_driver 这个结构体已经被创建,问题是无法调用probe函数,是static struct pci_device_id pci_tbl[]出问题(几乎被排除)?还是由于系统初始化以后没有“新”设备增加,因此探测程序睡眠(如果不是热插拔设备怎么办)?还是请您帮忙讨论解决!
其实要是能搞清楚内核中处理PCI设备的程序与用户驱动程序之间的关系与各自功能,这个问题也就解决了,再次感谢您的经验之谈!
jermaine618 于 2007-04-06 08:33:23发表:
受.pcimap文件的启发,我将struct pci_device_id 结构体的kernel_ulong_t driver_data值改为0,就probe到设备了!