2005-03-24 10:34:48

by Dave Airlie

[permalink] [raw]
Subject: drm bugs hopefully fixed but there might still be one..


Hi Andrew, Dave,

I've put a couple of patches into my drm-2.6 tree that hopefully fix up
the multi-bridge on i915 and the XFree86 4.3 issue.. Andrew can you drop
the two patches in your tree.. the one from Brice and the one I attached
to the bug? you'll get conflicts anyway I'm sure. I had to modify Brices
one as it didn't look safe to me in all cases..

I think their might be one left, but I think it only seems to be on
non-intel AGP system, as in my system works fine for a combination of
cards and X releases ... anyone with a VIA chipset and Radeon graphics
card or r128 card.. testing the next -mm would help me a lot..

Dave.

--
David Airlie, Software Engineer
http://www.skynet.ie/~airlied / airlied at skynet.ie
Linux kernel - DRI, VAX / pam_smb / ILUG


2005-03-24 11:05:14

by Andrew Morton

[permalink] [raw]
Subject: Re: drm bugs hopefully fixed but there might still be one..

Dave Airlie <[email protected]> wrote:
>
> I've put a couple of patches into my drm-2.6 tree that hopefully fix up
> the multi-bridge on i915 and the XFree86 4.3 issue.. Andrew can you drop
> the two patches in your tree.. the one from Brice and the one I attached
> to the bug? you'll get conflicts anyway I'm sure. I had to modify Brices
> one as it didn't look safe to me in all cases..
>
> I think their might be one left, but I think it only seems to be on
> non-intel AGP system, as in my system works fine for a combination of
> cards and X releases ... anyone with a VIA chipset and Radeon graphics
> card or r128 card.. testing the next -mm would help me a lot..

argh, I just uploaded -mm2, but haven't announced it yet. I'll resync with
your -bk.

2005-03-24 17:04:22

by Jesse Barnes

[permalink] [raw]
Subject: Re: drm bugs hopefully fixed but there might still be one..

On Thursday, March 24, 2005 2:33 am, Dave Airlie wrote:
> Hi Andrew, Dave,
>
> I've put a couple of patches into my drm-2.6 tree that hopefully fix up
> the multi-bridge on i915 and the XFree86 4.3 issue.. Andrew can you drop
> the two patches in your tree.. the one from Brice and the one I attached
> to the bug? you'll get conflicts anyway I'm sure. I had to modify Brices
> one as it didn't look safe to me in all cases..
>
> I think their might be one left, but I think it only seems to be on
> non-intel AGP system, as in my system works fine for a combination of
> cards and X releases ... anyone with a VIA chipset and Radeon graphics
> card or r128 card.. testing the next -mm would help me a lot..

I'm trying to get ahold of one--so hopefully I'll be able to test and fix this
stuff up when I do.

Jesse

2005-03-24 18:18:44

by Dave Jones

[permalink] [raw]
Subject: Re: drm bugs hopefully fixed but there might still be one..

On Thu, Mar 24, 2005 at 09:02:03AM -0800, Jesse Barnes wrote:
> On Thursday, March 24, 2005 2:33 am, Dave Airlie wrote:
> > Hi Andrew, Dave,
> >
> > I've put a couple of patches into my drm-2.6 tree that hopefully fix up
> > the multi-bridge on i915 and the XFree86 4.3 issue.. Andrew can you drop
> > the two patches in your tree.. the one from Brice and the one I attached
> > to the bug? you'll get conflicts anyway I'm sure. I had to modify Brices
> > one as it didn't look safe to me in all cases..
> >
> > I think their might be one left, but I think it only seems to be on
> > non-intel AGP system, as in my system works fine for a combination of
> > cards and X releases ... anyone with a VIA chipset and Radeon graphics
> > card or r128 card.. testing the next -mm would help me a lot..
>
> I'm trying to get ahold of one--so hopefully I'll be able to test and fix this
> stuff up when I do.

