From 948ff2bd1aa4fee2913baeeea764a3ea814cf246 Mon Sep 17 00:00:00 2001 From: Chris Lew Date: Wed, 13 Apr 2022 17:21:10 -0700 Subject: [PATCH] net: qrtr: Add ability to override node id from dt Current VM configurations share the defconfig across VMs. This will cause conflict if multiple VMs are running. Add the ability to set an override node id from device tree. Change-Id: I96c4998e3e3976219724dc938775746e181c9f72 Signed-off-by: Chris Lew --- net/qrtr/af_qrtr.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/net/qrtr/af_qrtr.c b/net/qrtr/af_qrtr.c index dbae3a819bb2..60787750d0e2 100644 --- a/net/qrtr/af_qrtr.c +++ b/net/qrtr/af_qrtr.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include @@ -2086,10 +2087,30 @@ static const struct net_proto_family qrtr_family = { .create = qrtr_create, }; +static void qrtr_update_node_id(void) +{ + const char *compat = "qcom,qrtr"; + struct device_node *np = NULL; + u32 node_id; + int ret; + + while ((np = of_find_compatible_node(np, NULL, compat))) { + ret = of_property_read_u32(np, "qcom,node-id", &node_id); + of_node_put(np); + if (ret) + continue; + + qrtr_local_nid = node_id; + break; + } +} + static int __init qrtr_proto_init(void) { int rc; + qrtr_update_node_id(); + rc = proto_register(&qrtr_proto, 1); if (rc) return rc;