Lines Matching full:probe

36  * Deferred Probe infrastructure.
38 * Sometimes driver probe order matters, but the kernel doesn't always have
43 * request probing to be deferred by returning -EPROBE_DEFER from its probe hook
45 * Deferred probe maintains two lists of devices, a pending list and an active
47 * pending list. A successful driver probe will trigger moving all devices
60 /* Save the async probe drivers' name from kernel cmdline */
87 * bus_probe_device() to re-attempt the probe. The loop continues in deferred_probe_work_func()
108 * Drop the mutex while probing each device; the probe path may in deferred_probe_work_func()
117 * probe makes that very unsafe. in deferred_probe_work_func()
160 * list and schedules the deferred probe workqueue to process them. It
163 * Note, there is a race condition in multi-threaded probe. In the case where
165 * probe to complete successfully while another is about to defer. If the second
171 * changes in the midst of a probe, then deferred processing should be triggered
180 * A successful probe means that all the devices in the pending list in driver_deferred_probe_trigger()
191 * Kick the re-probe thread. It may already be scheduled, but it is in driver_deferred_probe_trigger()
222 * device_set_deferred_probe_reason() - Set defer probe reason message for device
240 * deferred_devs_show() - Show the devices in the deferred probe pending list.
273 * driver_deferred_probe_check_state() - Check deferred probe state
278 * -ETIMEDOUT if the deferred probe timeout was set and has expired
293 dev_warn(dev, "deferred probe timeout, ignoring dependency\n"); in driver_deferred_probe_check_state()
312 dev_info(p->device, "deferred probe pending\n"); in deferred_probe_timeout_work_func()
340 * Trigger deferred probe again, this time we won't defer anything in deferred_probe_initcall()
471 * (It is ok to call with no other effort from a driver's probe() method.)
514 if (dev->bus->probe) in call_driver_probe()
515 ret = dev->bus->probe(dev); in call_driver_probe()
516 else if (drv->probe) in call_driver_probe()
517 ret = drv->probe(dev); in call_driver_probe()
524 dev_dbg(dev, "Driver %s requests probe deferral\n", drv->name); in call_driver_probe()
528 pr_debug("%s: probe of %s rejects match %d\n", in call_driver_probe()
532 /* driver matched but the probe failed */ in call_driver_probe()
533 pr_warn("%s: probe of %s failed with error %d\n", in call_driver_probe()
553 dev_dbg(dev, "Driver %s force probe deferral\n", drv->name); in really_probe()
599 * Return probe errors as positive values so that the callers in really_probe()
681 * For initcall_debug, show the driver probe time.
691 pr_debug("probe of %s returned %d after %lld usecs\n", in really_probe_debug()
698 * Determine if the probe sequence is finished or not.
718 /* wait for probe timeout */ in wait_for_device_probe()
721 /* wait for the deferred probe workqueue to finish */ in wait_for_device_probe()
768 * (inverted) error code for failures from the ->probe method.
853 * probe for given device and driver from bus_for_each_drv() since
878 dev_dbg(dev, "Device match requests probe deferral\n"); in __device_attach_driver()
895 * Ignore errors returned by ->probe so that the next driver can try in __device_attach_driver()
918 * and deferred probe processing happens all at once with in __device_attach_async_helper()
928 dev_dbg(dev, "async probe completed\n"); in __device_attach_async_helper()
976 * want to probe asynchronously, we'll in __device_attach()
979 dev_dbg(dev, "scheduling asynchronous probe\n"); in __device_attach()
1067 /* also return probe errors as normal negative errnos */ in device_driver_attach()
1112 dev_dbg(dev, "Device match requests probe deferral\n"); in __driver_attach()
1123 * probe it asynchronously to allow for more parallelism. in __driver_attach()