Aparently backing out the changes to via's tlb_flush routine fixed it
for one VIA user. I've not had a chance to look into it just yet.
Worse case we can just drop those changes for 2.6.12

Dave


2005-03-24 18:40:10

by Jesse Barnes

[permalink] [raw]
Subject: Re: drm bugs hopefully fixed but there might still be one..

On Thursday, March 24, 2005 10:18 am, Dave Jones wrote:
> > I'm trying to get ahold of one--so hopefully I'll be able to test and
> > fix this stuff up when I do.
>
> Aparently backing out the changes to via's tlb_flush routine fixed it
> for one VIA user. I've not had a chance to look into it just yet.
> Worse case we can just drop those changes for 2.6.12

You mean these changes?

--- a/drivers/char/agp/via-agp.c 2005-03-24 10:33:45 -08:00
+++ b/drivers/char/agp/via-agp.c 2005-03-24 10:33:45 -08:00
@@ -83,8 +83,10 @@

pci_read_config_dword(agp_bridge->dev, VIA_GARTCTRL, &temp);
temp |= (1<<7);
+ temp &= ~0x7f;
pci_write_config_dword(agp_bridge->dev, VIA_GARTCTRL, temp);
temp &= ~(1<<7);
+ temp &= ~0x7f;
pci_write_config_dword(agp_bridge->dev, VIA_GARTCTRL, temp);
}


I'll ask Markus to try reverting this since I still don't have a machine
setup. It sounds like a possibility given what he's seeing.

Jesse

2005-03-24 20:10:29

by Jean Delvare

[permalink] [raw]
Subject: Re: drm bugs hopefully fixed but there might still be one..

Ho all,

> > Aparently backing out the changes to via's tlb_flush routine fixed
> > it for one VIA user. I've not had a chance to look into it just yet.
> > Worse case we can just drop those changes for 2.6.12

I am that one.

> You mean these changes?
>
> --- a/drivers/char/agp/via-agp.c 2005-03-24 10:33:45 -08:00
> +++ b/drivers/char/agp/via-agp.c 2005-03-24 10:33:45 -08:00
> @@ -83,8 +83,10 @@
>
> pci_read_config_dword(agp_bridge->dev, VIA_GARTCTRL, &temp);
> temp |= (1<<7);
> + temp &= ~0x7f;
> pci_write_config_dword(agp_bridge->dev, VIA_GARTCTRL, temp);
> temp &= ~(1<<7);
> + temp &= ~0x7f;
> pci_write_config_dword(agp_bridge->dev, VIA_GARTCTRL, temp);
> }

Exactlty. I had to revert this one since 2.6.11-bk3, or starting X kills
the machine. By "kill", I mean the real thing, black screen, dead
network, reset is the only choice. This is a (surprise!) VIA-based
motherboard (Asus A7V133-C) with Radeon 9200-based graphics adapter.
Dave Airlie was asking for a tester with such a configuration. I can
test whatever you want. Just tell me what we are looking for :)

With the patch above reverted, 2.6.12-rc1-mm2 seems to work just fine
for me. glxgears is OK and I just had a game of UT (first of the name).
However, I am not a regular gamer so I'm not sure what to look for.

Thanks,
--
Jean Delvare

2005-03-24 21:59:21

by Cliff White

[permalink] [raw]
Subject: Re: drm bugs hopefully fixed but there might still be one..

On Thu, 24 Mar 2005 10:33:02 +0000 (GMT)
Dave Airlie <[email protected]> wrote:

>
> Hi Andrew, Dave,
>
> I've put a couple of patches into my drm-2.6 tree that hopefully fix up
> the multi-bridge on i915 and the XFree86 4.3 issue.. Andrew can you drop
> the two patches in your tree.. the one from Brice and the one I attached
> to the bug? you'll get conflicts anyway I'm sure. I had to modify Brices
> one as it didn't look safe to me in all cases..
>
> I think their might be one left, but I think it only seems to be on
> non-intel AGP system, as in my system works fine for a combination of
> cards and X releases ... anyone with a VIA chipset and Radeon graphics
> card or r128 card.. testing the next -mm would help me a lot..

