diff options
Diffstat (limited to 'arch/powerpc/platforms/powernv/opal.c')
-rw-r--r-- | arch/powerpc/platforms/powernv/opal.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/arch/powerpc/platforms/powernv/opal.c b/arch/powerpc/platforms/powernv/opal.c index d019b081df9d..cb0b6de79cd4 100644 --- a/arch/powerpc/platforms/powernv/opal.c +++ b/arch/powerpc/platforms/powernv/opal.c | |||
@@ -50,7 +50,6 @@ static int mc_recoverable_range_len; | |||
50 | 50 | ||
51 | struct device_node *opal_node; | 51 | struct device_node *opal_node; |
52 | static DEFINE_SPINLOCK(opal_write_lock); | 52 | static DEFINE_SPINLOCK(opal_write_lock); |
53 | extern u64 opal_mc_secondary_handler[]; | ||
54 | static unsigned int *opal_irqs; | 53 | static unsigned int *opal_irqs; |
55 | static unsigned int opal_irq_count; | 54 | static unsigned int opal_irq_count; |
56 | static ATOMIC_NOTIFIER_HEAD(opal_notifier_head); | 55 | static ATOMIC_NOTIFIER_HEAD(opal_notifier_head); |
@@ -644,6 +643,16 @@ static void __init opal_dump_region_init(void) | |||
644 | pr_warn("DUMP: Failed to register kernel log buffer. " | 643 | pr_warn("DUMP: Failed to register kernel log buffer. " |
645 | "rc = %d\n", rc); | 644 | "rc = %d\n", rc); |
646 | } | 645 | } |
646 | |||
647 | static void opal_ipmi_init(struct device_node *opal_node) | ||
648 | { | ||
649 | struct device_node *np; | ||
650 | |||
651 | for_each_child_of_node(opal_node, np) | ||
652 | if (of_device_is_compatible(np, "ibm,opal-ipmi")) | ||
653 | of_platform_device_create(np, NULL, NULL); | ||
654 | } | ||
655 | |||
647 | static int __init opal_init(void) | 656 | static int __init opal_init(void) |
648 | { | 657 | { |
649 | struct device_node *np, *consoles; | 658 | struct device_node *np, *consoles; |
@@ -707,6 +716,8 @@ static int __init opal_init(void) | |||
707 | opal_msglog_init(); | 716 | opal_msglog_init(); |
708 | } | 717 | } |
709 | 718 | ||
719 | opal_ipmi_init(opal_node); | ||
720 | |||
710 | return 0; | 721 | return 0; |
711 | } | 722 | } |
712 | machine_subsys_initcall(powernv, opal_init); | 723 | machine_subsys_initcall(powernv, opal_init); |
@@ -742,6 +753,8 @@ void opal_shutdown(void) | |||
742 | 753 | ||
743 | /* Export this so that test modules can use it */ | 754 | /* Export this so that test modules can use it */ |
744 | EXPORT_SYMBOL_GPL(opal_invalid_call); | 755 | EXPORT_SYMBOL_GPL(opal_invalid_call); |
756 | EXPORT_SYMBOL_GPL(opal_ipmi_send); | ||
757 | EXPORT_SYMBOL_GPL(opal_ipmi_recv); | ||
745 | 758 | ||
746 | /* Convert a region of vmalloc memory to an opal sg list */ | 759 | /* Convert a region of vmalloc memory to an opal sg list */ |
747 | struct opal_sg_list *opal_vmalloc_to_sg_list(void *vmalloc_addr, | 760 | struct opal_sg_list *opal_vmalloc_to_sg_list(void *vmalloc_addr, |
@@ -805,3 +818,9 @@ void opal_free_sg_list(struct opal_sg_list *sg) | |||
805 | sg = NULL; | 818 | sg = NULL; |
806 | } | 819 | } |
807 | } | 820 | } |
821 | |||
822 | EXPORT_SYMBOL_GPL(opal_poll_events); | ||
823 | EXPORT_SYMBOL_GPL(opal_rtc_read); | ||
824 | EXPORT_SYMBOL_GPL(opal_rtc_write); | ||
825 | EXPORT_SYMBOL_GPL(opal_tpo_read); | ||
826 | EXPORT_SYMBOL_GPL(opal_tpo_write); | ||