]> git.hungrycats.org Git - linux/commitdiff
[PATCH] ppc64: Setup fw_features before init_early calls on pSeries
authorOlof Johansson <olof@austin.ibm.com>
Fri, 3 Sep 2004 03:23:19 +0000 (20:23 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Fri, 3 Sep 2004 03:23:19 +0000 (20:23 -0700)
To be able to use the cur_cpu_spec->firmware_features values in early
setup, the function initializing them has to be moved up to before the
early init calls.

Signed-off-by: Olof Johansson <olof@austin.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/ppc64/kernel/chrp_setup.c
arch/ppc64/kernel/setup.c

index d2a7377add536ef633228574065ddf54ce9e81db..b26319f7cf28aceb80018de9d48e2a71e2cd11af 100644 (file)
@@ -229,10 +229,6 @@ void __init
 chrp_init(unsigned long r3, unsigned long r4, unsigned long r5,
          unsigned long r6, unsigned long r7)
 {
-       struct device_node * dn;
-       char * hypertas;
-       unsigned int len;
-
        ppc_md.setup_arch     = chrp_setup_arch;
        ppc_md.get_cpuinfo    = chrp_get_cpuinfo;
        if (naca->interrupt_controller == IC_OPEN_PIC) {
@@ -261,10 +257,18 @@ chrp_init(unsigned long r3, unsigned long r4, unsigned long r5,
 
        ppc_md.progress       = chrp_progress;
 
-        /* Build up the firmware_features bitmask field
-         * using contents of device-tree/ibm,hypertas-functions.
-         * Ultimately this functionality may be moved into prom.c prom_init().
-         */
+}
+
+/* Build up the firmware_features bitmask field
+ * using contents of device-tree/ibm,hypertas-functions.
+ * Ultimately this functionality may be moved into prom.c prom_init().
+ */
+void __init fw_feature_init(void)
+{
+       struct device_node * dn;
+       char * hypertas;
+       unsigned int len;
+
        cur_cpu_spec->firmware_features = 0;
        dn = of_find_node_by_path("/rtas");
        if (dn == NULL) {
index 4baa8cf38cd9dcff1943879ef5b4358d23ec1e6e..7796e4e52964aadbbbd63c318a8339ce60f9d4ff 100644 (file)
@@ -67,6 +67,7 @@ extern void  pmac_init(unsigned long r3,
                       unsigned long r6,
                       unsigned long r7);
 
+extern void fw_feature_init(void);
 extern void iSeries_init( void );
 extern void iSeries_init_early( void );
 extern void pSeries_init_early( void );
@@ -279,11 +280,13 @@ void setup_system(unsigned long r3, unsigned long r4, unsigned long r5,
 
 #ifdef CONFIG_PPC_PSERIES
        case PLATFORM_PSERIES:
+               fw_feature_init();
                pSeries_init_early();
                parse_bootinfo();
                break;
 
        case PLATFORM_PSERIES_LPAR:
+               fw_feature_init();
                pSeriesLP_init_early();
                parse_bootinfo();
                break;