Okay, i have a iBook G4, with radeon, with 2.6.12-rc1-mm2, i'm getting the following OOPS
on boot. I'm hand-copying this stuff, please let me know if you need any more info, .config, etc
------------[drm] Initalized drm 1.0.0 20040925
floating point used in kernel (task=effc1770, pc=c03bd040)
Oops: kernel access of nad area, sig:11 [#1]
PREEMPT
NIP: C03BD040 LR: C01, cliffw80540 SP:
...
TASK = effc1770[1] 'swapper' THREAD: effc2000


LRL [c0180540] drm_agp_init+0x48/0xdc
Call trace:
[c017e74c] drm_fill_in_dev+0xdc/0x180
[c017eb44] drm_get_dev+0x78
[c...] radeon_init
[c...] do_initcalls
[c..] init
[c..] kernel_thread
---------------
cliffw

>
> Dave.
>
> --
> David Airlie, Software Engineer
> http://www.skynet.ie/~airlied / airlied at skynet.ie
> Linux kernel - DRI, VAX / pam_smb / ILUG
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>


--
"Ive always gone through periods where I bolt upright at four in the morning;
now at least theres a reason." -Michael Feldman

2005-03-24 22:21:40

by Andrew Morton

[permalink] [raw]
Subject: Re: drm bugs hopefully fixed but there might still be one..

cliff white <[email protected]> wrote:
>
> Okay, i have a iBook G4, with radeon, with 2.6.12-rc1-mm2, i'm getting the following OOPS
> on boot.

Please try reverting agp-make-some-code-static.patch (Dunno why that would
fix an oops, but apparently it does).

2005-03-24 23:05:16

by Cliff White

[permalink] [raw]
Subject: Re: drm bugs hopefully fixed but there might still be one..

On Thu, 24 Mar 2005 14:21:31 -0800
Andrew Morton <[email protected]> wrote:

> cliff white <[email protected]> wrote:
> >
> > Okay, i have a iBook G4, with radeon, with 2.6.12-rc1-mm2, i'm getting the following OOPS
> > on boot.
>
> Please try reverting agp-make-some-code-static.patch (Dunno why that would
> fix an oops, but apparently it does).
>
It does the same thing Brice's fix does. Need to put the
one extern struct definition back in agp_backend.h and that is the badness:

diff -puN include/linux/agp_backend.h~agp-make-some-code-static include/linux/agp_backend.h
--- 25/include/linux/agp_backend.h~agp-make-some-code-static 2005-03-21 21:53:17.000000000 -0800
+++ 25-akpm/include/linux/agp_backend.h 2005-03-21 21:53:17.000000000 -0800
@@ -94,8 +94,6 @@ struct agp_memory {
extern struct agp_bridge_data *agp_bridge;
extern struct list_head agp_bridges;

-extern struct agp_bridge_data *(*agp_find_bridge)(struct pci_dev *);
-
extern void agp_free_memory(struct agp_memory *);
extern struct agp_memory *agp_allocate_memory(struct agp_bridge_data *, size_t, u32);
extern int agp_copy_info(struct agp_bridge_data *, struct agp_kern_info *);
_
----------
cliffw

--
"Ive always gone through periods where I bolt upright at four in the morning;
now at least theres a reason." -Michael Feldman

2005-03-24 23:12:45

by Andrew Morton

[permalink] [raw]
Subject: Re: drm bugs hopefully fixed but there might still be one..

cliff white <[email protected]> wrote:
>
> -extern struct agp_bridge_data *(*agp_find_bridge)(struct pci_dev *);
> -

Oh crap, so the compiler decided that agp_find_bridge() was a function and
decided to jump to it, rather than reading from it and doing an indirect
jump. Yup, that'll crash it. Sorry about that.

This is another reason why doing the old-style

(*agp_find_bridge)(...);

is better than doing the new-style

agp_find_bridge(...);

The former case won't even compile, and is more readable.