public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Dave Jones <davej@redhat.com>
To: Paul Mackerras <paulus@samba.org>
Cc: torvalds@osdl.org, benh@kernel.crashing.org,
	linux-kernel@vger.kernel.org
Subject: Re: AGP bogosities
Date: Thu, 10 Mar 2005 21:12:48 -0500	[thread overview]
Message-ID: <20050311021248.GA20697@redhat.com> (raw)
In-Reply-To: <16944.62310.967444.786526@cargo.ozlabs.ibm.com>

On Fri, Mar 11, 2005 at 12:24:54PM +1100, Paul Mackerras wrote:

 > In fact there are other bogosities in drivers/char/agp/generic.c.  I
 > can't believe Dave ever tested that code with an AGP 3.0 device.

Hrmm, I'm fairly sure I did. It's also been sat in -mm without complaint
for a few weeks, which is odd.

 > you pass in a mode that has the AGP 3.0 bit set, agp_v3_parse_one()
 > will first clear that bit (and print a message), and then complain
 > because you haven't got that bit set in the mode, with a message that
 > the caller is broken.  Furthermore, if the mode passed in has both the
 > 4x and 8x bits set, the new code will give you 4x where the old code
 > would give you 8x (which is what the caller wanted).
 > 
 > The patch below fixes these problems.  It will work in the 99.99% of
 > cases where we have one AGP bridge and one AGP video card.  We should
 > eventually cope with multiple AGP bridges, but doing the matching of
 > bridges to video cards is a hard problem because the video card is not
 > necessarily a child or sibling of the PCI device that we use for
 > controlling the AGP bridge.  I think we need to see an actual example
 > of a system with multiple AGP bridges first.
 > 
 > Oh, and by the way, I have 3D working relatively well on my G5 with a
 > 64-bit kernel (and 32-bit X server and clients), which is why I care
 > about AGP 3.0 support. :)
 > 
 > Paul.
 > 
 > diff -urN linux-2.5/drivers/char/agp/agp.h g5-bad/drivers/char/agp/agp.h
 > --- linux-2.5/drivers/char/agp/agp.h	2005-03-07 14:01:44.000000000 +1100
 > +++ g5/drivers/char/agp/agp.h	2005-03-11 11:54:54.000000000 +1100
 > @@ -322,7 +322,7 @@
 >  #define AGPCTRL_GTLBEN		(1<<7)
 >  
 >  #define AGP2_RESERVED_MASK 0x00fffcc8
 > -#define AGP3_RESERVED_MASK 0x00ff00cc
 > +#define AGP3_RESERVED_MASK 0x00ff00c4
 >  
 >  #define AGP_ERRATA_FASTWRITES 1<<0
 >  #define AGP_ERRATA_SBA	 1<<1
 > diff -urN linux-2.5/drivers/char/agp/generic.c g5-bad/drivers/char/agp/generic.c
 > --- linux-2.5/drivers/char/agp/generic.c	2005-03-11 11:47:37.000000000 +1100
 > +++ g5/drivers/char/agp/generic.c	2005-03-11 12:08:29.000000000 +1100
 > @@ -515,13 +515,9 @@
 >  		printk (KERN_INFO PFX "%s tried to set rate=x0. Setting to AGP3 x4 mode.\n", current->comm);
 >  		*requested_mode |= AGPSTAT3_4X;
 >  	}
 > -	if (tmp == 3) {
 > -		printk (KERN_INFO PFX "%s tried to set rate=x3. Setting to AGP3 x4 mode.\n", current->comm);
 > -		*requested_mode |= AGPSTAT3_4X;
 > -	}
 > -	if (tmp >3) {
 > -		printk (KERN_INFO PFX "%s tried to set rate=x%d. Setting to AGP3 x8 mode.\n", current->comm, tmp);
 > -		*requested_mode |= AGPSTAT3_8X;
 > +	if (tmp >= 3) {
 > +		printk (KERN_INFO PFX "%s tried to set rate=x%d. Setting to AGP3 x8 mode.\n", current->comm, tmp * 4);
 > +		*requested_mode = (*requested_mode & ~7) | AGPSTAT3_8X;
 >  	}

This seems to make sense.

 >  	/* ARQSZ - Set the value to the maximum one.
 > @@ -642,11 +638,6 @@
 >  			return 0;
 >  		}
 >  		cap_ptr = pci_find_capability(device, PCI_CAP_ID_AGP);
 > -		if (!cap_ptr) {
 > -			pci_dev_put(device);
 > -			continue;
 > -		}
 > -			cap_ptr = 0;
 >  	}

This part I'm not so sure about.
The pci_get_class() call a few lines above will get a refcount that
we will now never release.

Thanks for taking a look at this. The absense of hardware to test
on means I pretty much rely on feedback from inclusion in -mm
to hear about problems like this before it hits mainline.
Unfortunatly, no-one with ppc64 tested it there it seems :-(

		Dave


  parent reply	other threads:[~2005-03-11  2:16 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-11  1:24 AGP bogosities Paul Mackerras
2005-03-11  2:04 ` Jesse Barnes
2005-03-11  2:11   ` Paul Mackerras
2005-03-11  2:18     ` Jesse Barnes
2005-03-11  2:38       ` Benjamin Herrenschmidt
2005-03-11  4:02         ` Jesse Barnes
2005-03-11  4:30           ` Benjamin Herrenschmidt
2005-03-11 16:39             ` Jesse Barnes
2005-03-11 17:59               ` Bjorn Helgaas
2005-03-11 18:04                 ` Jesse Barnes
2005-03-12  3:27                   ` Mike Werner
2005-03-12  3:58                     ` Dave Jones
2005-03-13  3:13                       ` Jesse Barnes
2005-03-13  4:08                         ` Dave Jones
2005-03-13  4:28                           ` Dave Jones
2005-03-11 22:43                 ` Paul Mackerras
2005-03-11 23:22                   ` Bjorn Helgaas
2005-03-12  0:12                     ` Benjamin Herrenschmidt
2005-03-12  1:34                     ` Paul Mackerras
2005-03-11 18:04   ` James Simmons
2005-03-11 18:08     ` Jesse Barnes
2005-03-11  2:04 ` Linus Torvalds
2005-03-11  2:12 ` Dave Jones [this message]
2005-03-11  2:18   ` Paul Mackerras
2005-03-11  2:23     ` Dave Jones
2005-03-11  2:40       ` Benjamin Herrenschmidt
2005-03-11  2:49         ` Dave Jones
2005-03-12 20:49           ` Greg KH
2005-03-11  2:42     ` Linus Torvalds
2005-03-11 22:18       ` OGAWA Hirofumi
2005-03-11 22:26         ` Dave Jones
2005-03-11 22:33           ` Chris Wedgwood
2005-03-11 23:52             ` Gene Heskett
2005-03-11 22:44           ` Linus Torvalds
2005-03-11 23:09           ` Paul Mackerras
2005-03-12  0:06             ` Gene Heskett
2005-03-14  8:17           ` Pavel Machek
2005-03-14  8:27             ` David Lang
2005-03-14  8:37               ` dmesg verbosity [was Re: AGP bogosities] Pavel Machek
2005-03-14 16:55                 ` Jesse Barnes
2005-03-14 17:03                   ` Pavel Machek
2005-03-14 17:17                   ` Dave Jones
2005-03-14 17:18                   ` Linus Torvalds
2005-03-14 17:27                     ` Jesse Barnes
2005-03-14 17:27                     ` Pavel Machek
2005-03-15 20:18                     ` Greg Stark
2005-03-14 18:12                   ` Diego Calleja
2005-03-14 19:07                     ` Lee Revell
2005-03-20  6:44                       ` David Lang
2005-03-23  0:37                       ` Diego Calleja
2005-03-23  0:53                         ` Lee Revell
2005-03-23  1:13                           ` Dave Jones
2005-03-23  1:29                             ` Andrew Morton
2005-03-23  8:21                             ` Giuseppe Bilotta
2005-03-23 16:14                               ` Dave Jones
2005-03-23 16:49                                 ` Giuseppe Bilotta
2005-03-23 17:17                                   ` Dave Jones
2005-03-23 14:10                             ` Diego Calleja
2005-03-23  8:19                           ` Giuseppe Bilotta
2005-03-30  9:45                           ` Pavel Machek
2005-03-23  0:53                         ` Zan Lynx
2005-03-23  0:55                         ` Grant Coady
2005-03-14 21:55                   ` Benjamin Herrenschmidt
2005-03-14 22:08                     ` David Lang
2005-03-15  0:02                     ` Pavel Machek
2005-03-11 22:42         ` AGP bogosities Dmitry Torokhov
2005-03-11 22:47           ` Dmitry Torokhov
2005-03-12 17:09         ` Linus Torvalds
2005-03-12 22:26           ` OGAWA Hirofumi
2005-03-12 22:34             ` Linus Torvalds
2005-03-11  2:35   ` Benjamin Herrenschmidt
2005-03-11  2:43     ` Dave Jones
2005-03-11  2:37   ` Linus Torvalds
2005-03-11 22:11 ` J.A. Magallon
2005-03-11 22:18   ` Dave Jones
2005-03-11 22:46     ` J.A. Magallon
2005-03-11 23:16       ` Martin Schlemmer
2005-03-11 23:17         ` J.A. Magallon
2005-03-11 23:23           ` Martin Schlemmer
2005-03-11 23:24             ` J.A. Magallon
  -- strict thread matches above, loose matches on Subject: below --
2005-03-12  4:33 Ken Ryan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20050311021248.GA20697@redhat.com \
    --to=davej@redhat.com \
    --cc=benh@kernel.crashing.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=paulus@samba.org \
    --cc=torvalds@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox