Commit a749690e authored by Michael Ellerman's avatar Michael Ellerman Committed by Stephen Rothwell

[POWERPC] 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.
Signed-off-by: default avatarMichael Ellerman <michael@ellerman.id.au>
Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
parent 3da27289
...@@ -41,8 +41,8 @@ ...@@ -41,8 +41,8 @@
#include <asm/system.h> #include <asm/system.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include <asm/prom.h>
#include <asm/iseries/hv_types.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_event.h>
#include <asm/iseries/hv_lp_config.h> #include <asm/iseries/hv_lp_config.h>
#include <asm/iseries/mf.h> #include <asm/iseries/mf.h>
...@@ -116,6 +116,7 @@ static int proc_viopath_show(struct seq_file *m, void *v) ...@@ -116,6 +116,7 @@ static int proc_viopath_show(struct seq_file *m, void *v)
dma_addr_t handle; dma_addr_t handle;
HvLpEvent_Rc hvrc; HvLpEvent_Rc hvrc;
DECLARE_MUTEX_LOCKED(Semaphore); DECLARE_MUTEX_LOCKED(Semaphore);
struct device_node *node;
buf = kmalloc(HW_PAGE_SIZE, GFP_KERNEL); buf = kmalloc(HW_PAGE_SIZE, GFP_KERNEL);
if (!buf) if (!buf)
...@@ -143,20 +144,26 @@ static int proc_viopath_show(struct seq_file *m, void *v) ...@@ -143,20 +144,26 @@ static int proc_viopath_show(struct seq_file *m, void *v)
buf[HW_PAGE_SIZE-1] = '\0'; buf[HW_PAGE_SIZE-1] = '\0';
seq_printf(m, "%s", buf); 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_unmap_single(iSeries_vio_dev, handle, HW_PAGE_SIZE,
DMA_FROM_DEVICE); DMA_FROM_DEVICE);
kfree(buf); 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; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment