Chinaunix

标题: 关于probe的疑问。。。 [打印本页]

作者: chishanmingshen    时间: 2015-09-10 10:40
标题: 关于probe的疑问。。。
有用到bus的probe()么?没见过啊。。。
作者: 镇水铁牛    时间: 2015-09-10 21:45
device和driver都是挂在指定bus下,match后,就会probe
作者: chishanmingshen    时间: 2015-09-11 09:21
本帖最后由 chishanmingshen 于 2015-09-11 09:22 编辑

回复 2# 镇水铁牛


   贴个实际代码(bus->probe有哪个具体函数?)看看啊,我没发现有。。。
作者: asuka2001    时间: 2015-09-11 10:01
回复 3# chishanmingshen

static int really_probe(struct device *dev, struct device_driver *drv) @ drivers/base/dd.c (linux 4.1)
{
        ......
        if (dev->bus->probe) {
                ret = dev->bus->probe(dev);
        ......
}


   
作者: chishanmingshen    时间: 2015-09-11 10:48
本帖最后由 chishanmingshen 于 2015-09-11 13:52 编辑

回复 4# asuka2001


    有drv的probe就够了,为何还存在bus的probe,并且它优先于drv的?
  1. static int
  2. __pci_device_probe(struct pci_driver *drv, struct pci_dev *pci_dev)
  3. {
  4.     const struct pci_device_id *id;
  5.     int error = 0;

  6.     if (!pci_dev->driver && drv->probe) {<-----这里的pci_dev->driver和drv 怎么不是一个东西?
  7.         error = -ENODEV;
复制代码





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2