void wait_for_device_probe(void)
{
	/* wait for probe timeout */
	wait_event(probe_timeout_waitqueue, !driver_deferred_probe_timeout);

	/* wait for the deferred probe workqueue to finish */
	flush_work(&deferred_probe_work);

	/* wait for the known devices to complete their probing */
	wait_event(probe_waitqueue, atomic_read(&probe_count) == 0);
	async_synchronize_full();
}
void wait_for_device_probe(void)
{
	 
	wait_event(probe_timeout_waitqueue, !driver_deferred_probe_timeout);

	 
	flush_work(&deferred_probe_work);

	 
	wait_event(probe_waitqueue, atomic_read(&probe_count) == 0);
	async_synchronize_full();
}