fb: Generalize framebuffer device initialization
This commit is contained in:
		| @@ -28,6 +28,7 @@ | ||||
| #include <console.h> | ||||
|  | ||||
| #include <drivers/serial.h> | ||||
| #include <drivers/fb.h> | ||||
|  | ||||
| #ifdef CONFIG_VEXPRESS_A9 | ||||
| #include <drivers/pl111.h> | ||||
| @@ -37,7 +38,7 @@ | ||||
| #include <drivers/bcm2835_videocore.h> | ||||
| #endif | ||||
|  | ||||
| struct fb myfb; | ||||
| struct fb console_fb; | ||||
|  | ||||
| void print_console_logo() { | ||||
| 	print_func(&console_putc, "                            _            _      _\n"); | ||||
| @@ -48,13 +49,25 @@ void print_console_logo() { | ||||
| 	print_func(&console_putc, "                        Copyright (C) 2012 - Aaron Lindsay\n"); | ||||
| } | ||||
|  | ||||
| void video_init(void) { | ||||
| #ifdef CONFIG_VEXPRESS_A9 | ||||
| 	pl111_init(&myfb, 16); | ||||
| #endif | ||||
| #ifdef CONFIG_RPI | ||||
| 	bcm2835_videocore_init(&myfb, 16); | ||||
| #endif | ||||
| void video_console_init(void) { | ||||
| 	struct fb_dev *fbdev = fb_first_device(); | ||||
| 	int ret; | ||||
|  | ||||
| 	if (!fbdev) { | ||||
| 		print("Error: No framebuffer-capable device registered."); | ||||
| 		return; | ||||
| 	} | ||||
|  | ||||
| 	ret = fbdev->init(&console_fb, 16); | ||||
| 	if (ret) { | ||||
| 		print("Error: Failed to initialize framebuffer device."); | ||||
| 		return; | ||||
| 	} | ||||
|  | ||||
| 	if ((console_init(&console_fb))) | ||||
| 		return; | ||||
|  | ||||
| 	print_console_logo(); | ||||
| } | ||||
|  | ||||
| void serial_console_init() { | ||||
| @@ -100,9 +113,7 @@ int main(void) { | ||||
|  | ||||
| 	init_initcalls(); | ||||
|  | ||||
| 	video_init(); | ||||
| 	console_init(&myfb); | ||||
| 	print_console_logo(); | ||||
| 	video_console_init(); | ||||
|  | ||||
| 	return 0; | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user