]> err.no Git - linux-2.6/blobdiff - include/asm-x86_64/calgary.h
x86: sanitize pathes arch/x86/kernel/cpu/Makefile
[linux-2.6] / include / asm-x86_64 / calgary.h
index 4e3919524240b66b1d26b02a9df1bde18d0ca346..67f60406e2d8136ac50b3b25afefef629508ec0d 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Derived from include/asm-powerpc/iommu.h
  *
- * Copyright (C) IBM Corporation, 2006
+ * Copyright IBM Corporation, 2006-2007
  *
  * Author: Jon Mason <jdmason@us.ibm.com>
  * Author: Muli Ben-Yehuda <muli@il.ibm.com>
 #ifndef _ASM_X86_64_CALGARY_H
 #define _ASM_X86_64_CALGARY_H
 
-#include <linux/config.h>
 #include <linux/spinlock.h>
 #include <linux/device.h>
 #include <linux/dma-mapping.h>
+#include <linux/timer.h>
 #include <asm/types.h>
 
 struct iommu_table {
+       struct cal_chipset_ops *chip_ops; /* chipset specific funcs */
        unsigned long  it_base;      /* mapped address of tce table */
        unsigned long  it_hint;      /* Hint for next alloc */
        unsigned long *it_map;       /* A simple allocation bitmap for now */
+       void __iomem  *bbar;         /* Bridge BAR */
+       u64            tar_val;      /* Table Address Register */
+       struct timer_list watchdog_timer;
        spinlock_t     it_lock;      /* Protects it_map */
        unsigned int   it_size;      /* Size of iommu table in entries */
        unsigned char  it_busno;     /* Bus number this table belongs to */
-       void __iomem  *bbar;
-       u64            tar_val;
-       struct timer_list watchdog_timer;
+};
+
+struct cal_chipset_ops {
+       void (*handle_quirks)(struct iommu_table *tbl, struct pci_dev *dev);
+       void (*tce_cache_blast)(struct iommu_table *tbl);
+       void (*dump_error_regs)(struct iommu_table *tbl);
 };
 
 #define TCE_TABLE_SIZE_UNSPECIFIED     ~0
@@ -52,6 +59,8 @@ struct iommu_table {
 #define TCE_TABLE_SIZE_4M              6
 #define TCE_TABLE_SIZE_8M              7
 
+extern int use_calgary;
+
 #ifdef CONFIG_CALGARY_IOMMU
 extern int calgary_iommu_init(void);
 extern void detect_calgary(void);