summaryrefslogtreecommitdiff
path: root/util/sconfig
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@google.com>2018-06-23 00:59:31 -0700
committerFurquan Shaikh <furquan@google.com>2018-06-25 17:40:46 +0000
commit50ddc0bb2881822f0cf9d01fe80ee1e8e2c763db (patch)
treea5e237babdc4ec430c440f72df313cf45b7e038f /util/sconfig
parent27efc501d179c34e5602e3c691cb9b6d52474d86 (diff)
util/sconfig: Get rid of ops from struct device
"ops" field was used in device structure only to add default_dev_ops_root for root device. It was always set to NULL for all other devices. This change gets rid of ops field from struct device and instead hardcodes default_dev_ops_root in pass1 for root device. BUG=b:80081934 TEST=Verified that static.c generated with and without this change is exactly the same. Change-Id: I0848788610c2ed27274daf4920de3068a9784d4c Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: https://review.coreboot.org/27209 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'util/sconfig')
-rw-r--r--util/sconfig/main.c12
-rw-r--r--util/sconfig/sconfig.h3
2 files changed, 9 insertions, 6 deletions
diff --git a/util/sconfig/main.c b/util/sconfig/main.c
index 365edc41a6..6c1824a0b1 100644
--- a/util/sconfig/main.c
+++ b/util/sconfig/main.c
@@ -98,7 +98,6 @@ static struct device base_root_dev = {
.id = 0,
.chip_instance = &mainboard_instance,
.path = " .type = DEVICE_PATH_ROOT ",
- .ops = "&default_dev_ops_root",
.parent = &base_root_bus,
.enabled = 1,
.bus = &base_root_bus,
@@ -120,7 +119,6 @@ static struct device override_root_dev = {
*/
.chip_instance = &mainboard_instance,
.path = " .type = DEVICE_PATH_ROOT ",
- .ops = "&default_dev_ops_root",
.parent = &override_root_bus,
.enabled = 1,
.bus = &override_root_bus,
@@ -773,7 +771,15 @@ static void pass1(FILE *fil, struct device *ptr, struct device *next)
fprintf(fil, "static ");
fprintf(fil, "DEVTREE_CONST struct device %s = {\n", ptr->name);
fprintf(fil, "#if !DEVTREE_EARLY\n");
- fprintf(fil, "\t.ops = %s,\n", (ptr->ops) ? (ptr->ops) : "0");
+
+ /*
+ * ops field is set to default_dev_ops_root only for the root
+ * device. For all other devices, it is set by the driver at runtime.
+ */
+ if (ptr == &base_root_dev)
+ fprintf(fil, "\t.ops = &default_dev_ops_root,\n");
+ else
+ fprintf(fil, "\t.ops = NULL,\n");
fprintf(fil, "#endif\n");
fprintf(fil, "\t.bus = &%s_links[%d],\n", ptr->parent->dev->name,
ptr->parent->id);
diff --git a/util/sconfig/sconfig.h b/util/sconfig/sconfig.h
index d350f52569..78c44d64da 100644
--- a/util/sconfig/sconfig.h
+++ b/util/sconfig/sconfig.h
@@ -110,9 +110,6 @@ struct device {
int subsystem_device;
int inherit_subsystem;
- /* Name of ops structure for the device. */
- char *ops;
-
/* Name of this device. */
char *name;