diff options
Diffstat (limited to 'arch/powerpc/kernel/btext.c')
| -rw-r--r-- | arch/powerpc/kernel/btext.c | 20 | 
1 files changed, 14 insertions, 6 deletions
| diff --git a/arch/powerpc/kernel/btext.c b/arch/powerpc/kernel/btext.c index a6920919d68e..f4e5e14ee2b6 100644 --- a/arch/powerpc/kernel/btext.c +++ b/arch/powerpc/kernel/btext.c @@ -111,7 +111,7 @@ void __init btext_setup_display(int width, int height, int depth, int pitch,  	logicalDisplayBase = (unsigned char *)address;  	dispDeviceBase = (unsigned char *)address;  	dispDeviceRowBytes = pitch; -	dispDeviceDepth = depth; +	dispDeviceDepth = depth == 15 ? 16 : depth;  	dispDeviceRect[0] = dispDeviceRect[1] = 0;  	dispDeviceRect[2] = width;  	dispDeviceRect[3] = height; @@ -160,20 +160,28 @@ int btext_initialize(struct device_node *np)  	unsigned long address = 0;  	u32 *prop; -	prop = (u32 *)get_property(np, "width", NULL); +	prop = (u32 *)get_property(np, "linux,bootx-width", NULL); +	if (prop == NULL) +		prop = (u32 *)get_property(np, "width", NULL);  	if (prop == NULL)  		return -EINVAL;  	width = *prop; -	prop = (u32 *)get_property(np, "height", NULL); +	prop = (u32 *)get_property(np, "linux,bootx-height", NULL); +	if (prop == NULL) +		prop = (u32 *)get_property(np, "height", NULL);  	if (prop == NULL)  		return -EINVAL;  	height = *prop; -	prop = (u32 *)get_property(np, "depth", NULL); +	prop = (u32 *)get_property(np, "linux,bootx-depth", NULL); +	if (prop == NULL) +		prop = (u32 *)get_property(np, "depth", NULL);  	if (prop == NULL)  		return -EINVAL;  	depth = *prop;  	pitch = width * ((depth + 7) / 8); -	prop = (u32 *)get_property(np, "linebytes", NULL); +	prop = (u32 *)get_property(np, "linux,bootx-linebytes", NULL); +	if (prop == NULL) +		prop = (u32 *)get_property(np, "linebytes", NULL);  	if (prop)  		pitch = *prop;  	if (pitch == 1) @@ -194,7 +202,7 @@ int btext_initialize(struct device_node *np)  	g_max_loc_Y = height / 16;  	dispDeviceBase = (unsigned char *)address;  	dispDeviceRowBytes = pitch; -	dispDeviceDepth = depth; +	dispDeviceDepth = depth == 15 ? 16 : depth;  	dispDeviceRect[0] = dispDeviceRect[1] = 0;  	dispDeviceRect[2] = width;  	dispDeviceRect[3] = height; | 
