ppc32: adapt prom_init to offb change
PATCH 1/1 ppc32: adapt prom_init to offb change
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 <[email protected]>
===== arch/ppc/syslib/prom_init.c 1.14 vs edited =====
arch/ppc/syslib/prom_init.c +20 -4
@@ -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 ); } }