Skip to contentSkip to conversation

iseries: Use device tree /system-id in /proc/iSeries/config

PATCH In review Michael Ellerman 2 participants 9 messages Jul 13, 2006 – Jul 14, 2006 PowerPC

lore
Share & tools
lore
#0 lore raw

PATCH 1/7 iseries: Use device tree /system-id in /proc/iSeries/config

We export a bunch of info in /proc/iSeries/config. Currently we pull it directly out of some iSeries specific structs, but we could use the device tree instead, this saves decoding it twice and is a little neater.

---

 arch/powerpc/platforms/iseries/viopath.c |   27 +++++++++++++++++----------
 1 file changed, 17 insertions(+), 10 deletions(-)
arch/powerpc/platforms/iseries/viopath.c +17 -10
Index: to-merge/arch/powerpc/platforms/iseries/viopath.c
===================================================================
@@ -41,8 +41,8 @@
 
 #include <asm/system.h>
 #include <asm/uaccess.h>
+#include <asm/prom.h>
 #include <asm/iseries/hv_types.h>
-#include <asm/iseries/it_exp_vpd_panel.h>
 #include <asm/iseries/hv_lp_event.h>
 #include <asm/iseries/hv_lp_config.h>
 #include <asm/iseries/mf.h>
@@ -116,6 +116,7 @@ static int proc_viopath_show(struct seq_
 	dma_addr_t handle;
 	HvLpEvent_Rc hvrc;
 	DECLARE_MUTEX_LOCKED(Semaphore);
+	struct device_node *node;
 
 	buf = kmalloc(HW_PAGE_SIZE, GFP_KERNEL);
 	if (!buf)
@@ -143,20 +144,26 @@ static int proc_viopath_show(struct seq_
 
 	buf[HW_PAGE_SIZE-1] = '\0';
 	seq_printf(m, "%s", buf);
-	seq_printf(m, "AVAILABLE_VETH=%x\n", vlanMap);
-	seq_printf(m, "SRLNBR=%c%c%c%c%c%c%c\n",
-		   e2a(xItExtVpdPanel.mfgID[2]),
-		   e2a(xItExtVpdPanel.mfgID[3]),
-		   e2a(xItExtVpdPanel.systemSerial[1]),
-		   e2a(xItExtVpdPanel.systemSerial[2]),
-		   e2a(xItExtVpdPanel.systemSerial[3]),
-		   e2a(xItExtVpdPanel.systemSerial[4]),
-		   e2a(xItExtVpdPanel.systemSerial[5]));
 
 	dma_unmap_single(iSeries_vio_dev, handle, HW_PAGE_SIZE,
 			 DMA_FROM_DEVICE);
 	kfree(buf);
 
+	seq_printf(m, "AVAILABLE_VETH=%x\n", vlanMap);
+
+	node = of_find_node_by_path("/");
+	buf = NULL;
+	if (node != NULL)
+		buf = get_property(node, "system-id", NULL);
+
+	if (buf == NULL)
+		seq_printf(m, "SRLNBR=<UNKNOWN>\n");
+	else
+		/* Skip "IBM," on front of serial number, see dt.c */
+		seq_printf(m, "SRLNBR=%s\n", buf + 4);
+
+	of_node_put(node);
+
 	return 0;
 }
 
#1 lore raw

PATCH 2/7 iseries: Move e2a()/strne2a() into their only caller

The ASCII -> EBCDIC functions, e2a() and strne2a() are now only used in dt.c, so move them in there.

---

 arch/powerpc/lib/Makefile           |    1 
 arch/powerpc/lib/e2a.c              |  116 ------------------------------------
 arch/powerpc/platforms/iseries/dt.c |   98 ++++++++++++++++++++++++++++++
 include/asm-powerpc/system.h        |    5 -
 4 files changed, 97 insertions(+), 123 deletions(-)
arch/powerpc/lib/Makefile +0 -1
Index: to-merge/arch/powerpc/lib/Makefile
===================================================================
@@ -14,7 +14,6 @@ endif
 obj-$(CONFIG_PPC64)	+= checksum_64.o copypage_64.o copyuser_64.o \
 			   memcpy_64.o usercopy_64.o mem_64.o string.o \
 			   strcase.o
-obj-$(CONFIG_PPC_ISERIES) += e2a.o
 obj-$(CONFIG_XMON)	+= sstep.o
 
 ifeq ($(CONFIG_PPC64),y)
arch/powerpc/lib/e2a.c deleted +0 -116

116 lines not on this page · raw message

arch/powerpc/platforms/iseries/dt.c +97 -1

108 lines not on this page · raw message

include/asm-powerpc/system.h +0 -5
Index: to-merge/include/asm-powerpc/system.h
===================================================================
@@ -169,11 +169,6 @@ extern u32 booke_wdt_enabled;
 extern u32 booke_wdt_period;
 #endif /* CONFIG_BOOKE_WDT */
 
-/* EBCDIC -> ASCII conversion for [0-9A-Z] on iSeries */
-extern unsigned char e2a(unsigned char);
-extern unsigned char* strne2a(unsigned char *dest,
-		const unsigned char *src, size_t n);
-
 struct device_node;
 extern void note_scsi_host(struct device_node *, void *);
 
#2 lore raw

PATCH 3/7 iseries: Cleanup e2a() and strne2a()

In reply to Michael Ellerman

e2a() was formally used by lparcfg, and so had to be exported, but isn't anymore, so don't.

e2a() and strne2a() can both be static, and __init.

And e2a can be made much more concise if we use x ... y case labels, while we're there add support for lower case letters.

---

 arch/powerpc/platforms/iseries/dt.c |   92 ++++++------------------------------
 1 file changed, 17 insertions(+), 75 deletions(-)
arch/powerpc/platforms/iseries/dt.c +17 -75
Index: to-merge/arch/powerpc/platforms/iseries/dt.c
===================================================================
@@ -80,87 +80,29 @@ static char __initdata device_type_vscsi
 
 /* EBCDIC to ASCII conversion routines */
 
-unsigned char e2a(unsigned char x)
+static unsigned char __init e2a(unsigned char x)
 {
 	switch (x) {
-	case 0xF0:
-		return '0';
-	case 0xF1:
-		return '1';
-	case 0xF2:
-		return '2';
-	case 0xF3:
-		return '3';
-	case 0xF4:
-		return '4';
-	case 0xF5:
-		return '5';
-	case 0xF6:
-		return '6';
-	case 0xF7:
-		return '7';
-	case 0xF8:
-		return '8';
-	case 0xF9:
-		return '9';
-	case 0xC1:
-		return 'A';
-	case 0xC2:
-		return 'B';
-	case 0xC3:
-		return 'C';
-	case 0xC4:
-		return 'D';
-	case 0xC5:
-		return 'E';
-	case 0xC6:
-		return 'F';
-	case 0xC7:
-		return 'G';
-	case 0xC8:
-		return 'H';
-	case 0xC9:
-		return 'I';
-	case 0xD1:
-		return 'J';
-	case 0xD2:
-		return 'K';
-	case 0xD3:
-		return 'L';
-	case 0xD4:
-		return 'M';
-	case 0xD5:
-		return 'N';
-	case 0xD6:
-		return 'O';
-	case 0xD7:
-		return 'P';
-	case 0xD8:
-		return 'Q';
-	case 0xD9:
-		return 'R';
-	case 0xE2:
-		return 'S';
-	case 0xE3:
-		return 'T';
-	case 0xE4:
-		return 'U';
-	case 0xE5:
-		return 'V';
-	case 0xE6:
-		return 'W';
-	case 0xE7:
-		return 'X';
-	case 0xE8:
-		return 'Y';
-	case 0xE9:
-		return 'Z';
+	case 0x81 ... 0x89:
+		return x - 0x81 + 'a';
+	case 0x91 ... 0x99:
+		return x - 0x91 + 'j';
+	case 0xA2 ... 0xA9:
+		return x - 0xA2 + 's';
+	case 0xC1 ... 0xC9:
+		return x - 0xC1 + 'A';
+	case 0xD1 ... 0xD9:
+		return x - 0xD1 + 'J';
+	case 0xE2 ... 0xE9:
+		return x - 0xE2 + 'S';
+	case 0xF0 ... 0xF9:
+		return x - 0xF0 + '0';
 	}
 	return ' ';
 }
-EXPORT_SYMBOL(e2a);
 
-unsigned char* strne2a(unsigned char *dest, const unsigned char *src, size_t n)
+static unsigned char * __init strne2a(unsigned char *dest,
+		const unsigned char *src, size_t n)
 {
 	int i;
 
#3 lore raw

PATCH 4/7 iseries: Make ItExtVpdPanel private to iSeries

In reply to Michael Ellerman

No one outside platforms/iseries needs ItExtVpdPanel anymore, so move it in there. It used to be needed by lparcfg, and so was exported, but isn't needed anymore, so unexport it.

---

 arch/powerpc/kernel/lparcfg.c                     |    1 
 arch/powerpc/platforms/iseries/dt.c               |    2 
 arch/powerpc/platforms/iseries/it_exp_vpd_panel.h |   51 ++++++++++++++++++++++
 arch/powerpc/platforms/iseries/lpardata.c         |    3 -
 include/asm-powerpc/iseries/it_exp_vpd_panel.h    |   51 ----------------------
 5 files changed, 53 insertions(+), 55 deletions(-)
arch/powerpc/kernel/lparcfg.c +0 -1
Index: to-merge/arch/powerpc/kernel/lparcfg.c
===================================================================
@@ -32,7 +32,6 @@
 #include <asm/rtas.h>
 #include <asm/system.h>
 #include <asm/time.h>
-#include <asm/iseries/it_exp_vpd_panel.h>
 #include <asm/prom.h>
 #include <asm/vdso_datapage.h>
 
arch/powerpc/platforms/iseries/dt.c +1 -1
Index: to-merge/arch/powerpc/platforms/iseries/dt.c
===================================================================
@@ -34,13 +34,13 @@
 #include <asm/iseries/hv_types.h>
 #include <asm/iseries/hv_lp_config.h>
 #include <asm/iseries/hv_call_xm.h>
-#include <asm/iseries/it_exp_vpd_panel.h>
 #include <asm/udbg.h>
 
 #include "processor_vpd.h"
 #include "call_hpt.h"
 #include "call_pci.h"
 #include "pci.h"
+#include "it_exp_vpd_panel.h"
 
 #ifdef DEBUG
 #define DBG(fmt...) udbg_printf(fmt)
arch/powerpc/platforms/iseries/it_exp_vpd_panel.h new file +51 -0

51 lines not on this page · raw message

arch/powerpc/platforms/iseries/lpardata.c +1 -2
Index: to-merge/arch/powerpc/platforms/iseries/lpardata.c
===================================================================
@@ -18,7 +18,6 @@
 #include <asm/iseries/it_lp_reg_save.h>
 #include <asm/paca.h>
 #include <asm/iseries/lpar_map.h>
-#include <asm/iseries/it_exp_vpd_panel.h>
 #include <asm/iseries/it_lp_queue.h>
 
 #include "naca.h"
@@ -27,6 +26,7 @@
 #include "ipl_parms.h"
 #include "processor_vpd.h"
 #include "release_data.h"
+#include "it_exp_vpd_panel.h"
 
 /* The HvReleaseData is the root of the information shared between
  * the hypervisor and Linux.
@@ -134,7 +134,6 @@ struct ItIplParmsReal xItIplParmsReal __
 
 /* May be filled in by the hypervisor so cannot end up in the BSS */
 struct ItExtVpdPanel xItExtVpdPanel __attribute__((__section__(".data")));
-EXPORT_SYMBOL(xItExtVpdPanel);
 
 #define maxPhysicalProcessors 32
 
include/asm-powerpc/iseries/it_exp_vpd_panel.h deleted +0 -51

51 lines not on this page · raw message

#4 lore raw

PATCH 5/7 iseries: Make HvLpConfig_get(Primary)LpIndex functions

In reply to Michael Ellerman

HvLpConfig_get(Primary)LpIndex are currently static inlines that return fields from the itLpNaca, if we make them real functions we can make the itLpNaca private to iSeries.

---

 arch/powerpc/platforms/iseries/hvlpconfig.c |   13 +++++++++++++
 arch/powerpc/platforms/iseries/setup.c      |    1 +
 include/asm-powerpc/iseries/hv_lp_config.h  |   13 ++-----------
 3 files changed, 16 insertions(+), 11 deletions(-)
arch/powerpc/platforms/iseries/hvlpconfig.c +13 -0
Index: to-merge/arch/powerpc/platforms/iseries/hvlpconfig.c
===================================================================
@@ -18,9 +18,22 @@
 
 #include <linux/module.h>
 #include <asm/iseries/hv_lp_config.h>
+#include <asm/iseries/it_lp_naca.h>
 
 HvLpIndex HvLpConfig_getLpIndex_outline(void)
 {
 	return HvLpConfig_getLpIndex();
 }
 EXPORT_SYMBOL(HvLpConfig_getLpIndex_outline);
+
+HvLpIndex HvLpConfig_getLpIndex(void)
+{
+	return itLpNaca.xLpIndex;
+}
+EXPORT_SYMBOL(HvLpConfig_getLpIndex);
+
+HvLpIndex HvLpConfig_getPrimaryLpIndex(void)
+{
+	return itLpNaca.xPrimaryLpIndex;
+}
+EXPORT_SYMBOL_GPL(HvLpConfig_getPrimaryLpIndex);
arch/powerpc/platforms/iseries/setup.c +1 -0
Index: to-merge/arch/powerpc/platforms/iseries/setup.c
===================================================================
@@ -48,6 +48,7 @@
 #include <asm/iseries/hv_call_event.h>
 #include <asm/iseries/hv_call_xm.h>
 #include <asm/iseries/it_lp_queue.h>
+#include <asm/iseries/it_lp_naca.h>
 #include <asm/iseries/mf.h>
 #include <asm/iseries/hv_lp_event.h>
 #include <asm/iseries/lpar_map.h>
include/asm-powerpc/iseries/hv_lp_config.h +2 -11
Index: to-merge/include/asm-powerpc/iseries/hv_lp_config.h
===================================================================
@@ -25,7 +25,6 @@
 
 #include <asm/iseries/hv_call_sc.h>
 #include <asm/iseries/hv_types.h>
-#include <asm/iseries/it_lp_naca.h>
 
 enum {
 	HvCallCfg_Cur	= 0,
@@ -44,16 +43,8 @@ enum {
 #define HvCallCfgGetHostingLpIndex			HvCallCfg + 32
 
 extern HvLpIndex HvLpConfig_getLpIndex_outline(void);
-
-static inline HvLpIndex	HvLpConfig_getLpIndex(void)
-{
-	return itLpNaca.xLpIndex;
-}
-
-static inline HvLpIndex	HvLpConfig_getPrimaryLpIndex(void)
-{
-	return itLpNaca.xPrimaryLpIndex;
-}
+extern HvLpIndex HvLpConfig_getLpIndex(void);
+extern HvLpIndex HvLpConfig_getPrimaryLpIndex(void);
 
 static inline u64 HvLpConfig_getMsChunks(void)
 {
#5 lore raw

PATCH 6/7 iseries: Move ItLpNaca into platforms/iseries

In reply to Michael Ellerman

Move ItLpNaca into platforms/iseries now that it's not used elsewhere.

---

 arch/powerpc/kernel/setup_64.c              |    1 
 arch/powerpc/platforms/iseries/hvlpconfig.c |    2 
 arch/powerpc/platforms/iseries/it_lp_naca.h |   80 ++++++++++++++++++++++++++++
 arch/powerpc/platforms/iseries/lpardata.c   |    3 -
 arch/powerpc/platforms/iseries/lpevents.c   |    2 
 arch/powerpc/platforms/iseries/setup.c      |    2 
 include/asm-powerpc/iseries/it_lp_naca.h    |   80 ----------------------------
 7 files changed, 84 insertions(+), 86 deletions(-)
arch/powerpc/kernel/setup_64.c +0 -1
Index: to-merge/arch/powerpc/kernel/setup_64.c
===================================================================
@@ -56,7 +56,6 @@
 #include <asm/page.h>
 #include <asm/mmu.h>
 #include <asm/lmb.h>
-#include <asm/iseries/it_lp_naca.h>
 #include <asm/firmware.h>
 #include <asm/xmon.h>
 #include <asm/udbg.h>
arch/powerpc/platforms/iseries/hvlpconfig.c +1 -1
Index: to-merge/arch/powerpc/platforms/iseries/hvlpconfig.c
===================================================================
@@ -18,7 +18,7 @@
 
 #include <linux/module.h>
 #include <asm/iseries/hv_lp_config.h>
-#include <asm/iseries/it_lp_naca.h>
+#include "it_lp_naca.h"
 
 HvLpIndex HvLpConfig_getLpIndex_outline(void)
 {
arch/powerpc/platforms/iseries/it_lp_naca.h new file +80 -0

80 lines not on this page · raw message

arch/powerpc/platforms/iseries/lpardata.c +1 -2
Index: to-merge/arch/powerpc/platforms/iseries/lpardata.c
===================================================================
@@ -13,7 +13,6 @@
 #include <asm/processor.h>
 #include <asm/ptrace.h>
 #include <asm/abs_addr.h>
-#include <asm/iseries/it_lp_naca.h>
 #include <asm/lppaca.h>
 #include <asm/iseries/it_lp_reg_save.h>
 #include <asm/paca.h>
@@ -27,6 +26,7 @@
 #include "processor_vpd.h"
 #include "release_data.h"
 #include "it_exp_vpd_panel.h"
+#include "it_lp_naca.h"
 
 /* The HvReleaseData is the root of the information shared between
  * the hypervisor and Linux.
@@ -127,7 +127,6 @@ struct ItLpNaca itLpNaca = {
 		(u64)instruction_access_slb_iSeries /* 0x480 I-SLB */
 	}
 };
-EXPORT_SYMBOL(itLpNaca);
 
 /* May be filled in by the hypervisor so cannot end up in the BSS */
 struct ItIplParmsReal xItIplParmsReal __attribute__((__section__(".data")));
arch/powerpc/platforms/iseries/lpevents.c +1 -1
Index: to-merge/arch/powerpc/platforms/iseries/lpevents.c
===================================================================
@@ -20,7 +20,7 @@
 #include <asm/iseries/it_lp_queue.h>
 #include <asm/iseries/hv_lp_event.h>
 #include <asm/iseries/hv_call_event.h>
-#include <asm/iseries/it_lp_naca.h>
+#include "it_lp_naca.h"
 
 /*
  * The LpQueue is used to pass event data from the hypervisor to
arch/powerpc/platforms/iseries/setup.c +1 -1
Index: to-merge/arch/powerpc/platforms/iseries/setup.c
===================================================================
@@ -48,7 +48,6 @@
 #include <asm/iseries/hv_call_event.h>
 #include <asm/iseries/hv_call_xm.h>
 #include <asm/iseries/it_lp_queue.h>
-#include <asm/iseries/it_lp_naca.h>
 #include <asm/iseries/mf.h>
 #include <asm/iseries/hv_lp_event.h>
 #include <asm/iseries/lpar_map.h>
@@ -60,6 +59,7 @@
 #include "irq.h"
 #include "vpd_areas.h"
 #include "processor_vpd.h"
+#include "it_lp_naca.h"
 #include "main_store.h"
 #include "call_sm.h"
 #include "call_hpt.h"
include/asm-powerpc/iseries/it_lp_naca.h deleted +0 -80

80 lines not on this page · raw message

#6 lore raw

PATCH 7/7 iseries: Move iommu_table_cb into platforms/iseries

In reply to Michael Ellerman

Although we pass the address of an iommu_table_cb to HvCallXm_getTceTableParms, we don't actually need the structure definition anywhere except in the iseries iommu code, so move the struct in there.

---

 arch/powerpc/platforms/iseries/iommu.c   |    1 +
 arch/powerpc/platforms/iseries/iommu.h   |   17 +++++++++++++++++
 include/asm-powerpc/iseries/hv_call_xm.h |   17 -----------------
 3 files changed, 18 insertions(+), 17 deletions(-)
arch/powerpc/platforms/iseries/iommu.c +1 -0
Index: to-merge/arch/powerpc/platforms/iseries/iommu.c
===================================================================
@@ -36,6 +36,7 @@
 #include <asm/pci-bridge.h>
 #include <asm/iseries/hv_call_xm.h>
 #include <asm/iseries/iommu.h>
+#include "iommu.h"
 
 static void tce_build_iSeries(struct iommu_table *tbl, long index, long npages,
 		unsigned long uaddr, enum dma_data_direction direction)
arch/powerpc/platforms/iseries/iommu.h +17 -0
Index: to-merge/arch/powerpc/platforms/iseries/iommu.h
===================================================================
@@ -32,4 +32,21 @@ extern void iommu_table_getparms_iSeries
 		unsigned char slotno, unsigned char virtbus,
 		struct iommu_table *tbl);
 
+/*
+ * Structure passed to HvCallXm_getTceTableParms
+ */
+struct iommu_table_cb {
+	unsigned long	itc_busno;	/* Bus number for this tce table */
+	unsigned long	itc_start;	/* Will be NULL for secondary */
+	unsigned long	itc_totalsize;	/* Size (in pages) of whole table */
+	unsigned long	itc_offset;	/* Index into real tce table of the
+					   start of our section */
+	unsigned long	itc_size;	/* Size (in pages) of our section */
+	unsigned long	itc_index;	/* Index of this tce table */
+	unsigned short	itc_maxtables;	/* Max num of tables for partition */
+	unsigned char	itc_virtbus;	/* Flag to indicate virtual bus */
+	unsigned char	itc_slotno;	/* IOA Tce Slot Index */
+	unsigned char	itc_rsvd[4];
+};
+
 #endif /* _PLATFORMS_ISERIES_IOMMU_H */
include/asm-powerpc/iseries/hv_call_xm.h +0 -17
Index: to-merge/include/asm-powerpc/iseries/hv_call_xm.h
===================================================================
@@ -16,23 +16,6 @@
 #define HvCallXmSetTce			HvCallXm + 11
 #define HvCallXmSetTces			HvCallXm + 13
 
-/*
- * Structure passed to HvCallXm_getTceTableParms
- */
-struct iommu_table_cb {
-	unsigned long	itc_busno;	/* Bus number for this tce table */
-	unsigned long	itc_start;	/* Will be NULL for secondary */
-	unsigned long	itc_totalsize;	/* Size (in pages) of whole table */
-	unsigned long	itc_offset;	/* Index into real tce table of the
-					   start of our section */
-	unsigned long	itc_size;	/* Size (in pages) of our section */
-	unsigned long	itc_index;	/* Index of this tce table */
-	unsigned short	itc_maxtables;	/* Max num of tables for partition */
-	unsigned char	itc_virtbus;	/* Flag to indicate virtual bus */
-	unsigned char	itc_slotno;	/* IOA Tce Slot Index */
-	unsigned char	itc_rsvd[4];
-};
-
 static inline void HvCallXm_getTceTableParms(u64 cb)
 {
 	HvCall1(HvCallXmGetTceTableParms, cb);
#7 lore raw

PATCH 1/1 iseries: Move iommu_table_cb into platforms/iseries

Although we pass the address of an iommu_table_cb to HvCallXm_getTceTableParms, we don't actually need the structure definition anywhere except in the iseries iommu code, so move the struct in there.

---

 arch/powerpc/platforms/iseries/iommu.c   |   17 +++++++++++++++++
 include/asm-powerpc/iseries/hv_call_xm.h |   17 -----------------
 2 files changed, 17 insertions(+), 17 deletions(-)
arch/powerpc/platforms/iseries/iommu.c +17 -0
Index: to-merge/arch/powerpc/platforms/iseries/iommu.c
===================================================================
@@ -88,6 +88,23 @@ static void tce_free_iSeries(struct iomm
 }
 
 /*
+ * Structure passed to HvCallXm_getTceTableParms
+ */
+struct iommu_table_cb {
+	unsigned long	itc_busno;	/* Bus number for this tce table */
+	unsigned long	itc_start;	/* Will be NULL for secondary */
+	unsigned long	itc_totalsize;	/* Size (in pages) of whole table */
+	unsigned long	itc_offset;	/* Index into real tce table of the
+					   start of our section */
+	unsigned long	itc_size;	/* Size (in pages) of our section */
+	unsigned long	itc_index;	/* Index of this tce table */
+	unsigned short	itc_maxtables;	/* Max num of tables for partition */
+	unsigned char	itc_virtbus;	/* Flag to indicate virtual bus */
+	unsigned char	itc_slotno;	/* IOA Tce Slot Index */
+	unsigned char	itc_rsvd[4];
+};
+
+/*
  * Call Hv with the architected data structure to get TCE table info.
  * info. Put the returned data into the Linux representation of the
  * TCE table data.
include/asm-powerpc/iseries/hv_call_xm.h +0 -17
Index: to-merge/include/asm-powerpc/iseries/hv_call_xm.h
===================================================================
@@ -16,23 +16,6 @@
 #define HvCallXmSetTce			HvCallXm + 11
 #define HvCallXmSetTces			HvCallXm + 13
 
-/*
- * Structure passed to HvCallXm_getTceTableParms
- */
-struct iommu_table_cb {
-	unsigned long	itc_busno;	/* Bus number for this tce table */
-	unsigned long	itc_start;	/* Will be NULL for secondary */
-	unsigned long	itc_totalsize;	/* Size (in pages) of whole table */
-	unsigned long	itc_offset;	/* Index into real tce table of the
-					   start of our section */
-	unsigned long	itc_size;	/* Size (in pages) of our section */
-	unsigned long	itc_index;	/* Index of this tce table */
-	unsigned short	itc_maxtables;	/* Max num of tables for partition */
-	unsigned char	itc_virtbus;	/* Flag to indicate virtual bus */
-	unsigned char	itc_slotno;	/* IOA Tce Slot Index */
-	unsigned char	itc_rsvd[4];
-};
-
 static inline void HvCallXm_getTceTableParms(u64 cb)
 {
 	HvCall1(HvCallXmGetTceTableParms, cb);
#8 lore raw
In reply to Michael Ellerman

Hi Paulus,

Quoted 1 line · On Thu, 13 Jul 2006 17:52:01 +1000 Michael Ellerman <[email protected]>…

...

I can stage all these iSeries patches through my git tree if you like (after Michael fixes 7/7), as I have some other iSeries patches that I need to send you as well (some already sent yesterday).

Signature · 3 lines
Cheers,
Stephen Rothwell                    [email protected]
http://www.canb.auug.org.au/~sfr/