mirror of
				https://github.com/torvalds/linux.git
				synced 2025-10-31 08:38:45 +02:00 
			
		
		
		
	m68k: Switch to new sys-off handler API
Kernel now supports chained power-off handlers. Use register_power_off_handler() that registers power-off handlers and do_kernel_power_off() that invokes chained power-off handlers. Legacy pm_power_off() will be removed once all drivers will be converted to the new sys-off API. Normally arch code should adopt only the do_kernel_power_off() at first, but m68k is a special case because it uses pm_power_off() "inside out", i.e. pm_power_off() invokes machine_power_off() [in fact it does nothing], while it's machine_power_off() that should invoke the pm_power_off(), and thus, we can't convert platforms to the new API separately. There are only two platforms changed here, so it's not a big deal. Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> Reviewed-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
		
							parent
							
								
									c33fd0b17e
								
							
						
					
					
						commit
						f0f7e5265b
					
				
					 6 changed files with 7 additions and 8 deletions
				
			
		|  | @ -15,6 +15,7 @@ | |||
| #include <linux/string.h> | ||||
| #include <linux/kernel.h> | ||||
| #include <linux/module.h> | ||||
| #include <linux/reboot.h> | ||||
| #include <linux/io.h> | ||||
| #include <asm/machdep.h> | ||||
| #include <asm/natfeat.h> | ||||
|  | @ -90,5 +91,5 @@ void __init nf_init(void) | |||
| 	pr_info("NatFeats found (%s, %lu.%lu)\n", buf, version >> 16, | ||||
| 		version & 0xffff); | ||||
| 
 | ||||
| 	mach_power_off = nf_poweroff; | ||||
| 	register_platform_power_off(nf_poweroff); | ||||
| } | ||||
|  |  | |||
|  | @ -24,7 +24,6 @@ extern int (*mach_get_rtc_pll)(struct rtc_pll_info *); | |||
| extern int (*mach_set_rtc_pll)(struct rtc_pll_info *); | ||||
| extern void (*mach_reset)( void ); | ||||
| extern void (*mach_halt)( void ); | ||||
| extern void (*mach_power_off)( void ); | ||||
| extern unsigned long (*mach_hd_init) (unsigned long, unsigned long); | ||||
| extern void (*mach_hd_setup)(char *, int *); | ||||
| extern void (*mach_heartbeat) (int); | ||||
|  |  | |||
|  | @ -67,12 +67,11 @@ void machine_halt(void) | |||
| 
 | ||||
| void machine_power_off(void) | ||||
| { | ||||
| 	if (mach_power_off) | ||||
| 		mach_power_off(); | ||||
| 	do_kernel_power_off(); | ||||
| 	for (;;); | ||||
| } | ||||
| 
 | ||||
| void (*pm_power_off)(void) = machine_power_off; | ||||
| void (*pm_power_off)(void); | ||||
| EXPORT_SYMBOL(pm_power_off); | ||||
| 
 | ||||
| void show_regs(struct pt_regs * regs) | ||||
|  |  | |||
|  | @ -98,7 +98,6 @@ EXPORT_SYMBOL(mach_get_rtc_pll); | |||
| EXPORT_SYMBOL(mach_set_rtc_pll); | ||||
| void (*mach_reset)( void ); | ||||
| void (*mach_halt)( void ); | ||||
| void (*mach_power_off)( void ); | ||||
| #ifdef CONFIG_HEARTBEAT | ||||
| void (*mach_heartbeat) (int); | ||||
| EXPORT_SYMBOL(mach_heartbeat); | ||||
|  |  | |||
|  | @ -55,7 +55,6 @@ int (*mach_hwclk) (int, struct rtc_time*); | |||
| /* machine dependent reboot functions */ | ||||
| void (*mach_reset)(void); | ||||
| void (*mach_halt)(void); | ||||
| void (*mach_power_off)(void); | ||||
| 
 | ||||
| #ifdef CONFIG_M68000 | ||||
| #if defined(CONFIG_M68328) | ||||
|  |  | |||
|  | @ -12,6 +12,7 @@ | |||
| 
 | ||||
| #include <linux/errno.h> | ||||
| #include <linux/module.h> | ||||
| #include <linux/reboot.h> | ||||
| #include <linux/types.h> | ||||
| #include <linux/mm.h> | ||||
| #include <linux/tty.h> | ||||
|  | @ -140,7 +141,6 @@ void __init config_mac(void) | |||
| 	mach_hwclk = mac_hwclk; | ||||
| 	mach_reset = mac_reset; | ||||
| 	mach_halt = mac_poweroff; | ||||
| 	mach_power_off = mac_poweroff; | ||||
| #if IS_ENABLED(CONFIG_INPUT_M68K_BEEP) | ||||
| 	mach_beep = mac_mksound; | ||||
| #endif | ||||
|  | @ -160,6 +160,8 @@ void __init config_mac(void) | |||
| 
 | ||||
| 	if (macintosh_config->ident == MAC_MODEL_IICI) | ||||
| 		mach_l2_flush = via_l2_flush; | ||||
| 
 | ||||
| 	register_platform_power_off(mac_poweroff); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Dmitry Osipenko
						Dmitry Osipenko