X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=target%2Flinux%2Fbrcm2708%2Fpatches-4.19%2F950-0129-of-configfs-Use-of_overlay_fdt_apply-API-call.patch;fp=target%2Flinux%2Fbrcm2708%2Fpatches-4.19%2F950-0129-of-configfs-Use-of_overlay_fdt_apply-API-call.patch;h=0000000000000000000000000000000000000000;hb=c2308a7e4adbb2acc8ff149f91d1ca46801c135e;hp=d3e91be8db848837cabcee1b2120f0314283be74;hpb=67dcc43f3a22dc3a7ac07a7065971b426feeb043;p=openwrt%2Fstaging%2Fwigyori.git diff --git a/target/linux/brcm2708/patches-4.19/950-0129-of-configfs-Use-of_overlay_fdt_apply-API-call.patch b/target/linux/brcm2708/patches-4.19/950-0129-of-configfs-Use-of_overlay_fdt_apply-API-call.patch deleted file mode 100644 index d3e91be8db..0000000000 --- a/target/linux/brcm2708/patches-4.19/950-0129-of-configfs-Use-of_overlay_fdt_apply-API-call.patch +++ /dev/null @@ -1,114 +0,0 @@ -From fe78e259c356ef883528c5ec3527c714a5966c0c Mon Sep 17 00:00:00 2001 -From: Phil Elwell -Date: Thu, 14 Jun 2018 15:07:26 +0100 -Subject: [PATCH] of: configfs: Use of_overlay_fdt_apply API call - -The published API to the dynamic overlay application mechanism now -takes a Flattened Device Tree blob as input so that it can manage the -lifetime of the unflattened tree. Conveniently, the new API call - -of_overlay_fdt_apply - is virtually a drop-in replacement for -create_overlay, which can now be deleted. - -Signed-off-by: Phil Elwell ---- - drivers/of/configfs.c | 47 +++++++------------------------------------ - 1 file changed, 7 insertions(+), 40 deletions(-) - ---- a/drivers/of/configfs.c -+++ b/drivers/of/configfs.c -@@ -40,41 +40,6 @@ struct cfs_overlay_item { - int dtbo_size; - }; - --static int create_overlay(struct cfs_overlay_item *overlay, void *blob) --{ -- int err; -- -- /* unflatten the tree */ -- of_fdt_unflatten_tree(blob, NULL, &overlay->overlay); -- if (overlay->overlay == NULL) { -- pr_err("%s: failed to unflatten tree\n", __func__); -- err = -EINVAL; -- goto out_err; -- } -- pr_debug("%s: unflattened OK\n", __func__); -- -- /* mark it as detached */ -- of_node_set_flag(overlay->overlay, OF_DETACHED); -- -- /* perform resolution */ -- err = of_resolve_phandles(overlay->overlay); -- if (err != 0) { -- pr_err("%s: Failed to resolve tree\n", __func__); -- goto out_err; -- } -- pr_debug("%s: resolved OK\n", __func__); -- -- err = of_overlay_apply(overlay->overlay, &overlay->ov_id); -- if (err < 0) { -- pr_err("%s: Failed to create overlay (err=%d)\n", -- __func__, err); -- goto out_err; -- } -- --out_err: -- return err; --} -- - static inline struct cfs_overlay_item *to_cfs_overlay_item( - struct config_item *item) - { -@@ -115,7 +80,8 @@ static ssize_t cfs_overlay_item_path_sto - if (err != 0) - goto out_err; - -- err = create_overlay(overlay, (void *)overlay->fw->data); -+ err = of_overlay_fdt_apply((void *)overlay->fw->data, -+ (u32)overlay->fw->size, &overlay->ov_id); - if (err != 0) - goto out_err; - -@@ -136,7 +102,7 @@ static ssize_t cfs_overlay_item_status_s - struct cfs_overlay_item *overlay = to_cfs_overlay_item(item); - - return sprintf(page, "%s\n", -- overlay->ov_id >= 0 ? "applied" : "unapplied"); -+ overlay->ov_id > 0 ? "applied" : "unapplied"); - } - - CONFIGFS_ATTR(cfs_overlay_item_, path); -@@ -188,7 +154,8 @@ ssize_t cfs_overlay_item_dtbo_write(stru - - overlay->dtbo_size = count; - -- err = create_overlay(overlay, overlay->dtbo); -+ err = of_overlay_fdt_apply(overlay->dtbo, overlay->dtbo_size, -+ &overlay->ov_id); - if (err != 0) - goto out_err; - -@@ -198,6 +165,7 @@ out_err: - kfree(overlay->dtbo); - overlay->dtbo = NULL; - overlay->dtbo_size = 0; -+ overlay->ov_id = 0; - - return err; - } -@@ -213,7 +181,7 @@ static void cfs_overlay_release(struct c - { - struct cfs_overlay_item *overlay = to_cfs_overlay_item(item); - -- if (overlay->ov_id >= 0) -+ if (overlay->ov_id > 0) - of_overlay_remove(&overlay->ov_id); - if (overlay->fw) - release_firmware(overlay->fw); -@@ -241,7 +209,6 @@ static struct config_item *cfs_overlay_g - overlay = kzalloc(sizeof(*overlay), GFP_KERNEL); - if (!overlay) - return ERR_PTR(-ENOMEM); -- overlay->ov_id = -1; - - config_item_init_type_name(&overlay->item, name, &cfs_overlay_type); - return &overlay->item;