fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / arch / v850 / kernel / rte_mb_a_pci.c
index 074b50a..35213fa 100644 (file)
@@ -1,8 +1,8 @@
 /*
  * arch/v850/kernel/mb_a_pci.c -- PCI support for Midas lab RTE-MOTHER-A board
  *
- *  Copyright (C) 2001,02,03  NEC Electronics Corporation
- *  Copyright (C) 2001,02,03  Miles Bader <miles@gnu.org>
+ *  Copyright (C) 2001,02,03,05  NEC Electronics Corporation
+ *  Copyright (C) 2001,02,03,05  Miles Bader <miles@gnu.org>
  *
  * This file is subject to the terms and conditions of the GNU General
  * Public License.  See the file COPYING in the main directory of this
@@ -11,7 +11,6 @@
  * Written by Miles Bader <miles@gnu.org>
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/init.h>
@@ -329,7 +328,7 @@ void pcibios_fixup_bus(struct pci_bus *b)
 
 void
 pcibios_align_resource (void *data, struct resource *res,
-                       unsigned long size, unsigned long align)
+                       resource_size_t size, resource_size_t align)
 {
 }
 
@@ -366,7 +365,7 @@ static DEFINE_SPINLOCK(mb_sram_lock);
 static void *alloc_mb_sram (size_t size)
 {
        struct mb_sram_free_area *prev, *fa;
-       int flags;
+       unsigned long flags;
        void *mem = 0;
 
        spin_lock_irqsave (mb_sram_lock, flags);
@@ -407,7 +406,7 @@ static void *alloc_mb_sram (size_t size)
 static void free_mb_sram (void *mem, size_t size)
 {
        struct mb_sram_free_area *prev, *fa, *new_fa;
-       int flags;
+       unsigned long flags;
        void *end = mem + size;
 
        spin_lock_irqsave (mb_sram_lock, flags);
@@ -518,7 +517,7 @@ static DEFINE_SPINLOCK(dma_mappings_lock);
 
 static struct dma_mapping *new_dma_mapping (size_t size)
 {
-       int flags;
+       unsigned long flags;
        struct dma_mapping *mapping;
        void *mb_sram_block = alloc_mb_sram (size);
 
@@ -576,7 +575,7 @@ static struct dma_mapping *new_dma_mapping (size_t size)
 
 static struct dma_mapping *find_dma_mapping (void *mb_sram_addr)
 {
-       int flags;
+       unsigned long flags;
        struct dma_mapping *mapping;
 
        spin_lock_irqsave (dma_mappings_lock, flags);
@@ -593,7 +592,7 @@ static struct dma_mapping *find_dma_mapping (void *mb_sram_addr)
 
 static struct dma_mapping *deactivate_dma_mapping (void *mb_sram_addr)
 {
-       int flags;
+       unsigned long flags;
        struct dma_mapping *mapping, *prev;
 
        spin_lock_irqsave (dma_mappings_lock, flags);
@@ -623,7 +622,7 @@ static struct dma_mapping *deactivate_dma_mapping (void *mb_sram_addr)
 static inline void
 free_dma_mapping (struct dma_mapping *mapping)
 {
-       int flags;
+       unsigned long flags;
 
        free_mb_sram (mapping->mb_sram_addr, mapping->size);
 
@@ -743,15 +742,17 @@ pci_unmap_sg (struct pci_dev *pdev, struct scatterlist *sg, int sg_len,int dir)
    for a scatter-gather list, same rules and usage.  */
 
 void
-pci_dma_sync_sg_for_cpu (struct pci_dev *dev, struct scatterlist *sg, int sg_len,
-                int dir)
+pci_dma_sync_sg_for_cpu (struct pci_dev *dev,
+                        struct scatterlist *sg, int sg_len,
+                        int dir)
 {
        BUG ();
 }
 
 void
-pci_dma_sync_sg_for_device (struct pci_dev *dev, struct scatterlist *sg, int sg_len,
-                int dir)
+pci_dma_sync_sg_for_device (struct pci_dev *dev,
+                           struct scatterlist *sg, int sg_len,
+                           int dir)
 {
        BUG ();
 }
@@ -785,6 +786,27 @@ pci_free_consistent (struct pci_dev *pdev, size_t size, void *cpu_addr,
        free_mb_sram (mb_sram_mem, size);
 }
 
+\f
+/* iomap/iomap */
+
+void __iomem *pci_iomap (struct pci_dev *dev, int bar, unsigned long max)
+{
+       unsigned long start = pci_resource_start (dev, bar);
+       unsigned long len = pci_resource_len (dev, bar);
+
+       if (!start || len == 0)
+               return 0;
+
+       /* None of the ioremap functions actually do anything, other than
+          re-casting their argument, so don't bother differentiating them.  */
+       return ioremap (start, len);
+}
+
+void pci_iounmap (struct pci_dev *dev, void __iomem *addr)
+{
+       /* nothing */
+}
+
 \f
 /* symbol exports (for modules) */
 
@@ -794,3 +816,5 @@ EXPORT_SYMBOL (pci_alloc_consistent);
 EXPORT_SYMBOL (pci_free_consistent);
 EXPORT_SYMBOL (pci_dma_sync_single_for_cpu);
 EXPORT_SYMBOL (pci_dma_sync_single_for_device);
+EXPORT_SYMBOL (pci_iomap);
+EXPORT_SYMBOL (pci_iounmap);