Merge branch 'audit.b54' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit...
[pandora-kernel.git] / arch / sh / drivers / pci / fixups-dreamcast.c
index 63b1c6f..2bf85cf 100644 (file)
@@ -1,10 +1,10 @@
 /*
- * arch/sh/pci/fixups-dreamcast.c
+ * arch/sh/drivers/pci/fixups-dreamcast.c
  *
  * PCI fixups for the Sega Dreamcast
  *
  * Copyright (C) 2001, 2002  M. R. Brown
- * Copyright (C) 2002, 2003  Paul Mundt
+ * Copyright (C) 2002, 2003, 2006  Paul Mundt
  *
  * This file originally bore the message (with enclosed-$):
  *     Id: pci.c,v 1.3 2003/05/04 19:29:46 lethal Exp
 #include <linux/init.h>
 #include <linux/irq.h>
 #include <linux/pci.h>
+#include <linux/dma-mapping.h>
 
 #include <asm/io.h>
 #include <asm/irq.h>
-#include <asm/mach/pci.h>
+#include <mach/pci.h>
 
 static void __init gapspci_fixup_resources(struct pci_dev *dev)
 {
@@ -40,41 +41,30 @@ static void __init gapspci_fixup_resources(struct pci_dev *dev)
                 */
                dev->resource[1].start  = p->io_resource->start  + 0x100;
                dev->resource[1].end    = dev->resource[1].start + 0x200 - 1;
+               /*
+                * Redirect dma memory allocations to special memory window.
+                */
+               BUG_ON(!dma_declare_coherent_memory(&dev->dev,
+                                               GAPSPCI_DMA_BASE,
+                                               GAPSPCI_DMA_BASE,
+                                               GAPSPCI_DMA_SIZE,
+                                               DMA_MEMORY_MAP |
+                                               DMA_MEMORY_EXCLUSIVE));
                break;
        default:
                printk("PCI: Failed resource fixup\n");
        }
 }
-
 DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, gapspci_fixup_resources);
 
-void __init pcibios_fixup_bus(struct pci_bus *bus)
+int __init pcibios_map_platform_irq(struct pci_dev *dev, u8 slot, u8 pin)
 {
-       /* 
-        * We don't have any sub bus to fix up, and this is a rather
-        * stupid place to put general device fixups. Don't do it.
-        * Use the pcibios_fixups table or suffer the consequences.
+       /*
+        * The interrupt routing semantics here are quite trivial.
+        *
+        * We basically only support one interrupt, so we only bother
+        * updating a device's interrupt line with this single shared
+        * interrupt. Keeps routing quite simple, doesn't it?
         */
+       return GAPSPCI_IRQ;
 }
-
-void __init pcibios_fixup_irqs(void)
-{
-       struct pci_dev *dev = 0;
-
-       for_each_pci_dev(dev) {
-               /*
-                * The interrupt routing semantics here are quite trivial.
-                *
-                * We basically only support one interrupt, so we only bother
-                * updating a device's interrupt line with this single shared
-                * interrupt. Keeps routing quite simple, doesn't it?
-                */
-               printk(KERN_NOTICE "PCI: Fixing up IRQ routing for device %s\n",
-                      pci_name(dev));
-
-               dev->irq = GAPSPCI_IRQ;
-
-               pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq);
-       }
-}
-