Linux 4.16 内核中 psp_pci_init() 和 psp_dev_init() 函数的区别
psp_pci_init() 和 psp_dev_init() 这两个函数的区别如下:
-
psp_pci_init() 函数用于初始化 PCI 设备驱动程序,主要是在系统启动时检测和初始化 PCI 设备,并将其注册为设备驱动程序。而 psp_dev_init() 函数用于初始化设备驱动程序,主要是在设备驱动程序被加载时初始化设备,并为其分配资源。
-
psp_pci_init() 函数针对 PCI 设备的初始化过程,主要工作是初始化 PCI 总线和 PCI 设备的相关信息,如设备 ID、厂商 ID、IRQ、内存映射寄存器等。而 psp_dev_init() 函数针对具体的设备驱动程序的初始化过程,主要工作是为设备分配资源,如内存、I/O 端口、中断等,并对设备进行初始化。
-
在实际应用中,psp_pci_init() 函数一般由系统底层进行调用,而 psp_dev_init() 函数则是由设备驱动程序本身进行调用。因此,psp_pci_init() 函数的调用时机比 psp_dev_init() 函数更早。
综上所述,psp_pci_init() 和 psp_dev_init() 这两个函数虽然都是用于初始化设备驱动程序,但是其针对的对象和工作内容不同,因此存在一定的区别。
原文地址: https://www.cveoy.top/t/topic/nvzM 著作权归作者所有。请勿转载和采集!