mirror of
				https://github.com/torvalds/linux.git
				synced 2025-10-31 16:48:26 +02:00 
			
		
		
		
	PM core: Use new async_schedule_dev command
Use the device specific version of the async_schedule commands to defer various tasks related to power management. By doing this we should see a slight improvement in performance as any device that is sensitive to latency/locality in the setup will now be initializing on the node closest to the device. Reviewed-by: Dan Williams <dan.j.williams@intel.com> Reviewed-by: Bart Van Assche <bvanassche@acm.org> Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Signed-off-by: Alexander Duyck <alexander.h.duyck@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
		
							parent
							
								
									c37e20eaf4
								
							
						
					
					
						commit
						8b9ec6b732
					
				
					 1 changed files with 6 additions and 6 deletions
				
			
		|  | @ -727,7 +727,7 @@ void dpm_noirq_resume_devices(pm_message_t state) | |||
| 		reinit_completion(&dev->power.completion); | ||||
| 		if (is_async(dev)) { | ||||
| 			get_device(dev); | ||||
| 			async_schedule(async_resume_noirq, dev); | ||||
| 			async_schedule_dev(async_resume_noirq, dev); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
|  | @ -884,7 +884,7 @@ void dpm_resume_early(pm_message_t state) | |||
| 		reinit_completion(&dev->power.completion); | ||||
| 		if (is_async(dev)) { | ||||
| 			get_device(dev); | ||||
| 			async_schedule(async_resume_early, dev); | ||||
| 			async_schedule_dev(async_resume_early, dev); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
|  | @ -1048,7 +1048,7 @@ void dpm_resume(pm_message_t state) | |||
| 		reinit_completion(&dev->power.completion); | ||||
| 		if (is_async(dev)) { | ||||
| 			get_device(dev); | ||||
| 			async_schedule(async_resume, dev); | ||||
| 			async_schedule_dev(async_resume, dev); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
|  | @ -1368,7 +1368,7 @@ static int device_suspend_noirq(struct device *dev) | |||
| 
 | ||||
| 	if (is_async(dev)) { | ||||
| 		get_device(dev); | ||||
| 		async_schedule(async_suspend_noirq, dev); | ||||
| 		async_schedule_dev(async_suspend_noirq, dev); | ||||
| 		return 0; | ||||
| 	} | ||||
| 	return __device_suspend_noirq(dev, pm_transition, false); | ||||
|  | @ -1571,7 +1571,7 @@ static int device_suspend_late(struct device *dev) | |||
| 
 | ||||
| 	if (is_async(dev)) { | ||||
| 		get_device(dev); | ||||
| 		async_schedule(async_suspend_late, dev); | ||||
| 		async_schedule_dev(async_suspend_late, dev); | ||||
| 		return 0; | ||||
| 	} | ||||
| 
 | ||||
|  | @ -1835,7 +1835,7 @@ static int device_suspend(struct device *dev) | |||
| 
 | ||||
| 	if (is_async(dev)) { | ||||
| 		get_device(dev); | ||||
| 		async_schedule(async_suspend, dev); | ||||
| 		async_schedule_dev(async_suspend, dev); | ||||
| 		return 0; | ||||
| 	} | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Alexander Duyck
						Alexander Duyck