/* pm_runtime_init - Initialize run-time PM fields in given device object. @dev: Device object to initialize.  */
void pm_runtime_init(struct device *dev)
/* pm_runtime_init - Initialize run-time PM fields in given device object. @dev: Device object to initialize.  */
void pm_runtime_init(struct device *dev)
{
	spin_lock_init(&dev->power.lock);
	dev->power.runtime_status = RPM_SUSPENDED;
	dev->power.idle_notification = false;
	dev->power.disable_depth = 1;
	atomic_set(&dev->power.usage_count, 0);
	dev->power.runtime_error = 0;
	atomic_set(&dev->power.child_count, 0);
	pm_suspend_ignore_children(dev, false);
	dev->power.request_pending = false;
	dev->power.request = RPM_REQ_NONE;
	dev->power.deferred_resume = false;
	INIT_WORK(&dev->power.work, pm_runtime_work);
	dev->power.timer_expires = 0;
	setup_timer(&dev->power.suspend_timer, pm_suspend_timer_fn,
			(unsigned long)dev);
	init_waitqueue_head(&dev->power.wait_queue);
}