linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* cg14 frambuffer bug in 2.2.19 (and probably 2.4.x as well)
@ 2001-07-26 11:08 Alex Buell
  2001-07-27  9:46 ` David S. Miller
  0 siblings, 1 reply; 5+ messages in thread
From: Alex Buell @ 2001-07-26 11:08 UTC (permalink / raw)
  To: Mailing List - Linux Kernel

Hi guys,

I have a patch here that fixes an annoying bug in the cg14 framebuffer
driver on sparc32 platforms. The bug is when it never switches off the
cursor before going into X11 mode, so you get an 'orrible cursor
overlaying whatever you've got on the screen, in the same position as the
consoles. Switching to any console and back to the X11 display, the cursor
overlays the last position the cursor was in on the console. On
investigating, discovered that the cg14 framebuffer doesn't switch off the
cursor!

Here's the patch:

--- linux/drivers/video/cgfourteenfb.c.orig     Thu Jul 26 11:34:00 2001
+++ linux/drivers/video/cgfourteenfb.c  Thu Jul 26 11:48:30 2001
@@ -234,6 +234,9 @@
        spin_lock_irqsave(&fb->lock, flags);
        if (c->enable)
                cur->ccr |= CG14_CCR_ENABLE;
+       else
+               cur->ccr &= ~CG14_CCR_ENABLE;
+
        cur->cursx = ((c->cpos.fbx - c->chot.fbx) & 0xfff);
        cur->cursy = ((c->cpos.fby - c->chot.fby) & 0xfff);
        spin_unlock_irqrestore(&fb->lock, flags);


-- 
Hey, they *are* out to get you, but it's nothing personal.

http://www.tahallah.demon.co.uk


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: cg14 frambuffer bug in 2.2.19 (and probably 2.4.x as well)
  2001-07-26 11:08 cg14 frambuffer bug in 2.2.19 (and probably 2.4.x as well) Alex Buell
@ 2001-07-27  9:46 ` David S. Miller
  2001-07-27 13:04   ` Alex Buell
  0 siblings, 1 reply; 5+ messages in thread
From: David S. Miller @ 2001-07-27  9:46 UTC (permalink / raw)
  To: alex.buell; +Cc: Mailing List - Linux Kernel


Alex Buell writes:
 > I have a patch here that fixes an annoying bug in the cg14 framebuffer
 > driver on sparc32 platforms.

I've made this change in both my 2.2.x and 2.4.x trees.

Thanks a lot for hunting this down and making a fix.

Later,
David S. Miller
davem@redhat.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: cg14 frambuffer bug in 2.2.19 (and probably 2.4.x as well)
  2001-07-27  9:46 ` David S. Miller
@ 2001-07-27 13:04   ` Alex Buell
  2001-07-28  4:05     ` Anton Blanchard
  0 siblings, 1 reply; 5+ messages in thread
From: Alex Buell @ 2001-07-27 13:04 UTC (permalink / raw)
  To: David S. Miller; +Cc: Mailing List - Linux Kernel

On Fri, 27 Jul 2001, David S. Miller wrote:

> I've made this change in both my 2.2.x and 2.4.x trees.
> Thanks a lot for hunting this down and making a fix.

Is the 2.4.7 fix anything like this:

       if (c->enable) {
                u8 tmp = sbus_readb(&cur->ccr);

                tmp |= CG14_CCR_ENABLE;
                sbus_writeb(tmp, &cur->ccr);
        }
        else {
                u8 tmp = sbus_readb(&cur->ccr);

                tmp &= ~CG14_CCR_ENABLE;
                sbus_writeb(tmp, &cur->ccr);
        }

It looks a bit ugly though. I'd prefer:

	u8 tmp = sbus_readb(&cur->ccr);

	if (c->enable)
		tmp != CG14_CCR_ENABLE;
	else
		tmp &= ~CG14_CCR_ENABLE;

	sbus_writeb(tmp, &cur->ccr);

I'll test this as soon as I recompile 2.4.7 with egcs 1.1.2 to prove a
theory of mine that using 2.95.3 results in non-bootable kernels.

