今天碰到一个tp的代码,在probe函数里面,如果检查i2c地址失败,则将i2c地址设为另一个,我始终没明白,后面
问了下写这个代码的人,才知道原来当probe如果执行不成功,那这个i2c地址就会被内核列入一个类似“黑名单”的地方,
如果下次再有驱动用这个i2c地址来注册时,内核就不会去执行。这样会导致一个问题,两个同类型的产品,如果使用
同样的i2c地址,这样就会导致一个的驱动加载不成功,另一个也加载不了了。所以他们在检查地址失败后,将i2c地址
设置为另外一个,这时候,内核就会将另外的那个设置为黑名单,这样就解决了上面的问题。实际毫无逻辑的代码,原来
还隐藏着这么多秘密,哈哈。