[PATCH] ppc32: adapt prom_init to offb change

From: Benjamin Herrenschmidt
Date: Thu Sep 23 2004 - 20:16:12 EST


Hi !

The changes to prom_init/offb interaction introduced by the ppc64
monster cleanup patch need a fix to ppc32 prom_init so that offb
works again. ppc32 prom_init() could use a lot more cleanup, but
let's do the minimal fix to make it work now.

Signed-off-by: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>

===== arch/ppc/syslib/prom_init.c 1.14 vs edited =====
--- 1.14/arch/ppc/syslib/prom_init.c 2004-07-27 04:44:22 +10:00
+++ edited/arch/ppc/syslib/prom_init.c 2004-09-24 10:59:24 +10:00
@@ -115,11 +115,11 @@
ihandle prom_chosen __initdata;
ihandle prom_stdout __initdata;

-char *prom_display_paths[FB_MAX] __initdata;
-phandle prom_display_nodes[FB_MAX] __initdata;
-unsigned int prom_num_displays __initdata;
-char *of_stdout_device __initdata;
+static char *prom_display_paths[FB_MAX] __initdata;
+static phandle prom_display_nodes[FB_MAX] __initdata;
+static unsigned int prom_num_displays __initdata;
static ihandle prom_disp_node __initdata;
+char *of_stdout_device __initdata;

unsigned int rtas_data; /* physical pointer */
unsigned int rtas_entry; /* physical pointer */
@@ -403,6 +403,7 @@

for (j=0; j<prom_num_displays; j++) {
path = prom_display_paths[j];
+ node = prom_display_nodes[j];
prom_print("opening display ");
prom_print(path);
ih = call_prom("open", 1, 1, path);
@@ -420,6 +421,8 @@
continue;
} else {
prom_print("... ok\n");
+ call_prom("setprop", 4, 1, node, "linux,opened", 0, NULL);
+
/*
* Setup a usable color table when the appropriate
* method is available.
@@ -439,6 +442,19 @@
clut[1], clut[2]) != 0)
break;
#endif /* CONFIG_LOGO_LINUX_CLUT224 */
+ }
+ }
+
+ if (prom_stdout) {
+ phandle p;
+ p = call_prom("instance-to-package", 1, 1, prom_stdout);
+ if (p && (int)p != -1) {
+ type[0] = 0;
+ call_prom("getprop", 4, 1, p, "device_type",
+ type, sizeof(type));
+ if (strcmp(type, "display") == 0)
+ call_prom("setprop", 4, 1, p, "linux,boot-display",
+ 0, NULL);
}
}



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/