2

I'm writing a multi-function kernel driver module, based on http://lxr.free-electrons.com/source/drivers/mfd/wm8350-i2c.c?v=4.4 and http://lxr.free-electrons.com/source/drivers/mfd/wm8350-core.c?v=4.4

I am confused as to how/when/why the wm8350_i2c_probe() function is called.

The i2c_add_driver() call registers a struct i2c_driver with the i2c subsystem and that struct includes a .probe pointer to the wm8350_i2c_probe() function.

I have made my own analogues of these modules. The xxx_i2c_init() is called on insmod but the i2c subsystem does not call the xxx_i2c_probe() function.

There is something I do not understand here. Why doesn't the i2c subsystem call the wm8350_i2c_probe() function via the registered .probe?

4

0 に答える 0