[PATCH] FB: Get the Geode GX frambuffer size from the BIOS

Use the Geode GX BIOS virtual registers to get the actual size of the
framebuffer.

Signed-off-by: Jordan Crouse <jordan.crouse@amd.com>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Acked-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Jordan Crouse 2006-12-08 02:40:52 -08:00 committed by Linus Torvalds
parent 4437cd1e98
commit 4c1979c896
2 changed files with 13 additions and 4 deletions

View File

@ -21,10 +21,19 @@
#include "geodefb.h"
#include "display_gx.h"
int gx_frame_buffer_size(void)
unsigned int gx_frame_buffer_size(void)
{
/* Assuming 16 MiB. */
return 16*1024*1024;
unsigned int val;
/* FB size is reported by a virtual register */
/* Virtual register class = 0x02 */
/* VG_MEM_SIZE(512Kb units) = 0x00 */
outw(0xFC53, 0xAC1C);
outw(0x0200, 0xAC1C);
val = (unsigned int)(inw(0xAC1E)) & 0xFFl;
return (val << 19);
}
int gx_line_delta(int xres, int bpp)

View File

@ -11,7 +11,7 @@
#ifndef __DISPLAY_GX_H__
#define __DISPLAY_GX_H__
int gx_frame_buffer_size(void);
unsigned int gx_frame_buffer_size(void);
int gx_line_delta(int xres, int bpp);
extern struct geode_dc_ops gx_dc_ops;