forked from Minki/linux
[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: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
This commit is contained in:
parent
3da27289a8
commit
a749690ecf
@ -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)
|
|||||||
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)
|
|||||||
|
|
||||||
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user