Subject: Re: wscons
To: None <M.Drochner@fz-juelich.de>
From: Patrick Welche <prlw1@newn.cam.ac.uk>
List: current-users
Date: 12/05/1999 18:01:45
Matthias Drochner wrote:
>
> > On a side note, I get a rectangular steady cursor which follows the booting
> > text on the bottom line, but I also have a flashing underline cursor which
> > stays put at 0,2 from bottom left hand corner.
>
> I'd guess this is a bug in the SOFTCURSOR code which went in recently.
> Mostly harmless...
Just to make it clear - this is just with pcdisplay, not with vga
> Anyway - we know now that there is not another driver stepping on
> your ATI card but something in the vga driver it doesn't like.
> If we get it narrowed down, we could eg add an ATI specific quirk.
> Can you try to comment out some suspicious parts in vga.c?
> I'd start with the monochrome detection - you could force
> the "mono" variable in vga_common_probe() and the vh->vh_mono flag
> in vga_init() to zero.
> Besides this, you could replace vga_copyrows() by pcdisplay_copyrows()
> in vga_emulops.
> If this doesn't help, we'd have to kick out the parts dealing
> with "dispoffset", but hopefully this is not necessary.
Unfortunately, it didn't help. I include as a patch what I tried, just in
case I misunderstood, so it's probably time for "dispoffset", but you'll
have to teach me!
Cheers,
Patrick
Index: vga.c
===================================================================
RCS file: /cvsroot/syssrc/sys/dev/ic/vga.c,v
retrieving revision 1.21
diff -c -r1.21 vga.c
*** vga.c 1999/11/03 15:55:27 1.21
--- vga.c 1999/12/05 18:00:31
***************
*** 123,129 ****
--- 123,133 ----
pcdisplay_putchar,
pcdisplay_copycols,
pcdisplay_erasecols,
+ #if 0
vga_copyrows,
+ #else
+ pcdisplay_copyrows,
+ #endif
pcdisplay_eraserows,
vga_alloc_attr
};
***************
*** 263,271 ****
--- 267,279 ----
goto bad;
gotio_vga = 1;
+ #if 0
/* read "misc output register" */
regval = bus_space_read_1(iot, ioh_vga, 0xc);
mono = !(regval & 1);
+ #else
+ mono = 0;
+ #endif
if (bus_space_map(iot, (mono ? 0x3b0 : 0x3d0), 0x10, 0, &ioh_6845))
goto bad;
***************
*** 461,467 ****
--- 469,477 ----
bus_space_tag_t iot, memt;
{
struct vga_handle *vh = &vc->hdl;
+ #if 0
u_int8_t mor;
+ #endif
int i;
vh->vh_iot = iot;
***************
*** 470,478 ****
--- 480,492 ----
if (bus_space_map(vh->vh_iot, 0x3c0, 0x10, 0, &vh->vh_ioh_vga))
panic("vga_common_setup: couldn't map vga io");
+ #if 0
/* read "misc output register" */
mor = bus_space_read_1(vh->vh_iot, vh->vh_ioh_vga, 0xc);
vh->vh_mono = !(mor & 1);
+ #else
+ vh->vh_mono = 0;
+ #endif
if (bus_space_map(vh->vh_iot, (vh->vh_mono ? 0x3b0 : 0x3d0), 0x10, 0,
&vh->vh_ioh_6845))