Subject: Re: [PATCH] agp/uninorth: Fix lockups with radeon KMS and >1x.

From: Benjamin Herrenschmidt <[email-masked]>
Date: Fri, 20 May 2011 11:10:33 +1000

On Thu, 2011-05-19 at 16:08 +0200, Michel Dänzer wrote:
> From: Michel Dänzer <[email-masked]>
> 
> This was based on a description by Ben Herrenschmidt:
> 
> > I've removed that SBA reset from the normal TLB invalidation path and
> > left it only once after turning AGP on.
> 
> About six months ago, he said:
> 
> > I did it a bit differently, but yeah, you get the idea. I'm doing a
> > patch series so don't bother pushing things too hard yet.
> 
> But I haven't seen anything from him about this since then, and people are
> regularly hitting these lockups, so here we are...
> 
> Signed-off-by: Michel Dänzer <[email-masked]>

Oops. I do have a pile of patches, but I never got something "stable"
enough and got distracted by more important stuff. Dave, please merge
this for now.

Acked-by: Benjamin Herrenschmidt <[email-masked]>

Thanks !

Cheers,
Ben.

> ---
>  drivers/char/agp/uninorth-agp.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/char/agp/uninorth-agp.c b/drivers/char/agp/uninorth-agp.c
> index 47c2218..55af723 100644
> --- a/drivers/char/agp/uninorth-agp.c
> +++ b/drivers/char/agp/uninorth-agp.c
> @@ -80,7 +80,7 @@ static void uninorth_tlbflush(struct agp_memory *mem)
>  			       ctrl | UNI_N_CFG_GART_INVAL);
>  	pci_write_config_dword(agp_bridge->dev, UNI_N_CFG_GART_CTRL, ctrl);
>  
> -	if (uninorth_rev <= 0x30) {
> +	if (!mem && uninorth_rev <= 0x30) {
>  		pci_write_config_dword(agp_bridge->dev, UNI_N_CFG_GART_CTRL,
>  				       ctrl | UNI_N_CFG_GART_2xRESET);
>  		pci_write_config_dword(agp_bridge->dev, UNI_N_CFG_GART_CTRL,