*参照元 [#lb5eb844] #backlinks *説明 [#w4887792] -パス: [[linux-4.4.1/drivers/iommu/arm-smmu.c]] -FIXME: これは何? --説明 **引数 [#zce88a76] -なし **返り値 [#b93a8512] -int **参考 [#z7b0ce45] *実装 [#x3e8df59] static int __init arm_smmu_init(void) { struct device_node *np; int ret; - --[[linux-4.4.1/device_node]] /* * Play nice with systems that don't have an ARM SMMU by checking that * an ARM SMMU exists in the system before proceeding with the driver * and IOMMU bus operation registration. */ np = of_find_matching_node(NULL, arm_smmu_of_match); if (!np) return 0; - --[[linux-4.4.1/of_find_matching_node()]] --[[linux-4.4.1/arm_smmu_of_match(global)]] of_node_put(np); - --[[linux-4.4.1/of_node_put()]] ret = platform_driver_register(&arm_smmu_driver); if (ret) return ret; - --[[linux-4.4.1/platform_driver_register()]] --[[linux-4.4.1/arm_smmu_driver(global)]] /* Oh, for a proper bus abstraction */ if (!iommu_present(&platform_bus_type)) bus_set_iommu(&platform_bus_type, &arm_smmu_ops); - --[[linux-4.4.1/iommu_present()]] --[[linux-4.4.1/bus_set_iommu()]] --[[linux-4.4.1/platform_bus_type(global)]] --[[linux-4.4.1/arm_smmu_ops(global)]] #ifdef CONFIG_ARM_AMBA - --[[linux-4.4.1/CONFIG_ARM_AMBA]] if (!iommu_present(&amba_bustype)) bus_set_iommu(&amba_bustype, &arm_smmu_ops); - --[[linux-4.4.1/amba_bustype(global)]] #endif #ifdef CONFIG_PCI - --[[linux-4.4.1/CONFIG_PCI]] if (!iommu_present(&pci_bus_type)) bus_set_iommu(&pci_bus_type, &arm_smmu_ops); - --[[linux-4.4.1/pci_bus_type(global)]] #endif return 0; } ... subsys_initcall(arm_smmu_init); - --[[linux-4.4.1/subsys_initcall()]] *コメント [#nef390d1]