mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Sascha Hauer <s.hauer@pengutronix.de>
To: Barebox List <barebox@lists.infradead.org>
Subject: [PATCH 07/17] firmware: recognize by reproducible name
Date: Wed, 23 Jun 2021 07:16:22 +0200	[thread overview]
Message-ID: <20210623051632.30253-8-s.hauer@pengutronix.de> (raw)
In-Reply-To: <20210623051632.30253-1-s.hauer@pengutronix.de>

firmwaremgr_find_by_node() matches the device node pointers to find the
firmware manager associated to a node. This function is called by the
of_overlay code when it finds a firmware-name property to find a firmware
manager for this node. This works when the overlay is applied to the
live tree, but not when it's applied to the tree we are going to load
the kernel with. To overcome this limitation match by the nodes
reproducible name instead of pointers.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 common/firmware.c | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/common/firmware.c b/common/firmware.c
index bb76a16050..b33acff77f 100644
--- a/common/firmware.c
+++ b/common/firmware.c
@@ -68,10 +68,22 @@ struct firmware_mgr *firmwaremgr_find(const char *id)
 struct firmware_mgr *firmwaremgr_find_by_node(struct device_node *np)
 {
 	struct firmware_mgr *mgr;
+	char *na, *nb;
 
-	list_for_each_entry(mgr, &firmwaremgr_list, list)
-		if (mgr->handler->device_node == np)
+	na = of_get_reproducible_name(np);
+
+	list_for_each_entry(mgr, &firmwaremgr_list, list) {
+		nb = of_get_reproducible_name(mgr->handler->device_node);
+		if (!strcmp(na, nb)) {
+			free(na);
+			free(nb);
 			return mgr;
+		}
+
+		free(nb);
+	}
+
+	free(na);
 
 	return NULL;
 }
-- 
2.29.2


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox


  parent reply	other threads:[~2021-06-23  5:18 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-23  5:16 [PATCH v2 00/17] Apply device tree overlays to kernel tree Sascha Hauer
2021-06-23  5:16 ` [PATCH 01/17] fdt: Check blob size during unflattening Sascha Hauer
2021-06-23  5:16 ` [PATCH 02/17] firmware: make device_node argument non const Sascha Hauer
2021-06-23  5:16 ` [PATCH 03/17] libbb: Add find_path function Sascha Hauer
2021-06-23  5:16 ` [PATCH 04/17] firmware: consolidate ifdefs Sascha Hauer
2021-06-23  5:16 ` [PATCH 05/17] firmware: Add search path Sascha Hauer
2021-06-23  5:16 ` [PATCH 06/17] firmware: Fix device_node matching Sascha Hauer
2021-06-23  5:16 ` Sascha Hauer [this message]
2021-06-23  5:16 ` [PATCH 08/17] blspec: Set firmware searchpath Sascha Hauer
2021-06-23  5:16 ` [PATCH 09/17] overlay: only apply compatible trees Sascha Hauer
2021-06-23  5:16 ` [PATCH 10/17] overlay: Add of_overlay_apply_file() Sascha Hauer
2021-06-23  5:16 ` [PATCH 11/17] firmware: Load from global search path Sascha Hauer
2021-06-23  5:16 ` [PATCH 12/17] blspec: Rework firmware load Sascha Hauer
2021-06-23  5:16 ` [PATCH 13/17] of_overlay: apply overlays during booting Sascha Hauer
2021-06-23  5:16 ` [PATCH 14/17] blspec: Apply overlays from rootfs Sascha Hauer
2021-06-23  5:16 ` [PATCH 15/17] doc: devicetree: Refer to internal device tree also as live tree Sascha Hauer
2021-06-23  5:16 ` [PATCH 16/17] Documentation: Add documentation for device tree overlays Sascha Hauer
2021-06-23  6:13   ` Ahmad Fatoum
2021-06-23 19:37     ` Trent Piepho
2021-06-24  8:48       ` Sascha Hauer
2021-06-23  5:16 ` [PATCH 17/17] of_firmware: Fix handling of firmware-name property Sascha Hauer
  -- strict thread matches above, loose matches on Subject: below --
2021-03-10 13:28 [PATCH 00/17] Apply device tree overlays to kernel tree Sascha Hauer
2021-03-10 13:28 ` [PATCH 07/17] firmware: recognize by reproducible name Sascha Hauer

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=20210623051632.30253-8-s.hauer@pengutronix.de \
    --to=s.hauer@pengutronix.de \
    --cc=barebox@lists.infradead.org \
    --subject='Re: [PATCH 07/17] firmware: recognize by reproducible name' \
    /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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox