- 论坛徽章:
- 1
|
小弟在学习设备驱动的时候,发现源码中有这么一段:
static const struct pci_device_id *pci_match_device(struct pci_driver *drv, struct pci_dev *dev)
{
struct pci_dynid *dynid;
/* Look at the dynamic ids first, before the static ones */
spin_lock(&drv->dynids.lock);
list_for_each_entry(dynid, &drv->dynids.list, node) { //【1】
if (pci_match_one_device(&dynid->id, dev)) { //【2】
spin_unlock(&drv->dynids.lock);
return &dynid->id;
}
}
spin_unlock(&drv->dynids.lock);
return pci_match_id(drv->id_table, dev);
}
小弟对【1】中的dynid->id是何时将各个设备的pci_device_id添加进drv->dynids.list时机不太了解,总觉得迷迷糊糊,忘有大侠解答,跪谢~ |
|