Blame SOURCES/0028-devtree-Add-add_device_tree_info.patch

21ef37
From 719c039f5daf2ecf99a1c02669745486be36ba43 Mon Sep 17 00:00:00 2001
21ef37
From: Jeremy Kerr <jk@ozlabs.org>
21ef37
Date: Wed, 24 Aug 2016 17:39:23 +0800
21ef37
Subject: [PATCH 28/43] devtree: Add add_device_tree_info()
21ef37
21ef37
sysfs contains symbolic link (of_node) for each device which has
21ef37
correspoding device tree entry. It helps user space tool to
21ef37
parse firmware information for that device.
21ef37
This patch adds logic to add location code for given sysfs path.
21ef37
21ef37
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
21ef37
Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
21ef37
---
21ef37
 src/core/device-tree.cc | 19 +++++++++++++++++++
21ef37
 src/core/device-tree.h  |  2 ++
21ef37
 2 files changed, 21 insertions(+)
21ef37
21ef37
diff --git a/src/core/device-tree.cc b/src/core/device-tree.cc
21ef37
index 0bba4e9..1e49f3a 100644
21ef37
--- a/src/core/device-tree.cc
21ef37
+++ b/src/core/device-tree.cc
21ef37
@@ -1208,3 +1208,22 @@ bool scan_device_tree(hwNode & n)
21ef37
 
21ef37
   return true;
21ef37
 }
21ef37
+
21ef37
+void add_device_tree_info(hwNode & n, string sysfs_path)
21ef37
+{
21ef37
+  string of_node = sysfs_path + "/of_node";
21ef37
+  string val;
21ef37
+
21ef37
+  if (!exists(of_node))
21ef37
+    return;
21ef37
+
21ef37
+  /* read location / slot data */
21ef37
+  val = hw::strip(get_string(of_node + "/ibm,loc-code", ""));
21ef37
+  if (val == "")
21ef37
+    val = hw::strip(get_string(of_node + "/ibm,slot-location-code", ""));
21ef37
+  if (val == "")
21ef37
+    val = hw::strip(get_string(of_node + "/ibm,slot-label"));
21ef37
+
21ef37
+  if (val != "")
21ef37
+    n.setSlot(val);
21ef37
+}
21ef37
diff --git a/src/core/device-tree.h b/src/core/device-tree.h
21ef37
index 62313aa..91ecb7d 100644
21ef37
--- a/src/core/device-tree.h
21ef37
+++ b/src/core/device-tree.h
21ef37
@@ -4,4 +4,6 @@
21ef37
 #include "hw.h"
21ef37
 
21ef37
 bool scan_device_tree(hwNode & n);
21ef37
+
21ef37
+void add_device_tree_info(hwNode & n, string sysfs_path);
21ef37
 #endif
21ef37
-- 
21ef37
2.10.2
21ef37