diff options
author | Muli Ben-Yehuda <muli@il.ibm.com> | 2007-07-21 11:10:50 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-21 21:37:11 -0400 |
commit | ff297b8c081bdc60507eaeb1838996e0c67141c8 (patch) | |
tree | 9bbf72551be697bda605322a2d3af3e6190bacf2 /include/asm-x86_64/calgary.h | |
parent | b8d2ea1b87b02fc94ffcab58b29c83fbbb6a1e4e (diff) |
x86_64: introduce chipset specific ops
Calgary and CalIOC2 share most of the same logic. Introduce struct
cal_chipset_ops for quirks and tce flush logic which are
[akpm@linux-foundation.org: make calgary_chip_ops static]
Signed-off-by: Muli Ben-Yehuda <muli@il.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/asm-x86_64/calgary.h')
-rw-r--r-- | include/asm-x86_64/calgary.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/include/asm-x86_64/calgary.h b/include/asm-x86_64/calgary.h index 4d5747a0923c..458ab19a70f0 100644 --- a/include/asm-x86_64/calgary.h +++ b/include/asm-x86_64/calgary.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Derived from include/asm-powerpc/iommu.h | 2 | * Derived from include/asm-powerpc/iommu.h |
3 | * | 3 | * |
4 | * Copyright (C) IBM Corporation, 2006 | 4 | * Copyright IBM Corporation, 2006-2007 |
5 | * | 5 | * |
6 | * Author: Jon Mason <jdmason@us.ibm.com> | 6 | * Author: Jon Mason <jdmason@us.ibm.com> |
7 | * Author: Muli Ben-Yehuda <muli@il.ibm.com> | 7 | * Author: Muli Ben-Yehuda <muli@il.ibm.com> |
@@ -31,6 +31,7 @@ | |||
31 | #include <asm/types.h> | 31 | #include <asm/types.h> |
32 | 32 | ||
33 | struct iommu_table { | 33 | struct iommu_table { |
34 | struct cal_chipset_ops *chip_ops; /* chipset specific funcs */ | ||
34 | unsigned long it_base; /* mapped address of tce table */ | 35 | unsigned long it_base; /* mapped address of tce table */ |
35 | unsigned long it_hint; /* Hint for next alloc */ | 36 | unsigned long it_hint; /* Hint for next alloc */ |
36 | unsigned long *it_map; /* A simple allocation bitmap for now */ | 37 | unsigned long *it_map; /* A simple allocation bitmap for now */ |
@@ -42,6 +43,11 @@ struct iommu_table { | |||
42 | unsigned char it_busno; /* Bus number this table belongs to */ | 43 | unsigned char it_busno; /* Bus number this table belongs to */ |
43 | }; | 44 | }; |
44 | 45 | ||
46 | struct cal_chipset_ops { | ||
47 | void (*handle_quirks)(struct iommu_table *tbl, struct pci_dev *dev); | ||
48 | void (*tce_cache_blast)(struct iommu_table *tbl); | ||
49 | }; | ||
50 | |||
45 | #define TCE_TABLE_SIZE_UNSPECIFIED ~0 | 51 | #define TCE_TABLE_SIZE_UNSPECIFIED ~0 |
46 | #define TCE_TABLE_SIZE_64K 0 | 52 | #define TCE_TABLE_SIZE_64K 0 |
47 | #define TCE_TABLE_SIZE_128K 1 | 53 | #define TCE_TABLE_SIZE_128K 1 |