diff options
Diffstat (limited to 'arch/powerpc/platforms/powernv/opal.c')
-rw-r--r-- | arch/powerpc/platforms/powernv/opal.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/arch/powerpc/platforms/powernv/opal.c b/arch/powerpc/platforms/powernv/opal.c index 3fb981c0ca80..2241565b0739 100644 --- a/arch/powerpc/platforms/powernv/opal.c +++ b/arch/powerpc/platforms/powernv/opal.c | |||
@@ -693,6 +693,15 @@ static void __init opal_dump_region_init(void) | |||
693 | "rc = %d\n", rc); | 693 | "rc = %d\n", rc); |
694 | } | 694 | } |
695 | 695 | ||
696 | static void opal_flash_init(struct device_node *opal_node) | ||
697 | { | ||
698 | struct device_node *np; | ||
699 | |||
700 | for_each_child_of_node(opal_node, np) | ||
701 | if (of_device_is_compatible(np, "ibm,opal-flash")) | ||
702 | of_platform_device_create(np, NULL, NULL); | ||
703 | } | ||
704 | |||
696 | static void opal_ipmi_init(struct device_node *opal_node) | 705 | static void opal_ipmi_init(struct device_node *opal_node) |
697 | { | 706 | { |
698 | struct device_node *np; | 707 | struct device_node *np; |
@@ -817,7 +826,7 @@ static int __init opal_init(void) | |||
817 | /* Setup error log interface */ | 826 | /* Setup error log interface */ |
818 | rc = opal_elog_init(); | 827 | rc = opal_elog_init(); |
819 | /* Setup code update interface */ | 828 | /* Setup code update interface */ |
820 | opal_flash_init(); | 829 | opal_flash_update_init(); |
821 | /* Setup platform dump extract interface */ | 830 | /* Setup platform dump extract interface */ |
822 | opal_platform_dump_init(); | 831 | opal_platform_dump_init(); |
823 | /* Setup system parameters interface */ | 832 | /* Setup system parameters interface */ |
@@ -829,6 +838,8 @@ static int __init opal_init(void) | |||
829 | /* Initialize OPAL IPMI backend */ | 838 | /* Initialize OPAL IPMI backend */ |
830 | opal_ipmi_init(opal_node); | 839 | opal_ipmi_init(opal_node); |
831 | 840 | ||
841 | opal_flash_init(opal_node); | ||
842 | |||
832 | return 0; | 843 | return 0; |
833 | } | 844 | } |
834 | machine_subsys_initcall(powernv, opal_init); | 845 | machine_subsys_initcall(powernv, opal_init); |
@@ -867,6 +878,9 @@ void opal_shutdown(void) | |||
867 | EXPORT_SYMBOL_GPL(opal_invalid_call); | 878 | EXPORT_SYMBOL_GPL(opal_invalid_call); |
868 | EXPORT_SYMBOL_GPL(opal_ipmi_send); | 879 | EXPORT_SYMBOL_GPL(opal_ipmi_send); |
869 | EXPORT_SYMBOL_GPL(opal_ipmi_recv); | 880 | EXPORT_SYMBOL_GPL(opal_ipmi_recv); |
881 | EXPORT_SYMBOL_GPL(opal_flash_read); | ||
882 | EXPORT_SYMBOL_GPL(opal_flash_write); | ||
883 | EXPORT_SYMBOL_GPL(opal_flash_erase); | ||
870 | 884 | ||
871 | /* Convert a region of vmalloc memory to an opal sg list */ | 885 | /* Convert a region of vmalloc memory to an opal sg list */ |
872 | struct opal_sg_list *opal_vmalloc_to_sg_list(void *vmalloc_addr, | 886 | struct opal_sg_list *opal_vmalloc_to_sg_list(void *vmalloc_addr, |