PS: I'm still learning the internals of the sparc32 port. Lots of lovely
confusing bits to hack my way through. :o)

-- 
Hey, they *are* out to get you, but it's nothing personal.

http://www.tahallah.demon.co.uk


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: cg14 frambuffer bug in 2.2.19 (and probably 2.4.x as well)
  2001-07-28  4:05     ` Anton Blanchard
@ 2001-07-27 16:54       ` Alex Buell
  0 siblings, 0 replies; 5+ messages in thread
From: Alex Buell @ 2001-07-27 16:54 UTC (permalink / raw)
  To: Anton Blanchard
  Cc: Mailing List - sparclinux, David S. Miller, Mailing List - Linux Kernel

On Sat, 28 Jul 2001, Anton Blanchard wrote:

> Im compiling my kernels on 2.95.3 at the moment. I found one bug that
> turned out to be my fault (in include/asm-sparc/bitops.h), but there
> are sure to be more I havent caught yet.

Hmm, just seen davem's list of CVS commits, have run an update just now,
and will try again using 2.95.3.

Here's a patch to apply on top of the fix applied to 2.4.7 today, to fix
the ugliness of the if {} else {} statement and save a few bytes.

PS: If we need to discuss this any further, let's move this back to
sparclinux mailing list, shall we?

--- linux/drivers/video/cgfourteenfb.c.orig     Fri Jul 27 17:41:15 2001
+++ linux/drivers/video/cgfourteenfb.c  Fri Jul 27 17:46:15 2001
@@ -236,19 +236,17 @@
        struct cg_cursor *c = &fb->cursor;
        struct cg14_cursor *cur = fb->s.cg14.cursor;
        unsigned long flags;
+       u8 tmp;

        spin_lock_irqsave(&fb->lock, flags);
-       if (c->enable) {
-               u8 tmp = sbus_readb(&cur->ccr);
+       tmp = sbus_readb(&cur->ccr);

+       if (c->enable)
                tmp |= CG14_CCR_ENABLE;
-               sbus_writeb(tmp, &cur->ccr);
-       } else {
-               u8 tmp = sbus_readb(&cur->ccr);
-
+       else
                tmp &= ~CG14_CCR_ENABLE;
-               sbus_writeb(tmp, &cur->ccr);
-       }
+
+       sbus_writeb(tmp, &cur->ccr);
        sbus_writew(((c->cpos.fbx - c->chot.fbx) & 0xfff), &cur->cursx);
        sbus_writew(((c->cpos.fby - c->chot.fby) & 0xfff), &cur->cursy);
        spin_unlock_irqrestore(&fb->lock, flags);


-- 
Hey, they *are* out to get you, but it's nothing personal.

http://www.tahallah.demon.co.uk



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: cg14 frambuffer bug in 2.2.19 (and probably 2.4.x as well)
  2001-07-27 13:04   ` Alex Buell
@ 2001-07-28  4:05     ` Anton Blanchard
  2001-07-27 16:54       ` Alex Buell
  0 siblings, 1 reply; 5+ messages in thread
From: Anton Blanchard @ 2001-07-28  4:05 UTC (permalink / raw)
  To: Alex Buell; +Cc: David S. Miller, Mailing List - Linux Kernel


Hi,

> I'll test this as soon as I recompile 2.4.7 with egcs 1.1.2 to prove a
> theory of mine that using 2.95.3 results in non-bootable kernels.

Im compiling my kernels on 2.95.3 at the moment. I found one bug that
turned out to be my fault (in include/asm-sparc/bitops.h), but there
are sure to be more I havent caught yet.

Anton

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2001-07-27 16:57 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-07-26 11:08 cg14 frambuffer bug in 2.2.19 (and probably 2.4.x as well) Alex Buell
2001-07-27  9:46 ` David S. Miller
2001-07-27 13:04   ` Alex Buell
2001-07-28  4:05     ` Anton Blanchard
2001-07-27 16:54       ` Alex Buell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).