mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-29 10:08:59 +00:00
7d7aa2fd92
This change makes the names of Broadcom targets consistent by using the common notation based on SoC/CPU ID (which is used internally anyway), bcmXXXX instead of brcmXXXX. This is even used for target TITLE in make menuconfig already, only the short target name used brcm so far. Despite, since subtargets range from bcm2708 to bcm2711, it seems appropriate to use bcm27xx instead of bcm2708 (again, as already done for BOARDNAME). This also renames the packages brcm2708-userland and brcm2708-gpu-fw. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Acked-by: Álvaro Fernández Rojas <noltari@gmail.com>
115 lines
3.3 KiB
Diff
115 lines
3.3 KiB
Diff
From fe78e259c356ef883528c5ec3527c714a5966c0c Mon Sep 17 00:00:00 2001
|
|
From: Phil Elwell <phil@raspberrypi.org>
|
|
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 <phil@raspberrypi.org>
|
|
---
|
|
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;
|