Re: Using s3virge card in Sun Blade 2000
From: Alex Buell <hidden>
Date: 2011-01-06 23:27:17
Also in:
lkml
On Thu, 2011-01-06 at 14:29 -0800, David Miller wrote:
You have to initialize par->state.vgabase in the s3fb driver to the VGA area iomem pointer you calculated at boot time.
Thanks for that, I've just got past that, now it's changing modes that
crashes the driver. I can load and unload the driver, and it
automatically selects 640x480.
How do I track down the offending line of code from the following entry
in the logs:
TPC<s3fb_set_par+0x1a0/0xf78 [s3fb]>
Also, oddly enough, before calling save_vga it clears par->state, which
was why it was crashing. Explicitly setting the par->state.vgabase to
the vga_iobase address solved the problem as below. I also noticed that
having VGA_SAVE_FONTS crashes the driver, so I left it out - a quick
look through the code in vgastate.c indicate it needs rework to make it
work but I've left that for later.
(in s3fb_open)
if (par->ref_count = 0) {
memset(&(par->state), 0, sizeof(struct vgastate));
/* save_vga/restore_vga needs this to function */
par->state.vgabase = par->vga_iobase;
/*par->state.flags = VGA_SAVE_MODE | VGA_SAVE_FONTS | VGA_SAVE_CMAP;*/
par->state.flags = VGA_SAVE_MODE | VGA_SAVE_CMAP;
par->state.num_crtc = 0x70;
par->state.num_seq = 0x20;
save_vga(&(par->state));
Thanks, seems it's starting to work bit by bit!
--
Tactical Nuclear Kittens