diff options
| author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2003-03-28 19:19:28 +1100 |
|---|---|---|
| committer | Paul Mackerras <paulus@samba.org> | 2003-03-28 19:19:28 +1100 |
| commit | fb269473bba6f369e4f7fb98fa5c29979a2e7688 (patch) | |
| tree | 77b0e0ddea3019dbb2b64061e9f2cb0c6980b75f /arch/ppc/syslib | |
| parent | 1456e60d68b2d400a7d059dc05c3caf9e79db7cd (diff) | |
PPC32: Get Open Firmware to initialize all the displays, not just one.
Diffstat (limited to 'arch/ppc/syslib')
| -rw-r--r-- | arch/ppc/syslib/prom_init.c | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/arch/ppc/syslib/prom_init.c b/arch/ppc/syslib/prom_init.c index 127e4821e1d0..047e1bf54f96 100644 --- a/arch/ppc/syslib/prom_init.c +++ b/arch/ppc/syslib/prom_init.c @@ -275,7 +275,7 @@ check_display(unsigned long mem) { phandle node; ihandle ih; - int i; + int i, j; char type[16], *path; static unsigned char default_colors[] = { 0x00, 0x00, 0x00, @@ -335,26 +335,23 @@ check_display(unsigned long mem) break; } -try_again: - /* - * Open the first display and set its colormap. - */ - if (prom_num_displays > 0) { - path = prom_display_paths[0]; + for (j=0; j<prom_num_displays; j++) { + path = prom_display_paths[j]; prom_print("opening display "); prom_print(path); ih = call_prom("open", 1, 1, path); if (ih == 0 || ih == (ihandle) -1) { prom_print("... failed\n"); - for (i=1; i<prom_num_displays; i++) { + for (i=j+1; i<prom_num_displays; i++) { prom_display_paths[i-1] = prom_display_paths[i]; prom_display_nodes[i-1] = prom_display_nodes[i]; } - if (--prom_num_displays > 0) - prom_disp_node = prom_display_nodes[0]; - else + if (--prom_num_displays > 0) { + prom_disp_node = prom_display_nodes[j]; + j--; + } else prom_disp_node = NULL; - goto try_again; + continue; } else { prom_print("... ok\n"); /* @@ -369,7 +366,7 @@ try_again: break; #ifdef CONFIG_LOGO_LINUX_CLUT224 - clut = logo_linux_clut224.clut; + clut = PTRRELOC(logo_linux_clut224.clut); for (i = 0; i < logo_linux_clut224.clutsize; i++, clut += 3) if (prom_set_color(ih, i + 32, clut[0], |
