将驱动修改为device tree方式后,加载内核时,最早打印了defer的错误,如下:
platform XXXX0000.ethernet: Driver XXXXXX requests probe deferral
在最后才成功从dts文件加载网络设备,打印注册成功。
由于只是参照别人的进行device tree的移植,不太懂整个dts驱动加载过程,一直没弄懂为什么是这样子。
读了下面的一片博客,才恍然大悟,原来是由于自己驱动依赖reset controller框架,
在我驱动注册的时候,依赖的reset controller还没有准备好,所以导致我的驱动挂在了一个list等待后续有机会再次执行。
参考的博客如下:
转载自 http://markzhang.cn
原文链接: http://www.markzhang.cn/blog/2014/04/09/linux-driver-suspend-orders/