All of lore.kernel.org
 help / color / mirror / Atom feed
From: robh@kernel.org (Rob Herring)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/2] of/fdt: skip unflattening of disabled nodes
Date: Tue,  3 Oct 2017 11:18:15 -0500	[thread overview]
Message-ID: <20171003161815.25999-2-robh@kernel.org> (raw)
In-Reply-To: <20171003161815.25999-1-robh@kernel.org>

For static DT usecases, we don't need the disabled nodes and can skip
unflattening. This saves a significant amount of RAM in memory constrained
cases. In one example on STM32F469, the RAM usage goes from 118K to 26K.

There are a few cases in the kernel that modify the status property
dynamically. These all are changes from enabled to disabled, depend on
OF_DYNAMIC or are not FDT based (PDT based).

Cc: Nicolas Pitre <nicolas.pitre@linaro.org>
Cc: Frank Rowand <frowand.list@gmail.com>
Signed-off-by: Rob Herring <robh@kernel.org>
---
For more background, see this presentation from Nico:

https://connect.linaro.org/resource/sfo17/sfo17-100/

 drivers/of/fdt.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index f8c39705418b..efe91c6856a0 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
@@ -396,6 +396,10 @@ static int unflatten_dt_nodes(const void *blob,
 		if (WARN_ON_ONCE(depth >= FDT_MAX_DEPTH))
 			continue;
 
+		if (!IS_ENABLED(CONFIG_OF_DYNAMIC) &&
+		    !of_fdt_device_is_available(blob, offset))
+			continue;
+
 		if (!populate_node(blob, offset, &mem, nps[depth],
 				   &nps[depth+1], dryrun))
 			return mem - base;
-- 
2.11.0

WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robh@kernel.org>
To: devicetree@vger.kernel.org
Cc: linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	Nicolas Pitre <nicolas.pitre@linaro.org>,
	Frank Rowand <frowand.list@gmail.com>
Subject: [PATCH 2/2] of/fdt: skip unflattening of disabled nodes
Date: Tue,  3 Oct 2017 11:18:15 -0500	[thread overview]
Message-ID: <20171003161815.25999-2-robh@kernel.org> (raw)
In-Reply-To: <20171003161815.25999-1-robh@kernel.org>

For static DT usecases, we don't need the disabled nodes and can skip
unflattening. This saves a significant amount of RAM in memory constrained
cases. In one example on STM32F469, the RAM usage goes from 118K to 26K.

There are a few cases in the kernel that modify the status property
dynamically. These all are changes from enabled to disabled, depend on
OF_DYNAMIC or are not FDT based (PDT based).

Cc: Nicolas Pitre <nicolas.pitre@linaro.org>
Cc: Frank Rowand <frowand.list@gmail.com>
Signed-off-by: Rob Herring <robh@kernel.org>
---
For more background, see this presentation from Nico:

https://connect.linaro.org/resource/sfo17/sfo17-100/

 drivers/of/fdt.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index f8c39705418b..efe91c6856a0 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
@@ -396,6 +396,10 @@ static int unflatten_dt_nodes(const void *blob,
 		if (WARN_ON_ONCE(depth >= FDT_MAX_DEPTH))
 			continue;
 
+		if (!IS_ENABLED(CONFIG_OF_DYNAMIC) &&
+		    !of_fdt_device_is_available(blob, offset))
+			continue;
+
 		if (!populate_node(blob, offset, &mem, nps[depth],
 				   &nps[depth+1], dryrun))
 			return mem - base;
-- 
2.11.0

  reply	other threads:[~2017-10-03 16:18 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-03 16:18 [PATCH 1/2] of/fdt: add of_fdt_device_is_available function Rob Herring
2017-10-03 16:18 ` Rob Herring
2017-10-03 16:18 ` Rob Herring [this message]
2017-10-03 16:18   ` [PATCH 2/2] of/fdt: skip unflattening of disabled nodes Rob Herring
2017-10-03 18:46   ` Nicolas Pitre
2017-10-03 18:46     ` Nicolas Pitre
2017-10-03 18:46     ` Nicolas Pitre
2017-10-03 21:58     ` Frank Rowand
2017-10-03 21:58       ` Frank Rowand
2017-10-03 21:58       ` Frank Rowand
2017-10-05 18:29       ` Nicolas Pitre
2017-10-05 18:29         ` Nicolas Pitre
2017-10-05 18:29         ` Nicolas Pitre
2017-10-08 22:57   ` Frank Rowand
2017-10-08 22:57     ` Frank Rowand
2017-10-08 22:57     ` Frank Rowand
2017-10-09 18:59     ` Rob Herring
2017-10-09 18:59       ` Rob Herring
2017-10-09 20:20       ` Frank Rowand
2017-10-09 20:20         ` Frank Rowand
2017-10-03 18:43 ` [PATCH 1/2] of/fdt: add of_fdt_device_is_available function Nicolas Pitre
2017-10-03 18:43   ` Nicolas Pitre
2017-10-03 18:43   ` Nicolas Pitre

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171003161815.25999-2-robh@kernel.org \
    --to=robh@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.