Patchwork [08/31] dt: add helper for 64bit cell adds

login
register
mail settings
Submitter Alexander Graf
Date June 5, 2012, 11:52 p.m.
Message ID <1338940402-28502-9-git-send-email-agraf@suse.de>
Download mbox | patch
Permalink /patch/163206/
State New
Headers show

Comments

Alexander Graf - June 5, 2012, 11:52 p.m.
Some times in the device tree, we find an array of 2 u32 cells that
really are a single u64 value. This patch adds a helper to make the
creation of these easy.

Signed-off-by: Alexander Graf <agraf@suse.de>

---

v1 -> v2:

  - rename cell64 -> u64
---
 device_tree.c |    7 +++++++
 device_tree.h |    2 ++
 2 files changed, 9 insertions(+), 0 deletions(-)
Peter A. G. Crosthwaite - June 6, 2012, 5:20 a.m.
On Wed, 2012-06-06 at 01:52 +0200, Alexander Graf wrote:
> Some times in the device tree, we find an array of 2 u32 cells that
> really are a single u64 value. This patch adds a helper to make the
> creation of these easy.
> 
> Signed-off-by: Alexander Graf <agraf@suse.de>

Reviewed-by: Peter Crosthwaite <peter.crosthwaite@petalogix.com>

> ---
> 
> v1 -> v2:
> 
>   - rename cell64 -> u64
> ---
>  device_tree.c |    7 +++++++
>  device_tree.h |    2 ++
>  2 files changed, 9 insertions(+), 0 deletions(-)
> 
> diff --git a/device_tree.c b/device_tree.c
> index 317bdd0..644d766 100644
> --- a/device_tree.c
> +++ b/device_tree.c
> @@ -154,6 +154,13 @@ int qemu_devtree_setprop_cell(void *fdt, const char *node_path,
>      return r;
>  }
>  
> +int qemu_devtree_setprop_u64(void *fdt, const char *node_path,
> +                             const char *property, uint64_t val)
> +{
> +    val = cpu_to_be64(val);
> +    return qemu_devtree_setprop(fdt, node_path, property, &val, sizeof(val));
> +}
> +
>  int qemu_devtree_setprop_cell2(void *fdt, const char *node_path,
>                                 const char *property, uint32_t val,
>                                 uint32_t val2)
> diff --git a/device_tree.h b/device_tree.h
> index f37a4da..39dd259 100644
> --- a/device_tree.h
> +++ b/device_tree.h
> @@ -21,6 +21,8 @@ int qemu_devtree_setprop(void *fdt, const char *node_path,
>                           const char *property, void *val_array, int size);
>  int qemu_devtree_setprop_cell(void *fdt, const char *node_path,
>                                const char *property, uint32_t val);
> +int qemu_devtree_setprop_u64(void *fdt, const char *node_path,
> +                             const char *property, uint64_t val);
>  int qemu_devtree_setprop_cell2(void *fdt, const char *node_path,
>                                 const char *property, uint32_t val,
>                                 uint32_t val2);

Patch

diff --git a/device_tree.c b/device_tree.c
index 317bdd0..644d766 100644
--- a/device_tree.c
+++ b/device_tree.c
@@ -154,6 +154,13 @@  int qemu_devtree_setprop_cell(void *fdt, const char *node_path,
     return r;
 }
 
+int qemu_devtree_setprop_u64(void *fdt, const char *node_path,
+                             const char *property, uint64_t val)
+{
+    val = cpu_to_be64(val);
+    return qemu_devtree_setprop(fdt, node_path, property, &val, sizeof(val));
+}
+
 int qemu_devtree_setprop_cell2(void *fdt, const char *node_path,
                                const char *property, uint32_t val,
                                uint32_t val2)
diff --git a/device_tree.h b/device_tree.h
index f37a4da..39dd259 100644
--- a/device_tree.h
+++ b/device_tree.h
@@ -21,6 +21,8 @@  int qemu_devtree_setprop(void *fdt, const char *node_path,
                          const char *property, void *val_array, int size);
 int qemu_devtree_setprop_cell(void *fdt, const char *node_path,
                               const char *property, uint32_t val);
+int qemu_devtree_setprop_u64(void *fdt, const char *node_path,
+                             const char *property, uint64_t val);
 int qemu_devtree_setprop_cell2(void *fdt, const char *node_path,
                                const char *property, uint32_t val,
                                uint32_t val2);