activate video mode 1280x1024x256@71 on Radeon

This commit is contained in:
Markus Fröschle
2016-11-17 17:40:26 +00:00
parent 910ab2f011
commit 070757f147
3 changed files with 21 additions and 30 deletions

View File

@@ -245,24 +245,24 @@ void offscreen_init(struct fb_info *info)
long size_screen;
long max_offscreen_size;
wrap = (long) info->var.xres_virtual * (long)(info->var.bits_per_pixel / 8);
size_screen = (long)info->var.yres_virtual * wrap;
wrap = (long) info->var.xres_virtual * (long) (info->var.bits_per_pixel / 8);
size_screen = (long) info->var.yres_virtual * wrap;
if (!size_screen)
size_screen = (long)info->screen_size;
size_screen = (long) info->screen_size;
pmd.mp_mfl = pmd.mp_rover = &tab_md[0];
tab_md[0].m_link = (MD *)NULL;
tab_md[0].m_start = (long)((unsigned long)info->ram_base + (unsigned long)size_screen);
tab_md[0].m_length = (long)info->ram_size - size_screen;
tab_md[0].m_link = (MD *) NULL;
tab_md[0].m_start = (long)((unsigned long) info->ram_base + (unsigned long) size_screen);
tab_md[0].m_length = (long) info->ram_size - size_screen;
tab_md[0].m_own = (void *)1L;
max_offscreen_size = ((long)info->var.xres_virtual * 8192L * (long)(info->var.bits_per_pixel / 8)) - size_screen;
max_offscreen_size = ((long) info->var.xres_virtual * 8192L * (long)(info->var.bits_per_pixel / 8)) - size_screen;
if (max_offscreen_size < 0)
max_offscreen_size = 0;
if (tab_md[0].m_length > max_offscreen_size)
tab_md[0].m_length = max_offscreen_size;
dbg("offscreen_init start %p, length 0x%ld, ram size 0x%ld\r\n",
dbg("offscreen_init start %p, length %ld, ram size %ld\r\n",
tab_md[0].m_start, tab_md[0].m_length, (long) info->ram_size);
pmd.mp_mal = (MD *)NULL;
}

View File

@@ -283,10 +283,10 @@ static struct radeonfb_info rfb =
static struct fb_var_screeninfo default_fb =
{
.xres = 640,
.yres = 480,
.xres_virtual = 640,
.yres_virtual = 480,
.xres = 1280,
.yres = 1024,
.xres_virtual = 1280,
.yres_virtual = 1024,
.bits_per_pixel = 8,
.grayscale = 0,
.red = { .length = 8 },
@@ -295,14 +295,15 @@ static struct fb_var_screeninfo default_fb =
.activate = FB_ACTIVATE_NOW,
.height = -1,
.width = -1,
.pixclock = 39721,
.left_margin = 40,
.right_margin = 24,
.upper_margin = 32,
.lower_margin = 11,
.hsync_len = 96,
.vsync_len = 2,
.pixclock = 7407,
.left_margin = 256,
.right_margin = 32,
.upper_margin = 34,
.lower_margin = 3,
.hsync_len = 144,
.vsync_len = 3,
.vmode = FB_VMODE_NONINTERLACED,
.activate = FB_ACTIVATE_ALL | FB_ACTIVATE_FORCE | FB_ACTIVATE_NOW
};
static struct fb_info fb =
@@ -339,7 +340,7 @@ struct mode_option resolution =
.height = 480,
.bpp = 8,
.freq = 60,
.flags = 0
.flags = 0,
};
int16_t force_measure_pll = 0;

View File

@@ -401,16 +401,6 @@ void run_bios(struct radeonfb_info *rinfo)
emu.emu_wrb(&emu, 0xffff7, '/');
emu.emu_wrb(&emu, 0xffffa, '/');
/*
* FixME: move PIT (programmable interval timer) init to its own file
* do we really need this? - don't think it does anything sensible ...
*/
outb(&emu, 0x36, 0x43);
outb(&emu, 0x00, 0x40);
outb(&emu, 0x00, 0x40);
// setup_int_vect();
/* cpu setup */
emu.x86.R_AX = devfn ? devfn : 0xff;
emu.x86.R_DX = 0x80;