Merge ../linus
authorDave Jones <davej@redhat.com>
Tue, 12 Dec 2006 23:13:32 +0000 (18:13 -0500)
committerDave Jones <davej@redhat.com>
Tue, 12 Dec 2006 23:13:32 +0000 (18:13 -0500)
1  2 
drivers/char/agp/Kconfig
drivers/char/agp/generic.c

diff --combined drivers/char/agp/Kconfig
index 3d7cad7841de86a42e54777f07b19debb8d5e3d4,c603bf2915803e0e9d243b6d82d5db317780b473..a9f9c48c2424c8f307061bdf7feda686d7a996ab
@@@ -1,6 -1,6 +1,6 @@@
  config AGP
        tristate "/dev/agpgart (AGP Support)"
-       depends on ALPHA || IA64 || PPC || X86
+       depends on ALPHA || IA64 || PARISC || PPC || X86
        depends on PCI
        ---help---
          AGP (Accelerated Graphics Port) is a bus system mainly used to
@@@ -86,7 -86,7 +86,7 @@@ config AGP_NVIDI
  
  config AGP_SIS
        tristate "SiS chipset support"
 -      depends on AGP
 +      depends on AGP && X86
        help
          This option gives you AGP support for the GLX component of
          X on Silicon Integrated Systems [SiS] chipsets.
@@@ -103,7 -103,7 +103,7 @@@ config AGP_SWORK
  
  config AGP_VIA
        tristate "VIA chipset support"
 -      depends on AGP
 +      depends on AGP && X86
        help
          This option gives you AGP support for the GLX component of
          X on VIA MVP3/Apollo Pro chipsets.
@@@ -122,6 -122,14 +122,14 @@@ config AGP_HP_ZX
          This option gives you AGP GART support for the HP ZX1 chipset
          for IA64 processors.
  
+ config AGP_PARISC
+       tristate "HP Quicksilver AGP support"
+       depends on AGP && PARISC && 64BIT
+       help
+         This option gives you AGP GART support for the HP Quicksilver
+         AGP bus adapter on HP PA-RISC machines (Ok, just on the C8000
+         workstation...)
  config AGP_ALPHA_CORE
        tristate "Alpha AGP support"
        depends on AGP && (ALPHA_GENERIC || ALPHA_TITAN || ALPHA_MARVEL)
index ca4629f66d175bc626cb737341c12e27c65f6bb4,5ff457b41efbc4b4a349fa4ee90e4413c6249134..883a36a278332ee6912ab9f19be236e3548ec5aa
@@@ -419,31 -419,6 +419,31 @@@ static void agp_v2_parse_one(u32 *reque
                *requested_mode &= ~AGP2_RESERVED_MASK;
        }
  
 +      /*
 +       * Some dumb bridges are programmed to disobey the AGP2 spec.
 +       * This is likely a BIOS misprogramming rather than poweron default, or
 +       * it would be a lot more common.
 +       * https://bugs.freedesktop.org/show_bug.cgi?id=8816
 +       * AGPv2 spec 6.1.9 states:
 +       *   The RATE field indicates the data transfer rates supported by this
 +       *   device. A.G.P. devices must report all that apply.
 +       * Fix them up as best we can.
 +       */
 +      switch (*bridge_agpstat & 7) {
 +      case 4:
 +              *bridge_agpstat |= (AGPSTAT2_2X | AGPSTAT2_1X);
 +              printk(KERN_INFO PFX "BIOS bug. AGP bridge claims to only support x4 rate"
 +                      "Fixing up support for x2 & x1\n");
 +              break;
 +      case 2:
 +              *bridge_agpstat |= AGPSTAT2_1X;
 +              printk(KERN_INFO PFX "BIOS bug. AGP bridge claims to only support x2 rate"
 +                      "Fixing up support for x1\n");
 +              break;
 +      default:
 +              break;
 +      }
 +
        /* Check the speed bits make sense. Only one should be set. */
        tmp = *requested_mode & 7;
        switch (tmp) {
@@@ -1079,7 -1054,7 +1079,7 @@@ void *agp_generic_alloc_page(struct agp
  {
        struct page * page;
  
-       page = alloc_page(GFP_KERNEL);
+       page = alloc_page(GFP_KERNEL | GFP_DMA32);
        if (page == NULL)
                return NULL;