activate video mode 1280x1024x256@71 on Radeon
This commit is contained in:
@@ -245,24 +245,24 @@ void offscreen_init(struct fb_info *info)
|
|||||||
long size_screen;
|
long size_screen;
|
||||||
long max_offscreen_size;
|
long max_offscreen_size;
|
||||||
|
|
||||||
wrap = (long) info->var.xres_virtual * (long)(info->var.bits_per_pixel / 8);
|
wrap = (long) info->var.xres_virtual * (long) (info->var.bits_per_pixel / 8);
|
||||||
size_screen = (long)info->var.yres_virtual * wrap;
|
size_screen = (long) info->var.yres_virtual * wrap;
|
||||||
if (!size_screen)
|
if (!size_screen)
|
||||||
size_screen = (long)info->screen_size;
|
size_screen = (long) info->screen_size;
|
||||||
|
|
||||||
pmd.mp_mfl = pmd.mp_rover = &tab_md[0];
|
pmd.mp_mfl = pmd.mp_rover = &tab_md[0];
|
||||||
tab_md[0].m_link = (MD *)NULL;
|
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_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_length = (long) info->ram_size - size_screen;
|
||||||
tab_md[0].m_own = (void *)1L;
|
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)
|
if (max_offscreen_size < 0)
|
||||||
max_offscreen_size = 0;
|
max_offscreen_size = 0;
|
||||||
if (tab_md[0].m_length > max_offscreen_size)
|
if (tab_md[0].m_length > max_offscreen_size)
|
||||||
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);
|
tab_md[0].m_start, tab_md[0].m_length, (long) info->ram_size);
|
||||||
pmd.mp_mal = (MD *)NULL;
|
pmd.mp_mal = (MD *)NULL;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -283,10 +283,10 @@ static struct radeonfb_info rfb =
|
|||||||
|
|
||||||
static struct fb_var_screeninfo default_fb =
|
static struct fb_var_screeninfo default_fb =
|
||||||
{
|
{
|
||||||
.xres = 640,
|
.xres = 1280,
|
||||||
.yres = 480,
|
.yres = 1024,
|
||||||
.xres_virtual = 640,
|
.xres_virtual = 1280,
|
||||||
.yres_virtual = 480,
|
.yres_virtual = 1024,
|
||||||
.bits_per_pixel = 8,
|
.bits_per_pixel = 8,
|
||||||
.grayscale = 0,
|
.grayscale = 0,
|
||||||
.red = { .length = 8 },
|
.red = { .length = 8 },
|
||||||
@@ -295,14 +295,15 @@ static struct fb_var_screeninfo default_fb =
|
|||||||
.activate = FB_ACTIVATE_NOW,
|
.activate = FB_ACTIVATE_NOW,
|
||||||
.height = -1,
|
.height = -1,
|
||||||
.width = -1,
|
.width = -1,
|
||||||
.pixclock = 39721,
|
.pixclock = 7407,
|
||||||
.left_margin = 40,
|
.left_margin = 256,
|
||||||
.right_margin = 24,
|
.right_margin = 32,
|
||||||
.upper_margin = 32,
|
.upper_margin = 34,
|
||||||
.lower_margin = 11,
|
.lower_margin = 3,
|
||||||
.hsync_len = 96,
|
.hsync_len = 144,
|
||||||
.vsync_len = 2,
|
.vsync_len = 3,
|
||||||
.vmode = FB_VMODE_NONINTERLACED,
|
.vmode = FB_VMODE_NONINTERLACED,
|
||||||
|
.activate = FB_ACTIVATE_ALL | FB_ACTIVATE_FORCE | FB_ACTIVATE_NOW
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct fb_info fb =
|
static struct fb_info fb =
|
||||||
@@ -339,7 +340,7 @@ struct mode_option resolution =
|
|||||||
.height = 480,
|
.height = 480,
|
||||||
.bpp = 8,
|
.bpp = 8,
|
||||||
.freq = 60,
|
.freq = 60,
|
||||||
.flags = 0
|
.flags = 0,
|
||||||
};
|
};
|
||||||
int16_t force_measure_pll = 0;
|
int16_t force_measure_pll = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -401,16 +401,6 @@ void run_bios(struct radeonfb_info *rinfo)
|
|||||||
emu.emu_wrb(&emu, 0xffff7, '/');
|
emu.emu_wrb(&emu, 0xffff7, '/');
|
||||||
emu.emu_wrb(&emu, 0xffffa, '/');
|
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 */
|
/* cpu setup */
|
||||||
emu.x86.R_AX = devfn ? devfn : 0xff;
|
emu.x86.R_AX = devfn ? devfn : 0xff;
|
||||||
emu.x86.R_DX = 0x80;
|
emu.x86.R_DX = 0x80;
|
||||||
|
|||||||
Reference in New Issue
Block a user