The current overlay mechanism can handle files only, so filepattern was
an obvious name.

Drop the "file" prefix to prepare the codebase to handle overlays
supplied via a FIT images as well.

Keep the backward compatibility by still providing the filepattern
filter and the global of.overlay.filepattern variable, but mark them as
deprecated.

Signed-off-by: Marco Felsch <m.fel...@pengutronix.de>
---
 Documentation/user/devicetree.rst |  6 +++---
 drivers/of/overlay.c              | 37 ++++++++++++++++++++++++++-----------
 2 files changed, 29 insertions(+), 14 deletions(-)

diff --git a/Documentation/user/devicetree.rst 
b/Documentation/user/devicetree.rst
index 
ea2945ab2b564a10a780ba0055daa37ed0c85581..ef04e14f7c0dde579493425073f1ee01395f0d8c
 100644
--- a/Documentation/user/devicetree.rst
+++ b/Documentation/user/devicetree.rst
@@ -118,15 +118,15 @@ the kernel. The behaviour is controlled by different 
variables:
   these compatibles will be applied. When this list is empty then all overlays
   will be applied. Overlays that don't have a compatible are considered being
   always compatible.
-``global.of.overlay.filepattern``
+``global.of.overlay.pattern``
   This is a space separated list of file patterns. An overlay is only applied
   when its filename matches one of the patterns. The patterns can contain
   ``*`` and ``?`` as wildcards. The default is ``*`` which means all files are
   applied.
 ``global.of.overlay.filter``
   This is a space separated list of filters to apply. There are two generic 
filters:
-  ``filepattern`` matches ``global.of.overlay.filepattern`` above, 
``compatible`` matches
-  ``global.of.overlay.compatible`` above. The default is ``filepattern 
compatible``
+  ``pattern`` matches ``global.of.overlay.pattern`` above, ``compatible`` 
matches
+  ``global.of.overlay.compatible`` above. The default is ``pattern compatible``
   which means the two generic filters are active. This list may be replaced or
   supplemented by board specific filters.
 
diff --git a/drivers/of/overlay.c b/drivers/of/overlay.c
index 
6944dd4a744de909c89622322c99b81fc046e43b..a63cca1b47e74615d4453a27a55fb15d1f706fae
 100644
--- a/drivers/of/overlay.c
+++ b/drivers/of/overlay.c
@@ -407,7 +407,7 @@ int of_register_overlay(struct device_node *overlay)
        return of_register_fixup(of_overlay_fixup, overlay);
 }
 
-static char *of_overlay_filepattern;
+static char *of_overlay_pattern;
 static char *of_overlay_dir;
 static char *of_overlay_basedir;
 
@@ -504,10 +504,10 @@ int of_overlay_register_filter(struct of_overlay_filter 
*filter)
 }
 
 /**
- * of_overlay_filter_filename - A filter that matches on the filename of
+ * of_overlay_filter_pattern - A filter that matches on the filename or
  *                                an overlay
  * @f: The filter
- * @filename: The filename of the overlay
+ * @pattern: The filename of the overlay
  *
  * This filter matches when the filename matches one of the patterns given
  * in global.of.overlay.filepattern. global.of.overlay.filepattern shall
@@ -515,20 +515,20 @@ int of_overlay_register_filter(struct of_overlay_filter 
*filter)
  *
  * @return: True when the overlay shall be applied, false otherwise.
  */
-static bool of_overlay_filter_filename(struct of_overlay_filter *f,
-                                      const char *filename)
+static bool of_overlay_filter_pattern(struct of_overlay_filter *f,
+                                     const char *pattern)
 {
        char *p, *path, *n;
        int ret;
        bool apply;
 
-       p = path = strdup(of_overlay_filepattern);
+       p = path = strdup(of_overlay_pattern);
 
        while ((n = strsep_unescaped(&p, " ", NULL))) {
                if (!*n)
                        continue;
 
-               ret = fnmatch(n, filename, 0);
+               ret = fnmatch(n, pattern, 0);
 
                if (!ret) {
                        apply = true;
@@ -543,6 +543,18 @@ static bool of_overlay_filter_filename(struct 
of_overlay_filter *f,
        return apply;
 }
 
+static struct of_overlay_filter of_overlay_pattern_filter = {
+       .name = "pattern",
+       .filter_filename = of_overlay_filter_pattern,
+};
+
+static bool of_overlay_filter_filename(struct of_overlay_filter *f,
+                                      const char *filename)
+{
+       pr_warn("'filepattern' filter is marked as deprecated, convert to 
'pattern' filter\n");
+       return of_overlay_filter_pattern(f, filename);
+}
+
 static struct of_overlay_filter of_overlay_filepattern_filter = {
        .name = "filepattern",
        .filter_filename = of_overlay_filter_filename,
@@ -597,15 +609,18 @@ static struct of_overlay_filter 
of_overlay_compatible_filter = {
 
 static int of_overlay_init(void)
 {
-       of_overlay_filepattern = strdup("*");
-       of_overlay_filter = strdup("filepattern compatible");
+       of_overlay_pattern = strdup("*");
+       of_overlay_filter = strdup("pattern compatible");
        of_overlay_set_basedir("/");
 
        globalvar_add_simple_string("of.overlay.compatible", 
&of_overlay_compatible);
-       globalvar_add_simple_string("of.overlay.filepattern", 
&of_overlay_filepattern);
+       globalvar_add_simple_string("of.overlay.pattern", &of_overlay_pattern);
        globalvar_add_simple_string("of.overlay.filter", &of_overlay_filter);
        globalvar_add_simple_string("of.overlay.dir", &of_overlay_dir);
 
+       globalvar_alias_deprecated("of.overlay.filepattern", 
"of.overlay.pattern");
+
+       of_overlay_register_filter(&of_overlay_pattern_filter);
        of_overlay_register_filter(&of_overlay_filepattern_filter);
        of_overlay_register_filter(&of_overlay_compatible_filter);
 
@@ -616,6 +631,6 @@ static int of_overlay_init(void)
 device_initcall(of_overlay_init);
 
 BAREBOX_MAGICVAR(global.of.overlay.compatible, "space separated list of 
compatibles an overlay must match");
-BAREBOX_MAGICVAR(global.of.overlay.filepattern, "space separated list of 
filepatterns an overlay must match");
+BAREBOX_MAGICVAR(global.of.overlay.pattern, "space separated list of 
filepatterns an overlay must match");
 BAREBOX_MAGICVAR(global.of.overlay.dir, "Directory to look for dt overlays");
 BAREBOX_MAGICVAR(global.of.overlay.filter, "space separated list of filters");

-- 
2.39.5


Reply via email to