Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e579201a authored by Russell King's avatar Russell King
Browse files

ARM: riscpc: parse video information from tagged list



Correctly parse the video information from the tagged list, so that we
end up with the right bytes-per-char values.  When booting with a
tagged list rather than a param block, this allows the decompressor to
display its messages during boot on the screen.

(Boot loaders normally pass a param block on this platform, but the
latest boot loader version recently released does not.)

Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
parent 1eac59d7
Loading
Loading
Loading
Loading
+8 −15
Original line number Diff line number Diff line
@@ -118,29 +118,22 @@ static void arch_decomp_setup(void)
	struct tag *t = (struct tag *)params;
	unsigned int nr_pages = 0, page_size = PAGE_SIZE;

	if (t->hdr.tag == ATAG_CORE)
	{
		for (; t->hdr.size; t = tag_next(t))
		{
			if (t->hdr.tag == ATAG_VIDEOTEXT)
			{
	if (t->hdr.tag == ATAG_CORE) {
		for (; t->hdr.size; t = tag_next(t)) {
			if (t->hdr.tag == ATAG_VIDEOTEXT) {
				video_num_rows = t->u.videotext.video_lines;
				video_num_cols = t->u.videotext.video_cols;
				bytes_per_char_h = t->u.videotext.video_points;
				bytes_per_char_v = t->u.videotext.video_points;
				video_x = t->u.videotext.x;
				video_y = t->u.videotext.y;
			}

			if (t->hdr.tag == ATAG_MEM)
			{
			} else if (t->hdr.tag == ATAG_VIDEOLFB) {
				bytes_per_char_h = t->u.videolfb.lfb_depth;
				bytes_per_char_v = 8;
			} else if (t->hdr.tag == ATAG_MEM) {
				page_size = PAGE_SIZE;
				nr_pages += (t->u.mem.size / PAGE_SIZE);
			}
		}
	}
	else
	{
	} else {
		nr_pages = params->nr_pages;
		page_size = params->page_size;
		video_num_rows = params->video_num_rows;