Lines Matching full:probe
35 * Deferred Probe infrastructure.
37 * Sometimes driver probe order matters, but the kernel doesn't always have
42 * request probing to be deferred by returning -EPROBE_DEFER from its probe hook
44 * Deferred probe maintains two lists of devices, a pending list and an active
46 * pending list. A successful driver probe will trigger moving all devices
77 * bus_probe_device() to re-attempt the probe. The loop continues in deferred_probe_work_func()
96 * Drop the mutex while probing each device; the probe path may in deferred_probe_work_func()
105 * probe makes that very unsafe. in deferred_probe_work_func()
144 * list and schedules the deferred probe workqueue to process them. It
147 * Note, there is a race condition in multi-threaded probe. In the case where
149 * probe to complete successfully while another is about to defer. If the second
155 * changes in the midst of a probe, then deferred processing should be triggered
164 * A successful probe means that all the devices in the pending list in driver_deferred_probe_trigger()
175 * Kick the re-probe thread. It may already be scheduled, but it is in driver_deferred_probe_trigger()
206 * deferred_devs_show() - Show the devices in the deferred probe pending list.
232 * driver_deferred_probe_check_state() - Check deferred probe state
236 * to probe (i.e. initcalls are done), -ETIMEDOUT if deferred probe debug
246 dev_WARN(dev, "deferred probe timeout, ignoring dependency"); in driver_deferred_probe_check_state()
264 dev_info(private->device, "deferred probe pending"); in deferred_probe_timeout_work_func()
287 * Trigger deferred probe again, this time we won't defer anything in deferred_probe_initcall()
416 * from a driver's probe() method.)
459 dev_dbg(dev, "Driver %s force probe deferral\n", drv->name); in really_probe()
503 if (dev->bus->probe) { in really_probe()
504 ret = dev->bus->probe(dev); in really_probe()
507 } else if (drv->probe) { in really_probe()
508 ret = drv->probe(dev); in really_probe()
562 dev_dbg(dev, "Driver %s requests probe deferral\n", drv->name); in really_probe()
567 pr_debug("%s: probe of %s rejects match %d\n", in really_probe()
571 /* driver matched but the probe failed */ in really_probe()
573 "%s: probe of %s failed with error %d\n", in really_probe()
577 * Ignore errors returned by ->probe so that the next driver can try in really_probe()
588 * For initcall_debug, show the driver probe time.
599 printk(KERN_DEBUG "probe of %s returned %d after %lld usecs\n", in really_probe_debug()
606 * Determine if the probe sequence is finished or not.
625 /* wait for the deferred probe workqueue to finish */ in wait_for_device_probe()
712 * probe for given device and driver from bus_for_each_drv() since
737 dev_dbg(dev, "Device match requests probe deferral\n"); in __device_attach_driver()
769 * and deferred probe processing happens all at once with in __device_attach_async_helper()
779 dev_dbg(dev, "async probe completed\n"); in __device_attach_async_helper()
827 * want to probe asynchronously, we'll in __device_attach()
830 dev_dbg(dev, "scheduling asynchronous probe\n"); in __device_attach()
890 dev_dbg(dev, "Device match requests probe deferral\n"); in __driver_attach()