diff options
Diffstat (limited to 'arch/powerpc/platforms/powernv/opal.c')
| -rw-r--r-- | arch/powerpc/platforms/powernv/opal.c | 15 | 
1 files changed, 13 insertions, 2 deletions
diff --git a/arch/powerpc/platforms/powernv/opal.c b/arch/powerpc/platforms/powernv/opal.c index aaa0dba4947..ade4463226c 100644 --- a/arch/powerpc/platforms/powernv/opal.c +++ b/arch/powerpc/platforms/powernv/opal.c @@ -34,7 +34,6 @@ int __init early_init_dt_scan_opal(unsigned long node,  {  	const void *basep, *entryp;  	unsigned long basesz, entrysz; -	u64 glue;  	if (depth != 1 || strcmp(uname, "ibm,opal") != 0)  		return 0; @@ -61,6 +60,16 @@ int __init early_init_dt_scan_opal(unsigned long node,  		printk("OPAL V1 detected !\n");  	} +	return 1; +} + +static int __init opal_register_exception_handlers(void) +{ +	u64 glue; + +	if (!(powerpc_firmware_features & FW_FEATURE_OPAL)) +		return -ENODEV; +  	/* Hookup some exception handlers. We use the fwnmi area at 0x7000  	 * to provide the glue space to OPAL  	 */ @@ -74,9 +83,11 @@ int __init early_init_dt_scan_opal(unsigned long node,  	glue += 128;  	opal_register_exception_handler(OPAL_SOFTPATCH_HANDLER, 0, glue); -	return 1; +	return 0;  } +early_initcall(opal_register_exception_handlers); +  int opal_get_chars(uint32_t vtermno, char *buf, int count)  {  	s64 len, rc;  |