diff options
| author | Marcin Wojtas <mw@FreeBSD.org> | 2017-08-09 00:56:29 +0000 |
|---|---|---|
| committer | Marcin Wojtas <mw@FreeBSD.org> | 2017-08-09 00:56:29 +0000 |
| commit | a355bb884638810e76cf4a661c93607902ea5449 (patch) | |
| tree | aec674e29a1b6d224ea06e03fff291f6ce537ac5 /sys/dev/ofw | |
| parent | f2d9a004fb28bde2b5522ec647c8483e814f65d9 (diff) | |
Notes
Diffstat (limited to 'sys/dev/ofw')
| -rw-r--r-- | sys/dev/ofw/ofw_fdt.c | 11 |
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); |
