When does the probe function for a Linux kernel driver gets called? When does the probe function for a Linux kernel driver gets called? android android

When does the probe function for a Linux kernel driver gets called?


Found the answer after some research, For a "platform" device the probe function is invoked when a platform device is registered and it's device name matchs the name specified on the device driver.

More details here:http://comments.gmane.org/gmane.linux.kernel.kernelnewbies/37050

Now I just need to figure why the device is not being registered :\


When a module_init is called (insmod in case of dynamic loading) then the driver registration is done, and the various callbacks probe, resume, suspend related to the driver are present.

Now the main thing to understand this is what all happens in probe function. If you notice then in probe most the initialisation related to device is done (eg. settings associated with DEVICE), so obviously this should execute when device is present.

Probe is called when the device and driver name/id are matched i.e. verified that these will be coupled/linked. So now we are sure that say Driver ABC will be associated with Device ABC; so do the initialization settings for Device ABC in probe of Driver ABC.


The probe function is called whenever the device is seen. This can happen on device boot, or it can occur when the device is connected. Check out this article for more info.