subsys

    xiaoxiao2026-06-04  6

    这行code是啥意思呢?  subsys_interface_register(&cpufreq_interface); 1576 static struct subsys_interface cpufreq_interface = { 1577         .name           = "cpufreq", 1578         .subsys         = &cpu_subsys, 1579         .add_dev        = cpufreq_add_dev, 1580         .remove_dev     = cpufreq_remove_dev, 1581 }; 我们看看subsys_interface_register的实现。 1125 int subsys_interface_register(struct subsys_interface *sif) 1126 { 1127         struct bus_type *subsys; 1128         struct subsys_dev_iter iter; 1129         struct device *dev; 1130  1131         if (!sif || !sif->subsys) 1132                 return -ENODEV; 1133  1134         subsys = bus_get(sif->subsys); 1135         if (!subsys) 1136                 return -EINVAL; 1137  1138         mutex_lock(&subsys->p->mutex); 1139         list_add_tail(&sif->node, &subsys->p->interfaces); 1140         if (sif->add_dev) { 1141                 subsys_dev_iter_init(&iter, subsys, NULL, NULL); 1142                 while ((dev = subsys_dev_iter_next(&iter))) 1143                         sif->add_dev(dev, sif); 1144                 subsys_dev_iter_exit(&iter); 1145         } 1146         mutex_unlock(&subsys->p->mutex); 1147  1148         return 0; 1149 } 1134行subsys就等于1578行的cpu_sybsys. 1140行的sif->add_dev 就等1579行的cpufreq_add_dev,所以肯定不为NULL。 1142行会遍历cpu_sybsys,为每一个cpu调用cpufreq_add_dev 方法。也就是有几个cpu,cpufreq_add_dev 方法就没调用几次。 从这里可以看到每个cpu可以有不同的governer.
    转载请注明原文地址: https://ju.6miu.com/read-1310178.html
    最新回复(0)