aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/ofw
diff options
context:
space:
mode:
authorMarcin Wojtas <mw@FreeBSD.org>2017-08-09 00:56:29 +0000
committerMarcin Wojtas <mw@FreeBSD.org>2017-08-09 00:56:29 +0000
commita355bb884638810e76cf4a661c93607902ea5449 (patch)
treeaec674e29a1b6d224ea06e03fff291f6ce537ac5 /sys/dev/ofw
parentf2d9a004fb28bde2b5522ec647c8483e814f65d9 (diff)
Notes
Diffstat (limited to 'sys/dev/ofw')
-rw-r--r--sys/dev/ofw/ofw_fdt.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/dev/ofw/ofw_fdt.c b/sys/dev/ofw/ofw_fdt.c
index 605166832d9a..2e3e03dd96c7 100644
--- a/sys/dev/ofw/ofw_fdt.c
+++ b/sys/dev/ofw/ofw_fdt.c
@@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$");
#include <dev/fdt/fdt_common.h>
#include <dev/ofw/ofwvar.h>
#include <dev/ofw/openfirm.h>
+#include <dev/ofw/ofw_bus_subr.h>
#include "ofw_if.h"
@@ -450,7 +451,15 @@ ofw_fdt_fixup(ofw_t ofw)
for (i = 0; fdt_fixup_table[i].model != NULL; i++) {
if (strncmp(model, fdt_fixup_table[i].model,
FDT_MODEL_LEN) != 0)
- continue;
+ /*
+ * Sometimes it's convenient to provide one
+ * fixup entry that refers to many boards.
+ * To handle this case, simply check if model
+ * is compatible parameter
+ */
+ if(!ofw_bus_node_is_compatible(root,
+ fdt_fixup_table[i].model))
+ continue;
if (fdt_fixup_table[i].handler != NULL)
(*fdt_fixup_table[i].handler)(root);