/* NOTE: Use put_device() to give up your reference instead of freeing @dev directly once you have called this function.  */
void device_initialize(struct device *dev)
/* NOTE: Use put_device() to give up your reference instead of freeing @dev directly once you have called this function.  */
void device_initialize(struct device *dev)
{
	dev->kobj.kset = devices_kset;
	kobject_init(&dev->kobj, &device_ktype);
	INIT_LIST_HEAD(&dev->dma_pools);
	init_MUTEX(&dev->sem);
	spin_lock_init(&dev->devres_lock);
	INIT_LIST_HEAD(&dev->devres_head);
	device_init_wakeup(dev, 0);
	device_pm_init(dev);
	set_dev_node(dev, -1);
}