On 23-05-18, 14:25, Sudeep Holla wrote: > On 23/05/18 13:38, Ilia Lin wrote: > > +static int __init qcom_cpufreq_kryo_init(void) > > +{ > > + /* > > + * Since the driver depends on smem and nvmem drivers, which may > > + * return EPROBE_DEFER, all the real activity is done in the probe, > > + * which may be defered as well. The init here is only registering > > + * a platform device. > > + */ > > + platform_device_register_simple("qcom-cpufreq-kryo", -1, NULL, 0); > > + return 0; > > +} > > +module_init(qcom_cpufreq_kryo_init); > > Do you need this at all ? See below on how to eliminate the need for this. > > > + > > +static struct platform_driver qcom_cpufreq_kryo_driver = { > > + .probe = qcom_cpufreq_kryo_probe, > > + .driver = { > > + .name = "qcom-cpufreq-kryo", > > + }, > > +}; > > +builtin_platform_driver(qcom_cpufreq_kryo_driver); > > Use builtin_platform_driver_probe and remove qcom_cpufreq_kryo_init > or use module_platform_driver_probe if it can be module. I agree with this, just use a single init routine to register both the driver and device. -- viresh -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html